Имеется магазин электронных товаров. Часть товаров - бесплатные. И ссылка для их скачивания вставлена непосредственно в ноду товара.
Нужно сделать, чтобы эта ссылка была видна только зарегистрированным пользователям. В принципе, проблема решаема вставкой в ноду примерно
такого кода PHP:
<?php if(user_is_logged_in()) {
echo "
Ссылка на скачивание файла";
}
else {
echo "
Ссылка для скачивания станет доступна только после входа в систему. Если вы еще не зарегистрировались на нашем сайте, можете сделать это вот здесь.";
} ?>
Но это затратно по времени и неудобно. Можно ли сделать это как-то одноразово, и чтобы при этом передавался номер ноды конкретного товара?
Можно ли на класс css этой ссылки навесить исполнение php кода?
Комментарии
пусто
Собственно сам же и ответил на свой вопрос. Этот код в шаблон конкретного типа ноды, можно дополнительно что-нибудь проверять, например, значение поля указывающего что товар платный.
было уже, есть хороший сайт- старого программера. там как раз это есть
Вам нужно сделать модуль, который будет работать как формат ввода (фильтр) и при показе ноды искать в тексте специально оформленную ссылку (класс css) и заменять ещё чем-то другим.
За основу можно взять, например, модуль http://drupal.org/project/noindex_external_links
Там есть сам фильтр и поиск ссылок.
Ещё более простой модуль (только фильтр и без доп. наворотов): http://drupal.org/project/ext_link_page
Полезно. Возьму на заметку. Спасибо.
Еще можно использовать модуль restricted_text с фильтром для скрытия текста Возможно вам потребуется чуть доработать для показа текста замены тем у кого нет прав.
Всем спасибо, буду разбираться