Frage

Drupal Aggregator-Core-Modul ist ein nützlich man leidet, aber viele Probleme. Es sprechen viele davon in Drupal 7 zu verbessern.

Im Moment bin ich mit Aggregator-Modul, das mit Drupal kommt 6. Ich baue eine Aggregation Website, und es ist ein großes Problem. Manchmal Feeds HTML-Tags Attribute enthalten (zum Beispiel Art, dir, Titel), aber Aggregator der Eingabeformat-Filter ignoriert einige Attribute (zum Beispiel Art und dir) und ermöglicht es anderen (Klasse und href). Ohne einige Attribute Feeds sehr missy aussehen. Aggregator enthält seine eigene Eingabeformat, ist es nicht andere Eingänge Formate nicht verwendet (und das macht das Problem härter!).

Die Frage ist, wie kann ich einige HTML-Tags' erlauben Attribute in Feeds angezeigt werden.

P. S. letzte, was zu tun ist, Aggregator Kern Dateien

Modifizieren
War es hilfreich?

Lösung

Sie möchten vielleicht eine der neueren Lösungen auf der FeedAPI

gebaut bewegen betrachten

http://drupal.org/node/326601

Wie Sie von dort aus sehen kann beginnen, das ist, wo die Action ist, aggregations weise.

Andere Tipps

Zum FeedAPI. Der einzige Nachteil dabei ist, die nicht sofort Blöcke für verschiedene Feeds. Es ist jedoch möglich, diese nodeblock mit einzurichten und einen Blick in den Speiseknoten der Feed-Einträge einbetten, die auch Sie Ansichten und feedapi Mapper, um zu bestimmen, welche Informationen verwenden können in jedem Feed angezeigt.

Aggregator ist nur ein schlechtes Modul für jedes schweres Heben mit RSS-Feeds. Es bietet keine Flexibilität, und spielt nicht schön mit Ansichten. Wenn Sie ernsthaft über eine ganze Seite für die Aggregation Gebäude, schalten Sie auf feedapi und dann Ansichten verwenden, um die Anzeige der Knoten zu steuern, die von den Feeds erstellt werden kann.

Es wird einige Arbeit vorne, aber auf lange Sicht, werden Sie sich die Kopfschmerzen speichern zu versuchen, die mystische Feed-Aggregator Lösung zu finden, die nicht wahrscheinlich existieren.

ich längst Aggregator ditched, aber ich möchte Sie ermutigen, in die Quelle zu graben, um zu sehen, was das Problem ist. Der Code der meisten Kernmodule ist ziemlich gut dokumentiert und es ist der einfachste Weg, um zu sehen, wie das Modul tatsächlich funktioniert.

Meine Vermutung ist, dass es entweder ein hartcodierte Zeichenfolge-Tags zu ermöglichen, oder es wird auf das Filtered HTML-Eingabeformat Huckepack.

Kurz und knapp. Werfen Sie einen Blick auf die Funktion aggregator_filter_xss () unter http://api.drupal.org/api/ Funktion / 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));
}
?>

Wie Sie sehen, gibt es einen Drupal-Variable mit dem Namen aggregator_allowed_html_tags .

Sie müssen nur sie bearbeitbar machen auf einem Einstellung von einem Ihres Module bilden. Da ich nicht die Drupal Administration Seite gefunden haben können Sie diese Variable bearbeiten, und ich würde sagen, dass es nicht.

Hier ist der Code, den Sie für Ihr benutzerdefiniertes Modul benötigen:

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;
}

Ich hoffe, es ist hilfreich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top