Seite 1 von 2

"Foren als gelesen markieren" in Schnellstart

Verfasst: 26.06.2015 09:38
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!

Re: "Foren als gelesen markieren" in Schnellstart

Verfasst: 26.06.2015 10:33
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

Re: "Foren als gelesen markieren" in Schnellstart

Verfasst: 26.06.2015 11:01
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.

Re: "Foren als gelesen markieren" in Schnellstart

Verfasst: 26.06.2015 11:10
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.

Re: "Foren als gelesen markieren" in Schnellstart

Verfasst: 26.06.2015 11:39
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? :-?

Re: "Foren als gelesen markieren" in Schnellstart

Verfasst: 26.06.2015 12:54
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.

Re: "Foren als gelesen markieren" in Schnellstart

Verfasst: 26.06.2015 19:51
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?

Re: "Foren als gelesen markieren" in Schnellstart

Verfasst: 27.06.2015 11:01
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?

Re: "Foren als gelesen markieren" in Schnellstart

Verfasst: 27.06.2015 12:41
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

Re: "Foren als gelesen markieren" in Schnellstart

Verfasst: 27.06.2015 18:25
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?