Drupal, Бегун автоконтекст и Google Adsense

в разделе Программирование | Метки: Google, Drupal

В последнее время мне все больше и больше начинает нравится Drupal (CMS, под которой работает этот блог). Один из очевидных плюсов - отсутствие спама в комментах, возможно это из-за того что этот блог не особо популярный, хотя думаю скорее всего из-за того что блогов на wordpress намного больше поэтому и спамилки все пишут для Wordpress. К примеру недавно я зашел на свой старый блог, который не просматривал месяца два, в комментах там около 500 сообщений, почти все они спам (Akismet заблокировал наверно еще столько же если не больше).

На некоторых своих сайтах я тоже использую Drupal, и как я заметил в установленной по умолчанию системе есть несколько недостатков, из-за которых некоторые страницы могут вылететь из индекса поисковых систем, к примеру если открыть дефолтный файл robots.txt, то вроде бы кажется что все что нужно там заблокировано, однако это не так. По мере индексации сайта в индексе начинает появляться все больше страниц, которые там быть не должны, например добавление комментария, информация о пользователе и другие. Вот мои небольшие дополнения к файлу robots.txt который идет с Drupal:

Disallow: /tagadelic
Disallow: /comment/reply
Disallow: /taxonomy/

Первая и последняя строчки не обязательны, в первой указывается что не надо индексировать все что создал модуль Tagadelic, последняя запрещает индексировать все что создано в taxonomy. Дело в том что я использую модуль Pathauto, который позволяет создавать урлы, какие вам хочется. К примеру http://website.dom/pages/page-1.html вместо http://websites.dom/node/1 который создает Drupal по умолчанию

После того как проблема с дублированным контентом в Drupal была решена, я занялся установкой кода Бегуна на сайтах, с обычным кодом проблем не возникло, основную проблему доставил Бегун гиперконтекст, я написал письмо с просьбой включить его для одного из сайтов, и получил такой ответ:

Гиперконтекст может быть размещен только на страницах со статьями и новостями.
Формат для ГиперКонтекста должен быть такой:

<div id="hypercontext">
<index>
Здесь находиться статья с подсвечиваемой информацией или новость.
</index>
</div>

Т.е. надо поставить div и . Без этого работать не будет.
Напишите, когда разметите контент.

Собственно код я разместил как просили, подправив файл themes/
/node.tpl.php
, осталась одна проблема, код продолжал отображаться не только на самих страницах но и на главной и на страницах с категориями и других. Это же и было проблемой при размещении кода Google Adsense, т.к. на одной странице можно размещать не более трех блоков. В этом блоге к примеру на главной странице выводится 10 последних сообщений, значит если бы я разместил код Google Adsense, то появилось бы и 10 блоков, за что могли бы и забанить наверно. Вот код который позволяет обойти эту проблему, необходимо править файл themes/
/node.tpl.php
.

<?php
    
<div class="content">
      <?
php
      $uri 
$_SERVER['REQUEST_URI'];

      if (
strstr($uri'/node/')) {
//      Begun hypercontext
        
print '<div id="hypercontext">';
//      Google Adsense
        
print '<span style="float:left"><p><script type="text/javascript"><!--
google_ad_client = "pub-XXXXXXXXXXXXX";
/* 300x250,  */
google_ad_slot = "XXXXXXXX";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
</span>'
;
      }
      
?>
        <index>
          <?php print $content?>
        </index>
      <?php if (strstr($uri'/node/')) {
              print 
'</div>';
            }
      
?>

Изначально код был таким

<?php
    
<div class="content">
      <?
php print $content?>
    </div>
?>

$uri = $_SERVER['REQUEST_URI']; - это запрошенный урл, if (strstr($uri, '/node/')) - проверяем, похож ли этот урл на /node, по умолчанию Drupal сохраняет страницы с путем типа http://website.dom/node/1 (где 1 - id статьи).

Комментарии