php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-10-2007, 16:25
INC.
 Registrierter Benutzer
Links : Onlinestatus : INC. ist offline
Registriert seit: Nov 2005
Beiträge: 106
INC. ist zur Zeit noch ein unbeschriebenes Blatt
Standard Speicherung von "Einstellungen" / Template laden

Hallo erstmal

also um gleich zur Sache zu kommen, ich möchte auf meiner Seite gerne 2 Dinge umsetzen, für die ich auch eine Umsetzung im Kopf habe, nur wohl nicht die beste..

1.) Ich möchte gerne das HTML-Template/Aussehen meiner Seite mit einem Klick ändern können, jeder Style auf dem Webspace soll seinen eigenen Ordner haben. Das bedeutet ja, dass beim Laden der Page am Anfang erst jedesmal überprüft werden muss, welches Template nun geladen werden soll.
Meine Idee war, eine Simple .txt Datei o.ä. zu erstellen (in welcher der Speicherort bzw. Name des Templates gespeichert ist) und beim Laden der index.php wird diese Datei nun zu Beginn ausgelesen und das Template von dem ausgelesenen Speicherort includiert.

Wie machen das die bekannten CMS? werde mir nacher mal eins laden um evt. etwas abzuschauen.


2.) Oft hat eine Seite ja auch ein "Admin Control Panel" oder ähnliches, Ich habe mir einfach einen Ordner erstellt und diesen mit htaccess geschützt ... Dann ist zwar nichts mit Multiuser usw, aber sicher wohl allemal.

Doch mir kommt es jetzt auf den Weg an, wie man die Sachen speichert, die dort eingegeben werden (Beispiel: Titel der Page, Uhrzeitformat, Kontakt/Impressumdaten, Location des favicons etc.).
Eine MySQL-Datenbank ist da ja nicht angebracht, da ich ja keine Datensätze speichern will, sondern von jeder Einstellung nur einen einzigen Wert (Beispiel: Pagetitle = willkommen auf bla.de).
Ich habe ja bei 1.) schon diese .txt Datei erwähnt, soll ich das mit den anderen Einstellungen auch so machen? Mich würde die "State of the art" Lösung interessieren (xml ist ja in aller Munde, vielleicht doch lieber eine "einstellungen.xml" mit entsprechender Struktur statt einer "einstellungen.txt"?)


mfg & Danke
Mit Zitat antworten
  #2 (permalink)  
Alt 20-10-2007, 16:39
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@1
Willkommen in der Welt von CSS.
Templates gehen natürlich auch, find ich aber unhübsch~

@2
Du kannst dafür schon eine MySQL-Tabelle nehmen.
Einstellungen
setting_name VARCHAR (20);
value VARCHAR (255);

du kannst genauso gut eine INI-Datei nehmen, oder eine XML-Datei, in beiden Fällen würde ich dann aber eventuell eine HEAP-Tabelle, oder besser noch Memcache, zum Cachen der Daten benutzen, da das Parsen einer Datei recht langwierig ist.
Mit Zitat antworten
  #3 (permalink)  
Alt 20-10-2007, 17:18
INC.
 Registrierter Benutzer
Links : Onlinestatus : INC. ist offline
Registriert seit: Nov 2005
Beiträge: 106
INC. ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für die schnelle Antwort!

zu 1.)

Ja, ich denke ich weiß wie du das meinst. Die Rohdaten selbst in einer index.php speichern (bzw. durch die dort includeten PHP-Scripte dynamisch einfügen) und eine CSS Datei regelt das gesamte Layout (für diese Trennung wurde ja wohl auch das an xml angelehnte xhtml erschaffen meine ich gelesen zu haben, Daten = xml, Aussehen = css) ... wenn ich was ändern möchte, ändere ich also nur den Pfad zur .css Datei anstatt ein anderes Template zu laden. Hab ich das so richtig verstanden?

Falls ja, finde ich das nicht 100% überzeugend, Beispiel:
Ich habe in meinem ersten Design eine Top-Navigation, sprich über dem Inhalt, horizontal liegend. Was ist, wenn ich in meinem zweiten Design die Navigation aus irgendeinem Grund unter den Inhalt bringen will, oder in den Inhalt integrieren? sowas kann css ja nicht beeinflussen, oder etwa doch?
(Was ich sagen will: die Anordnung der Div-Boxen bleibt ja die selbe. Wenn ich jetzt aber für jedes Design ein eigenes Template hätte, kann ich die divs ja komplett anders verschachteln.).

Falls du nur anmerken wolltest, dass css einfach modern ist - das würde ja auch in meiner vorgeschlagenen Methode verwendet werden; jedes Template besitzt seine eigene .css Datei.

Nicht falsch verstehen: ich poche nicht auf die Template-Lösung, aber sehe da einfach den Vorteil, dass man einfach alles am Aussehen und vorallem am Aufbau der Seite regeln kann, was man mit unterschiedlichen css-Dateien, die auf die immergleiche Div-anordnung der index.php einwirken, ja nicht erreichen kann.

zu 2.)

Ok, ich habe bei der MySQL Sache zuwenig Überlegungen angestellt, dein Vorschlag ist gut.
Nur kann der zum setting_name gehörende Value ja verschiedene Typen haben (Beispiel: timeout = 30, title = "hallo"; sprich einmal integer und einmal varchar/string).
Könnte das später evt. irgendwo Probleme bereiten, wenn ich nun doch alles (auch Zahlen) als varchar speichere? ist doch imho auch nicht soo sauber, jede Value, egal welchen Typs, als varchar zu speichern.

Geändert von INC. (20-10-2007 um 17:38 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 20-10-2007, 17:53
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
... und eine CSS Datei regelt das gesamte Layout (für diese Trennung wurde ja wohl auch das an xml angelehnte xhtml erschaffen meine ich gelesen zu haben, Daten = xml, Aussehen = css) ... wenn ich was ändern möchte, ändere ich also nur den Pfad zur .css Datei anstatt ein anderes Template zu laden. Hab ich das so richtig verstanden?
Das hast du! xhtml ist allerdings nur eine kleine Änderung von html, so dass jedes xhtml-dokument auch valides xml ist!

Zitat:
(Was ich sagen will: die Anordnung der Div-Boxen bleibt ja die selbe. Wenn ich jetzt aber für jedes Design ein eigenes Template hätte, kann ich die divs ja komplett anders verschachteln.).
Da hast du vollkommen recht und ich würde genau den gleichen weg wie du über eine eigene template-datei gehen!

Zitat:
Nur kann der zum setting_name gehörende Value ja verschiedene Typen haben (Beispiel: timeout = 30, title = "hallo"; sprich einmal integer und einmal varchar/string).
Könnte das später evt. irgendwo Probleme bereiten, wenn ich nun doch alles (auch Zahlen) als varchar speichere? ist doch imho auch nicht soo sauber, jede Value, egal welchen Typs, als varchar zu speichern.
Aber egal, wie du deine Einstellungen speicherst, in der Datei werden Zahlen und Zeichenketten auch gleich behandelt.
Ich persönlich würde den Weg über die ini-Datei wählen und diese beispielsweise in der session oder im memcache zwischenspeichern. So kannst du effizient auf die Einstellungen zugreifen und eine Verbindung zur Datenbank kannst du dir ersparen, wenn du diese nicht benötigst (das Laden der Einstellungen also die einzige Anfrage wäre).
Mit Zitat antworten
  #5 (permalink)  
Alt 20-10-2007, 19:14
INC.
 Registrierter Benutzer
Links : Onlinestatus : INC. ist offline
Registriert seit: Nov 2005
Beiträge: 106
INC. ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke nochmals für die Antwort

Dann werde ich wohl doch auf Templates setzen und den Namen des zu ladenden Templates bei den anderen Einstellungen speichern. Vorerst werde ich das dann mit MySQL machen und schaue mir, sobald das funktioniert, mal memcache an (um dort ne XML-Datei mit den Einstellungen reinzuladen. Da stellt sich mir die Frage: warum xml-inhalt in memache laden, wenn ich auch den MySQL-Inhalt in memcache laden kann ... wäre ja noch schneller - also ein Kompromiss zwischen MySQL und memcache, ohne .xml und .ini - aber egal vorerst).

Das MySQL-basierte würde dann so aussehen:

Die index.php holt aus der DB den Speicherort des aktuell zu verwendeten Templates und includiert es in sich selbst.
Das eben includierte Template wiederrum includiert PHP-Scripte, welche Inhalte aus DBs holen (z.B. News).

Also gibt es "includes im include" - wie sieht das mit der Performance aus?

mfg
Mit Zitat antworten
  #6 (permalink)  
Alt 20-10-2007, 21:59
INC.
 Registrierter Benutzer
Links : Onlinestatus : INC. ist offline
Registriert seit: Nov 2005
Beiträge: 106
INC. ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ist mir fast etwas peinlich, aber geht das auch einfacher was ich da fabriziert habe?

PHP-Code:

<?php

error_reporting
(E_ALL);
include 
'includes/mysql.php';

mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

$sql "SELECT setting_value FROM Settings WHERE setting_name = 'template_frontend';";
$result mysql_query($sql) OR die(mysql_error());
    
while(
$row mysql_fetch_assoc($result)) 
    {
        
$template $row['setting_value'];
    }
    
include 
'templates/'.$template.'/index.html';
?>
Macht ja nix anderes, außer genau einen Wert auszulesen und dann das entsprechende Template zu laden ... geht das auch mit weniger Code (z.B. die while-Schleife weglassen, ist ja nur eine Antwort) oder sonst irgendwie besser?

Geändert von INC. (20-10-2007 um 22:02 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 21-10-2007, 12:35
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die while-Schleife ist überflüssig.
Ein if(mysql_num_rows()) wäre eventuell zu empfehlen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:09 Uhr.