Как закрыть поле CCK от индексации?
Здравствуйте, Иван.
Подскажите, пожалуйста, в вопросе индексации роботами некоторых материалов на сайте.
Возникла необходимость создать поле: "подробнее" для содержимого : "товар", но это поле будет скрыто для пользователей, как для зарегистрированных, так и для анонимных. Это поле будет видеть только администратор!
В этом поле будут ссылки, некоторый текст, который не должен попасть в индексацию, некоторые подсказки администратору. Как в таком случае закрыть доступ всем роботам и запретить это поле индексировать? Спасибо за помощь!
Здравствуйте, первое что приходит на ум установить модуль 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 ?>: </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.