Drupal聚合器输入格式
Drupal聚合器核心模块是一个有用的模块,但存在许多问题。有很多人在讨论如何在Drupal7中改进它 现在我正在使用Drupal6附带的聚合器模块。我正在建立一个聚合站点,有一个大问题。有时提要包含HTML标记属性(例如,style、dir、title),但聚合器的输入格式筛选器忽略某些属性(例如,style和dir),并允许其他属性(class和href)。如果没有一些属性,提要看起来很模糊。聚合器包含它自己的输入格式,它不使用其他输入格式(这使问题更加困难!) 问题是如何允许一些HTML标记的属性出现在提要中Drupal聚合器输入格式,drupal,content-management-system,module,aggregators,Drupal,Content Management System,Module,Aggregators,Drupal聚合器核心模块是一个有用的模块,但存在许多问题。有很多人在讨论如何在Drupal7中改进它 现在我正在使用Drupal6附带的聚合器模块。我正在建立一个聚合站点,有一个大问题。有时提要包含HTML标记属性(例如,style、dir、title),但聚合器的输入格式筛选器忽略某些属性(例如,style和dir),并允许其他属性(class和href)。如果没有一些属性,提要看起来很模糊。聚合器包含它自己的输入格式,它不使用其他输入格式(这使问题更加困难!) 问题是如何允许一些HTML标
<> P.S.最后要做的是修改聚合器的核心文件 ,您可能需要考虑移动到FippAPI 之上的最新解决方案之一。
从这里开始,您可以看到,这就是操作所在,聚合方面。我早就抛弃了聚合器,但我鼓励您深入了解问题的根源。大多数核心模块的代码都有很好的文档记录,这是查看模块实际工作情况的最简单方法
我的猜测是,它要么使用一个硬编码的标签字符串来允许,要么是在过滤的HTML输入格式上进行复制。转到FeedAPI。这样做的唯一缺点是没有针对不同提要的即时块。但是,可以使用nodeblock设置这些,并在提要项的提要节点中嵌入视图,这也允许您使用视图和feedapi映射器来确定每个提要中显示的信息 聚合器对于任何繁重的提要来说都是一个糟糕的模块。它没有提供灵活性,并且不能很好地处理视图。如果您真的想构建一个用于聚合的整个站点,请切换到feedapi,然后使用视图控制可以从提要创建的节点的显示 这将需要一些前期工作,但从长远来看,您将省去寻找可能不存在的神秘提要聚合器解决方案的麻烦。简短而简单。 请查看位于的函数aggregator_filter_xss()
如您所见,有一个drupal变量称为aggregator\u allowed\u html\u 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;
}
使用您的_模块_设置()
{
$form=array();
//param聚合器
$form['aggregator\u allowed\u html\u tags']=array(
“#键入”=>“文本区域”,
“#title”=>t('Core Module Aggregator allowed tags'),
“#默认值”=>variable_get('aggregator_-allowed_-html_-tags',”
),
“#必需”=>正确,
“#description”=>t(“核心模块聚合器允许的标记”),
);
返回系统设置表单($form);
}
功能您的_模块_菜单()
{
$items=array();
$items['admin/content/your module']=array(
“标题”=>“我的模块设置”,
'description'=>'desc',
“页面回调”=>“drupal获取表单”,
“页面参数”=>array('your_module_upasos'),
“键入”=>菜单项\u正常\u项,
);
退回$items;
}
我希望这会有帮助。如果我的问题没有解决方案,我想这样做,但是你认为不过滤就传递html会有安全风险吗?确实如此。但您可以选择允许使用哪些标记。
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;
}