Seite 4 von 6

Re: Wartungsseite

Verfasst: 13.07.2011 00:49
von Talk19zehn
Hello Elsensee, deine Idee ist einfach Klasse! Vielen, vielen Dank für die aufgezeigten Möglichkeiten. :) Sie greifen, wie gewollt. Ich bin wirklich begeistert! Auch ich kann keine Fehlerchen entdecken.

Hello Seemann1965, Elsensee und @All,
ich habe eine Idee, wie man ggf. das Portal berücksichtigen könnte: Diese Anweisung

Code: Alles auswählen

<!-- IF SCRIPT_NAME == "index" and S_BOARD_DISABLED -->
habe ich mal testweise ersetzt durch

Code: Alles auswählen

<!-- IF SCRIPT_NAME == "index" or SCRIPT_NAME == 'portal' and S_BOARD_DISABLED and not S_IN_UCP -->
Test: message_body.html

Code: Alles auswählen

<div class="panel" id="message">
	<div class="inner"><span class="corners-top"><span></span></span>
	<h2>{MESSAGE_TITLE}</h2>
<!-- IF SCRIPT_NAME == "index" or SCRIPT_NAME == 'portal' and S_BOARD_DISABLED and not S_IN_UCP --><div id="disabled-message">{L_MAINTENANCE}</div><!-- ELSEIF not S_BOARD_DISABLED --><p>{MESSAGE_TEXT}</p><!-- ENDIF -->
	<!-- IF SCRIPT_NAME == "search" and not S_BOARD_DISABLED and not S_NO_SEARCH and L_RETURN_TO_SEARCH_ADV --><p><a href="{U_SEARCH}" class="{S_CONTENT_FLOW_BEGIN}">{L_RETURN_TO_SEARCH_ADV}</a></p><!-- ENDIF -->
	<span class="corners-bottom"><span></span></span></div>
</div>
<div class="panel">
	<div class="inner"><span class="corners-top"><span></span></span>
	<!-- IF SCRIPT_NAME == "index" or SCRIPT_NAME == 'portal' and S_BOARD_DISABLED and not S_IN_UCP -->&middot; &nbsp;<div class="bildlinksbalken"><div class="imageboarddisab"></div></div>&middot; &nbsp;<!-- ENDIF -->
	<span class="corners-bottom"><span></span></span></div>
</div>
Ob das jetzt praktikabel ist? Nun greift leider erst einmal die Anweisung
<!-- ELSEIF not S_BOARD_DISABLED --><p>{MESSAGE_TEXT}</p><!-- ENDIF -->
nicht mehr, d.h. die standardisierte Message unterhalb von Information wird nach dem Login im Wartungsmodus gar nicht mehr ausgegeben, sofern ich editiere, einen Beitrag schreibe usw.. Ich komme an der Stelle leider nicht weiter.


:wink: Allerbeste Grüße

Re: Wartungsseite

Verfasst: 13.07.2011 12:09
von Elsensee
Vollkommen richtig:

Code: Alles auswählen

<!-- IF (SCRIPT_NAME == 'index' or SCRIPT_NAME == 'portal') and S_BOARD_DISABLED and not S_IN_UCP -->
(Ich habe hier noch die Klammern hinzugefügt - keine Ahnung warum... einfach rein intuitiv :D )
Talk19zehn hat geschrieben:Ob das jetzt praktikabel ist? Nun greift leider erst einmal die Anweisung
<!-- ELSEIF not S_BOARD_DISABLED --><p>{MESSAGE_TEXT}</p><!-- ENDIF -->
nicht mehr, d.h. die standardisierte Message unterhalb von Information wird nach dem Login im Wartungsmodus gar nicht mehr ausgegeben, sofern ich editiere, einen Beitrag schreibe usw.. Ich komme an der Stelle leider nicht weiter.
Ich wusste doch, dass da was falsch ist. :wink:
Die Nachricht soll ja auch im Wartungsmodus angezeigt werden. Daher ersetze dies:

Code: Alles auswählen

<!-- ELSEIF not S_BOARD_DISABLED -->
durch dies:

Code: Alles auswählen

<!-- ELSE -->
@seemann1965
Die Lösung mit der portal.php findest du über diesem Text. :wink: Aber das mit dem install-Ordner... Lass mich kurz suchen.
Ha! Gefunden - aaalso:
Öffne "functions.php"
Suche

Code: Alles auswählen

          'S_BOARD_DISABLED'        => ($config['board_disable']) ? true : false, 
Ersetze mit

Code: Alles auswählen

          'S_BOARD_DISABLED'        => ($config['board_disable'] || (file_exists($phpbb_root_path . 'install') && !is_file($phpbb_root_path . 'install'))) ? true : false, 

Re: Wartungsseite

Verfasst: 13.07.2011 16:21
von seemann1965
Hallo Elsensee,
liest sich gut, werde es später testen, bin noch auf Arbeit.
Danke für deine Hilfe.

Gruß seemann

Re: Wartungsseite

Verfasst: 13.07.2011 18:49
von Elsensee
Hm - schau mir grade nochmal meinen Code an und denke, dass der in den anderen Templates für Probleme sorgen könnte.

Probier den erstmal aus, wenn er funktioniert ist gut, wenn nicht, öffne functions.php und finde

Code: Alles auswählen

                'S_BOARD_DISABLED'        => ($config['board_disable']) ? true : false, 
dürfte bei dir dann ja

Code: Alles auswählen

                'S_BOARD_DISABLED'        => ($config['board_disable'] || (file_exists($phpbb_root_path . 'install') && !is_file($phpbb_root_path . 'install'))) ? true : false, 
sein :wink: und füge danach ein

Code: Alles auswählen

                'S_INSTALL_DIR_EXISTS'    => (file_exists($phpbb_root_path . 'install') && !is_file($phpbb_root_path . 'install')) ? true : false, 
Die andere Zeile sollte natürlich wieder geändert werden. :wink:

Jetzt kannst du in den Templates auf die Variable "S_INSTALL_DIR_EXISTS" zugreifen und so testen, ob das install-Verzeichnis existiert. So würde ich dir dann vorschlagen, anstelle von

Code: Alles auswählen

<!-- IF (SCRIPT_NAME == 'index' or SCRIPT_NAME == 'portal') and S_BOARD_DISABLED and not S_IN_UCP -->
das hier

Code: Alles auswählen

<!-- IF (SCRIPT_NAME == 'index' or SCRIPT_NAME == 'portal') and (S_BOARD_DISABLED or S_INSTALL_DIR_EXISTS) and not S_IN_UCP -->
zu verwenden. Die anderen Templates behalten dann weiterhin ihre volle Funktionalität. :wink:

Re: Wartungsseite

Verfasst: 13.07.2011 19:35
von seemann1965
Hallo Elsensee,
vielen, vielen Dank!!!
Genau so hab ichs mir vorgestellt, super.
Die Wartungsseite gehört zwar zur Kategorie "Dinge die die Welt nicht baucht",
aber mich stimmt es froh.

Gruß seemann

Re: Wartungsseite

Verfasst: 13.07.2011 19:54
von Talk19zehn
Gratulation!! Mein Fall ist erst einmal gelöst, denke ich.

Also ich finde, dass eine derartige Seitenansicht durchaus zweckmäßig ist. Es macht doch was her, eine schöne Grafik online zu stellen, einen Zusatztext auszugeben, wenn sich die Seite im Wartungsmodus befindet. Sich vom Standard zu unterscheiden, kann nicht so verkehrt sein. :wink:

Allerbeste Grüße


PS.:
Danke dir Elsensee für die "intuitiven Klammern" und "else"........., - da war doch was....... :wink:

Re: Wartungsseite

Verfasst: 14.07.2011 00:40
von lancic50
Hallo Leute,

hab mir das jetzt durchgelesen und bin irgendwie nicht hinterher gekommen :oops: .
Wenn das Board deaktiviert ist, möchte ich auch ein Bild angezeigt bekommen oder wenn ein install-Ordner auf den Webspace ist.

Habe auch eine portalseite und da müsste es auch angezeigt werden. Eigentlich worden ja die Punkte schon angeführt, aber ich blicke nicht durch.

Kann das einer nochmal in einen Thread zusammenfügen, was alles gemacht werden muss?

Edit: Und gibt es auch da eine Möglichkeit, wenn das Forum keine Verbindung zur Datenbank hat, dass auch eine Seite angezeigt wird mit Bild?

Re: Wartungsseite

Verfasst: 14.07.2011 10:48
von Elsensee
Ich denke nicht, dass es möglich ist, eine Seite anzuzeigen, wenn die DB nicht erreichbar ist. (Zumal das phpBB selbst ja schon macht :wink: )

Möchtest du nur das Bild anzeigen, wenn das Board deaktiviert ist, oder möchtest du noch einen Text dabei stehen haben?

Re: Wartungsseite

Verfasst: 15.07.2011 11:49
von modernist
Elsensee hat geschrieben:Ich denke nicht, dass es möglich ist, eine Seite anzuzeigen, wenn die DB nicht erreichbar ist.
Man kann aber in der functions.php die Ausgabe der Fehlerseite anpassen:

Code: Alles auswählen

			// Try to not call the adm page data...

			echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
			echo '<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">';
			echo '<head>';
			echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
			echo '<title>' . $msg_title . '</title>';
....
			echo '	</div>';
			echo '</div>';
			echo '</body>';
			echo '</html>';
Hier kann man dann - HTML/CSS-Kenntnisse vorausgesetzt - durchaus die Fehlermeldung dem Aussehen des Forums anpassen. Oder man macht gleich mit meta http-equiv="refresh" eine Weiterleitung zu einer frei gestalteten HTML-Seite. Das hat aber den Nachteil, daß die Fehlermeldung nicht mehr auftaucht. Aber da sich das meistens eh kaum ein Nutzer kopiert, ist das vielleicht auch entbehrlich.

Nachtrag:
Ich habe das mal für meine Seite mit ein paar CSS-Änderungen umgesetzt. Die Fehlermeldung sieht nun so aus: http://img823.imageshack.us/img823/1763/errorpage.png

Re: Wartungsseite

Verfasst: 15.07.2011 13:38
von Elsensee
Hier findet ihr die Zusammenfassung des Threads.
Ich möchte an dieser Stelle allen Beteiligten, wie seemann1965, modernist, o_spacy_o und Talk19zehn danken. :)

Allgemeine Änderungen und Änderungen für prosilver

Öffne:
language/de/common.php

Suche:

Code: Alles auswählen

    'MARK_FORUMS_READ'        => 'Alle Foren als gelesen markieren',    
Danach einfügen:

Code: Alles auswählen

    'MAINTENANCE'            => 'Hier steht der Text, den du anzeigen möchtest.',    
Diese Änderung musst du für jede andere Sprache ebenfalls durchführen (überall natürlich mit angepasstem Text).

Öffne: styles/prosilver/theme/colours.css
Am Ende hinzufügen:

Code: Alles auswählen

#disabled-message { font-weight: bold; color: #D80000; }
Du kannst den Text in den Klammern beliebig anpassen. (Schriftgröße verändern, Schriftarbe verändern, usw.)

Am Ende hinzufügen:

Code: Alles auswählen

.imageboarddisab {
       width: 500px;
       height: 250px;
       margin: 0px auto;
       background-image: url("{T_THEME_PATH}/images/dein_bildname.jpg");
}
Hier heißt das Bild, welches angezeigt werden soll "dein_bildname.jpg", liegt im Verzeichnis "styles/prosilver/theme/images/", ist 500px hoch und 250px breit.
Falls du kein Bild anzeigen möchtest, kannst du diesen Schritt auch weglassen.


Öffne: styles/prosilver/template/message_body.html
Suche:

Code: Alles auswählen

	<p>{MESSAGE_TEXT}</p>
Ersetze mit:

Code: Alles auswählen

<!-- IF SCRIPT_NAME == 'index' and S_BOARD_DISABLED --><div id="disabled-message">{L_MAINTENANCE}</div><!-- ELSE --><p>{MESSAGE_TEXT}</p><!-- ENDIF -->
Falls dies auch bei einem eventuell existierenden Portal stehen soll, ersetze es mit:

Code: Alles auswählen

<!-- IF (SCRIPT_NAME == 'index' or SCRIPT_NAME == 'portal') and S_BOARD_DISABLED --><div id="disabled-message">{L_MAINTENANCE}</div><!-- ELSE --><p>{MESSAGE_TEXT}</p><!-- ENDIF -->
Falls du ein Bild anzeigen möchtest:
Suche:

Code: Alles auswählen

	<span class="corners-bottom"><span></span></span></div>
</div>
Danach einfügen:

Code: Alles auswählen

<!-- IF SCRIPT_NAME == 'index' and S_BOARD_DISABLED --><div class="panel">
	<div class="inner"><span class="corners-top"><span></span></span>
	<br /><div class="imageboarddisab"></div><br /> 
	<span class="corners-bottom"><span></span></span></div>
</div><!-- ENDIF -->
Auch hier gilt: Möchtest du es ggf. auch im Portal anzeigen, ändere dies:

Code: Alles auswählen

SCRIPT_NAME == 'index'
in dies:

Code: Alles auswählen

(SCRIPT_NAME == 'index' or SCRIPT_NAME == 'portal')
Hinweis: Dies gilt nur, wenn du das Board aus dem Admin-Menü deaktiviert hast. Sofern der Text (und ggf. das Bild) auch angezeigt werden sollen, wenn du das install-Verzeichnis hochlädst, ersetze alle hinzugefügten

Code: Alles auswählen

S_BOARD_DISABLED
mit

Code: Alles auswählen

(S_BOARD_DISABLED or S_INSTALL_DIR_EXISTS)
Außerdem muss folgendes getan werden:[/i]
Öffne: includes/functions.php
Suche:

Code: Alles auswählen

        'S_BOARD_DISABLED'        => ($config['board_disable']) ? true : false,   
Danach einfügen:

Code: Alles auswählen

        'S_INSTALL_DIR_EXISTS'    => (file_exists($phpbb_root_path . 'install') && !is_file($phpbb_root_path . 'install')) ? true : false,   
Vergesst nicht, nach dem Hochladen den Board-Cache (insbesondere den Style-Cache) zu löschen.
Änderungen für subsilver2

Öffne:
styles/subsilver2/theme/stylesheet.css
Am Ende hinzufügen:

Code: Alles auswählen

    #disabled-message { font-weight: bold; color: #D80000; }
Du kannst den Text in den Klammern beliebig anpassen. (Schriftgröße verändern, Schriftfarbe verändern, usw.)

Am Ende hinzufügen:

Code: Alles auswählen

.imageboarddisab {
       width: 500px;
       height: 250px;
       margin: 0px auto;
       background-image: url("{T_THEME_PATH}/images/dein_bildname.jpg");
}
Hier heißt das Bild, welches angezeigt werden soll "dein_bildname.jpg", liegt im Verzeichnis "styles/subsilver2/theme/images/", ist 500px hoch und 250px breit.
Falls du kein Bild anzeigen möchtest, kannst du diesen Schritt auch weglassen.


Öffne: styles/subsilver2/template/message_body.html
Suche:

Code: Alles auswählen

    <td class="row1" align="center"><br /><p class="gen">{MESSAGE_TEXT}</p><br /></td>
Ersetze mit:

Code: Alles auswählen

    <td class="row1" align="center"><br /><!-- IF SCRIPT_NAME == 'index' and S_BORD_DISABLED --><p id="disabled-message">{L_MAINTENANCE}</p><!-- ELSE --><p class="gen">{MESSAGE_TEXT}</p><!-- ENDIF --><br /></td>
Falls dies auch bei einem eventuell existierenden Portal stehen soll, ersetze es mit:

Code: Alles auswählen

    <td class="row1" align="center"><br /><!-- IF (SCRIPT_NAME == 'index' or SCRIPT_NAME == 'portal') and S_BORD_DISABLED --><p id="disabled-message">{L_MAINTENANCE}</p><!-- ELSE --><p class="gen">{MESSAGE_TEXT}</p><!-- ENDIF --><br /></td>
Falls du ein Bild anzeigen möchtest:
Suche:

Code: Alles auswählen

</p><!-- ENDIF --><br /></td>
</tr>
Danach einfügen:

Code: Alles auswählen

<!-- IF SCRIPT_NAME == 'index' and S_BOARD_DISABLED --><tr>
    <td class="row1" align="center"><br /><p class="imageboarddisab"></p><br /></td>
</tr><!-- ENDIF -->
Auch hier gilt: Möchtest du es ggf. auch im Portal anzeigen, ändere dies:

Code: Alles auswählen

SCRIPT_NAME == 'index'
in dies

Code: Alles auswählen

(SCRIPT_NAME == 'index' or SCRIPT_NAME == 'portal')
Hinweis: Dies gilt nur, wenn du das Board aus dem Admin-Menü deaktiviert hast. Sofern der Text (und ggf. das Bild) auch angezeigt werden sollen, wenn du das install-Verzeichnis hochlädst, ersetze alle hinzugefügten

Code: Alles auswählen

S_BOARD_DISABLED
mit

Code: Alles auswählen

(S_BOARD_DISABLED or S_INSTALL_DIR_EXISTS)
---

Ein besonderes Dankeschön geht nun noch (nochmals) an Talk19zehn, der mir geholfen hat, diese Zusammenfassung zu schreiben. :)

Ich hoffe die Anleitung ist verständlich. :D