Новости Joomla

Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5

👩‍💻 Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5.Работает везде, где работают плагины группы content. Проверено в материалах, модулях, в описаниях товаров JoomShopping.Плагин конвертирует любую таблицу в адаптивную блочную сетку Bootstrap 5.В админке, в редакторе создаете таблицу, размещает в её ячейках контент, а на сайте эта таблица выводиться как адаптивная сетка из блоков. На мобильных устройствах контент размещенный в таблице будет виден и ничто не вылезет за пределы сайта как раньше.Версия плагина: 1.0.0. Разработчик предупреждает, что плагин пока не корректно работает со сложными таблицами (где много объединенных ячеек или столбцов) - данная проблема будет решена в следующих версиях. В дальнейшем планируется также добавление настроек.Стоимость: 2 500р. Тем, кто даст обратную связь по работе плагина и развёрнутый комментарий, тот получит скидку в 50% на любое другое платное расширение разработчика или сможет сделать заказ на разработку по льготной цене.Разработчик - участник нашего сообщества Дмитрий (@kit2m2).ПодробнееСайт разработчика@joomlafeed#joomla #JoomShopping #расширения

JoomShaper SP Page Builder 6: динамический контент, комментарии и Joomla 6

JoomShaper SP Page Builder 6: динамический контент, комментарии и Joomla 6

JoomShaper SP Page Builder 6: динамический контент, комментарии и Joomla 6.Анонсирован выход новой версии одного из самых распространённых конструкторов страниц на Joomla от студии JoomShaper.v.6.0.0. Что нового?Динамический контент. Добавлена ​​поддержка материалов Joomla в динамическом контенте.➕ Новые комментарии для Joomla. Введена встроенная система комментирования статей.➕ Плагин аватара пользователя. Включена поддержка изображений профиля через плагин SP Page Builder - Profile Image.🫥 Обновление: Добавлена ​​совместимость с моделями GPT-5.🫥 Обновление: добавлена ​​опция приоритета извлечения в надстройку «Изображение». 🫥 Обновление: улучшена скорость загрузки динамического контента.🫥 Обновление: включена поддержка вертикального видео в модулях «Видео» и «Модальные всплывающие окна».🛠 Исправление: исправлены ошибки, из-за которых дополнения к формам не работали на страницах динамических сведений.🛠 Исправление: устранены проблемы с разрывом макета и всплывающими окнами при разбиении на страницы динамической медиагалереи.🛠 Исправление: решена проблема с неработоспособностью списка ссылок на страницы в редакторе интерфейса.🛠 Исправление: Исправлены проблемы с маршрутизацией многоязычных страниц SEF.🛠 Исправление: устранена уязвимость критического обхода пути в Media Manager.Большое спасибо за ссылку участнику нашего сообщества Ринату Кажетову (@rkazhet)!Новость на сайте JoomShaper.@joomlafeed#joomla #расширения #шаблоны

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

Magos

  • Захожу иногда
  • 53
  • 0 / 0
Имеем Joomla 1.7.3 + Zoo 2.5.6 проблема старая но видимо так толком и не решенная дубли статей пример:
Имеем запись "Запись" в категориях "1,2,3" получаем на выходе:

1/item/запись
2/item/запись
3/item/запись

Как решить проблему или хотя бы убрать категорию и item из url? На всякий случай привожу код router.php

Код
<?php
/**
* @package   com_zoo
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/

// load config
require_once(JPATH_ADMINISTRATOR.'/components/com_zoo/config.php');

function ZooBuildRoute(&$query) {

$app = App::getInstance('zoo');

// init vars
$segments = array();

// frontpage
$task = 'frontpage';

if (@$query['task'] == $task) {
$segments[] = $task;
unset($query['task']);
unset($query['view']);

// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}

if (@$query['view'] == $task) {
unset($query['layout']);
unset($query['view']);

// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}

// category
$task = 'category';

if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['category_id'])) {
$segments[] = $task;
if ($query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['category_id']);

// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}

if (@$query['view'] == $task) {
unset($query['layout']);
unset($query['view']);

// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}

// alpha index
$task = 'alphaindex';

if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['alpha_char']) && isset($query['app_id'])) {
$segments[] = $task;
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
$segments[] = $query['alpha_char'];
unset($query['task']);
unset($query['view']);
unset($query['alpha_char']);
unset($query['app_id']);

// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}

// tag
$task = 'tag';

if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['tag']) && isset($query['app_id'])) {
$segments[] = $task;
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
$segments[] = $query['tag'];
unset($query['task']);
unset($query['view']);
unset($query['tag']);
unset($query['app_id']);

// pagination
if (isset($query['page'])) {
$segments[] = $query['page'];
unset($query['page']);
}
}

// item
$task = 'item';

if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['item_id'])) {
$segments[] = $task;
$segments[] = $app->alias->item->translateIDToAlias((int) $query['item_id']);
unset($query['task']);
unset($query['view']);
unset($query['item_id']);
}

if (@$query['view'] == $task) {
unset($query['layout']);
unset($query['view']);
}

// feed
$task = 'feed';

if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['type']) && isset($query['app_id']) && isset($query['category_id'])) {
$segments[] = $task;
$segments[] = $query['type'];
$segments[] = $app->alias->application->translateIDToAlias((int) $query['app_id']);
if ($query['category_id']) {
$segments[] = $app->alias->category->translateIDToAlias((int) $query['category_id']);
}
unset($query['task']);
unset($query['view']);
unset($query['type']);
unset($query['app_id']);
unset($query['category_id']);
}

// submission
$task = 'submission';
    $layout = 'submission';

if (((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == $layout)) {
$segments[] = $task;
            $segments[] = $layout;
$segments[] = $app->alias->submission->translateIDToAlias((int) $query['submission_id']);
            $segments[] = $query['type_id'];
            $segments[] = $query['submission_hash'];
            $segments[] = $app->alias->item->translateIDToAlias((int) @$query['item_id']);
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['submission_id']);
            unset($query['type_id']);
            unset($query['submission_hash']);
            unset($query['item_id']);
}

// submission mysubmissions
$task = 'submission';
    $layout = 'mysubmissions';

if (((@$query['task'] == $task || @$query['view'] == $task) && @$query['layout'] == $layout)) {
$segments[] = $task;
            $segments[] = $layout;
$segments[] = $app->alias->submission->translateIDToAlias((int) $query['submission_id']);
unset($query['task']);
unset($query['view']);
unset($query['layout']);
unset($query['submission_id']);
}

return $segments;
}

function ZooParseRoute($segments) {

$app = App::getInstance('zoo');

// init vars
$vars  = array();
$count = count($segments);

// fix segments (see JRouter::_decodeSegments)
foreach (array_keys($segments) as $key) {
$segments[$key] = str_replace(':', '-', $segments[$key]);
}

// frontpage (with optional pagination)
$task = 'frontpage';

if ($count == 1 && $segments[0] == $task) {
$vars['task'] = $task;
}

if ($count == 2 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['page'] = (int) $segments[1];
}

// category (with optional pagination)
$task = 'category';

if ($count == 2 && $segments[0] == $task) {
$vars['task']        = $task;
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[1]);
}

if ($count == 3 && $segments[0] == $task) {
$vars['task']        = $task;
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[1]);
$vars['page']        = (int) $segments[2];
}

// alpha index (with optional pagination)
$task = 'alphaindex';

if ($count == 3 && $segments[0] == $task) {
$vars['task']       = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['alpha_char'] = (string) $segments[2];
}

if ($count == 4 && $segments[0] == $task) {
$vars['task']       = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['alpha_char'] = (string) $segments[2];
$vars['page']       = (int) $segments[3];
}

// tag (with optional pagination)
$task = 'tag';

if ($count == 3 && $segments[0] == $task) {
$vars['task']   = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['tag']    = (string) $segments[2];
}

if ($count == 4 && $segments[0] == $task) {
$vars['task']   = $task;
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[1]);
$vars['tag']    = (string) $segments[2];
$vars['page']   = (int) $segments[3];
}

// item
$task = 'item';

if ($count == 2 && $segments[0] == $task) {
$vars['task']    = $task;
$vars['item_id'] = (int) $app->alias->item->translateAliasToID($segments[1]);
}

// feed
$task = 'feed';

if ($count == 3 && $segments[0] == $task) {
$vars['task'] = $task;
$vars['type'] = (string) $segments[1];
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[2]);
}

if ($count == 4 && $segments[0] == $task) {
$vars['task']        = $task;
$vars['type']        = (string) $segments[1];
$vars['app_id'] = (int) $app->alias->application->translateAliasToID($segments[2]);
$vars['category_id'] = (int) $app->alias->category->translateAliasToID($segments[3]);
}

// submission
$task = 'submission';
    $layout = 'submission';

if ($count == 2 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']   = $task;
$vars['layout'] = (string) $segments[1];
}

if ($count == 5 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']            = $task;
$vars['layout']          = (string) $segments[1];
$vars['submission_id']   = (int) $app->alias->submission->translateAliasToID($segments[2]);
            $vars['type_id']         = (string) $segments[3];
            $vars['submission_hash'] = (string) $segments[4];
}

if ($count == 6 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']            = $task;
$vars['layout']          = (string) $segments[1];
$vars['submission_id']   = (int) $app->alias->submission->translateAliasToID($segments[2]);
            $vars['type_id']         = (string) $segments[3];
            $vars['submission_hash'] = (string) $segments[4];
            $vars['item_id']         = (int) $app->alias->item->translateAliasToID($segments[5]);
}

// submission mysubmissions
$task = 'submission';
    $layout = 'mysubmissions';

if ($count == 2 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']   = $task;
$vars['layout'] = (string) $segments[1];
}

if ($count == 3 && $segments[0] == $task && $segments[1] == $layout) {
$vars['task']          = $task;
$vars['layout']        = (string) $segments[1];
$vars['submission_id'] = (int) $app->alias->submission->translateAliasToID($segments[2]);
}

// try to retrieve vars from menu item
if (empty($vars)) {
if ($menu_item = $app->object->create('JSite')->getMenu()->getActive()) {
$vars['task'] = @$menu_item->query['view'];

switch ($vars['task']) {
case 'frontpage':
if ($count == 1) {
$vars['page'] = (int) $segments[0];
}

break;
case 'category':
if ($count == 1) {
$vars['page'] = (int) $segments[0];
$vars['category_id'] = @$menu_item->query['category_id'];
}

break;
default:
break;
}
}
}

return $vars;
}[ /code]

Помогите пожалуйста
« Последнее редактирование: 09.02.2012, 18:25:52 от Magos »
*

Magos

  • Захожу иногда
  • 53
  • 0 / 0
Проблема решена установкой sh404SEF + плагина под zoo.
*

max777

  • Новичок
  • 3
  • 0 / 0
Приветствую, а можно чуть поподробнее - как решил проблему? какой плагин?
*

Apoca1ypto

  • Давно я тут
  • 749
  • 71 / 0
Как убрать /item/ из тела ссылки элемента
По поводу дублей, Zoo добавляет тэг c каноническим URL, который поддерживают Google и Яндекс.
Во время спора в Интернете Ваш оппонент приводит неопровержимые доказательства своей точки зрения? Не отчаивайтесь. До...тесь до орфографии.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать /item/ из тела ссылки элемента?

Автор Evenfrost

Ответов: 151
Просмотров: 49966
Последний ответ 12.03.2018, 12:05:20
от Apoca1ypto
[Решено] Как в модуле ZOO Item вывести название и описание категории?

Автор frolov.ar

Ответов: 13
Просмотров: 6152
Последний ответ 01.04.2017, 13:29:52
от rivermc
Модуль: ZOO item популярные за неделю ( НЕ бесплатно)

Автор dee88

Ответов: 4
Просмотров: 2376
Последний ответ 29.08.2016, 16:13:28
от ameli90
Zoo item (настройка)

Автор altry1st

Ответов: 26
Просмотров: 10908
Последний ответ 12.02.2016, 10:30:16
от ssttaass
Zoo item PRO + AJAX

Автор kozhenevsky

Ответов: 0
Просмотров: 1725
Последний ответ 05.07.2015, 18:17:26
от kozhenevsky