Russian TYPO3 community

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

sedoy_kapjluk 01.09.2010 13:22

tt_news или RealURL
 
Добрый день,

Проблема такова:

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

RealUrl Management в ошиках ругается:
Segment "typo3" was not a keyword for a postVarSet as expected!

Подскажите в какую сторону копать, может кто-то сталкивался с подоной проблемой.

Заренее благодарен.

Андрей Аксенов 02.09.2010 10:28

Нужно посмотреть настройки tt_news (страница для полнотекстового представления, старница для списка и т.д.).
А вообще похожа на неверную настройку RealURL, глянь в документации по обоим программам... если нужно, могу выслать переведенную документацию по обоим.

agravin 27.09.2010 22:38

Расширения теже, но беда другая
 
Сегодня решил наконец таки поставить realurl. Со страницами проблем не было, переключился на tt_news. После недолгих баталий, моя взяла - ссылки стали прописываться нормально. Правда радость была не долгой - при переходе на подробное описание новости , стало показываться "нет идентификатора новости" вместо нее самой. Может кто сталкивался с этим?

П.С. Все настройки для LATEST, LIST и SINGLE выстовлены правильно.
П.П.С. После последней настройки realurl тайпа на странице single выдавала варнинги, пришлось отключить через локалконф.

Андрей Аксенов 28.09.2010 10:15

Опять же... Какие настройки?
Далее... Попробуй отключить realurl - правильно ли при этом работают новости? Все ли загружается-переключается, работают ли все ссылки? Если нет - неверно настроены новости, если да - идем далее и смотрим настройки realurl... Что касается последнего, то имеется много информации, но это-то и плохо - легко можно запутаться, лучше глянуть офф. документацию, а еще лучше (правда на английском) разъяснение от создателя расширения на его же блоге (можно еще много полезного для себя обнаружить): Часть 1 и Часть 2. Но поаккуратнее там с копированием кодов, что-то там заменено на смайлики... Перевод этой статьи можно найти здесь, правда перевод не полный...

agravin 06.10.2010 21:19

Настройки новостей верные т.к. до того как установил realurl, все работало корректно. Все дело скорее всего в настройках realurl . К сожалению нормального и ЕДИНСТВЕННОГО решения проблемы правильной настройки не нашел на форуме. От обилия предлагаемых решений глаза разбегаются, но к сожалению ни одно не подошло. Проблему можно решить изучением TS , дабы вносить изменения осознанно, а не методом "научного тыка", но видать мне этого не дано. Пришел к тому, что кооректно работают ссылки для всех страниц, включая новость SINGLE. Токмо вот на этой синг вместо новости отображается сбитая кодировка во всех текстах ,а вместо новости что-то похожее на "нет индефикатора новости" в кракозябрах (я уже начинаю их понимать :D )
Ну и также варнинги
Warning: mktime() expects parameter 6 to be long, string given in /var/www/vhosts/new.h.fonarstudio.ru/httpdocs/typo3conf/ext/tt_news/pi/class.tx_ttnews.php on line 3095

Warning: mktime() expects parameter 6 to be long, string given in /var/www/vhosts/new.h.fonarstudio.ru/httpdocs/typo3conf/ext/tt_news/pi/class.tx_ttnews.php on line 3098

Warning: mktime() expects parameter 6 to be long, string given in /var/www/vhosts/domain.ru/httpdocs/typo3conf/ext/tt_news/pi/class.tx_ttnews.php on line 3095

Warning: mktime() expects parameter 6 to be long, string given in /var/www/vhosts/domain .ru/httpdocs/typo3conf/ext/tt_news/pi/class.tx_ttnews.php on line 3098

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/domain.ru/httpdocs/typo3conf/ext/tt_news/pi/class.tx_ttnews.php:3095) in /var/www/vhosts/domain.ru/httpdocs/typo3/sysext/cms/tslib/class.tslib_fe.php on line 3229

Сама настройка выглядит так:
<?php

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array (
'_DEFAULT' => array (
'init' => array(
'enableCHashCache' => 1,
'enableUrlDecodeCache' => 1,
'enableUrlEncodeHash' => 1,
'appendMissingSlash' => 'ifNotFile',
),
'redirects' => array (
),
'rewrite' => array(
),
'pagePath' => array (
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'segTitleFieldList' => 'tx_realurl_pathsegment,alias,nav_title,title',
'rootpage_id' => '39',
'disablePathCache' => 0,
'autoUpdatePathCache' => 1,
'expireDays' => 90,

),
'fixedPostVars' => array (
'news' => array (


array (
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array (
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'maxLength' => 200,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '_',
),
),
),

array(
'GETvar' => 'tx_ttnews[pointer]',
),

),

),

'postVarSets' => array (

'_DEFAULT' => array (
//Новости
'article' => array (
'0' => array (
'GETvar' => 'tx_ttnews[year]',
),
'1' => array (
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array (
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'maxLength' => 200,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '_',
),
),
),
),
//tt_news pagebrowser
'page' => array(
'0' => array (
'GETvar' => 'tx_ttnews[pointer]'
),
),

),
),

),

);

?>

Если кто ответит, что я тут неправильно выставил, тому моя благодарность и уважение. Ну если он еще и в Москве обитает так можно и пивом угостить;)

Андрей Аксенов 06.10.2010 21:55

Если кракозябры, то похоже на неверную кодировку, нужно проверить кодировку базы данных и т.д. - все должно быть в utf-8... затем установить новые версии обоих расширений (tt_news и RealURL).
Ну а вот настройка для новостей:
Код:

<?php

// Очистка кеша realurl при "очистке всех кешей"
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urldecodecache'] = 'tx_realurl_urldecodecache';
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urlencodecache'] = 'tx_realurl_urlencodecache';
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_pathcache'] = 'tx_realurl_pathcache';
$tx_realurl_config = array(
    'init' => array(
        'enableCHashCache' => true
        , 'appendMissingSlash' => 'ifNotFile,redirect[301]'
        , 'adminJumpToBackend' => true
        , 'enableUrlDecodeCache' => true
        , 'enableUrlEncodeCache' => true
        //, 'emptyUrlReturnValue' => true
        // Allow for proper SEO 404 handling
        , 'postVarSet_failureMode' => ''
        , 'reapplyAbsRefPrefix' => true
        // , 'doNotRawUrlEncodeParameterNames' => true
    ) 
    , 'redirects' => array()
    , 'preVars' => array(
            array( 
                'GETvar' => 'no_cache'
                , 'valueMap' => array(
                    'nc' => 1
            )
            , 'noMatch' => 'bypass'
        ),
    )
    , 'pagePath' => array(
        'type'            => 'user'
        , 'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main'
        , 'spaceCharacter'    => '-'
        , 'languageGetVar'    => 'L'
        // , 'rootpage_id' => 3
        , 'segTitleFieldList'    => 'tx_realurl_pathsegment,alias,title,uid'
        , 'expireDays'        => 1095
    )
    , 'fixedPostVars'    => array()
    , 'postVarSets' => array(
        '_DEFAULT' => array(
            // параметры архива новостей
            'archive' => array(
                array(
                    'GETvar' => 'tx_ttnews[year]'
                )
                , array(
                    'GETvar' => 'tx_ttnews[month]'
                    // Если нужно использовать названия месяцев, вместо их номеров
                    // Если не нужно - закомментируйте строки ниже
                    , 'valueMap' => array(
                        'january' => '01',
                        'february' => '02',
                        'march' => '03',
                        'april' => '04',
                        'may' => '05',
                        'june' => '06',
                        'july' => '07',
                        'august' => '08',
                        'september' => '09',
                        'october' => '10',
                        'november' => '11',
                        'december' => '12',
                    )
                )
                , array(
                    'GETvar' => 'tx_ttnews[day]'
                    , 'noMatch' => 'bypass',
                )
                , array(
                    'GETvar' => 'tx_ttnews[pS]'
                    , 'noMatch' => 'bypass',
                )
                , array(
                    'GETvar' => 'tx_ttnews[pL]'
                    , 'noMatch' => 'bypass',
                )
            )
            // проводник по страницам новостей
            , 'p' => array(
                array(
                    'GETvar' => 'tx_ttnews[pointer]'
                )
            )
            // категории новостей
            , 'c' => array (
                array(
                    'GETvar' => 'tx_ttnews[cat]'
                    , 'lookUpTable' => array(
                        'table' => 'tt_news_cat'
                        , 'id_field' => 'uid'
                        , 'alias_field' => 'title'
                        , 'addWhereClause' => ' AND deleted != 1'
                        , 'useUniqueCache' => 1
                        , 'autoUpdate' => 1
                        , 'useUniqueCache_conf' => array(
                            'strtolower' => 1
                        ),
                    ),
                ),
            )
            // элементы новостей
            , 'article' => array(
                array(
                    'GETvar' => 'tx_ttnews[tt_news]'
                    , 'lookUpTable' => array(
                        'table' => 'tt_news'
                        , 'id_field' => 'uid'
                        // Goolge нравиться уникальные названия
                        , 'alias_field' => 'concat(title, " ", uid)'
                        , 'addWhereClause' => ' AND deleted != 1'
                        , 'useUniqueCache' => 1
                        , 'autoUpdate' => 1
                        , 'useUniqueCache_conf' => array(
                            'strtolower' => 1
                            , 'spaceCharacter' => '-'
                        )
                    )
                )
                , array(
                    'GETvar' => 'tx_ttnews[swords]'
                )
            )
            , 'abp' => array(
                array(
                    'GETvar' => 'tx_ttnews[backPid]'
                )
            )
            , 'nq' => array(
                array(
                    'GETvar' => 'news_search[search_text]'
                )
            )
            , 'nqc' => array(
                array(
                    'GETvar' => 'news_search[category][]'
                )
            ),
        )
    )
    , 'fileName' => array (
        'defaultToHTMLsuffixOnPrev' => 0,
        'index' => array(
            // 'index.html' => array(
                // 'keyValues' => array(
                    // 'type' => 0,
                // )
            // )
            'print.html' => array(
                'keyValues' => array(
                    'type' => 98,
                )
            )
            , 'text.html' => array(
                'keyValues' => array(
                    'type' => 99,
                )
            )
            , 'rss.xml' => array(
                'keyValues' => array(
                    'type' => 100,
                )
            )
            , 'rss091.xml' => array(
                'keyValues' => array(
                    'type' => 101,
                )
            )
            , 'rdf.xml' => array(
                'keyValues' => array(
                    'type' => 102,
                )
            )
            , 'atom.xml' => array(
                'keyValues' => array(
                    'type' => 103,
                )
            )
            // ext:seo_basics overrides this
            , 'sitemap.xml' => array(
                'keyValues' => array(
                    'type' => 776,
                )
            )
            , '_DEFAULT' => array(
                'keyValues' => array()
            )
        )
        , 'acceptHTMLsuffix' => 1
    ) 
);

$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
    'exemple.com' => $tx_realurl_config,
    'www.exemple.com' => 'exemple.com',
);

$TYPO3_CONF_VARS['EXTCONF']['realurl']['exemple.com']['pagePath']['rootpage_id'] = 1;

unset($tx_realurl_config);
?>

У меня работает такая настройка...

По поводу кодировки можно глянуть эту тему: http://forum.typo3.biz/showthread.php?p=29013#post29013
последние два сообщения

dmartynenko 07.10.2010 11:18

Кодировка может сбиваться из-за вывода warning.
Так как она не передается в заголовках HTTP, а только в head документа, то броузер может ошибиться получив сначала некий контент (сообщения warning), а потом только head.

2 agravin
У вас в конфиге RealURL настройка для tt_news прописана два раза. Один раз в fixedPostVars, второй раз postVarSets. Поэтому может не работать, попробуйте конфиг от Андрея Аксенова.

Разница между fixedPostVars и postVarSets такова:
1. fixedPostVars - добавляет GET переменную в начало URL. Например у вас есть страница example.com/news/article/ и на ней вы хотите показывать Single новости. Поэтому используя fixedPostVars можно добавить в адрес только название или идентификатор новости, например example.com/news/article/21346146/

2. postVarSets - требует для переменной или группы переменных из GET некого префикса. Т.е. если вы аналогично на example.com/news/article/ используете уже postVarSets, то получиться что-то вроде example.com/news/article/article/21346146/. Поэтому его использую например когда вы на одной странице example.com/news/ показываете и List и Single. В итоге для Single получиться example.com/news/article/21346146/

agravin 07.10.2010 12:07

Вах, спасибо. Помогло. Интереснный момент, про уникальность названия новости для гугла. Кракозябры сами по себе рассосались:) Надеюсь остальные кто будет искать решение проблемы (а таких по любому будет не мало т.к. многие хотят ЧПУ) сразу найдут этот вариант конфигурации. Хоть в отделный пост выноси.
П.С. От обещанного пива не отказываюсь

dmartynenko 07.10.2010 12:10

В самом tt_news есть готовый вариант конфигурации для RealURL.

В любом случае с RealURL нужно сразу хорошенько разобраться, так как если сделать "по дефолту", а потом разобравшись переделать - то url могут поменяться и это не хорошо скажется на индексировании поисковиками.


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

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