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

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

Ответ
 
Опции темы Опции просмотра
Старый 16.10.2012, 17:08   #1
AlexMr
Новенький
 
Регистрация: 27.03.2012
Сообщений: 12
По умолчанию Вложенный запрос к БД при помощи TS

Здравствуйте Сообщество.
Пытаюсь получить последние изменения из tt_content с указанием автора. Написал следующий код:

Код:
temp.lib.content = CONTENT
temp.lib.content {
    table = tt_content
    select {
      pidInList = 50
      orderBy = tstamp
      max = 5
      recursive = 99
          }

  renderObj = COA
  renderObj{
    10 = LOAD_REGISTER
    10{
      inhalt_title.cObject = TEXT
      inhalt_title.cObject.field = header
      
      inhalt_pid.cObject = TEXT
      inhalt_pid.cObject.field = pid
 
      inhalt_date.cObject = TEXT
      inhalt_date.cObject{
        field = tstamp   
        strftime =  %d.%m.%Y
      }
      inhalt_body.cObject = TEXT
      inhalt_body.cObject.field = bodytext
      inhalt_body.cObject.crop = 250|...|1
      
      inhalt_userid.cObject = TEXT
      inhalt_userid.cObject.field = cruser_id
    }
    20 = TEXT
    20{
      value(
<div class="inhalt" style="border: 1px solid #000000;">
  <h1><a href="index.php?id={register:inhalt_pid}">{register:inhalt_title}</a></h1>
  <span>{register:inhalt_date}</span>
  <div class="inhalt_body">{register:inhalt_body}</div>
  <div class="autor">{register:inhalt_userid}</div>
</div>
      )
      insertData = 1
    }
######
      30 = CONTENT
      30 {
        table = be_users
        source.field = uid
        select.where {
          cObject = TEXT
          cObject.value = {register:inhalt_userid}
          cObject.insertData = 1
        }
        renderObj = COA
        renderObj{
          10 = TEXT
          10.field = username
        }
      }        
######
  }}
Всё работает кроме получения "настоящего" имени пользователя
Может кто-нибудь решал подобные задачи.
Заранее спасибо за ответы.
AlexMr вне форума   Ответить с цитированием
Старый 16.10.2012, 22:00   #2
Ивано
Guest
 
Сообщений: n/a
Smile

Предложил бы использовать PHP-код и вызывать его через USER_INT или PHP_SCRIPT...

Так гораздо проще будет...
  Ответить с цитированием
Старый 17.10.2012, 14:25   #3
AlexMr
Новенький
 
Регистрация: 27.03.2012
Сообщений: 12
По умолчанию

Так и работает
Просто периодически API меняется и надо вносить изменения в скрипт
Если использовать 'чистый' TS, то таких проблем можно будет меньше
AlexMr вне форума   Ответить с цитированием
Старый 17.10.2012, 22:21   #4
Ивано
Guest
 
Сообщений: n/a
Wink

А если без API...
Просто mysql_query ("SELECT JOIN ...), mysql_num_rows, mysql_fetch_array()?
Или все настолько серьезно?

Лично, как по мне, так мною выбрана typo3 4.7.0 (здесь есть все, что нужно и API и TS и FLUID) - и с нее больше прыгать ни вниз не вверх не собираюсь - т.е. не вижу в этом вообще особой надобности и смысла. Из расширений использую только самый минимум. Единственное что в ней не очень удобно - так это инсталятор расширений - прежний мне нравился больше.

Если конечно что-то в новых версия будет очень удобным и полезным - тогда да... А так нет. Многие, как видно пользуются более старыми версиями...
  Ответить с цитированием
Старый 18.10.2012, 12:04   #5
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Если вы серьезно намерены использовать TYPO3, то полезно заглядывать в TSRef.

Там в частности написано что:
Цитата:
CONTENT.table
TableName /stdWrap
The table, the content should come from.
In standard configuration this will be "tt_content".
Note: Allowed tables are "pages" or tables prefixed with one of these: "pages_", "tt_", "tx_", "ttx_", "fe_", "user_" or "static_".
Если кратко - CONTENT не работает с be_* таблицами.

Попробуйте RECORDS, там про такое ограничение ничего не написано.
dmartynenko вне форума   Ответить с цитированием
Старый 18.10.2012, 13:21   #6
AlexMr
Новенький
 
Регистрация: 27.03.2012
Сообщений: 12
По умолчанию

Вы абсолютно правы. Прошляпил
Попробовал такой код:
Код:
    30 = RECORDS
    30 {
      table = be_users
      source = 29
      conf.be_users = TEXT
      conf.be_users.field = username
      dontCheckPid = 1
    }
но что-то тоже не работает

"@Ивано: по поводу собственного кода - я думаю, что TS все-же будет оптимальней работать. Не зря же Вы используете "самый минимум расширений"
AlexMr вне форума   Ответить с цитированием
Старый 18.10.2012, 13:26   #7
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Значит и RECORDS c таблицами be_* не работает.
Остается свой PHP код. Но не обязательно делать целый плагин USER_INT. можно обойтись userFunc
dmartynenko вне форума   Ответить с цитированием
Старый 18.10.2012, 14:09   #8
AlexMr
Новенький
 
Регистрация: 27.03.2012
Сообщений: 12
По умолчанию

TS я только осваиваю.
Честно говоря, думал что такие вещи как запрос к БД должны решаться на основе правил самой CMS, т.е. силами TS.
Но если нет, то нет...
Будем писать функцию
AlexMr вне форума   Ответить с цитированием
Старый 18.10.2012, 14:21   #9
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Запросы и решаются силами TS, но только туда куда положено (по мнению TYPO3)
dmartynenko вне форума   Ответить с цитированием
Старый 09.11.2012, 19:58   #10
Dmitry Dulepov
Продвинутый
 
Аватар для Dmitry Dulepov
 
Регистрация: 28.04.2010
Сообщений: 73
По умолчанию

Например:

inhalt_userid.cObject = RECORDS
inhalt_userid.cObject {
source.dataWrap = be_users_{field:cruser_id}
conf.be_users = TEXT
conf.be_users.field = username
conf.be_users.htmlSpecialChars = 1
}
Dmitry Dulepov вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод в шаблон при помощи tt_content Mih Общие вопросы 0 17.05.2011 17:41
Как при помощи RealUrl реализовать ссылки с расширением .htm Manas Общие вопросы 1 01.02.2008 13:55
Модификация TCA при помощи Dynaflex reva2 Общие вопросы 2 17.01.2008 14:54
Редактирование из FE при помощи tm_contentaccess margol Общие вопросы 3 09.11.2007 20:45
как получить содержиное ячейки в таблице при помощи select? nitrogen14 Общие вопросы 4 15.08.2007 16:11


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


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

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