Простая автоматическая перелинковка страниц

MODX (читается «мо́дэкс») — это бесплатная профессиональная система управления содержимым (CMS) и фреймворк для веб-приложений, предназначенная для обеспечения и организации совместного процесса создания, редактирования и управления контентом сайтов.
Ответить
Аватара пользователя
berdck
Сообщения: 884
Зарегистрирован: 11 апр 2013, 09:44
Родной город: Бердск
Откуда: Регион 54
Контактная информация:

Простая автоматическая перелинковка страниц

Сообщение berdck »

На одном из проектов столкнулся с проблемой плохой перелинковки страниц и как следствие плохая индексация сайта.

Проект небольшой информационный сайт на 200 страниц. Для автоматизации процесса было решено выводить 4 блока ссылок в нижней части страницы по 3-5 ссылок в каждом блоке.

Пишем сниппет

Для этого было создано 4 сниппета (footLinkBlock1, footLinkBlock2, footLinkBlock3, footLinkBlock4):
.
КОД СНИППЕТА

Код: Выделить всё

<?php
$dataIdP = $modx->resource->get('id');

if ($dataIdP == 211) {$dataIdP = $dataIdAmp;}

if ($dataIdP < 7) {
$footlinkMail ="109,110,114";

}
else if ($dataIdP >= 7 & $dataIdP < 27) {
    $footlinkMail ="115,116,124";

}
else if ($dataIdP >= 27 & $dataIdP < 47) {
    $footlinkMail ="125,126,127";

}
else if ($dataIdP >= 47 & $dataIdP < 67) {
    $footlinkMail ="- - - - УПС!!! - - - - /,129,130";

}
else if ($dataIdP >= 67 & $dataIdP < 87) {
    $footlinkMail ="130,132,133";

}
else if ($dataIdP >= 87 & $dataIdP < 107) {
    $footlinkMail ="134,135,136";

}
else if ($dataIdP >= 107 & $dataIdP < 127) {
    $footlinkMail ="137,138,139";

}
else if ($dataIdP >= 127 & $dataIdP < 147) {
    $footlinkMail ="140,48,49";

}
else if ($dataIdP >= 147& $dataIdP < 167) {
    $footlinkMail ="50,52,99";

}
else if ($dataIdP >= 167 & $dataIdP < 187) {
    $footlinkMail ="53,54,55";

}
else {
    $footlinkMail ="56,58,59";
}

return $footlinkMail;
Код в этих четырех сниппетах одинаковый, только, чтобы на большом количестве страниц не появились одинаковые блоки ссылок - диапазоны были сдвинуты относительно друг друга. Т.е. если в первом сниппете диапазон страниц: 7-27, то во втором: 13-33, в третьем: 18-38, в четвертом 23-43, и т.д. Таким образом блок ссылок повторяется максимум на 5 страницах, а не на 20 - вот такое перемешивание при минимальном дроблении на диапазоны.

Пишем чанк

Далее создаем чанк - назовем его: footerLink - в котором подключаем все 4 сниппета (footLinkBlock1, footLinkBlock2, footLinkBlock3, footLinkBlock4):
.
КОД ЧАНКА

Код: Выделить всё

<div class="dopFooterMenu">
    <h4>Блок полезных ссылок:</h4>
    <div class="footerMenuBlock">
        <p><b><a href="/page1.html" title="Описание первого блока">Заголовок 1</a></b></p>
         [[!pdoMenu?
      	  &startId=`0`
          &level=`0`
          &resources=`[[!footLinkBlock1?&dataIdAmp=`[[+amp.pageid]]`]]`
          &showHidden=`1`
          &countChildren=`1`
          &tplOuter=`@INLINE<ul>[[+wrapper]]</ul>`
          &tpl=`@INLINE<li><a href="/[[+link]]">[[+menutitle]]</a></li>`
        ]]
    </div>    
    <div class="footerMenuBlock">
        <p><b><a href="/page2.html" title="Описание второго блока">Заголовок 2</a></b></p>
         [[!pdoMenu?
      	  &startId=`0`
          &level=`0`
          &resources=`[[!footLinkBlock2?&dataIdAmp=`[[+amp.pageid]]`]]`
          &showHidden=`1`
          &countChildren=`1`
          &tplOuter=`@INLINE<ul>[[+wrapper]]</ul>`
          &tpl=`@INLINE<li><a href="/[[+link]]">[[+menutitle]]</a></li>`
        ]]
    </div>  
    <div class="footerMenuBlock">
        <p><b><a href="/page3.html" title="Описание третьего блока">Заголовок 3</a></b></p>
         [[!pdoMenu?
      	  &startId=`0`
          &level=`0`
          &resources=`[[!footLinkBlock3?&dataIdAmp=`[[+amp.pageid]]`]]`
          &showHidden=`1`
          &countChildren=`1`
          &tplOuter=`@INLINE<ul>[[+wrapper]]</ul>`
          &tpl=`@INLINE<li><a href="/[[+link]]">[[+menutitle]]</a></li>`
        ]]
    </div>  
    <div class="footerMenuBlock">
         [[!pdoMenu?
      	  &startId=`0`
          &level=`0`
          &resources=`[[!footLinkBlock3?&dataIdAmp=`[[+amp.pageid]]`]]`
          &showHidden=`1`
          &countChildren=`1`
          &tplOuter=`@INLINE<ul>[[+wrapper]]</ul>`
          &tpl=`@INLINE<li><a href="/[[+link]]">[[+menutitle]]</a></li>`
        ]]
    </div>  
    <div class="clearboth"></div>
</div>
В четвертом блоке отсутствует заголовок - так было решено сделать.

Обращаю внимание, что в шаблоне вывода ссылок, перед [[+link]] обязательно должен быть слэш, в противном случае, если страницы у вас имеют вложенность по папкам - может быть ошибка, т.к. подставиться ссылка с соответствующей папкой, указанной в URL, а не главный URL сайта.

Код: Выделить всё

&tpl=`@INLINE<li><a href="/[[+link]]">[[+menutitle]]</a></li>`
Если у вас страницы разбиты по разделам, то при желании можно использовать данный метод для создания перекрестных ссылок внутри каждого раздела.

Добавляем чанк в шаблон

Не забудьте вставить в ваш шаблон соответствующий чанк: [[$footerLink]]
Если Вам понравилось :roll:, то не забывайте нажимать кнопочки ПОДЕЛИТЬСЯ... в социальных сетях :idea: Мне будет очень приятно ;)
А если копируете к себе в блог или на сайт, не скупитесь поставить ссылочку или пару на источник :!: - YaDumau.RU
Поделиться с друзьями:
Ответить

Вернуться в «MODX»