Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > TypoScript практикум

Ответ
 
Опции темы Опции просмотра
Старый 26.09.2006, 16:54   #1
Tod
Senior Member
 
Аватар для Tod
 
Регистрация: 25.03.2006
Сообщений: 627
Отправить сообщение для Tod с помощью ICQ
По умолчанию tt_news categories в <select>

В общем требуется вывести определенные категории новостей в блоки формы <select> допустим подкатегории категории1 в одном блоке, категории2 во втором и т.д.
Может кто-то сталкивался с этим и есть готовое решение? а то уже второй день копаюсь в коде((
__________________
Персональный блог про заработок в интернете + полезных блога про typo3 и wordpress
Tod вне форума   Ответить с цитированием
Старый 26.09.2006, 17:21   #2
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Цитата:
Сообщение от Tod
В общем требуется вывести определенные категории новостей в блоки формы <select> допустим подкатегории категории1 в одном блоке, категории2 во втором и т.д.
Может кто-то сталкивался с этим и есть готовое решение? а то уже второй день копаюсь в коде((
речь идет о форме поиска в новостях?
тогда можно пропатчить tt_news либо написать экст, который расширяет tt_news

Если это нужно за чем-то еще, то можно просто через TS сдеать

Код:
search_more = COA
search_more{
10 = TEXT
10.value =  
50 = CONTENT
50 {
    wrap = <select name="tx_ttnews[cat]" ><option value="">Все категории</option>|</select>
    table = tt_news_cat
    select {
        # the category folder(s)
        pidInList = 104
        andWhere = parent_category =  2
    }
    renderObj = COA

    renderObj {
        10 = TEXT
        10.field = uid
        10.dataWrap = <option value="|"
        20 = TEXT
        20 {
            field = title
            wrap =  selected="selected" >|</option>
            if {
                value.field = uid
                equals.data = GPvar:tx_ttnews|cat
            }
          
        }
        21 = TEXT
        21 {
            field = title
            wrap = >|</option>
            if {
                value.field = uid
                equals.data = GPvar:tx_ttnews|cat
                negate = 1
            }
        }
    }
}

}
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 26.09.2006, 17:38   #3
Tod
Senior Member
 
Аватар для Tod
 
Регистрация: 25.03.2006
Сообщений: 627
Отправить сообщение для Tod с помощью ICQ
По умолчанию

Это не для поиска, а для такой задачи. Есть 3 типа категорий новостей. Пользователь заходит на страницу сайта и видит 3 блока select, выбирает в трех этих полях определенные категории, нажимает submit и ему выводятся все новости, которые принадлежат к трем категориям, выбранных в блоках select. Благо в последних новостях появилась возможность связывать новость с несколькими категориями.
С вашим кодом сейчас попробую поэксперементировать, а что делать с submit? в данном случае. Я так понимаю нужно будет создать подстраницу, куда поместить элемент tt_new-LIST и чтобы там были требуемые мне параметры... а именно id категорий, выбраных пользователем в select... как тут быть?
__________________
Персональный блог про заработок в интернете + полезных блога про typo3 и wordpress
Tod вне форума   Ответить с цитированием
Старый 27.09.2006, 15:17   #4
Tod
Senior Member
 
Аватар для Tod
 
Регистрация: 25.03.2006
Сообщений: 627
Отправить сообщение для Tod с помощью ICQ
По умолчанию

Когда все начало получаться появилась такая фигня. Пишу типа для выборки категории:
Код:
categorySelection = TEXT
categorySelection.data = GPvar:menu1
Все работает. Теперь мне нужно загнать туда конструкцию типа
categorySelection = menu1, menu2, menu3.
Через COA не хочет работать... как мне объединить в одно три переменные? еще и через запятую...
__________________
Персональный блог про заработок в интернете + полезных блога про typo3 и wordpress
Tod вне форума   Ответить с цитированием
Старый 27.09.2006, 16:27   #5
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Попробуйте
Код:
 categorySelection = TEXT
categorySelection.dataWrap = {GPvar:menu1},{GPvar:menu2},{GPvar:menu3}
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 27.09.2006, 16:42   #6
Tod
Senior Member
 
Аватар для Tod
 
Регистрация: 25.03.2006
Сообщений: 627
Отправить сообщение для Tod с помощью ICQ
По умолчанию

void, огромнейшее спасибо!!!
Как все доделаю опубликую код полностью для решения поставленной задачки.
__________________
Персональный блог про заработок в интернете + полезных блога про typo3 и wordpress
Tod вне форума   Ответить с цитированием
Старый 27.09.2006, 18:44   #7
Tod
Senior Member
 
Аватар для Tod
 
Регистрация: 25.03.2006
Сообщений: 627
Отправить сообщение для Tod с помощью ICQ
По умолчанию

В общем, вот код, решающий поставленную задачу. производится выборка по трем категориям с помощью <select> на форме. Выводятся новости, принадлежащие к этим 3м категориям.
Код:
lib.cat_choose = COA
lib.cat_choose.wrap = <form action="index.php?id=16" method="post" name="Form1"><table width="630px" border="0" cellpadding="0" cellspacing="0"><tr valign="top"> | <td><input name="submit1" type="submit" value="Выбрать" class="button_style"></td></tr></table></form>
lib.cat_choose{
10 = TEXT
10.value =  
50 = CONTENT
50 {
    wrap = <td><select name="menu1" class="list_style"><option value="">Типы подарков</option>|</select></td>
    table = tt_news_cat
    select {
        # the category folder(s)
        pidInList = 2
        andWhere = parent_category =  3
    }
    renderObj = COA

    renderObj {
        10 = TEXT
        10.field = uid
        10.wrap = <option value="|"
        20 = TEXT
        20 {
           field = title
           wrap =  selected="selected" >|</option>
            if {
               value.field = uid
               equals.data = GPvar:menu1
           }
          
        }
        21 = TEXT
        21 {
            field = title
            wrap = >|</option>
            if {
               value.field = uid
               equals.data = GPvar:tx_ttnews|cat
               negate = 1
            }
        }
    }
}
52 = CONTENT
52 {
    wrap = <td><select name="menu2" class="list_style"><option value="">Категория2</option>|</select></td>
    table = tt_news_cat
    select {
        # the category folder(s)
        pidInList = 2
        andWhere = parent_category =  23
    }
    renderObj = COA

    renderObj {
        10 = TEXT
        10.field = uid
        10.wrap = <option value="|"
        20 = TEXT
        20 {
           field = title
           wrap =  selected="selected" >|</option>
            if {
               value.field = uid
               equals.data = GPvar:menu2
           }
          
        }
        21 = TEXT
        21 {
            field = title
            wrap = >|</option>
            if {
                value.field = uid
               equals.data = GPvar:tx_ttnews|cat
                negate = 1
            }
        }
    }
}
53 = CONTENT
53 {
    wrap = <td><select name="menu3" class="list_style"><option value="">Категория3</option>|</select></td>
    table = tt_news_cat
    select {
        # the category folder(s)
        pidInList = 2
        andWhere = parent_category =  24
    }
    renderObj = COA

    renderObj {
        10 = TEXT
        10.field = uid
        10.wrap = <option value="|"
        20 = TEXT
        20 {
           field = title
           wrap =  selected="selected" >|</option>
            if {
               value.field = uid
               equals.data = GPvar:menu3
           }
        }
        21 = TEXT
        21 {
            field = title
            wrap = >|</option>
            if {
               value.field = uid
               equals.data = GPvar:tx_ttnews|cat
               negate = 1
            }
        }
    }
}

}


[PIDinRootline = 9]
lib.choose_goods < plugin.tt_news
lib.choose_goods {
 code >
 code = LIST
 listOrderBy = title asc
 categoryMode = 1
 categorySelection = 27
 pid_list = 15
 templateFile = fileadmin/templates/podarki_template2.tmpl
}
[PIDinRootline = 16]
lib.choose_goods < plugin.tt_news
lib.choose_goods {
 code >
 code = LIST
 listOrderBy = title asc
 categoryMode = 2
 categorySelection = TEXT
 categorySelection.dataWrap = {GPvar:menu1},{GPvar:menu2},{GPvar:menu3}
 pid_list = 15
 templateFile = fileadmin/templates/podarki_template2.tmpl
}
[end]
Единственное, возможно последние 2 блока, где настраивается tt_news можно как-то укоротить?
!!!!А еще такая проблема. Все работает, но когда на странице, с отображаемыми результатами мы нажимае в браузере ссылку "назад", то вылазит сообщение об ошибке:
Database Error
The current username, password or host was not accepted when the connection to the database was attempted to be established!

Потом значит обновляем страницу и все работает. Почему так, кто-то может подсказать?
Может я в коде где-то ошибся...
зы. у меня там блоки новостей на 2х страницах. Изначально выводятся одни, а после выборки попадаем на другую страницу, где выводятся новости с учетом результатов этой выборки. Может Database Error можно избежать, если выводить все это на одну страницу. но как?
__________________
Персональный блог про заработок в интернете + полезных блога про typo3 и wordpress

Последний раз редактировалось Tod; 27.09.2006 в 18:48
Tod вне форума   Ответить с цитированием
Старый 27.09.2006, 19:18   #8
Tod
Senior Member
 
Аватар для Tod
 
Регистрация: 25.03.2006
Сообщений: 627
Отправить сообщение для Tod с помощью ICQ
По умолчанию

в общем, то был какой-то непонятный глюк от типо3. создал новую страницу, с теми же самыми настройками - все работает.
спасибо всем за помощь))
__________________
Персональный блог про заработок в интернете + полезных блога про typo3 и wordpress
Tod вне форума   Ответить с цитированием
Старый 21.12.2009, 16:48   #9
margol
Senior Member
 
Аватар для margol
 
Регистрация: 09.07.2007
Адрес: Волгоград
Сообщений: 322
Отправить сообщение для margol с помощью ICQ
По умолчанию

Спасибо огромное за код! Для именно этих задач подошел.
margol вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 21:53.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория