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

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

Ответ
 
Опции темы Опции просмотра
Старый 14.10.2009, 17:02   #1
SanderAMC
Новенький
 
Регистрация: 13.10.2009
Сообщений: 23
Question Как сделать поля с динамическим контентом?

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

Проблема в том, что нужно, чтобы эти значения были динамические и брались, например, из системного хранилища.

Названия полей Description Text и Description Link соответственно.
Как это можно сделать?

Я подозреваю, что можно в коде шаблона прописать присваивание значениям этих полей каких-то значений, взятых из хранилища. Но как реально это сделать, я пас..
Будь это просто работа с Dbase-подобной системой, то просто поставил-бы relation к базе и брал тек. значение по ссылке к названию базы и поля, а потом двигал указатель по рандому.
А здесь, видимо, так не получится.

Прошу помощи.
SanderAMC вне форума   Ответить с цитированием
Старый 14.10.2009, 17:46   #2
cherkatel
Senior Member
 
Регистрация: 02.10.2009
Сообщений: 134
По умолчанию

собственно, изучайте ТС. В нем есть два замечательных объекта CONTENT и RECORDS
cherkatel вне форума   Ответить с цитированием
Старый 14.10.2009, 18:29   #3
SanderAMC
Новенький
 
Регистрация: 13.10.2009
Сообщений: 23
По умолчанию

Поймите меня правильно.
Сайт я делаю свой персональный, своими силами.
Но я уже очень давно не программист и, к сожалению, для меня это затратно по времени, изучать синтаксис TS (хотя он, безусловно, не самый сложный).

Может, у Вас найдется пример кода, который выбирает случайным образом записи из SysFolder или базы MySql и присваивает неким полям эти значения?

Надеюсь, что потом у меня хватит понимания адаптировать к своему случаю...
SanderAMC вне форума   Ответить с цитированием
Старый 14.10.2009, 20:04   #4
cherkatel
Senior Member
 
Регистрация: 02.10.2009
Сообщений: 134
По умолчанию

Я, кстати (или некстати ), ошибся. В СКУЛ нет рандомной сортировки, так что ищите расширение в ТЕРе на random или random content. Но выбирать советую тщательно - многие из них некешируемые, т.е. сайт станет медленнее.

Последний раз редактировалось cherkatel; 14.10.2009 в 20:18
cherkatel вне форума   Ответить с цитированием
Старый 14.10.2009, 22:46   #5
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

ORDER BY RAND отменили?
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 15.10.2009, 10:21   #6
SanderAMC
Новенький
 
Регистрация: 13.10.2009
Сообщений: 23
По умолчанию

Извините, а Вы с кем сейчас говорили?
Честно, ничего не понял.

Прошу, дайте кода кусок, иначе не справлюсь.
SanderAMC вне форума   Ответить с цитированием
Старый 15.10.2009, 11:20   #7
cherkatel
Senior Member
 
Регистрация: 02.10.2009
Сообщений: 134
По умолчанию

тьфу, это называется не пользуйтесь справочниками многолетней давности

из какой таблицы данные брать хотите? код будет типа такого
Код:
lib.snippet = CONTENT
lib.snippet {
    table = (ваша таблица) 
    select{
         pidInList = (ваш пид)
         orderBy = RAND ()
         max = 1
    }
    renderObj {
      10 = TEXT
      10.field = title

    }
}
cherkatel вне форума   Ответить с цитированием
Старый 15.10.2009, 11:46   #8
SanderAMC
Новенький
 
Регистрация: 13.10.2009
Сообщений: 23
По умолчанию

В идеале хотел брать данные из sql-таблицы, которую создам в существующей базе, названием, например: "my_table". В ней два поля, имена text и pid.

Далее, если посмотреть на страницу, раздел "дополнительно", то там будут два поля, озаглавленные в форме ввода Description Text и Description Link, и строки ввода данных в это поле. Если ввести значения, то для конкретной страницы появятся введенные значения. Именно их я хочу сделать динамическими.

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

Как-то так.
Если можно брать исходную информацию из SysFolder, еще лучше.
SanderAMC вне форума   Ответить с цитированием
Старый 16.10.2009, 16:16   #9
SanderAMC
Новенький
 
Регистрация: 13.10.2009
Сообщений: 23
По умолчанию

Неужели никто не поможет?
Может, задача слишком много займет времени у спецов - я-ж не знаю..
SanderAMC вне форума   Ответить с цитированием
Старый 16.10.2009, 18:58   #10
cherkatel
Senior Member
 
Регистрация: 02.10.2009
Сообщений: 134
По умолчанию

отвечено же уже, примерно так
Код:
ib.snippet = CONTENT
lib.snippet {
    table = my_table
    select{
         pidInList = my_pid
         orderBy = RAND ()
         max = 1
    }
    renderObj {
      10 = TEXT
      10.field = description_text
      10.typolink.parameter = {description.link}
      10.insertData = 1

    }
}
ПЫСЫ: pid - зарезервированное поле в таблицах тайпо3.
как сделать свою таблицу для ввода данных через записи в сисфолдере - читайте доку к kickstarter
ПЫСЫ2: для того, чтобы делать сайты на тайпе, надо учиться, учиться и учиться. ПХП знать не обязательно, но желательно. Точно надо знать ХТМЛ/ЦСС и желательно уметь писать селекты в СКУЛ. Собираетесь вы остановиться на единственном сайте или нет - увы неважно.
cherkatel вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно сделать BatMan TypoScript практикум 3 30.05.2009 01:47
новый тип поля в FCE templavoila - как? (:) Общие вопросы 5 04.03.2008 11:04
Как сделать ссылку на несколько страниц назад? Илья Общие вопросы 0 24.09.2007 17:58
Хочу сделать корзину для TYPO3 такую же, как у Windows. thebat Общие вопросы 6 14.05.2007 12:00
Подскажите как правильней сделать Владимир Умнов Общие вопросы 2 12.10.2005 11:44


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


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

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