0 Пользователей и 1 Гость просматривают эту тему.
  • 56 Ответов
  • 67041 Просмотров
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
Как передать из jshop название товара <?php print $this->product->name?> и вывести в модуле формы (использую - Simpleform2)?
« Последнее редактирование: 29.08.2013, 09:57:50 от b2z »
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
Poznakomlus, так не выходит :(

максимум чего удалось добиться - Титле страницы
приведу код для наглядности
Спойлер
[свернуть]
и он же титле потом на имейл приходит
Код
<p>"<?php echo JRequest::getVar('pageTitle');?>"</p>
*

mohax

  • Живу я здесь
  • 909
  • 63
А не мудрствуя лукаво записать в сессию и дернуть ее оттуда не вариант?
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
Код: php
<?php 
$doc = JFactory::getDocument();
echo $doc->getTitle();
?>
зачем input?
и что у вас в массиве $doc, есть ли нужные данные
Код: php
<?php 
$doc = JFactory::getDocument();
print_r($doc);
?>
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
зачем input?
без него заголовок (пока хотя бы) не уйдет на мыло.
и что у вас в массиве $doc, есть ли нужные данные
посмотрел, но из компонента там вообще нет данных
] => Array ( [type] => component [name] => [attribs] => Array ( ) ) )
*

SDKiller

  • Dev Team
  • 2734
  • 320
  • ...ergo sum
А не мудрствуя лукаво записать в сессию и дернуть ее оттуда не вариант?

А это по сути - единственный вариант (куки как браузерозависимые не рассматриваем, GLOBALS как полагается отключены).
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
А это по сути - единственный вариант (куки как браузерозависимые не рассматриваем, GLOBALS как полагается отключены).
нет не единственный
есть еще js, можно и из урла страницы вытянуть инфу
*

SDKiller

  • Dev Team
  • 2734
  • 320
  • ...ergo sum
нет не единственный
есть еще js, можно и из урла страницы вытянуть инфу

js - браузерозависимое решение
url - при условии что переменные передаются в get
*

danik.html

  • Практически профи
  • 2659
  • 348
Я так понимаю модуль должен вывести название товара, только когда находимся на странице товара?
Ок. Сначала отрабатывает компонент, затем модуль. Значит, мы может что-то спокойно передать из компонента в модуль. Или Возможно получится получить инфу о товаре через апи jshop.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
А не мудрствуя лукаво записать в сессию и дернуть ее оттуда не вариант?
Ребят, если б знал как - я бы не спрашивал. Если поясните - буду премного благодарен :)

На самом деле пример встретил здесь (клацаем "экспресс"). Но там видимо отдельный модуль для JS создавали...потому что готовый такой не нашел и решил сторонним модулем попробовать сделать.
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
Записываем вставлять код в компоненте
Код: php-brief
<?php
$session = JFactory::getSession();
$session->set("product_name",  $this->product->name);
?>
Считываем, код в модуль
Код: php-brief
<?php
$session = JFactory::getSession();
echo $session->get("product_name");
?>
*

varX

  • Практически профи
  • 1611
  • 105
  • разработка компонентов
Передать переменную через сессию и GLOBALS можно, только если код модуля выполняется позже компонента в шаблоне. Если раньше, то js - единственное приемлемое решение.
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
Передать переменную через сессию и GLOBALS можно, только если код модуля выполняется позже компонента в шаблоне. Если раньше, то js - единственное приемлемое решение.
модуль в самом конце, где дебаг, он у меня все равно скрыт - я могу хоть куда его опубликовать, всплывает в окне из карточки.

сейчас попробую код Poznakomlus, пока не знаю где в компоненте именно его нужно вставить
*

mohax

  • Живу я здесь
  • 909
  • 63
Передать переменную через сессию и GLOBALS можно, только если код модуля выполняется позже компонента в шаблоне. Если раньше, то js - единственное приемлемое решение.
Если я правильно помню то сначала отрабатывает компонент, потом модуль. И вроде их расположение на странице не играет роли. Хотя могу ошибаться, на практике не проверял.
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
Записываем вставлять код в компоненте
$session =& JFactory::getSession();
$session->set("product_name",  $this->product->name);
Считываем, код в модуль
$session =& JFactory::getSession();
echo $session->get("product_name");

Poznakomlus,  спасибо, все получилось! +1 ;)
Попробую и другую инфу также вытянуть.
*

mohax

  • Живу я здесь
  • 909
  • 63
Посмотрел я что нужно. Там к Вас все равно JS отрабатывает и форму открывает. Почему бы при рендинге карточки товара не передавать в функцию отображения формы все необходимые данные. Типа
Код
function showform(тут все данные)

Подробно не смотрел, спать пора. Но это мне кажется достаточно удобный  вариант в вашем случае.
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
mohax, я не против развернуть логику в другую сторону, и пока все под рукой можно поэкспериментировать :)


Там еще будет косяк с формой (но то уже другая тема, наверное) - надо будет научить ее не закрываться (точнее окно) при вводе неправильных данных в поле, а выводить сообщение об ошибке - здесь же, в окне.

И таким образом получим неплохое, я считаю, решение покупки товара "в один клик"
*

mohax

  • Живу я здесь
  • 909
  • 63
mohax, я не против развернуть логику в другую сторону, и пока все под рукой можно поэкспериментировать :)


Там еще будет косяк с формой (но то уже другая тема, наверное) - надо будет научить ее не закрываться (точнее окно) при вводе неправильных данных в поле, а выводить сообщение об ошибке - здесь же, в окне.

И таким образом получим неплохое, я считаю, решение покупки товара "в один клик"

Раз уж начали, то не посмотреть ли Вам в сторону написания дополнительного функционала к магазину (новый контроллер, модель и вьюха), которые через встроенный behavior.modal загружался бы в модальное окно. Там можно и проверку сделать и все остальное. И передавать просто ID товара, а уже в модели получать запросом данные товара. Но это уже  философия. Где-то надо остановиться))
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
вообще можно в компоненте прописать вызов модуля  ^-^
Код: php
<?php
$document   =  JFactory::getDocument();
$renderer   = $document->loadRenderer('module');
$options    = array('style' => 'raw');
$module     = JModuleHelper::getModule('mod_breadcrumbs'); //mod_breadcrumbs замените на свой
$module->params = "product_name=".$this->product->name; //задаем значения
$module->params .= "\nproduct_price=10";//каждый параметр разделяется символом новой строки \n.
echo $renderer->render($module, $options);
?>
А в самом модуле выводить так:
Код: php
<?php 
echo $params->get('product_name');
echo $params->get('product_price');
 ?>
Продолжение следует...
*

mohax

  • Живу я здесь
  • 909
  • 63
вообще можно в компоненте прописать вызов модуля  ^-^
Код: php
<?php
$module->params = "product_name=".$this->product->name; //задаем значения
$module->params .= "\nproduct_price=10";//каждый параметр разделяется символом новой строки \n.
?>
А так не сработает?
Код
$module->params->set("product_name", $this->product->name) 
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
А тогда еще вопрос - как на SEO это повлияет, ведь получается что часть контента страницы с товаром дублируется и еще и под display:none? Кажется что это не совсем хорошо...

Я еще думаю в сторону jQuery - при клике на кнопку погрузить информацию из нужных div в модальное окно с формой, как считаете - так лучше будет?
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
Еще один вариант передачи данных из компонента в модуль проверено в Joomla 1.5 и 2.5. yes!
Публикуется на форуме ВПЕРВЫЕ!
Ни в одной документации о Joomla вы не найдете такого решения.  yes!
В компоненте пишем:
Код: php-brief
<?php
$document =  JFactory::getDocument();
$document->setBuffer( 'Znachenie', 'component', 'parametr' );
?>
В модуле считываем:
Код: php-brief
<?php
echo JFactory::getDocument()->getBuffer('component', 'parametr');
//return Znachenie
?>
*

mocart

  • Осваиваюсь на форуме
  • 112
  • 9
Poznakomlus, просто супер! работает и так :)
Название товара передается - все как надо, а вот картинку и цену так не передать((
Картинка частями формируется
<img id = "main_image_<?php print $image->image_id?>" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />

и вот так ничего не передает
$document->setBuffer( '$image->image_id', 'component', 'параметр' );
возможно, я что-то не так понял

и цена тоже получается на ходу формируется
<?php print formatprice($this->product->getPriceCalculate())?><?php print $this->product->_tmp_var_price_ext;?>
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
В компонент код
Код: php-brief
<?php
$document =  JFactory::getDocument();
$document->setBuffer( json_encode( $image), 'component', 'image' );
?>
В модуль
Код: php-brief
<?php
$document =  JFactory::getDocument();
$image = json_decode($document->getBuffer('component', 'image'));
$image_product_path = "Введите путь к папке картинок он постоянный";
?>
<img id = "main_image_<?php print $image->image_id?>" src = "<?php print $image_product_path;?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
*

Dron79

  • Давно я тут
  • 321
  • 37
  • Век живи - век учись!
Еще один вариант передачи данных из компонента в модуль проверено в Joomla 1.5 и 2.5. yes!
Публикуется на форуме ВПЕРВЫЕ!
Ни в одной документации о Joomla вы не найдете такого решения.  yes!
В компоненте пишем:
Код: php-brief
<?php
$document = & JFactory::getDocument();
$document->setBuffer( 'Znachenie', 'component', 'parametr' );
?>
В модуле считываем:
Код: php-brief
<?php
echo JFactory::getDocument()->getBuffer('component', 'parametr');
//return Znachenie
?>
Благодарю за новую инфу.
кодинг на php.
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
Дополню решением с JRequest::getVar и JRequest::setVar
Код: php-brief
JRequest::setVar('name', 'Myname', 'post');//задаем
echo JRequest::getVar('name', '', 'post'); //считываем
просто и элементарно
API по свежее JInput
Код: php-brief
JFactory::getApplication()->input->set('parametr', 'znachenie');//задаем
echo JFactory::getApplication()->input->get('parametr'); //считываем
         
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
Дополню решением с помощью API (setUserState, getUserState)
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем
*

fbr

  • Живу я здесь
  • 1283
  • 142
Дополню решением с помощью API (setUserState, getUserState)
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем

Супер!
Poznakomlus, спасибо))

я как раз по другому поводу искал решение подобное решение
*

mohax

  • Живу я здесь
  • 909
  • 63
Дополню решением с помощью API (setUserState, getUserState)
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем
Так она на базе сессий и работает же. Зачем городить огород, если можно с сессией работать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль news show pro gk4 не могу убрать дату публикации

Автор adrian_tor

Ответов: 0
Просмотров: 34
Последний ответ 05.09.2017, 23:03:44
от adrian_tor
Модуль поиска в виде пункта меню

Автор Елeна

Ответов: 0
Просмотров: 43
Последний ответ 20.08.2017, 18:57:21
от Елeна
Перенесено: Зависимость модуля от компонента и страницы

Автор b2z

Ответов: 0
Просмотров: 114
Последний ответ 15.06.2017, 14:52:41
от b2z
Перенесено: Разработка компонента

Автор b2z

Ответов: 0
Просмотров: 127
Последний ответ 23.05.2017, 11:58:01
от b2z
fox contact-модуль

Автор Dimir

Ответов: 2
Просмотров: 203
Последний ответ 11.02.2017, 20:02:45
от Dimir