![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
|
|
#1 |
|
Senior Member
|
По-моему будет достаточно средств TYPO3 и MySQL.
В свою выборку картинок добавте: Код:
select {
// id of page with images = 17
pidInList = 17
// Добавить:
orderBy = RAND()
max = 5
}
|
|
|
|
|
|
#2 |
|
Новенький
Регистрация: 19.06.2009
Сообщений: 15
|
Спасибо, попробую... но разве orderBy - это не название поля? Туда можно всё что угодно писать?
И потом, со своим скриптом тоже хочется разобраться - почему он ничего не получает на вход? Или входом является не getCurrentVal() а что-то другое? P.S. Влепил, попробовал... ноль внимамания, фунт презрения. Даже на max не прореагировало. Может закешировалось? Но я почистил кеш, да и стоит COA_INT. Сменил pidInList на фальшивый - картинки пропали, вернул - снова вижу десяток в стандартном порядке... Как можно отдебаггить сам запрос в базу, чтобы проверить SQL? На сегоня хватит, уже голова не варит; завтра для разнообразия почитаю доки не по Typo3, а по SQL. В любом случае спасибо за наводку.P.P.S. Идиотизм. Включил админ-панель, там стоит правильный SQL и Non-cached objects/Include /10 CONTENT 705 5 +79 =84 NUMROWS: 1 [STRIKE]со вроде правильными 5 элементами...[/STRIKE] а следом ...-cached objects/Include /10/renderObj USER 928 79 в котором и лежит прежняя десятка. И чистка кеша Clear All Cache не помогает. Фтопку этот Typo3 вместе с сервером!!! Последний раз редактировалось dimal; 20.06.2009 в 02:39 Причина: ошибка |
|
|
|
|
|
#3 | |
|
Senior Member
|
Цитата:
|
|
|
|
|
|
|
#4 |
|
Новенький
Регистрация: 19.06.2009
Сообщений: 15
|
Чё-то я перенервничал, даже не выдержал и из дома посмотрел...
да, похоже RAND() не туда надо ставить, поскольку у меня на 17й странице не 10 элементов контента, а один с 10 рисунками. Но тогда куда же RAND() вставлять?! В "renderObj < tt_content.image.20" ? Но я и так там 2 дня из 3х возился... где в "tt_content.image.20" находится select?! Попробовать самому собрать "renderObj = IMGTEXT" с параметрами? Но в описании TSref для IMGTEXT тоже нет select! Единственно похожее поле "imgList.field = image", но где там место для "orderBy = RAND()"? Между прочим, предусмотренный для IMGTEXT "renderObj.imgMax=5" сработал, а вот наобум вставленное "renderObj.imgList.orderBy = RAND()" не помогло. В общем, отдохну до понедельника, может что придёт в голову новое... Последний раз редактировалось dimal; 20.06.2009 в 03:00 |
|
|
|
|
|
#5 |
|
Senior Member
Регистрация: 01.07.2008
Сообщений: 392
|
orderBy ставится в select. как понятно из названия, select - это sql запрос.
смотреть где то в районе CONTENT надо, а не IMGTEXT. |
|
|
|
|
|
#6 |
|
Senior Member
|
Я же вроде дал четко кусок ВАШЕГО кода, куда поставить orderBy...
Вот целиком, тогда: Код:
workOnSubpart = DOCUMENT
marks {
IMAGES = COA_INT
IMAGES {
10 = CONTENT
10 {
table = tt_content
select {
pidInList = 17
// Добавить:
orderBy = RAND()
max = 5
}
renderObj < tt_content.image.20
renderObj.maxW = 900
renderObj.maxWInText = 900
renderObj.spaceBelowAbove = 0
renderObj.colSpace = 0
renderObj.rowSpace = 0
renderObj.borderThick = 0
renderObj.textMargin = 0
renderObj.renderMethod = table
// renderObj.noStyle = 1
}
// end of CONTENT
// }
}
// end of IMAGES
// ...
}
// end of marks
|
|
|
|
|
|
#7 | |
|
Новенький
Регистрация: 19.06.2009
Сообщений: 15
|
Цитата:
![]() Правда вначале думал что из-за проблем с кешированием, а затем допетрил, что у меня стоит 1 (прописью: один!) элемент контента, и соответственно он и выводится в единственном числе, независимо от rand и max. А вот внутри этого элемента сидят не одна, а 10 картинок, поскольку они никакими параметрами, кроме имени файла и соответственно изображения, не различаются. У них ни заголовков, ни других тегов вообще никаких нет, и размеры в малом виде должны быть одинаковые, поэтому они спокойно все впихнулись в один-единственный элемент контента! Типа image. Там при вводе картинки BE спокойно допускает мультиввод имён файлов. И они спокойно отображаются все вместе. Но мне же надо только часть и в случайном порядке! Вот параметр imgMax в renderObj подействовал, ограничил выходную таблицу картинок 5ю первыми в списке. А где этот список строится (где-то внутри tt_content.image.20 ?) и что соответственно надо добавить в renderObj, я пока так и не понял. Но соль именно в том, что этот renderObj отрабатывает 1 раз, строя при этом все картинки как часть одного элемента, с единственным пустым заголовком и так далее... Вы сами можете проверить, добавив в любую страницу элемент image и указав в нём не одну картинку, а несколько штук! В понедельник попробую разбосать вместо 1 элемента с 10 картинками - 10 элементов по 1 картинке, тогда rand и max заработают. Правда редактору менее удобно, вместо простого перечисления файлов (а их может быть до сотни!) каждый раз новый контент-элемент заводить, ну и мне надо будет наверняка и renderObj переделать и с css заново возиться, переставлять стили... да и вообще хотелось бы до конца разобраться, а не просто обойти проблему. P.S. Забыл уточнить, что на этом сайте у меня стандартный Typo3, без TV. Последний раз редактировалось dimal; 20.06.2009 в 17:52 |
|
|
|
|