Новости Joomla

Рендер пользовательского поля внутри другого пользовательского поля. Joomla 5.3

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

<?php
$joomlaFieldContentPlugn->onContentPrepare('com_content.article', $fakeItem, $app->getParams());

Joomla постепенно переходит от простого указания аргументов для триггеров плагинов к собственным классам событий. Это позволяет не запоминать порядок передачи аргументов класса и использовать человекопонятные методы $event->getContext(), $event->getItem() и т.д. А то в одном месте в Joomla было $article, в другом - $item, в третьем ещё как-то... Порядку больше становится.

Сегодня обновил сайт клиентов до Joomla 5.3. В ней обновили контент-плагин fields и мой финт ушами с вызовом метода плагина отвалился потому, что я передавал в нём 3 аргумента, вместо одного. И для события onContentPrepare это должен быть объект класса ContentPrepareEvent. Как меняется фрагмент кода из предыдущего поста:

<?php
// мы находимся в файле макета поля

use Joomla\CMS\Event\Content\ContentPrepareEvent;
use Joomla\CMS\Factory;

$app = Factory::getApplication();
$fakeItem = new \stdClass();
// Получаем id текущего материала из объекта Input
$fakeItem->id = $app->getInput()->getInt('id');
// {field 29} - это шорт код вставки поля с id 29 - "ассортимент проекта"
// к содержимому поля конкатенируем шорт-код для обработки
$fakeItem->text = $field->value . '{field 29}';
// Получаем объект плагина
$joomlaFieldContentPlugn = $app->bootPLugin('fields', 'content');
// вызываем метод обработки напрямую
// вместо 3-х аргументов теперь указываем один
// это объект класса ContentPrepareEvent
$joomlaFieldContentPlugn->onContentPrepare(new ContentPrepareEvent('onContentPrepare', [
            'context' => 'com_content.article',
            'subject' => $fakeItem,
            'params'  => $app->getParams(),
            'page'    => 0,
        ]));
// выводим оба поля
echo $fakeItem->text;

@webtolkru 

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

Автарх

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Навигация DatsoGallery и OpenSEF
« : 13.10.2007, 16:48:09 »
Как ни странна подобная связка, но после уставновки последнего OpenSEF на Datsogallery 1.4.1 случился такой глюк:

Навигация по категориями на странице "<<В начало" "<Назад" "Дальше>" "В конец>>" выстроилась по вертикали перед названием категории (см. скриншот).

С чем это может быть связано ?

В исходнике страницы посмотрел: там за это отвечает класс: "button2-left(right) off", а в php коде галереи вроде нигде его нет :(
Как можно все починить ?

[вложение удалено Администратором]
*

temniy

  • Захожу иногда
  • 413
  • 85 / 9
Re: Навигация DatsoGallery и OpenSEF
« Ответ #1 : 13.10.2007, 18:24:59 »
скорее всего там div block без float'а. Дай этот кусок кода из баузера посмотреть.
Лучший хостинг от 1 евро!
Сервис whois  |  Домены по отличным ценам (более 80 зон, хорошие цены и консультации -> после регистрации)
*

Автарх

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: Навигация DatsoGallery и OpenSEF
« Ответ #2 : 13.10.2007, 21:21:59 »
Текст такой:

<td align='right'><div id='dt1'>
<div class="button2-right off"><div class="start"><span class="pagenav"><< В начало</span></div></div>
<div class="button2-right off"><div class="prev"><span class="pagenav">< Назад</span></div></div>
<div class="button2-left"><div class="page">
<span> 1 </span>
</div></div>
<div class="button2-left off"><div class="next"><span class="pagenav">Дальше ></span></div></div>

<div class="button2-left off"><div class="end"><span class="pagenav">В конец >></span></div></div><table cellspacing="1" cellpadding="10" border="0" width="100%"><tr><td align="left" colspan="2" class="sectiontableheader">Подкатегории</td></tr>
*

temniy

  • Захожу иногда
  • 413
  • 85 / 9
Re: Навигация DatsoGallery и OpenSEF
« Ответ #3 : 13.10.2007, 21:59:21 »
Ну и смотри стили
У <div id='dt1'> должно быть выставлено display:inline
У <div class="button2-right off"> и похожих - float:left
как минимум
Лучший хостинг от 1 евро!
Сервис whois  |  Домены по отличным ценам (более 80 зон, хорошие цены и консультации -> после регистрации)
*

Автарх

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: Навигация DatsoGallery и OpenSEF
« Ответ #4 : 14.10.2007, 00:21:50 »
В том то и дело, что не знаю, где найти описание этих классов :(
*

temniy

  • Захожу иногда
  • 413
  • 85 / 9
Re: Навигация DatsoGallery и OpenSEF
« Ответ #5 : 14.10.2007, 02:04:17 »
в css твоего шаблона. Если там нет - создай
Лучший хостинг от 1 евро!
Сервис whois  |  Домены по отличным ценам (более 80 зон, хорошие цены и консультации -> после регистрации)
*

Автарх

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: Навигация DatsoGallery и OpenSEF
« Ответ #6 : 14.10.2007, 15:33:26 »
Не... ну это можно сделать само собой. Но ведь где-то этот шаблон прописывается.
До ОПенСЕФ все же было как надо. Как минимум можно просто найти, где он до этого определялся.
*

temniy

  • Захожу иногда
  • 413
  • 85 / 9
Re: Навигация DatsoGallery и OpenSEF
« Ответ #7 : 14.10.2007, 15:48:10 »
у галереи своего css нет. Как сеф может влиять на css? Ну если только он заменяет стандартный вывод навигации на свой.
Лучший хостинг от 1 евро!
Сервис whois  |  Домены по отличным ценам (более 80 зон, хорошие цены и консультации -> после регистрации)

Re: Навигация DatsoGallery и OpenSEF
« Ответ #8 : 07.11.2007, 15:46:11 »
если кто остался в этой теме ещё, помогите, всё сделал как сказано, но навигация остаётся прежней.
сайт http://www.foto-colibri.ru/
*

temniy

  • Захожу иногда
  • 413
  • 85 / 9
Re: Навигация DatsoGallery и OpenSEF
« Ответ #9 : 07.11.2007, 15:52:36 »
если кто остался в этой теме ещё, помогите, всё сделал как сказано, но навигация остаётся прежней.
сайт http://www.foto-colibri.ru/
Что ты сделал, мил человек? В твоём css есть только это -
.button2-left off {

}
и где там флоаты?
Лучший хостинг от 1 евро!
Сервис whois  |  Домены по отличным ценам (более 80 зон, хорошие цены и консультации -> после регистрации)
*

revil

  • Захожу иногда
  • 103
  • 5 / 0
Re: Навигация DatsoGallery и OpenSEF
« Ответ #10 : 08.11.2007, 14:32:36 »
Проблема дейстивтельно в opensef, так как он подменяет стнадартную навигацию своей, ковыряй файл
administrator/components/com_sef/includes/pageNavigation.php

я убрал оттуда все лишние дивы и стало нормально :)
*

Full_crazy

  • Захожу иногда
  • 264
  • 48 / 0
  • Иногда думаю ...
Re: Навигация DatsoGallery и OpenSEF
« Ответ #11 : 14.11.2007, 15:08:45 »
Ну нет, чтоб написать - где ковырять  :P. Я тож обновился, вылезла эта гадость.... пришлось лезть в код, просто закомментировал в файле pageNavigation.php этот кусок
Код
/*if ($this_page > 1) {
$page = ($this_page - 2) * $this->limit;
$html .= "\n<div class=\"button2-right\"><div class=\"start\"><a href=\"#beg\" title=\"first page\" onclick=\"javascript: document.adminForm.limitstart.value=0; document.adminForm.submit();return false;\"><< Start</a></div></div>";
$html .= "\n<div class=\"button2-right\"><div class=\"prev\"><a href=\"#prev\" title=\"previous page\" onclick=\"javascript: document.adminForm.limitstart.value=$page; document.adminForm.submit();return false;\">< Previous</a></div></div>";
} else {
$html .= "\n<div class=\"button2-right off\"><div class=\"start\"><span class=\"pagenav\"><< Start</span></div></div>";
$html .= "\n<div class=\"button2-right off\"><div class=\"prev\"><span class=\"pagenav\">< Previous</span></div></div>";
}
$html .= "\n<div class=\"button2-left\"><div class=\"page\">";
for ($i=$start_loop; $i <= $stop_loop; $i++) {
$page = ($i - 1) * $this->limit;
if ($i == $this_page) {
$html .= "\n<span> $i </span>";
} else {
$html .= "\n<a title=\"#$i\" onclick=\"javascript: document.adminForm.limitstart.value=$page; document.adminForm.submit();return false;\"><strong>$i</strong></a>";
}
}
/*$html .= "\n</div></div>";
if ($this_page < $total_pages) {
$page = $this_page * $this->limit;
$end_page = ($total_pages-1) * $this->limit;
$html .= "\n<div class=\"button2-left\"><div class=\"next\"><a href=\"#next\" title=\"next page\" onclick=\"javascript: document.adminForm.limitstart.value=$page; document.adminForm.submit();return false;\"> Next ></a></div></div>";
$html .= "\n<div class=\"button2-left\"><div class=\"end\"><a href=\"#end\" title=\"end page\" onclick=\"javascript: document.adminForm.limitstart.value=$end_page; document.adminForm.submit();return false;\"> End >></a></div></div>";
} else {
$html .= "\n<div class=\"button2-left off\"><div class=\"next\"><span class=\"pagenav\">Next ></span></div></div>";
$html .= "\n<div class=\"button2-left off\"><div class=\"end\"><span class=\"pagenav\">End >></span></div></div>";
}*/
SEF работает.
Joomla! = невозможного почти нет!
*

Автарх

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Re: Навигация DatsoGallery и OpenSEF
« Ответ #12 : 16.11.2007, 01:49:43 »
Увы не помогло.
Как выяснилось SEF также дает ошибочную пагинацию при отображении материалов меню в виде блога.
Хотя может это только у меня так ?
*

Full_crazy

  • Захожу иногда
  • 264
  • 48 / 0
  • Иногда думаю ...
Re: Навигация DatsoGallery и OpenSEF
« Ответ #13 : 16.11.2007, 08:00:19 »
Может действительно у тебя.... я на нескольких сайтах проверил - убирается ошибочная пагинация. Вот здесь приложил исправленный файл, на всякий случай  ^-^
  Кеш почисти, на сайте или в прокси.... мало ли причин бывает.
Joomla! = невозможного почти нет!

Re: Навигация DatsoGallery и OpenSEF
« Ответ #14 : 16.11.2007, 08:31:16 »
Киньте сюда administrator/components/com_sef/includes/

Фаил pagenavigation.php из public_html/administrator/includes/  заменив другой фаил в папке.

Проблема исчезнет, OpenSEF тож будет норм работать.
*

revil

  • Захожу иногда
  • 103
  • 5 / 0
Re: Навигация DatsoGallery и OpenSEF
« Ответ #15 : 28.11.2007, 12:21:43 »
Может действительно у тебя.... я на нескольких сайтах проверил - убирается ошибочная пагинация. Вот здесь приложил исправленный файл, на всякий случай  ^-^
  Кеш почисти, на сайте или в прокси.... мало ли причин бывает.
путем удаления блока убирается не ошибочная пагинация, а убирается пагинация вообще, что конечно не выход
*

revil

  • Захожу иногда
  • 103
  • 5 / 0
Re: Навигация DatsoGallery и OpenSEF
« Ответ #16 : 28.11.2007, 13:11:34 »
Киньте сюда administrator/components/com_sef/includes/

Фаил pagenavigation.php из public_html/administrator/includes/  заменив другой фаил в папке.

Проблема исчезнет, OpenSEF тож будет норм работать.


У меня не исчезла, ссылки для перехода по страницам все равно не работали :(
Пришлось удалять OpenSEF так как и в других компонентах пагинация тоже не работала
« Последнее редактирование: 28.11.2007, 13:18:02 от revil »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Есть ли достойная замена для DatsoGallery?

Автор vbulletinX

Ответов: 5
Просмотров: 4444
Последний ответ 14.07.2022, 20:00:50
от marbert
В какую галерею перенести все фото из DatsoGallery?

Автор darkknight

Ответов: 5
Просмотров: 2757
Последний ответ 08.12.2021, 18:45:41
от sergeytolkachyov
[download] Datso Gallery (Download DatsoGallery free all version)

Автор beliyadm

Ответов: 354
Просмотров: 176304
Последний ответ 10.08.2018, 14:43:21
от pH43
cache заполняется DatsoGallery

Автор relat

Ответов: 3
Просмотров: 3120
Последний ответ 05.03.2018, 17:56:11
от beliyadm
DatsoGallery для Joomla 3.x

Автор vbulletinX

Ответов: 17
Просмотров: 6241
Последний ответ 17.06.2017, 11:05:19
от KisoN