auch schlafen ist eine form der kritik

Blogoff #211

Irgendwas scheint da beim Feedimporter-Modul noch nicht rund zu laufen (oder zu rund?). Manche Links werden doppelt importiert, wie im Moment bei der Feedfutter-Auflistung anhand des Links „Hard Candy“ zu sehen (der ursprünglich importierte Link verweist direkt, wie er sollte, auf ben_s anmutunddemut-Adressse, der doppelt importierte Link auf feedproxy.google.com…).

Hm.


19 Antworten

  1. Ah. Hm. Crap. Eigentlich ist ein URL-Auflöser ja schon im Modul drin. Haste mal den Link zum Feed, der Ärger macht?

  2. fym

    Betrifft nur den Feed der Google Shared items (also diesen Feed). Komischerweise werden die doppelten Einträge nicht zeitgleich importiert, bei einem Link lagen mal gut und gern 2 Tage dazwischen (beispielsweise dieser Node/Link, zuerst importiert. Dann nochmal, obwohl dazwischen schon einigen neueren Links importiert/Nodes erstellt wurden).

  3. fym

    Hm, schon wieder passiert. Lustigerweise scheint das nur bei Links auf ben_s Seite zu passieren.

  4. fym

    Gerade nochmal angeschaut. Es scheint schon an feedproxy.google.com[…] zu liegen bzw. vielmehr an der von drupal_http_request() zurückgegebenen redirect-url. Als Beispiel am (doppelt importierten) Link zum Fontblog:

    Lokal ist unter der nid 2388 in der Datenbank die URL http://feedproxy.google.com/~r/Fontblog/~3/TSphIq3lJ5c/kreativdialog verzeichnet.

    Unter der nid 2406 ist das shared item wiederholt eingetragen, diesmal aber mit der (direkten) URL http://www.fontblog.de/kreativdialog

    Irgendwo entlang des Weges löst er den Redirect nicht auf bzw. macht es erst beim zweiten Anlauf. Hm.

    @ben_: Kann es (u.a.) daran liegen, dass in feedimporter_googlereadershared_sxml2items() der redirect nur im Falle einer Feedburner-, nicht aber der erwähnten feedproxy.google.com-URL abgefragt wird? (was – zugegeben – in meinen Augen immer noch nicht erklären würde, warum im zweiten Anlauf die aufgelöste und direkte URL in der Datenbank landet)

  5. ben_

    Ja, in der Tat. Was für ein Kack. Es wird wohl mal Zeit Feedburner hinter sich zu lassen. Crap.

    Hier der Fix:
    http://github.com/benthebear/Drupalaska/blob/master/sites/default/modules/feedimporter/feedimporter.module#LID281

    Schau mal, ob das funzt.

  6. fym

    Merci 🙂
    Aktualisiert ist es jetzt. Habe außerdem gerade mal die letzten paar Bookmarks hier gelöscht und neu importiert (wird somit wohl Feed-„Spam“ geben, böse). Soweit scheint erstmal nichts doppelt gespeichert worden zu sein. Wird weiterbeobachtet.

    Und nun zurück zum eigenen rudimentären Fußnoten-Modul.

  7. ben_

    Ah! Fußnoten-Modul! Kuhl! Was tut es? Wie tut es das? Pack mal bei Github rein!

  8. fym

    Ähm, nja. Modul war übertrieben. Sind bisher schlicht zwei zusätzliche Funktionen in der template.php, die preg_replace_callback Zeugs auf node->body ausführen und aus der node.tpl.php heraus aufgerufen werden.

    Im Prinzip hätte ich auch Footnotes weiterverwenden können, aber a) ist das mit den Filter-Zeugs alles Overkill; b) will ich die Fußnoten hier in meinem Metadaten-Bereich ausgeben lassen (Footnotes ermöglicht mir das nicht wirklich, soweit ich das sehen kann) und c) fuck, es reizt mich eben, den Kram selbst zu schreiben (und überhaupt: für solches Suche-Mark-Up-Ersetze-Mark-Up-und-Verlinke-Zeugs will ich kein schweres Modul nutzen).

    Äh, erstens hab ich mich in den github-Kram noch nicht eingelesen (so als Windows-Sklave) und zweitens sind die paar Zeilen auch eher lachhaft – da würde ich nur rötlich im Boden versinken.

  9. fym

    … werde das Ganze nun aber doch in ein eigenes Modul auslagern, denke ich. Allein schon wegen der nötigen Anpassung der RSS-Ausgabe.

    Ich frage mich nur schon die ganze Zeit über, was der bessere, der richtigere Weg wäre? Die Fußnoten wirklich per Mark-Up wie gehabt direkt im Text oder mittels externer Verweise (z.B. über CCK-Felder -oder so) zu integrieren? Zweischneidiges Schwert. Autsch.

  10. ben_

    Ich bin mir ja noch gar nicht so sicher, was Du da machst und was es sein soll … eine Textarea für alle Fußnoten? Oder für jede eine eigene? Automatische Verlinkung mit Regexen die nach [1] suchen?

  11. fym

    Es ist bisher noch nicht mehr, als ein einfaches RegExp-Replace, dass node->body auf jedes „[fn]…[/fn]“ abgrast und entsprechende Verlinkungen erstellt (realisiert als Template-Tag, zumindest so gedacht). Ne 0815-Geschichte halt, aber eben in meinen Augen „besser“ (relativ) da es erstens selbstgetippt (har!) und zweitens nicht so ein 700+ Zeilen umfassendes Ungetüm wie das Footnotes-Modul wäre.

    Seit ich losgetippt habe, frage ich mich aber zwangsläufig, ob man überhaupt Fußnoten nicht besser realisieren könnte, als mittels bloßem Markup. Eine separate Textarea/CCK-Fields/whatever – dahin gingen auch meine Überlegungen. Sowas in der Art wie „[Ausschnitt der Textstelle als Referenz] => [dazugehörige Fußnote]“ oder ähnliches. Einfach etwas, um den Metatext aus dem eigentlichen Text zu bekommen. Gleichzeitig aber die Überlegung, wie sinnvoll das wäre. Markup ist schließlich Markup und Fußnoten sind Teil des Textes ect pp. Wirre, ungeordnete Gedanken halt. Wie immer.

  12. ben_

    Hm. Also als erstes würde ich ja mal festhalten, was man will. Nämlich dies:

    1. Verweise auf Fußnoten im Fließtext platzieren in etwa mit [1-n] (in diesem Fall liegt die Verantwortung für die Nummereirung beim Autor) oder mit [fn] (in diesem Fall müsste das Modul die Nummerierung machen).

    2. Die Möglichkeit, die Fußnotentext zu speichern und – ganz wichtig – als eigene Dateneinheit ans Rendering zu übergeben.

    3. Eine Automatische Verlinkung zwischen den Zeichen und den Bezeichneten.

    Dafür kann ich mir intuitiv zwei Lösungen vorstellen. Entweder mit einem <hr class=“footnotes“/> vom eigentlichen Fließtext abgetrennt aber noch in der gleichen Textarea. Oder in einer eigenen Textarea für Fußnoten.

    Erstere Lösung würde zusammen mit der ersten Lösung der Auszeichnung eher zu einer Lösung führen, die sehr robust und nachhaltig ist – denn das wäre ja auch ohne das Modul weiter les- und brauchbar. In dem Fall würde man – wie Du das jetzt auch schon machst – in erster Linie auf Filter und Template-Tags setzen.

    Die letztere Lösung ist ein bisschen einfacher, weil man nicht erst noch die Fußnoten aus dem Haupttext rauslösen muss. Ich muss aber ehrlich sagen, dass sie mir weniger gut gefällt. Irgendwie gehören die Fußnoten für mich mit zum Fließtext. Das scheint Dir ja ähnlich zu gehen. Du versenkst auch den Fußnotentext mit IM Fließtext, sehe ich das richtig?

    Sag mal was dazu. 🙂

  13. fym

    Jap. Die Auszeichnung (in dem Fall also „[fn]…[/fn]“) kommt derzeit im Fließtext genau dort hin, wo später der nummerierte Verweis zur Fußnote erscheinen soll. In der node.tpl.php wird $content vor der Ausgabe modifiziert (per „Template“-Funktion des Moduls), indem die fns rausgesucht, schon ersetzt und die dabei gefundenen Ausdrücke (e.g. die Texte der jeweiligen Fußnoten) in einer statischen Variable (keine Ahnung, ob das gängige/gute Drupal-Praxis ist?) zwischengespeichert werden. In der template.php gebe ich diese dann innerhalb meiner Funktion für die Anzeige der Metadaten des Eintrages aus. Die Nummerierung und Verlinkung (also zwischen Referenz und Referent, so to speak) wird dabei automatisch gehandhabt. Nebenbei: Die Möglichkeit in den diversen Modulen/WP-Plugins die Nummerierung selbst zu bestimmen, empfand ich schon immer eher als Featuritis, denn wirkliche Notwendigkeit. Denn mal ehrlich: In welchem Szenario will und braucht man das? „Ich lasse jetzt einfach mal Fußnote 2 aus und verwende direkt #3“? Verstehe ich beim besten Willen nicht.

    Jap @ Lösungen. Die Fußnoten separat für sich zu definieren, erscheint mir zwar erstmal sauberer, aber wie oben erwähnt und von dir bekräftigt: Fußnoten sind im Grunde ja ebenso zu einem Text zugehörig. Zwar bilden sie und existieren auf einer Metaebene, aber eben doch auf einer anderen, als es beispielsweise bei Schlagworten und Co. der Fall ist. Ich kann es auch nicht wirklich verorten, warum sich das Markup einer Fußnote direkt IM Text für mich bisweilen trotzdem komisch anfühlt. Denn es ist ja nur konsequent, gerade im Kontext einer Auszeichnungssprache.

    Wenn ich aber über deinen zweiten Lösungsansatz (und eben meine vorherige Überlegung) nachdenke, so weiß ich nicht, ob es letzten Endes „einfacher“ wäre. Im Grunde suche ich bei beiden Varianten (im Text/als Zusatz) grundsätzlich im Text zuerst nach der Referenz – da wäre die Variante der ausgezeichneten Fußnoten IM Text erst recht konsequenter und womöglich „bequemer“. Oder nicht?

    Beim ersten Lösungsansatz, also einzig der räumlichen Abgrenzung der Fußnotentexte zum eigentlichen Text,wären diese zwar besser lesbar, aber auch da müsste der Referent ausgezeichnet werden. Im Grunde wäre es nahezu identisch, mit der „direkt IM Text“-Variante, würde aber einen gewichtigen Aspekt nach sich ziehen: Als Schreibender schätze ich es eher, eine Fußnote direkt „am Ort des Geschehens“ setzen zu können. Hier müsste man jedoch häufiger zwischen Text und Textende (also dem Ort, wo die Fußnotentexte aufgeführt und festgehalten werden) wechseln. Stelle ich mir zumindest auf Dauer – vor allem bei längeren Texten und zahlreicheren Fußnoten – umständlicher vor. (Hach, die feine Perspektive des Nutzenden – das, was manchem Vollblutprogrammierer bisweilen fehlt, was? ;))

    Ich denke, ausgezeichnete Fußnoten im Fließtext wird’s wohl werden. Allein, um die beabsichtigte Simplizität des Moduls (Minimalismus, Minimalismus!) beizubehalten. Einwände? Anmerkungen?

  14. fym

    @Feedimporter: Damn! Wieder was doppelt importiert. Schau mal auf der Startseite unter Feedfutter nach dem Link zum teilnehmer („Warum die Arbeitslosenzahlen steigen“). Hmpf. Kann das vielleicht irgendwas damit zu tun haben, dass ich hier auf nem shared webhost laufe? Ich habe manchmal auch einen „importierten“ Node mit dem Titel „500 Internal Server Error“. Vielleicht passiert das und die doppelten Nodes dann, wenn der Server gerade Probleme hat? Ich bin mit meinem Latein (was nicht besonders gut ist, zugegeben) ziemlich am Ende.

  15. ben_

    Aus welchem Feed kam der denn, Google-Shared?
    Wie krank abr auch, die URL des ersten Eintrages aussieht. Da macht Feedburner irgendwelche Scheiße. Sieht fast nach Werbung aus [utm_campaign] … skuril. Das doofe ist, dass man ohne die URL nur so schlecht checken kann, ob der Artikel schon drin ist … grübel … wenn Dir noch was einfällt, sag bescheid, dann programmier ich das.

  16. fym

    Jap, Google Shared Item.
    Vorhin ist mir die URL schon aufgefallen, wollte mich aber nicht beschweren, dumdidum. Hm. Ich weiß echt nicht mehr weiter. Bin fast gewillt, Drupal gewinnen zu lassen. Ver-da-hammt!

  17. ben_

    Ne, ich mein wie lautet denn die URL des Feeds, kann ich da mal reinschauen. Alles in allem aber wird wohl kaum Drupal gewinnen …

  18. fym

    Du meinst die URL meines shared items Feed die der Feedimporter abfragt? Das ist diese

  19. fym

    Zur Info: Gerade nebst einigen anderen Veränderungen das Modul für die Fußnoten hochgeladen; läuft hier absofort. Zu sehen beispielsweise bei diesem Eintrag. Dort wird – als Warnung oder so – allerdings geradezu fußnotenmäßiger Overkill zelebriert. Auf einen wie auch immer gearteten Fußnotenstrich habe ich übrigens bewusst verzichtet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert