was man mit ben. def. Seitenfeldern anstellen kann ;)

Begonnen von dobra, November 21, 2014, 23:08:38

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

man kann z.B. txt-Dateien ganz einfach einbinden.

1) ein ben.def. Seitenfeld "TXT" anlegen.
2) mit beliebigen Editor den Text schreiben und als txt-Datei abspeichern
   

Zeilenumbrüche und Leerzeichen werden automatisch ersetzt.
Sonstige Formatierungen kann man (muss aber nicht) mit html und/oder css schreiben.

3) der Pfad zur Datei wird im TXT-Seitenfeld eingetragen.
   

4) Code (wenn er nur auf einigen wenigen Seiten verwendet werden soll, kann man es direkt in den head-Bereich schreiben, sonst in stdall.ipl dann ist es überall verwendbar)
   <!--spmacro:module(datei)
sub text {
   my $url = ssp::pageurl(1);
   $url =~ /^.*iboshop.cgi\?show(\d+).*/;
   my $pagenr = $1;
  my $datei = ssp::get_var_page("TXT",$pagenr);
  open(TEXT, "< $ssp::catalog_home/$datei");
  my @text = <TEXT>;
  close(TEXT);
  foreach(@text)
{s/  /&nbsp; /g;}
  main::mprint(join("<br>",@text));
}
-->


5) mit  __datei::text__  kann die txt-Datei jetzt ausgegeben werden.



Wozu das gut sein soll?
z.B. wenn man viele Infoseiten verwendet, braucht man dann nicht mehr für jede eine eigene html-Vorlage, sondern kommt mit einer einzigen globalen aus.
eine globale Vorlage info.html kann z.B. so ausschauen
<!--spmacro:include(html_de/body_top.html)-->

<div class="eintrag">
<h1>__pseite__</h1>
<br>__datei::text__
</div>
 
<!--spmacro:include(html_de/footer.html)-->
</body>


oder man kann längere Texte auf Katalogseiten ausgeben
etc.

P.S.: das Script hat ahe vor ewigen Zeiten mal geschrieben - ich habe es nur ein bisschen zweckentfremdet angepasst  ;)
mfG
dobra