Ungelesene Beiträge als Popup-Fenster

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Knowhow-Sauger
Mitglied
Beiträge: 656
Registriert: 18.05.2012 07:06

Ungelesene Beiträge als Popup-Fenster

Beitrag von Knowhow-Sauger »

Hallo Freunde,

wenn man neue Beiträge lesen möchte, muss man ja immer wieder auf "ungelesene Beiträge" klicken.
Viel leichter wäre es daher, wenn unten rechts ein kleines PopUp-Fenster eingeblendet wird, wo man sofort alle ungelesenen Threads auf einen Blick hat.
Gibt es sowas? :)
DANKE!
Forum für Freunde kurzer Hosen: http://www.kurzehosenforum.com
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Ungelesene Beiträge als Popup-Fenster

Beitrag von Miriam »

Wäre es nicht sinnvoller, den Link zu den ungelesenen Beiträgen an eine besser zugängliche Stelle umzusetzen?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7892
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Ungelesene Beiträge als Popup-Fenster

Beitrag von Kirk »

Hallo
Probier mal das hier:
Erstelle eine Datei Namens unread_posts.php mit folgendem Inhalt:
https://www.phpbb.de/support/pastebin.p ... iew&s=1360
Lade diese Datei in deinen Forenroot

Erstelle eine Datei Namens unread_posts.html mit folgendem Inhalt:

Code: Alles auswählen

<!-- INCLUDE simple_header.html -->
    <meta http-equiv="refresh" content="30">
<!-- IF S_SHOW_TOPICS -->

	<!-- IF .searchresults -->
	<div class="forumbg">

		<div class="inner"><span class="corners-top"><span></span></span>
		<ul class="topiclist">
			<li class="header">
				<dl class="icon">
					<dt>{L_TOPICS}</dt>
					<dd class="posts">{L_REPLIES}</dd>
					<dd class="views">{L_VIEWS}</dd>
					<dd class="lastpost"><span>{L_LAST_POST}</span></dd>
				</dl>
			</li>
		</ul>
		<ul class="topiclist topics">

		<!-- BEGIN searchresults -->
			<li class="row<!-- IF searchresults.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF -->">
				<dl class="icon" style="background-image: url({searchresults.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
					<dt <!-- IF searchresults.TOPIC_ICON_IMG -->style="background-image: url({T_ICONS_PATH}{searchresults.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF -->>
						<!-- IF searchresults.S_UNREAD_TOPIC --><a href="{searchresults.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF -->
						<a href="{searchresults.U_VIEW_TOPIC}" class="topictitle">{searchresults.TOPIC_TITLE}</a> {searchresults.ATTACH_ICON_IMG}
						<!-- IF searchresults.S_TOPIC_UNAPPROVED or searchresults.S_POSTS_UNAPPROVED --><a href="{searchresults.U_MCP_QUEUE}">{searchresults.UNAPPROVED_IMG}</a> <!-- ENDIF -->
						<!-- IF searchresults.S_TOPIC_REPORTED --><a href="{searchresults.U_MCP_REPORT}">{REPORTED_IMG}</a><!-- ENDIF --><br />
						<!-- IF searchresults.PAGINATION --><strong class="pagination"><span>{searchresults.PAGINATION}</span></strong><!-- ENDIF -->
						{L_POST_BY_AUTHOR} {searchresults.TOPIC_AUTHOR_FULL} &raquo; {searchresults.FIRST_POST_TIME}
						<!-- IF not searchresults.S_TOPIC_GLOBAL -->{L_IN} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a><!-- ELSE --> ({L_GLOBAL})<!-- ENDIF -->
					</dt>
					<dd class="posts">{searchresults.TOPIC_REPLIES}</dd>
					<dd class="views">{searchresults.TOPIC_VIEWS}</dd>
					<dd class="lastpost"><span>
						{L_POST_BY_AUTHOR} {searchresults.LAST_POST_AUTHOR_FULL}
						<!-- IF not S_IS_BOT --><a href="{searchresults.U_LAST_POST}">{LAST_POST_IMG}</a> <!-- ENDIF --><br />{searchresults.LAST_POST_TIME}<br /> </span>
					</dd>
				</dl>
			</li>
		<!-- END searchresults -->
		</ul>

		<span class="corners-bottom"><span></span></span></div>
	</div>
	<!-- ELSE -->
		<div class="panel">
			<div class="inner"><span class="corners-top"><span></span></span>
			<strong>{L_NO_SEARCH_RESULTS}</strong>
			<span class="corners-bottom"><span></span></span></div>
		</div>
	<!-- ENDIF -->
	<!-- ENDIF -->
<!-- INCLUDE simple_footer.html -->
Das hier <meta http-equiv="refresh" content="30"> bedeutet das dieses Popup-Fenster alle 3 Sek. aktualisiert.
Lade diese Datei in deinen template Ordner deines Styles.

Öffne: root/styles/stylename/template/overall_header.html

Finde:

Code: Alles auswählen

</head>
Davor einfügen:

Code: Alles auswählen

<script type="text/javascript" language="JavaScript">
<!--
function AutoPopUp() {

var dateiname = "{U_SEARCH_UNREAD_POSTS}";

eigenschaften= "left=10,top=10,";
eigenschaften= eigenschaften + "width=200,height=100,"

// hier andere Fenstereigenschaften festlegen:
// für ja den Wert von Null auf Eins ändern

eigenschaften= eigenschaften + "menubar=0";     // Menüleiste
eigenschaften= eigenschaften + "toolbar=0";     // Symbolleiste
eigenschaften= eigenschaften + "statusbar=0";   // Statuszeile
eigenschaften= eigenschaften + "scrollbars=yes";  // Scrollbars
eigenschaften= eigenschaften + "resizable=yes";   // Größe veränderbar
eigenschaften= eigenschaften + "locationbar=0"; // Adresszeile
eigenschaften= eigenschaften + "directories=0"; // Linkleiste


fenster04 = window.open(dateiname,"Titeltext",eigenschaften);
fenster04.focus();
}

window.setTimeout('AutoPopUp()', 4000);

//-->
</script>
Das hier window.setTimeout('AutoPopUp()', 4000); bedeutet das sich das Fenster nach 4 Sek. automatisch öffnet.
Die Position und Größe dieses Popup-Fensters kannst du in diesem Script nach belieben anpassen.

Öffne: root/includes/funtions.php

Finde:

Code: Alles auswählen

        'U_SEARCH_UNREAD'        => append_sid("{$phpbb_root_path}search.$phpEx", 'search_id=unreadposts'),
Danach einfügen:

Code: Alles auswählen

        'U_SEARCH_UNREAD_POSTS'    => append_sid("{$phpbb_root_path}unread_posts.$phpEx", 'search_id=unreadposts'),
Zum Schluß noch alle Cache leeren!
Knowhow-Sauger
Mitglied
Beiträge: 656
Registriert: 18.05.2012 07:06

Re: Ungelesene Beiträge als Popup-Fenster

Beitrag von Knowhow-Sauger »

Hallo Kirk,

erstmal ganz herzlichen Dank für die Mühe! :)

Jedoch meinte ich kein separates Fenster, sondern ein Button der unten rechts eingeblendet wird und der fixiert ist (der also auch beim scrollen nicht verschwindet).
So sollte es aussehen:
http://www.kurzehosenforum.com/screenhot-ub.png
Dass unten rechts also immer die ungelesenen Beiträge stehen. Ist doch praktisch, so kann man gleich von einem ungelesenen Thread zum Nächsten springen. So wie es jetzt ist, muss man ja immer wieder zuerst auf "ungelesene Beiträge" klicken.

Und leider funktioniert Deine Variante nicht. Ich bekomme folgende Fehlermeldung angezeigt:
In dem sich öffnenden Popup-Fenster steht:

Parse error: syntax error, unexpected $end in /home/.sites/110/site2750/web/cache/tpl_prosilver_unread_posts.html.php on line 13 :oops:

Vielleicht könntest Du nochmal schauen.

DANKE! :)
Forum für Freunde kurzer Hosen: http://www.kurzehosenforum.com
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7892
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Ungelesene Beiträge als Popup-Fenster

Beitrag von Kirk »

Der Fehler liegt bei dir. :wink:
Deine unread_posts.html

Code: Alles auswählen

<!-- INCLUDE simple_header.html -->
    <meta http-equiv="refresh" content="30">
<!-- IF S_SHOW_TOPICS -->

   <!-- IF .searchresults -->
   <div class="forumbg">

      <div class="inner"><span class="corners-top"><span></span></span>
      <ul class="topiclist">
         <li class="header">
            <dl class="icon">
               <dt>{L_TOPICS}</dt>
               <dd class="posts">{L_REPLIES}</dd>
Meine unread_posts.html

Code: Alles auswählen

<!-- INCLUDE simple_header.html -->
    <meta http-equiv="refresh" content="30">
<!-- IF S_SHOW_TOPICS -->

   <!-- IF .searchresults -->
   <div class="forumbg">

      <div class="inner"><span class="corners-top"><span></span></span>
      <ul class="topiclist">
         <li class="header">
            <dl class="icon">
               <dt>{L_TOPICS}</dt>
               <dd class="posts">{L_REPLIES}</dd>
               <dd class="views">{L_VIEWS}</dd>
               <dd class="lastpost"><span>{L_LAST_POST}</span></dd>
            </dl>
         </li>
      </ul>
      <ul class="topiclist topics">

      <!-- BEGIN searchresults -->
         <li class="row<!-- IF searchresults.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF -->">
            <dl class="icon" style="background-image: url({searchresults.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
               <dt <!-- IF searchresults.TOPIC_ICON_IMG -->style="background-image: url({T_ICONS_PATH}{searchresults.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF -->>
                  <!-- IF searchresults.S_UNREAD_TOPIC --><a href="{searchresults.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF -->
                  <a href="{searchresults.U_VIEW_TOPIC}" class="topictitle">{searchresults.TOPIC_TITLE}</a> {searchresults.ATTACH_ICON_IMG}
                  <!-- IF searchresults.S_TOPIC_UNAPPROVED or searchresults.S_POSTS_UNAPPROVED --><a href="{searchresults.U_MCP_QUEUE}">{searchresults.UNAPPROVED_IMG}</a> <!-- ENDIF -->
                  <!-- IF searchresults.S_TOPIC_REPORTED --><a href="{searchresults.U_MCP_REPORT}">{REPORTED_IMG}</a><!-- ENDIF --><br />
                  <!-- IF searchresults.PAGINATION --><strong class="pagination"><span>{searchresults.PAGINATION}</span></strong><!-- ENDIF -->
                  {L_POST_BY_AUTHOR} {searchresults.TOPIC_AUTHOR_FULL} &raquo; {searchresults.FIRST_POST_TIME}
                  <!-- IF not searchresults.S_TOPIC_GLOBAL -->{L_IN} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a><!-- ELSE --> ({L_GLOBAL})<!-- ENDIF -->
               </dt>
               <dd class="posts">{searchresults.TOPIC_REPLIES}</dd>
               <dd class="views">{searchresults.TOPIC_VIEWS}</dd>
               <dd class="lastpost"><span>
                  {L_POST_BY_AUTHOR} {searchresults.LAST_POST_AUTHOR_FULL}
                  <!-- IF not S_IS_BOT --><a href="{searchresults.U_LAST_POST}">{LAST_POST_IMG}</a> <!-- ENDIF --><br />{searchresults.LAST_POST_TIME}<br /> </span>
               </dd>
            </dl>
         </li>
      <!-- END searchresults -->
      </ul>

      <span class="corners-bottom"><span></span></span></div>
   </div>
   <!-- ELSE -->
      <div class="panel">
         <div class="inner"><span class="corners-top"><span></span></span>
         <strong>{L_NO_SEARCH_RESULTS}</strong>
         <span class="corners-bottom"><span></span></span></div>
      </div>
   <!-- ENDIF -->
   <!-- ENDIF -->
<!-- INCLUDE simple_footer.html -->
Was das andere anbelangt, schau wie du das link an der Seite eingebaut hast, so baust du es recht ein
und setzt den Code von der unread_posts.html dann dort rein.
Knowhow-Sauger
Mitglied
Beiträge: 656
Registriert: 18.05.2012 07:06

Re: Ungelesene Beiträge als Popup-Fenster

Beitrag von Knowhow-Sauger »

Ich kann zwischen den beiden Dateien keine Unterschiede feststellen. Ich habe 3x die beiden Datein verglichen. Wo soll da der Fehler sein? :oops:
Forum für Freunde kurzer Hosen: http://www.kurzehosenforum.com
Knowhow-Sauger
Mitglied
Beiträge: 656
Registriert: 18.05.2012 07:06

Re: Ungelesene Beiträge als Popup-Fenster

Beitrag von Knowhow-Sauger »

Der Code ist falsch. In dem Popup-Fenster steht:
Parse error: syntax error, unexpected $end in /home/.sites/110/site2750/web/cache/tpl_prosilver_unread_posts.html.php on line 13
Wäre nett wenn Du mir nochmal helfen könntest. Danke. :)
Forum für Freunde kurzer Hosen: http://www.kurzehosenforum.com
Verschoben von phpBB 3.0: Mod Suche/Anfragen nach phpBB 3.0: Mod-Bastelstube am 03.12.2013 17:21 durch Kirk

Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7892
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Ungelesene Beiträge als Popup-Fenster

Beitrag von Kirk »

Knowhow-Sauger hat geschrieben:Ich kann zwischen den beiden Dateien keine Unterschiede feststellen.
Wirklich nicht? Vergleiche es nochmal hier
Knowhow-Sauger hat geschrieben:Der Code ist falsch. In dem Popup-Fenster steht
Der Code ist schon richtig, habe es ja vorher getestet.

Nachtrag:
Man sollte dieses Script in der overall_header.html zwischen ein IF Statement setzen, damit die Gäste
kein Popup-Fenster zu sehen bekommen, weil deine Gäste nicht das Recht haben auf Ungelesene Beiträge zu gehen.
Knowhow-Sauger
Mitglied
Beiträge: 656
Registriert: 18.05.2012 07:06

Re: Ungelesene Beiträge als Popup-Fenster

Beitrag von Knowhow-Sauger »

Hallo Kirk,

es tut mir wirklich Leid, aber ich kann immer noch keine Unterschiede zwischen den beiden Dateien entdecken!
Und ich bin extra nochmal beide Dateien GANZ gründlich durchgegangen. Sorry, aber WO soll da bitte der Fehler sein? Und wo soll der Fehler überhaupt her kommen? Ich habe die Datei genau so kopiert wie Du sie mir geschickt hast. Ich habe nichts verändert.
:oops: :cry:
Forum für Freunde kurzer Hosen: http://www.kurzehosenforum.com
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7892
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: Ungelesene Beiträge als Popup-Fenster

Beitrag von Kirk »

Wenn ich diesen Link aufrufe und mir den Quelltext anzeigen lasse, sehe ich folgendes:

Code: Alles auswählen

<!-- INCLUDE simple_header.html -->
    <meta http-equiv="refresh" content="30">
<!-- IF S_SHOW_TOPICS -->

   <!-- IF .searchresults -->
   <div class="forumbg">

      <div class="inner"><span class="corners-top"><span></span></span>
      <ul class="topiclist">
         <li class="header">
            <dl class="icon">
               <dt>{L_TOPICS}</dt>
               <dd class="posts">{L_REPLIES}</dd>
Und so sollte die unread_posts.html aussehen:

Code: Alles auswählen

<!-- INCLUDE simple_header.html -->
    <meta http-equiv="refresh" content="30">
<!-- IF S_SHOW_TOPICS -->

   <!-- IF .searchresults -->
   <div class="forumbg">

      <div class="inner"><span class="corners-top"><span></span></span>
      <ul class="topiclist">
         <li class="header">
            <dl class="icon">
               <dt>{L_TOPICS}</dt>
               <dd class="posts">{L_REPLIES}</dd>
               <dd class="views">{L_VIEWS}</dd>
               <dd class="lastpost"><span>{L_LAST_POST}</span></dd>
            </dl>
         </li>
      </ul>
      <ul class="topiclist topics">

      <!-- BEGIN searchresults -->
         <li class="row<!-- IF searchresults.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF -->">
            <dl class="icon" style="background-image: url({searchresults.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
               <dt <!-- IF searchresults.TOPIC_ICON_IMG -->style="background-image: url({T_ICONS_PATH}{searchresults.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF -->>
                  <!-- IF searchresults.S_UNREAD_TOPIC --><a href="{searchresults.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF -->
                  <a href="{searchresults.U_VIEW_TOPIC}" class="topictitle">{searchresults.TOPIC_TITLE}</a> {searchresults.ATTACH_ICON_IMG}
                  <!-- IF searchresults.S_TOPIC_UNAPPROVED or searchresults.S_POSTS_UNAPPROVED --><a href="{searchresults.U_MCP_QUEUE}">{searchresults.UNAPPROVED_IMG}</a> <!-- ENDIF -->
                  <!-- IF searchresults.S_TOPIC_REPORTED --><a href="{searchresults.U_MCP_REPORT}">{REPORTED_IMG}</a><!-- ENDIF --><br />
                  <!-- IF searchresults.PAGINATION --><strong class="pagination"><span>{searchresults.PAGINATION}</span></strong><!-- ENDIF -->
                  {L_POST_BY_AUTHOR} {searchresults.TOPIC_AUTHOR_FULL} &raquo; {searchresults.FIRST_POST_TIME}
                  <!-- IF not searchresults.S_TOPIC_GLOBAL -->{L_IN} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a><!-- ELSE --> ({L_GLOBAL})<!-- ENDIF -->
               </dt>
               <dd class="posts">{searchresults.TOPIC_REPLIES}</dd>
               <dd class="views">{searchresults.TOPIC_VIEWS}</dd>
               <dd class="lastpost"><span>
                  {L_POST_BY_AUTHOR} {searchresults.LAST_POST_AUTHOR_FULL}
                  <!-- IF not S_IS_BOT --><a href="{searchresults.U_LAST_POST}">{LAST_POST_IMG}</a> <!-- ENDIF --><br />{searchresults.LAST_POST_TIME}<br /> </span>
               </dd>
            </dl>
         </li>
      <!-- END searchresults -->
      </ul>

      <span class="corners-bottom"><span></span></span></div>
   </div>
   <!-- ELSE -->
      <div class="panel">
         <div class="inner"><span class="corners-top"><span></span></span>
         <strong>{L_NO_SEARCH_RESULTS}</strong>
         <span class="corners-bottom"><span></span></span></div>
      </div>
   <!-- ENDIF -->
   <!-- ENDIF -->
<!-- INCLUDE simple_footer.html -->
Wenn du jetzt die beiden vergleichst, dann siehst du das bei deinem Code einiges fehlt.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“