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

stepan39

  • Давно я тут
  • 248
  • 18
Добрый день!
Давно юзаю компонент 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

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
Вместо «<br>» напишите например «__», затем найдите файл, где формируется этот список и оберните вывод ссылки в условие.
Ну или выложите сюда код этого файла, помогу.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

stepan39

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

Shustry

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
В конце там цикл замените:

Код: 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>';
} // Закрываем условие
}
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

stepan39

  • Давно я тут
  • 248
  • 18
В конце там цикл замените
Не работает, к сожалению. В одну строку все буквы и формируются ссылки /___
*

Shustry

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
Тогда так:

Код: 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>';
}
}
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

stepan39

  • Давно я тут
  • 248
  • 18
Тогда так
По прежнему в одну строку и ссылки ___
*

Shustry

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
Здесь глоссарий выводится таблицей (http://rock-catalog.ru/labels), а в коде файла списком. Вы код не того файла выложили.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

stepan39

  • Давно я тут
  • 248
  • 18
Здесь глоссарий выводится таблицей (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

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
Не на тот глоссарий на сайте смотрел. У вас выше таблице, ниже списком. Попробуйте везде поставить одно подчёркивание. И в админке, и в коде, что я приводил. Должно работать.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
*

Shustry

  • Группа развития
  • 6430
  • 735
  • Рисую дизайны
Сперва проверьте, тот ли файл. Для этого замените

$output .= $glossary->name;

Например на

$output .= $glossary->name.'000';
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент - jxtcappbook как его русифицировать

Автор renault

Ответов: 2
Просмотров: 1347
Последний ответ 25.07.2017, 12:40:20
от markizmds
Оглавление статей как алфавит

Автор AlexAl

Ответов: 10
Просмотров: 1456
Последний ответ 02.07.2017, 15:45:18
от beliyadm
Как создать компонент-страницу, которая будет отображать просто мой PHP код?

Автор NDruce

Ответов: 1
Просмотров: 232
Последний ответ 17.06.2017, 18:12:17
от Septdir
Компонент Калькулятора "расчет стоимости on-line"

Автор feliks

Ответов: 15
Просмотров: 13938
Последний ответ 10.05.2017, 09:02:33
от Mick_20
Компонент «Личные сообщения»

Автор kost757

Ответов: 5
Просмотров: 1060
Последний ответ 18.02.2017, 15:19:26
от ksusha