Новости 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 Гость просматривают эту тему.
  • 28 Ответов
  • 6002 Просмотров
*

hubby

  • Новичок
  • 3
  • 0 / 0
  • Да...это я умею пузыри пускать...
Привет всем,

Есть еще вопрос по    поиску Joomla <span class="highlight">title</span>&#160;...  и т.д.  перейдите по ссылке

http://yuzhartbud.com.ua/component/search/?searchword=%D0%B0%D0%BA%D1%80%D0%B8%D0%BB%D0%BF%D0%B0%D0%B7&searchphrase=all&Itemid=0


это релиз 3.8.5

вроде писали на гитхубе   что проблема решена с обновлением после 3.7.3.,  но нет.

кто-то сталкивался?    помогите пожалуйста...

заранее спасибо за помощь.
*

Nonane

  • Захожу иногда
  • 62
  • 0 / 0
Посмотрел все свои сайты на котором включен поиск. На  3 последняя верси Joomla и на всех такой-же глюк
*

Nonane

  • Захожу иногда
  • 62
  • 0 / 0
 подождать следующей версии Joomla обещали исправить
« Последнее редактирование: 24.02.2018, 00:39:37 от Nonane »
*

dmitry_stas

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

Nonane

  • Захожу иногда
  • 62
  • 0 / 0
Это стандартный вывод поиска на любых шаблонах
*

dmitry_stas

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

bantell

  • Захожу иногда
  • 93
  • 2 / 0
повторю вопрос - на стандартном шаблоне Joomla, тот который Protostar, у вас есть такая ошибка? мне не на чем сейчас проверить, но мне кажется это проблема именно вашего шаблона, а не Joomla
судя по внешнему виду - это и есть Protostar
*

dmitry_stas

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

Missile

  • Завсегдатай
  • 1116
  • 90 / 1
У меня на сайте тоже к тем результатам поиска, где в заголовке присутствует запрашиваемое слово, добавляется "span class=highlight". Выглядит всё примерно так:
Цитировать
Одновременно ...">Один фотон может передавать информацию в двух направлениях одновременно...
P.S. Если заданное в поиске слово - "одновременно", то отображение будет таким, как выше. А если, скажем, это будет слово "фотон", то результат будет таким:
Цитировать
фотон ...">Один фотон может передавать информацию в двух направлениях одновременно...
То есть, в span оборачивается поисковый запрос. И это уже в рендере статьи происходит, в шаблоне никаких спанов нет. Шаблон - от Yootheme.
« Последнее редактирование: 24.02.2018, 10:16:13 от Missile »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
подождать следующей версии Joomla обещали исправить
кто и что обещал исправить, если исправлять нечего? http://prntscr.com/ij1f4v

в шаблоне никаких спанов нет. Шаблон - от Yootheme.
спанов нет, а экранирование спец. символов в шаблоне есть :) что и превращает спаны вот в такое. это проблема шаблона, пишите им в саппорт. экранирование в общем случае действительно нужно, потому что этот текст попадает в том числе и в title, и т.п., а там спец символы должны быть экранированы. но вот то, что в поиске название может содержать HTML разметку, они не учитывают.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Шаблон - от Yootheme.
Это ключевой момент: ваш шаблон переопрелелил вывод результатов поиска. Поищите у себя в templates/your_template/html/com_search/search/default_results.php что-то вроде
Код
echo $this->escape($result->title);

и поменяйте на
Код
echo $result->title;
В оригинальном default_results.php даже оставили предупреждение
Код
<?php // $result->title should not be escaped in this case, as it may ?>
<?php // contain span HTML tags wrapping the searched terms, if present ?>
<?php // in the title. ?>
...
<?php // see above comment: do not escape $result->title ?>

« Последнее редактирование: 24.02.2018, 10:52:29 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Nonane

  • Захожу иногда
  • 62
  • 0 / 0
Так не в каждой статье из поиска заголовок кривой выходит так что не доказательство что на пустой Joomla работает
*

dmitry_stas

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

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Так не в каждой статье из поиска заголовок кривой выходит так что не доказательство что на пустой Joomla работает
Вам ехать или доказательство? Никто не собирается вам что-либо доказывать. Вы спрашивали, вам ответили. Не хотите следовать советам? И не надо :).
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Nonane

  • Захожу иногда
  • 62
  • 0 / 0
Спасибо вечером попробую
*

Missile

  • Завсегдатай
  • 1116
  • 90 / 1
Это ключевой момент: ваш шаблон переопрелелил вывод результатов поиска.
Ага, я почитала уже: это - косяк Варпа. Я просто до этого на косяки поиска внимания не обращала, а тут заинтересовалась.
*

denbol

  • Новичок
  • 3
  • 1 / 0
Есть еще вопрос по поиску Joomla<span class="highlight">title</span>&#160;... и т.д.

В файле view.html.php (/components/com_search/views/search/)
меняем в 173 строке:
$result->title   = $rowTitleHighLighted;
на:
$result->title   = $rowTitle;
Мне помогло на Joomla! 3.8.5
« Последнее редактирование: 27.02.2018, 15:34:01 от denbol »
*

beliyadm

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

Nonane

  • Захожу иногда
  • 62
  • 0 / 0
Цитировать
В файле view.html.php (/components/com_search/views/search/)
меняем в 173 строке:
$result->title   = $rowTitleHighLighted;
на:
$result->title   = $rowTitle;
Мне помогло на Joomla! 3.8.5
Спасибо огромное. Warp правил, но после появился другая проблема с задвоением заголовка типа
Цитировать
< Астрахань> Астрахань всякая фигня
Поправил компонент и заработало
*

Slava77

  • Захожу иногда
  • 85
  • 7 / 0
Это ключевой момент: ваш шаблон переопрелелил вывод результатов поиска. Поищите у себя в templates/your_template/html/com_search/search/default_results.php что-то вроде
Код
echo $this->escape($result->title);

и поменяйте на
Код
echo $result->title;


Спасибо, замена кода помогла!!

Для тех кто использует YJSG Framework (Шаблоны YouJoomla ) правку кода как указано в примере от robert необходимо делать в файле находящемся вот здесь:

/plugins/system/yjsg/includes/html/com_search/search/default_results.php

Но при обновлении YJSG Framework (выходят достаточно часто) данные изменения потеряются, поэтому необходимо после внесенных изменений:
Скопировать всю папку com_search от сюда /plugins/system/yjsg/includes/html/com_search вот сюда: /templates/ваш шаблон/html/

Этим самым вы делаете переопределение шаблона поиска и при этом сохраняете оформление/стили поиска YJSG Framework.

Переопределение можно сделать и через админку: Расширения -> шаблоны-> ваш шаблон ->Создать переопределение -> Компоненты -> com_search - клик по -> search - в этом случае создастся переопределение шаблона "родного" поиска Joomla но оформление формы поиска YJSG Framework потеряются (например: классы у кнопки и пр.), поэтому лучше скопировать как указано выше всю папку com_search (в ней будет вложенная папка search а уже в ней 4 файла default.php, default_error.php, default_form.php, default_results.php )

Может быть кому-то пригодится!  ^-^
« Последнее редактирование: 23.04.2018, 05:58:23 от Slava77 »
*

Sergo43

  • Новичок
  • 1
  • 0 / 0
Здравствуйте.
А что делать, если в файле /templates/my_template/html/com_search/search/default_results.php содержатся только строки такого вида:
Код
$base = dirname(dirname(dirname(__FILE__)));
include($base.'/config.php');
include($warp['path']->path('layouts:'.preg_replace('/'.preg_quote($base, '/').'/', '', __FILE__, 1)));
Пока что сделал методом
Код
замена:
$result->title   = $rowTitleHighLighted;
на:
$result->title   = $rowTitle;
*

jesus

  • Захожу иногда
  • 127
  • 15 / 1
  • фронтенд ищет бэкенда для совместного творчества
Шаблон от JoomlaShine (JSN Framework), версия Joomla 3.8.8.
Наблюдалась описанная проблема.
Помогло решение с заменой echo $this->escape($result->title); на echo $result->title;
Баг в поиске Joomla 3.8.5
« Последнее редактирование: 09.02.2019, 16:17:32 от jesus »
Спасибо за freeware!
Если вы готовы небезвозмездно ответить на мой вопрос, с удовольствием рассмотрю предложение.
Ищу адекватного партнёра (программиста) по разработке сайтов на Joomla. Обеспечу ненапряжный поток задач.
*

xlenivecx

  • Новичок
  • 6
  • 0 / 0
В файле view.html.php (/components/com_search/views/search/)[/size]меняем в 173  строке:
$result->title   = $rowTitleHighLighted;  на: $result->title   = $rowTitle;

Спасибо вам люди добрые помогло! Joomla  3.8.10
*

keysii

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Здравствуйте. У меня шаблон tribune2. Такая же проблема - выводит в поиске именно в заголовках со span.
Поправила уже и этом файле component/com_search/views/search/view.html.php
и тут
/tribune2/html/com_search/search/default_results.php.
Но ничего не происходит.
*

sved2000

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
В файле view.html.php (/components/com_search/views/search/)[/size]меняем в 173  строке:
$result->title   = $rowTitleHighLighted;  на: $result->title   = $rowTitle;

Спасибо вам люди добрые помогло! Joomla  3.8.10

Спасибо большое, мне тоже помогло. Joomla! 3.8.5 Stable  :D
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Joomla! 3.9.1 Stable 2021 год, те же проблемы. Разрабы даже не чешутся, афигеть просто! crazy!
*

mak200

  • Захожу иногда
  • 107
  • 0 / 2
Пока не исправлено.
*

mocelon

  • Новичок
  • 2
  • 0 / 0
Кто знает, скоро пофиксят? В онлайн казино селектор можно получить бонусы за регистрацию, поиграть в онлайн казино можно не только на компьютере, но и на телефоне, а также можно найти промокоды в Selector Casino на тематических ресурсах[size]
*

mak200

  • Захожу иногда
  • 107
  • 0 / 2
В файле view.html.php (/components/com_search/views/search/)
меняем в 173 строке:
$result->title   = $rowTitleHighLighted;
на:
$result->title   = $rowTitle;
Мне помогло на Joomla! 3.8.5
Спасибо, помогло! Жаль, что слетает при обновлении версии.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Максимальная версия PHP для Joomla 3

Автор Dram

Ответов: 8
Просмотров: 1440
Последний ответ 27.03.2025, 10:40:29
от wishlight
Joomla! 3.9.21 Невозможно создать пункт меню

Автор edvalitto

Ответов: 1
Просмотров: 147
Последний ответ 26.03.2025, 19:26:30
от azm1n
Проблема со входом в панель администратора Joomla 3.x после обновления

Автор danieeljose

Ответов: 2
Просмотров: 332
Последний ответ 24.03.2025, 20:33:02
от R31rus
Обновление Joomla 3.10 до 4

Автор Scaltro

Ответов: 0
Просмотров: 711
Последний ответ 19.09.2024, 18:32:39
от Scaltro
How To Get URLs Of My Joomla Store

Автор jarethdf

Ответов: 1
Просмотров: 725
Последний ответ 22.08.2024, 14:48:44
от sivers