logo

Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll

Как закрыть поле CCK от индексации?

22/02/2025, by Гость (не проверено)

Здравствуйте, Иван.

Подскажите, пожалуйста, в вопросе индексации роботами некоторых материалов на сайте.

 

Возникла необходимость создать поле: "подробнее" для содержимого : "товар", но это поле будет скрыто для пользователей, как для зарегистрированных, так и для анонимных. Это поле будет видеть только администратор!

 

В этом поле будут ссылки, некоторый текст, который не должен попасть в индексацию, некоторые подсказки администратору. Как в таком случае  закрыть доступ всем роботам и запретить это поле индексировать? Спасибо за помощь!


Здравствуйте, первое что приходит на ум установить модуль fields permissions и выводить это полем запрещенным к просмотру другим пользователям, НО это плохо скажется на кеширование, каждой роле нужен будет свой кеш. Если сайту не нужно кеширование, то этот путь подойдет. И кажется еще блоки перестают кешироваться при включения модуля, что самое печальное.

Лучше переопределить шаблон поля и в нем сделать проверку, например вот такой шаблон поля fields_example,
field--field_example.tpl.php:

<?php
   global $user;
   if(in_array('administrator', $user->roles)){ //при условие что роль administrator есть
?>


<div class="<?php print $classes; ?>"<?php print $attributes; ?>>
  <?php if (!$label_hidden): ?>
    <div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>:&nbsp;</div>
  <?php endif; ?>
  <div class="field-items"<?php print $content_attributes; ?>>
    <?php foreach ($items as $delta => $item): ?>
      <div class="field-item <?php print $delta % 2 ? 'odd' : 'even'; ?>"<?php print $item_attributes[$delta]; ?>><?php print render($item); ?></div>
    <?php endforeach; ?>
  </div>
</div>
<?php
}
?>

 Если просто нужно админу показывать поле то проверять можно $user->uid == 1.