Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   RealURL и TMENU: need help (http://forum.typo3.ru/showthread.php?t=2939)

theoretic 27.03.2007 14:00

RealURL и TMENU: need help
 
Итак, имеем:

-- WinXP + Denwer + виртуальный хост project.local;
-- свежеустановленный на project.local Typo3 4.1 (русификация, UTF-8);
-- установленный на Typo3 RealURL 1.1.4;
-- .htaccess:

RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php

-- root-шаблон примерно такого вида:

page = PAGE
page.typeNum = 0

#lang
page.config.language = ru
config.metaCharset = utf-8
config.renderCharset = utf-8

#realurl
config.simulateStaticDocuments = 0
config.tx_realurl_enable = 1

...

-- структура тестового сайта:

Главная
-- Приборы (псевдоним devices)
---- ...
---- ...
-- Софт (псеводним software)
-- О компании
-- ...

Суть проблемы. RealURL благополучно транслирует псеводнимы и создаёт ЧПУ вида /devices/ , /software/ и т.п. Простенькое TMENU на главной странице, соответственно, ссылается именно на такие адреса.

Однако достаточно перейти, например, на страницу /devices/ -- и TMENU начинает глючить. Вместо адресов вида

/devices/
/software/

в TMENU получаются адреса вида

/devices/devices/
/devices/software/

, то-есть навигация становится относительной относительно текущего "раздела".

Что ещё хуже -- при попытке обратиться к страницам со вложенностью более 2 (напр., /devices/software/pc/) вылазит аналог 404-й ошибки typo3, предлагающий closest match.

В каком месте ДНК ошибка у разработчика?

PhilD 27.03.2007 14:29

ЕМНИП: для нормальной работы с aliases нужна какая-то дополнительная конфигурация realurl, посмотрите в документации. Для прямого задания адреса используется Speaking URL path segment.
И, кстати, baseurl в конфигурации есть?
Ну и конфиг реалурл тоже не мешает посмотреть.

theoretic 27.03.2007 16:00

Сенкс элот!
 
Действительно, свежеустановленный RealURL ничего не пишет в localconf.php . Тем, кто ещё не баловался с RealURL, предлагаю код, который можно поставить в localconf.php для того, чтобы RealURL корректно разбирал адреса вида

/production/devices/megadevice/description



Код:


//realURL configuration

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array
        (
        'init' => array
                (
                'appendMissingSlash' => true,
                ),

        'preVars' => array
                (
                array
                        (
                        'GETvar' => 'L',
                        'valueMap' => array
                                (
                                ),
                        'noMatch' => 'bypass',
                        ),
                ),

        'pagePath' => array
                (
                'type' => 'user',
                'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
                'spaceCharacter' => '-',
                'languageGetVar' => 'L',
                'expireDays' => 30
                ),

        'postVarSets' => array
                (
                '_DEFAULT' => array
                        (
                        ),
                ),
        );


Самое важное в этом куске кода -- вызов класса tx_realurl_advanced .
Пустые массивы оставлены намеренно, чтобы в дальнейшем можно было что-то туда подставить.

И ещё одна тонкость. RealURL, похоже, не работает без указания в шаблоне baseURL = http://yoursite.tld .

KWINCH 20.05.2007 16:43

Была такая проблема
 
Была аналогичная проблема два дня назад.
Все решилось установкой config.baseURL = http://www.mycompany.ru/ (именно так, а не config.baseURL = www.mycompany.ru) в корневом шаблоне.

javaPro 06.07.2007 11:04

Подскажите пожалуста кто может, у меня проблемма:
Создан сайт такого вида:

Главная страница (адрес к примеру http://www.mysite.com/)

- Колледж 1 (переход на эту страницу происходит с главной)
--О колледже 1 (эта страница и те что под ней доступны только со страници "Колледж 1")
--- Страница
--- Страница 2
--Курсы
---Страница
---Страница 2

-Колледж 2
--О колледже 2
--- Страница
--- Страница 2
--Курсы
---Страница
---Страница 2

ну и так далее.

Проблемма в том как сделать что переходя к примеру на страницу "Колледж 1 -> О колледже" показывался такой путь:

http://www.mysite.com/college-1/about-college-1.html

Подскажите как такое сделать, зарание благодарен (очень нужно)

П.С. Код выше у меня работает но только до уровня http://www.mysite.com/college-1/ как только иду далее по меню, третий и четвертые уровни отображаются как http://www.mysite.com/about-college-1/stranica/

demav 06.07.2007 11:21

Цитата:

Сообщение от javaPro (Сообщение 13400)
Подскажите пожалуста кто может, у меня проблемма:
П.С. Код выше у меня работает но только до уровня http://www.mysite.com/college-1/ как только иду далее по меню, третий и четвертые уровни отображаются как http://www.mysite.com/about-college-1/stranica/

Если я правильно понял суть вопроса, то надо просто указать имя для ЧПУ ссылки у страницы. Для этого поставить тип страницы "Продвинутый" (Advanced) и в поле "Speaking URL path segment" написать нужное название

javaPro 06.07.2007 11:35

Сделал то что вы написали, вот что я получаю когда перехожу по ссылке:

Error!
Reason: Segment "al-khamikhlala" was not a keyword for a postVarSet as expected!

П.С. "al-khamikhlala" это то что я прописал в "Speaking URL path segment"

demav 06.07.2007 11:53

Вообще-то, уже получается офтопик относительно первоначальной темы.

Я с такой ошибкой не встречался, но интернет пестрит страницами с данной ошибкой, воспользуйтесь поиском.

javaPro 06.07.2007 14:03

Попытаюсь обьеснить ситуацию ясней:

Ссылка в меню третьего уровня не содержит сегмента для страницы второго уровня.
Пример того как должна выглядеть ссылка для меню третьего уровня:

http://mysite.com/page-level1/page-level2/page-level3/ , а получается http://mysite.com/page-level1/page-level3/, т.е. page-level2 оказывается пропущено.

Для меню второго уровня все работает нормально и без всяких сбоев.

Надеюсь что щас немного яснее проблемма (Спасибо demav за помощь в разъеснении)

javaPro 06.07.2007 14:56

Вопрос снимается, ошибка была найдена.

Спасибо огромное demav за оказаную помощь!!!


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

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