Новости Joomla

WT Yandex map items v.2.1.0 модуль для Joomla.Выводит материалы Joomla в виде меток на Яндекс.Карты

WT Yandex map items v.2.1.0 модуль для Joomla.Выводит материалы Joomla в виде меток на Яндекс.Карты

👩‍💻 WT Yandex map items v.2.1.0 модуль для Joomla.Выводит материалы Joomla в виде меток на Яндекс.Карты.v.2.1.0. Что нового?Сохранение последнего вида карты. Добавлены новые опции, позволяющие как для одного экземпляра модуля, так и для всех сохранять на устройстве пользователя последний использованный центр (координаты) и масштаб (zoom) карты. Это позволит открыть карту в том же месте после обновления страницы или при повторном открытии браузера.Определение местоположения пользователя.Модуль может определять местоположение пользователя и центрировать карту на нём. При одновременном использовании с функцией сохранения последнего вида карты определение геопозиции будет срабатывать только в первый раз. В дальнейшем, если обнаружены сохранённые данные центра и масштаба - будут использоваться они.CSS классы для маркеров карты.Всем маркерам карты добавлен CSS-класс wt-yandex-map-items-marker. Для просмотренных маркеров (по которым кликали) добавляется CSS-класс wt-yandex-map-items-marker-viewed, что позволит выделять просмотренные маркеры с помощью стилей в CSS-файлах вашего шаблона. Также для контейнеров маркеров ymaps на карте добавлены data-атрибуты: data-module-id - id модуля и data-marker-id - id маркера.Обработка GET-параметров в URL.Карта может реагировать на GET-параметры в url:- map[zoom] - устанавливает параметр масштаба.- map[center_latitude] и map[center_longitude] - широта и долгота центра карты.- map[marker_id] - id маркера, на котором центрируется карта.Таким образом вы можете создавать ссылку на карту с указанием конкретного маркера, на котором карта сфокусируется после загрузки маркеров. Например, https://site .ru/map?map[marker_id]=18465. Или же ссылку с указанием конкретных координат: https://site .ru/map?map[zoom]=16&map[center_latitude]=51.529706&map[center_longitude]=46.033922Страница расширенияGitHub расширенияВидео-обзор на YoutubeВидео-обзор на VK ВидеоВидео-обзор на Rutube@joomlafeed#joomla #yandex

Вышел Quantum Manager ver.3.2.1 и ver.2.0.5 — Релиз безопасности

Вышел Quantum Manager ver.3.2.1 и  ver.2.0.5 — Релиз безопасности

Вышел Quantum Manager ver.3.2.1 и ver.2.0.5 — Релиз безопасности.В последних версиях Quantum Manager устранены две уязвимости безопасности и исправлено несколько ошибок. Всем пользователям настоятельно рекомендуется обновиться до версии 3.2.1, чтобы обеспечить безопасность и актуальность установки.👩‍💻 Исправлены:1. XSS в SVG-файле. Запрещено выполнение встроенных в SVG скриптов.2. XSS по имени вредоносного файла. Больше никакого выполнения кода через имя файла.Поскольку эти проблемы влияют на безопасность сайта, мы подготовили две версии: одну для Joomla 5 и Joomla 4, а также дополнительную версию для Joomla 3 (предназначенную для устаревшего релиза Quantum Manager 2.0.4, для тех, кто все еще поддерживает сайты на Joomla 3).⚠️ Примечание: обновите Quantum Manager до версии 3.2.1 для Joomla 5 / Joomla 4 и установите Quantum Manager версии 2.0.5 для Joomla 3 (только исправления проблем безопасности).Команда NorrNext благодарит Joomla Security Strike Team и Joomla VEL Team за помощь в обнаружении и исправлении уязвимостей.Читать новостьСкачать@joomlafeed#joomla #расширения

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

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Подскажите как доработать стандартный плагин, чтобы он передавал в результаты поиска поля "Категория", "Картинка".

В плагине:
Код
		if (!empty($items)) {

// set renderer
$renderer = $this->app->renderer->create('item')->addPath(array($this->app->path->path('component.site:'), $this->app->path->path('plugins:search/zoosearch/')));

foreach ($items as $item) {
$row = new stdClass();
$row->title = $item->name;
$row->text = $renderer->render('item.default', array('item' => $item));
$row->href = $this->app->route->item($item);
$row->created = $item->created;
$row->section = '';
$row->browsernav = 2;
$rows[] = $row;
}

беда в том, что все элементы плагин передаёт в одну текстовую переменную text (может не текстовую, я не знаток пхп).
А в переменной section передается пустое значение. Картинка отсутствует.
Я задал $row->section =  '--------' . $category->name;
Но в поисковой выдаче появляется только --------. Я также в шаблоне разместил элемент "Категория", она передается и выводится через текст, но так не совсем красиво, так как категорию нельзя будет отделить от содержимого текста и невозможно будет её оформить CSS. Нужно чтобы категория или элемент категории выводились отдельно.


Вывод поискового компонента Joomla components\com_search\views\search\tmpl\default_results.php:
Код
	<?php if ($result->section) : ?>
<dd class="result-category">
<span class="small<?php echo $this->pageclass_sfx; ?>">
(<?php echo $this->escape($result->section); ?>)
</span>
</dd>
<?php endif; ?>
<dd class="result-text">
<?php echo $result->text; ?>
</dd>

И как передать картинку? ! !
« Последнее редактирование: 10.01.2017, 15:20:39 от newvideo »
*

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Re: Плагин поиска ZooSearch. Доработка
« Ответ #1 : 10.01.2017, 15:50:07 »
Вот что удалось сделать:

1. комментируем вывод секции в файле поискового компонента Joomla components\com_search\views\search\tmpl\default_results.php:
Код
<?php /*?>	<?php if ($result->section) : ?>
<dd class="result-category">
<span class="small<?php echo $this->pageclass_sfx; ?>">
(<?php echo $this->escape($result->section); ?>)
</span>
</dd>
<?php endif; ?><?php */?>

2. добавляем вывод секции в упрощенном виде (вывод секции выше по умолчанию выводит текст HTML с тэгами, а нам нужно чтобы красиво)
Код
	<dd class="result-text">
<?php echo 'text---------' . $result->text; ?>
 
это мы добавляем=  <?php echo $result->section; ?>
    
</dd>

3. В плагине plugins\search\zoosearch\zoosearch.php
Код
 закомментируем или удаляем  $row->text = $renderer->render('item.default', array('item' => $item));

ищем $row->section = '';
меняем на $row->section = $renderer->render('item.default', array('item' => $item));

так как вывод переменной section содержит различные элементы и слеплены друг за другом, то отображение красивого поиска зависит от порядка полей в шаблоне search. Если, например, картинка будет рядом с категорией, то они будут распологаться друг за другом в строчку, можно наверное отсечь с помошью CSS, но я просто поставил картинку вниз:



Теперь добавим CSS для маленьких картинок и цветов шрифтов:


Вот так передаются переменные в компонент:


Так выглядит итоговый вариант:


Конечно лучше если каждый элемент будет передаваться через переменную в компонент для более удобной верстки и оформления, но моих знаний в PHP недостаточно, поэтому такой вариант пока имеет место для жизни. Ещё недостаток: так как мы убрали переменную text, которая проходит через обработчик компонента, то теперь пропадает подсветка искомого слова.
« Последнее редактирование: 10.01.2017, 16:07:42 от newvideo »
*

shtier

  • Захожу иногда
  • 76
  • 6 / 0
Re: Плагин поиска ZooSearch. Доработка
« Ответ #2 : 10.01.2017, 16:39:20 »
Ни в коем случае не претендую на лучше решение!
default_results.php
Код
 ... 
<dl class="search-results<?php echo $this->pageclass_sfx; ?>">
<?php foreach ($this->results as $result) : ?>
<dt class="result-title">
<?php echo $this->pagination->limitstart + $result->count . '. ';?>
<?php if ($result->href) :?>
<a href="<?php echo JRoute::_($result->href); ?>"<?php if ($result->browsernav == 1) :?> target="_blank"<?php endif;?>>
<?php echo $this->escape($result->title);?>
</a>
<?php else:?>
<?php echo $this->escape($result->title);?>
<?php endif; ?>
</dt>
<?php if ($result->section) : ?>
<dd class="result-category">
<span class="small<?php echo $this->pageclass_sfx; ?>">
(<?php echo $result->section; ?>)
</span>
</dd>
<?php endif; ?>
<?php if ($result->image) : ?>
<dd class="result-image">
<?php echo $result->image; ?>
</dd>
<?php endif; ?>
<dd class="result-text">
<?php echo $result->text; ?>
</dd>
<?php if ($this->params->get('show_date')) : ?>
<dd class="result-created<?php echo $this->pageclass_sfx; ?>">
<?php echo JText::sprintf('JGLOBAL_CREATED_DATE_ON', $result->created); ?>
</dd>
<?php endif; ?>
<?php endforeach; ?>
</dl>
теперь про плагин
plugins\search\zoosearch\renderer\item
category.php
Код
...
// no direct access
defined('_JEXEC') or die('Restricted access');
echo $this->renderPosition('category');
default.php
Код
...
// no direct access
defined('_JEXEC') or die('Restricted access');
echo $this->renderPosition('description');
image.php
Код
...
// no direct access
defined('_JEXEC') or die('Restricted access');
echo $this->renderPosition('image');
positions.xml
Код
<?xml version="1.0" encoding="utf-8"?>
<renderer>
<positions layout="default">
<position name="description">Description</position>
</positions>
<positions layout="category">
<position name="category">Category</position>
</positions>
<positions layout="image">
<position name="image">Image</position>
</positions>
</renderer>
zoosearch.php
Код
...
$row = new stdClass();
$row->title = $item->name;
$row->text = $renderer->render('item.default', array('item' => $item));
$row->href = $this->app->route->item($item);
$row->created = $item->created;
// добавляем категорию
$row->section = $renderer->render('item.category', array('item' => $item));
// добавляем картинку
$row->image = $renderer->render('item.image', array('item' => $item));
$row->browsernav = 2;
$rows[] = $row;
...
Короче в итоге в админке будет не только default разметка в Search но и category, image. Сама верстка это все в default_results.php. Элементы добавлять в одноименные разметки по одной
по аналогии можно ещё что-нибудь добавить.  Чтобы всё это не затерлось - вносите изменения путем переопределений (override), а не напрямую
*

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Re: Плагин поиска ZooSearch. Доработка
« Ответ #3 : 10.01.2017, 19:17:06 »
Цитировать
Короче в итоге в админке будет не только default разметка в Search но и category, image. Сама верстка это все в default_results.php. Элементы добавлять в одноименные разметки по одной
по аналогии можно ещё что-нибудь добавить.  Чтобы всё это не затерлось - вносите изменения путем переопределений (override), а не напрямую
Спасибо за подключение!
В итоге у меня выводится только первая запись в поиске как нужно, остальные выводятся без текста.

Удаляю строки в плагине
/*            $row->section = $renderer->render('item.category', array('item' => $item));*/
/*            $row->image = $renderer->render('item.image', array('item' => $item));*/

и текст появляется во всех найденных записях.

Переопределение - хорошее замечание, добавил для компонента, а вот для плагина что-то не работает, наверное не предусмотрено.
*

shtier

  • Захожу иногда
  • 76
  • 6 / 0
Re: Плагин поиска ZooSearch. Доработка
« Ответ #4 : 11.01.2017, 07:26:58 »
есть такое...
тогда вот так
Код
		// execute query
$items = $this->app->table->item->all(compact('select', 'from', 'conditions', 'order', 'limit'));

// create search result rows
$rows = array();
if (!empty($items)) {

foreach ($items as $item) {

$row = new stdClass();
$row->title = $item->name;
$row->text = $this->renderPos('item.default', $item);
$row->href = $this->app->route->item($item);
$row->created = $item->created;
$row->section = $this->renderPos('item.category', $item);
$row->image = $this->renderPos('item.image', $item);

$row->browsernav = 2;
$rows[] = $row;

}

}

return $rows;
}
public function renderPos($pos, $item) {
// set renderer
$renderer = $this->app->renderer->create('item')->addPath(array($this->app->path->path('component.site:'), $this->app->path->path('plugins:search/zoosearch/')));
$result = $renderer->render($pos, array('item' => $item));
return $result;
}
*

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Re: Плагин поиска ZooSearch. Доработка
« Ответ #5 : 11.01.2017, 12:40:51 »
Fatal error: Call to undefined function renderPos()
*

shtier

  • Захожу иногда
  • 76
  • 6 / 0
Re: Плагин поиска ZooSearch. Доработка
« Ответ #6 : 11.01.2017, 12:48:06 »
Fatal error: Call to undefined function renderPos()
так вы эту функцию добавьте, я ведь её в примере (выше) привел
*

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Re: Плагин поиска ZooSearch. Доработка
« Ответ #7 : 11.01.2017, 17:06:43 »
так вы эту функцию добавьте, я ведь её в примере (выше) привел

Да, точно, я чёт подумал, что чего-то не хватает))))
Спасибо! Отличное решение!
Вот так вот в итоге получилось:
*

newvideo

  • Захожу иногда
  • 194
  • 2 / 0
Re: Плагин поиска ZooSearch. Доработка
« Ответ #8 : 11.01.2017, 17:34:11 »
Если сможете разобраться в проблеме смарт поиска, то было бы здорово http://joomlaforum.ru/index.php/topic,334259.0.html
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться