Вход для клиентов и партнеров
в начало сайта
Партнерская программаОнлайн демоСкачатьКарта сайта
 

Регламент
Документация
Часто задаваемые вопросы (FAQ)
Решения типовых вопросов
Форум поддержки
Библиотека разработчика

Посмотрите демо-ролики и убедитесь в том, что "Twilight CMS" очень удобна в управлении, понятна и проста.

Бесплатно скачайте "Twilight.Basic", установите на своем компьютере и изучите систему более детально.

Если вам нужно установить "Twilight CMS" на существующий сайт или разработать новый - обращайтесь в отдел интеграции.

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Форум поддержки

    Сборка сайта / Использование различных сервисов / алфавитная навигация

    есть новые сообщения  Время:   27.04.10 00:41
    Anonymous Возникла необходимость в алфавитной навигации - вывод на странице списка стран из таблицы (базы), но что-то не то выходит, что задумано.
    Есть страница country, на которой из таблицы country_list отрисовывается список стран согласно дизайна country_list. Сортировку хочу сделать через Cookie. Т.е. при клике по букве "А" устанавливается  onclick="setCookie(`sort`,`À`) (естественно с location.reload),а при отрисовке на странице изспользую $News[source: country_list; design: country_list; sort: country, asc; filter: $FirstLetter ["country"]$=$Cookie[sort]$]$, а на странице пусто. Если, к примеру, вместо значения куки указать явно значение страны onclick="setCookie(`sort`,`AUSTRIA`), а в фильтре укажу $News[source: country_list; design: country_list; sort: country, asc; filter: country=$Cookie[sort]$]$, то отрисовывает нормально и по значеню фильта AUSTRIA. На странице, для тестирования, специально через значение $Cookie[sort]$ и в дизайне через $FirstLetter [$Attribute:country$]$ вывожу значения - все нормально. Мне кажется, что что-то в фильтре на странице нужно дополнительно выводить через News, но что-то, по-моему, излишне услажняется...  
    есть новые сообщения  Время:   27.04.10 00:56
    Служба поддержки filter: $FirstLetter ["country"]$=$Cookie[sort]$]$

    Так работать не будет, см. описание работы фильтров. Слева может стоять только поле, как есть, как у вас во втором примере. Встроенной возможности фильтровать по одной букве в системе нет. Если вам нужна подобная функциональность, придется писать свой макрос или делать фильтрацию средствами Javascript.

    Мы не советуем делать подобные навигаторы, т.к. это неудобно в использовании (на наш взгляд). Обратите внимание на макрос JQAutocomplete, может быть это натолкнет на определенные решения, которые нам кажутся уместными.

    есть новые сообщения  Время:   27.04.10 00:56
    Anonymous Кстати, может есть готовый пример - выложите в http://www.twl.ru/tsdn
    есть новые сообщения  Время:   27.04.10 01:07
    Anonymous макрос JQAutocomplete больше годится для форм, а если в filter: country=$Cookie[sort]$ вместо $Cookie[sort]$ через News попробовать, опять-таки с помощью FirstLetter, вывести несколько параметров, к примеру Австралия или Австрия и т.д.?
    есть новые сообщения  Время:   27.04.10 02:08
    Служба поддержки filter: country in "Austria,Australia" работать будет. При чем только тут FirstLetter не очень понятно. Смотрите документацию, логика работы там описана.
    есть новые сообщения  Время:   27.04.10 11:51
    Anonymous Все-таки алфавитная навигация достаточно часто используется в интернете и в моем случае хотелось-бы её реализвать средствами системы.
    есть новые сообщения  Время:   28.04.10 08:52
    Sigurt Anonymous: Возможно решение проблемы тем, что вы заполняете таблицу, а навигацию саму делаете на jQuery, там и сортировка есть и прочее, по моему такой вариант быстрее будет. И как мне кажется удобнее для пользователей.
    есть новые сообщения  Время:   04.05.10 13:23
    Anonymous И все-таки мне удалось сделать алфавитную навигацию. Поскольку , как я думаю, решение такой задачи может заинтересовать других разработчиков, опишу вкратце, что я сделал.
    1. Самый первый вариант и самый простой. Просто добавляется сущность для буквы с шаблоном "string" и через админку заполняются все записи в базе. А далее через News отрисовываем на станице, так как надо, исключаю дублирование букв ключом distinct
    2. Поскольку в моем случае данные в базу записываются из формы на сайте и не очень хочется каждый раз вбивать буквы для навигации, я поступил следующим образом: добавил в форме скрытое (hidden) поле под основным:
    <input name=country onchange="FirstLetter(this.form)" onkeyup="FirstLetter(this.form)" onfocus="FirstLetter(this.form)">
    <input name=country_fl type=hidden>
    и маленький скрипт
    function FirstLetter(f){
        newVal = f.country.value.substr(0,1);
        f.country_fl.value = newVal.toUpperCase();
    }
    При заполнении поля формы country в поле country_fl автоматом прописывается первая буква страны, да еще сразу заглавная.
    Дальше уже дело техники, как отрисовать на странице. Поскольку сдесь может присутствовать т.н."человеческий фактор" и в поле формы "Страна / направление " могут ввести, например: Дрезден, Германия, в навигации эта запись будет присутствовать под буквой "Д", а по логике должна по букве "Г" - Германия, т.е. через админку все-таки придется контролировать и иногда исправлять.
    Второй пример полностью рабочий. Фильтр я организовал по кукисам. Все замечательно работает. Кому надо - дам ссылку.
    3. Есть еще третий (экспериментальный) вариант. Сделал по аналогии с формой из второго варианта шаблон для сущности с именем field_string_fl.html Привожу его содержание:
    <SCRIPT language=JavaScript>
    function FirstLetter(f){
        newVal = f.$name$.value.substr(0,1);
        f.$name$_fl.value = newVal.toUpperCase();
    }
    </SCRIPT>
    <input type="text" name="$name$" maxlength="1024" size=60 value="$value$" onchange="FirstLetter(this.form)" onkeyup="FirstLetter(this.form)">
    <input name="$name$_fl">
    Второе поле специально не делал hidden, что-бы видеть, как работает. Вроде нормально, но тут вариант не всегда применимый, хотя может кому и пригодится. Может разработчики системы и сделают что-то похожее
    есть новые сообщения  Время:   04.05.10 15:31
    Служба поддержки Решение имеет право на жизнь.

    Только не очень понятно зачем алфавит в справочник загонять, если можно его циклом в яваскрипте вывести на страницу, например. Или вообще жестко в шаблоне зашить, он же не меняется.

    есть новые сообщения  Время:   04.05.10 17:33
    Anonymous Я не стал искать легких путей, хотя сразу и была мысль вывести весь алфавит, но в моем случае выводится только тот список букв, на которые соответственно есть записи в справочнике. По-моему, стран на буквы "Ы", "Ь", "Ъ" или "Щ" еще не придумали :)
    Страница: << < 1 2 > >>

    Ваше имя:

    Email:

    Сообщение:

    Прислать оповещение на email, если мне ответят

     
    © 2003-17 Страта Технологии (создание сайтов, разработка cms), Twilight CMS in english.
    Наш адрес: Москва, пр. Маршала Жукова д.51
    Тел.: (495) 222-6436, E-mail: , карта сайта, условия использования информации о CMS
    Звоните через Skype:  

    Реклама: