Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
16.04.2010, 19:12 | #1 |
Новенький
Регистрация: 04.12.2009
Сообщений: 9
|
userFunc и параметры
Народ, может кто подскажет как в свою пользовательскую функцию (userFunc) передать значение поля?
Ситуация такая - в новостях есть дополнительные поля, одно из них хранит код клиента, который берется из списка fe_users. Задача такая - вывести в единичной новости название клиента, зная его код. Пока родил следующее и оно работает : includeLibs.myFunc = fileadmin/templates/userfunc/func.php page.1 = LOAD_REGISTER page.1{ storage_pids.cObject = USER storage_pids.cObject{ userFunc = user_func->getUserNameById #задаем id клиента через константу user_id = 140; #задаем id клиента через значение в дополнительном поле #user_id = {field:tx_ttnews_client_id} } } # выводим имя клиента page.5 = TEXT page.5.data = register:storage_pids Но как передать значение поля - tx_ttnews_client_id вот в чем вопрос! |
17.04.2010, 00:27 | #2 |
Senior Member
Регистрация: 31.08.2007
Адрес: Ростов-на-Дону
Сообщений: 206
|
Для подобных вещей в tt_news предусмотрены хуки.
Смотри это и используем хук getItemMarkerArray() |
20.04.2010, 19:35 | #3 |
Новенький
Регистрация: 04.12.2009
Сообщений: 9
|
userFunc и параметры
Спасибо! Наконец-то разобрался как это работает.
Сейчас это выглядит уже так: TS includeLibs.myFunc = fileadmin/templates/userfunc/func.php plugin.tt_news.itemMarkerArrayFunc = user_func->user_ClientNameById plugin.tt_news{ newsClients_stdWrap.wrap = <div class="client_info"><span>Клиент:</span><p><strong>|</strong></p></div> } PHP <?php class user_func{ function user_ClientNameById($markerArray, $conf){ $row = $conf['parentObj']->local_cObj->data; // get the data array of the current news record //t3lib_div::debug($markerArray); //t3lib_div::debug($row); if ($row['tx_addfiledttnews_client']){ $clientsArr = explode(',',$row['tx_addfiledttnews_client']); $cnt = 0; while(list(,$val) = each($clientsArr)) { $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('name','fe_users','uid='.$val,'' ,'',''); $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res); $markerArray['###NEWS_CLIENT###'] .= $conf['parentObj']->local_cObj->stdWrap($row['name'], $conf['parentObj']->conf['newsClients_stdWrap.']); $cnt = $cnt + 1; } } else { $markerArray['###NEWS_CLIENT###']=''; } return $markerArray; } // end user_ClientNameById } ?> Прекрасно работает, НО! Не могу понять как сделать вывод двух подобных дополнительных полей? Когда я пишу еще одну PHP функцию, которая делает примерно тоже самое - достает по коду еще одно имя, а потом пытаюсь вызвать её из TS, то работает только та функция, которая вызывалась последней. Выглядит это вот так: includeLibs.myFunc = fileadmin/templates/userfunc/func.php plugin.tt_news.itemMarkerArrayFunc = user_func->user_ClientNameById plugin.tt_news.itemMarkerArrayFunc = user_func->user_CustomerNameById Результат user_CustomerNameById - виден, а результат user_ClientNameById нет. Как сделать, чтобы эти две функции работали нормально вместе? |
21.04.2010, 19:08 | #4 | |
Продвинутый
Регистрация: 21.03.2010
Сообщений: 33
|
Цитата:
А первый пост я вообще не понял. Проще было бы, если бы описали что хотите добиться. |
|
21.04.2010, 19:30 | #5 |
Новенький
Регистрация: 04.12.2009
Сообщений: 9
|
Спасибо за совет. Именно так я и поступил - все получилось.
По поводу первого поста поясню более понятно... На Новости может быть "навешена" куча дополнительных полей. Хорошо если эти поля содержат просто текст, который нужно потом вывести на странице сайта. Но некоторые поля могут содержать коды других записей в БД. Вот вопрос в этом и заключался - как по коду получить описание (name или title какой-нибудь). Вот сейчас по коду клиента научился доставать его наименование из таблицы fe_users. Теперь думаю как лучше и красивее вывести все категории к которым новость относится? Точно таким же образом? |
Теги |
userfunc |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
языковое меню и GET параметры | werewolf | TypoScript практикум | 0 | 14.05.2009 18:36 |
Передача параметров в userFunc | c0d3r | TypoScript практикум | 10 | 15.05.2007 16:19 |
userFunc и user_* | c0d3r | TypoScript практикум | 4 | 11.05.2007 15:18 |
Параметры картинки | Limer =) | Общие вопросы | 7 | 06.04.2007 16:53 |
как выбрать параметры с конфигурации? | EugeneM | TypoScript практикум | 6 | 07.03.2007 19:55 |