Systemlast / Module nicht einbinden – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Systemlast / Module nicht einbinden Thu, 03 Nov 05 13:52:30 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893532#m893532 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893532#m893532 <p>Hallo zusammen,</p> <p>ich habe ein Perlskript das ich ausgiebig getestet habe.</p> <p>Das Skript möchte ich nun einsetzen. Soll ich daher die Befehle</p> <p>use warnings;<br> use strict;<br> use CGI::Carp qw(fatalsToBrowser);</p> <p>kommentieren, um den Server nicht unnötig zu belasten?</p> <p>Danke im voraus...</p> <p>Stefan</p> Systemlast / Module nicht einbinden Thu, 03 Nov 05 13:55:15 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893533#m893533 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893533#m893533 <p>你好 Stefan,</p> <blockquote> <p>Das Skript möchte ich nun einsetzen. Soll ich daher die Befehle</p> <p>use warnings;<br> use strict;<br> use CGI::Carp qw(fatalsToBrowser);</p> <p>kommentieren, um den Server nicht unnötig zu belasten?</p> </blockquote> <p>Würde ich lassen. Fehler können immer mal auftreten, auch wenn du sie<br> bisher noch nicht entdeckt hast. Solange du dein Programm nicht verifiziert<br> hast, würde ich sie drin lassen oder durch eine Alternative ersetzen.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Wenn du gehst, gehe. Wenn du sitzt, sitze. Und vor allem: schwanke nicht!<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 14:02:31 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893534#m893534 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893534#m893534 <p>Hi Christian</p> <p>was meinst du mit Alternative?</p> <p>Den Perl Interpreter kann man ja mit dem Schalter w aufrufen. Soll man bei getesten Skript diesen Schalter noch benutzen?</p> <p>Bye</p> <p>Stefan</p> Systemlast / Module nicht einbinden Thu, 03 Nov 05 14:06:53 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893535#m893535 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893535#m893535 <p>你好 Stefan,</p> <blockquote> <p>was meinst du mit Alternative?</p> </blockquote> <p>Statt CGI::Carp qw/fatalsToBrowser/ würde ich lieber einen Signal-Handler<br> für die() setzen, der eine nette Meldung für den Nutzer ausgibt:</p> <pre><code class="block language-perl"> <span class="token keyword">sub</span> <span class="token function">sighandler</span> <span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token operator"><<</span>HTML<span class="token punctuation">;</span> … Fehlermeldung erzeugen HTML <span class="token punctuation">}</span> <span class="token variable">$SIG</span><span class="token punctuation">{</span>__DIE__<span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token operator">\</span><span class="token variable">&sighandler</span><span class="token punctuation">;</span> </code></pre> <blockquote> <p>Den Perl Interpreter kann man ja mit dem Schalter w aufrufen. Soll man<br> bei getesten Skript diesen Schalter noch benutzen?</p> </blockquote> <p>Du solltest immer den -w-Switch benutzen und nie use warnings, ja. Das ist<br> der perldoc sogar so wichtig, dass sie es _drei_ mal wiederholen ;)</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Swen Wacker: Denn wer 'ne Blacklist hat, muss halt daran denken, dass er manches nicht sieht... und vor dem posten die Realitaet einschalten<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 14:20:08 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893576#m893576 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893576#m893576 <blockquote> <blockquote> <p>was meinst du mit Alternative?</p> </blockquote> <p>Statt CGI::Carp qw/fatalsToBrowser/ würde ich lieber einen Signal-Handler<br> für die() setzen, der eine nette Meldung für den Nutzer ausgibt:</p> <p>[code lang=perl]<br> sub sighandler {<br>   print <<HTML;<br> … Fehlermeldung erzeugen<br> HTML<br> }</p> </blockquote> <p>diese Funktion würde ich noch Erweitern und dem admin eine Mail zu schicken, da du (nicht christian) diese Meldung ja nicht zu sehen bekommst und soweit ich weiß auch kein Eintrag im error log mehr gemacht wird. Zudem hat es den Vorteil dass du evtl. noch wichtige Parameter mitschicken lassen kannst.</p> <p>Darüber hinaus ist die Frage nach der systemlast wegen use strict und Warnungen etwas seltsam, arbeitet ihr mit 8086 Prozessoeren?<br> Auf allen anderen Rechnern dürfte es keinen meßbaren Unterschied mehr ausmachen ob use strict eingebunden wurde oder nicht.<br> Du kannst dir die Liste der eingebuinden Module auch mal anzeigen lassen:<br> print join "\n", keys %INC;<br> und dann nachschauen was du sparst wenn du struct weg läßt.</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 15:17:31 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893541#m893541 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893541#m893541 <p>Hallo Christian,</p> <blockquote> <p>Statt CGI::Carp qw/fatalsToBrowser/ würde ich lieber einen Signal-Handler<br> für die() setzen, der eine nette Meldung für den Nutzer ausgibt:</p> <pre><code class="block language-perl"></code></pre> </blockquote> <blockquote> <p>sub sighandler {<br>   print <<HTML;<br> … Fehlermeldung erzeugen<br> HTML<br> }</p> <p>$SIG{<strong>DIE</strong>} = &sighandler;</p> </blockquote> <pre><code class="block"> genau darüber habe ich mir in den letzten Tagen den Kopf zerbrochen und diesen Gedanken aus dem Grund verworfen, da ich nicht immer genau feststellen kann, an welcher Stelle in meinem Skript der Prozess stirbt. Dabei geht es mir um den HTML-Header, der eventuell schon ausgegeben wurde oder auch nicht. Woran soll dies der die Handler erkennen? Wird denn nicht ein Serverfehler ausgegeben, wenn kein HTML-Header an den Browser gesendet wird? Unschön fänd ich es auch widerrum, wenn da über der "netten Meldung" ein "Content-type: text/html ..." erscheint. Wie würdest du das überprüfen? Greez, opi -- Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:| </code></pre> Systemlast / Module nicht einbinden Thu, 03 Nov 05 16:17:55 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893537#m893537 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893537#m893537 <p>Hallo Christian,</p> <blockquote> <p>Du solltest immer den -w-Switch benutzen und nie use warnings, ja. Das ist<br> der perldoc sogar so wichtig, dass sie es _drei_ mal wiederholen ;)</p> </blockquote> <p>in "Effective Perl Programming" steht das genau umgekehrt drin.<br> -w schaltet nämlich auch Warnungen für alle eingebundenen Module an.<br> In der Regel möchte man aber keine Warnungen von einem fremden Modul erhalten..</p> <p>Gruß,<br> Benne</p> <div class="signature">-- <br> ie:% fl:( br:> va:) ls:> fo:| rl:° ss:) de:[ js:| ch:| mo:} zu:) </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 19:05:11 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893536#m893536 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893536#m893536 <p>Hallo Christian,</p> <blockquote> <p>Du solltest immer den -w-Switch benutzen und nie use warnings, ja. Das ist<br> der perldoc sogar so wichtig, dass sie es _drei_ mal wiederholen ;)</p> </blockquote> <p>warum denn -w und nicht use warnings?</p> <p>Greez,<br> opi</p> <div class="signature">-- <br> Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|<br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 16:25:40 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893538#m893538 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893538#m893538 <p>你好 Benne,</p> <blockquote> <blockquote> <p>Du solltest immer den -w-Switch benutzen und nie use warnings, ja. Das<br> ist der perldoc sogar so wichtig, dass sie es _drei_ mal wiederholen ;)<br> in "Effective Perl Programming" steht das genau umgekehrt drin.</p> </blockquote> </blockquote> <p>Dann widerspricht Effective Perl Programming in diesem Fall der perldoc ;)<br> Jetzt ist es deine Aufgabe zu entscheiden, wem du folgen möchtest.</p> <blockquote> <p>-w schaltet nämlich auch Warnungen für alle eingebundenen Module an.</p> </blockquote> <p>… was ja auch durchaus wünschenswert ist.</p> <blockquote> <p>In der Regel möchte man aber keine Warnungen von einem fremden Modul<br> erhalten..</p> </blockquote> <p>Doch, sicher möchte man das. Es macht auf eventuelle Fehler in dem Modul<br> aufmerksam. Modulen, die Warnings produzieren, würde ich nicht trauen.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Beware Evildoers for my deed is done and every little damsel in distress will be shelted!<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 21:20:18 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893539#m893539 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893539#m893539 <p>Hi Christian,</p> <p>wenn das Skript ausgiebig (!) getestet worden ist, sollte man dann den -w Parameter und use warnings nun deaktivieren.</p> <p>Verringert denn das die CPU-Auslastung des Servers?</p> <p>Bye</p> <p>Stefan</p> Systemlast / Module nicht einbinden Thu, 03 Nov 05 21:32:42 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893540#m893540 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893540#m893540 <p>你好 Stefan,</p> <blockquote> <p>wenn das Skript ausgiebig (!) getestet worden ist, sollte man dann<br> den -w Parameter und use warnings nun deaktivieren.</p> </blockquote> <p>Nein. Du solltest es aktiviert lassen und regelmäßig auf Warnungen prüfen.</p> <blockquote> <p>Verringert denn das die CPU-Auslastung des Servers?</p> </blockquote> <p>Nein, nicht wirklich.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Sei ε kleiner Null.<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 15:36:55 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893542#m893542 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893542#m893542 <blockquote> <blockquote> <p>Statt CGI::Carp qw/fatalsToBrowser/ würde ich lieber einen Signal-Handler<br> für die() setzen, der eine nette Meldung für den Nutzer ausgibt:</p> <pre><code class="block language-perl"></code></pre> </blockquote> </blockquote> <blockquote> <blockquote> <p>sub sighandler {<br>   print <<HTML;<br> … Fehlermeldung erzeugen<br> HTML<br> }</p> <p>$SIG{<strong>DIE</strong>} = &sighandler;</p> </blockquote> </blockquote> <pre><code class="block"> > > genau darüber habe ich mir in den letzten Tagen den Kopf zerbrochen > und diesen Gedanken aus dem Grund verworfen, da ich nicht immer > genau feststellen kann, an welcher Stelle in meinem Skript der > Prozess stirbt. Dabei geht es mir um den HTML-Header, der eventuell Doch kann man. Lass dir mal alle Parameter der funktion ausgeben. > schon ausgegeben wurde oder auch nicht. Woran soll dies der die > Handler erkennen? Wird denn nicht ein Serverfehler ausgegeben, wenn > kein HTML-Header an den Browser gesendet wird? Unschön fänd ich es > auch widerrum, wenn da über der "netten Meldung" ein "Content-type: > text/html ..." erscheint. > > Wie würdest du das überprüfen? Nur indem du eine Globale Variabel definierst nachdem du den Header ausgegeben hast. Wenn du den Header mit dem CGI Modul ausgibst, kannst du dies kontrollieren in dem du $CGI::HEADERS\_ONCE = 1 setzt. Struppi. -- [Javascript ist toll](http://javascript.jstruebig.de/) </code></pre> Systemlast / Module nicht einbinden Thu, 03 Nov 05 15:52:02 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893543#m893543 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893543#m893543 <p>Hallo Struppi,</p> <p>das mit der globalen Variable hatte ich mir schon irgendwie gedacht<br> und habe mich dann doch für die "robuste und lange schon im Einsatz"<br> befindliche Funktion fatalsToBrowser entschieden :-)</p> <p>Ich habe es einfach so realisiert, das ich für all meine Fehler, die<br> auftreten könnten und die ich auch abfange, einen Fehlercode ausgeben<br> lasse. Beispiel:</p> <p>sysopen(FILE,$file,O_RDONLY) or die "<SOFTWARE_NAME>-ERROR-1223";</p> <p>Der Fehlercode deshalb, weil es unterschiedliche Skripts gibt, die<br> auf gleiche Ressourcen zugreifen und ich es lästig finde für alle<br> Skripts die gleiche Meldung zu schreiben.</p> <p>Zur Auswertung der error_log habe ich mir noch ein Skript<br> geschrieben, welches regelmäßig Meldungen ausliest und bei dem<br> Vorkommen eines Fehlers eine Mail oder WasAuchImmer auslöst.</p> <p>Ich möchte da auch gerne mal auf die Idee vom Threadersteller kommen,<br> strict und warnings auszukommentieren. Wenn ein Skript einmal läuft,<br> können dann noch Fehler auftauchen, wenn strict auskommentiert ist<br> und keine Änderungen am Skript vorgenommen werden?</p> <p>Es würde doch für Fixes ausreichen, strict wieder aufzunehmen oder?</p> <p>Greez,<br> opi</p> <div class="signature">-- <br> Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|<br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 15:55:24 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893546#m893546 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893546#m893546 <p>你好 opi,</p> <blockquote> <p>das mit der globalen Variable hatte ich mir schon irgendwie gedacht<br> und habe mich dann doch für die "robuste und lange schon im Einsatz"<br> befindliche Funktion fatalsToBrowser entschieden :-)</p> </blockquote> <p>Hehe, fatalsToBrowser schickt aber auch ein zweites mal den<br> Content-Type-Header, wenn er nicht per CGI.pm gesendet wurde ;)</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Swen Wacker: Denn wer 'ne Blacklist hat, muss halt daran denken, dass er manches nicht sieht... und vor dem posten die Realitaet einschalten<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 16:07:35 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893544#m893544 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893544#m893544 <blockquote> <p>das mit der globalen Variable hatte ich mir schon irgendwie gedacht<br> und habe mich dann doch für die "robuste und lange schon im Einsatz"<br> befindliche Funktion fatalsToBrowser entschieden :-)</p> </blockquote> <p>Die ja erst mal nichts anderes macht als einen Fehler auch in den Browser umzuleiten.</p> <p>D.h. sie ist nützlich, wenn du mal schnell einen Fehler finden willst, aber sie ist nichts für den täglichen Einsatz beim entwickeln. Da u.U. nicht genug Informationen ausgegeben werden.</p> <blockquote> <p>Ich habe es einfach so realisiert, das ich für all meine Fehler, die<br> auftreten könnten und die ich auch abfange, einen Fehlercode ausgeben<br> lasse. Beispiel:</p> <p>sysopen(FILE,$file,O_RDONLY) or die "<SOFTWARE_NAME>-ERROR-1223";</p> <p>Der Fehlercode deshalb, weil es unterschiedliche Skripts gibt, die<br> auf gleiche Ressourcen zugreifen und ich es lästig finde für alle<br> Skripts die gleiche Meldung zu schreiben.</p> </blockquote> <p>Soweit so gut (wobei hier z.b. die Information fehlt welche Datei versucht wurde zu öffnen.)</p> <blockquote> <p>Zur Auswertung der error_log habe ich mir noch ein Skript<br> geschrieben, welches regelmäßig Meldungen ausliest und bei dem<br> Vorkommen eines Fehlers eine Mail oder WasAuchImmer auslöst.</p> </blockquote> <p>Und ein (per cronjob?) regelmäßiges meistens sinnlose laufende Skript ist Resourcenfreundlicher als eine Modul, das nur im Fehlerfall mit require einbinden wird?</p> <p>Ich glaub nicht.</p> <blockquote> <p>Es würde doch für Fixes ausreichen, strict wieder aufzunehmen oder?</p> </blockquote> <p>klar, aber wie Christian schon sagte, macht use strict nicht soviel als das du dadurch irgendetwas meßbares erreichen könntest.</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 18:47:00 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893545#m893545 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893545#m893545 <p>Hallo,</p> <blockquote> <blockquote> <p>Funktion fatalsToBrowser</p> </blockquote> <p>Die ja erst mal nichts anderes macht als einen Fehler auch in den Browser umzuleiten.</p> <p>D.h. sie ist nützlich, wenn du mal schnell einen Fehler finden willst, aber sie ist nichts für den täglichen Einsatz beim entwickeln. Da u.U. nicht genug Informationen ausgegeben werden.</p> </blockquote> <p>da gebe ich dir vollkommen recht. Aber meine Skripts sind meist sehr<br> klein und nicht länger als 300-500 Zeilen. Das ist noch sehr über-<br> sichtlich.</p> <blockquote> <blockquote> <p>Ich habe es einfach so realisiert, das ich für all meine Fehler, die<br> auftreten könnten und die ich auch abfange, einen Fehlercode ausgeben<br> lasse. Beispiel:</p> <p>sysopen(FILE,$file,O_RDONLY) or die "<SOFTWARE_NAME>-ERROR-1223";</p> <p>Der Fehlercode deshalb, weil es unterschiedliche Skripts gibt, die<br> auf gleiche Ressourcen zugreifen und ich es lästig finde für alle<br> Skripts die gleiche Meldung zu schreiben.</p> </blockquote> <p>Soweit so gut (wobei hier z.b. die Information fehlt welche Datei versucht wurde zu öffnen.)</p> </blockquote> <p>oh nein. Es gibt zwei oder drei Hände voll mit Dateien, die geöffnet,<br> erstellt oder was auch immer werden. Die Fehlercodes lassen ziemlich<br> genau auf den Fehler hindeuten und wenn nicht, dann gebe ich die<br> Variable mit ... die "NAME-ERROR-1234 $var";</p> <blockquote> <blockquote> <p>Zur Auswertung der error_log habe ich mir noch ein Skript<br> geschrieben, welches regelmäßig Meldungen ausliest und bei dem<br> Vorkommen eines Fehlers eine Mail oder WasAuchImmer auslöst.</p> </blockquote> <p>Und ein (per cronjob?) regelmäßiges meistens sinnlose laufende Skript ist Resourcenfreundlicher als eine Modul, das nur im Fehlerfall mit require einbinden wird?</p> </blockquote> <p>auch nein. Ein Job der non Stop läuft. Dieser Prozess macht noch viel<br> mehr als die error_log zu überwachen. Dieser Prozess überwacht auch<br> noch andere Prozesse und Logdateien. Und soviele Ressourcen frist der<br> nicht! Du kannst mir glauben, dass gerade ich darauf insbesondere<br> achte :-)</p> <blockquote> <p>Ich glaub nicht.</p> <blockquote> <p>Es würde doch für Fixes ausreichen, strict wieder aufzunehmen oder?</p> </blockquote> <p>klar, aber wie Christian schon sagte, macht use strict nicht soviel als das du dadurch irgendetwas meßbares erreichen könntest.</p> </blockquote> <p>is ja gut, ich lass es ja schon drin :-) war auch nur so ne Frage.</p> <p>Greez,<br> opi</p> <div class="signature">-- <br> Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|<br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 19:02:28 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893547#m893547 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893547#m893547 <p>Hallo Christian,</p> <blockquote> <p>Hehe, fatalsToBrowser schickt aber auch ein zweites mal den<br> Content-Type-Header, wenn er nicht per CGI.pm gesendet wurde ;)</p> </blockquote> <p>mhmm... ich benutze nichts von CGI ausser fatalsToBrowser und<br> natürlich binde ich CGI.pm ein, wenn ich was von GD.pm nutze<br> (zum Beispiel GD::Graph::lines). Nenn mich altmodisch, aber ich habe<br> mir selber für die wichtigsten Dinge Funktionen geschrieben, die in<br> allen Skripts Verwendung finden :-)</p> <p>Beispiel:</p> <p>my $arg = getARGV(); # $ENV{QUERY_STRING} Verarbeitung mit untaint</p> <p>my $user = checkAuthUser($arg->{SESSION_ID}); # Session checken und Benutzerdaten in Hash packen</p> <p>doHeader($title, $refresh, $divert_to_site); # html, head, title, *.css, meta ...</p> <p>doNavigation($user); # meine Navigationleiste</p> <p>und dazwischen ganz normale HTML-Ausgabe ...</p> <p>print "<table class ...<br> print "<div class ...<br> print "<form class ...</p> <p>doFooter(); # meine Fußleiste mit </body></html></p> <p>Greez,<br> opi</p> <div class="signature">-- <br> Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|<br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 20:41:35 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893548#m893548 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893548#m893548 <p>Was den Header angeht, gibt es da soviele Möglichkeiten dass ich froh bin immer ein Modul benutzen zu können das alle Möglichkeiten abdeckt.</p> <p>...</p> <blockquote> <p>und dazwischen ganz normale HTML-Ausgabe ...</p> <p>print "<table class ...<br> print "<div class ...<br> print "<form class ...</p> </blockquote> <p>einmal sieht HTML code im Skript Code nicht schön aus, außerdem vermeidest du mit Funktionen Verschachtelungsfehler und wie sieht es bei einer komplexen Struktur aus?<br> z.b. mit einem Formular, dort ist ein Select Feld mit einer Liste IDs und den dazugehörigen Werten als Text und falls das Formular vorher schon angezeigt wurde muss der Wert ausgewählt werden, wenn nicht eine andere vorgegebene ID. Mit dem CGI Modul sieht das so aus:</p> <p>print CGI::popup_menu(<br> -name => 'ids',<br> -values => [keys %$list],<br> -labels => $list,<br> -default => $id<br> );</p> <p>Natürlich kann man das auch selber machen, aber je mehr du davon brauchst umso glücklicher bist du das das schon mal jemand gemacht hat. Und das es notwendig ist zeigt das es bei der Standardinstallation dabei ist und seit 1995 gepflegt und erweitert wird.</p> <blockquote> <p>doFooter(); # meine Fußleiste mit </body></html></p> </blockquote> <p>print CGI::end_html();</p> <p>sieht für mich nicht schlechter aus.</p> <p>Natürlich ist es Geschmackssache, aber warum etwas was andere die evtl. mehr Ahnung haben und x-fach erprobt ist, das getestet wurde nicht wiederverwenden. Dazu sind Module da. Das immer wieder neu Programmieren von schon vorhanden Sachen ist in meinem augen Zeitverschwendung das von der eigentlichen Aufgabe ablenkt, zum Einstieg und lernen ist es vielleicht sinnvoll aber nicht zum Arbeiten.</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 21:36:27 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893550#m893550 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893550#m893550 <p>你好 Struppi,</p> <blockquote> <blockquote> <p>und dazwischen ganz normale HTML-Ausgabe ...</p> <p>print "<table class ...<br> print "<div class ...<br> print "<form class ...</p> </blockquote> <p>einmal sieht HTML code im Skript Code nicht schön aus, […]</p> </blockquote> <p>Ob der HTML-Code mit CGI erzeugt und ausgegeben wird oder ob er direkt<br> hardkodiert drin steht, das macht genau gar keinen Unterschied. Ne, HTML<br> gehört gar nicht in Scripte und/oder Programme. Sowas gehört in Templates.</p> <blockquote> <blockquote> <p>doFooter(); # meine Fußleiste mit </body></html></p> </blockquote> <p>print CGI::end_html();</p> <p>sieht für mich nicht schlechter aus.</p> </blockquote> <p>Sieht für mich beides gleich schlecht aus.</p> <blockquote> <p>Natürlich ist es Geschmackssache, […]</p> </blockquote> <p>Naja, bedingt. Es gibt bestimmte Richtlinien zum Thema Software-Design, an<br> die man sich in jedem Fall halten sollte und die keine Geschmacksache sind.<br> Dazu gehört ganz sicher auch, dass Scripte keinen HTML-Quellcode erzeugen<br> sollten.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Willst du die Freuden dieser Welt geniessen, so musst du auch ihr Leid erdulden.<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 21:44:21 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893549#m893549 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893549#m893549 <p>Hallo Struppi,</p> <blockquote> <p>Was den Header angeht, gibt es da soviele Möglichkeiten dass ich froh bin immer ein Modul benutzen zu können das alle Möglichkeiten abdeckt.</p> <p>...</p> <blockquote> <p>und dazwischen ganz normale HTML-Ausgabe ...</p> <p>print "<table class ...<br> print "<div class ...<br> print "<form class ...</p> </blockquote> <p>einmal sieht HTML code im Skript Code nicht schön aus, außerdem vermeidest du mit Funktionen Verschachtelungsfehler und wie sieht es bei einer komplexen Struktur aus?</p> </blockquote> <p>Wieso das?</p> <p>Wenn du eine statische *.htm Datei schreibst, kannst du genauso viele<br> Fehler machen bei der Verschachtelung. Ansonsten schaut das für mich<br> sehr lesbar aus. Beispiel:</p> <pre><code class="block language-perl"> <span class="token comment"># mal schnell dahin getippt </span> <span class="token keyword">my</span> <span class="token variable">$hash</span> <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token string">"Struppi"</span> <span class="token operator">=></span> <span class="token string">"Hallo"</span><span class="token punctuation">,</span> <span class="token string">"Christian"</span> <span class="token operator">=></span> <span class="token string">"Hi"</span><span class="token punctuation">,</span> <span class="token string">"opi"</span> <span class="token operator">=></span> <span class="token string">"Hi alter"</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">"<table class=\"tab_options\">\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <tr>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <th class=\"td_option_header\">Begr&uuml;&szlig;ung</th>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <th class=\"td_option_header\">Name</th>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" </tr><tr>\n"</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token keyword">my</span> <span class="token variable">$key</span> <span class="token punctuation">(</span>sort keys <span class="token variable">%$hash</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token string">" <td class=\"td_option_body\">$hash->{$key}</td>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <td class=\"td_option_body\">$key</td>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" </tr><tr>\n"</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">print</span> <span class="token string">" <td class=\"td_option_footer\" colspan=\"2\"></td>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" </tr>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">"</table>\n"</span><span class="token punctuation">;</span> </code></pre> <blockquote> <p>z.b. mit einem Formular, dort ist ein Select Feld mit einer Liste IDs und den dazugehörigen Werten als Text und falls das Formular vorher schon angezeigt wurde muss der Wert ausgewählt werden, wenn nicht eine andere vorgegebene ID. Mit dem CGI Modul sieht das so aus:</p> <p>print CGI::popup_menu(<br> -name => 'ids',<br> -values => [keys %$list],<br> -labels => $list,<br> -default => $id<br> );</p> </blockquote> <pre><code class="block language-perl"> <span class="token comment"># copy paste aus einem meiner skripts, pfad+name geändert </span> <span class="token keyword">print</span> <span class="token string">"<form action=\"/pfad/skript.cgi\">\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">"<input type=\"hidden\" name=\"SESSIONID\" value=\"$arg->{SESSIONID}\">\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">"<table class=\"tab_options\">\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <tr>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <th colspan=\"2\" class=\"td_option_header\">Options</th>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" </tr><tr>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <td style=\"width:30%;\" class=\"td_option_body\">Update rate</td>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <td style=\"width:70%;\" class=\"td_option_body\">\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <select name=\"Rate\" size=\"1\" class=\"listfield\">\n"</span><span class="token punctuation">;</span> <span class="token comment"># mein default-wert wird hier gesetzt, wenn er nicht bei einem </span> <span class="token comment"># vorherigen aufruf gesetzt wurde ... </span> <span class="token variable">$arg</span><span class="token operator">-></span><span class="token punctuation">{</span>Rate<span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token string">"inactive"</span> <span class="token keyword">unless</span> <span class="token variable">$arg</span><span class="token operator">-></span><span class="token punctuation">{</span>Rate<span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">foreach</span> <span class="token punctuation">(</span> <span class="token string">"inactive"</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token number">60</span><span class="token punctuation">,</span> <span class="token number">180</span><span class="token punctuation">,</span> <span class="token number">600</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">print</span> <span class="token string">" <option value=\"$_\" selected>$name</option>\n"</span> <span class="token keyword">if</span> <span class="token variable">$_</span> <span class="token operator">eq</span> <span class="token variable">$arg</span><span class="token operator">-></span><span class="token punctuation">{</span>Rate<span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" <option value=\"$_\">$name</option>\n"</span> <span class="token keyword">if</span> <span class="token variable">$_</span> <span class="token operator">ne</span> <span class="token variable">$arg</span><span class="token operator">-></span><span class="token punctuation">{</span>Rate<span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">print</span> <span class="token string">" </select>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">" </td>\n"</span><span class="token punctuation">;</span> <span class="token comment"># normalerweise kommen hier noch ein paar andere selects+options... </span> <span class="token comment"># soviel wollte ich nun doch nicht einfügen :-) </span> <span class="token keyword">print</span> <span class="token string">" </tr>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">"</table>\n"</span><span class="token punctuation">;</span> <span class="token keyword">print</span> <span class="token string">"</form>\n"</span><span class="token punctuation">;</span> </code></pre> <blockquote> <p>Natürlich kann man das auch selber machen, aber je mehr du davon brauchst umso glücklicher bist du das das schon mal jemand gemacht hat.</p> </blockquote> <p>Bei manchen Dingen ja, bei manchen nein. Siehe auch weiter unten.</p> <blockquote> <blockquote> <p>doFooter(); # meine Fußleiste mit </body></html></p> </blockquote> <p>print CGI::end_html();</p> <p>sieht für mich nicht schlechter aus.</p> </blockquote> <p>naja, ausser das diese Funktion meine schön formatierte Fußleiste<br> nicht wieder gibt ;-)</p> <blockquote> <p>Natürlich ist es Geschmackssache, aber warum etwas was andere die evtl. mehr Ahnung haben und x-fach erprobt ist</p> </blockquote> <p>weil ich es privat mache und es mir einen riesen Spaß macht Struppi :-)</p> <p>Greez,<br> opi</p> <div class="signature">-- <br> Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|<br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 21:48:20 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893575#m893575 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893575#m893575 <p>Hallo Christian,</p> <blockquote> <p>Naja, bedingt. Es gibt bestimmte Richtlinien zum Thema Software-Design, an<br> die man sich in jedem Fall halten sollte und die keine Geschmacksache sind.<br> Dazu gehört ganz sicher auch, dass Scripte keinen HTML-Quellcode erzeugen<br> sollten.</p> </blockquote> <p>du nimmst mir jetzt gerade allen Mut :-)</p> <p>Greez,<br> opi</p> <div class="signature">-- <br> Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|<br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 22:54:49 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893551#m893551 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893551#m893551 <blockquote> <blockquote> <blockquote> <p>print "<table class ...<br> print "<div class ...<br> print "<form class ...</p> </blockquote> <p>einmal sieht HTML code im Skript Code nicht schön aus, […]</p> </blockquote> <p>Ob der HTML-Code mit CGI erzeugt und ausgegeben wird oder ob er direkt<br> hardkodiert drin steht, das macht genau gar keinen Unterschied. Ne, HTML<br> gehört gar nicht in Scripte und/oder Programme. Sowas gehört in Templates.</p> </blockquote> <p>Naja, ein Funktionsaufruf ist in meinen Augen weder hartkodiert noch eine HTML Ausgabe.</p> <p>Ich persönlich finde es einfacher und flexibler, wenn ich meine Ausgabe in den Prozeduren sammle (Natürlich getrennt von Verarbeitung- und Ausgabemodulen) und dabei entscheide ob etwas eine Liste oder eine Tabelle wird, als dann hinterher , falls ich mich doch anders entscheide, die Template Datei umprogrammieren zu müssen. Da ich mich mit HTML::Template nicht gut auskenne weiß ich auch nicht wie dynamisch die ist, aber ich kann mir nicht vorstellen wie ich damit arbeiten soll, wenn ich in einer Ausgabe immer wieder andere Elemente unterbringen muss.</p> <p>Für ein Gästebuch ist das alles kein Problem bei einer komplexen Anwendung die viele unterschiedliche Ansichten hat, halte ich die Pflege von dutzenden Templates für overkill, zumal in der Laufe der Entwicklung immer wieder neue Elemente dazukommen und wegfallen.</p> <p>Zumal ein Templatesystem nochmal einiges an Leistung verbrät.</p> <blockquote> <blockquote> <p>Natürlich ist es Geschmackssache, […]</p> </blockquote> <p>Naja, bedingt. Es gibt bestimmte Richtlinien zum Thema Software-Design, an<br> die man sich in jedem Fall halten sollte und die keine Geschmacksache sind.<br> Dazu gehört ganz sicher auch, dass Scripte keinen HTML-Quellcode erzeugen<br> sollten.</p> </blockquote> <p>Naja, die kennt man wohl nur wenn man lange studiert hat.</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 06:26:23 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893552#m893552 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893552#m893552 <p>你好 Struppi,</p> <blockquote> <blockquote> <p>Ob der HTML-Code mit CGI erzeugt und ausgegeben wird oder ob er direkt<br> hardkodiert drin steht, das macht genau gar keinen Unterschied. Ne, HTML<br> gehört gar nicht in Scripte und/oder Programme. Sowas gehört in<br> Templates.</p> </blockquote> <p>Naja, ein Funktionsaufruf ist in meinen Augen weder hartkodiert noch eine<br> HTML Ausgabe.</p> </blockquote> <p>Sicher ist es eine HTML-Ausgabe und sicher ist es hardcodiert. Oder kann<br> man den HTML-Quelltext ohne Programmierkenntnisse ändern?</p> <blockquote> <p>Ich persönlich finde es einfacher und flexibler, wenn ich meine Ausgabe<br> in den Prozeduren sammle […]</p> </blockquote> <p>Du bist da aber nicht gefragt ;) Das HTML müssen auch Leute anpassen können,<br> die keine Ahnung von Perl haben. Wenn das geht, dann hast du gut gearbeitet.</p> <blockquote> <p>Da ich mich mit HTML::Template nicht gut auskenne weiß ich auch nicht wie<br> dynamisch die ist, aber ich kann mir nicht vorstellen wie ich damit<br> arbeiten soll, wenn ich in einer Ausgabe immer wieder andere Elemente<br> unterbringen muss.</p> </blockquote> <p>Ich kenne und nutze HTML::Template nicht. Daher kann ich dir da auch nicht<br> helfen, sorry.</p> <blockquote> <p>Für ein Gästebuch ist das alles kein Problem bei einer komplexen<br> Anwendung die viele unterschiedliche Ansichten hat, halte ich die Pflege<br> von dutzenden Templates für overkill, zumal in der Laufe der Entwicklung<br> immer wieder neue Elemente dazukommen und wegfallen.</p> </blockquote> <p>Nein, im Gegenteil, es ist bei einer grossen Anwendung wesentlich einfacher<br> einen einheitlichen HTML-Output zu haben wenn man nur ein paar<br> Template-Dateien (die vornehmlich aus HTML, Platzhaltern und vielleicht<br> noch ein paar Schleifen und Bedingungen bestehen) als in zig Modulen alles mögliche anpassen zu müssen. Sowohl für dich als auch für einen Perl<br> unbedarften. Stell dir vor, das CForum würde den Quelltext hardcodiert<br> ausgeben… eine kleine Design-Änderung und man müsste es neu kompilieren.<br> Leute, die kein C können, könnten das Design genau gar nicht anpassen. Ne,<br> du, gerade bei komplexen Anwendungen ist es wichtig, dass man das<br> 3-Tier-Prinzip penibel einhält.</p> <blockquote> <p>Zumal ein Templatesystem nochmal einiges an Leistung verbrät.</p> </blockquote> <p>Man kann Rechenzeit sinnvoll und sinnlos investieren. Hier ist eine<br> sinnvolle Anwendung.</p> <blockquote> <blockquote> <blockquote> <p>Natürlich ist es Geschmackssache, […]</p> </blockquote> <p>Naja, bedingt. Es gibt bestimmte Richtlinien zum Thema Software-Design,<br> an die man sich in jedem Fall halten sollte und die keine Geschmacksache<br> sind. Dazu gehört ganz sicher auch, dass Scripte keinen HTML-Quellcode<br> erzeugen sollten.</p> </blockquote> <p>Naja, die kennt man wohl nur wenn man lange studiert hat.</p> </blockquote> <p>Nee, du, die kriegt man sogar in der Ausbildung zum Anwendungsentwickler<br> eingetrichtert.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Mensch zu Mathematiker: "Ich finde Ihre Arbeit ziemlich monoton". Mathematiker: "Mag sein! Dafür ist sie aber stetig und unbeschränkt."<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 07:16:23 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893573#m893573 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893573#m893573 <p>Hallo Christian,</p> <blockquote> <p>Du bist da aber nicht gefragt ;) Das HTML müssen auch Leute anpassen können,<br> die keine Ahnung von Perl haben. Wenn das geht, dann hast du gut gearbeitet.</p> </blockquote> <p>nach dieser Aussage ist dann also PHP und CGI absolut gegen die<br> Richtlinien zum Thema Software-Design?</p> <p>Denn da passt man das HTML doch überhaupt nicht an. Ausser den<br> üblichen HTML-Kenntnissen benötigt man Kenntnisse in PHP und in der<br> Sprache, mit der CGI verwendet wird.</p> <p>Dann wären da noch JavaScript, BBCode (?) und wer weiß was da noch<br> alles in einem HTML-Template vorkommen könnte.</p> <p>Wenn das alles nicht zu den Richtlinien passt, dann sind millionen<br> von Internetseiten, selbst von den größten Anbieter, falsch designed.</p> <p>Liege ich da falsch?</p> <p>Greez,<br> opi</p> <div class="signature">-- <br> Selfcode: ie:( fl:( br:^ va:) ls:] fo:) rl:( n4:? ss:| de:] ch:? mo:|<br> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 08:47:14 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893559#m893559 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893559#m893559 <blockquote> <blockquote> <blockquote> <p>Ob der HTML-Code mit CGI erzeugt und ausgegeben wird oder ob er direkt<br> hardkodiert drin steht, das macht genau gar keinen Unterschied. Ne, HTML<br> gehört gar nicht in Scripte und/oder Programme. Sowas gehört in<br> Templates.</p> </blockquote> <p>Naja, ein Funktionsaufruf ist in meinen Augen weder hartkodiert noch eine<br> HTML Ausgabe.</p> </blockquote> <p>Sicher ist es eine HTML-Ausgabe und sicher ist es hardcodiert. Oder kann<br> man den HTML-Quelltext ohne Programmierkenntnisse ändern?</p> </blockquote> <p>Warum sollte ausser dem Porgrammierer den HTML Quelltext ändern wollen, das Design ist einzig und allein in der CSS Datei, die natürlich flexibel eingebunden werden kann.</p> <blockquote> <blockquote> <p>Da ich mich mit HTML::Template nicht gut auskenne weiß ich auch nicht wie<br> dynamisch die ist, aber ich kann mir nicht vorstellen wie ich damit<br> arbeiten soll, wenn ich in einer Ausgabe immer wieder andere Elemente<br> unterbringen muss.</p> </blockquote> <p>Ich kenne und nutze HTML::Template nicht. Daher kann ich dir da auch nicht<br> helfen, sorry.</p> </blockquote> <p>Was nutzt du?</p> <blockquote> <blockquote> <p>Für ein Gästebuch ist das alles kein Problem bei einer komplexen<br> Anwendung die viele unterschiedliche Ansichten hat, halte ich die Pflege<br> von dutzenden Templates für overkill, zumal in der Laufe der Entwicklung<br> immer wieder neue Elemente dazukommen und wegfallen.</p> </blockquote> <p>Nein, im Gegenteil, es ist bei einer grossen Anwendung wesentlich einfacher<br> einen einheitlichen HTML-Output zu haben wenn man nur ein paar<br> Template-Dateien (die vornehmlich aus HTML, Platzhaltern und vielleicht<br> noch ein paar Schleifen und Bedingungen bestehen) als in zig Modulen alles mögliche anpassen zu müssen. Sowohl für dich als auch für einen Perl<br> unbedarften. Stell dir vor, das CForum würde den Quelltext hardcodiert<br> ausgeben… eine kleine Design-Änderung und man müsste es neu kompilieren.<br> Leute, die kein C können, könnten das Design genau gar nicht anpassen. Ne,<br> du, gerade bei komplexen Anwendungen ist es wichtig, dass man das<br> 3-Tier-Prinzip penibel einhält.</p> </blockquote> <p>Ich halte das Forum nicht für komplex, es hat ja nur eine Aufgabe, ein forukm darzustellen. Du hast im Prinzip nur drei Ansichten, die Ausgabe des Forums, die individuellen Einstellungen werden ja wohl kaum im Template Berücksichtigt. Die Postingansicht und die Benutzereinstellungen.</p> <p>Zumal, wie oben schon erwähnt, das Design (zumindest bei mir) mit CSS und mit den individuellen Einstellungen erfolgt.</p> <blockquote> <blockquote> <p>Zumal ein Templatesystem nochmal einiges an Leistung verbrät.</p> </blockquote> <p>Man kann Rechenzeit sinnvoll und sinnlos investieren. Hier ist eine<br> sinnvolle Anwendung.</p> </blockquote> <p>Da ich nur HTML::Template kenne, sehe ich das nicht so. Der Nutzen überwiegt nicht dem zusätzlichen Programmieraufwand.</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Einsatz von HTML::Template Fri, 04 Nov 05 09:02:17 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893556#m893556 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893556#m893556 <p>Tag Christian.</p> <blockquote> <p>Ich kenne und nutze HTML::Template nicht. Daher kann ich dir da auch nicht<br> helfen, sorry.</p> </blockquote> <p>Ich halte HTML::Template für ein mächtiges und sehr performantes Werkzeug, als Speicherfresser ist es mir bis dato noch nicht untergekommen. Ich habe den Einsatz mal etwas ausführlicher beschrieben unter <a href="http://sniplets.anaboe.net/cgiperl04.html" rel="nofollow noopener noreferrer">http://sniplets.anaboe.net/cgiperl04.html</a>.</p> <p>Siechfred</p> <div class="signature">-- <br> <a href="http://siechfred.kennt-wayne.de/2005/11/verlust_eines_geliebten_menschen" rel="nofollow noopener noreferrer">Über den Verlust eines geliebten Menschen</a> || <a href="http://siechfred.kennt-wayne.de/2005/10/denis-piggy-damour-nachruf" rel="nofollow noopener noreferrer">Denis "Piggy" D'Amour - ein Nachruf</a> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 14:07:07 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893553#m893553 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893553#m893553 <p>Hallo Christian,</p> <blockquote> <p>Stell dir vor, das CForum würde den Quelltext hardcodiert ausgeben… eine kleine Design-Änderung und man müsste es neu kompilieren.</p> </blockquote> <p>*hust*</p> <p>Haben wir uns nicht gestern noch über fo_feeds unterhalten? ;)</p> <p>Tim</p> Systemlast / Module nicht einbinden Fri, 04 Nov 05 14:25:36 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893554#m893554 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893554#m893554 <p>你好 Tim,</p> <blockquote> <blockquote> <p>Stell dir vor, das CForum würde den Quelltext hardcodiert ausgeben…<br> eine kleine Design-Änderung und man müsste es neu kompilieren.</p> </blockquote> <p>*hust*</p> <p>Haben wir uns nicht gestern noch über fo_feeds unterhalten? ;)</p> </blockquote> <p>Das ist ein klein wenig eine andere Situation ;) Die Struktur dieser<br> XML-Daten _darf_ nicht geändert werden, da sie eine Schnittstelle<br> darstellt. Wäre es ein beliebiges XML-Format, hätte ich das über ein<br> Template gemacht ;) Aber hier hat niemand was zu suchen, das ist Sache<br> eines Programmierers, die Struktur ist definiert durch entsprechende<br> Standards.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Wenn du gehst, gehe. Wenn du sitzt, sitze. Und vor allem: schwanke nicht!<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 14:32:44 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893555#m893555 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893555#m893555 <p>Hallo Christian,</p> <blockquote> <p>Das ist ein klein wenig eine andere Situation ;) Die Struktur dieser XML-Daten _darf_ nicht geändert werden, da sie eine Schnittstelle darstellt.</p> </blockquote> <p>HTML ist auch nur eine Schnittstelle. ;)</p> <blockquote> <p>Wäre es ein beliebiges XML-Format, hätte ich das über ein Template gemacht ;) Aber hier hat niemand was zu suchen, das ist Sache eines Programmierers, die Struktur ist definiert durch entsprechende Standards.</p> </blockquote> <p>Jain. Auch diese XML-Formate kann man erweitern, insofern ist ihre Struktur nicht fest. Ein Forumsadmin könnte sich plötzlich entscheiden von RSS 2.0 auf RSS 1.0 umzustellen und zusätzlich noch RDF/FOAF-Informationen drin mit aufzunehmen. Oder Krempel, der der derzeit noch durch fo_feeds.conf definiert wird zu ändern. Auch ist die Struktur eines Feeds variabel, manche Elemente sind optional, etc. Um es im MVC-Modell auszudrücken: Ein Feed ist auch nur ein seperater View auf einen Thread, ähnlich wie die Nested- oder List-Ansicht.</p> <p>Aber natürlich sollte man schon wissen, was man da tut, klar. ;)</p> <p>Tim</p> Einsatz von HTML::Template Fri, 04 Nov 05 09:05:03 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893557#m893557 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893557#m893557 <p>你好 Siechfred,</p> <blockquote> <blockquote> <p>Ich kenne und nutze HTML::Template nicht. Daher kann ich dir da auch<br> nicht helfen, sorry.</p> </blockquote> <p>Ich halte HTML::Template für ein mächtiges und sehr performantes<br> Werkzeug, als Speicherfresser ist es mir bis dato noch nicht<br> untergekommen. Ich habe den Einsatz mal etwas ausführlicher beschrieben<br> unter <a href="http://sniplets.anaboe.net/cgiperl04.html" rel="nofollow noopener noreferrer">http://sniplets.anaboe.net/cgiperl04.html</a>.</p> </blockquote> <p>Sieht soweit ja ganz gut aus. Nur Ifs fehlen, gibts die auch?</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> <Henryk> Those who didn't understand (email,usenenet,...) are doomed to reinvent ist. Poorly.<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Einsatz von HTML::Template Fri, 04 Nov 05 09:14:23 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893558#m893558 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893558#m893558 <p>Tag Christian.</p> <blockquote> <blockquote> <p><a href="http://sniplets.anaboe.net/cgiperl04.html" rel="nofollow noopener noreferrer">http://sniplets.anaboe.net/cgiperl04.html</a>.<br> Sieht soweit ja ganz gut aus. Nur Ifs fehlen, gibts die auch?</p> </blockquote> </blockquote> <p><a href="http://search.cpan.org/~samtregar/HTML-Template-2.7/Template.pm#TMPL_IF" rel="nofollow noopener noreferrer">Aber sicher</a>, ich wollte mein Beispiel nur nicht zu ausführlich machen, da es sich eher an Nutzer richten soll, die noch nie mit Templates gearbeitet haben. Übrigens habe ich das Ganze sehr exzessiv in meinem (mittlerweile ad acta gelegten) Perl-Blog verwendet, also auch mit IF..ELSE oder UNLESS :-)</p> <p>Siechfred</p> <div class="signature">-- <br> <a href="http://siechfred.kennt-wayne.de/2005/11/verlust_eines_geliebten_menschen" rel="nofollow noopener noreferrer">Über den Verlust eines geliebten Menschen</a> || <a href="http://siechfred.kennt-wayne.de/2005/10/denis-piggy-damour-nachruf" rel="nofollow noopener noreferrer">Denis "Piggy" D'Amour - ein Nachruf</a> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 09:03:49 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893560#m893560 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893560#m893560 <p>你好 Struppi,</p> <blockquote> <blockquote> <blockquote> <p>Naja, ein Funktionsaufruf ist in meinen Augen weder hartkodiert noch<br> eine HTML Ausgabe.</p> </blockquote> <p>Sicher ist es eine HTML-Ausgabe und sicher ist es hardcodiert. Oder kann<br> man den HTML-Quelltext ohne Programmierkenntnisse ändern?</p> </blockquote> <p>Warum sollte ausser dem Porgrammierer den HTML Quelltext ändern wollen,<br> das Design ist einzig und allein in der CSS Datei, die natürlich flexibel<br> eingebunden werden kann.</p> </blockquote> <p>Sorry, aber das ist mehr als unrealistisch. Beinahe schon weltfremd. Das<br> will ich sehen, wie du ohne Anpassung des Sourcecodes ein Design wie das<br> von WWWTech.de oder ck.kennt-wayne.de hinkriegst, nur mit Templates.</p> <blockquote> <blockquote> <blockquote> <p>Da ich mich mit HTML::Template nicht gut auskenne weiß ich auch nicht<br> wie dynamisch die ist, aber ich kann mir nicht vorstellen wie ich<br> damit arbeiten soll, wenn ich in einer Ausgabe immer wieder andere<br> Elemente unterbringen muss.</p> </blockquote> <p>Ich kenne und nutze HTML::Template nicht. Daher kann ich dir da auch<br> nicht helfen, sorry.</p> </blockquote> <p>Was nutzt du?</p> </blockquote> <p>Eine eigene ;)</p> <blockquote> <blockquote> <blockquote> <p>Für ein Gästebuch ist das alles kein Problem bei einer komplexen<br> Anwendung die viele unterschiedliche Ansichten hat, halte ich die<br> Pflege von dutzenden Templates für overkill, zumal in der Laufe der<br> Entwicklung immer wieder neue Elemente dazukommen und wegfallen.</p> </blockquote> <p>Nein, im Gegenteil, es ist bei einer grossen Anwendung wesentlich<br> einfacher einen einheitlichen HTML-Output zu haben wenn man nur ein paar<br> Template-Dateien (die vornehmlich aus HTML, Platzhaltern und vielleicht<br> noch ein paar Schleifen und Bedingungen bestehen) als in zig Modulen<br> alles mögliche anpassen zu müssen. Sowohl für dich als auch für einen<br> Perl unbedarften. Stell dir vor, das CForum würde den Quelltext<br> hardcodiert ausgeben… eine kleine Design-Änderung und man müsste es neu<br> kompilieren. Leute, die kein C können, könnten das Design genau gar<br> nicht anpassen. Ne, du, gerade bei komplexen Anwendungen ist es wichtig,<br> dass man das 3-Tier-Prinzip penibel einhält.</p> </blockquote> <p>Ich halte das Forum nicht für komplex, es hat ja nur eine Aufgabe, ein<br> forukm darzustellen. Du hast im Prinzip nur drei Ansichten, die Ausgabe<br> des Forums, […]</p> </blockquote> <p>Hihi, du solltest mal einen Blick hinter die Kulissen werfen.</p> <blockquote> <p>die individuellen Einstellungen werden ja wohl kaum im Template<br> Berücksichtigt.</p> </blockquote> <p>Doch, fast ausschliesslich.</p> <blockquote> <p>Zumal, wie oben schon erwähnt, das Design (zumindest bei mir) mit CSS und<br> mit den individuellen Einstellungen erfolgt.</p> </blockquote> <p>Die Anpassung des Designs via CSS ist nur innerhalb bestimmter Parameter<br> möglich. Du bist immer an die durch den Programmierer vorgegebene Struktur<br> gebunden.</p> <blockquote> <blockquote> <blockquote> <p>Zumal ein Templatesystem nochmal einiges an Leistung verbrät.</p> </blockquote> <p>Man kann Rechenzeit sinnvoll und sinnlos investieren. Hier ist eine<br> sinnvolle Anwendung.</p> </blockquote> <p>Da ich nur HTML::Template kenne, sehe ich das nicht so. Der Nutzen<br> überwiegt nicht dem zusätzlichen Programmieraufwand.</p> </blockquote> <p>Hihi, das sag mal einem ausgebildeten Anwendungsentwickler. Der wird dir<br> die Brocken um die Ohren hauen. Mal abgesehen davon, dass bei einer<br> Vermischung der verschiedenen Schichten einer Software diese sehr viel<br> schlechter wartbar wird ist das Design nur sehr, sehr begrenzt anpassbar.</p> <p>In grossen Agenturen wird fast ausschliesslich Software geschrieben, die<br> Templates benutzt – und das ist auch gut so. Nicht umsonst benutzt<br> inzwischen so ziemlich jedes größere (und meist auch die kleineren)<br> Web-Software-Projekt Templates.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Beware Evildoers for my deed is done and every little damsel in distress will be shelted!<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 09:42:42 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893561#m893561 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893561#m893561 <blockquote> <blockquote> <p>Warum sollte ausser dem Porgrammierer den HTML Quelltext ändern wollen,<br> das Design ist einzig und allein in der CSS Datei, die natürlich flexibel<br> eingebunden werden kann.</p> </blockquote> <p>Sorry, aber das ist mehr als unrealistisch. Beinahe schon weltfremd. Das<br> will ich sehen, wie du ohne Anpassung des Sourcecodes ein Design wie das<br> von WWWTech.de oder ck.kennt-wayne.de hinkriegst, nur mit Templates.</p> </blockquote> <p>Ich sehe dort keine Besonderheiten. Ich frag mich aber woher die ganzen <p> im Quelltext bei ck.kennt-wayne.de kommen, alle aus dem Template?</p> <p>Wie baust du dynamische Links ein (evtl. mit SID)? Woher weiß ein template das ich dort an der Stelle X einen Link auf Y haben will?</p> <blockquote> <blockquote> <p>Was nutzt du?</p> </blockquote> <p>Eine eigene ;)</p> </blockquote> <p>und die kann alles?</p> <p>wie gesagt ich bräuchte wenn ich sowas nutzen würde, if Abfragen um zu bestimmen ob jetzt eine Liste, ein Absatz oder ein Tabelle kommt einen integrierten Parser der weiß ob und welche welche SID an alle internen Links gehängt wird. welcher Menüpunkt aktuell ist ... usw</p> <p>wobei ich bei der ganzen Diskussion anmerken muss, im Prinzip arbeitet mein Skripte wie eine Templateausgabe. Ich sammle alles und hab an einer einzigen Stelle dann:</p> <p>print header(),<br> start_html(),<br> logo(),<br> menu(),<br> action(),<br> footer(),<br> end_html()<br> ;</p> <p>Im Prinzip.<br> Das ganze wird dann noch ergänzt mit einigen Zusatzfunktionen z.b. für eine Statusanzeige und passende DIVs drumherum um Ausgabeblöcke zu gruppieren. Sonst gibt es in keinem Modul irgednwo eine print Anweisung.</p> <blockquote> <blockquote> <p>Ich halte das Forum nicht für komplex, es hat ja nur eine Aufgabe, ein<br> forukm darzustellen. Du hast im Prinzip nur drei Ansichten, die Ausgabe<br> des Forums, […]</p> </blockquote> <p>Hihi, du solltest mal einen Blick hinter die Kulissen werfen.</p> </blockquote> <p>Naja, ist mir schon klar das da eine ganze Menge aufwand intern betrieben werden muss, ich bezog meine Aussage in erster Linie auf die verschiedenen Views und das ist ein Forum nun mal nicht so vielfältig wie andere Systeme (ich hab z.b. eine Ligaverwaltung in der alles vorkommt von Tabellen und Übersichten, Userverwaltung und Boards, Mannschafts- und reine Textseiten usw)</p> <blockquote> <blockquote> <p>die individuellen Einstellungen werden ja wohl kaum im Template<br> Berücksichtigt.</p> </blockquote> <p>Doch, fast ausschliesslich.</p> </blockquote> <p>Da stellt sich mir die Frage, wie ein Designer damit arbeiten soll ohne Programmierkenntnisse. Für mich sieht das ganze so aus als ob das Problem genau umgedreht wird. du sagst der Programmierer soll sich nicht um Design kümmern verlangst aber das der Designer programmieren kann, ansonsten dürfte es sehr heikel werden wenn dieser an den Templates arbeitet. Ich sage, die HTML Elemente kommen aus der Anwendung der Designern (zugegeben bisher war es fast immer ich selber) fast nur noch den CSS Code an um die HTML elemente entsprechend anzupassen.</p> <blockquote> <blockquote> <p>Zumal, wie oben schon erwähnt, das Design (zumindest bei mir) mit CSS und<br> mit den individuellen Einstellungen erfolgt.</p> </blockquote> <p>Die Anpassung des Designs via CSS ist nur innerhalb bestimmter Parameter<br> möglich. Du bist immer an die durch den Programmierer vorgegebene Struktur<br> gebunden.</p> </blockquote> <p>Das ist tatsächlich so. wobei das sich in Maßen auch noch mit Einstellungen verändert werden kann. Aber letzlich ist eine Struktur eine Struktur die auch einen Sinn machen sollte. Warum sollte z.b. das Logo als letztes im Dokument erscheinen, es dürfte immer zuerst kommen.</p> <blockquote> <blockquote> <p>Da ich nur HTML::Template kenne, sehe ich das nicht so. Der Nutzen<br> überwiegt nicht dem zusätzlichen Programmieraufwand.</p> </blockquote> <p>Hihi, das sag mal einem ausgebildeten Anwendungsentwickler. Der wird dir<br> die Brocken um die Ohren hauen. Mal abgesehen davon, dass bei einer<br> Vermischung der verschiedenen Schichten einer Software diese sehr viel<br> schlechter wartbar wird ist das Design nur sehr, sehr begrenzt anpassbar.</p> </blockquote> <p>du kennst CSSZengarden?<br> Für mich ist das alles andere als begrenz.</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 09:55:03 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893562#m893562 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893562#m893562 <p>你好 Struppi,</p> <blockquote> <blockquote> <blockquote> <p>Warum sollte ausser dem Porgrammierer den HTML Quelltext ändern<br> wollen, das Design ist einzig und allein in der CSS Datei, die<br> natürlich flexibel eingebunden werden kann.</p> </blockquote> <p>Sorry, aber das ist mehr als unrealistisch. Beinahe schon weltfremd. Das<br> will ich sehen, wie du ohne Anpassung des Sourcecodes ein Design wie das<br> von WWWTech.de oder ck.kennt-wayne.de hinkriegst, nur mit Templates.</p> </blockquote> <p>Ich sehe dort keine Besonderheiten.</p> </blockquote> <p>Du wirst es schlicht nicht hinbekommen. Nimm den Quelltext der Seite<br> de.selfhtml.org und lass es aussehen wie wwwtech.de – ohne den Quelltext<br> zu ändern.</p> <blockquote> <p>Ich frag mich aber woher die ganzen <p> im Quelltext bei<br> ck.kennt-wayne.de kommen, alle aus dem Template?</p> </blockquote> <p>Depends, welche du meinst.</p> <blockquote> <p>Wie baust du dynamische Links ein (evtl. mit SID)?</p> </blockquote> <p>Über das setzen einer Variablen.</p> <blockquote> <p>Woher weiß ein template das ich dort an der Stelle X einen Link auf Y<br> haben will?</p> </blockquote> <p>Will ich uU ja gar nicht, darum gehts ja. In der Installation x kann ich den<br> Link da haben wollen, in der Installation y dagegen nicht.</p> <blockquote> <blockquote> <blockquote> <p>Was nutzt du?</p> </blockquote> <p>Eine eigene ;)</p> </blockquote> <p>und die kann alles?</p> </blockquote> <p>Alles, was notwendig ist.</p> <blockquote> <p>wie gesagt ich bräuchte wenn ich sowas nutzen würde, if Abfragen um zu<br> bestimmen ob jetzt eine Liste, ein Absatz oder ein Tabelle kommt</p> </blockquote> <p>Nein, das benötigst du nicht.</p> <blockquote> <p>einen integrierten Parser der weiß ob und welche welche SID an alle<br> internen Links gehängt wird.</p> </blockquote> <p>Dito.</p> <blockquote> <p>welcher Menüpunkt aktuell ist ... usw</p> </blockquote> <p>Dafür reichen einfache ifs.</p> <blockquote> <p>wobei ich bei der ganzen Diskussion anmerken muss, im Prinzip arbeitet<br> mein Skripte wie eine Templateausgabe.</p> </blockquote> <p>Nein, wirklich nicht ;)</p> <blockquote> <p>Das ganze wird dann noch ergänzt mit einigen Zusatzfunktionen z.b. für<br> eine Statusanzeige und passende DIVs drumherum um Ausgabeblöcke zu<br> gruppieren. Sonst gibt es in keinem Modul irgednwo eine print Anweisung.</p> </blockquote> <p>Dafür jede Menge .= und dergleichen mehr. Das ist das gleiche in grün.</p> <blockquote> <blockquote> <blockquote> <p>Ich halte das Forum nicht für komplex, es hat ja nur eine Aufgabe, ein<br> forukm darzustellen. Du hast im Prinzip nur drei Ansichten, die<br> Ausgabe des Forums, […]</p> </blockquote> <p>Hihi, du solltest mal einen Blick hinter die Kulissen werfen.</p> </blockquote> <p>Naja, ist mir schon klar das da eine ganze Menge aufwand intern betrieben<br> werden muss, ich bezog meine Aussage in erster Linie auf die<br> verschiedenen Views […]</p> </blockquote> <p>Ich auch. Schau hinter die Kulissen. Schau dir die Templates an.</p> <blockquote> <blockquote> <blockquote> <p>die individuellen Einstellungen werden ja wohl kaum im Template<br> Berücksichtigt.</p> </blockquote> <p>Doch, fast ausschliesslich.</p> </blockquote> <p>Da stellt sich mir die Frage, wie ein Designer damit arbeiten soll ohne<br> Programmierkenntnisse.</p> </blockquote> <p>Ein Designer muss ein gewisses Verständnis für Strukturen haben, richtig,<br> aber er muss nicht programmieren können. Die Komplexität einer<br> Template-Sprache ist bis auf das Mindestmass heruntergebrochen.</p> <blockquote> <p>Aber letzlich ist eine Struktur eine Struktur die auch einen Sinn machen<br> sollte. Warum sollte z.b. das Logo als letztes im Dokument erscheinen, es<br> dürfte immer zuerst kommen.</p> </blockquote> <p>Das sagst du. $DESIGNER wird das anders sehen. Und wenn dein Produkt nicht<br> fähig ist, die CI abzubilden, naja, dann benutzt man es halt nicht. Die<br> Struktur einer Seite muss aufweichbar sein, sonst hast du etwas falsch<br> gemacht.</p> <blockquote> <blockquote> <blockquote> <p>Da ich nur HTML::Template kenne, sehe ich das nicht so. Der Nutzen<br> überwiegt nicht dem zusätzlichen Programmieraufwand.</p> </blockquote> <p>Hihi, das sag mal einem ausgebildeten Anwendungsentwickler. Der wird dir<br> die Brocken um die Ohren hauen. Mal abgesehen davon, dass bei einer<br> Vermischung der verschiedenen Schichten einer Software diese sehr viel<br> schlechter wartbar wird ist das Design nur sehr, sehr begrenzt<br> anpassbar.</p> </blockquote> <p>du kennst CSSZengarden?</p> </blockquote> <p>Durchaus.</p> <blockquote> <p>Für mich ist das alles andere als begrenz.</p> </blockquote> <p>Die Möglichkeit der Anpassung dort ist sehr begrenzt.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> <Tim> Ich bin nicht hier, um zu helfen. Mir hilft ja auch keiner. Sogar mein Brötchen muss ich mir jetzt selber schmieren.<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 12:03:25 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893563#m893563 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893563#m893563 <blockquote> <blockquote> <p>Ich sehe dort keine Besonderheiten.</p> </blockquote> <p>Du wirst es schlicht nicht hinbekommen. Nimm den Quelltext der Seite<br> de.selfhtml.org und lass es aussehen wie wwwtech.de – ohne den Quelltext<br> zu ändern.</p> </blockquote> <p>Naja, selfhtml ist ja bekannt für seine Tabellenstruktur und das tabellen mit CSS weniger flexibel sind ist ja bekannt.</p> <blockquote> <blockquote> <p>Ich frag mich aber woher die ganzen <p> im Quelltext bei<br> ck.kennt-wayne.de kommen, alle aus dem Template?</p> </blockquote> <p>Depends, welche du meinst.</p> </blockquote> <p>die vielen</p> <blockquote> <blockquote> <p>Wie baust du dynamische Links ein (evtl. mit SID)?</p> </blockquote> <p>Über das setzen einer Variablen.</p> </blockquote> <p>dynamische Links, also wenn igrendetwas passiert z.b. zeigt du ein Produkt an, wenn derjenige der eingeloggt ist die Berechtigiung dazu hat erscheint ein Link zum editieren, der natürlich alle Informationen (z.b. SID, produkt ID) enthalten muss.</p> <blockquote> <blockquote> <p>Woher weiß ein template das ich dort an der Stelle X einen Link auf Y<br> haben will?</p> </blockquote> <p>Will ich uU ja gar nicht, darum gehts ja. In der Installation x kann ich den<br> Link da haben wollen, in der Installation y dagegen nicht.</p> </blockquote> <p>Wir reden ein bisschen einaneinder vorbei mit Y mein ich z.b. ein bearbeiten oder löschen Link, das hängt nun nicht von der Installation ab, das entscheidet die Anwendung.</p> <blockquote> <blockquote> <p>wie gesagt ich bräuchte wenn ich sowas nutzen würde, if Abfragen um zu<br> bestimmen ob jetzt eine Liste, ein Absatz oder ein Tabelle kommt</p> </blockquote> <p>Nein, das benötigst du nicht.</p> </blockquote> <p>Um auf das Produkt Beispiel zurück zukommen, dort ist es sehr wohl eine Frage ob ich eine Auflistung aller Produkte habe oder eine Auflistung inklusiver einiger Eigenschaften. Oder ob jetzt nur ein Informationstext angezeigt wird. Sicher ist dies mit Templates zu lösen, aber da hätten wir schon drei  unterschiedliche.</p> <blockquote> <blockquote> <p>einen integrierten Parser der weiß ob und welche welche SID an alle<br> internen Links gehängt wird.</p> </blockquote> <p>Dito.</p> </blockquote> <p>ich habe z.b. ein Modul das mir eine Linkliste ausgibt, selbst bei wordpress das sehr auf Templates setzt kommt die Liste als HTML Code aus der Funktion, ich kann zwar die Ausgabe noch beeinflussen, dies ist aber in erster Linie Möglich weil das ganze unter PHP läuft und somit Programmcode und HTMLcode gemischt werden können in den Templates.</p> <p>Nach deiner Logik müßte ich dann ein Schleife im Template programmieren können und innerhalb dieser auch die Möglichkeit zusätzliche Elemente (z.b. ein <p> Absatz für eine Beschreibung zu integrieren)</p> <p>Und dann bin ich nicht, wie du weiter unten sagst, bei einer minimalen komplexen Struktur Sprache.</p> <blockquote> <blockquote> <p>Da stellt sich mir die Frage, wie ein Designer damit arbeiten soll ohne<br> Programmierkenntnisse.</p> </blockquote> <p>Ein Designer muss ein gewisses Verständnis für Strukturen haben, richtig,<br> aber er muss nicht programmieren können. Die Komplexität einer<br> Template-Sprache ist bis auf das Mindestmass heruntergebrochen.</p> </blockquote> <p>Dann ist sie nur für ein Mindestmaß anwendbar. Das ist doch der Punkt, wie Siechfred auf seiner Seite versucht HTML::Template einem näher zu bringen ist das ganze ja kein Problem, doch jeder hat auf seiner Seite wesentlich komplexere Strukturen, die z.T. HTML::Template auch kann, nur bin ich dann nach wie vor an einem Punkt wo ich das Template programmieren muss obwohl ich im Programmcode schon weiß was ich ausgeben muss.</p> <blockquote> <blockquote> <p>Aber letzlich ist eine Struktur eine Struktur die auch einen Sinn machen<br> sollte. Warum sollte z.b. das Logo als letztes im Dokument erscheinen, es<br> dürfte immer zuerst kommen.</p> </blockquote> <p>Das sagst du. $DESIGNER wird das anders sehen. Und wenn dein Produkt nicht<br> fähig ist, die CI abzubilden, naja, dann benutzt man es halt nicht. Die<br> Struktur einer Seite muss aufweichbar sein, sonst hast du etwas falsch<br> gemacht.</p> </blockquote> <p>Nein!<br> Der Designer interessiert sich ja nicht für die Struktur, sondern für das optische Ergebnis und da ist selbst mit meiner Methode das Logo an jedem x-beliebigen Platz platzierbar, nur Die die die Seite nicht optisch erfassen, bekommen das Logo und die Überschrift als erster zu sehen, was meiner aussage entspricht, eine Struktur darf nicht aufweichbar sein, ansonsten ist es keine Struktur.</p> <blockquote> <blockquote> <p>du kennst CSSZengarden?</p> </blockquote> <p>Durchaus.</p> <blockquote> <p>Für mich ist das alles andere als begrenz.</p> </blockquote> <p>Die Möglichkeit der Anpassung dort ist sehr begrenzt.</p> </blockquote> <p>Naja, dann reden und sehen wir was anderes ich halte annähernd 200 Vorschläge für ein und die selbe Struktur für mehr als ausreichend.</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 12:51:10 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893565#m893565 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893565#m893565 <p>Tag Struppi.</p> <blockquote> <p>Um auf das Produkt Beispiel zurück zukommen, dort ist es sehr wohl eine Frage ob ich eine Auflistung aller Produkte habe oder eine Auflistung inklusiver einiger Eigenschaften. Oder ob jetzt nur ein Informationstext angezeigt wird. Sicher ist dies mit Templates zu lösen, aber da hätten wir schon drei  unterschiedliche.</p> </blockquote> <p>Nein, ein einziges mit Alternativen.</p> <blockquote> <p>Nach deiner Logik müßte ich dann ein Schleife im Template programmieren können und innerhalb dieser auch die Möglichkeit zusätzliche Elemente (z.b. ein <p> Absatz für eine Beschreibung zu integrieren)</p> </blockquote> <p>Ja, genau. Aber das ist Aufgabe des Erstellers der Software, während die Aufgabe des Designers ist, diese Ausgaben hübsch aussehen zu lassen. Letzterer muss nicht wissen, wie man in dem Template eine Schleife einbaut oder eine bedingte Anzeige. Er muss nur wissen, welches Element er anfassen muss, um eine bestimmte Optik zu erzeugen. Wenn ein Designer auch Templatevariablen oder -anweisungen anfassen muss, dann ist das Template entweder schlecht dokumentiert oder taugt am Ende nichts.</p> <blockquote> <p>Dann ist sie nur für ein Mindestmaß anwendbar. Das ist doch der Punkt, wie Siechfred auf seiner Seite versucht HTML::Template einem näher zu bringen ist das ganze ja kein Problem, doch jeder hat auf seiner Seite wesentlich komplexere Strukturen, die z.T. HTML::Template auch kann, nur bin ich dann nach wie vor an einem Punkt wo ich das Template programmieren muss obwohl ich im Programmcode schon weiß was ich ausgeben muss.</p> </blockquote> <p>Du programmierst nicht für dich, sondern für den Anwender, und um nichts anderes geht es m.E., denn darüber, dass es dir als Ersteller der Software egal ist, ob du was im Skript oder an einem Template umstellen musst, sind wir uns sicher einig. Doch was ist, wenn ein Anwender deiner Software mit null Ahnung von Perlprogrammierung einfach nur ein anderes Header-Logo haben will? Dem willst du zumuten, dass er sich durch deine Scripte wühlt, bis er die entsprechende Anweisung gefunden hat? Für manche ist es schon ein Ding der Unmöglichkeit, diese tollen Konfigurationsblöcke am Anfang mancher Scripte anzupassen.</p> <blockquote> <p>Der Designer interessiert sich ja nicht für die Struktur, sondern für das optische Ergebnis und da ist selbst mit meiner Methode das Logo an jedem x-beliebigen Platz platzierbar</p> </blockquote> <p>Ja, aber nicht ohne Kenntnisse sowohl in HTML und CSS als auch in Perl. Ein Anwender einer Software muss auf den ersten Blick sehen, was Sache ist, und diese Möglichkeit bietet ihm ein vernünftiges Template. Bei deinem Ansatz ist der Anwender gezwungen, in die Scripte zu schauen, was ein gewisses Maß an Fachwissen voraussetzt, bei Templates hingegen hat er HTML im Klartext stehen und sieht auf den ersten Blick, wo er drehen muss.</p> <p>Soweit du Software ausschließlich für deinen Einsatz programmierst, ist die Diskussion, ob Templates oder nicht, genauso akademisch wie eine Diskussion über semantisch korrekten Einsatz von HTML-Elementen :-)</p> <p>Siechfred</p> <div class="signature">-- <br> <a href="http://siechfred.kennt-wayne.de/2005/11/verlust_eines_geliebten_menschen" rel="nofollow noopener noreferrer">Über den Verlust eines geliebten Menschen</a> || <a href="http://siechfred.kennt-wayne.de/2005/10/denis-piggy-damour-nachruf" rel="nofollow noopener noreferrer">Denis "Piggy" D'Amour - ein Nachruf</a> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 13:30:10 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893564#m893564 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893564#m893564 <p>你好 Struppi,</p> <blockquote> <blockquote> <blockquote> <p>Ich frag mich aber woher die ganzen <p> im Quelltext bei<br> ck.kennt-wayne.de kommen, alle aus dem Template?</p> </blockquote> <p>Depends, welche du meinst.</p> </blockquote> <p>die vielen</p> </blockquote> <p>Struppi, das ist nicht konstruktiv. Einige Absätze kommen aus den Templates,<br> andere habe ich als Autor eingetragen. Von der Software selber allerdings<br> werden keine generiert, wenn du das meinst. Weder das CForum noch Block<br> erzeugen an irgend einer Stelle HTML-Quelltext, der sich nicht durch<br> Templates ändern lässt.</p> <p>Das beste Beispiel für den Sinn von Templates ist immer noch ein Forum. Ich<br> müsste, um im CForum eine Board-Ansicht zu implementieren, nur die Templates<br> anpassen, keine Zeile Quelltext. Das ist wäre nicht möglich, wenn ich keine<br> Templates benutzen würde; dann müsste jemand ran, der C kann.</p> <blockquote> <blockquote> <blockquote> <p>wie gesagt ich bräuchte wenn ich sowas nutzen würde, if Abfragen um zu<br> bestimmen ob jetzt eine Liste, ein Absatz oder ein Tabelle kommt</p> </blockquote> <p>Nein, das benötigst du nicht.</p> </blockquote> <p>Um auf das Produkt Beispiel zurück zukommen, dort ist es sehr wohl eine<br> Frage ob ich eine Auflistung aller Produkte habe oder eine Auflistung<br> inklusiver einiger Eigenschaften. Oder ob jetzt nur ein Informationstext<br> angezeigt wird. Sicher ist dies mit Templates zu lösen, aber da hätten<br> wir schon drei  unterschiedliche.</p> </blockquote> <p>Ich glaube, du verstehst gar nicht, wie man mit Templates arbeitet. Bitte<br> tu mir den Gefallen und schaue dir wirklich mal einige Projekte an, die<br> Templates nutzen. Dann wirst du verstehen, warum der Einsatz von Templates<br> sinnvoll und gut ist.</p> <p>BTW. wird dich derjenige, der das Aussehen deiner Software anpassen muss<br> dreifach verfluchen, wenn du nicht mit Templates arbeitest ;)</p> <blockquote> <blockquote> <blockquote> <p>Da stellt sich mir die Frage, wie ein Designer damit arbeiten soll<br> ohne Programmierkenntnisse.</p> </blockquote> <p>Ein Designer muss ein gewisses Verständnis für Strukturen haben,<br> richtig, aber er muss nicht programmieren können. Die Komplexität einer<br> Template-Sprache ist bis auf das Mindestmass heruntergebrochen.</p> </blockquote> <p>Dann ist sie nur für ein Mindestmaß anwendbar.</p> </blockquote> <p>Natürlich. Für genau das Mindestmaß, das ich benötige.</p> <blockquote> <p>Der Designer interessiert sich ja nicht für die Struktur, […]</p> </blockquote> <p>Hihi, nur weil du es gern so hättest muss das noch lange nicht heissen,<br> dass es so ist. Ein Designer hat nicht nur die Aufgabe, alles schön bunt<br> zu machen ;)</p> <blockquote> <p>[…] eine Struktur darf nicht aufweichbar sein, ansonsten ist es keine<br> Struktur.</p> </blockquote> <p>So? Wie kommst du darauf? Das musst du schon begründen…</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Mensch zu Mathematiker: "Ich finde Ihre Arbeit ziemlich monoton". Mathematiker: "Mag sein! Dafür ist sie aber stetig und unbeschränkt."<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 13:31:45 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893566#m893566 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893566#m893566 <blockquote> <blockquote> <p>Um auf das Produkt Beispiel zurück zukommen, dort ist es sehr wohl eine Frage ob ich eine Auflistung aller Produkte habe oder eine Auflistung inklusiver einiger Eigenschaften. Oder ob jetzt nur ein Informationstext angezeigt wird. Sicher ist dies mit Templates zu lösen, aber da hätten wir schon drei  unterschiedliche.</p> </blockquote> <p>Nein, ein einziges mit Alternativen.</p> </blockquote> <p>Das ist mir nicht klar. Im Template steht dann sowas wie:</p> <p><TMPL IF xxx=liste><br> <ul><br> <TMPL LOOP ???><li> <TMPL eigenschaft_1><br> <p> <TMPL text> </p><br> <TMPL ENDLOOP></p> <p></li><br> <TMPL ELSE IF xxx=produkte><br> <table><br> <TMP LOOP ???><tr><br> <td> <TMPL eigenschaft_1> </td><br> <td> <TMPL eigenschaft_2> </td><br> <td> <TMPL eigenschaft_3> </td><br> </tr><br> <TMP ENDLOOP><br> </table><br> <TMPL ELD IF xxx=text><br> <p><TMPL tex></p><br> <TMPL ENDIF></p> <p>Da kann kein Designer etwas mit Anfangen.</p> <blockquote> <blockquote> <p>Nach deiner Logik müßte ich dann ein Schleife im Template programmieren können und innerhalb dieser auch die Möglichkeit zusätzliche Elemente (z.b. ein <p> Absatz für eine Beschreibung zu integrieren)</p> </blockquote> <p>Ja, genau. Aber das ist Aufgabe des Erstellers der Software, während die Aufgabe des Designers ist, diese Ausgaben hübsch aussehen zu lassen. Letzterer muss nicht wissen, wie man in dem Template eine Schleife einbaut oder eine bedingte Anzeige. Er muss nur wissen, welches Element er anfassen muss, um eine bestimmte Optik zu erzeugen. Wenn ein Designer auch Templatevariablen oder -anweisungen anfassen muss, dann ist das Template entweder schlecht dokumentiert oder taugt am Ende nichts.</p> </blockquote> <p>Das widerspricht zumindest teilweise dem was Christian über den Zweck von Templates sagt. Und entspricht dem was ich teilweise sage.<br> Ich gebe eine struktrierte HTML seite aus, wie ich das mache ist erst mal egal. Dabei gibt es unterschiedliche Bereiche (mit DIV und ID gekennzeichnet) die der Designer über CSS nach belieben gestalten mag.</p> <blockquote> <blockquote> <p>Dann ist sie nur für ein Mindestmaß anwendbar. Das ist doch der Punkt, wie Siechfred auf seiner Seite versucht HTML::Template einem näher zu bringen ist das ganze ja kein Problem, doch jeder hat auf seiner Seite wesentlich komplexere Strukturen, die z.T. HTML::Template auch kann, nur bin ich dann nach wie vor an einem Punkt wo ich das Template programmieren muss obwohl ich im Programmcode schon weiß was ich ausgeben muss.</p> </blockquote> <p>Du programmierst nicht für dich, sondern für den Anwender, und um nichts anderes geht es m.E., denn darüber, dass es dir als Ersteller der Software egal ist, ob du was im Skript oder an einem Template umstellen musst, sind wir uns sicher einig. Doch was ist, wenn ein Anwender deiner Software mit null Ahnung von Perlprogrammierung einfach nur ein anderes Header-Logo haben will? Dem willst du zumuten, dass er sich durch deine Scripte wühlt, bis er die entsprechende Anweisung gefunden hat? Für manche ist es schon ein Ding der Unmöglichkeit, diese tollen Konfigurationsblöcke am Anfang mancher Scripte anzupassen.</p> </blockquote> <p>Das Header Logo ist eine Einstellung in den Programmoptionen (nicht in der Konfiguration) oder wird in der CSS Datei deklariert.</p> <blockquote> <blockquote> <p>Der Designer interessiert sich ja nicht für die Struktur, sondern für das optische Ergebnis und da ist selbst mit meiner Methode das Logo an jedem x-beliebigen Platz platzierbar</p> </blockquote> <p>Ja, aber nicht ohne Kenntnisse sowohl in HTML und CSS als auch in Perl. Ein Anwender einer Software muss auf den ersten Blick sehen, was Sache ist, und diese Möglichkeit bietet ihm ein vernünftiges Template. Bei deinem Ansatz ist der Anwender gezwungen, in die Scripte zu schauen, was ein gewisses Maß an Fachwissen voraussetzt, bei Templates hingegen hat er HTML im Klartext stehen und sieht auf den ersten Blick, wo er drehen muss.</p> </blockquote> <p>Naja, bei meiner Methode brauch er nur Kenntnisse in CSS (die natürlich ohne HTML Kenntnisse nicht viel bringen), also weniger in HTML und schon gar nciht in Perl. In der CSS Datei steht dan  sowas:</p> <p>#logo<br> {<br> ...<br> }<br> #logo img<br> {</p> <p>}<br> #logo h1<br> {<br> ..<br> }</p> <p>Da kann jeder beliebig dran schrauben.</p> <blockquote> <p>Soweit du Software ausschließlich für deinen Einsatz programmierst, ist die Diskussion, ob Templates oder nicht, genauso akademisch wie eine Diskussion über semantisch korrekten Einsatz von HTML-Elementen :-)</p> </blockquote> <p>Das ist wahr und bisher auch weitestgehend so. Trotzdem interessiert mich wo der Vorteil von Template liegen soll, da diese ja keinerlei Inhalte präsentieren können da diese i.d.R. erst aus der Anwendung kommen und somit erst mal nutzlos sind.</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 13:48:07 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893570#m893570 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893570#m893570 <p>你好 Struppi,</p> <blockquote> <p>Das ist mir nicht klar. Im Template steht dann sowas wie:</p> <p><TMPL IF xxx=liste><br> <ul><br> <TMPL LOOP ???><li> <TMPL eigenschaft_1><br> <p> <TMPL text> </p><br> <TMPL ENDLOOP></p> <p></li><br> <TMPL ELSE IF xxx=produkte><br> <table><br> <TMP LOOP ???><tr><br> <td> <TMPL eigenschaft_1> </td><br> <td> <TMPL eigenschaft_2> </td><br> <td> <TMPL eigenschaft_3> </td><br> </tr><br> <TMP ENDLOOP><br> </table><br> <TMPL ELD IF xxx=text><br> <p><TMPL tex></p><br> <TMPL ENDIF></p> <p>Da kann kein Designer etwas mit Anfangen.</p> </blockquote> <p>Das ist glücklicherweise unwahr. In bisher jeder Agentur, in der ich<br> gearbeitet habe, war der/waren die Designer problemlos in der Lage, sich<br> innerhalb kürzester Zeit in derart simple Konstrukte einzuarbeiten. Gut,<br> die Syntax war angenehmer und übersichtlicher, aber trotzdem.</p> <blockquote> <p>Ich gebe eine struktrierte HTML seite aus, wie ich das mache ist erst mal<br> egal. Dabei gibt es unterschiedliche Bereiche (mit DIV und ID<br> gekennzeichnet) die der Designer über CSS nach belieben gestalten mag.</p> </blockquote> <p>Es ist unrealistisch und beinahe weltfremd zu behaupten, jede Struktur<br> liesse sich per CSS in jede andere überführen – und das auch noch für alle<br> Browser.</p> <blockquote> <p>Naja, bei meiner Methode brauch er nur Kenntnisse in CSS (die natürlich<br> ohne HTML Kenntnisse nicht viel bringen), also weniger in HTML und schon<br> gar nciht in Perl. […]</p> </blockquote> <p>Bis einer deiner Kunden Anforderungen hat, die sich nur mit Hilfe einer<br> Änderung im HTML-Code erreichen lassen. Spätestens dann wirst du merken,<br> dass du etwas falsch gemacht hast.</p> <blockquote> <p>Trotzdem interessiert mich wo der Vorteil von Template liegen soll, da<br> diese ja keinerlei Inhalte präsentieren können da diese i.d.R. erst aus<br> der Anwendung kommen und somit erst mal nutzlos sind.</p> </blockquote> <p>Denke in Schichten. Die Daten selber haben nichts, aber auch wirklich gar<br> nichts mit der Darstellung zu tun; unter der Haube kann sich etwas<br> vollständig anderes verstecken. So hat also eine Software im Idealfall<br> mindestens drei Schichten: eine Schicht zur Datenbeschaffung und<br> -speicherung (dadurch wird es ohne Probleme möglich, zwischen einer<br> Datenbank und einer Text-Datei oder zwei verschiedenen Datenbank-Systemen<br> zu wechseln), eine zur Aufbereitung der Daten und die letzte Schicht zur<br> Darstellung der Daten. Dein Programmcode ist also im Idealfall nur das<br> Bindeglied zwischen Daten und Templates, die die dritte Schicht darstellen:<br> die Darstellung der Daten.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Wer sich zu überschwänglich freut, wir später Grund zum Weinen haben.<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Templates vs. scriptgesteuerte Ausgabe Fri, 04 Nov 05 20:41:53 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893567#m893567 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893567#m893567 <p>Tag Struppi.</p> <blockquote> <p><TMPL IF xxx=liste><br> <ul><br> <TMPL LOOP ???><li> <TMPL eigenschaft_1><br> <p> <TMPL text> </p><br> <TMPL ENDLOOP></p> <p></li><br> <TMPL ELSE IF xxx=produkte><br> <table><br> <TMP LOOP ???><tr><br> <td> <TMPL eigenschaft_1> </td><br> <td> <TMPL eigenschaft_2> </td><br> <td> <TMPL eigenschaft_3> </td><br> </tr><br> <TMP ENDLOOP><br> </table><br> <TMPL ELD IF xxx=text><br> <p><TMPL tex></p><br> <TMPL ENDIF></p> </blockquote> <p>So ähnlich, wie Christian schon schrieb. Allerdings ist es natürlich nicht immer sinnvoll, für alle Aufgaben ein Template zu nutzen, wenn dadurch die Verständlichkeit für einen Außenstehenden auf der Strecke bleibt. Aber nehmen wir ruhig mal dein Beispiel. Was wäre, wenn ein Anwender nun statt der ungeordneten eine geordnete Liste möchte? In einem Template ersetzt er "ul" durch "ol", das war's. Bei deiner Variante müsste er sich erst in eine Programmlogik hineindenken (was zumindest Grundkenntnisse in der verwendeten Programmiersprache voraussetzt) und dann die entsprechende Zeile im Script/im Modul finden, wo er statt "ul" sein "ol" platzieren kann. Dies ist ein Vorteil von Templates.</p> <blockquote> <p>Ich gebe eine struktrierte HTML seite aus, wie ich das mache ist erst mal egal. Dabei gibt es unterschiedliche Bereiche (mit DIV und ID gekennzeichnet) die der Designer über CSS nach belieben gestalten mag.</p> </blockquote> <p>Ja, aber dazu muss der Designer erstmal *sehen*, wie das HTML aussieht, das ist bei einem Template wesentlich schneller und einfacher zu überblicken als bei einer scriptgesteuerten Ausgabe.</p> <blockquote> <p>Das Header Logo ist eine Einstellung in den Programmoptionen (nicht in der Konfiguration) oder wird in der CSS Datei deklariert.</p> </blockquote> <p>Okay, schlecht gewähltes Beispiel.</p> <blockquote> <p>Naja, bei meiner Methode brauch er nur Kenntnisse in CSS (die natürlich ohne HTML Kenntnisse nicht viel bringen), also weniger in HTML und schon gar nciht in Perl.</p> </blockquote> <p>Ja, aber wenn er die *Struktur* der HTML-Ausgabe ändern will (ein Beispiel hatte ich schon genannt), dann muss er doch am Script schrauben, und dafür benötigt er Perl-Kenntnisse. Indem du das HTML von deinem Script ausgeben lässt, nimmst du dem perlunkundigen Designer viele Möglichkeiten, etwas an der Struktur des ausgegebenen Dokumentes zu ändern.</p> <blockquote> <p>Da kann jeder beliebig dran schrauben.</p> </blockquote> <p>Es geht nicht allein um die Darstellung, das wäre zu einfach.</p> <blockquote> <p>Das ist wahr und bisher auch weitestgehend so. Trotzdem interessiert mich wo der Vorteil von Template liegen soll, da diese ja keinerlei Inhalte präsentieren können da diese i.d.R. erst aus der Anwendung kommen und somit erst mal nutzlos sind.</p> </blockquote> <p>Sie ermöglichen einen einfachen und schnell editierbaren Einblick in die HTML-Struktur. Du könntest ein Script auch ganz ohne HTML-Template ausliefern, damit würdest du dem Designer die Möglichkeit bieten, mit einfachsten Mitteln eine eigene HTML-Struktur aufzubauen, die seinen Wünschen und Vorstellungen entspricht. Eine ungeordnete Liste ist und bleibt ungeordnet, da kannst du mit CSS keine Nummerierungen mehr hinzufügen. Letztlich sähe ein simpelstes Template z.B. für ein Blog so aus:</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_VAR</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>HEADLINE<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_VAR</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>WELCOME_MESSAGE<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_LOOP</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>THREAD<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_VAR</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>AUTHOR<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_VAR</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>DATE_TIME<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_VAR</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>TOPIC<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_VAR</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>MESSAGE<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_IF</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ARE_THERE_ANY_ANSWERS<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_LOOP</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ANSWERS<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_VAR</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ANSWER_AUTHOR<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_VAR</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ANSWER_DATE_TIME<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_VAR</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ANSWER_MESSAGE<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>TMPL_LOOP</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_ELSE</span><span class="token punctuation">></span></span> <span class="token comment"><!-- if there are no answers, place your individual message here otherwise leave blank --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>TMPL_IF</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_IF</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ANSWERS_ALLOWED<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_INCLUDE</span> <span class="token attr-name">NAME</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>path/to/answerform.tmpl<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TMPL_ELSE</span><span class="token punctuation">></span></span> <span class="token comment"><!-- if answering is not allowed, place your individual message here otherwise leave blank --></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>TMPL_IF</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>TMPL_LOOP</span><span class="token punctuation">></span></span> </code></pre> <p>Was der Designer für einen Doctype verwendet, wie er die Überschrift präsentiert, ob er evtl. noch eine Headergrafik obendrüber haben will, wie er den Nachrichtenblock darstellen möchte - als (un)geordnete Liste oder in einer Tabelle, ob Autor, Datum/Uhrzeit und Thema in einer Zeile nebeneinander stehen sollen oder ebenfalls in einer Liste oder in P-Elementen, das kann er frei nach seinen Wünschen bzw. Kundenvorgaben entscheiden, packt das entsprechende HTML drumherum und stylt das Ganze mit CSS. Bei deinem Ansatz müsste er in den Perl-Code einsteigen und dort drin herumfriemeln - mit nicht absehbaren Ergebnissen.</p> <p>Siechfred</p> <p>PS: ich habe den Titel mal geändert, besser spät als nie :-)</p> <div class="signature">-- <br> <a href="http://siechfred.kennt-wayne.de/2005/11/verlust_eines_geliebten_menschen" rel="nofollow noopener noreferrer">Über den Verlust eines geliebten Menschen</a> || <a href="http://siechfred.kennt-wayne.de/2005/10/denis-piggy-damour-nachruf" rel="nofollow noopener noreferrer">Denis "Piggy" D'Amour - ein Nachruf</a> </div> Templates vs. scriptgesteuerte Ausgabe Sat, 05 Nov 05 00:03:05 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893568#m893568 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893568#m893568 <blockquote> <p>Siechfred<br> 再见,<br> 克里斯蒂安 (heißt das Roy o.ä)</p> </blockquote> <p>Ihr steckt unter einer Decke</p> <p><a href="http://siechfred.kennt-wayne.de/2005/11/verlust_eines_geliebten_menschen" rel="nofollow noopener noreferrer">http://siechfred.kennt-wayne.de/2005/11/verlust_eines_geliebten_menschen</a><br> <a href="http://siechfred.kennt-wayne.de/2005/10/denis-piggy-damour-nachruf" rel="nofollow noopener noreferrer">http://siechfred.kennt-wayne.de/2005/10/denis-piggy-damour-nachruf</a><br> <a href="http://kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">http://kennt-wayne.de/xemacs:-buffer-cycle.el</a><br> <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">http://ck.kennt-wayne.de/neue-hardware-eingebaut</a></p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Templates vs. scriptgesteuerte Ausgabe Sat, 05 Nov 05 08:20:39 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893569#m893569 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893569#m893569 <p>Moin Struppi.</p> <blockquote> <blockquote> <p>Siechfred<br> 再见,<br> 克里斯蒂安 (heißt das Roy o.ä)<br> Ihr steckt unter einer Decke</p> </blockquote> </blockquote> <p>Nene, lass mal, den Platz werde ich Daniela sicher nicht streitig machen ;-)</p> <p>Siechfred</p> <div class="signature">-- <br> <a href="http://siechfred.kennt-wayne.de/2005/11/verlust_eines_geliebten_menschen" rel="nofollow noopener noreferrer">Über den Verlust eines geliebten Menschen</a> || <a href="http://siechfred.kennt-wayne.de/2005/10/denis-piggy-damour-nachruf" rel="nofollow noopener noreferrer">Denis "Piggy" D'Amour - ein Nachruf</a> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 14:28:38 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893571#m893571 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893571#m893571 <blockquote> <blockquote> <p>Da kann kein Designer etwas mit Anfangen.</p> </blockquote> <p>Das ist glücklicherweise unwahr. In bisher jeder Agentur, in der ich<br> gearbeitet habe, war der/waren die Designer problemlos in der Lage, sich<br> innerhalb kürzester Zeit in derart simple Konstrukte einzuarbeiten. Gut,<br> die Syntax war angenehmer und übersichtlicher, aber trotzdem.</p> </blockquote> <p>Um die Syntax geht es doch gar nicht, er kann es nicht designen, da nichts angezeigt wird und selbst wenn man Dummys einbaut hat er drei verschiedenen Ansichten die aber nicht unbedingt zusammen gehören.</p> <blockquote> <blockquote> <p>Ich gebe eine struktrierte HTML seite aus, wie ich das mache ist erst mal<br> egal. Dabei gibt es unterschiedliche Bereiche (mit DIV und ID<br> gekennzeichnet) die der Designer über CSS nach belieben gestalten mag.</p> </blockquote> <p>Es ist unrealistisch und beinahe weltfremd zu behaupten, jede Struktur<br> liesse sich per CSS in jede andere überführen – und das auch noch für alle<br> Browser.</p> </blockquote> <p>Eine Struktur ist eine Struktur, d.h. nach a kommt b auch wen es im einzelnen manchmal strittig ist was das c ist, aber eine Struktur ist Ordnung von Elementen in diesem Falle innerhalb eines Dokumentes.</p> <p>CSS hat nichts mit dieser Struktur zu tun und verändert diese auch nicht, es dient einzig und alleim Den optischen Anordnen und gestaltet diese Struktur.<br> Ob das weltfremd ist weiß ich nicht, ich hab zumindest Teile von CSS Dateien wiederverwenden können und muss nur wenige Anpassung an individuelle Elemente dort vornehmen</p> <p>Browser die kein oder zu wenig CSS können sehen diese Struktur. In der Realität sieht es so aus, dass ohne Probleme eine minimal ausgabe erzeugen kann aus den gleichen Daten.</p> <p>z.b.<br> <a href="http://die-bunte-liga.de/" rel="nofollow noopener noreferrer">http://die-bunte-liga.de/</a></p> <p>Tabellenlayout:<br> <a href="http://www.die-bunte-liga.de/rheinhessen/45/no_css=1" rel="nofollow noopener noreferrer">http://www.die-bunte-liga.de/rheinhessen/45/no_css=1</a><br> (theoretisch sollte da noch eine minimal CSS Datei rein für Farben und Schrifarten und Größe, war ich aber bisher zu faul für)</p> <p>und ein Versuch etwas anderes zu Layouten<br> <a href="http://www.die-bunte-liga.de/rheinhessen/49/css=design_2.css" rel="nofollow noopener noreferrer">http://www.die-bunte-liga.de/rheinhessen/49/css=design_2.css</a><br> (Ich weiß, ich bin nicht so der Meister was das Layout angeht- so wie es jetzt ist, ist es kaum nutzbar, es geht ums Prinzip)</p> <blockquote> <blockquote> <p>Naja, bei meiner Methode brauch er nur Kenntnisse in CSS (die natürlich<br> ohne HTML Kenntnisse nicht viel bringen), also weniger in HTML und schon<br> gar nciht in Perl. […]</p> </blockquote> <p>Bis einer deiner Kunden Anforderungen hat, die sich nur mit Hilfe einer<br> Änderung im HTML-Code erreichen lassen. Spätestens dann wirst du merken,<br> dass du etwas falsch gemacht hast.</p> </blockquote> <p>Genauso geht es, wenn ein Element eingeführt wird das nicht im template zu Verfügung steht</p> <blockquote> <blockquote> <p>Trotzdem interessiert mich wo der Vorteil von Template liegen soll, da<br> diese ja keinerlei Inhalte präsentieren können da diese i.d.R. erst aus<br> der Anwendung kommen und somit erst mal nutzlos sind.</p> </blockquote> <p>Denke in Schichten. Die Daten selber haben nichts, aber auch wirklich gar<br> nichts mit der Darstellung zu tun; unter der Haube kann sich etwas<br> vollständig anderes verstecken. So hat also eine Software im Idealfall<br> mindestens drei Schichten: eine Schicht zur Datenbeschaffung und<br> -speicherung (dadurch wird es ohne Probleme möglich, zwischen einer<br> Datenbank und einer Text-Datei oder zwei verschiedenen Datenbank-Systemen<br> zu wechseln), eine zur Aufbereitung der Daten und die letzte Schicht zur<br> Darstellung der Daten. Dein Programmcode ist also im Idealfall nur das<br> Bindeglied zwischen Daten und Templates, die die dritte Schicht darstellen:<br> die Darstellung der Daten.</p> </blockquote> <p>Gelesen habe ich das wohl, in mancherlei Hinsicht habe dies auch so umgesetzt, auch wenn es mir nicht immer gelingt. Ich habe Module für das DB Management, Module für die Aufbereitung der Daten und Module für die Erzeugnung des HTML codes, alles unter der Ägide einer "main" Datei die alles zusammeführt. die Schichten sind also da. soweit ich das verstehe müßte zu jedem Modul, dass jetzt die Daten für die Anzeige aufbereitet eine Template Datei erstellen mit hilfe der Output generiert wird. Da die Anwendungen in erster Linie CGI Anwendungen sind wüßte ich nicht wozu dies notwendig ist, zumal ich z.b. mit einem einfachen Parameter dem CGI Modul sagen kann das es nicht HTML sondern XHTML erzeugen soll, d.h. ich kann dies jederzeit zur Laufzeit ändern und könnte je nach Browser darauf reagieren. Das Template system erfordert dort eine Anpassung am Template.</p> <p>Wie gesagt von meinem Programmierverständniss gibt es keine Notwendigkeit und da ich bisher noch keinen passenden Ansatz gesehen habe, bleibe ich erstmal dabei, aber ich bin ja offen für neues. Was ausser HTML::Template gibt es noch in Perl? Manson (ist das sowas? oder ist das eher der Versuch wie php zu sein)?</p> <p>Struppi.</p> <div class="signature">-- <br> <a href="http://javascript.jstruebig.de/" rel="nofollow noopener noreferrer">Javascript ist toll</a> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 16:08:04 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893572#m893572 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893572#m893572 <p>你好 Struppi,</p> <p>sorry, ich habe im Moment keine Zeit, den Beiträgen genügend Aufmerksamkeit<br> zu widmen; eine weitere Diskussion müsste ich halbherzig führen. Wenn du<br> Interesse hast, das Thema weiterzuführen schreibe mir eineMail, dann kann<br> ich die auch in 14 Tagen noch beantworten.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Der Mund ist das Portal zum Unglück.<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Fri, 04 Nov 05 07:33:41 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893574#m893574 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893574#m893574 <p>你好 opi,</p> <blockquote> <blockquote> <p>Du bist da aber nicht gefragt ;) Das HTML müssen auch Leute anpassen<br> können, die keine Ahnung von Perl haben. Wenn das geht, dann hast du<br> gut gearbeitet.</p> </blockquote> <p>nach dieser Aussage ist dann also PHP und CGI absolut gegen die<br> Richtlinien zum Thema Software-Design?</p> </blockquote> <p>CGI ist eine Schnittstelle. Keine Sprache. Also kann ich deinen Einwand<br> jetzt nicht nachvollziehen.</p> <p>Zum Thema PHP: völlig richtig, PHP unterstützt das schlechte Schreiben von<br> Software ungemein. Aber man kann auch mit PHP Software schreiben, die sich<br> sauber an diese Architektur hält.</p> <blockquote> <p>Denn da passt man das HTML doch überhaupt nicht an.</p> </blockquote> <p>Ähem, ich hab schon mehrfach Programme in PHP geschrieben, die mit Templates<br> gearbeitet haben ;) die bekannteste Template-Engine für PHP dürfte da wohl<br> Smarty sein.</p> <blockquote> <p>Dann wären da noch JavaScript, BBCode (?) und wer weiß was da noch<br> alles in einem HTML-Template vorkommen könnte.</p> </blockquote> <p>JavaScript fällt ein wenig aus der Reihe, das ist leider wahr. Das liegt in<br> der Natur der Sache; JS ist sehr abhängig vom HTML-Output. Was du mit BBCode<br> hast weiss ich auch nicht so recht.</p> <blockquote> <p>Wenn das alles nicht zu den Richtlinien passt, dann sind millionen<br> von Internetseiten, selbst von den größten Anbieter, falsch designed.</p> </blockquote> <p>Sehr viele Internet-Projekte fangen ziemlich übel an, ja. PHProject wäre da<br> zum Beispiel zu nennen, was hab ich mich schon über dieses Projekt geärgert…</p> <blockquote> <p>Liege ich da falsch?</p> </blockquote> <p>Halb und halb.</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> 73.255437% der Statistiken spielen eine Genauigkeit vor, die durch die angewandte Methode nicht gerechtfertigt wird.<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div> Systemlast / Module nicht einbinden Thu, 03 Nov 05 14:31:03 Z https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893577#m893577 https://forum.selfhtml.org/self/2005/nov/3/systemlast-module-nicht-einbinden/893577#m893577 <p>你好 Struppi,</p> <blockquote> <p>Darüber hinaus ist die Frage nach der systemlast wegen use strict und<br> Warnungen etwas seltsam, arbeitet ihr mit 8086 Prozessoeren?<br> Auf allen anderen Rechnern dürfte es keinen meßbaren Unterschied mehr<br> ausmachen ob use strict eingebunden wurde oder nicht.</p> </blockquote> <p>Zumal strict.pm eigentlich nichts anderes macht als eine Perl-interne<br> Variable zu setzen…</p> <p>再见,<br>  克里斯蒂安</p> <div class="signature">-- <br> <a href="http://ck.kennt-wayne.de/xemacs:-buffer-cycle.el" rel="nofollow noopener noreferrer">(X)Emacs: buffer-cycle.el</a> | <a href="http://ck.kennt-wayne.de/neue-hardware-eingebaut" rel="nofollow noopener noreferrer">Neue Hardware eingebaut</a><br> Es gibt keinen Ort, wo der Geist zu finden waere. Er ist wie die Fussspuren der Voegel am Himmel.<br> <a href="http://wwwtech.de/" rel="noopener noreferrer">http://wwwtech.de/</a><br> </div>