[WISH] Wartungsmodus für Frontend

Ideen für neue Funktionen in CONTENIDO?
Antworten
rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

[WISH] Wartungsmodus für Frontend

Beitrag von rethus » Do 27. Jan 2011, 13:40

Fürs Backend gibt es unter Administration >> Experteneinstellungen den Wartungsmodus für das backend.
Gleiches wäre für das Frontend sinnvoll.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von Oldperl » Do 27. Jan 2011, 13:43

:arrow: Verschoben! ...und nach Oben auf Forentitel zeig 8)

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von kummer » Do 27. Jan 2011, 14:14

htaccess heisst das zauberwort. ist ja nun ein klacks.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von OliverL » Fr 4. Feb 2011, 19:12

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

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von OliverL » Fr 4. Feb 2011, 20:49

---- 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 ]]

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von OliverL » Fr 4. Feb 2011, 20:50

---- 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. :)

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von Oldperl » Sa 5. Feb 2011, 10:29

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
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von kummer » Mo 7. Feb 2011, 08:36

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.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von OliverL » Mo 7. Feb 2011, 09:03

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?

dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: [WISH] Wartungsmodus für Frontend

Beitrag von dominik.ziegler » Mo 7. Feb 2011, 09:40

Wenn man die Weiterleitung mit einem Status Code 307 sendet ignoriert Google das, da es als temporäre Weiterleitung erkannt wird.
Viele Grüße
Dominik

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von kummer » Mo 7. Feb 2011, 10:13

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.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von kummer » Mo 7. Feb 2011, 10:25

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.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: [WISH] Wartungsmodus für Frontend

Beitrag von dominik.ziegler » Mo 7. Feb 2011, 10:29

503 sollte da wohl die bessere Wahl sein.
http://googlewebmastercentral-de.blogsp ... einer.html
Viele Grüße
Dominik

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: [WISH] Wartungsmodus für Frontend

Beitrag von Dodger77 » Mo 7. Feb 2011, 11:33

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

Antworten