Russian TYPO3 community

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

agravin 28.08.2012 13:28

ReealUrl и tt_news. Опять
 
Всем хорошего настроения.
Случилось так, что настроенный конфиг RealURL (проработавший более года нормально), без внешнего вмешательства дал сбой. Т.к. проблему заметили слишком поздно, то откатить дамп не представляется возможным. Итак, что собственно произошло:
на сайте установлен tt_news + RealUrl

Setup:
config {
baseURL = http://domain.ru/
simulateStaticDocuments = 0
tx_realurl_enable = 1
xmlprologue = none
doctype = xhtml_trans
xhtmlDoctype = xhtml_trans
index_enable = 1
index_externals = 1
forceCharset = utf-8
metaCharset = utf-8
renderCharset = utf-8
config.uniqueLinkVars = 1
linkVars = L
sys_language_mode = content_fallback
sys_language_overlay = 1
sys_language_uid = 0
sys_language_softMergeIfNotBlank = tt_content:image, tt_content:header
htmlTag_langKey = ru-RU
locale_all = ru_RU.UTF8
language = ru
sys_language_uid = {$city.uid}
disablePrefixComment = 1
no_cache = 0
defaultLanguage_nearCities = {$nearCities}
prefixLocalAnchors = all
}


Localconf.php :
$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
)
);


Раньше ссылка на новость отображалась в формате:
http://domain.ru/specpredlozhenija/n...e/news_name-N/ где N, уникальный номер новости, а теперь в формате:
http:// domain.ru/specpredlozhenija/novosti/article/news_name //abp/74/ где 74 это ID страницы отображения полной новости.


Собственно вопрос: где искать ошибку?

dmartynenko 28.08.2012 15:41

Могли бы код разместить через соответствующий тэг, что бы глаза не ломать.

У вас у конфиге явно указано что сегмент 'abp' берется из 'tx_ttnews[backPid].

Код:

'abp' => array(
  array(
    'GETvar' => 'tx_ttnews[backPid]'
  )

Значит вы включили в tt_news опцию добавления в URL параметра backPid. RealURL не при чем - он просто выполнил то, что ему подсунул tt_news.

agravin 28.08.2012 17:46

Просмотрел все возможные настройки для tt_news и ничего влияющего на отображение ID (для Single), в ссылке не нашел.

dmartynenko 28.08.2012 17:58

Где же вы смотрели? Там целая куча параметров влияющих на формирование ссылки на Single. Например вот такой:

Код:

plugin.tt_news {
    dontUseBackPid = 1
}


agravin 29.08.2012 13:34

Смотрел в сетапе, смотрел в localconf.php, смотрел в Constant Editor, смотрел в "Расширения - tt_news". Ничего не указывает на то, почему вылез этот кусок в урле. Все эти настройки работают на других сайтах и все прекрасно. Переустанавливал и менял версию tt_news на более новую - не помогло. Смотрел также "Инфо - Tsconfig страницы" у страницы с Single - ничего похожего на настройки для отображения дополнительного пути в ссылках не нашел (скорее всего знаний не хватает). Что касается
plugin.tt_news {
dontUseBackPid = 1
}

то удаление этого кода не урл не влияет. Все эти конфиги tt_news отлично работают на других сайтах.

Пошел кривым путем и теперь отсекаю лишнее в ссылке, путем удаления конфига в RealUrl. Пока исправил двойной слеш на одинарный, удалив
, array(
'GETvar' => 'tx_ttnews[swords]'
)

Как удалить /abp/n/ где n id страницы с Single, ума не приложу

dmartynenko 29.08.2012 13:46

Это задается в TS Setup шаблоне, с помощью TypoScript. В других местах смотреть не нужно.

Код plugin.tt_news.dontUseBackPid = 1 вам нужно не убрать, а добавить! Иначе tt_news добавляет к ссылке Single параметр tx_ttnews[backPid], который RealURL кодирует в /abp/n/ согласно заданного для RealURL конфига.

Вот такой код задан по умолчанию в статичном шаблоне tt_news (typo3conf\ext\tt_news\pi\static\ts_new\setup.txt)
Код:

  # don't add plugin GETvars to the singleview link
  dontUseBackPid = 1

Если у вас добавляется tx_ttnews[backPid] в URL, значит где то в шаблоне на этой же странице или одном из уровней выше, явно задано plugin.tt_news.dontUseBackPid = 0

agravin 29.08.2012 14:39

Прошу прощения за невнимательность. Меня смутило, что всего два варианта id страниц за /abp/ я подумал, что это страницы Single где отображаются новости двух разных категорий, а это оказались страницы где эти новости выводятся списком (в одном случае LIST, в другом LATEST), причем на странице LIST имеются ВСЕ новости и выводятся как новости с одним id после /abp/ , так и с другим. А на странице с LATEST выводятся все новости с id страницы, где отображаются новости LIST. также страница где отображается LIST, является страницей где хранятся все записи новостей.

Вот такой вот детектив.

agravin 03.09.2012 18:10

Я так понимаю, что никто с похожим не сталкивался и это я такой особенный. Но может кто подскажет как в кофиге RealUrl убрать этот самый /abp/id/ ???

dmartynenko 03.09.2012 18:57

:confused:

О господи! Вы наверное такой особенный что не видите о чем я вам пишу уже несколько раз!
RealUrl тут вообще не причем, вам нужно править конфиг tt_news.

agravin 04.09.2012 16:58

Спасибо большое. Заработало нормально. Вставлял "plugin.tt_news.dontUseBackPid = 1"сначала в общий Setup сайта, потом на страницы с LIST и LATEST, потом на страницу с хранилищем новостей - не помогало. Затем вставил везде сразу - и все отлично заработало.


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

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