Новости Joomla

Поток товаров, связанные товары для JoomShopping 5+.

Поток товаров, связанные товары для JoomShopping 5+.

Расширение для JoomShopping 5+, которое позволяет связывать товары между собой на основе общих характеристик, создавая логические группы товаров в каталоге.

Расширение реализует механизм связывания товаров, похожий на стандартный Related Products, но с дополнительной возможностью быстрого подбора товаров по характеристикам.

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

Назначение потока товаров в одном товаре является сквозным. Это обеспечивает автоматическую связь и возможность корректировки потока в каждом товаре, который к нему относится.

Страница расширения

@joomlafeed

👩‍💻 Joomla User Guide - новый портал документации для пользователей.

👩‍💻 Joomla User Guide - новый портал документации для пользователей.

Обычно над сайтом работают разные специалисты: контент-менеджеры, разработчики, администраторы и т.д. Долгое время документация для пользователей была на docs.joomla.org. Там по-прежнему хранится информация, актуальная для Joomla 2.5, Joomla 3 и немного для Joomla 4.

Для Joomla 5+ создан портал документации для пользователей Joomla — https://guide.joomla.org. В нём вы найдёте инструкции для контент-менеджеров и веб-мастеров, администраторов сайта:
- как работать с категориями, материалами, страницами сайта
- работа с модулями, стилями отображения
- загрузка картинок и работа с ними
- модули, плагины, компоненты, поиск, теги. процессы, мультиязычность, шаблоны писем, планировщик задач, микроразметка Schema.org...
- ... и многое многое другое, что вызывает так много вопросов у обычных пользователей Joomla.

Информация дана на английском языке. Можно использовать браузерный автоперевод для чтения по-русски или воспользоваться сайтом одного из энтузиастов Joomla-сообщества - https://jdocmanual.org, где даны ИИ-переводы на 9 (на данный момент) языков, включая русский.

Также всячески приветствуется помощь в наполнении портала документации. Ваша небольшая заметка или статья с парой скриншотов, ваш опыт - могут сэкономить тысячам и тысячам людей не один час Точно так же как и вы, пользуясь Joomla используете результаты трудов сотен людей со всего мира: от кода до документации.

Присоединяйтесь - это не сложно ) Главное начать ))

- https://guide.joomla.org/ - новы портал документации для пользователей Joomla 5+.
- https://docs.joomla.org/ - старый портал документации для пользователей Joomla 3.
- https://jdocmanual.org/ - документация по-русски (ИИ-перевод).

@joomlafeed

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

Лёхха

  • Новичок
  • 7
  • 0 / 0
Уважаемые гуру Joomla!

Как в Joomla 1.5 осуществлять сабж? Я действую так:
Код: php
$myObj = new MyClass;

$session = &JFactory::getSession();
$session->set('obj', $myObj);

Если потом попытаться извлечь объект из сессии вот так:
Код: php
$obj = $session->get('obj');

то получаем, что $obj имеет тип __PHP_Incomplete_Class, и значения полей сохраняются, но вот методы уже вызвать нельзя, вылезает ошибка, что "The script tried to execute a method or access a property of an incomplete object..."

Все эти операции делаются в контроллере, перед запуском метода execute контроллера я вставил оператор
Код: php
JLoader::register('MyClass', 'path_to_MyClass.php');
он, очевидно, работает, но это, очевидно, не помогает, чтобы объект правильно десериализовался из сессии.

Кто-нибудь сталкивался с подобной проблемой? Есть ли какая-нибудь успешная методика ее решения? Спасибо!
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Вот топик с обсуждением причины проблемы на оф. форуме: Storing Objects in the Session generates Fatal Errors. Цитирую:

Цитировать
Unfortunately you CANNOT rectify this error with a call to JLoader::register() because the problem is encountered long before Joomla executes a single line of your code.
What seems to be happening is that during initialization, Joomla executes a session_start which loads the session data... but when it encounters an instance of your application defined object, it throws up its hands and says "i don't know what this is". It passes its complaint on to the Joomla implementation of the __autoload() function but Joomla can't find your class definition either since your code has not executed yet so there's no way you can have primed autoload to find your function.
Obviously the short answer is to not store object variables in the session, but that hardly seems graceful or appropriate. I am wondering if anyone else has figured out a workaround or fix for this that doesn't involve hacking the core.
At the very least, I think Joomla should provide some kind of hook that would allow one to avoid this problem.
*

Лёхха

  • Новичок
  • 7
  • 0 / 0
Вот топик с обсуждением причины проблемы на оф. форуме: Storing Objects in the Session generates Fatal Errors. Цитирую:
Спасибо, я видел этот пост :) И там, к сожалению, не сказано, как решать проблему... Я так понимаю, что ее решение никому не нужно, т.к. ни в англ. ни в российском интернете нет совершенно никакой полезной инфы по этому поводу.

Однако как еще передавать от странице к странице объекты, кроме как не через сессию?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Однако как еще передавать от странице к странице объекты, кроме как не через сессию?
куки?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
куки?

Очень небезопасно. Но действительно можно. userxp писал как это можно сделать.

Ещё вариант (не выход, но вариант) - хранить в базе данных сериализованный объект в таблице типа:

|session_id|object|

И вытягивать по id сессии на каждой страничке.
« Последнее редактирование: 21.05.2009, 16:39:23 от VETERINAR »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
userxp - он же кстати в той теме (которую и вспомнил) писал что умеет работать через сессию, но там была 1.0.. может уже научился и в 1.5
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
*

Лёхха

  • Новичок
  • 7
  • 0 / 0
Вроде решил... Итак, перед вызовом execute() контроллера вставляем операторы
Код: php
JLoader::register('MyClass', 'path_to_MyClass.php');

Далее, (у меня в контроллере) созданный объект пихаем в сессию вот так:
Код: php
$myObj = new MyClass;

$session = &JFactory::getSession();
$session->set('myObject', serialize($myObj));

Когда нам нужно восстановить объект из сессии, делаем так:
Код: php
$session = &JFactory::getSession();
$myObj = unserialize($session->get('myObject'));

Вроде все нормально восстанавливается...
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Вроде все нормально восстанавливается...
при условии, что описание класса регистрируется до того, как происходит обращение к объекту в сессии... а если вдруг кто-то к нему обратиться до?
*

Лёхха

  • Новичок
  • 7
  • 0 / 0
при условии, что описание класса регистрируется до того, как происходит обращение к объекту в сессии... а если вдруг кто-то к нему обратиться до?
для этого в основном файле моего компонента (до вызова execute() контроллера), в котором собственно все это и происходит, регистрируются все классы моей библиотеки с помощью JLoader::register, поэтому, когда я в контроллере читаю/пишу сессию, все работает как надо... во всяком случае, я проверил, пока работает :) Хотя кто его знает, что там творится в этой Джумле.

Отсутствие доков просто убивает, комментов в коде нет, сейчас просматривал код JBuffer, чтобы понять, как он работает - функция открытия буфера с 4-я обязательными параметрами, 3 из которых вообще не используются! Естественно, все это не документировано. Зато параметры называются $mode, $options и &$opened_path!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как через AJAX запрос получить только данные из функции, без HTML кода?

Автор lottis

Ответов: 7
Просмотров: 4250
Последний ответ 26.03.2012, 02:40:54
от lottis
JSession, $_SESSION и captcha

Автор Helios

Ответов: 1
Просмотров: 2343
Последний ответ 17.02.2011, 16:24:43
от Stomp
Обновление модуля через AJAX

Автор malus

Ответов: 9
Просмотров: 3937
Последний ответ 26.03.2010, 20:11:26
от enshtein
передача данных в компоненте через GET и POST?

Автор NTFS

Ответов: 1
Просмотров: 2732
Последний ответ 12.03.2010, 10:02:28
от Mitrich
Как заставить компонет через Views - tmpl обрабатывать конструкцию jdoc:include type="modules"

Автор Арчик

Ответов: 4
Просмотров: 2367
Последний ответ 06.11.2009, 20:59:29
от Арчик