当我从自定义面板看到节点时,Drupal 统计信息不计算访问次数

Posted

技术标签:

【中文标题】当我从自定义面板看到节点时,Drupal 统计信息不计算访问次数【英文标题】:Drupal statistics does not count visits when I see the node from a custom panel 【发布时间】:2014-12-08 00:05:02 【问题描述】:

我有一个网站,其中每个节点都有三种不同的设计(我通过面板和参数来实现),我使用统计模块,这样我就可以看到节点有多少访问。

但统计模块只是在访问主设计时计算访问次数。我可以举例说明:

website .com/node/01 website .com/node/01/mobile 网站.com/node/01/lightbox

这是为面板和参数而构建的...那么,有没有将 php 代码放在两个面板中,访问者不必开始计算?

最好的,

【问题讨论】:

【参考方案1】:

这是因为面板不调用 node_view()。请尝试以下代码:

function MODULE_ctools_render_alter(&$info, &$page, &$context) 
  if ($context['handler']->task == 'node_view') 
    $key = $context['handler']->conf['context'];
    $node = $context['contexts'][$key]->data;
    statistics_node_view($node, 'full')
  

【讨论】:

【参考方案2】:

你可以使用节点views count module

节点视图计数模块允许计算节点视图。与统计不同 模块,该模块用用户 uid 记录节点的每个视图和 时间戳。所以现在您可以知道用户查看节点的次数 日、周、月等。

此模块与 Views 模块集成。您可以使用它来创建 不同的统计页面,为用户输出新的未查看节点和 还有更多。

【讨论】:

【参考方案3】:

以下是我如何让面板页面与统计信息一起使用:

    function MODULE_ctools_render_alter(&$info, &$page, &$context) 
      if (!user_is_logged_in() && $context['handler']->task == 'node_view') 
        $node = current($context['contexts'])->data;
        statistics_node_view($node, 'full');
        drupal_process_attached($node->content);
      
    

我添加了一个 user_is_logged_in 检查,因为在我的情况下,我只想计算来自未登录用户的点击次数。

【讨论】:

【参考方案4】:

Drupal 8 的解决方案。

function MODULE_panels_build_alter(array &$build, $panels_display) 
        if ($nid = \Drupal::routeMatch()->getRawParameter('node')) 
                $build['#attached']['library'][] = 'statistics/drupal.statistics';
                $settings = ['data' => ['nid' => $nid], 'url' => \Drupal::request()->getBasePath() . '/' . drupal_get_path('module', 'statistics') . '/statistics.php'];
                $build['#attached']['drupalSettings']['statistics'] = $settings;
           

【讨论】:

以上是关于当我从自定义面板看到节点时,Drupal 统计信息不计算访问次数的主要内容,如果未能解决你的问题,请参考以下文章

Drupal 6 中的自定义搜索表单:视图/面板还是自定义 sql?

从自定义大标题导航栏过渡到常规导航栏时出现黑框

从自定义 UIViewController 导航到 TabBarController 而不使用 segue

Drupal 7 查看数据重复

Drupal 7 新的自定义模板

swift:从自定义应用程序加载时,iCloud 文档似乎被禁用