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

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

Ответ
 
Опции темы Опции просмотра
Старый 07.07.2010, 17:33   #1
cyber
Новенький
 
Регистрация: 07.07.2010
Сообщений: 4
По умолчанию При использовании table=pages в CONTENT данные возвращаются без локализации

Написал следующий скрипт для вывода списка, состоящего из краткой информации, взятой из полей abstract из подстраниц, также должен выводиться nav_title в качестве заголовка и ссылка на соответствующую страницу. На сайте настроены 4 языка. Все хорошо работает, за исключением того, что при выборе другого языка информация для этих полей выводится со значениями дефолтного языка (как я понял, в таблицу pages_language_overlay при этом Typo3 даже не лезет). В чем может быть проблема? Заранее благодарен.

Код:
[globalVar = TSFE:id = 98]
lib.cityInfo = COA
lib.cityInfo {
  10 = TEXT
  10.value = Краткая информация о городах:
  10.wrap = <h3>|</h3>
  20 = CONTENT
  20 {
    table = pages
    select{
      where = abstract != ""
      pidInList = 98
      selectFields = uid,nav_title,abstract
    }
    renderObj = COA
    renderObj {
      wrap = <div style="border:1px solid #e1e8f3; margin-top:10px; margin-bottom:10px; padding:10px;">|</div>
      10 = TEXT
      10 {
        field = nav_title // title
        typolink.parameter.field=uid
        wrap = <div style="font-size:10pt; font-weight:bold;">|</div>
      }
      20 = TEXT
      20 {
        field = abstract
        wrap = <div style="margin:10px;">|&nbsp;
      }
      30 = TEXT
      30 {
        wrap=|</div>
        value=[подробнее]
        typolink.parameter.field=uid
      }
    }
  }
}
cyber вне форума   Ответить с цитированием
Старый 07.07.2010, 18:13   #2
cherkatel
Senior Member
 
Регистрация: 02.10.2009
Сообщений: 134
По умолчанию

select.languageField ?
cherkatel вне форума   Ответить с цитированием
Старый 07.07.2010, 18:16   #3
cyber
Новенький
 
Регистрация: 07.07.2010
Сообщений: 4
По умолчанию

При установке этого значения в sys_language_uid все вообще напрочь пропадает. Если устанавливать его в конкретное значение, то инфа показывается только для этого языка, но в любом случае не переводится - значения остаются дефолтными (в моем случае - русскими)
cyber вне форума   Ответить с цитированием
Старый 07.07.2010, 18:52   #4
cherkatel
Senior Member
 
Регистрация: 02.10.2009
Сообщений: 134
По умолчанию

а, ну так логично . select делает только ту выборку, что ему сказали, так что пишите хитрую выборку.
cherkatel вне форума   Ответить с цитированием
Старый 07.07.2010, 19:00   #5
cyber
Новенький
 
Регистрация: 07.07.2010
Сообщений: 4
По умолчанию

Если бы я знал, каким образом можно с помощью .select добраться до локализованных значений... Просто в таблице page локализованные значения не хранятся
cyber вне форума   Ответить с цитированием
Старый 07.07.2010, 19:45   #6
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Я когда-то такое делал, и если память мне не изменяет, мне приходилось писать отдельную конструкцию для выборки записей из pages_language_overlay.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 08.07.2010, 13:24   #7
cyber
Новенький
 
Регистрация: 07.07.2010
Сообщений: 4
По умолчанию

Проблему решил. Все заработало. Пришлось запрос немного подкорректировать. Хотя есть небольшое НО: теперь для TypoLink'ов нельзя было использовать uid, так как идентификатором страницы в таблице pages_language_overlay является pid. Пришлось делать копию объекта и заменять соответствующие данные:

Код:
[globalVar = TSFE:id = 98]
lib.cityInfo = COA
lib.cityInfo {
  10 = TEXT
  10.value = {$cityShortInfoTitle}
  10.wrap = <h3>|</h3>
  20 = CONTENT
  20 {
    table = pages
    slide = -1
    select.pidInList = 98
    renderObj = COA
    renderObj {
      wrap = <div style="border:1px solid #e1e8f3; margin-top:10px; margin-bottom:10px; padding:10px;">|</div>
      10 = TEXT
      10 {
        field = nav_title // title
        typolink.parameter.field=uid
        wrap = <div style="font-size:10pt; font-weight:bold;">|</div>
      }
      20 = TEXT
      20 {
        field = abstract
        wrap = <div style="margin:10px;">|&nbsp;
      }
      30 = TEXT
      30 {
        wrap=|</div>
        value={$moreFieldTitle}
        typolink.parameter.field=uid
      }
    }
  }
}

[globalVar = GP:L > 2 ]

lib.cityInfo >
lib.cityInfo = COA
lib.cityInfo {
  10 = TEXT
  10.value = {$cityShortInfoTitle}
  10.wrap = <h3>|</h3>
  20 = CONTENT
  20 {
    table = pages
    slide = -1
    select{
      join = pages_language_overlay ON (pages_language_overlay.pid=pages.uid)
      andWhere {
        data = TSFE:sys_language_uid
        wrap = sys_language_uid=|
      }
    }
    renderObj = COA
    renderObj {
      wrap = <div style="border:1px solid #e1e8f3; margin-top:10px; margin-bottom:10px; padding:10px;">|</div>
      10 = TEXT
      10 {
        field = nav_title // title
        typolink.parameter.field=pid
        wrap = <div style="font-size:10pt; font-weight:bold;">|</div>
      }
      20 = TEXT
      20 {
        field = abstract
        wrap = <div style="margin:10px;">|&nbsp;
      }
      30 = TEXT
      30 {
        wrap=|</div>
        value={$moreFieldTitle}
        typolink.parameter.field=pid
      }
    }
  }
}
[global]
cyber вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы при использовании AJAX Prost Общие вопросы 8 05.02.2007 14:37


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


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

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