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

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

Ответ
 
Опции темы Опции просмотра
Старый 09.05.2011, 17:50   #1
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
По умолчанию Подсчет и вывод записей в текущей категории средствами typoscript

И так начну описывать задачу.
Есть три категории новостей в этих трёх категориях есть по несколько десятков записей новостей.
Вывод на странице делается базовыми средствами расширения. Вставил элемент контента "tt_news", код вывода "LATES", количество строк 3

На выводе имеем:
==================
[Категория 1]
[Заголовок 1]
[короткое описание 1]
-----------------------
[Категория 2]
[Заголовок 2]
[короткое описание 2]
-----------------------
[Категория 3]
[Заголовок 3]
[короткое описание 3]
==================
Все записи >>>

Каждая из этих категорий имеет разносное количество записей.
Нужно возле каждой категории вывести количество присоединенных к ней записей, а именно вот здесь...

plugin.tt_news.categoryTitles_stdWrap.wrap = | [Количество записей]

Для начало записал TS во так:
displayLatest {
categoryTitles_stdWrap {
append = CONTENT
append {
stdWrap.numRows {
table = tt_news [таблица с записами]
select.pidInList = 1 [место где есть записи]
}
}
}
category_stdWrap.wrap = |
}

На выводе имеем:
-----------------------
[Категория 3] [Количество записей]
[Заголовок 3]
[короткое описание 3]
==================
Все записи >>>

Все кажется хорошо, но возле каждой категории одинаковое количество записей подсчитанных и выведенных из [место где есть записи]. В то время как к каждой категории привязано резное количество записей.

Стал вопрос, как вывести количество записей привязных к текущей категории выведенных в списке последних записей?

К примеру вот так:
==================
[Категория 1] [Количество записей 10]
[Заголовок 1]
[короткое описание 1]
-----------------------
[Категория 2] [Количество записей 45]
[Заголовок 2]
[короткое описание 2]
-----------------------
[Категория 3] [Количество записей 5]
[Заголовок 3]
[короткое описание 3]
==================
Все записи [Количество записей 60] >>>

Понимаю, что нужно воспользоваться свойством "andWhere" или "where", но как не знаю?

Есть у кого либо какие то идеи?
__________________
Василий Мосийчук
The BAT!
TYPO3.NET.UA
BLOG.TYPO3.NET.UA

Последний раз редактировалось thebat; 09.05.2011 в 18:12
thebat вне форума   Ответить с цитированием
Старый 15.05.2011, 18:12   #2
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
Question

..., и так стало понятно, что вариантов пока нет! Может кто направит в нужное русло?
__________________
Василий Мосийчук
The BAT!
TYPO3.NET.UA
BLOG.TYPO3.NET.UA
thebat вне форума   Ответить с цитированием
Старый 16.05.2011, 01:20   #3
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

А описанный в TSRef select для CONTENT не подойдет разве? В нем как раз есть и where и andwhere.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 16.05.2011, 01:48   #4
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
По умолчанию

Да, я знаю об этих свойствах, но не могу построить подходящую конструкцию (запрос) и не знаю как их можно использовать в моем случае?
__________________
Василий Мосийчук
The BAT!
TYPO3.NET.UA
BLOG.TYPO3.NET.UA
thebat вне форума   Ответить с цитированием
Старый 16.05.2011, 02:25   #5
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Логично делать запрос к таблице новостей с условиями типа категория = 1 и новость не удалена и не спрятана:
Что-то типа
Код:
 SELECT *
FROM `tt_news`
WHERE `deleted` =0
AND `hidden` =0
AND `category` =2
-=UncleByte=- вне форума   Ответить с цитированием
Старый 16.05.2011, 22:58   #6
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
По умолчанию

Не выходит что-то у меня. Может давайте сложим в месте эту конструкцию?
К примеру:
=========
10 = CONTENT
10 {
table = tt_news # таблица с записями новостей
select {
selectFields = ??? # здесь не ясно что... возможно выделить столбец "category"
join = ??? # с этим я не знаю что делать
where = tt_news.deleted = 0 AND tt_news.hidden = 0 # учитывать все записи у кого 0 (то есть видна и не удалена), а если 1 и другое, то не учитывать.
andWhere {
dataWrap = tt_news.category = {field:uid} # текущая категория ...???
}
}
}
__________________
Василий Мосийчук
The BAT!
TYPO3.NET.UA
BLOG.TYPO3.NET.UA

Последний раз редактировалось thebat; 16.05.2011 в 23:08
thebat вне форума   Ответить с цитированием
Старый 17.05.2011, 03:12   #7
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Насколько я понимаю для подсчета нужно использовать count(*). Т.е. сгруппировать по полю category и потом посчитать по нему же. Как-то так.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 17.05.2011, 09:53   #8
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
По умолчанию

Отлично..., теперь у нас есть во это:

10 = CONTENT
10 {
table = tt_news # таблица с записями новостей
select {
pidInList = 1 # место где содержатся записи
selectFields = count(*) # выделить все записи в таблице "tt_news"
where = tt_news.deleted = 0 AND tt_news.hidden = 0 # учитывать все записи у кого 0 (то есть видна и не удалена), а если 1 и другое, то не учитывать.
andWhere {
dataWrap = tt_news.category = {field:uid} # текущая категория ...???
}
groupBy = tt_news.category # группировать по категории ...правильно ли?
}
}

Первое, нужно же определить текущую категорию и наверное составить условия ..., если совпадаю текущая категория с выделенной (найденной) в таблицей, то посчитать и показать возле текущей категории..., правильно ли я мыслю?
__________________
Василий Мосийчук
The BAT!
TYPO3.NET.UA
BLOG.TYPO3.NET.UA

Последний раз редактировалось thebat; 17.05.2011 в 10:05
thebat вне форума   Ответить с цитированием
Старый 17.05.2011, 12:21   #9
-=UncleByte=-
Senior Member
 
Регистрация: 14.04.2006
Сообщений: 1,159
Отправить сообщение для -=UncleByte=- с помощью ICQ Отправить сообщение для -=UncleByte=- с помощью Skype™
По умолчанию

Мне так кажется что не нужно каждый раз указывать полное имя таблица.поле, т.е. получается что-то типа:
Код:
10 = CONTENT
10 {
  table = tt_news
  select {
    pidInList = 1
    selectFields = count (*) category
    where = NOT deleted AND NOT hidden
    groupBy = category
...
  }
}
Вот что должно быть на месте многоточия я пока еще не думал и не придумал.
-=UncleByte=- вне форума   Ответить с цитированием
Старый 17.05.2011, 18:39   #10
thebat
Senior Member
 
Аватар для thebat
 
Регистрация: 05.09.2006
Адрес: TYPO3.if.ua
Сообщений: 224
Отправить сообщение для thebat с помощью ICQ Отправить сообщение для thebat с помощью AIM Отправить сообщение для thebat с помощью MSN Отправить сообщение для thebat с помощью Yahoo Отправить сообщение для thebat с помощью Skype™
По умолчанию

Нет, мы не там копаем.

Я обследовал таблицу "tt_new" и заметил, что поле "category" не содержит "uid" категории, выходит, что мы не можем таким образом отфильтровать записи определенной категории и вывести их количество.

Это означает, что нам надо взяться за таблицу "tt_news_cat"
__________________
Василий Мосийчук
The BAT!
TYPO3.NET.UA
BLOG.TYPO3.NET.UA
thebat вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод списка категорий для новостей gvv100 Общие вопросы 4 06.05.2010 16:18
Постраничный вывод записей андрей Общие вопросы 3 31.05.2005 01:37


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


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

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