3

我有一个 Drupal 站点,它允许用户创建一个帐户并发布他们自己的内容。但是,我已经尝试了几个小时,但没有运气尝试设置一个电子邮件服务,例如每周向所有用户发送一封包含内容的电子邮件。该电子邮件将向他们显示他们的内容获得了多少页面点击量。任何帮助都感激不尽!干杯

4

2 回答 2

0

我和我的同事找到了解决方案。我们首先创建了一个规则,它将在 cron 作业上运行以执行下面的自定义 php。

$type = '<node_type>';

$articles = db_select('node')
->fields('node', array('nid', 'title'))
->condition('type', $type, '=')
->execute()
->fetchAllKeyed();

$nodes = array();
foreach ($articles as $nid => $title) {
    $nodes[] = node_load($nid);
}

$checked = array();

foreach($nodes as $node) {
    if(!in_array($node->nid, $checked)) {
        $statistics = statistics_get($node->nid);
        $email = $node->field_email['und'][0]['email'];
        $subject = 'Content view update';
        $headers = 'From: you@domain.com' . "\r\n" .
        'Reply-To: you@domain.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

        $message =   'Hi,
        Your content has been viewed ' . $statistics . ' times';

        global $language;
        $params['subject'] = t($subject);
        $params['body']    = array(t($message));

        drupal_mail('smtp', 'smtp-test', $email, $language, $params);
        $checked[] = $node->nid;

    }
}

php 脚本循环遍历所有具有类型的自定义内容节点$type并检索标题、电子邮件和统计信息,然后将信息通过电子邮件发送给内容所有者。

如果有人有更好的解决方案,请您发表评论。

于 2013-01-11T11:44:39.207 回答
0

我认为在这种情况下,您必须使用drupal 规则模块。

于 2013-01-10T07:42:59.763 回答