Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

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

Andrey_by

  • Новичок
  • 8
  • 0 / 0
  • Исчадие добра
Передаю из плагина переменную в шаблон, но шаблон её "видит" только после второй перезагрузки.
Нужно было перенести скрипты из шапки в футер, вот как я это реализовал:

1)Написал плагин /plugins/system/htmlmin/htmlmin.php , где примерно следующее:
Код
public function onBeforeCompileHead()
{
$app = JFactory::getApplication();
if($app instanceof JApplicationSite & $app->isSite())
{
#Тут из $app удаляем нужные скрипты и заносим их в $Array
#Далее передаём $Array в шаблон
JFactory::getApplication()->setUserState(
'htmlmin.onbeforecompilehead.scripts',
$Array
);
}
}

2)В футере шаблона сайта /templates/xxx/index.php подключил php файл:
Код
<?php include 'footer_script.php';?>

3)В файле footer_script.php ловлю переменную из плагина:
Код
$Array = JFactory::getApplication()->getUserStateFromRequest( 'htmlmin.onbeforecompilehead.scripts', '' );

Подскажите где ошибка?
Если нужно скину ссылку на сайт.
Спасибо)
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Переменная из плагина в шаблон
« Ответ #1 : 18.08.2015, 20:34:40 »
Код: php-brief
public function getUserStateFromRequest($key, $request, $default = null, $type = 'none'){}
Посмотрите в /libraries/cms/application/cms.php. getUserStateFromRequest() используется, когда вы еще что-то передаете в $_REQUEST (2-я переменная, которой у вас нет).
В вашем случае используйте getUserState(), ее можно посмотреть в том же файле.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Andrey_by

  • Новичок
  • 8
  • 0 / 0
  • Исчадие добра
Re: Переменная из плагина в шаблон
« Ответ #2 : 18.08.2015, 21:36:23 »
Сделал как Вы сказали, результат тотже, передаётся только после перезагрузки страницы...
Код
$Array= JFactory::getApplication()->getUserState( 'htmlmin.onbeforecompilehead.scripts', '' );
Может переменная в плагине передаётся уже после генерации страницы?
Код
onBeforeCompileHead()
Посмотрите пожалуйста сами, в режиме браузера "инкогнито" http://stock-travel.com/strany/frantsuzskaya-polineziya/romantika-ili-realnost-romanticheskaya-realnost-dlya-dvoikh-vlyublennykh-skazochnyy-ostrov-bora-bora.html
При первой загрузке нет скриптов после </footer>, после перезагрузки появляются... мистика
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Переменная из плагина в шаблон
« Ответ #3 : 18.08.2015, 21:56:39 »
Приведите полный код плагина.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Andrey_by

  • Новичок
  • 8
  • 0 / 0
  • Исчадие добра
Re: Переменная из плагина в шаблон
« Ответ #4 : 18.08.2015, 22:23:15 »
Сразу оговорюсь что я не программист)
Вот код:
Спойлер
[свернуть]

Где же я ошибку допустил?..
« Последнее редактирование: 18.08.2015, 22:28:52 от Andrey_by »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Переменная из плагина в шаблон
« Ответ #5 : 18.08.2015, 23:30:07 »
Похоже на то, что UserState недоступно в первый раз, потому что cookie сессии еще не установлено.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Andrey_by

  • Новичок
  • 8
  • 0 / 0
  • Исчадие добра
Re: Переменная из плагина в шаблон
« Ответ #6 : 19.08.2015, 09:10:31 »
Подскажите пожалуйста, как выйти из этой ситуации? Как передать переменную уже при первом обращении к странице?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Переменная из плагина в шаблон
« Ответ #7 : 19.08.2015, 09:22:03 »
Мое имхо - никак. Все это делается в рамках одного запроса (выполнения приложения) и внутри него Вы не сможете использовать сессию для передачи данных.

Но можно попробовать в head документа добавить Вашу переменную. Вот пример.

Типа
Код: php
$document = JFactory::getDocument();
$headData = $document->getHeadData();
$headData['myArray'] = $array;
$document->setHeadData($headData);
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Переменная из плагина в шаблон
« Ответ #8 : 19.08.2015, 09:28:54 »
Попробуйте на onAfterRender использовать getBody(), регуляркой вставить нужное в нужном месте и потом setBody().
Не будь паразитом, сделай что-нибудь самостоятельно!
*

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Re: Переменная из плагина в шаблон
« Ответ #9 : 19.08.2015, 15:31:26 »
Вот, как один из вариантов. Без плагина, с подключением файла. Не вникал/проверял, но по описанию что-то похожее (недавно на форуме ссылка на это была где-то). Только под себя подгоните (стили не переносите, массив исключений ваш добавьте).
Веб-разработка: заказ. Только новая разработка.
*

Andrey_by

  • Новичок
  • 8
  • 0 / 0
  • Исчадие добра
Re: Переменная из плагина в шаблон
« Ответ #10 : 19.08.2015, 17:25:18 »
Мое имхо - никак. Все это делается в рамках одного запроса (выполнения приложения) и внутри него Вы не сможете использовать сессию для передачи данных.

Но можно попробовать в head документа добавить Вашу переменную. Вот пример.

Типа
Код: php
$document = JFactory::getDocument();
$headData = $document->getHeadData();
$headData['myArray'] = $array;
$document->setHeadData($headData);
Такой способ не подходит, с setHeadData() нельзя добавить индекс массива ['myArray'].
Пробовал setBuffer в плагине, но оттуда не доходит до шаблона...
Регуляркой делать не хочется, так как плагин в принципе рабочий, только передать из него массив в шаблон както нужно...
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Переменная из плагина в шаблон
« Ответ #11 : 19.08.2015, 20:38:56 »
Ну, во первых, плагин не совсем рабочий и передать переменную вам не удастся.
Во вторых, что не так с регуляркой? Вы ведь используете Joomla, а в ней регулярка сплошь и рядом, но вас это не беспокоит.
В конце концов, можно и без регулярки
Код: php-brief
$buffer=str_replace('</footer>','</footer>'.$blahblahblah,$buffer);
$app->setBody($buffer);
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Andrey_by

  • Новичок
  • 8
  • 0 / 0
  • Исчадие добра
Re: Переменная из плагина в шаблон
« Ответ #12 : 25.08.2015, 17:28:38 »
Спасибо robert, так и сделал. В onBeforeCompileHead передал все скрипты в _custom, а в onAfterRender вырезал их регуляркой и переставил в низ.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Шаблон заготовка masterbootstrap

Автор zxvorobey

Ответов: 1
Просмотров: 4400
Последний ответ 20.02.2018, 07:23:49
от effrit
Шаблон не видит переменные локализации кроме глобальных (Joomla 3.8)

Автор s.elena133

Ответов: 10
Просмотров: 5488
Последний ответ 09.12.2017, 18:27:18
от Ilhom666
Шаблон Shaper Xeon. Не переходит к созданным материалам

Автор wowcheg

Ответов: 1
Просмотров: 4637
Последний ответ 28.06.2017, 13:23:27
от sakhalin4242
Шаблон панели администратора ISIS 3 изменный

Автор beliyadm

Ответов: 11
Просмотров: 9905
Последний ответ 11.09.2016, 22:16:39
от beliyadm
Шаблон - как принято?

Автор Мурзик

Ответов: 5
Просмотров: 5101
Последний ответ 25.08.2016, 14:00:35
от beliyadm