|
|
19.09.2014, 12:49
|
|
xrayman
Зарегистрирован: 2014-09-14
Сообщений: 15
|
Привет всем.
Я создал компонент, в нем, допустим, 2 поля - tab и text. Мне надо на страницу вывести их в виде:
tab_0
tab_1
...
tab_n
text_0
text_1
...
text_n
Сейчас я это сделал так: в "Префикс списка объектов" через $db->get_results я достаю значения полей tab и вывожу их циклом, а в "Объект в списке" вывожу только значения text. Но меня гложут сомнения...
Как правильно делать такие вещи?
|
|
|
19.09.2014, 19:23
|
|
Nexwich
Панасин Александр
Зарегистрирован: 2011-04-05
Сообщений: 1037
|
Вполне хорошее решение.
Для объекта в списке выборку значений делать не обязательно. Достаточно лишь латинские имена полей
Код:foreach($fields as $field){
echo ${'f_'.$field[Field_Name]};
}
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|
|
|
19.09.2014, 23:42
|
|
xrayman
Зарегистрирован: 2014-09-14
Сообщений: 15
|
Спасибо за ответ.
Для объекта в списке я так и делаю: <?=$f_Text_1?>
А приведенный пример кода я честно говоря не понял. У меня var_dump($fields) == 'NULL'. Что вы имели в виду под $fields и как до него достучаться чтобы поковырять?
|
|
|
20.09.2014, 10:33
|
|
Nexwich
Панасин Александр
Зарегистрирован: 2011-04-05
Сообщений: 1037
|
Цитата: а в "Объект в списке" вывожу только значения text
Я посчитал что вы выводите поля циклом. Но проблема в том что если это так то вы делаете дополнительно еще запрос. Вот я и привел решение без дополнительных запросов для значений полей.
$fields это выборка из таблицы Files WHERE Checked=1 AND Class_ID=".$classID." ORDER BY Priority
Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
|
|
|
20.09.2014, 11:27
|
|
xrayman
Зарегистрирован: 2014-09-14
Сообщений: 15
|
Нет, циклом из запроса я вывожу только значения в "Префиксе" - не нашел, есть ли на этом этапе доступ к полям без дополнительных запросов.
В "Объекте в списке" смысла в этом нет - он же повторяется для каждой записи и количество полей достаточно ограничено, чтобы их выводить руками.
|
|
|
05.10.2014, 15:52
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
В принципе, Ваше решение нормальное.
Еще вариант с меньшим количеством SQL-запросов, но бОльшим расходом памяти (если объектов не безумно много - чтобы память не переполнилась):
1. В префиксе делаем $data_tabs=$data_texts="";
2. В объекте в списке делаем примерно так:
<?
$data_tabs .= $f_tab_0;
$data_texts .= $f_text_0;
?>
3. В суффиксе делаем вывод накопленных данных:
<?=$data_tabs.$data_texts?>
|