PDA

Просмотр полной версии : Как сделать поля с динамическим контентом?


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

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

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

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

Прошу помощи.

cherkatel
14.10.2009, 17:46
собственно, изучайте ТС. В нем есть два замечательных объекта CONTENT и RECORDS

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

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

Надеюсь, что потом у меня хватит понимания адаптировать к своему случаю...

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

void
14.10.2009, 22:46
ORDER BY RAND отменили?

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

Прошу, дайте кода кусок, иначе не справлюсь.:(

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

из какой таблицы данные брать хотите? код будет типа такого

lib.snippet = CONTENT
lib.snippet {
table = (ваша таблица)
select{
pidInList = (ваш пид)
orderBy = RAND ()
max = 1
}
renderObj {
10 = TEXT
10.field = title

}
}

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

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

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

Как-то так.
Если можно брать исходную информацию из SysFolder, еще лучше.

SanderAMC
16.10.2009, 16:16
Неужели никто не поможет?
Может, задача слишком много займет времени у спецов - я-ж не знаю..:confused:

cherkatel
16.10.2009, 18:58
отвечено же уже, примерно так

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: для того, чтобы делать сайты на тайпе, надо учиться, учиться и учиться. ПХП знать не обязательно, но желательно. Точно надо знать ХТМЛ/ЦСС и желательно уметь писать селекты в СКУЛ. Собираетесь вы остановиться на единственном сайте или нет - увы неважно.

SanderAMC
16.10.2009, 21:09
О, уже конкретнее. Я пока успел ознакомиться с kickstarter, вроде ничего непонятного нет. С SQL у меня тоже все вроде нормально было, давно правда.
Вот только синтаксис CSS и Html для меня неизвестен и непривычен.

Допустим, я создал таблицу в sql с названием MyTable в базе MyBase, с полями num и text, ввел в нее данные через системную папку с названием SysFolder.

Вы не могли-бы привести код, который выберет случайную строку и присвоит данные полям страницы, определенным в темплейте следующим образом:
<tx_templavoila type="array">
<title>Description Text</title>
и
<tx_templavoila type="array">
<title>Description Link</title>

SanderAMC
21.10.2009, 09:17
Что, никто не поможет?:(

dim19
21.10.2009, 23:23
код, который выберет случайную строку и присвоит данные полям страницы
это не html и не css, это скорее всего php или js какой то или я совсем ничего не понимаю.

SanderAMC
22.10.2009, 14:40
Спасибо всем, о великие гуру!!!
Или вопрос на столько серьезный, что просто так (бесплатно) никто не возьмется помочь, или никто не знает, что, в принципе, странно...

Почему-то склоняюсь к первому варианту, а жаль...
Еще раз всем спасибо.:(

cherkatel
22.10.2009, 15:34
собственно я решение уже написал. Мапьте весь блок как ТС объект, вставляйте его в шаблон и настраивайте рендеринг и врапы. Настраивать по-хитрому рендеринг полей внутри ДС (в принципе так тоже можно) действительно никто бесплатно не будет.