Новости 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 

Вышел релиз Joomla 5.3.0

Вышел релиз Joomla 5.3.0

Проект Joomla с радостью объявляет о выходе Joomla 5.3 — последней минорной версии в серии Joomla 5.

Этот релиз сосредоточен на продуманных улучшениях, которые совершенствуют работу с CMS. От лучшей организации файлов и журналирования задач до расширенной обработки электронной почты и улучшенной доступности — Joomla 5.3 помогает администраторам и разработчикам работать более эффективно, сохраняя ваш сайт современным, безопасным и готовым к будущему.

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

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Добрый день. Прошу помощи!

Подскажите, как из списка товаров сделать ссылку не просто на страницу товара, а на закладку с отзывами?

Заранее спасибо!
« Последнее редактирование: 21.04.2015, 15:48:18 от dron »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
это должны позволять закладки - реагирование на изменение адресной строки, например название закладки после # (пример, посмотрите там например для КЕЛЬМА ВЕНЕЦИАНСКАЯ DEKOR есть отзывы и видео, и соответственно разные ссылки на них)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Позволяют. ID есть. Интересует, именно вид самой ссылки, до id
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну так она такая же как на сам товар
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
))) а как в шаблоне-то прописать ее? нельзя же прямой: shop/knigi/pushkin/skazki#rev )
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не понимаю вопроса, честное слово :) ну она ж у вас прописана на товар, так ведь? ссылка же есть на товар из списка?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Ок, видимо я не так объяснил...

Имеем код:

Код
<?php if ($this->allow_review){?>
<div class="review_mark"><?php print showMarkStar($product->average_rating);?></div>
<div class="count_commentar">
<?php print sprintf(_JSHOP_X_COMENTAR, $product->reviews_count);?>
</div>
<?php }?>

Где <?php print sprintf(_JSHOP_X_COMENTAR, $product->reviews_count);?> нужно сделать ссылкой на нужную закладку страницы товара.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
т.е. не из списка товаров, а из самого товара?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Нет, list_products - это шаблон списка товаров. минитрактора.ru - вот, что было понятнее
« Последнее редактирование: 24.01.2020, 00:19:10 от dron »
*

nevigen

  • Moderator
  • 10447
  • 863 / 25
  • http://n*****n.com
гы..
т.е. вы хотите чтобы из списка товаров, перейти в  товар по ссылке  http://minitractora.ru/магазин/товар#отзывы
и перешли в товар, на закладку отзывы и прокрутило до ИД(отзывы) блока с отзывами ? :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Нет, list_products

ну так тогда я же сказал что нужно. ссылка на товар у вас есть. добавляйте к ней что вам там надо для активной вкладки (вы сказали по ИД у вас это работает), и все
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
гы..
т.е. вы хотите чтобы из списка товаров, перейти в  товар по ссылке  http://minitractora.ru/магазин/товар#отзывы
и перешли в товар, на закладку отзывы и прокрутило до ИД(отзывы) блока с отзывами ? :)
ну да, а что не так? Часто сам так делаю на маркете, когда интересуют именно комментарии владельцев.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
та все так :) не понятно проблема в чем? все вроде, что надо сделать, написал
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10447
  • 863 / 25
  • http://n*****n.com
ну да, а что не так? Часто сам так делаю на маркете, когда интересуют именно комментарии владельцев.
ну так вам дали пример.
и сказали что табы должны поддерживать возможность обращения к ним.
то что есть ИД это еще не все ведь...
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Цитировать
то что есть ИД это еще не все ведь...
да, теперь уже понял. Нужно как-то табы переделывать...

Цитировать
та все так Azn не понятно проблема в чем? все вроде, что надо сделать, написал
я не могу как формируется сама ссылка! <a href="вот тут вот какой код должен быть">
*

nevigen

  • Moderator
  • 10447
  • 863 / 25
  • http://n*****n.com
<a href="ссылка на товар#нужный таб">
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
<a href="<?php print $product->product_link?>#tab_l5"> - да, значит ссылка верная, но, как вы и говорили, оказывется id не достаточно... "Замечательные люди" верстали проект (((((( Работают, ровно до получения денег. После все договоренности и обещания смываются в унитаз (((

Скажите, а где взять табы как в Вашем примере?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну доступа к сайту уже нет, так что готовый код дать не получится, но можно прям с фронта сайта и сдернуть, HTML и javascript видно же.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

nevigen

  • Moderator
  • 10447
  • 863 / 25
  • http://n*****n.com
Скажите, а где взять табы как в Вашем примере?
ну если не было требования к табам то как бы и вопрос такой себе... взяли один из способов
посмотрите табы на основе списков ul li, вариантов есть в сети.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
ну если не было требования к табам то как бы и вопрос такой себе... взяли один из способов
посмотрите табы на основе списков ul li, вариантов есть в сети.
все там было оговорено в ТЗ... просто есть такие люди.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
скрипт вот, вытянул:

Код: javascript
    jQuery(function($){
$('ul.tabs').delegate('li:not(.current)', 'click', function(){
$(this).addClass('current').siblings().removeClass('current')
.parents('div.section').find('div.box').hide().eq($(this).index()).show();
});
if(location.hash.substr(1)!= ''){
$('div.section').find('div.box').hide();
$('li.current').removeClass('current');
$(location.hash+'-1').show();
$('a[href^='+location.hash+']').parent().addClass('current');
}
});

ну а HTML думаю сами разберетесь
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
Благодарю!
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
сори
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод 3-х первых картинок в списке товаров категории

Автор rudoy24

Ответов: 30
Просмотров: 11245
Последний ответ 19.07.2024, 11:41:28
от juleczka
[Решено] Увеличение выбора покупаемых товаров + -

Автор Aspik

Ответов: 216
Просмотров: 46468
Последний ответ 02.08.2023, 21:31:25
от kit2m2
[Решено] Порядок подкатегорий

Автор jimka

Ответов: 7
Просмотров: 2304
Последний ответ 15.04.2021, 10:01:57
от jimka
Не работает ссылка после удаления круглой фиговины

Автор Concolor

Ответов: 14
Просмотров: 2287
Последний ответ 13.04.2021, 07:29:09
от Concolor
Ссылка на родительскую категорию в карточке товара

Автор diana1975

Ответов: 16
Просмотров: 2397
Последний ответ 17.09.2020, 22:41:26
от Biss