Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

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

Evenfrost

  • Осваиваюсь на форуме
  • 15
  • 1 / 0
Есть: http://site.ru/blog/design/item/статья
Нужно: http://site.ru/blog/design/статья

Кто-нибудь подскажет, откуда выпиливать?


-----
Быстрая навигация по топику:
Роутер для ZOO 2.5.12
Роутер для ZOO 3.0.10
« Последнее редактирование: 13.04.2013, 16:40:01 от Sulpher »
*

Kuzmitch

  • Захожу иногда
  • 150
  • 7 / 0
Есть: http://site.ru/blog/design/item/статья
Нужно: http://site.ru/blog/design/статья

Кто-нибудь подскажет, откуда выпиливать?
Тоже интерестно
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Переписыванием роутера или сторонними ЧПУ
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

djforce

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Ребятт так решил кто это? как в zoo 2.5 со стандартным SEF убрать item ?
*

Kuzmitch

  • Захожу иногда
  • 150
  • 7 / 0
Переписыванием роутера или сторонними ЧПУ
Скиньте у кого есть пример переписанного роутера. или ссылку где можно почитать - как переписать самому.
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Код: 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 || @$query['view'] == $task) {
$segments[] = $task;
unset($query['task']);
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']);
}
}

// 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[] = $app->alias->item->translateIDToAlias((int) $query['item_id']);
unset($query['task']);
unset($query['view']);
unset($query['item_id']);
unset($query['category_id']);
}

// 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 == 1) {
$vars['task']    = $task;
$vars['item_id'] = (int) $app->alias->item->translateAliasToID($segments[0]);
}

// 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]);
}

return $vars;
}
*

Evenfrost

  • Осваиваюсь на форуме
  • 15
  • 1 / 0
Виталик,
так дико сложно было указать строчку в файле, которую надо править, чтобы другим не пришлось перелопачивать весь документ? Не понимаю таких людей... Но и на том спасибо.

Для того, чтобы убрать /item/, нужно удалить строку 97 (ориентировочно, в ZOO 2.4.12) в файле \components\com_zoo\router.php:
Код: php
$segments[] = $task;
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
Для того, чтобы убрать /item/, нужно удалить строку 97 (ориентировочно, в ZOO 2.4.12) в файле \components\com_zoo\router.php:
Код: php
$segments[] = $task;
Если начали искать изменения, то просмотрите файл до конца и напишите обо всех отличиях от оригинального и проверьте работоспособность файла по своей инструкции прежде чем советовать другим просто убрать одну строку.
*

djforce

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
Спасибо, работает
*

pavel_28121

  • Захожу иногда
  • 266
  • 29 / 0
  • Cart for ZOO, Watermark for ZOO, Price fo ZOO
А как убрать category ?
Расширения для Yootheme ZOO http://zooapps.ru, а также профессиональная помощь по Yootheme ZOO. Расширения для ZOO на заказ. ZooCart, ZooWatermark, ZooPrice.
*

djforce

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
а как вы убираете?
Примажусь, тоже интересно)))
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
последнее время не убираю, так как на все категории есть пункты меня, а раньше в ZooBuildRoute просто не дописывал сегмент "category", а в ZooParseRoute сначала проверял является ли алиас категорией, а потом материалом
*

pavel_28121

  • Захожу иногда
  • 266
  • 29 / 0
  • Cart for ZOO, Watermark for ZOO, Price fo ZOO
А я убираю сторонним SEF и правкой sef_ext
Расширения для Yootheme ZOO http://zooapps.ru, а также профессиональная помощь по Yootheme ZOO. Расширения для ZOO на заказ. ZooCart, ZooWatermark, ZooPrice.
*

agro

  • Осваиваюсь на форуме
  • 21
  • 2 / 0
Тоже хотелось бы убрать item, items, itemstable в роутере каталога DJ2. Может кто-то имеет готовое решение.
*

ankoch

  • Захожу иногда
  • 498
  • 50 / 1
Цитировать
Как убрать /item/ из тела ссылки элемента?

В zoo 2.5.4 уже этой проблемы нет, нужно просто обновиться до этой версии.
*

Evenfrost

  • Осваиваюсь на форуме
  • 15
  • 1 / 0
Цитировать
В zoo 2.5.4 уже этой проблемы нет
И как эта проблема решается в 2.5.4? У меня как были в ссылках item'ы, так и остались. Стоит 2.5.5.
*

ankoch

  • Захожу иногда
  • 498
  • 50 / 1
http://www.yootheme.com/support/question/154
Цитировать
ZOO 2.5.4 fixed the content duplication issue. Try it and tell me if that works for you too

По крайней мере у меня работает и item'ов нет, однако category остались, когда переходишь из титульной страницы в одну из категорий.

Joomla 1.5.23 + zoo 2.5.4

P.S. только что обновил  zoo до 2.5.6 и category совсем исчезли.
*

ankoch

  • Захожу иногда
  • 498
  • 50 / 1
Стоит заметить, что старые ссылки с item'ами остались работоспособными.
« Последнее редактирование: 14.01.2012, 12:53:34 от ankoch »
*

61rus

  • Осваиваюсь на форуме
  • 47
  • 1 / 0
Так же обновился до последней версии, но item и catalog остались. возможно настройки где есть?
*

ankoch

  • Захожу иногда
  • 498
  • 50 / 1
Глупый вопрос, однако - SEO Joomla включено?
*

61rus

  • Осваиваюсь на форуме
  • 47
  • 1 / 0
Подскажите, это где?:)
*

61rus

  • Осваиваюсь на форуме
  • 47
  • 1 / 0
Если вы в кофигурации самой Joomla, то конечно:
Search Engine Friendly URLs
Use URL rewriting
Adds Suffix to URL
включено
*

ankoch

  • Захожу иногда
  • 498
  • 50 / 1
Да, это там. У меня Joomla 1.5.23, всё работает при аналогичных настройках.

Кстати, после этих изменений с item'ами и category'ями, в индексе у Яндекс вдруг ни с того ни с сего страниц в поиске увеличилось ровно в 3 раза.
*

61rus

  • Осваиваюсь на форуме
  • 47
  • 1 / 0
У меня 1.7.3 стоит ничего нет после обновления.
Нашел на одном сайте переделанный router.php убирается, но он для более старой версии написан, меняются другие урлы в худшую сторону. У вас Яндекс меньше чем за неделю прошустрил весь сайт и выкинул это уже в поиск?
*

ankoch

  • Захожу иногда
  • 498
  • 50 / 1
У вас Яндекс меньше чем за неделю прошустрил весь сайт и выкинул это уже в поиск?
Примерно за неделю.
*

61rus

  • Осваиваюсь на форуме
  • 47
  • 1 / 0
*

j-lubitel

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Ребят, а никто не пытался убрать component/zoo/tag/что-то-тут в пути при выводе результатов поиска по тэгам в zoo?
А еще если в тэге забито два слова, например "такая статья", то в пути получится "/такая%20статья", как бы убрать эти %20?
Joomla 1.5.23, zoo 2.5.6.
*

j-lubitel

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Я так понял, что за формирование ссылки по каждому тегу в модуле zootag (файл helper.php) отвечает строка

Код: php
$tag->href   = $menu_item ? sprintf('index.php?option=com_zoo&task=tag&tag=%s&app_id=%d%s', $tag->name, $application->id, $itemid) : $this->app->route->tag($application->id, $tag->name);

Только как её изменить, чтобы убрать "component/zoo"?
*

j-lubitel

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Или в файле component/com_zoo/router.php нужно будет добавлять дополнительные строки вот сюда?:
Код: php
	// tag
$task = 'tag';
if ((@$query['task'] == $task || @$query['view'] == $task) && isset($query['tag']) && isset($query['app_id'])) {
$segments[] = $task;
$segments[] = $app->alias->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']);
}
}
Только что добавлять? Подскажите знающие люди.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ссылки в JBZoo

Автор Whitelamb

Ответов: 3
Просмотров: 5281
Последний ответ 15.09.2017, 22:17:11
от isay777
[Решено] Как в модуле ZOO Item вывести название и описание категории?

Автор frolov.ar

Ответов: 13
Просмотров: 7739
Последний ответ 01.04.2017, 13:29:52
от rivermc
Как настроить отображение страницы элемента product в виде cookbook?

Автор saschka

Ответов: 1
Просмотров: 2245
Последний ответ 12.01.2017, 16:44:50
от shtier
Запись данных из элемента

Автор yandex_hb

Ответов: 0
Просмотров: 1599
Последний ответ 10.10.2016, 20:23:00
от yandex_hb
Модуль: ZOO item популярные за неделю ( НЕ бесплатно)

Автор dee88

Ответов: 4
Просмотров: 2772
Последний ответ 29.08.2016, 16:13:28
от ameli90