推聚集核心模块是一个有用的一个,但遭受的许多问题。有很多谈论的是改进它在推7.

现在我使用的汇模块带有推6.我要建一个聚合网站、并有一个很大的问题。有时饲料包含HTML tags属性(例如风格,dir,标题),但聚合器的输入格式过滤器忽略了某些特性(例如风格和dir),并允许其他(类和href).没有的一些属性的饲料看起来非常大小姐。聚集器含有它自己的输入格式,它不使用其他投入的格式(而这使问题更难!).

问题是我怎么可以允许一些HTML tags'特性出现在饲料。

P.S.最后一件事要做的就是修改聚集的核心文件

有帮助吗?

解决方案

您可能要考虑转向建立在FeedAPI之上的新解决方案之一

http://drupal.org/node/326601

正如你可以看到从那里开始,这是那里的行动是,聚集,明智的。

其他提示

移至FeedAPI。这个唯一的缺点是不具有不同的饲料立即块。然而,有可能使用nodeblock和嵌入在供给物品的供给节点,这也允许您使用视图和feedapi映射器,以确定哪个信息被显示的每个进料在视图中设置这些。

聚集仅仅是任何繁重与进料坏模块。它没有提供任何灵活性,并且不与浏览发挥很好。如果你认真地建立整个网站的聚合,切换到feedapi,然后使用视图来控制,可以从饲料创建的节点的显示。

这将需要一些预先的准备,但是从长远来看,你能救自己的努力找到可能不存在神秘提要聚合解决方案的头痛。

我早已抛弃聚合,但我会鼓励你深入到源代码,看看是什么问题。最核心的模块的代码是相当有据可查的,它“是看到模块实际上是如何工作的最简单的方法。

我的猜测是,它是或者使用的标签的硬编码串,以允许,或它被捎带对滤波HTML输入格式。

简短。 有在 http://api.drupal.org/api/看看功能aggregator_filter_xss()功能/ aggregator_filter_xss

<?php
function aggregator_filter_xss($value) {
  return filter_xss($value, preg_split('/\s+|<|>/', variable_get('aggregator_allowed_html_tags', '<a> <b> <br> <dd> <dl> <dt> <em> <i> <li> <ol> <p> <strong> <u> <ul>'), -1, PREG_SPLIT_NO_EMPTY));
}
?>

正如你可以看到有一个名为Drupal的变量的 aggregator_allowed_html_tags 的。

您只需要使其可编辑上的设置从你的模块的一种形式。由于我没有发现它的Drupal管理页面可以编辑这个变量,我会说没有。

下面是你需要为你的自定义模块的代码:

function your_module_settings()
{
    $form = array();

    // Params para aggregator
    $form['aggregator_allowed_html_tags'] = array(
        '#type'          => 'textarea',
        '#title'         => t('Core Module Aggregator allowed tags'),
        '#default_value' => variable_get('aggregator_allowed_html_tags', '<a> <b> <br> <dd> <dl> <dt> <em> <i> <li> <ol> <p> <strong> <u> <ul>'),
        '#required'      => TRUE,
        '#description'   => t('Core Module Aggregator allowed tags'),
    );

    return system_settings_form($form);
}

function your_module_menu()
{
    $items = array();

    $items['admin/content/your-module'] = array(
        'title'            => 'My module settings',
        'description'      => 'desc',
        'page callback'    => 'drupal_get_form',
        'page arguments'   => array('your_module_ pasos'),
        'type'             => MENU_NORMAL_ITEM,
    );

    return $items;
}

我希望这是有帮助的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top