如何让个人用户在Drupal7中导入他们自己的外部博客提要



因此,我正试图在Drupal 7中构建一个"博客网关",让用户可以将来自自己外部网站的提要添加/编辑/删除到一个集体流中,用于评级、评论等。

网站应该沿着以下路线做一些事情:

  1. 让用户通过注册表为其订阅源添加URL
  2. 在注册时从订阅源导入最新的帖子(然后不断导入)
  3. 为提要中的每个项目创建一个节点,其他用户可以对其进行评级
  4. 从这些节点创建列表

好的,所以视图与提要模块结合可以完成大部分任务(导入提要,为每个项目创建节点并创建列表)。我已经设法允许用户使用提要模块"手动"导入提要。

问题是,我找不到限制用户可以导入的提要数量的方法,也不知道如何将注册表单中的URL作为导入的基础。

我一直在尝试使用规则模块来解决这些问题,但没有结果。

我认为类似个人资料博客信息模块的东西可以做到这一点,但它只适用于Drupal6,不适用于Feeds模块。

对解决方案或替代方案有什么想法吗?

我找不到限制用户可以导入的提要数量的方法

如果使用Feeds模块的默认设置,则应该已经有了"Feed"内容类型。因此,如果你想控制用户可以导入的"提要"的数量,http://drupal.org/project/node_limit我想应该会成功的。它将帮助您设置用户可以创建的"Feed"内容类型的节点数(这应该是一样的,对吧?)

如何使注册表单中的URL成为导入的基础

现在,我将在这里建议一个自定义模块路由。它应该做到这一点,但你可能/可能不想添加自定义模块,这取决于你的项目性质/你对Drupal的专业水平。

  1. 将URL字段(可能是URL字段类型的实例)添加到用户配置文件中。选中以允许它显示在注册表中。假设我们称之为feed_url

  2. 实现hook_user_insert(),当向站点添加新用户时调用:

    /**
    * Implements hook_user_insert().
    */
    function MY_MODULE_user_insert(&$edit, $account, $category) {
    if (isset($edit['feed_url'])) {
    $index = array('feed_url', LANGUAGE_NONE, 'value');
    // Get the feed URL from the registration form values.
    $feed_url = drupal_array_get_nested_value($edit, $index);
    if (!empty($feed_url)) {
    // Create a new feed on behalf of the user
    _MY_MODULE_create_feed($feed_url, $account->uid);
    }
    }
    }
    /**
    * Creates a new feed on behalf of a user.
    *
    * @param string $url
    *   Feed URL
    * @param numeric $uid
    *   {users}.uid of the user for whom this feed is being created.
    */
    function _MY_MODULE_create_feed($url, $uid) {
    // @todo Add more validations here
    $node = new stdClass();
    $node->uid = $uid;
    $node->type = 'feed';
    $node->feeds['FeedsHTTPFetcher']['source'] = $url;
    $node->language = language_default('language');
    node_save($node);
    }
    

相关内容

  • 没有找到相关文章

最新更新