Я не могу показать сообщение об отказе в доступе модуля премиум-контента. Как я могу это сделать?


У меня есть 3 режима просмотра (тизер, презентация и режим полного просмотра). Я создал node--content-type.tpl.php и создал код для каждого режима просмотра с помощью условного оператора

if($teaser) {} 
else if($node->type == 'tu_mooc' && $view_mode == 'presentation') {} 
else {}

Я связал 3 режима просмотра. Таким образом, я могу перейти от тизера к презентации и от презентации к режиму полного просмотра.

Я загрузил модуль премиум-контента, чтобы доступ к режиму полного просмотра был ограничен аутентифицированными пользователями. Я внес небольшое изменение в premium.module чтобы анонимные пользователи имели доступ как к режиму просмотра тизера, так и к режиму просмотра презентации. Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь получить доступ к режиму полного просмотра (как анонимный пользователь) Я не получаю сообщение об отказе в доступе. Вместо этого я получаю код, который отображается в режиме просмотра тизера. т.Е. В узле/1 я получаю тизер узла 1 вместо сообщения об отказе в доступе.

Нужно ли мне включать какой-то код, например <?php print $denied_message; ?>, в node--content-type.tpl.php? или что мне нужно сделать?

Спасибо в продвижение.

Author: AjitS, 2013-02-20

1 answers

Я включил этот код в тизер в node--content-type.tpl.php :

<?php print $content['body'][0]['#markup']; ?>

И я включил этот код в template.php :

function  mimooc_premium_body($arguments) {
  $node = $arguments['node'];
  node_build_content($node, 'teaser');
  unset($node->content['links']);
  $level = premium_level_load($node->premium);
  if ($level->denied_message) {
    $denied_message = $level->denied_message;
    $denied_message_format = $level->denied_message_format;
  }
  else {
    $denied_message = variable_get('premium_message', t('Full text available to premium subscribers only.'));
    $denied_message_format = variable_get('premium_format');
  }
  // Only display the premium message, if we actual have any content.
  if (!empty($node->content)) {
    return '<div class="premium-message"><h3>' . check_markup($denied_message, $denied_message_format) . '</h3><p>' . l('Click here to sign in', 'user') . '</p></div>';
  }
}

Теперь, когда я получаю доступ к режиму полного просмотра узла, я получаю тизер этого узла с сообщением об отказе в доступе.

 0
Author: Blas86, 2013-02-21 21:13:58