![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
|
|
#1 |
|
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
|
|
|
|
|
|
#2 | |
|
Новенький
Регистрация: 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 |
|
|
|
|
|
|
#4 | |
|
Новенький
Регистрация: 19.06.2009
Сообщений: 15
|
Цитата:
Покопаюсь потом, сейчас силов уж нетути... ![]() А вариант с 10 элементами по 1 картинке и orderBy=RAND() проверил сегодня - да, в принципе это работает! Спасибо Pavel Antonov!Но уж очень много минусов... главный - вокруг каждого элемента стоит лишний 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 |
|
|
|
|
|
|
#5 | |
|
Senior Member
|
Цитата:
Код:
...
renderObj = IMAGE
renderObj {
file.import = uploads/pics/
file.import.field = image
file.import.listNum = 0
...
}
Еще у меня такое ощущение, что вы нам "не все о себе рассказали". Если Вам надо что то вроде баннеров, почему не взять именно баннерный плагин. Например machina_banners. Все ж придумали до нас. |
|
|
|
|
|
|
#6 | ||
|
Новенький
Регистрация: 19.06.2009
Сообщений: 15
|
Цитата:
Угу... я Агент 008, с правом на убийство компьютеров, вот и секречусь даже от самого себя! По примеру документации к Типу3, которая наполовину устарела а наполовину вообще отсутствует. Скажем, какой скрипт и в какой момент кладёт малые и большие копии моих картинок в uploads/pics и почему именно туда? И где в базе хранятся связи между моим именем картинки и именем генерированной из неё мелкой? Я предполагаю, что это делает какой-то скрипт BE в момент сохранения вставленного элемента контента... но это ведь нигде не описано! Цитата:
И потом, если отключить флажок безопасности, появляется более трёх тысяч всяких плагинов, их даже просмотреть всех тяжко ![]() Далее, загрузив этот плагин, надо будет в нём ещё разобраться - как использовать в нужном мне режиме... а доки там наверняка или вообще нет, или неполная. В вашем написании вообще ничего не нашлось, по banners нашёлся "Macina Banners Extension ww_macinabanners", который оказался дополнением к "Advanced Banner Management macina_banners". По краткому описанию мне скорее нужно именно дополнение... а скорее всего не нужно ни то ни другое, а только стянуть с него метод перемешивания и вставить себе (в одно место). Причём для этого наверняка надо будет лезть в коды плагина. А дел ещё других полно... но все-таки потом полезу, посмотрю, а пока попробую ваш совет с "renderObj = IMAGE". Кстати, я брал tt_content.image.20 (IMGTEXT) потому, что мне нужна именно готовая обвязка JavaScript-ом, а здесь наверняка придётся ее самому вставлять. Сейчас проверим... |
||
|
|
|
|
|
#7 |
|
Новенький
Регистрация: 19.06.2009
Сообщений: 15
|
Таки да, объект IMAGE с ручной обвязкой даёт требуемый результат. Пример ниже. Всем спасибо!
Впрочем, как немного освобожусь, вернусь к разбору тонкостей, плагинов-баннеров, собственных функций и прочего. Если обнаружу что-нибудь полезное для данного случая, отпишусь в этой теме. Но это будет наверно уже нескоро. ![]() PHP код:
|
|
|
|