Russian TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 15.07.2009, 19:57   #1
GAZok
Продвинутый
 
Регистрация: 26.05.2009
Сообщений: 53
По умолчанию вывод картинок других страниц

есть задача: вывести на одной странице картинки нескольких других страниц.

предположительно, думаю, картинки должны добавляться в поле "Files" и потом выводиться при помощи подобного кода:
Код:
subparts.header_img = IMAGE
subparts.header_img.file {
import.data = levelmedia: -1,slide
import = uploads/media/
import.listNum = 1
}
но в нем как то указывать ID необходимых страниц

реально ли это?
и нету ли какого то другого более удобного способа?


сразу задам другой вопрос, который меня давно беспокоит. В выше описанном коде используется параметр import.listNum = 1 для указания позиции картинки среди закачанных. по моему это не очень удобно и возможно в некоторых случаях даже и плохо. что если для некоторых страниц не нужно закачивать картинку 0 но нужно закачивать 1. тогда теряется порядок и код не сработает. есть какое либо решение данной не оптимальности?
GAZok вне форума   Ответить с цитированием
Старый 16.07.2009, 11:21   #2
Sergey M Nikitin
Administrator
 
Аватар для Sergey M Nikitin
 
Регистрация: 10.07.2007
Адрес: Moscow
Сообщений: 181
Отправить сообщение для Sergey M Nikitin с помощью ICQ Отправить сообщение для Sergey M Nikitin с помощью Skype™
По умолчанию

Для вывода данных из базы используйте CONTENT и RECORDS, насчет numList, а чем не устраивает загружать нулевую картинку? Если в поле картинки есть какие-либо данные, то нулевая картинка точно будет, в админке всегда есть возможность поставить нужную картинку на это место.
Sergey M Nikitin вне форума   Ответить с цитированием
Старый 16.07.2009, 12:38   #3
GAZok
Продвинутый
 
Регистрация: 26.05.2009
Сообщений: 53
По умолчанию

Цитата:
Сообщение от Sergey M Nikitin Посмотреть сообщение
...а чем не устраивает загружать нулевую картинку? Если в поле картинки есть какие-либо данные, то нулевая картинка точно будет, в админке всегда есть возможность поставить нужную картинку на это место.
Кажется мне, что возможен такой случай, когда закачиваются 2-ве картинки на страницу, но обе не являются обязательными. То есть возможно будет потребность для какой то из страниц закачивать только картинку 1, а картинку 0 не нужно (то есть использовать от отцовской страницы "import.data = levelmedia: -1,slide").

Сам с таким случаем пока не сталкивался, но кажется вот-вот столкнусь. Дело в том что я делаю редизайн сайта в котором для некоторых страниц закачаны картинки 0 (используются в хедере). Теперь мне необходимо для некоторых других страниц добавить еще по одной картинке, которые будут использоваться в другом месте. То есть они уже должны быть в позиции 1. Но для этих страниц пока не закачаны картинки 0, поскольку переиспользуются с отцовской страницы. получается что закачать картинку 1 я сразу не могу, сначала необходимо 0, но в этом случае картинка 0 отобразится в хедере, в чем потребности нет.

Вот я и думаю, то ли мой подход к решению задачи не правильный, то ли я слишком много ожидаю от TYPO3...
GAZok вне форума   Ответить с цитированием
Старый 16.07.2009, 13:00   #4
Sergey M Nikitin
Administrator
 
Аватар для Sergey M Nikitin
 
Регистрация: 10.07.2007
Адрес: Moscow
Сообщений: 181
Отправить сообщение для Sergey M Nikitin с помощью ICQ Отправить сообщение для Sergey M Nikitin с помощью Skype™
По умолчанию

Цитата:
Сам с таким случаем пока не сталкивался, но кажется вот-вот столкнусь. Дело в том что я делаю редизайн сайта в котором для некоторых страниц закачаны картинки 0 (используются в хедере). Теперь мне необходимо для некоторых других страниц добавить еще по одной картинке, которые будут использоваться в другом месте. То есть они уже должны быть в позиции 1. Но для этих страниц пока не закачаны картинки 0, поскольку переиспользуются с отцовской страницы. получается что закачать картинку 1 я сразу не могу, сначала необходимо 0, но в этом случае картинка 0 отобразится в хедере, в чем потребности нет.

Вот я и думаю, то ли мой подход к решению задачи не правильный, то ли я слишком много ожидаю от TYPO3...
У вас подход не много не правильный, зачем ассоциировать картинку с главной страницей, картинка <=> страница, или вам нужно чтобы определенная картинка выводилась на определенном уровне ?


1.Первая картинка в записи всегда "0"

2.Проще эту картинку определять через TS так как, тогда автоматически будет реализовано наследование от родительских страниц, можно попробовать поизвращаться через MHENU (rootline), сформировать строку-список и тем же import брать последнее значение, то есть ближайшую к странице картинку относительно предков, либо пишите функцию.

Если вы детальней опишите проблему, то я попробую (завтра-послезавтра) написать вам пример (через HMENU) и выложить ссылку на него.
Sergey M Nikitin вне форума   Ответить с цитированием
Старый 16.07.2009, 13:47   #5
GAZok
Продвинутый
 
Регистрация: 26.05.2009
Сообщений: 53
По умолчанию

почитал второй пост здесь: http://forum.typo3.biz/showthread.php?t=7518 и понял, что подхожу к typo3 не с той стороны

не буду пока что утруждать вас этой темой, поскольку она как бы не главная проблема у меня на сегодняшний день. но не исключено что вернусь к ней вскоре.

сейчас решаю вопрос с:
Код:
Для вывода данных из базы используйте CONTENT и RECORDS...
для начала я пытался узнать где именно в БД хранится данные о закачанных картинках. Есть подозрения что в поле media таблицы pages. Но данные там хранятся в типе BLOB и как их оттуда извлечь...... ?
GAZok вне форума   Ответить с цитированием
Старый 16.07.2009, 13:55   #6
Sergey M Nikitin
Administrator
 
Аватар для Sergey M Nikitin
 
Регистрация: 10.07.2007
Адрес: Moscow
Сообщений: 181
Отправить сообщение для Sergey M Nikitin с помощью ICQ Отправить сообщение для Sergey M Nikitin с помощью Skype™
По умолчанию

Вы сделайте хотя бы один CONTENT объект покрутите, повертите и все станет ясно, ничего "вытаскивать" не надо.
Sergey M Nikitin вне форума   Ответить с цитированием
Старый 16.07.2009, 14:49   #7
GAZok
Продвинутый
 
Регистрация: 26.05.2009
Сообщений: 53
По умолчанию

попробовал этот вариант:
Код:
subparts.testimg = TEXT
subparts.testimg.data = DB : pages:2:media
получил список названий файлов картинок:
4-tunnels-of-light_02.jpg,bdu.gif
но как бы попарсить строку и получить второе название файла чтобы использовать дальше

То что вы советовали относительно CONTENT, попробовал:
Код:
subparts.testimg = CONTENT
subparts.testimg {
table = pages
select.orderBy = sorting
select.where = colPos=0
select.languageField = sys_language_uid
##select.pidInList = 2 - так же пробовал этот вариант
select.uidInList = 2
}
в результате ничего не возвращает. не стал с этим запариваться поскольку все равно не понимаю как при помощи CONTENT получить интересующую картинку закачанную в поле file. На сколько я понял CONTENT используется для отображения всего контента заданной страницы
GAZok вне форума   Ответить с цитированием
Старый 16.07.2009, 15:04   #8
Sergey M Nikitin
Administrator
 
Аватар для Sergey M Nikitin
 
Регистрация: 10.07.2007
Адрес: Moscow
Сообщений: 181
Отправить сообщение для Sergey M Nikitin с помощью ICQ Отправить сообщение для Sergey M Nikitin с помощью Skype™
По умолчанию

Цитата:
subparts.testimg = TEXT
subparts.testimg.data = DB : pages:2:media
Код:
subparts.testimg = TEXT
subparts.testimg.import.data = DB:pages:2:media
subparts.testimg.import.listNum = 0 #либо 1 для 2ого изображения 2 для третьего и т.д.
Читайте что есть stdWrap

Цитата:
subparts.testimg = CONTENT
subparts.testimg {
table = pages
select.orderBy = sorting
select.where = colPos=0 #Это поле есть только в tt_content, выборка провалиться
select.languageField = sys_language_uid #это нужно для локализации, если у вас несколько языков сайтов
##select.pidInList = 2 - так же пробовал этот вариант
select.uidInList = 2 #Здесь выбираете конкретную страницу
}
Выводить у вас кто будет ? - Никто - для этого надо описать объект renderObj

Код:
obj = CONTENT  #См. TsRef "CONTENT"
obj{
  table = pages
  select{  #См. TsRef "select"
    select.uidInList = 2
  }
  renderObj = COA  #См. TsRef "COA"
  renderObj{
    wrap = <div>|</div>
    10 = TEXT 
    10.field = title #См. TsRef "stdWrap"
    20 = IMAGE #См. TsRef "IMAGE"
    20{
      file.import = uploads/pics/ #скорей всего такой хотя надо смотреть где именно хранится фотка, посмотрите в uploads #См. TsRef "stdWrap > import"
      file.import.field = media
      file.import.listNum = 1 #Либо другой индекс
    }
  }
}
Sergey M Nikitin вне форума   Ответить с цитированием
Старый 16.07.2009, 15:38   #9
GAZok
Продвинутый
 
Регистрация: 26.05.2009
Сообщений: 53
По умолчанию

вот код который срабатывает:
Код:
subparts.testimg = CONTENT
subparts.testimg{
  table = pages
  select{
    select.where = uid=2
  }
  renderObj = COA
  renderObj{
    wrap = <div>|</div>
    10 = TEXT 
    10.field = title
    20 = IMAGE
    20{
      file.import = uploads/media/
      #file.import.field = media
      file.import.data = DB:pages:2:media
      file.import.listNum = 1
    }
  }
}
но почему то выводится весь список страниц первого уровня меню, а не только страница заданная в условии select.where = uid=2
GAZok вне форума   Ответить с цитированием
Старый 16.07.2009, 15:56   #10
Sergey M Nikitin
Administrator
 
Аватар для Sergey M Nikitin
 
Регистрация: 10.07.2007
Адрес: Moscow
Сообщений: 181
Отправить сообщение для Sergey M Nikitin с помощью ICQ Отправить сообщение для Sergey M Nikitin с помощью Skype™
По умолчанию

Цитата:
select{
select.where = uid=2
}
у вас ошибка
Код:
select{
   where = uid=2
}
и лучше использовать

Код:
select{
   uidInList = 2
}
Будьте внимательны.
Sergey M Nikitin вне форума   Ответить с цитированием
Ответ

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строка картинок, перемешанных в случайном порядке? dimal TypoScript практикум 12 24.06.2009 02:15
Вывод картинок через Plain Image Field alexk Общие вопросы 1 18.02.2008 18:17
Как сделать ссылку на несколько страниц назад? Илья Общие вопросы 0 24.09.2007 17:58
вывод картинок в css_styled_content? (:) Общие вопросы 4 13.06.2007 03:11
TemplaVoila и контент с других страниц dr_on Общие вопросы 2 26.12.2006 19:13


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


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

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