1

Drupal Aggregator コア モジュールは便利なモジュールですが、多くの問題があります。Drupal 7 での改善について多くの話があります。

現在、Drupal 6 に付属の Aggregator モジュールを使用しています。アグリゲーション サイトを構築していますが、大きな問題が 1 つあります。フィードに HTML タグの属性 (style、dir、title など) が含まれることがありますが、Aggregator の入力形式フィルターは一部の属性 (style や dir など) を無視し、他の属性 (class や href) を許可します。一部の属性がないと、フィードは非常にミスっぽく見えます。Aggregator には独自の入力形式が含まれており、他の入力形式は使用されません (これが問題を難しくしています!)。

問題は、一部の HTML タグの属性をフィードに表示できるようにするにはどうすればよいかということです。

PS 最後に行うことは、Aggregator のコア ファイルを変更することです

4

4 に答える 4

1

FeedAPIに移動します。これの唯一の欠点は、異なるフィードの即時ブロックがないことです。ただし、ノードブロックを使用してこれらを設定し、フィードアイテムのフィードノードにビューを埋め込むことは可能です。これにより、ビューとfeedapiマッパーを使用して各フィードに表示される情報を決定することもできます。

アグリゲーターは、フィードを使った重い物を持ち上げるのに適したモジュールではありません。柔軟性がなく、ビューとうまく連携しません。集約のためにサイト全体を構築することを真剣に考えている場合は、feedapiに切り替えてから、ビューを使用して、フィードから作成できるノードの表示を制御します。

事前にある程度の作業が必要ですが、長期的には、存在しない可能性が高い神秘的なフィードアグリゲーターソリューションを見つけようとするという頭痛の種を減らすことができます。

于 2009-08-02T10:46:41.630 に答える
1

FeedAPI の上に構築された新しいソリューションのいずれかに移行することを検討してください。

http://drupal.org/node/326601

そこから見てわかるように、これが集計に関するアクションの場所です。

于 2008-12-22T17:25:24.517 に答える
0

短くてシンプル。http://api.drupal.org/api/function/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));
}
?>

ご覧のとおり、aggregator_allowed_html_tagsという drupal 変数があります。

モジュールの1つから設定フォームで編集可能にするだけです。この変数を編集できる 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;
}

お役に立てば幸いです。

于 2010-09-06T18:16:52.113 に答える
0

私はアグリゲーターを捨てて久しいが、ソースを掘り下げて何が問題なのかを確認することをお勧めする. ほとんどのコア モジュールのコードは十分に文書化されており、モジュールが実際にどのように機能するかを確認する最も簡単な方法です。

私の推測では、許可するためにハードコードされたタグの文字列を使用しているか、フィルター処理された HTML 入力形式に便乗しています。

于 2008-12-23T21:43:54.353 に答える