SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.02.2010, 16:31:35
Unheilig Unheilig ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 53
Beiträge: 4
Template switsch für CMS

Ich arbeite gerade an einem CMS und brauche aus diesem grunde eine Funktion das Themplate im Adminbereich ein zu Stelle.

Bitte um Hilfe , ich weiß nicht genau wie ich das Umsetzen kann.

Templates sollen im Admin bereich aufgelistet werden um einen zu Aktivieren. Datenbank vorhanden.

Wäre super wenn jemand mir Helfen könnte:

Habe Datenbank erstellt :

Code:
CREATE TABLE `cms_skins` (
    `id` INT( 3 ) NOT NULL AUTO_INCREMENT ,
    `name` VARCHAR( 30 ) NOT NULL ,
    PRIMARY KEY ( `id` )
    ) TYPE = MYISAM ;
Der Skin heißt default. Der Insert-Query sieht so aus:

Code:
INSERT INTO `cms_skins` ( `id` , `name` )
    VALUES (
    '', 'default'
    );
So sieht der SQL-Befehl aus:

Code:
 INSERT INTO `cms_settings` ( `property` , `value` )
    VALUES (
    'selectedskin', '1'
    );
Ich habe jetzt einige Skins erstellt , jetz brauche ich etwas , wo ich die im Admin bereich als Standart Aktivieren kann.


Wäre echt super wenn mir jemand helfen könnte ...

mfg
Mit Zitat antworten
  #2  
Alt 09.02.2010, 16:45:36
Unheilig Unheilig ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 53
Beiträge: 4
AW: Template switsch für CMS

Habe jetzt einen Skin Controller eingebaut :

* getCurrentSkinId: gibt die aktuell ausgewählte ID des Skins wieder
* getCurrentSkinName: liefert den Namen des Skins
* getCurrentSkinPath: gibt die Speicheradresse des Skins wieder.

Code:
<?PHP
class SkinController{

  function getCurrentSkinId(){
    return getSetting("selectedskin");
  }

  function getCurrentSkinName(){
    global $dbpraefix;
    $res = mysql_query("SELECT name FROM ".$dbpraefix."skins 
                        WHERE id = '".SkinController::getCurrentSkinId()."'");
    if($row = mysql_fetch_row($res)){
      return $row[0];
    }
    else{
      return "default";
    }
  }

  function getCurrentSkinPath(){
    return "system/skins/".SkinController::getCurrentSkinName();
  }
}
?>
In der Funktion getCurrentSkinID wird einfach nur über die Funktion getSetting aus der Datei settings.php die aktuelle ID aus der DB geholt und mit return zurückgegeben.

Die Funktion getCurrentSkinName muss auf die Variable $dbpraefix aus der dbsettings.php zugreifen. Diese muss deswegen erst einmal als global deklariert werden. Danach wird eine MySQL-Abfrage gesendet, um den Namen herauszubekommen. Hierbei wird auf die Funktion getCurrentSkinID zugegriffen. Da wir ja alle Funktionen statisch aufrufen möchten, müssen wir hier den Klassennamen gefolgt von 2 Doppelpunkten und den Funktionnamen aufrufen. Sollte die Abfrage scheitern, wird hier der Wert “default” für den Standardskin zurückgegeben.

getCurrentSkinPath verknüpft einfach den Skinnamen mit dem Speicherplatz, wo die Skins gespeichert sind.

* dbconnect.php (beinhaltet auch die dbsettigns.php und verbindet zur DB)
* settings.php (für das Auslesen der Einstellungen)


Die Index :
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
  <head>
    <title>Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  </head>
  <body>
    <?PHP
      include("system/dbconnect.php");
      include("system/settings.php");
      include("system/classes/skincontroller.php");
      include("system/filterfilename.php");
      include(filterfilename("content/articles/".$_GET['include']));
      include(SkinController::getCurrentSkinPath()."/test.php");
    ?>
  </body>
</html>
Mit Zitat antworten
  #3  
Alt 09.02.2010, 17:27:21
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: Template switsch für CMS

Ich versuche mal dein Problem zu verstehen.

1. Du hast mehrere Skins erstellt, die mit Namen und ID in einer DB-Tabelle stehen.
2. Du hast eine Tabelle in der der aktuell gewählte Skin drin steht. Mehr nicht
3. mit getCurrentSkinPath verknüpfst du dann den Skinnamen mit seinem Speicherplatz

Nun sucht du etwas womit du im Adminbereich einen der vorhandenen Skins als Standard festlegen kannst.

Bei einer DB Lösung würde ich deine Tabelle cms_skins um eine Spalte "default" erweitern und dem ausgewählten Skin dort einen Wert verpassen. Z.B. eine 1
Um den gewählten Skin zu finden müsste der SELECT als WHERE die 1 als Bedingung haben.

Für den Adminbereich kannst du dann diese Tabelle komplett auslesen und dir eine Auswahlliste erstellen mit allen Skins und den momentan aktiven als SELECTED setzen. Legst du einen neuen Skin fest müsstest du den zur Zeit aktiven Skin im default auf NULL setzten und den neu festgelegten mit der 1 versehen.
Mit Zitat antworten
  #4  
Alt 09.02.2010, 17:41:42
Unheilig Unheilig ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 53
Beiträge: 4
AW: Template switsch für CMS

Zitat:
Zitat von urvater Beitrag anzeigen

Bei einer DB Lösung würde ich deine Tabelle cms_skins um eine Spalte "default" erweitern und dem ausgewählten Skin dort einen Wert verpassen. Z.B. eine 1
Um den gewählten Skin zu finden müsste der SELECT als WHERE die 1 als Bedingung haben.

Für den Adminbereich kannst du dann diese Tabelle komplett auslesen und dir eine Auswahlliste erstellen mit allen Skins und den momentan aktiven als SELECTED setzen. Legst du einen neuen Skin fest müsstest du den zur Zeit aktiven Skin im default auf NULL setzten und den neu festgelegten mit der 1 versehen.

Habe in der Tabelle cms_skins

Code:
INSERT INTO `cms_settings` ( `property` , `value` )
    VALUES (
    'selectedskin', '1'
    );
schon Spalte "default" und selectedskin 1

Was ich brauche ist ein Außlesen vorhandener Skins aus dem Web Verzeichnis und die option diesen Ordner als "Skin" zu Aktivieren. Wobei der Ordnernahme in die Datenbank geschrieben wird um diesen Skin zu Aktivieren. Wenn ich in der DB den namen ändere ( default in z.b. Design1 ) wird dieser auch benutzt
Mit Zitat antworten
  #5  
Alt 09.02.2010, 17:49:27
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Template switsch für CMS

warum fragst du nicht den author des skripts?

PHP SkinController

Zitat:
Zitat von Unheilig Beitrag anzeigen
Was ich brauche [...]
na dann, urvater. leg mal los...

cx
Mit Zitat antworten
  #6  
Alt 09.02.2010, 17:56:38
Unheilig Unheilig ist offline
Anfänger
 
Registriert seit: Feb 2010
Alter: 53
Beiträge: 4
AW: Template switsch für CMS

Zitat:
Zitat von cortex Beitrag anzeigen
warum fragst du nicht den author des skripts?

PHP SkinController



na dann, urvater. leg mal los...

cx
1. Ist das ein Gemeinschafts Project
2. einzelne Code sekmente werden von einigen Umgesetzt.
3 Das CMS wird auf http://creativecommons.org/licenses/GPL/2.0/ laufen .

habe im mom nur ein Einfache Skin Aktivierungs möglichkeit.

Code:
<h1>Einstellungen</h1>
<?PHP
  if($_POST['save']){
    foreach($_POST as $property=>$value){
	  if($property != "save"){
	    setSetting($property,$value);
	  }
	}
  }
?>

<form action="/admin/index.php?page=settings" method="POST">
<fieldset>
  <legend>Einstellungen &auml;ndern</legend>
  <?PHP
    $res = mysql_query("SELECT * FROM ".$dbpraefix."settings WHERE activated = 1");
    while($row = mysql_fetch_assoc($res)){
      echo "<label for=\"".htmlentities($row['property'])."\">";
      echo $row['description'].":";
      echo "</label>";
      echo "<input name=\"".htmlentities($row['property'])."\" value=\"".htmlentities($row['value'])."\" />";
    }
  ?>
  <br /><input type="submit" name="save" value="Speichern" />
</fieldset>
</form>
Wobei die Skins aber erst in DB eingetragen werden müssen. Das macht die Angelegenheit für die Benutzer kompleziert.
Mit Zitat antworten
  #7  
Alt 09.02.2010, 18:20:28
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Template switsch für CMS

Zitat:
Zitat von Unheilig Beitrag anzeigen
1. Ist das ein Gemeinschafts Project
2. einzelne Code sekmente werden von einigen Umgesetzt.
3 Das CMS wird auf http://creativecommons.org/licenses/GPL/2.0/ laufen .
und weiter...?

cx
Mit Zitat antworten
  #8  
Alt 10.02.2010, 14:32:11
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: Template switsch für CMS

Zitat:
Zitat von Unheilig Beitrag anzeigen
Was ich brauche ist ein Außlesen vorhandener Skins aus dem Web Verzeichnis und die option diesen Ordner als "Skin" zu Aktivieren. Wobei der Ordnernahme in die Datenbank geschrieben wird um diesen Skin zu Aktivieren. Wenn ich in der DB den namen ändere ( default in z.b. Design1 ) wird dieser auch benutzt
Dann wird dich dieser Beitrag hier schon gut weiter bringen.
Rekursive Verzeichnisauflistung Musst du dann deinen Wünschen entsprechend anpassen.
Hast du deine Verzeichnissse kannst du dir diese dann als formatiert für die Auswahl ausgeben lassen.
Letztendlich dann halt ein UPDATE in der DB um den momentanen Skin mit dem neu ausgewählten Skin zu überschreiben.
Zitat:
Zitat von Cortex Beitrag anzeigen
na dann, urvater. leg mal los...
Ich habe fertig
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
vorhandes Template kopieren, Daten rein, neue Datei erzeugen massel PHP Grundlagen 3 08.04.2008 22:50:28
Template && String-Replace unskilled PHP Grundlagen 10 26.07.2007 09:55:50
read_dir über template engine ausgeben nurion PHP Grundlagen 7 29.06.2006 11:08:17
Smarty Template Wiederholung auf einer Seite Agentmulder79 PHP Grundlagen 17 24.03.2006 06:10:16
[SUCHE] Template Klasse mentrio PHP Grundlagen 5 29.12.2005 10:48:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:18:49 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt