у меня есть:Typo3: страница ссылку в меню, используя значение из пользовательской записи
- меню 3 уровня
- пользовательских записей из таблицы называется «tx_products_domain_model_product»
- продукты поле, называемое «url_alias "
На любой странице этого меню у меня есть запись о продукте. Для страниц, которые имеют запись о продукте я хочу ссылку выглядеть следующим образом:
http://www.sitedomain.com/<url_alias>
Может ли это быть сделано с TypoScript?
EDIT
Похоже, что это слишком сложно, чтобы сделать все это с TypoScript, поэтому я использую UserFunc. Я проверяю, есть ли запись продукта с идентификатором магазина и вы хотите вернуть этот идентификатор магазина. Если нет, верните текущий UID страницы меню. Проблема в том, как я могу передать UID страницы меню в качестве параметра в userFunc?
class user_productsOnCurrentPage
{
function main($content, $conf)
{
if (TYPO3_MODE !== 'FE')
{
return FALSE;
}
$product = $GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow(
'shop_id', 'tx_products_domain_model_product', 'pid=' . $conf['currentPageId'] . ' AND deleted=0 AND hidden=0');
if (is_array($product) && ! empty($product ['shop_id']))
{
return $product ['shop_id'];
}
return $conf['currentPageId'];
}
}
Меню:
lib.mainMenu = HMENU
lib.mainMenu {
...
1 = TMENU
1 {
...
NO = 1
NO {
...
# show direct url for external links
doNotLinkIt = 1
stdWrap.cObject = CASE
stdWrap.cObject {
key.field = doktype
default = TEXT
default {
field = nav_title // title
typolink.parameter.cObject = USER
typolink.parameter.cObject {
userFunc = user_productsOnCurrentPage->main
currentPageId = ?????
}
typolink.wrap = |<span><strong></strong></span>
typolink.ATagBeforeWrap = 1
stdWrap.htmlSpecialChars = 1
}
...