Welcome, Guest. Please login or register.
Did you miss your activation email?
May 24, 2012, 09:19:43 AM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
155442 Posts in 21702 Topics by 7731 Members
Latest Member: zvaigzdzius
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: News-Modul "doppelt" verwenden?  (Read 1044 times)
Katerchen

Offline Offline

Posts: 84


« on: October 22, 2008, 07:11:29 PM »

Hallo!

Nun habe ich mich vorläufig für WebsiteBaker 2.7 entschieden, um eine Website mit 200 Seiten umzustellen, und stoße auf ein Problem, für das ich noch keine einfache Lösung gefunden habe:

Das News-Modul gefällt mir sehr gut und ich würde es gerne verwenden. Allerdings gibt es auf der Seite bisher zwei News-Seiten: Eins mit "aktuellen News" und ein "News-Archiv". Die meisten Einträge wandern nach einer gewissen Zeit aus den "aktuellen News" ins "News-Archiv", die Umschaltung geschieht manuell. Läßt sich das mit dem News-Modul irgendwie komfortabel abbilden (ohne zwei News-Seiten erstellen zu müssen und die Einträge per Cut & Paste rüberzukopieren)?

Danke.
Logged
erpe

Offline Offline

Posts: 2077


WWW
« Reply #1 on: October 22, 2008, 07:28:09 PM »

Bitte mal die Suche bemühen.
Da gab es erst kürzlich wieder einen thread zu dem Thema mit Lösungsvorschlag.

Gruss

erpe
Logged

chio
WebsiteBaker Org e.V.

Offline Offline

Posts: 2264


« Reply #2 on: October 23, 2008, 08:45:07 AM »

Was ich weiß gab es da auch keine fertige Lösung.

Aber vielleicht setzt sich mal wer hin und macht einen "News-Mover" als Admin-Tool oder als CodeSnippet.
Sollte eigentlich nicht so schwer sein.

Du kannst allerdings die Gruppen verwenden. Mach eine Gruppe "Archiv", wenn dir das reicht.

Logged

*weg*
vyni

Offline Offline

Posts: 566


« Reply #3 on: October 26, 2008, 05:31:50 AM »

Ich lese immer wieder news und Archiv.

Es gäbe da eine ganz einfache und geradzu simple Lösung dafür, wenn sich einer ein bisserl ein Herz nimmt und was mit dem Modul macht. Soviel ich bisher mitgekriegt habe traut sich keiner was machen weil es so "wackelig" ist, und von vielen als besonders wichtig eingestuft ist.
Meine Idee dazu: 1 zusätzliches Option-Feld anhängen, das einen standardwert gesetzt hat. Die Abfragen in der view.php und in der modify.php auf diese neue option erweitern (wenn option=1 dann zeigen).
Eine 2. view.php sowie eine zweite modify.php erstellen und ändern (wenn option=0 dann zeigen)
Jetzt noch einen Umschalter in die modify.php einbauen - fertig.

Aufruf des Archives durch link auf die 2. view.php - die auch archiv.php heißen könnte.

Jetzt noch eine 3. view.php erstellen, in welcher das neue option-feld ignoriert wird (also die jetzige view.php!) zur Ansicht "Alle News" verwenden.

Da dieses option-Feld nur in der Tabelle, add.php, view.php, save.php und modify.php relevant ist, kann es sich nur um eine Kleinigkeit handeln, das so umzustricken.

Da hab´ ich grad noch eine Idee - das ist vermutlich sogar noch viel einfacher und kann quasi jeder. - Vielleicht aber auch nicht:
Eine Gruppe Archiv erstellen. Die view.php  so ändern, dass alle news außer der Gruppe Archiv abgefragt werden, also ungefähr so: (angenommen Archiv hat group_id=5)

$query_posts = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts
        WHERE section_id = '$section_id' AND $group_id <> '5' AND .......


schon wird Archiv nimmer angezeigt - im Backend aber schon

jetzt eine 2. view.php => archiv.php und da

$query_posts = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts
        WHERE section_id = '$section_id' AND $group_id = '5' AND .......


Was spricht dagegen?

Jetzt muss man nur noch die archiv.php aufrufen.
Eine Möglichkeit ist folgende: Man erstellt eine Seite, Archiv vom typ code mit folgendem Inhalt:
Code:
// Das ist die SectionNr der NEWS und muss angepasst werden
$section_id = 45;

// Get requested section for requested page
$query_sections = $database->query("SELECT section_id,module FROM ".TABLE_PREFIX."sections WHERE section_id = '$section_id' ");

// Make sure there is one
if($query_sections->numRows() > 0) {
$section = $query_sections->fetchRow();
$section_id = $section['section_id'];
$module = $section['module'];
require(WB_PATH.'/modules/'.$module.'/archiv.php');
}

Und schon hast ein prächtiges Archiv !!
Gruß aus Himberg bei Wien
« Last Edit: October 26, 2008, 06:02:08 AM by vyni » Logged

PS: Falls jemand eine Idee hat was zu tun ist und mir das erklären könnt - geh bitte davon aus dass ich ahnungslos bin, was php und so betrifft. Ich kann grad was lesen, kopieren und einfügen,  ungefähr verfolgen und glauben.
vyni

Offline Offline

Posts: 566


« Reply #4 on: October 26, 2008, 07:04:36 AM »

Jetzt noch ein kurzer Nachtrag

Klarerweise kann man das perfektionieren indem man für alle Gruppen eine Archiv-Gruppe erstellt, die Abfragen entsprechend erweitert und natürlich die News-Beiträge richtig umsortiert.

Was ich meine?
Zu den bestehenden Gruppen Sport, witziges, Klatsch neue Gruppen Sport-Archiv, witziges-Archiv, Klatsch-Archiv anlegen.

Nehmen wir an die group_id´s lauten in Reihenfolge gelesen 2,3,4,5,6,7 dann müßte die Selektion für die normale view.php folgendermaßen geändert werden:

$query_posts = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts
      WHERE section_id = '$section_id' AND $group_id <> '5' AND $group_id <> '6' AND $group_id <> '7' AND  .......

analog dazu die archiv.php

$query_posts = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_news_posts
      WHERE section_id = '$section_id' AND $group_id = '5' AND $group_id = '6' AND $group_id = '7' AND  .......

dann hat man auch im Archiv nicht nur eine Gruppe.

Voraussetzung ist natürlich, dass man beim umgruppieren keinen Fehler macht.

Mehr Archiv braucht der Mensch ned.
Gruß aus Himberg (immer noch bei Wien)
Logged

PS: Falls jemand eine Idee hat was zu tun ist und mir das erklären könnt - geh bitte davon aus dass ich ahnungslos bin, was php und so betrifft. Ich kann grad was lesen, kopieren und einfügen,  ungefähr verfolgen und glauben.
chio
WebsiteBaker Org e.V.

Offline Offline

Posts: 2264


« Reply #5 on: October 26, 2008, 08:30:31 AM »

Vielleicht ein anderer Ansatz:

Man hat ja die Terminfelder.
Und auch den "Aktiv"-Schalter

Man braucht nicht viel ändern an der view.php, um mit einem zusätzlich übergebenen Parameter oder einer vorher gesetzten Variablen alles zu zeigen was
a) Abgelaufen ist
b) noch vor der Zeit ist (zukünftig)
c) Inaktiv ist.

Trotzdem bleibt das aber an die section_id gebunden. Wenn man News _wirklich_ verschieben will, muss man die Section_id ändern, wahrscheinlich auch group_id.
Logged

*weg*
Katerchen

Offline Offline

Posts: 84


« Reply #6 on: October 28, 2008, 07:09:10 AM »

Dank an alle für die Hinweise - ich denke, ich kriege es damit hin, auch wenn es natürlich nicht so schön ist, in einer Datei eines Moduls herumzufuhrwerken, und bei jedem Update dran denken zu müssen. Wichtig ist vor allem, daß es für den Endanwender einfach und narrensicher ist, Einträge aus den News ins Archiv zu schieben.
Logged
Katerchen

Offline Offline

Posts: 84


« Reply #7 on: November 02, 2008, 05:50:05 PM »

Nun habe ich es mit Anynews hingekriegt - es war einfacher, als ich zunächst gedacht hatte:

  • 1 versteckte Seite "News editieren", Typ News. Dort zwei Gruppen "News" und "Archiv" anlegen
  • 1 Seite "News", Typ Code.
  • 1 Seite "Archiv", Typ Code.

Die beiden Code-Seiten enthalten folgenden Code:

Code:
if (function_exists('display_news_items')) {
    display_news_items(2);
}

bzw.

Code:
if (function_exists('display_news_items')) {
    display_news_items(3);
}

(2 und 3 sind die jeweiligen group_ids, die übrigen Parameter habe ich hier weggelassen.)

Die Einträge werden in der versteckten Seite gemacht und einer Gruppe zugewiesen - und können auf diese Weise auch leicht von "News" nach "Archiv" verschoben werden.

(In der Datei include.php von Anynews habe ich das Limit anzuzeigender News-Einträge von 10 auf 100 hochgesetzt, da das Archiv wesentlich größer werden kann.)
« Last Edit: November 02, 2008, 05:53:21 PM by Katerchen » Logged
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!