Newsarchiv versteht tag= nur in Kombination mit month=
Hallo,
ich bin dabei, ein Typolight-System (Version 2.7.5) auf die Schnelle
um Tags zu erweitern. Ich habe dafür folgende Erweiterungen installiert:
tags_news 1.2.1 stable
und (als dependency) tags 1.6.5 stable
Das System hatte bereits Nachrichtenliste/Nachrichtenleser mit einem
Archiv ("News").
Ich bin meiner Intuition : ) und ein paar gebloggten Tutorials gefolgt und
habe zusätzliche Module eingerichtet:
- Nachrichtenarchiv
- Nachrichtenarchiv-Menü
- Tagcloud
und in der Tagcloud die Seite mit dem Nachrichtenarchiv als Weiterleitungsseite
eingetragen.
Die Tagcloud funktioniert und erzeugt Links der Form:
domain.tld/index.php/nachrichtenarchiv/tag/Beispieltag
Diese Links führen zu einer leeren Seite (wie Nachrichtenarchiv ohne
Argumente).
Das Nachrichtenarchiv selbst funktioniert richtig, wenn ich URL-Argumente
benutze:
domain.tld/index.php/nachrichtenarchiv.html?month=201010
zeigt korrekt die Meldungen vom Oktober. Dagegen zeigt aber
domain.tld/index.php/nachrichtenarchiv.html?year=2010
nur die leere Liste. Das ist schon seltsam -- oder? Weiter mit Tags:
domain.tld/index.php/nachrichtenarchiv.html?month=201010&tag=Beispielta g
filtert die Oktober-Nachrichten korrekt nach Beispieltag.
Dagegen liefern folgende Anfragen wieder nur die leere Seite:
domain.tld/index.php/nachrichtenarchiv.html?year=2010&tag=Beispieltag
domain.tld/index.php/nachrichtenarchiv.html?tag=Beispieltag
Ich hab den Eindruck, dass die Installation im Prinzip funzt.
Was stimmt nicht? Habt ihr eine Idee?
tschüs & dank,
Felix
[partiallysolved] Nachrichtenarchiv reagiert auf "tag" nur in Verbindung mit "month"
Zitat:
Zitat von
flx
Kann ich erreichen, dass das Nachrichtenarchiv bei Filterung nach Tag den
gesamten vorhandenen Zeitrum einbezieht, nicht nur (wie es bei mir wohl ist)
den aktuellen Monat?
Mit folgender Änderung im Nachrichtenarchiv
Code:
system/modules/news/ModuleNewsArchive.php
funktioniert die Filterung nach Tags alleine (ohne month=):
Ersetze die Zeile
PHP-Code:
if (!is_array($this->news_archives) || count($this->news_archives) < 1 || (!$this->news_jumpToCurrent && !strlen($this->Input->get('month'))))
durch
PHP-Code:
if (!is_array($this->news_archives) || count($this->news_archives) < 1 || (!$this->news_jumpToCurrent && !strlen($this->Input->get('month')) && !strlen($this->Input->get('tag'))))
D.h. bisher wurden Anfragen ohne Datum abgewiesen, jetzt sind sie möglich.
Allerdings wird noch immer der aktuelle Monat bzw. das aktuelle Jahr ergänzt
(je nachdem, was im Modul Nachrichtenarchiv konfiguriert ist).
Kann mir denn jemand sagen, wo ich im Code das Zeitfenster für die Nachrichten auf
"gesamtes Archiv" erweitern kann? Wenn ich in ModuleNewsArchive die Werte
und ändere, ändert sich gar nichts.
Helmut, muss ich da an dein ModuleNewsArchiveTags.php ran?
Grüße von
flx
[solved] # Newsarchiv versteht tag= nur in Kombination mit month=
Zitat:
Zitat von
flx
Mit folgender Änderung im Nachrichtenarchiv
Code:
system/modules/news/ModuleNewsArchive.php
funktioniert die Filterung nach Tags alleine (ohne month=):
Ersetze die Zeile
PHP-Code:
if (!is_array($this->news_archives) || count($this->news_archives) < 1 || (!$this->news_jumpToCurrent && !strlen($this->Input->get('month'))))
durch
PHP-Code:
if (!is_array($this->news_archives) || count($this->news_archives) < 1 || (!$this->news_jumpToCurrent && !strlen($this->Input->get('month')) && !strlen($this->Input->get('tag'))))
OK, mit folgenden Änderungen funktioniert alles:
Ich ergänze im Tags-sensiblen Nachrichtenarchiv
Code:
system/modules/tags/ModuleNewsArchiveTags.php
nach dem Block
PHP-Code:
// Show all items
elseif ($this->news_jumpToCurrent == 'all_items')
{
$intBegin = 0;
$intEnd = time();
}
nochmal ein
PHP-Code:
$intBegin = 0; $intEnd = time();
was wohl das gewünschte "show all items" erzwingt.
und vor der Zeile
PHP-Code:
$this->Template->headline = trim($this->headline);
füge ich noch ein:
PHP-Code:
$this->headline .= ' ' . join (',',$headlinetags);
damit die Tags auch in der Überschrift stehen.
So, ist zwar gefrickelt, aber alles funktioniert :)
Grüße und danke an alle,
felix