Показать сообщение отдельно
Старый 03.09.2009, 17:43   #14
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Такой вариант может сработать - генерить ссылки без TYPO3. TYPO3 при получении такого URL будет его парсить и заполнять соответствующие переменные в $_GET.

Если вы используете TYPO3 и для генерации - то получаете URL который будет правильно парситься. Иначе надо следующие нюансы.

Сейчас у вас index.php?ProductID=9 переводится в shop/product_name9/
Пусть у вас есть страница с алиасом shop - ее RealURL распознает. Но дальше ему надо понять что делать с product_name9. В конфиге для RealURL вы привели код:

Код:
'70' => array (
   'shop' => array (
      array(
         'GETvar' => 'ProductID',
Судя по всему 70 это uid страницы с алиасом shop.
Но дальше идет префикс shop за которым будет title товара, причем из-за 'spaceCharacter' => '-' он будет таким "product-name9". Сгенерированный URL получиться таким:
example.org/shop/shop/product-name9/

Он отличается от того, который вы передаете TYPO3 при помощи апачевского RewriteRule. Поэтому при парсинге возникнет ошибка, как вы приводили выше.

Экст pagepath можно использовать для генерации корректного URL - ему передаются параметры страница, и ваш ProductID и он вернет URL. Но это не быстрое решение. Быстрее работает если создать объект cObject и вызвать у него typolink. Посмотрите как это делается в том же pagepath.

У вас может получиться эмулировать корректный URL и не тратить дополнительное время на его генерацию через TYPO3. Но я не уверен что это сработает из-за подмены uid на title (lookUpTable). Возможно логика RealURL такова, что он именно при генерации запоминает соответствие uid и title и потом при парсинге его использует.
dmartynenko вне форума   Ответить с цитированием