Fehler in has_extended?

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
gimmel
Regular
Posts: 118
Joined: Tue Jul 25, 2006 2:44 pm
Location: Quickborn/Germany
Contact:

Fehler in has_extended?

Post by gimmel »

Ich hatte vor einigen Tage ein Problem mit der Funktion has_extended. In allen Artikel erschien ein Weiterlesen-Button, egal ob es etwas zum Weiterlesen gab oder nicht. Das exflag der entries-Tabelle in der Datenbank war aber richtig gesetzt. Die Funktion has_extended war aber bei allen Einträgen auf true.

Mit {$entry.extended|count_characters:true} in der entries.tpl konnte ich feststellen, dass die leeren Extended-Texte 7 Zeichen hatten.

Irgendwann kam ich darauf, dass es an einem selbstprogrammierten Plugin liegen könnte, dass automatisch Absätze (<p></p>) und Zeilenumbrüche (<br /> erzeugt. Aufgrund eines Fehlers gab das Plugin bei leeren Texten einen leeren Absatz aus (<p></p>). Genau 7 Zeichen!
Den Fehler habe ich schon korrigiert, aber ich frage mich nun trotzdem:

Warum wird has_extended aus dem Extended-Text NACH dem Durchlaufen der Plugins errechnet? Ist das nicht Verschwendung von Rechenzeit?
Warum ist das exflag in der Datenbank? Es ist erstens redundant (eine Abfrage auf die Länge des extended-Felds reicht ja aus) und zweitens wird es sowieso nicht genutzt, oder?
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Fehler in has_extended?

Post by garvinhicking »

Hi!

Ja, das ist Rechenzeitverschwendung. Leider gab es aber in einigen s9y versionen eine falsche berechnung von "exflag", so dass die Templates auch andere möglichkeiten mit einbeziehen musste.

Da wir fiel Wert auf Abwärtskompatibilität legen, haben wir lieber die femtosekunde Rechenzeit geopfert.

Leider ist diese ganze exflag/is_extended/has_Extended kodierung sehr steinzeitlich und müsste mal überholt werden - dann könnte man das Problem vielleicht einmal zentraler beim Kopf greifen...

Ich persönlich fand das 'exflag' auch sinnfrei, aber es ist ein Relikt aus der ersten s9y version bei der ich noch nicht mitgearbeitet habe. Daher ist es eher aus historischen Gründen dringeblieben, da mir die Zeit/Lust fehlte das von grund auf nochmal durchzuchecken -- es gibt durchaus viele Stellen im Code, die auf 'extended' oder 'exflag' zurückgreifen.


Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply