MySQL & PHP: Webseiten Inhalt nach Artikel Typ anpassen
CrazyLexx
- datenbank
Hallo zusammen,
verwende hier ein auf MySQL basierendes CMS und möchte nun folgende Anpassung vornehmen:
Habe in der Datenbank unter der vorhandenen Hauptkategorie "Articles" mehere Unterkategorien (z.B. Kolumne) angelegt. Wenn ein Artikel aus der Datenbank aufgerufen wird, integriert das System automatisch den Inhalt einer weiteren PHP Datei (right_articles.php) für die Spalte rechts neben dem eigentlichen Inhalt. In genau dieser Datei möchte ich nun sowas wie eine "Weiche" einbauen, die je nach der angezeigten Unterkategorie automatisch auf ein entsprechend angepasste Version der PHP Datei für die rechte Spalte verweist.
Beispiel: Ein Artikel aus der Unterkategorie "Kolumne" wird aufgerufen und in der right_articles.php wird automatisch eine "right_kolume.php" Datei aufgerufen, die ich inhaltlich an die Unterkategorie angepasst habe.
Kann man das irgendwie umsetzen, ohne die Struktur der Datenbank verändern zu müssen?
Mir ist es an anderer Stelle z.B. schon gelungen, die letzten 5 Artikel aus diesen Unterkategorien anzeigen zu lassen:
<?php
$latest_background = mysql_query("SELECT * from ccms_article where type='kolumne' OR type='retro' order by id desc limit 5");
$c = 1;
while ($row = mysql_fetch_assoc($latest_background)) {
$title_start = preg_replace('/[^a-zA-Z0-9 *]/', '', $row[title]);
$title_seo = str_replace(' ', '-', $title_start);
?>
Danke,
TOM
In genau dieser Datei möchte ich nun sowas wie eine "Weiche" einbauen, die je nach der angezeigten Unterkategorie automatisch auf ein entsprechend angepasste Version der PHP Datei für die rechte Spalte verweist.
Beispiel: Ein Artikel aus der Unterkategorie "Kolumne" wird aufgerufen und in der right_articles.php wird automatisch eine "right_kolume.php" Datei aufgerufen, die ich inhaltlich an die Unterkategorie angepasst habe.
Ich hab zwar keine ahnung von php im datail aber macht man daraus nicht einfach eine if-else if angrage
if(kolume)
{
include("./inc/*");
}
else if(was_anderes)
{
include("./inc/*");
}
Ich hab zwar keine ahnung von php im datail aber macht man daraus nicht einfach eine if-else if angrage
if(kolume)
{
include("./inc/*");
}
else if(was_anderes)
{
include("./inc/*");
}
Ja, so im Prinzip hatte ich mir das auch vorgestellt - aber woran erkennt das System, zu welchem Typ der angeforderte Artikel nun gehört?
In meinem Beispiel mit den "letzten Einträgen" in einer Kategorie ("SELECT * from ccms_article where type='kolumne') wähle ich ja quasi direkt aus dem Datensatz "ccms_article" nur die entsprechenden Artikel der Kategorie "kolume" aus. Wie aber kann ich das auf die gerade geladene Seite anwenden (Sowas wie "if articletype = kolumne" und so weiter)?
TOM
Hi,
In meinem Beispiel mit den "letzten Einträgen" in einer Kategorie ("SELECT * from ccms_article where type='kolumne') wähle ich ja quasi direkt aus dem Datensatz "ccms_article" nur die entsprechenden Artikel der Kategorie "kolume" aus. Wie aber kann ich das auf die gerade geladene Seite anwenden (Sowas wie "if articletype = kolumne" und so weiter)?
Wenn du in der Lage bist, den Wert 'kolumne' in deiner SELECT-Query zu verwenden - dann bist du doch wohl auch in der Lage, ihn anderweitig ebenfalls zu nutzen?
MfG ChrisB
Wenn du in der Lage bist, den Wert 'kolumne' in deiner SELECT-Query zu verwenden - dann bist du doch wohl auch in der Lage, ihn anderweitig ebenfalls zu nutzen?
Bin ich das?! ;-) War ja super froh, die von mir gepostete Abfrage alleine hinbekommen zu haben. Nur komme ich nun an der Stelle mit der Syntax nicht weiter, weil ich eben nicht eine einfache Datenbankanfrage machen möchte, sondern abhängig von der (vom User) angefragten Seite den Inhalt abändern möchte...
Hi,
Nur komme ich nun an der Stelle mit der Syntax nicht weiter, weil ich eben nicht eine einfache Datenbankanfrage machen möchte, sondern abhängig von der (vom User) angefragten Seite den Inhalt abändern möchte...
Du hast also einen bestimmten Wert vorliegen, und moechtest von dem abhaengig dies oder das (oder vielleicht auch jenes) machen.
Das ist ganz grundsaetzlich mit einem simplen If, wenn es mehr Faelle werden auch mit einem Switch, sehr einfach realisiert.
MfG ChrisB
Du hast also einen bestimmten Wert vorliegen, und moechtest von dem abhaengig dies oder das (oder vielleicht auch jenes) machen.
Das ist ganz grundsaetzlich mit einem simplen If, wenn es mehr Faelle werden auch mit einem Switch, sehr einfach realisiert.
In der Theorie würde ich dir da auch zustimmen... Folgende Situation:
So wie ich es verstehe, ruft das CMS die entsprechenden PHP Dateien mit den einzelnen Bauteilen der Webseite auf Grund der Formierung der URL ab.
www.domain.com/TYPE_#_blabla
Jenachdem, ob ich nun einen Artikel beim Verfassen in die groben Kategorien "Articles", "News" usw. ablege, ändert sich die TYPE Angabe oben in der URL.
Für den TYPE "Articles" habe ich nun UNTERKATEGORIEN angelegt, die ich auch bei einer Abfrage erfolgreich verwenden kann. Jedoch hat diese Unterkategorien keinen Einfluss auf die TYPE Formatierung der URL. Ob ein Artikel nun unter Kolumne oder eine anderen Unterkategorie abgelegt ist, ändert nicht die URL (die bleibt bei /TYPE_#_blbla).
Deshalb müsste ich ja irgendwie eine Syntax basteln, die ausgehend von der URL in der Datenbank nachsieht, in welcher Unterkategorie sich der Artikel befindet.
Habe ich das Prinzip richtig verstanden, oder wo liegt mein Problem? :-)