Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   расширение CoolURL (http://forum.typo3.ru/showthread.php?t=7939)

Никита 31.08.2009 16:30

расширение CoolURL
 
Здравствуйте, я установил расширение coolurl, подключил свой магазин к typo3, в итоге адреса страниц правильно и красиво переписываются, а вот продукты нет (http://www.localhost/shop/?productID=4, хотелось бы вот так: http://www.localhost/shop/product_name/). В модуле coolurl можно для одного продукта переписать, а можно ли как-нибудь установить правило, чтобы для всех сразу?

dmartynenko 31.08.2009 19:39

Каким образом вы свой магазин подключили?

И RealURL и Cooluri могут заменить productID=хх на название продукта, если вы им укажите какую-либо таблицу из базы TYPO3 и на что заменять ID. Т.е. таблица как минимум должна содержать uid и какое-нибудь поле title, и быть зарегистрирована в TYPO3 (т.е. создана каким-либо установленным в системе экстеншеном).

reva2 31.08.2009 19:47

Цитата:

Сообщение от dmartynenko (Сообщение 25406)
И RealURL и Cooluri могут заменить productID=хх на название продукта, если вы им укажите какую-либо таблицу из базы TYPO3 и на что заменять ID. Т.е. таблица как минимум должна содержать uid и какое-нибудь поле title, и быть зарегистрирована в TYPO3 (т.е. создана каким-либо установленным в системе экстеншеном).

Еще одним ключевым моментом является то, что для генерации ссылок должна быть использована функция typolink.

Никита 31.08.2009 19:49

Я сделал своё расширение, таблица с uid (у меня product_id) и title естественно есть, так где можно установить правила подмены url. Файл для ссылок уже есть.

dmartynenko 01.09.2009 11:55

Читайте документацию по Cooluri. Там должно быть все подробно расписано. Я могу дать готовый пример только для RealURL.

Цитата:

Еще одним ключевым моментом является то, что для генерации ссылок должна быть использована функция typolink.
Кстати это существенный момент.
Вы еще не сказали как именно вы встроили магазин?
Что бы преобразовать обычный УРЛ в красивый ЧПУ действительно нужно задействовать логику TYPO3 через вызов функции typolink. Для родных экстеншенов это работает как говорят "out of box". Для "неродных" можно использовать http://typo3.org/extensions/reposito...epath/current/
Но еще нужно преобразовать УРЛ обратно - если ваш магазин совсем никак не связан с TYPO3 и ему вместо productID=4 будет передано http://www.localhost/shop/product_name/ что он будет с этим делать?

Никита 01.09.2009 12:25

Спасибо. Давайте пример для realurl, пожалуйста.

dmartynenko 01.09.2009 13:04

В файл конфигурации typo3conf/realurl_conf.php
в блок postVarSets вставляете что-то вроде:

Код:

...
'postVarSets' => array (
...
// страница ID=123 c магазином
'123' => array (
        'tovar' => array (
                array(
                        'GETvar' => 'ProductID',
                        'lookUpTable' => array(
                                'table' => 'tx_moymagazin_tovary',
                                'id_field' => 'uid',
                                'alias_field' => 'title',
                                'addWhereClause' => ' AND NOT (deleted OR hidden)',
                                'useUniqueCache' => 1,
                                'useUniqueCache_conf' => array(
                                        'strtolower' => 1,
                                        'spaceCharacter' => '-',
                                        ),
                                ),
                        ),
                ),
        ), // для ID=123 закончили
...
),
...

В результате получите:

http://localhost/shop/tovar/zubnaya-schetka/
shop - алиас для страницы 123 с магазином
tovar - префикс для распознавания что дальше будет идти код товара
zubnaya-schetka - значение поля title из вашей таблицы tx_moymagazin_tovary для указанного ID

Никита 01.09.2009 13:24

СПасибо, разберусь.

Никита 03.09.2009 01:21

Установил расширение realurl, для обычных страниц работает, а для продуктов - нет.
Хотел бы обратить Ваше внимание на следующие моменты.

1. В моём собственном интернет-магазине все ссылки изначально "красивые", поэтому я не нуждаюсь в использовании функции typolink(), правильно, она нужна только для переписывания ссылки - из динамической в статическую?
2. Обратно переписываю ссылки с помощью директивы в файле .htaccess:
"RewriteRule shop/product_name9/ index.php?ProductID=9"
3. В файл realconf.php или real_conf.php вставляю строки:
'postVarSets' => array(
'_DEFAULT' => array(
//begin of product code
'70' => array (
'shop' => array (
array(
'GETvar' => 'ProductID',
'lookUpTable' => array(
'table' => 'product',
'id_field' => 'product_id',
'alias_field' => 'name',
'addWhereClause' => ' AND NOT (deleted OR hidden)',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
),
),
//end of product code
//----------------------------------------------------------------
// news archive parameters
'archive' => array(
array(
'GETvar' => 'tx_ttnews[year]' ,

В итоге на странице http://www.localhost/shop/product_name9/ надпись:

Error!

Reason: "shop/name/" could not be found, closest page matching is shop/

Что же всё-таки я неправильно делаю?
Заранее спасибо.

dmartynenko 03.09.2009 13:50

Цитата:

Сообщение от Никита (Сообщение 25418)
1. В моём собственном интернет-магазине все ссылки изначально "красивые", поэтому я не нуждаюсь в использовании функции typolink(), правильно, она нужна только для переписывания ссылки - из динамической в статическую?

Так зачем вам вообще связываться с TYPO3 и его механизмами работы с URL ?
Если вас магазин установлен в отдельном каталоге с именем /shop/, то TYPO3 вообще не будет вызываться - будет вызываться например /shop/index.php и делать все что ему нужно...

Далее судя по вашему RewriteRule вы не даете TYPO3 ничего делать по генерации URL (да и файлов realconf.php или real_conf.php не существует, есть только typo3conf/realurl_conf.php).

Поэтому получая указанный URL RealURL и TYPO3 пытаются с ним разобраться и честно вам пишут, что страница shop/ найдена в дереве страниц, а дальше не понятно что с вашим URL делать.

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


Часовой пояс GMT +4, время: 08:20.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot