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

stepan39

  • Захожу иногда
  • 497
  • 27 / 0
Добрый день!
Давно юзаю компонент SEO Glossary https://www.joomunited.com/products/seo-glossary

Там, к сожалению, нет возможности отобразить  буквенный поиск построчно при использовании нескольких языков, т.е. так в оригинале:

Все А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

был задача - сделать так:

Все
А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Реализовал (возможно через ж...) просто добавив в настройках после каждого языка тег <br>
фактически использовав его вместо буквы алфавита.

Пример настроек:

<br>, А, Б, В, Г, Д, Е, Ё, Ж, З, И, Й, К, Л, М, Н, О, П, Р, С, Т, У, Ф, Х, Ц, Ч, Ш, Щ, Э, Ю, Я, <br>, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

Вот пример отображения: http://rock-catalog.ru/labels

Недостатки: появились ссылки вида http://rock-catalog.ru/labels/<br>
Они не отображаются на сайте, но все ведут естественно на 404

Сделал так в .htaccess:
redirect 301 /labels/<br> http://rock-catalog.ru/labels

Соответственно, для всех глоссариев (категорий) такие записи нужно продублировать.



*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Вместо «<br>» напишите например «__», затем найдите файл, где формируется этот список и оберните вывод ссылки в условие.
Ну или выложите сюда код этого файла, помогу.
*

stepan39

  • Захожу иногда
  • 497
  • 27 / 0
Вместо «<br>» напишите например «__», затем найдите файл, где формируется этот список и оберните вывод ссылки в условие.
Ну или выложите сюда код этого файла, помогу.
Вот код файла (сам вряд-ли условие грамотно напишу), только надо помнить, ради чего все это делалось - чтобы буквы разных языков отображались построчно. "Кривые" ссылки всего лишь следствие простого решения.
Спойлер
[свернуть]
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
В конце там цикл замените:

Код: php
foreach( $db->loadObjectList() as $glossary)
{
if ((trim($glossary->name)) == '___') { // В качестве разделителя три подчёркивания
$output .= '</ul><ul>'; // Закрываем лист, открываем новый.
} else { // Если не разделитель, то выводим элементы:
$nb++;

$output .= '<li>';

$class = "seoglGlossaryCurrentLink";
if ($glossary->id != $current_id)
{
$class = "seoglGlossaryLink";
}

$Itemid = JRequest::getVar( "Itemid", '' );
$url = JRoute::_( 'index.php?option=com_seoglossary&view=glossaries'. ( ( $letter !== null )? '&letter=' . $letter : '' ). '&catid=' . $glossary->id . ( (!empty($Itemid))? '&amp;Itemid=' . $Itemid : '') );
$output .= '<a href="'.$url.'" class="'.$class.'">';


$output .= $glossary->name;

$output .= '</a>';

$output .= '</li>';
} // Закрываем условие
}
*

stepan39

  • Захожу иногда
  • 497
  • 27 / 0
В конце там цикл замените
Не работает, к сожалению. В одну строку все буквы и формируются ссылки /___
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Тогда так:

Код: php
foreach( $db->loadObjectList() as $glossary)
{
if (preg_match('/___/i', $glossary->name)) {
$output .= '</ul><ul>';
} else {
$nb++;
 
$output .= '<li>';
 
$class = "seoglGlossaryCurrentLink";
if ($glossary->id != $current_id)
{
$class = "seoglGlossaryLink";
}
 
$Itemid = JRequest::getVar( "Itemid", '' );
$url = JRoute::_( 'index.php?option=com_seoglossary&view=glossaries'. ( ( $letter !== null )? '&letter=' . $letter : '' ). '&catid=' . $glossary->id . ( (!empty($Itemid))? '&amp;Itemid=' . $Itemid : '') );
$output .= '<a href="'.$url.'" class="'.$class.'">';
 
 
$output .= $glossary->name;
 
$output .= '</a>';
 
$output .= '</li>';
}
}
*

stepan39

  • Захожу иногда
  • 497
  • 27 / 0
Тогда так
По прежнему в одну строку и ссылки ___
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Здесь глоссарий выводится таблицей (http://rock-catalog.ru/labels), а в коде файла списком. Вы код не того файла выложили.
*

stepan39

  • Захожу иногда
  • 497
  • 27 / 0
Здесь глоссарий выводится таблицей (http://rock-catalog.ru/labels), а в коде файла списком. Вы код не того файла выложили.
Не совсем так. Вот шаблон вывода:
Спойлер
[свернуть]
Там есть
Код
<?php
if ( $this->params->get( 'alphabet', 1 )!= 0 )
{
echo $this->alphabetform;
}
?>
Формирование  alphabetform у нас только в файле, который я выложил.

В роутере еще есть кусок относительно алфавита:
Код
$alphabet = explode(',', str_replace('#', '(s)', $cat->alphabet));
foreach($alphabet as &$l)
$l = trim(mb_strtolower($l));

if (!in_array(mb_strtolower($letter), $alphabet)) {
JError::raiseError(404, JText::_("Page Not Found"));
return array();
}

$query['letter'] = (string)$letter;
array_shift($segments);
}

Весь роутер тут:
Спойлер
[свернуть]
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Не на тот глоссарий на сайте смотрел. У вас выше таблице, ниже списком. Попробуйте везде поставить одно подчёркивание. И в админке, и в коде, что я приводил. Должно работать.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Сперва проверьте, тот ли файл. Для этого замените

$output .= $glossary->name;

Например на

$output .= $glossary->name.'000';
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

DJ-Classifieds - компонент доска объявлений. Как скрыть системные сообщения

Автор user2008june

Ответов: 2
Просмотров: 603
Последний ответ 03.02.2022, 08:53:49
от user2008june
REreplacer 2.10.3 (Рус.) Компонент замены любых значений.

Автор ЗЛОЙ на всех

Ответов: 80
Просмотров: 24563
Последний ответ 28.12.2021, 23:06:04
от Vlad1
Компонент тестов Guru от iJoomla.com

Автор Фей

Ответов: 3
Просмотров: 667
Последний ответ 31.05.2021, 00:51:00
от AdWeb
Компонент Joomla для больших каталогов

Автор powerful888

Ответов: 15
Просмотров: 1395
Последний ответ 09.07.2020, 23:03:47
от voland
Компонент для животных найденных и для тех кого можно на дом взять

Автор powerful888

Ответов: 0
Просмотров: 571
Последний ответ 08.07.2020, 19:25:49
от powerful888