Brainstorming Feedicon
am 09.07.2006 - 20:08 Uhr in
Vorwort
Das Konzept von Drupal hinsichtlich der Verwendung von Feedinhalten geht davon aus, das weitestgehend jeder Inhalt einer Website als Feed-Inhalt erreichbar ist. Dabei ist man derart konsequent? vorgegangen, daß sogar die Standard-Startseite einer neuen Drupalinstallation als Feed zur Verfügung steht. Diese Konsequenz hat sogar lächerlich wirkende Dimensionen: Bei der Anzeige der Information "There are currently no posts in this category." wird das Feedicon unterhalb dieses Textes gezeigt und das Icon in der URL-Zeile des Browsers ermöglicht das Anlegen eines dynamischen Lesezeichens auf diese Information.
Bisher ist erstaunlicher Weise kein Drupalentwickler auf den Gedanken gekommen, daß es Drupal-Websites geben könnte, bei denen generell oder partiell keine Feed's bzw. die Feed-Funktionalität gewünscht sind. Deswegen gibt es momentan keine Möglichkeit, Feed's zu administrieren/konfigurieren. Einzige Ausnahme ist die Wahl der Anzahl von Feedeinträgen für die Anzeige in einem Feed und die Konfiguration des Feedicons durch ein Template.
Brainstorming
Um sich mit dem Thema Feedicon in Drupal 4.7 auseinanderzusetzen, möchte ich hiermit ein kleines Brainstorming starten.
Ich bitte herzlich
um die Äußerung von Ideen, Gedanken, Vorschlägen und Erfahrungen zum Thema Feedicon.
Zielstellung:
Eine einfache Möglichkeit der Einflussnahme auf das Feedicon innerhalb von Webseiten und in der URL-Zeile des Browser sowie der Kontrolle der Generierung/Ausgabe von Feeds.
Dabei geht es aber nicht um einen Hack, sondern um eine Lösung, die sich in die Drupal-Administration eingliedert.
Postingsyntax Feedicon
Feedicon im Text: Feedicon
Feedicon in URL-Zeile: URL-Feedicon
-------------
quiptime
- Anmelden oder Registrieren um Kommentare zu schreiben
Das URL-Feedicon
am 09.07.2006 - 21:17 Uhr
Das URL-Feedicon wird mit der Funktion "drupal_add_link()" in 4 Modulen in den HTML-Header eingebunden. Diese Module sind:
blog.module
forum.module
node.module
taxonomy.module
Vermutlich gibt es weitere Module, die das URL-Feedicon einbinden.
Ich bitte hiermit
andere Drupalanwender ihr Drupal nach "drupal_add_link(array" zu durchsuchen, um zu ermitteln, ob es weitere Module gibt, die mittels der Funktion "drupal_add_link()" das URL-Feedicon in den HTML-Header einbinden.
Der Code hat in etwa folgenden Inhalt:
<?php
drupal_add_link(array('rel' => 'alternate',
'type' => 'application/rss+xml',
'title' => 'RSS - '. $title,
'href' => url('taxonomy/term/'. $str_tids .'/'. $depth .'/feed')));
?>
-------------
quiptime
Da geht noch was.
Einen weiteren Aspekt neben
am 09.07.2006 - 22:19 Uhr
Einen weiteren Aspekt neben der "kosmetischen" Aktion des Ausblendens des Feedicon und des URL-Feedicon gilt es zu beachten.
Dieser weitere Aspekt ist die Eingabe bestimmter URL's im Browser.
Wenn ich eine kosmetisch bereinigte Seite mit der beispielsweisen URL
taxonomy/term/27
erreichen kann ist es durch probieren möglich, durch die Eingabe der URL
taxonomy/term/27/0/feed
trotzdem an den Inhalt eines Feed zu gelangen. Dies kann insofern von Bedeutung sein, wenn der Betreiber einer Website unbedingt den Zugriff auf Feed-Inhalte verhindern möchte.
Unter Beachtung dieses weiteren Aspektes geht die API reference >> Drupal 4.7 >> functions
http://api.drupal.org/api/4.7/function/theme_feed_icon
am eigentlichen Kern des Problemes komplett vorbei.
-------------
quiptime
Da geht noch was.
Ideensammel-Posting
am 09.07.2006 - 22:54 Uhr
Disable RSS feed or remove RSS feeds from Search Engines http://drupal.org/node/28336
Inhalt:
-------------
quiptime
Da geht noch was.
Ideensammel-Posting
am 10.07.2006 - 00:02 Uhr
Der Aufruf bestimmter URL's kann Drupal veranlassen, Feed-Inhalt auszugeben.
Dabei wird in node.module die function node_feed() verwendet.
Um generell eine Konfiguration zur Berechtigung der Generierung von Feed's zu realisieren erscheint mir eine Erweiterung der DB-Tabelle "node" erforderlich - Feld "feed" mit möglichen Statuswerten 0 oder 1.
-------------
quiptime
Da geht noch was.
Das Modul "Flexinode" kann
am 10.07.2006 - 00:14 Uhr
Das Modul "Flexinode" kann Feeds ausgeben - function flexinode_feed().
-------------
quiptime
Da geht noch was.
Ein Lösungsansatz wäre
am 10.07.2006 - 18:58 Uhr
Ein Lösungsansatz wäre folgender:
Einfügen der Kontrollfelder an/aus unter admin/settings
system.module
--- system.module 2006-07-10 15:39:25.000000000 +0200
+++ system.module 2006-07-10 18:46:09.000000000 +0200
@@ -384,6 +384,11 @@ function system_view_general() {
// Feed settings
$form['feed'] = array('#type' => 'fieldset', '#title' => t('RSS feed settings'), '#collapsible' => TRUE, '#collapsed' => TRUE);
+ $form['feed']['feed'] = array(
+ '#type' => 'radios', '#title' => t('RSS feed'), '#default_value' => variable_get('feed', TRUE),
+ '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')),
+ '#description' => t("Web feeds provide web content or summaries of web content together with links to the full versions of the content, and other metadata. RSS, in particular, delivers this information as an XML file called an RSS feed, webfeed, RSS stream, or RSS channel. In addition to facilitating syndication, web feeds allow a website's frequent readers to track updates on the site using an aggregator.")
+ );
$form['feed']['feed_default_items'] = array(
'#type' => 'select', '#title' => t('Number of items per feed'), '#default_value' => variable_get('feed_default_items', 10),
'#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30)),
Zugriff auf abgeschaltete Feeds verweigern
node.module
--- node.module 2006-07-10 15:39:25.000000000 +0200
+++ node.module 2006-07-10 18:42:02.000000000 +0200
@@ -1403,6 +1403,11 @@ function node_block($op = 'list', $delta
function node_feed($nodes = 0, $channel = array()) {
global $base_url, $locale;
+ if (!variable_get('feed', TRUE)) {
+ drupal_access_denied();
+ return;
+ }
+
if (!$nodes) {
$nodes = db_query_range(db_rewrite_sql('SELECT n.nid, n.created FROM {node} n WHERE n.promote = 1 AND n.status = 1 ORDER BY n.created DESC'), 0, variable_get('feed_default_items', 10));
}
Feedicon in der Adresszeile unterdrücken
common.inc
--- common.inc 2006-07-10 15:39:24.000000000 +0200
+++ common.inc 2006-07-10 18:41:20.000000000 +0200
@@ -1195,7 +1195,9 @@ function drupal_clone($object) {
* Add a <link> tag to the page's HEAD.
*/
function drupal_add_link($attributes) {
- drupal_set_html_head('<link'. drupal_attributes($attributes) ." />\n");
+ if (!in_array('application/rss+xml', $attributes) OR variable_get('feed', TRUE)) {
+ drupal_set_html_head('<link'. drupal_attributes($attributes) ." />\n");
+ }
}
/**
Feedicon im Content-Bereich unterdrücken
theme.inc
--- theme.inc 2006-07-10 15:39:24.000000000 +0200
+++ theme.inc 2006-07-10 18:42:56.000000000 +0200
@@ -902,7 +902,7 @@ function theme_xml_icon($url) {
* Return code that emits an feed icon.
*/
function theme_feed_icon($url) {
- if ($image = theme('image', 'misc/feed.png', t('Syndicate content'), t('Syndicate content'))) {
+ if (variable_get('feed', TRUE) AND $image = theme('image', 'misc/feed.png', t('Syndicate content'), t('Syndicate content'))) {
return '<a href="/'. check_url($url) .'" class="feed-icon">'. $image. '</a>';
}
}
Es gibt sicherlich elegantere Methoden, aber das würde schonmal funktionieren, ohne jedes Modul bearbeiten zu müssen, das einen Feed erzeugt.
Das sind alles Patches - zum selber speichern ;) - für die momentan aktuelle 4.7.2 im CVS.
Bitte um Kommentare und konstruktive Kritik.
vg
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
Habe Deine 4 Patches noch
am 10.07.2006 - 19:43 Uhr
Habe Deine 4 Patches noch nicht getestet. Eventuell postet hier nachher Jemand mit Testergebnissen Deiner Patches.
Ich denke, das ist der momentan komplexeste existierende Lösungsansatz.
@sanduhrs,
Du gehst den radikalen Weg: Feeds möglich oder Feeds nicht möglich.
Ich dachte an eine granularere Möglichkeit:
Feedfunktionalität möglich oder Feedfunktionalität nicht möglich bezogen auf einzelne Terms. Damit könnten dann Teile einer Website als Feed präsent sein und andere Teile nicht - ein Term hat Feedfunktionalität und ein anderer nicht.
Dabei wäre noch eine Steigerung der Granularität möglich. Wurde für ein Term die Feedfunktionalität deaktiviert, könnte dies aber beim Erstellen eines Node durch die Selektion einer Option "as feed item available" für diesen Node überschrieben werden.
Und umgedreht, ist für ein Term die Feedfunktionalität aktiviert, könnte dies aber beim Erstellen eines Node durch die Selektion einer Option "not as feed item available" für diesen Node überschrieben werden.
Weiterhin stehe ich vor der Frage, zur Problemlösung
Für den Punkt 1. spricht, daß die Feedfunktionalität in den Drupalcore integriert ist und deshalb auch im Core geändert werden sollte.
Gegen den Punkt 1. spricht, daß man bei Änderungen am Core wegen der Feedfunktionalität bei drupal.org Einiges an Argumentationsarbeit leisten damit diese Änderungen in Drupal übernommen werden.
Für den Punkt 2. spricht die gewisse Unabhängigkeit beim Ermöglichen der neuen Feedfunktionalität gegenüber drupal.org - es ist ein contributed module.
Gegen den Punkt 2. spricht der nach meinem momentanen Drupalverständnis höhere Programmieraufwand im Vergleich zu Punkt 1..
-------------
quiptime
Da geht noch was.
Mit den oben aufgeführten
am 10.07.2006 - 20:09 Uhr
Mit den oben aufgeführten Patches hast Du eine grundlegende Kontrolle über die Feedbereitstellung, sie zeigen die vier Ansatzpunkte im System, die modifiziert werden müssen, wenn man eine Kontrolle über die Feeds haben möchte.
Die sinnvollste Variante wäre vermutlich hooks für die Feeds zu erstellen, die es Modulen erlauben Feeds vor der Ausgabe zu modifizieren. Dazu müsste man allerdings etwas länger nachdenken ;)
vg
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
sanduhrs schrieb:Mit den
am 10.07.2006 - 20:51 Uhr
Mit den oben aufgeführten Patches hast Du eine grundlegende Kontrolle
Das ist mir schon klar. Mir geht es eigentlich darum, daß wenn man sich jetz um eine Lösung bemüht man es doch richtig, vom Grunde her, tun sollte.
Dazu müsste man allerdings etwas länger nachdenken ;)
Könnten Wir hier/Du das denn nicht tun? Was meinst Du dazu, sanduhrs?
-------------
quiptime
Da geht noch was.
noch Interesse?
am 14.07.2006 - 10:43 Uhr
@sanduhrs, hast Du noch Interesse am Thema Feedicon?
-------------
quiptime
Da geht noch was.
Re: sanduhrs schrieb:Mit den
am 14.07.2006 - 10:50 Uhr
Könnten Wir hier/Du das denn nicht tun? Was meinst Du dazu, sanduhrs?
Wir/Du ?? Wenn Du mir einen Auftrag geben möchtest, schicke ich Dir ein Angebot ;)
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
Ideensammel-Posting
am 14.07.2006 - 11:11 Uhr
Create new feed icon variable: http://drupal.org/node/66569
Umfangreicher Patch über mehrere Module, Includes, Themes und die phptemplate.engine.
-------------
quiptime
Da geht noch was.
sanduhrs schrieb:Wir/Du ??
am 14.07.2006 - 11:40 Uhr
Wir/Du ?? Wenn Du mir einen Auftrag geben möchtest, schicke ich Dir ein Angebot ;)
Ist das als Nein auf meine Frage zu verstehen?
@sanduhrs,
offensichtlich verstehst Du den meinen Beweggrund zu diesem Brainstorming völlig falsch.
Es geht mir NICHT darum, eine geschickt inszenierte Lösung für ein Problem zu erhalten, daß ich selbst beim Einsatz von Drupal habe.
Du kannst es mir glauben. Dieses Problem mit dem Feedicon bin ich durchaus selbst in der Lage zu lösen, wenn es für einen konkreten Einsatz notwendig ist.
Und deswegen kann es nicht darum gehen, daß ich Dir einen Auftrag erteile. Auch wenn Du Dir das wünscht.
Du solltest noch mal das Vorwort meines Eröffnungspost lesen. Eventuell hast Du noch nicht erkannt, daß Das Problem Feedicon nicht mein Problem ist, sondern ein generelles Problem von Drupal.
Wenn Du aber Dein Potenzial, eine Lösung für ein generelles Problem von Drupal zu finden, davon abhängig machst ob Dich dafür Jemand bezahlt so ist das Deine Entscheidung, die man akzeptieren muss. Zugleich offenbart sie aber auch eine gewisse Kleingeistigkeit Deiner Gedanken und auch Egoismus.
Drupal hat Dir mit Sicherheit schon Einiges gegeben - ich vermute das jetzt mal. Mit Sicherheit hast Du einige oder viele Websites mit Drupal realisiert.
Könntest Du da nicht auch mal was zurückgeben?
Es würde dann bis an das Ende der Tage heißen: Sanduhrs war es, der hat die Sache mit den Feedicons geklärt. ;-)
-------------
quiptime
Da geht noch was.
Der Punkt ist, ich habe
am 14.07.2006 - 11:46 Uhr
Der Punkt ist, ich habe genug eigene Projekte, und benötige keine Beschäftigungstherapie von Dir.
Abgesehen davon willst Du mir sagen ich gebe nicht genug zurück??
Warum machst Du an dem Projekt hier nicht weiter - die Ansätze sind doch alle vorhanden?!
vg
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
sanduhrs schrieb:Warum
am 14.07.2006 - 12:01 Uhr
Warum machst Du an dem Projekt hier nicht weiter - die Ansätze sind doch alle vorhanden?!
Genau darum ging es bei meiner Frage nach Deinem Interesse.
Feedicon -> Beschäftigungstherapie? OK sanduhrs, lassen wir es.
Ich beende hiermit diesen Thread.
-------------
quiptime
Da geht noch was.
Ich lese immer wieder Wir?!
am 14.07.2006 - 12:18 Uhr
Ich lese immer wieder Wir?!
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
Mein letztes Wir bezog sich
am 14.07.2006 - 12:39 Uhr
Mein letztes Wir bezog sich auf Dich und mich.
Eigentlich war ich der Meinung (oder Vermutung oder Hoffnung), daß sich dieses Wir nicht nur auf Dich und mich beziehen sollte. Aber offensichtlich interessiert dieses Brainstorming kaum Jemanden. Eventuell liegt aber auch nur an der Urlaubssaison.
Eigentlich bezog sich dieses Wir auf eine mögliche Art "interdisziplinärer" Zusammenarbeit. Wobei interdisziplinär nicht ganz zutreffend ist - auf jeden Fall aber Zusammenarbeit.
Ich habe mich entschlossen, am Thema Feedicon allein weiterzuarbeiten.
-------------
quiptime
Da geht noch was.
Dabei wünsche ich Dir viel
am 14.07.2006 - 13:34 Uhr
Dabei wünsche ich Dir viel Erfolg.
vg
--
sanduhrs · Stefan Auditor · Drupalcenter
http://drupal.org/user/28074 · http://association.drupal.org/user/646
Autsch
am 14.07.2006 - 22:41 Uhr
autsch, was für ein gerangel ... ich will hier jetzt nicht den mediator spielen. trotzdem komme ich nicht umhin etwas dazu zu sagen.
Also ich fand quiptime's ansatz mit dem brainstorming nicht schlecht.
Auch nett von sanduhrs da einzusteigen.
Deutlich sichtbar beider das bemühen lösungsansätze zu finden.
quiptime freut sich, das er jemand gefunden hat, mit dem er - so seine hoffnung - ein projekt für die gesamtheit umsetzen kann. sanduhrs macht einen rückzieher und hat offensichtlich keine zeit dafür.
Mein Vorschlag für die zukunft wäre, das thema gleich anders zu beginnen und klar zu stellen, daß man eine idee für die gemeinschaft hat und sich freuen würde, wenn jemand mit ins boot kommt.
Sorry, aber ich musste das hier mal loswerden, da ich es schade finde, daß hier hin und wieder so ein gerangel entsteht ...
[falls ich mit meiner analyse daneben liege, einfach ignorieren]
--------------------------------
http://www.autokauf-und-recht.de
--------------------------------
@Frugol, danke für Dein
am 15.07.2006 - 10:47 Uhr
@Frugol,
danke für Dein Statement. Was Deinen Vorschlag betrifft: Ich bin davon ausgegangen, daß ein Braistorming immer eine Sache von Vielen ist. Zumal ich im konkreten Fall auch keinen speziellen Personenkreis explizit geladen hatte.
@sanduhrs, die Sache mit dem "auch mal was zurückgeben" nehme ich zurück. Habe inzwischen Dein .org Profil und Dein Tracking gelesen.
-------------
quiptime
Da geht noch was.
Interesse besteht
am 30.08.2006 - 12:10 Uhr
Hi,
wollte mich mal kurz melden, so nach dem Motto "I just called to say I love you".
Das Brainstorming finde ich gut, auch wenn es bisher noch eher ein kleiner Luftzug ist. Leider kann ich technisch nichts beisteuern. Aber ich wollte fähigeren Community Mitgliedern durchaus Zuspruch geben und sagen, dass ich an einer Weiterentwicklung der Problemlösung durchaus interessiert bin.
Vollständige Feed-Kontrolle
am 02.11.2007 - 00:09 Uhr
... bietet diese Lösung: http://drupal.org/node/28336#comment-263012 (engl.)
Die Lösung umgeht Änderungen am Drupal Core Code und kommt mit einer modifizierten page.tpl.php sowie einigen zusätzlichen Apache-Direktiven (.htaccess) aus.
Eine einfache Klick-Lösung ist es dabei natürlich nicht. Aber das beste, das dzt. für mich funktioniert und update-friendly bleibt.
Der Vollständigkeit halber,
Grüße
Mit Drupal 5.x gibt es eine
am 02.11.2007 - 00:52 Uhr
Mit Drupal 5.x gibt es eine weitere saubere Lösung absolut ohne jedweden Codehack.
Diese Lösung setzt die Verwendung von Views voraus.
Werden Teaserlisten/Nodeübersichten der Kategorien (wenn auf ein Menu geklickt wird) einer Website mit Views ausgegeben hat man zunächst absolut keine RSS-Funktionalität.
Will man doch RSS-Funktionalität muss das Views-Modul "Views RSS" aktiviert werden und ein in Frage kommender View entsprechend konfiguriert werden.
Um die RSS-Funktionalität zu aktivieren wird bei der Konfiguration eines View das Argument "RSS: RSS Feed Selector" mit der Option "Display all Values" definiert.
Eine Demonstration des Beschriebenen gibt es in meinem Blog.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.