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

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

Ответ
 
Опции темы Опции просмотра
Старый 20.06.2009, 11:35   #1
Lucifer
Senior Member
 
Аватар для Lucifer
 
Регистрация: 01.07.2008
Сообщений: 392
По умолчанию

orderBy ставится в select. как понятно из названия, select - это sql запрос.
смотреть где то в районе CONTENT надо, а не IMGTEXT.
Lucifer вне форума   Ответить с цитированием
Старый 20.06.2009, 15:51   #2
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Я же вроде дал четко кусок ВАШЕГО кода, куда поставить 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 
А renderObj отвечает только за вывод одной строки результата, полученного из базы.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 20.06.2009, 17:24   #3
dimal
Новенький
 
Регистрация: 19.06.2009
Сообщений: 15
Exclamation

Цитата:
Сообщение от Pavel Antonov Посмотреть сообщение
Я же вроде дал четко кусок ВАШЕГО кода, куда поставить orderBy...
А я чётко следом написал, что поставил, проверил, и убедился что так не работает!

Правда вначале думал что из-за проблем с кешированием, а затем допетрил, что у меня стоит 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
dimal вне форума   Ответить с цитированием
Старый 21.06.2009, 23:45   #4
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

В этом случае вам надо копаться действительно в tt_content.image.20, а точнее, в class.tx_cssstyledcontent_pi1.php
Если я правильно понял код, то вам нужна userFunc в stdWrap-е параметра imgList.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 23.06.2009, 02:10   #5
dimal
Новенький
 
Регистрация: 19.06.2009
Сообщений: 15
Smile

Цитата:
Сообщение от void Посмотреть сообщение
В этом случае вам надо копаться действительно в tt_content.image.20, а точнее, в class.tx_cssstyledcontent_pi1.php
Если я правильно понял код, то вам нужна userFunc в stdWrap-е параметра imgList.
Спасибо за наводку, посмотрел но пока ничего там не понял. Покопаюсь потом, сейчас силов уж нетути...

А вариант с 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
dimal вне форума   Ответить с цитированием
Старый 23.06.2009, 16:15   #6
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Цитата:
Сообщение от dimal Посмотреть сообщение
Но уж очень много минусов... главный - вокруг каждого элемента стоит лишний DIV и лишняя таблица. Как их убрать, опять непонятно, а времени снова копать нет да и желания честно говоря поубавилось.
Другой минус - при вводе на каждую картинку надо минимум 7 кликов вместо одного. А при необходимости заменить один из файлов я вообще не нашёл пока другой возможности найти элемент с заменяемым файлом, как искать всё подряд... или тратить при вводе каждого ещё 2 клавиши копи-паст и пару кликов, называя элемент контента так же как файл.
Тогда не надо тянуть отображение картинки из css_styled_content. Написать все руками как надо:
Код:
...
renderObj = IMAGE
renderObj {
file.import = uploads/pics/
file.import.field = image
file.import.listNum = 0
...
}
Последнее ИМХО не проблема.. это не часто делается.

Еще у меня такое ощущение, что вы нам "не все о себе рассказали". Если Вам надо что то вроде баннеров, почему не взять именно баннерный плагин. Например machina_banners. Все ж придумали до нас.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 23.06.2009, 17:59   #7
dimal
Новенький
 
Регистрация: 19.06.2009
Сообщений: 15
Cool

Цитата:
Сообщение от Pavel Antonov Посмотреть сообщение
Еще у меня такое ощущение, что вы нам "не все о себе рассказали".
Угу... я Агент 008, с правом на убийство компьютеров, вот и секречусь даже от самого себя!
По примеру документации к Типу3, которая наполовину устарела а наполовину вообще отсутствует. Скажем, какой скрипт и в какой момент кладёт малые и большие копии моих картинок в uploads/pics и почему именно туда? И где в базе хранятся связи между моим именем картинки и именем генерированной из неё мелкой? Я предполагаю, что это делает какой-то скрипт BE в момент сохранения вставленного элемента контента... но это ведь нигде не описано!
Цитата:
Сообщение от Pavel Antonov Посмотреть сообщение
Если Вам надо что то вроде баннеров, почему не взять именно баннерный плагин. Например machina_banners. Все ж придумали до нас.
Может быть, но как мне было об этом догадаться? Логически это не баннеры (т.е. не иконки со ссылками куда-то вовне сайта), а больше похоже на кусочек галереи картинок на самом сайте.
И потом, если отключить флажок безопасности, появляется более трёх тысяч всяких плагинов, их даже просмотреть всех тяжко
Далее, загрузив этот плагин, надо будет в нём ещё разобраться - как использовать в нужном мне режиме... а доки там наверняка или вообще нет, или неполная.
В вашем написании вообще ничего не нашлось, по banners нашёлся "Macina Banners Extension ww_macinabanners", который оказался дополнением к "Advanced Banner Management macina_banners". По краткому описанию мне скорее нужно именно дополнение... а скорее всего не нужно ни то ни другое, а только стянуть с него метод перемешивания и вставить себе (в одно место). Причём для этого наверняка надо будет лезть в коды плагина. А дел ещё других полно... но все-таки потом полезу, посмотрю, а пока попробую ваш совет с "renderObj = IMAGE".
Кстати, я брал tt_content.image.20 (IMGTEXT) потому, что мне нужна именно готовая обвязка JavaScript-ом, а здесь наверняка придётся ее самому вставлять. Сейчас проверим...
dimal вне форума   Ответить с цитированием
Ответ


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

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

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


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


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

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