Vinzenz Mai: Inhalt aus Datenbank wie Datei bei require

Beitrag lesen

Hallo Malcolm,

function bb_Object($mein_Inhalt) {

/*
*  Function Bilderbox
/
  $mein_Inhalt = preg_replace('/[bspllinks]\s
(.),(.),(.),(.),(.)\s[/bspllinks]/', "
<p>$1<a href="$2"><img src="$3" height="$4" alt="$5" /></a></p>"
, $mein_Inhalt);
}

  
oh je :-(  
  

> `[bspllinks]Bild 1,/link/irgendeineSeite,/pfad/zum/bild.jpg,150,Beschreibung des Bildes[/bspllinks]`{:.language-php}  
  
oh je, oh je :-((  
  
Du hast also folgende Teilinformationen:  
a) Bild 1  
   (irgendeinen Text)  
b) /link/irgendeineSeite  
   (Linkziel)  
c) /pfad/zum/bild.jpg  
   (absolute Pfadangabe, von DocumentRoot aus gesehen, zu einer Bilddatei)  
d) 150  
   (Höhe in Pixeln, die das Bild in der Seite einnehmen soll)  
e) Beschreibung des Bildes  
   (Beschreibung des Bildes)  
  
Fünf Informationen, die nicht alle zusammengehören, in einen bb-Code zusammengemixt. Mit sinnvoller Anwendung einer Datenbank hat das wenig zu tun.  
  
Pfad zum Bild und Beschreibung sind Bildeigenschaften. Diese gehören in eine eigene Tabelle.  
Irgendein Text, Linkziel, Höhe sind Eigenschaften, die zur Verwendung dieses Bildes an einer bestimmten Stelle gehören. Diese gehören in eine weitere Tabelle, die das Bild referenziert.  
  
Jede der Eigenschaften gehört in eine eigene Spalte (Daten sollten atomar vorliegen, 1. Normalform).  
Du benötigst in Deinem Minitemplate keine komplizierten regulären Ausdrücke, ein einfaches str\_replace() mit zwei netten Arrays tut es auch. Ist auch viel leichter nachzuvollziehen.  
  
Dein derzeitiges Datenmodell ist stark verbesserungswürdig.  
  
  
Freundliche Grüße  
  
Vinzenz