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

mocart

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Poznakomlus, так не выходит :(

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

mohax

  • Давно я тут
  • 901
  • 66 / 3
А не мудрствуя лукаво записать в сессию и дернуть ее оттуда не вариант?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php
<?php 
$doc = JFactory::getDocument();
echo $doc->getTitle();
?>
зачем input?
и что у вас в массиве $doc, есть ли нужные данные
Код: php
<?php 
$doc = JFactory::getDocument();
print_r($doc);
?>
*

mocart

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

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
А не мудрствуя лукаво записать в сессию и дернуть ее оттуда не вариант?

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
А это по сути - единственный вариант (куки как браузерозависимые не рассматриваем, GLOBALS как полагается отключены).
нет не единственный
есть еще js, можно и из урла страницы вытянуть инфу
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
нет не единственный
есть еще js, можно и из урла страницы вытянуть инфу

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

danik.html

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

mocart

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

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Записываем вставлять код в компоненте
Код: 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

  • Живу я здесь
  • 2450
  • 141 / 5
  • разработка компонентов
Передать переменную через сессию и GLOBALS можно, только если код модуля выполняется позже компонента в шаблоне. Если раньше, то js - единственное приемлемое решение.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

mocart

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

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

mohax

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

mocart

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

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

mohax

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

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

mocart

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


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

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

mohax

  • Давно я тут
  • 901
  • 66 / 3
mohax, я не против развернуть логику в другую сторону, и пока все под рукой можно поэкспериментировать :)


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

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

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
вообще можно в компоненте прописать вызов модуля  ^-^
Код: 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

  • Давно я тут
  • 901
  • 66 / 3
вообще можно в компоненте прописать вызов модуля  ^-^
Код: 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 / 0
А тогда еще вопрос - как на SEO это повлияет, ведь получается что часть контента страницы с товаром дублируется и еще и под display:none? Кажется что это не совсем хорошо...

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

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Еще один вариант передачи данных из компонента в модуль проверено в 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 / 0
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

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
В компонент код
Код: 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 / 0
  • Век живи - век учись!
Еще один вариант передачи данных из компонента в модуль проверено в 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

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Дополню решением с 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

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Дополню решением с помощью API (setUserState, getUserState)
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем
*

fbr

  • Завсегдатай
  • 1625
  • 189 / 7
Дополню решением с помощью API (setUserState, getUserState)
Код: php-brief
JFactory::getApplication()->setUserState('parametr', 'znachenie'); //задаем
echo JFactory::getApplication()->getUserState('parametr'); //считываем

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

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

mohax

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

Модуль mod_custom: где сохраняется добавляемый код?

Автор r0m4n

Ответов: 8
Просмотров: 1452
Последний ответ 20.12.2023, 09:52:48
от kit2m2
Формирование ссылок для компонента Joomla Tags

Автор stepan39

Ответов: 6
Просмотров: 2404
Последний ответ 05.02.2023, 15:22:13
от tweenpix
URL компонента меток

Автор tweenpix

Ответов: 0
Просмотров: 1054
Последний ответ 04.02.2023, 11:08:54
от tweenpix
Не могу установить языковой пакет для компонента Joomla Events Manager ((jem))

Автор Ded Magomed

Ответов: 0
Просмотров: 1304
Последний ответ 24.05.2022, 15:06:38
от Ded Magomed
Передать значение из шаблона в модель

Автор ruyurik

Ответов: 4
Просмотров: 863
Последний ответ 02.04.2020, 04:47:44
от ruyurik