"Foren als gelesen markieren" in Schnellstart

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
uwe.ha
Mitglied
Beiträge: 834
Registriert: 18.05.2001 02:00

"Foren als gelesen markieren" in Schnellstart

Beitrag von uwe.ha »

Hallo zusammen,

in meine ext möchte ich den Link "Foren als gelesen markieren" in den Schnellzugriff integrieren.
Den passenden EVENT (navbar_header_quick_links_bevore) habe ich auch schon gefunden.
In meiner navbar_header_quick_links_bevore.html habe ich dann stehen:

Code: Alles auswählen

<!-- IF S_USER_LOGGED_IN -->
<li class="small-icon icon-search-new"><a href="{U_MARK_FORUMS}" data-ajax="mark_forums_read">{L_MARK_FORUMS_READ}</a></li>
<!-- ENDIF -->
Nur leider funktioniert das nicht richtig, bzw. von der index.php aus, funktioniert es, aber in der viewforum oder viewtopic nicht.
Im Detail:
in der index.php wird aus dem o.g. Code:

Code: Alles auswählen

http://www.meineseite.de/phpBB/index.php?hash=6efbe7fc&mark=forums&mark_time=1435303890
Das funktioniert. Es kommt auch die Bestätigungsmeldung.

In der viewforum.php wird aus dem Code:

Code: Alles auswählen

http://www.meineseite.de/phpBB/viewforum.php?hash=6efbe7fc&f=80&mark=forums&mark_time=1435304136
und in der viewtopic:

Code: Alles auswählen

http://www.carving-ski.de/phpBB/viewtopic.php?f=7&t=13100
Also irgendwie ist der Link immer relativ bzw. abhängig von der aufgerufenen url.

Wie müsste der Code in meiner navbar_header_quick_links_bevore.html lauten, damit er immer funktioniert?

DANKE!
Uwe
Benutzeravatar
Talk19zehn
Ehemaliges Teammitglied
Beiträge: 4920
Registriert: 08.06.2009 12:03
Kontaktdaten:

Re: "Foren als gelesen markieren" in Schnellstart

Beitrag von Talk19zehn »

Moin, moin, - spontan meine ich, dass in deinem IF-Statement die Anweisung U_MARK_FORUMS fehlt.
Also denkbar:
and U_MARK_FORUMS

Ungetestet!

LG
Beste Grüße
phpBB3 Designs: Stylearea Ongray-Designs
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: "Foren als gelesen markieren" in Schnellstart

Beitrag von gn#36 »

Du hast mindestens einen Tippfehler im Dateinamen: bevore sollte before sein. Schau ggf. noch mal in die Eventliste wie das Event korrekt heißt.

Der Link sollte auch ohne die Abfrage, ob der Link vorhanden ist angezeigt werden. Aber es ist sinnvoller das mitabzufragen, denn wenn der Link aus welchen Gründen auch immer unbefüllt ist, dann wird er in dem Fall einfach nicht angezeigt.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
uwe.ha
Mitglied
Beiträge: 834
Registriert: 18.05.2001 02:00

Re: "Foren als gelesen markieren" in Schnellstart

Beitrag von uwe.ha »

bevore - before ... war nur Tippfehler. Auf Srever ist es korrekt. Der Link wird ja auch angezeigt, funktioniert halt aber NUR auf der index.php, und nicht auf viewforum oder viewtopic.
Und bei

Code: Alles auswählen

<!-- IF not S_IS_BOT and U_MARK_FORUMS -->
<li class="small-icon icon-search-new"><a href="{U_MARK_FORUMS}" data-ajax="mark_forums_read">X L_MARK_FORUMS_READ}</a></li>
<!-- ENDIF -->
(gleicher Code, wie in der viewforum_body.html) wird der Link erst garnicht angezeigt.
Uwe
Benutzeravatar
Talk19zehn
Ehemaliges Teammitglied
Beiträge: 4920
Registriert: 08.06.2009 12:03
Kontaktdaten:

Re: "Foren als gelesen markieren" in Schnellstart

Beitrag von Talk19zehn »

Hm, das ist doch richtig, denn in der viewforum sind es Themen und Subforen, um die deine Codierung noch ergänzt werden müsste, denke ich banal. Vermissen tue ich im Konstrukt intuitiv: accesskey="m"

und evtl. doch noch eine IF-Bedingung für den BOT.
Das X ist jetzt nur ein Tippselfehlerchen?
uwe.ha hat geschrieben:X L_MARK_FORUMS_READ}</a></li>
Das habe ich nicht verstanden, daher grübelnde Zusatzfrage: Was soll in der viewtopic als gelesen markiert werden? :-?
Beste Grüße
phpBB3 Designs: Stylearea Ongray-Designs
uwe.ha
Mitglied
Beiträge: 834
Registriert: 18.05.2001 02:00

Re: "Foren als gelesen markieren" in Schnellstart

Beitrag von uwe.ha »

Talk19zehn hat geschrieben:Das X ist jetzt nur ein Tippselfehlerchen?
ja ;-)
Talk19zehn hat geschrieben:Das habe ich nicht verstanden, daher grübelnde Zusatzfrage: Was soll in der viewtopic als gelesen markiert werden? :-?
Viele User wollen, das wenn sie die letzte interessante viewtopic gelesen haben, direkt von dort aus alle anderen Themen als gelesen markieren, ohne dafür extra in die index.php wechseln zu müssen.
Uwe
Benutzeravatar
Kirk
Supporter
Supporter
Beiträge: 7888
Registriert: 24.05.2010 08:31
Kontaktdaten:

Re: "Foren als gelesen markieren" in Schnellstart

Beitrag von Kirk »

Hallo
Du bräuchtest 2 Links 1x für "Foren als gelesen markieren" und 1x für "Themen als gelesen markieren", wie hast du diese Links in der listener.php definiert?
uwe.ha
Mitglied
Beiträge: 834
Registriert: 18.05.2001 02:00

Re: "Foren als gelesen markieren" in Schnellstart

Beitrag von uwe.ha »

Kirk hat geschrieben:Du bräuchtest 2 Links 1x für "Foren als gelesen markieren" und 1x für "Themen als gelesen markieren",
Aber in den Foren sind doch Themen, und wenn ich alle Foren gelesen habe, habe ich auch alle Themen gelesen, bzw. wenn ich alle Themen gelesen habe, sind auch damit auch alle Foren gelesen.
Kirk hat geschrieben: wie hast du diese Links in der listener.php definiert?
Gar nicht. Ich habe lediglich (in meiner ext) die Datei navbar_header_quick_links_before.html erstellt mit dem Inhalt:

Code: Alles auswählen

<!-- IF S_USER_LOGGED_IN -->
<li class="small-icon icon-search-new"><a href="{U_MARK_FORUMS}" data-ajax="mark_forums_read">{L_MARK_FORUMS_READ}</a></li>
<!-- ENDIF -->
Der Link wird ja auch angezeigt, nur funktioniert eben nicht ... außer auf der index.php

Deine ext "Activ Tabmenue" scheint ja auch nur von der index.php zu funktionieren bzw. sichtbar zu sein. Also kennst du das Problem.

Kann man nicht eine etwas "statischeren" Link kreieren, der zb auch aus der viewtopic.php irgendwie so aussieht:

Code: Alles auswählen

http://www.meine-seite.de/phpBB/index.php?hash=dd507129&mark=forums&mark_time=1435395167
also dass das phpBB/index.php fest drinnen ist.
So würde/müsste der Link doch von jeder Seite aus funktionieren, oder?
Uwe
Benutzeravatar
Talk19zehn
Ehemaliges Teammitglied
Beiträge: 4920
Registriert: 08.06.2009 12:03
Kontaktdaten:

Re: "Foren als gelesen markieren" in Schnellstart

Beitrag von Talk19zehn »

Moin,
uwe.ha hat geschrieben:Der Link wird ja auch angezeigt, nur funktioniert eben nicht ... außer auf der index.php
...

Das funktioniert bei mir, wie es phpBB-seitig (mein erneuter Test Version 3.1.5) vorgegeben ist:

Code: Alles auswählen

						<!-- IF not S_IS_BOT and U_MARK_FORUMS -->
							<li><a href="{U_MARK_FORUMS}" class="mark-read" accesskey="m" data-ajax="mark_forums_read" role="menuitem">{L_MARK_FORUMS_READ}</a></li>
						<!-- ENDIF -->
						<!-- IF not S_IS_BOT and U_MARK_TOPICS -->
							<li><a href="{U_MARK_TOPICS}" class="mark-read" accesskey="m" data-ajax="mark_topics_read" role="menuitem">{L_MARK_TOPICS_READ}</a></li>
						<!-- ENDIF -->
						<!-- IF S_HAS_SUBFORUM -->
							<!-- IF not S_IS_BOT and U_MARK_FORUMS -->
								<li><a href="{U_MARK_FORUMS}">{L_MARK_SUBFORUMS_READ}</a></li>
							<!-- ENDIF -->
						<!-- ENDIF -->
Unsicher bin ich mir bei der letzten Konstellation
<!-- IF S_HAS_SUBFORUM -->
[---...---]
<!-- ENDIF -->

Die Links und ihre enthaltene Funktionen werden in meinem Falle ausgeführt. Im ACP habe ich unter Allgemein / Serverlast eingestellt:
Serverseitige Gelesen-Markierung aktivieren:
Speichert Informationen zu gelesenen/ungelesenen Beiträgen in der Datenbank statt im Cookie. ===> JA


In der viewtopic ist m.E. momentan im Standard nur vorgesehen, dass du die ungelesenen Beiträge bspw. über den *)Link "Ungelesene Beiträge" in einer Themenliste erreichst. Dort kannst du entscheiden, welche Themen du liest und die Themen als gelesen markieren, sofern du darin neue Beiträge u.U. in einer neuen Sitzung für dich persönlich findest. Gibt es für dich persönlich keine "ungelesenen Beiträge" erfolgt die Meldung: Es wurden keine passenden Ergebnisse gefunden. Gäbe es welche, erscheint die Themenliste und das Topic-Icon und das Mini-Icon springen wahlweise sodann zum ersten ungelesenen Beitrag in dem Thema und es wird automatisch als gelesen markiert, da du den Beitrag aufgerufen bzw. bis zum letzten Beitrag u.U. geblättert, diesen erreicht (gelesen) hast.

Persönlich kannst du aus der Index oder Viewforum auch über das Topic-Icon "manövrieren" (springen), um neue Themen / Beiträge (Step by Step) zu erreichen.

Tipp: Öffnest du den *)Link im neuen TAB (Browser) kannst du ganz bequem zwischen den TABs hin-, und herschalten (Tastenkombination = ALT und Tabulatortaste).
Beiträge, die du selbst schreibst, sind für dich nicht ungelesen. Sie werden bereits beim Absenden "Gelesen" markiert. Was rede ich, das weißt du sicherlich ja alles.

M.E. kannst du nur Links in dem Fall kreieren, die seitens phpBB vorgesehen und entsprechend codiert sind. Daher würde ich meinen, du kannst keinen Link in der Form setzen, wie du vorgetragen hast.
Jedenfalls nicht, ohne in das System einzugreifen.

LG
Beste Grüße
phpBB3 Designs: Stylearea Ongray-Designs
uwe.ha
Mitglied
Beiträge: 834
Registriert: 18.05.2001 02:00

Re: "Foren als gelesen markieren" in Schnellstart

Beitrag von uwe.ha »

Die Einstellung im ACP habe ich auch auf JA.
Wenn ich den von dir o.g. Code nutze, werden in der viewtopic diese Links NICHT angezeigt ... weil es ja systemseitig nicht so vorgesehen ist.
In der viewforum und index werden sie angezeigt. Da macht es aber keinen Sinn, da diese Links ja eh vorhanden sind.
Trotzdem DANKE!

Komisch ... in phpbb 3.0 hatte ich folgenden Code in der overall_header:

Code: Alles auswählen

								<img src="{T_THEME_PATH}/images/icon_mini_register.gif" width="12" height="13" alt="*" /> <a href="{U_MARK_FORUMS}">{L_MARK_FORUMS_READ}</a><br / >
und der hat von allen Seiten aus funktioniert (und wurde von den Usern oft genutzt).

Jetzt in 3.1.* geht es nicht mehr, obwohl der die Funktion (aus functions.php bzw. jetzt functionc_display.php) bis auf das Ende doch gleich ist:

Code: Alles auswählen

phpbb_3.0.*: 'U_MARK_FORUMS'            => ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'hash=' . generate_link_hash('global') . '&mark=forums') : '',
phpbb_3.1.*: 'U_MARK_FORUMS'	          => ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'hash=' . generate_link_hash('global') . '&mark=forums&mark_time=' . time()) : '',
Sonst noch ein Lösungsansatz?
Uwe
Antworten

Zurück zu „Extension Bastelstube“