Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

Portierung Mobile Layout 1.0 von 1.12 auf 2.0

Begonnen von G.S, 04. Februar 2014, 12:57:00

« vorheriges - nächstes »

G.S

Hallo an alle,
ich versuche mich gerade an der Portierung von Arvid´s 1.12 Plugin Mobile Layout 1.0 für Mozillo 2.0.

Leider hänge ich fest und komme nicht wirklich weiter.

Das Plugin wird korrekt unter Admin > Plugins erkannt und lässt sich aktivieren. Leider ist das Feld Einstellungen leer.
Normalerweise müssten hier Radiobuttons mit der Layout Auswahl erscheinen (Siehe Anhang). Leider funktioniert das Plugin auf der Seite selbst auch nicht.

Ich denke das die vorhandenen Layouts nicht korrekt eingelesen werden, ich habe es schon mit anderen Variablen der ehemaligen getdirs() versucht sowie BASE_DIR ohne Dollar Zeichen doch leider ohne Erfolg.

Hier der bisherige Code der index.php:

<?php if(!defined('IS_CMS')) die();/**************************************************************** * moziloCMS: Layoutumschalter für Mobilgeräte* * Zur Erkennung kommt das unter MIT-Lizenz stehende * Mobile-Detect (https://github.com/serbanghita/Mobile-Detect)* zum Einsatz.* ***************************************************************/class MobileLayout extends Plugin {	function getContent($value) {		global $syntax;		global $LAYOUT_DIR;		global $TEMPLATE_FILE;		global $CMS_CONF;		global $GALLERY_CONF;				// Prüfen: Ists ein Mobilgerät?		@require_once 'MobileDetect/Mobile_Detect.php';		$detect = new Mobile_Detect;		$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');				// Mobil-/Standardlayout explizit verlangt? In der Session merken		$showmobileparam = getRequestValue("mobile", true);		if ($showmobileparam == "1") {			$_SESSION['mozilocms_mobileplugin_showmobile'] = "1";		}		else if ($showmobileparam == "0") {			$_SESSION['mozilocms_mobileplugin_showmobile'] = "0";		}				$showmobile = ($deviceType != "computer") || ($_SESSION['mozilocms_mobileplugin_showmobile'] == "1");		$dontshowmobile = ($_SESSION['mozilocms_mobileplugin_showmobile'] == "0");				// Der Switch-URL (für {MobileLayout|switchurl})		if ($value == "switchurl") {			$uri = $this->curPageURL();			if (strpos($uri,'?') !== false) {				return $uri."&amp;mobile=".($_SESSION['mozilocms_mobileplugin_showmobile'] == "1" ? 0 : 1);			}			else {				return $uri."?mobile=".($_SESSION['mozilocms_mobileplugin_showmobile'] == "1" ? 0 : 1);			}			return $uri;		}				// mobiles Layout für alle Mobilgeräte!		if ($showmobile  && !$dontshowmobile) {					$_SESSION['mozilocms_mobileplugin_showmobile'] = "1";							// Das Mobillayout aus den Plugin-Einstellungen			$mobilelayout = $this->settings->get("mobilelayout");						if ($mobilelayout != "") {				// Layout-Platzhalter im Template ersetzen				$syntax->pluginSelfPlaceholderData("-platz~LAYOUT_DIR-platzend~", "layouts/".$mobilelayout);				$syntax->pluginSelfPlaceholderData("{LAYOUT_DIR}", "layouts/".$mobilelayout);								// CMS-Variablen überschreiben				$LAYOUT_DIR = "layouts/".$mobilelayout;				$TEMPLATE_FILE = "layouts/".$mobilelayout."/template.html";								// Submenu- und Galeriespalten-Einstellung aus dem Mobillayout holen				$settingsfile = $LAYOUT_DIR."/layoutsettings.conf";				$layoutsettings = new Properties($settingsfile);				$CMS_CONF->properties["usesubmenu"] = $layoutsettings->get("usesubmenu");				$GALLERY_CONF->properties["gallerypicsperrow"] = $layoutsettings->get("gallerypicsperrow");										// Template nochmal neu parsen (nur einmal, sonst entsteht die Rekursion des Todes^^)				if ($_SESSION['mozilocms_mobileplugin_templatereparsed'] != "1") {					$_SESSION['mozilocms_mobileplugin_templatereparsed'] = "1";					readTemplate();				}			}			$_SESSION['mozilocms_mobileplugin_templatereparsed'] = "0";		}		} // function getContent				/***************************************************************	* 	* Gibt die Konfigurationsoptionen als Array zurück.	* Ist keine Konfiguration nötig, ist dieses Array leer.	* 	***************************************************************/	function getConfig() {		global $ADMIN_CONF;		global $BASE_DIR;		global $specialchars;		$language = $ADMIN_CONF->get("language");		$config = array();				// Alle Layouts als Radiobuttons zur Auswahl anzeigen		$layoutdirs = getDirAsArray($BASE_DIR."layouts",true);		$layouts = array();		natcasesort($layoutdirs);		foreach ($layoutdirs as $file) {			$layouts[$file] = $specialchars->rebuildSpecialChars($file, true, true);		}		$config['mobilelayout'] = array(			"type" => "radio",						  // Pflicht:  Eingabetyp			"description" => "Welches Layout als Mobil-Layout verwenden?",		   // Pflicht:  Beschreibung			"descriptions" => $layouts,		);					return $config;	} // function getConfig				/***************************************************************	* 	* Gibt die Plugin-Infos als Array zurück - in dieser 	* Reihenfolge:	*   - Name und Version des Plugins	*   - für moziloCMS-Version	*   - Kurzbeschreibung	*   - Name des Autors	*   - Download-URL	*   - Platzhalter für die Selectbox	* 	***************************************************************/	function getInfo() {		global $ADMIN_CONF;		$language = $ADMIN_CONF->get("language");		# nur eine Sprache ---------------------------------		$info = array(			// Plugin-Name + Version			"<b>MobileLayout</b> 1.0",			// moziloCMS-Version			"2.0",			// Kurzbeschreibung nur <span> und <br /> sind erlaubt			"Layout-Umschalter für Mobilgeräte",			// Name des Autors			"Arvid Zimmermann",			// Download-URL			"http://software.azett.com",			// Platzhalter für die Selectbox in der Editieransicht 			// - ist das Array leer, erscheint das Plugin nicht in der Selectbox			array(				'{MobileLayout}' => 'Aktiviert das Plugin (muss irgendwo im verwendeten Standard-Layout stehen)',				'{MobileLayout|switchurl}' => 'URL zum Umschalten in den jeweils anderen Modus (Desktop->Mobil bzw. Mobil->Desktop'			)		);		// Rückgabe der Infos.		return $info;			} // function getInfo		// Rückgabe des aktuellen URLs	function curPageURL() {		$pageURL = 'http';		if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}			$pageURL .= "://";		if ($_SERVER["SERVER_PORT"] != "80") {			$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];		} else {			$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];		}		return $pageURL;	}} // class MobileLayout?>


Es währe nett, wenn mir jemand einen Tipp geben könnte.

Vielen Dank im Voraus und Grüße

GS

stefanbe

Da wirst du das Plugin neu Schreiben müssen da sich in der 2.0 zu viel geändert hat bei den Sachen was dieses Plugin Benutzt.

Schau dir doch einfach mal das an
http://www.mozilo.de/forum/index.php?action=media;sa=item;in=240
Live zu Sehen auf meiner Seite wenn du das Browser Fenster in der Breite Verkleinerst.

Oder wenn du getrennte Templates brauchst Instalier einfach ein 2tes moziloCMS und Verlinke die miteinander.
Hat dann sogar den Vorteil das du Unterschiedlichen Inhalt Anbieten kanst.

lg stefanbe

G.S

Schade, das habe ich fast befürchtet.

Danke! für die Hilfe ich werde es mir ansehen.

Gruß

G.S