Seite 1 von 1

[WISH] Wartungsmodus für Frontend

Verfasst: Do 27. Jan 2011, 13:40
von rethus
Fürs Backend gibt es unter Administration >> Experteneinstellungen den Wartungsmodus für das backend.
Gleiches wäre für das Frontend sinnvoll.

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Do 27. Jan 2011, 13:43
von Oldperl
:arrow: Verschoben! ...und nach Oben auf Forentitel zeig 8)

Gruß aus Franken

Ortwin

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Do 27. Jan 2011, 14:14
von kummer
htaccess heisst das zauberwort. ist ja nun ein klacks.

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Fr 4. Feb 2011, 19:12
von OliverL
und für Leute die nicht in htaccess coden:
front_content.php umbenennen und HTML-Seite als front_content.php speichern ;)

Jedoch könnte man in den Mandanten-Einstellungen soetwas aktivieren und ne input für idart & idcat machen.


mfg
OliverL

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Fr 4. Feb 2011, 20:49
von OliverL
---- SQL ----

Code: Alles auswählen

ALTER TABLE `con_clients` ADD `searchresult_art` INT( 10 ) NOT NULL DEFAULT '0',
ADD `searchresult_cat` INT( 10 ) NOT NULL DEFAULT '0',
ADD `loginerror_art` INT( 10 ) NOT NULL DEFAULT '0',
ADD `loginerror_cat` INT( 10 ) NOT NULL DEFAULT '0',
ADD `maintenance_active` TINYINT( 1 ) NOT NULL,
ADD `maintenance_art` INT( 10 ) NOT NULL DEFAULT '0',
ADD `maintenance_cat` INT( 10 ) NOT NULL DEFAULT '0'
---- include/include.client_edit.php ----
( von unten nach oben sonst verschiebt sich alles )
ab Zeile 288

Code: Alles auswählen

		
	    $tpl->set('d', 'CATNAME', i18n("Maintenance page article"));
	    $tpl->set('d', 'BGCOLOR', $cfg["color"]["table_dark"]);
	    $tpl->set('d', "BORDERCOLOR", $cfg["color"]["table_border"]);
	    $tpl->set('d', 'CATFIELD', formGenerateField ("text", "maintenance_art", $db->f("maintenance_art"), 10, 10));
		$tpl->set('d', 'BRDRT', 0);
		$tpl->set('d', 'BRDRB', 1);
		$tpl->set('d', 'FONT', 'text_medium');
	    $tpl->next(); 
	    
	    $tpl->set('d', 'CATNAME', i18n("Maintenance page article"));
	    $tpl->set('d', 'BGCOLOR', $cfg["color"]["table_dark"]);
	    $tpl->set('d', "BORDERCOLOR", $cfg["color"]["table_border"]);
	    $tpl->set('d', 'CATFIELD', formGenerateField ("text", "maintenance_cat", $db->f("maintenance_cat"), 10, 10));
		$tpl->set('d', 'BRDRT', 0);
		$tpl->set('d', 'BRDRB', 1);
		$tpl->set('d', 'FONT', 'text_medium');
	    $tpl->next(); 
		
		
		
	    
	    $tpl->set('d', 'CATNAME', i18n("Searchresult category"));
	    $tpl->set('d', 'BGCOLOR', $cfg["color"]["table_dark"]);
	    $tpl->set('d', "BORDERCOLOR", $cfg["color"]["table_border"]);
	    $tpl->set('d', 'CATFIELD', formGenerateField ("text", "searchresult_cat", $db->f("searchresult_cat"), 10, 10));
		$tpl->set('d', 'BRDRT', 0);
		$tpl->set('d', 'BRDRB', 1);
		$tpl->set('d', 'FONT', 'text_medium');
	    $tpl->next(); 
		
	    $tpl->set('d', 'CATNAME', i18n("Searchresult article"));
	    $tpl->set('d', 'BGCOLOR', $cfg["color"]["table_dark"]);
	    $tpl->set('d', "BORDERCOLOR", $cfg["color"]["table_border"]);
	    $tpl->set('d', 'CATFIELD', formGenerateField ("text", "searchresult_art", $db->f("searchresult_art"), 10, 10));
		$tpl->set('d', 'BRDRT', 0);
		$tpl->set('d', 'BRDRB', 1);
		$tpl->set('d', 'FONT', 'text_medium');
	    $tpl->next(); 
		
		
		
	    $tpl->set('d', 'CATNAME', i18n("Loginerror category"));
	    $tpl->set('d', 'BGCOLOR', $cfg["color"]["table_dark"]);
	    $tpl->set('d', "BORDERCOLOR", $cfg["color"]["table_border"]);
	    $tpl->set('d', 'CATFIELD', formGenerateField ("text", "loginerror_cat", $db->f("loginerror_cat"), 10, 10));
		$tpl->set('d', 'BRDRT', 0);
		$tpl->set('d', 'BRDRB', 1);
		$tpl->set('d', 'FONT', 'text_medium');
	    $tpl->next(); 
		
	    $tpl->set('d', 'CATNAME', i18n("Loginerror article"));
	    $tpl->set('d', 'BGCOLOR', $cfg["color"]["table_dark"]);
	    $tpl->set('d', "BORDERCOLOR", $cfg["color"]["table_border"]);
	    $tpl->set('d', 'CATFIELD', formGenerateField ("text", "loginerror_art", $db->f("loginerror_art"), 10, 10));
		$tpl->set('d', 'BRDRT', 0);
		$tpl->set('d', 'BRDRB', 1);
		$tpl->set('d', 'FONT', 'text_medium');
	    $tpl->next(); 
		
		
		
	    $tpl->set('d', 'CATNAME', i18n("Activate maintenance mode"));
	    $tpl->set('d', 'BGCOLOR', $cfg["color"]["table_dark"]);
	    $tpl->set('d', "BORDERCOLOR", $cfg["color"]["table_border"]);
	    $tpl->set('d', 'CATFIELD', formGenerateCheckbox ('maintenance_active', 1, $db->f("maintenance_active")));
		$tpl->set('d', 'BRDRT', 0);
		$tpl->set('d', 'BRDRB', 1);
		$tpl->set('d', 'FONT', 'text_medium');
	    $tpl->next(); 
	    
	    $tpl->set('d', 'CATNAME', i18n("Maintenance page category"));
	    $tpl->set('d', 'BGCOLOR', $cfg["color"]["table_dark"]);
	    $tpl->set('d', "BORDERCOLOR", $cfg["color"]["table_border"]);
	    $tpl->set('d', 'CATFIELD', formGenerateField ("text", "maintenance_cat", $db->f("maintenance_cat"), 10, 10));
		$tpl->set('d', 'BRDRT', 0);
		$tpl->set('d', 'BRDRB', 1);
		$tpl->set('d', 'FONT', 'text_medium');
	    $tpl->next(); 
	    
	    $tpl->set('d', 'CATNAME', i18n("Maintenance page article"));
	    $tpl->set('d', 'BGCOLOR', $cfg["color"]["table_dark"]);
	    $tpl->set('d', "BORDERCOLOR", $cfg["color"]["table_border"]);
	    $tpl->set('d', 'CATFIELD', formGenerateField ("text", "maintenance_art", $db->f("maintenance_art"), 10, 10));
		$tpl->set('d', 'BRDRT', 0);
		$tpl->set('d', 'BRDRB', 1);
		$tpl->set('d', 'FONT', 'text_medium');
	    $tpl->next(); 
	    
bei Zeile 188 SQL
"Select * From ......"

bei Zeile 150 neue SQL

Code: Alles auswählen

	            $sql = "UPDATE 
	                    ".$cfg["tab"]["clients"]."
	                    SET
							name = '".Contenido_Security::escapeDB($clientname, $db)."',
							frontendpath = '".Contenido_Security::escapeDB($frontendpath, $db)."',
							htmlpath = '".Contenido_Security::escapeDB($htmlpath, $db)."',
							errsite_cat = '".Contenido_Security::toInteger($errsite_cat)."',
							errsite_art = '".Contenido_Security::toInteger($errsite_art)."',
							searchresult_art = '".Contenido_Security::toInteger($searchresult_art)."',
							searchresult_cat = '".Contenido_Security::toInteger($searchresult_cat)."',
							loginerror_art = '".Contenido_Security::toInteger($loginerror_art)."',
							loginerror_cat = '".Contenido_Security::toInteger($loginerror_cat)."',
							maintenance_active = '".Contenido_Security::toInteger($maintenance_active)."',
							maintenance_art = '".Contenido_Security::toInteger($maintenance_art)."',
							maintenance_cat = '".Contenido_Security::toInteger($maintenance_cat)."'
						WHERE
							idclient = '".Contenido_Security::toInteger($idclient)."'";
bei Zeile 83 neue SQL

Code: Alles auswählen

$sql = "INSERT INTO
	                ".$cfg["tab"]["clients"]."
	                SET
	                    name = '".Contenido_Security::escapeDB($clientname, $db)."',
	                    frontendpath = '".Contenido_Security::escapeDB($frontendpath, $db)."',
	                    htmlpath = '".Contenido_Security::escapeDB($htmlpath, $db)."',
	                    errsite_cat = '".Contenido_Security::toInteger($errsite_cat)."',
	                    errsite_art = '".Contenido_Security::toInteger($errsite_art)."',
	                    idclient = '".Contenido_Security::toInteger($idclient)."',
	                    searchresult_art = '".Contenido_Security::toInteger($searchresult_art)."',
	                    searchresult_cat = '".Contenido_Security::toInteger($searchresult_cat)."',
	                    loginerror_art = '".Contenido_Security::toInteger($loginerror_art)."',
	                    loginerror_cat = '".Contenido_Security::toInteger($loginerror_cat)."',
	                    maintenance_active = '".Contenido_Security::toInteger($maintenance_active)."',
	                    maintenance_art = '".Contenido_Security::toInteger($maintenance_art)."',
	                    maintenance_cat = '".Contenido_Security::toInteger($maintenance_cat)."'";


[[[ BE fertig ]]

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Fr 4. Feb 2011, 20:50
von OliverL
---- front_content.php ----
ab Zeile 250

Code: Alles auswählen

$sql = "SELECT maintenance_active, maintenance_art, maintenance_cat FROM ".$cfg["tab"]["clients"]." WHERE idclient = ".$client." AND maintenance_active = 1";
$db->query($sql);
if( $db->next_record() ) {
	unset( $idart, $idcat, $idcatart );
	$idart = $db->f("maintenance_art");
	$idcat = $db->f("maintenance_cat");
}
[[[ FE fertig ]]]


Nach einem Praxistest kann man gucken was daraus wird.

mfg OliverL

ich wollte die id's mit in die cfgClient hängen. War keine gute Idee. cfgClient wird als session gespeichert und somit keine gute idee. :)

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Sa 5. Feb 2011, 10:29
von Oldperl
Sehr schöne Arbeit Oliver :-)

Könnte, oder sollte, man da evtl. noch ergänzen das Contenido einfach eine Standard-Maintenance-Seite aufruft (in html) wenn die entsprechenden Werte für idcat/idart leer sind, bzw. wenn der entsprechende Maintenanceartikel nicht angelegt/vorhanden/offline, ist?

Gruß aus Franken

Ortwin

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Mo 7. Feb 2011, 08:36
von kummer
für alle die bei google (oder auch anderen indizes) gelistet sind und es auch gerne bleiben möchte: nicht anwenden. die suchmaschinen haben wenig freude daran. mit etwas pech ist der crawler während der maintenance vor ort und dann ist schluss mit position bei google, geschweige denn mit einer guten.

das ganze scheint zunächst hilfreich. aber wann sollte man das anwenden wollen? in einem intranet vielleicht oder nur im geschlossenen bereich. gut. aber dann dürfte es sich auch nur auf diesen auswirken.

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Mo 7. Feb 2011, 09:03
von OliverL
Hi,

@Ortwin: Eine URL zu einer statischen Seite find ich auch gut.
Mal gucken ob ich heute abend daran denke.

mfg OliverL

@Kummer: Gibt es von dir dazu auch einen Vorschlag wie es besser geht?

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Mo 7. Feb 2011, 09:40
von dominik.ziegler
Wenn man die Weiterleitung mit einem Status Code 307 sendet ignoriert Google das, da es als temporäre Weiterleitung erkannt wird.

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Mo 7. Feb 2011, 10:13
von kummer
OliverL hat geschrieben:@Kummer: Gibt es von dir dazu auch einen Vorschlag wie es besser geht?
da war dominik schneller. nach wie vor, würde ich das eher über htaccess lösen, wie eingangs schon mal geschrieben. und zwar einfach deshalb, weil eine maintenance ja bedeutet, dass du was am system vornimmst. was wiederum bedeutet, dass es vorübergehend nicht funktionieren wird. apache ist das zunächst egal, der funktioniert trotzdem. aber contenido wird während eines updates oder eine fehlerkorrektur eben nicht funktionieren. dann hilft dir die beste programmierung nichts. und wenn contenido einwandfrei läuft, brauchst du maintenance ja nicht.

was google tatsächlich macht, wenn die seite nicht erreichbar ist, wissen die götter und ein paar jungs bei google. der rest ist in wirklichkeit seo-kaffesatzlesen. besser als die seiten zuänglich lassen, wird es sicher nicht sein. und wenn man dann umleitet, sollte man auch bezeichnen, wie lange der unterbruch dauern wird. es ist nicht immer zu vermeiden. aber wenn möglich, sollte man es.

dem ton entnehme ich eine gewissen unzufriedenheit. ich vermute es liegt daran, dass ich nicht gleich mit programmcode aufwarte. das hat zwei gründe: a) will ich gar nicht erst ausbreiten. ist auch egal. b) in diesem fall wichtiger: es gibt nichts zu programmieren, da bei einer echten wartung - also wenn man nicht bloss so tut als ob - keine vernünftige möglichkeit besteht, es mit systemimmanenten mitteln zu lösen. da musst du eben eine schicht bemühen, die von der wartung nicht betroffen ist. das ist dann der webserver. in den meisten fällen apache und deshalb sind wir dann wieder bei htaccess. alles andere funktioniert genau dann - oder besser: würde dann funktionieren - wenn es nicht gebraucht wird. und wird dann versagen, wenn man es brauchen würde. aber ich will niemanden im weg stehen. wenn jemand einen anwendungsfall kennt oder vermutet, dann ist ja gut.

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Mo 7. Feb 2011, 10:25
von kummer
dominik.ziegler_4fb hat geschrieben:Wenn man die Weiterleitung mit einem Status Code 307 sendet ignoriert Google das, da es als temporäre Weiterleitung erkannt wird.
die frage ist, was google eher mag: 307 (= keine zeitangabe, wann mit dem ende der maintenance zu rechnen ist) oder 503. ich vermute mal, dass google und co. den header sehen möchten, der genau repräsentiert, was vorliegend ist. das wäre dann allerdings ein 503. 307 ist ja nicht spezifisch. ausserdem besteht beim 507 die möglichkeit anzugeben, wie lange die downtime sein wird (Retry-After-heder).

aber vermutlich werden hier - wie bei seo-fragen nicht untypisch - die meinungen stark auseinander gehen.

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Mo 7. Feb 2011, 10:29
von dominik.ziegler
503 sollte da wohl die bessere Wahl sein.
http://googlewebmastercentral-de.blogsp ... einer.html

Re: [WISH] Wartungsmodus für Frontend

Verfasst: Mo 7. Feb 2011, 11:33
von Dodger77
Ich finde die Lösung per .htaccess auch sinnvoller. Der Wartungsmodus im Backend ist häufig ja noch ganz praktisch, wenn man verhindern will, dass Redakteure während einer Aktualisierung eines Plugins/Moduls o.ä. dazwischen funken.

Wenn man einen Frontend-Wartungsmodus benötigt, halte ich insb. den Rückgriff auf die Datenbank für entsprechende Inhalte und die Einstellungen für problematisch, da ja gar nicht garantiert werden kann, dass auf die Datenbank überhaupt zugegriffen oder ein konfigurierter Artikel wirklich angezeigt werden kann.

Aussehen könnte das per .htaccess z.B. so:

http://25yearsofprogramming.com/blog/20070704.htm