![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
![]() |
#1 |
Senior Member
Регистрация: 01.07.2008
Сообщений: 392
|
![]()
orderBy ставится в select. как понятно из названия, select - это sql запрос.
смотреть где то в районе CONTENT надо, а не IMGTEXT. |
![]() |
![]() |
![]() |
#2 |
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 |
![]() |
![]() |
![]() |
#3 | |
Новенький
Регистрация: 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 |
|
![]() |
![]() |
![]() |
#5 | |
Новенький
Регистрация: 19.06.2009
Сообщений: 15
|
![]() Цитата:
![]() ![]() А вариант с 10 элементами по 1 картинке и orderBy=RAND() проверил сегодня - да, в принципе это работает! ![]() Но уж очень много минусов... главный - вокруг каждого элемента стоит лишний DIV и лишняя таблица. Как их убрать, опять непонятно, а времени снова копать нет да и желания честно говоря поубавилось. Другой минус - при вводе на каждую картинку надо минимум 7 кликов вместо одного. А при необходимости заменить один из файлов я вообще не нашёл пока другой возможности найти элемент с заменяемым файлом, как искать всё подряд... или тратить при вводе каждого ещё 2 клавиши копи-паст и пару кликов, называя элемент контента так же как файл. Так что советы по улучшению по-прежнему охотно принимаются. Вот собственно работающий вариант: Код:
temp.render_1 < tt_content.image.20 temp.render_1 { spaceBelowAbove = 0 colSpace = 0 rowSpace = 0 noRows = 1 textMargin = 0 borderThick = 0 textMargin = 0 renderMethod = table noStretchAndMarginCells = 1 noStyle = 1 stdWrap.wrap = <td>|</td> } ... IMAGES = COA_INT IMAGES { 10 = CONTENT 10 { table = tt_content select { pidInList = 19 orderBy = RAND() max = 5 } renderObj < temp.render_1 wrap = <table id="imagestring"><tr>|</tr></table> } } ... Последний раз редактировалось dimal; 23.06.2009 в 02:27 |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
|
![]() Цитата:
Код:
... renderObj = IMAGE renderObj { file.import = uploads/pics/ file.import.field = image file.import.listNum = 0 ... } Еще у меня такое ощущение, что вы нам "не все о себе рассказали". Если Вам надо что то вроде баннеров, почему не взять именно баннерный плагин. Например machina_banners. Все ж придумали до нас. |
|
![]() |
![]() |
![]() |
#7 | ||
Новенький
Регистрация: 19.06.2009
Сообщений: 15
|
![]() Цитата:
![]() ![]() По примеру документации к Типу3, которая наполовину устарела а наполовину вообще отсутствует. Скажем, какой скрипт и в какой момент кладёт малые и большие копии моих картинок в uploads/pics и почему именно туда? И где в базе хранятся связи между моим именем картинки и именем генерированной из неё мелкой? Я предполагаю, что это делает какой-то скрипт BE в момент сохранения вставленного элемента контента... но это ведь нигде не описано! Цитата:
И потом, если отключить флажок безопасности, появляется более трёх тысяч всяких плагинов, их даже просмотреть всех тяжко ![]() Далее, загрузив этот плагин, надо будет в нём ещё разобраться - как использовать в нужном мне режиме... а доки там наверняка или вообще нет, или неполная. В вашем написании вообще ничего не нашлось, по banners нашёлся "Macina Banners Extension ww_macinabanners", который оказался дополнением к "Advanced Banner Management macina_banners". По краткому описанию мне скорее нужно именно дополнение... а скорее всего не нужно ни то ни другое, а только стянуть с него метод перемешивания и вставить себе (в одно место). ![]() Кстати, я брал tt_content.image.20 (IMGTEXT) потому, что мне нужна именно готовая обвязка JavaScript-ом, а здесь наверняка придётся ее самому вставлять. Сейчас проверим... |
||
![]() |
![]() |