Регистрация
Вход через соцсети
Восстановление пароля

Словарь терминов

Новый топик
19.02.2009, 22:04
Ответить | Цитировать
Гость
Гость

подскажите как можо реализовать словарь теримнов по типу алфавитного указателя?
Мои мысли:
Создать раздел "Словарь терминов" с подразделами "А", "Б", "В",...,"Я" в каждом подразделе испльзовать простейший шаблон на вроде новостей , но без анонса. В макете дизайна для словаря сделать навигацию по подразделам. Думал использовать компонент "спиоск подразделов", но там вертикальное отображение, а нужно горизонтальное - знаний не хватает переделать. ".s_browse_level(1,$browse_sub[1])." не работает, т.к. раздел "Словарь терминов" (с подразделами) сам является подразделом.
шаблон вывода навигации:
Код:
$browse_path[active_link] = "<b>%NAME</b>";
$browse_path[unactive] = "<a href=%URL>%NAME</a>";
$browse_path[active] = "<a href=%URL><b>%NAME</b></a>";
$browse_path[divider] = " // ";

$browse_global[prefix] = "<font size=-1><center>";
$browse_global[suffix] = "</font></center>";
$browse_global[active] = "%NAME";
$browse_global[unactive] = "<a href=%URL>%NAME</a>";
$browse_global[divider] = " | ";

$browse_cc[prefix] = "<ul>";
$browse_cc[suffix] = "</ul>";
$browse_cc[active] = "<li>%NAME>";
$browse_cc[unactive] = "<li><a href=%URL>%NAME</a>";
$browse_cc[divider] = "";

$browse_sub[1][prefix] = "<div>";
$browse_sub[1][suffix] = "</div";
$browse_sub[1][active] = "<b><a href=%URL>%NAME</a></b>";
$browse_sub[1][active_link] = "<b>%NAME</b>";
$browse_sub[1][unactive] = "<a href=%URL>%NAME</a>";
$browse_sub[1][divider] = " ";

$browse_sub[0][prefix] = "<ul>";
$browse_sub[0][suffix] = "</ul>";
$browse_sub[0][active] = "<li><b><a href=%URL>%NAME</b></a>".s_browse_level(1,$browse_sub[1]);
$browse_sub[0][active_link] = "<li><b>%NAME</b>".s_browse_level(1,$browse_sub[1]);
$browse_sub[0][unactive] = "<li><a href=%URL>%NAME</a>";
$browse_sub[0][divider] = "";

$browse_sub_ext[prefix] = "<ul><font size=-2>";
$browse_sub_ext[suffix] = "</font></ul>";
$browse_sub_ext[unactive] = "<li><a href=%URL>%NAME</a>";
$browse_sub_ext[divider] = "";

$browse_sub_list[prefix] = "<select onchange=\"window.open(this.value,'_top');\">";
$browse_sub_list[suffix] = "</select>";
$browse_sub_list[unactive] = "<option value='%URL'>%NAME";
$browse_sub_list[active] = "<option value='%URL' selected>%NAME";
$browse_sub_list[divider] = "";

$browse_map[sub_prefix] = "<ul>";
$browse_map[sub] = "<li><a href=%URL>%NAME</a>";
$browse_map[sub_suffix] = "</ul>";
$browse_map[catalogue] = "";

$browse_msg[prefix] = "";
$browse_msg[suffix] = "";
$browse_msg[active] = "<b>%PAGE</b>";
$browse_msg[unactive] = "<a href=%URL>%PAGE</a>";
$browse_msg[divider] = " | ";

$browse_catalogue[prefix] = "<b>";
$browse_catalogue[suffix] = "</b>";
$browse_catalogue[active] = "<b>%NAME</b>";
$browse_catalogue[unactive] = "<a href=%URL>%NAME</a>";
$browse_catalogue[divider] = " | ";

Структура такая:
->Библиотека
---->Словарь терминов
------>А
------>Б
------>В
------>...
------>Я
не могу разораться что куда дописать чтобы отображались подразделы только раздела "Словарь терминов"
В итоге получится раздел с 29 подразделами (исключаем буквы Й Ы Ъ Ь)
Может быть есть способ реализовать данную затею проще, в одном шаблоне в одном разделе?
И ещё: Как в таком случае сделать вывод случайного термина из всего словаря на другой странице? нашёл на форуме вот это:
Код:
".s_list_class(345,244,"&rands=1")."

в настройках шаблона с картинками в системные настройки добавить
if ($rands == 1) {
$query_order = "RAND()";
}

- это было в собщении про вывод рандомом картинок из одного раздела, а мне нужен вывод рандомом из нескольких разделов, т.е. 1 случайный термин из всех терминов всего алфавита. Такое возможно?
Также было бы хорошо организовать поиск по словарю.
19.02.2009, 22:25
Ответить | Цитировать
Гость
Гость

нужна именно горизонтальная навигация, потому как это
Код:
$browse_sub[1][prefix] = "<div>";
$browse_sub[1][suffix] = "</div";
$browse_sub[1][active] = "<b><a href=%URL>%NAME</a></b>";
$browse_sub[1][active_link] = "<b>%NAME</b>";
$browse_sub[1][unactive] = "<a href=%URL>%NAME</a>";
$browse_sub[1][divider] = " ";
делает вертикальную
19.02.2009, 23:48
Ответить | Цитировать
Гость
Гость

Для примера:
Код:
".s_browse_sub(143,$browse_sub[1])."

Эта строка выведет все подразделы раздела № 143, в каком разделе бы вы не находились.

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

Цитата:
".s_list_class($sub,$cc,"&rands=1&recNum=1")."
$sub - номер любого раздела с Буквой
$cc - номер 'шаблона в разделе' того любого раздела
$recNum - колличество случайных терминов

в настройках шаблона "словарь" в системные настройки добавить

if ($rands == 1) {
$ignore_sub = 1;
$ignore_cc = 1;
$query_order = "RAND()";
}


Поиск организовать не сложно. Либо также коррекцией sql-запроса в системных настройках, как и рандом.
Либо поставьте в настройках полей шаблона "словарь", по которым надо искать (например "термин"), галочку "Возможен поиск по этому полю". Затем откройте страницу
www.ваш_сайт.ru/путь/ИмяРазделаСЛюбойБуквой/search_ИмяРазделаСЛюбойБуквой.html

Там увидите форму поиска. Посмотрите хтмл-код, скопируйте ее код <form>..</form> и вставляйте куда угодно.

Чтобы искалось по всем разделам, нужно в системные настройки шаблона "словарь" добавить:

Код:
if ($srchPat) {
$ignore_sub = 1;
$ignore_cc = 1;
}


Пытался объяснить как проще.
20.02.2009, 19:59
Ответить | Цитировать
Гость
Гость

Спасибо большое!!!
всё работает, только поиск ещё не пробовал.
Возник вопрос:
Когда нахожусь на странице любой буквы словаря то случайный термин отображается, а когда нахожусь на главной странице словаря, или на любой другой странице сайта, то выводится содержимое компонента того раздела в котором сейчас нахожусь. Как на любой странице сайта выводить случайный термин из подразделов словаря (из разделов с буквами)?
Спасибо.
20.02.2009, 20:59
Ответить | Цитировать
Гость
Гость

".opt_case($f_Name,$f_Name,"В данном разделе нет терминов")."
не работает почемуто
20.02.2009, 23:33
Ответить | Цитировать
Гость
Гость

Поиск работает. Спасибо!!!
А как сделать чтобы в случае если искомый термин на найде выдавалось сообщения "Данного термина нет в словаре"?
26.02.2009, 15:23
Ответить | Цитировать
Гость
Гость

1.Когда нахожусь на странице любой буквы словаря то случайный термин отображается, а когда нахожусь на главной странице словаря, или на любой другой странице сайта, то выводится содержимое компонента того раздела в котором сейчас нахожусь. Как на любой странице сайта выводить случайный термин из подразделов словаря (из разделов с буквами)?

2. почему не работает
".opt_case($f_Name,$f_Name,"В данном разделе нет терминов")." ?
3. При поиске термина в словаре как сделать чтобы в случае если искомый термин не найден выдавалось сообщения "Данного термина нет в словаре"?
26.02.2009, 23:58
Ответить | Цитировать
Гость
Гость

Цитата:
1.Когда нахожусь на странице любой буквы словаря то случайный термин отображается, а когда нахожусь на главной странице словаря, или на любой другой странице сайта, то выводится содержимое компонента того раздела в котором сейчас нахожусь. Как на любой странице сайта выводить случайный термин из подразделов словаря (из разделов с буквами)?


".s_list_class($sub,$cc,"&rands=1&recNum=1")."

похоже вы не подставили вместо $sub и $cc значения раздела с буквой.

Например у вас у раздела "А" номер: 132, а у этого раздела компонент (см. используемые компоненты) равен номеру 65, тогда строка будет выглядеть:

".s_list_class(132,65,"&rands=1&recNum=1")."

Цитата:
2. почему не работает
".opt_case($f_Name,$f_Name,"В данном разделе нет терминов")." ?

В префиксе или суффиксе компонента поставьте:
".opt(!$totRows,"В данном разделе нет терминов")."

3. При поиске термина в словаре как сделать чтобы в случае если искомый термин не найден выдавалось сообщения "Данного термина нет в словаре"?

ответ в вопросе 2
12.03.2009, 14:03
Ответить | Цитировать
Гость
Гость

Спасибо. Всё работает.
Но появилась ещё проблема.
Теперь, в том месте, где отображается случайный термин из словаря, также отображается и навигации по объектам компонента в формате который указан в суффиксе списка объектов данного компонента. Как сделать так чтобы при отображении случайного термина на любой странице сайта не отображалась навигация по объектам в компоненте. Навигация должна быть только в разделе словарь терминов?
12.03.2009, 16:33
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Обычно делают так
в макете
Код:
".s_list_class($sub,$cc,"&isTitle=1&rands=1&recNum=1")."


в суффиксе
Код:
".($isTitle ? NULL : "...тут код вашего существуюещго суффикса...")."


Temet nosce...
16.03.2009, 13:30
Ответить | Цитировать
Гость
Гость

SRGFGFFFF
198 196 2009-03-16 13:30:06 7657
Описание проекта