Вкл\Выкл свет
Главная » Computing » Выделение номера страницы

Выделение номера страницы

При работе с сайтами в системе uCoz иногда возникает проблема с дублями метаописаний и заголовков. Это происходит (кроме других проблем) потому, что при разбиении материала на страницы uServ присваивает им одинаковые метаданные. Выход из этой ситуации состоит, например, в том, чтобы в шаблоне ввести в тело этих данных номер страницы. Существует даже специальный код для этого: $CURRENT_PAGE$. Однако эта переменная содержит не число, а целую строку вывода вида:

<span class="currentPage79">1</span>

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

<meta name="description" content="Раздел «Иллюстрации» блока фотоальбомов, стр. <span class="currentPage79">1</span>" />,

что совершенно нас не устраивает. Выход один — резать эту строку, чтобы выделить необходимую информацию. Для этого будем использовать встроенную функцию substr().

Эта функция имеет общий вид substr(S,N1,N2). Здесь S — строка, которую будем резать, N1 — номер символа, с которого начнём резать, а N2 — количество символов, которые будем отрезать. Какую строку будем резать понятно — $CURRENT_PAGE$. Чтобы выяснить, с какого места отрезать, найдём первое вхождение символа «>». Он закрывает открывающий тег span. Номер позиции ищет встроенная функция strpos(S1,S2). Здесь S1 — строка, в которой ищем, а S2 — строка, которую ищем. В нашем случае получается:

strpos($CURRENT_PAGE$,'>')+1.

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

Дальше надо найти количество символов, которые нам нужно отрезать. Здесь немного сложнее. Мы будем использовать функцию strrpos(S1,S2). Она тоже ищет первое вхождение символа в строку, но не с начала строки S1, а с конца. В конце концов получим следующее:

strrpos($CURRENT_PAGE$,'<')-strpos($CURRENT_PAGE$,'>')-1.

И в общем виде:

<meta name="description" content="Раздел «$SECTION_NAME$» блока фотоальбомов<?if($CURRENT_PAGE$)?>, стр. <?substr($CURRENT_PAGE$,strpos($CURRENT_PAGE$,'>')+1,strrpos($CURRENT_PAGE$,'<')-strpos($CURRENT_PAGE$,'>')-1)?><?endif?>"/>

Когда все коды сработают, браузер (и паук поисковика) получит следующее:

<meta name="description" content="Раздел „Иллюстрации“ блока фотоальбомов, стр. 1" />

что и требовалось.


Добавил: prostologin1
Просмотров: 1299
Теги: ucoz
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Всего комментариев: 0
avatar