0251 / 590 837 15
info@a-coding-project.de
;

Seitentyp Settings (CMS)

Es wird mal Zeit die Seiten aus dem alten Backend ins neue zu übertragen. Nach dem Dashboard kommen heute die globalen Einstellungen dazu.

Zuvor waren diese unter /admin/includes/settings.php zu finden. Der neue Platz ist /system/classes/settingspage.php. Als Basis habe ich den Seitentyp Login benutzt. Es mussten lediglich der Klassenname und der Code in der Funktion display verändert werden. Der Code display ist mit kleinen Anpassungen der Inhalt der alten Datei:

<?PHP
  class SettingsPage extends Editor{
    function __construct($page){
      $this->page = $page;
    }

    public function display(){
        $settings = new SettingsForm();
        $settings->role = 3;
        if($_GET['role']) $settings->role = $_GET['role'];
        $settings->url  = getSetting("global","global","host").$_GET['include'].".html";
        $settings->display();
      ?>
        <div style="margin-left:500px;">
        <h2>Skins</h2>
      <?PHP
        $skins = $GLOBALS['db']->ReadRows("SELECT * FROM {'dbprefix'}skins WHERE LOWER(name) IN (SELECT DISTINCT name FROM {'dbprefix'}settings WHERE areaType = 'skins' AND area = {'dbprefix'}skins.name)");
        if($skins){
          foreach($skins as $skin){
	        echo "<a href="/admin/index.php?page=skin-settings&skin=".urlencode($skin->name)."">".$skin->name."</a><br />";
	      }
        }
      ?>
        <h2>Plugins</h2>
      <?PHP
        $plugins = new PluginList();
        $plugins->loadAll();
        foreach($plugins->plugins as $plugin){
          if($plugin->configurationFile != ''){
            ?>
	          <a href="/admin/index.php?page=plugin-settings&plugin=<?PHP echo $plugin->path; ?>"><?PHP echo $plugin->name; ?></a><br />
	        <?PHP
          }
        }
      ?>
        </div>
      <?PHP
    }
    function getHeader(){
    }

    public function getEditableCode(){
      return "<input name="save" type="submit" value="&Auml;ndern" onclick="form.action='".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."' ; target='_self' ; return true" />";
    }

    public function save($newPage,$oldPage){
    }
}
?>

Da sich die Url geändert hatte, musste diese in einigen Comboboxen angepasst werden. Der Code dazu steht bei Google (siehe unten). Wenn wir unsere Settings-Page jetzt aktivieren möchten, muss folgendes durchgeführt werden:

UPDATE 'cl_pages' SET editor = 'settingspage' WHERE alias = 'admin/settings'

Um auch den Updater zu testen, werde ich die Änderungen gleich auch dort zur Verfügung stellen. Die einzelnen Anpassungen stehen in Revision 20 und Revision 21 bei Google.

Kommentare

Daniel schrieb am 01.08.2010:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /server/installer/installer.php:1) in /server/install.php on line 3

Daniel schrieb am 01.08.2010:

Das ist der Fehler den ich im Installer bekomme. Sowohl auf einem Testserver im I-Net als auch im XAMPP.

Stefan Wienströer schrieb am 01.08.2010:

Den hab ich eben auch zum ersten Mal bemerkt, als ich das auf meinem Zweit-System installieren wollte. Kann mir aber noch nicht erklären warum. Werd mcih aber jetzt dran setzen

Stefan Wienströer schrieb am 01.08.2010:

An alle anderen: Problem lag am Encoding, bitte neue Dateien vom SVN laden.