ConPresso4 Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
Navigation mit Artikeleinträgen

 
Neue Antwort erstellen    ConPresso4 Community Foren-Übersicht -> ConPresso 4
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
PJ
Gast





BeitragVerfasst am: 26.05.2005 17:04    Titel: Navigation mit Artikeleinträgen Antworten mit Zitat

Hallo zusammen,

ich habe einige Fragen auf die leider bei der Forumsuche keine Antworten zu finden waren:

1.Ich möchte gerne (CPO4RC2) zwei Navigationen ( 2 Rubriken) erstellen bei der die Artikel ausgelesen und in der Navigation angezeigt werden sollen. Ist das möglich oder muss ich selbst für einen einzigen Artikel eine neue Unterrubrik erstellen?

2. Im Newsbereich sollen auf der Detailseite sowohl die gesamten News ( oder top 10) angezeigt werden als auch die gerade ausgesuchte Nachricht. Kann das nur mit einem Artikeltemplate (Detail) umgesetzt werden oder ist es möglich das logisch in den _lokal_header/footer-Dateien zu organisisieren und das Artikeltemplate weiter auf die Ausgabe des "Contents/Artikel" zu beschränken?

3. Wie erstelle ich automatische Links (PATH-Info-Berücksichtigung) zu den Detailseiten?

Ich hoffe es können einige Fragen geklärt werden. Vielen Dank im Voraus.
Nach oben
Matthias V
Modul-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1251
Wohnort: Sondershausen

BeitragVerfasst am: 26.05.2005 17:09    Titel: Re: Navigation mit Artikeleinträgen Antworten mit Zitat

Hallo PJ,

zu 1. das habe ich gerade letztens mal gemacht, kann ich dir morgen posten, wenn ich mehr Zeit habe.
Ich hatte das hier mal angekündigt: http://conpresso.de/conpresso/phorum/read.php?f=9&i=378&t=378#reply_848

Gruß Matthias V
Auto-Edit: Link veraltet - neuer Link: http://community.conpresso.de/viewtopic.php?t=2035#10708

_________________
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7071

BeitragVerfasst am: 26.05.2005 17:12    Titel: Re: Navigation mit Artikeleinträgen Antworten mit Zitat

Zu 1.) Ist nicht möglich, wenn Du nicht ein eigenes Navigationssystem entwickelst. Für CP3.4 hatt ich mal eines entwickelt, bei der die Artikel die letzte Navigationsstufe darstellten...
zu 2.) sicher wird es irgendwann auch das modul index_x für CP4RC2 geben. Oder Du baust das selbst. Und wenn, ist es eine Sache, die AUSSERHALB des Artikeltemplates passiert.
zu 3.) keine Ahnung (bei mir funzt path-info nicht)


_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
PJ
Gast





BeitragVerfasst am: 26.05.2005 18:19    Titel: Re: Navigation mit Artikeleinträgen Antworten mit Zitat

Ja super vielen Dank!

Über eine Funktion zum Artikelauslesen würde ich mich sehr freuen!

zu 2. Da muss ich das wohl erst auf dem etwas uneleganten Weg machen. Aber wenn der Redakteur kein anderes Artikeltemplate nimmt, wird das Design ja auch nicht "zerschossen".
Nach oben
Matthias V
Modul-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1251
Wohnort: Sondershausen

BeitragVerfasst am: 27.05.2005 08:45    Titel: Re: Navigation mit Artikeleinträgen Antworten mit Zitat

Hallo PJ,

nun also zu den Artikeln, die mit in der Navigation stehen sollen.
Vorraussetzung ist dass du die Navigation von M.Klaucke benutzt.

Es müssen Anpassungen in der _include/function.inc.php vorgenommen werden. Und zwar das Fett dargestellte musst du noch einfügen.
Zeile 564: $query = 'SELECT id, directory, name, seclevel, source_rubric_id, settings '
Zeile 571: $rubrics[$db->v('id')] = array('id'=>$db->v('id'), 'directory'=>$db->v('directory'), 'name'=>$db->v('name'), 'seclevel'=>$db->v('seclevel'), 'source_rubric_id'=>$db->v('source_rubric_id'), 'settings'=>unserialize($db->v('settings')));

Folgendes gehört in die navigation.inc.php von M.Klaucke:
Code:
// Erstellt von M.Vorwergk
// array getArticles(RubrikId, Sortierreihenfolge)
// liefert einen Array aller Artikel, die sich in der Rubrik befinden und freigegeben sind

function getArticles($rubricId,$sorting) {
   $now = time();
   $query = "SELECT nr, artikel_archiv, article_nr, rubric_id, titel, pub_datum, "
      ."verfallsdatum, idx, freigabe, released_user_id, sort_id, templates_id "
      ."FROM ".CPO_NEWS." "
      ."WHERE rubric_id='".$rubricId."' "
      ."AND ".($cpoSystem['release'] ? "artikel_archiv<'2' AND freigabe='0' " : "artikel_archiv<'1' AND freigabe!='2' ")." "
//      ."AND freigabe='0' AND artikel_archiv<'2' "
//      ."AND released_user_id!='0' "
      ."AND pub_datum<='".date('Y-m-d H:i:s', $now)."' "
      ."AND verfallsdatum>='".date('Y-m-d H:i:s', $now)."' "
      ."ORDER BY ".$sorting." ";
   DEBUG(1, $query, __FILE__, __LINE__);
   $db = new DB;
   $db->query($query);      // echo $cpoSystem['release'];
   $articles = array();
   while ($db->next_record()) {
      $articles[$db->v('nr')] = array(
         'nr'=>$db->v('nr'), //'nr'=>$db->v('article_nr'),
         'article_nr'=>$db->v('article_nr'),
         'artikel_archiv'=>$db->v('artikel_archiv'),
         'pub_datum'=>$db->v('pub_datum'),
         'verfallsdatum'=>$db->v('verfallsdatum'),
          'rubric_id'=>$db->v('rubric_id'),
         'titel'=>$db->v('titel'),
         'idx'=>$db->v('idx'),
         'freigabe'=>$db->v('freigabe'),
         'sort_id'=>$db->v('sort_id'),
         'templates_id'=>$db->v('templates_id'),
      );
   }
   return $articles;
}

// Erstellt von M.Vorwergk
// liefert einen Array aller Templates, um z.B. abzufragen, ob es eine Detailseite gibt

function getTemplates($templates_Id) {
   $query = 'SELECT id, name, tpl_first, tpl_detail, tpl_javascript '
      .'FROM '.CPO_TEMPLATES.' ';
   DEBUG(1, $query, __FILE__, __LINE__);
   $db = new DB;
   $db->query($query);
   $templates = array();
   while ($db->next_record()) {
      $templates[$db->v('id')] = array(
         'id'=>$db->v('id'),
         'name'=>$db->v('name'),
         'tpl_first'=>$db->v('tpl_first'),
          'tpl_detail'=>$db->v('tpl_detail'),
         'tpl_javascript'=>$db->v('tpl_javascript'),
      );
   }
   return $templates;
}

// Erstellt von M.Vorwergk
// Gibt Links zu allen Artikeln in einer Rubrik aus
// Die Links weisen auf die Indexseite mit dem Anker:
//  <a name="artikel_<!-- Value: articlenr -->" class="anker"></a> (muss in Template stehen)

function printArticles($rubric,$navArray) {
   if ($rubric['rubric'] == "")
      return;
   if ($rubric['rubric']['settings']['disableRubric'])
      echo "<ul class='articles'><li>".$rubric['rubric']['settings']['disableRubricText']."</li>".$trennzeichen."</ul>";
   else {
      if ($rubric['rubric']['settings']['sorting'])
         $sorting = $rubric['rubric']['settings']['sorting'];
      else
         foreach ($navArray as $k=>$v)
            if ($v['rubric']['id'] == $rubric['rubric']['source_rubric_id'])
               $sorting = $v['rubric']['settings']['sorting'];
      $articles=getArticles($rubric['rubric']['id'],$sorting);
      $i = 0;
      if (!empty($articles)) echo "<ul class='articles'>";
      foreach ($articles as $key=>$value) {
         $pos = $i - ($i % $rubric['rubric']['settings']['noOfArticles']); //Wählt die richtige Indexseite.
         $templates = getTemplates($value['templates_id']);
         foreach ($templates as $t_key=>$t_value)
            if ($t_value['id']==$value['templates_id'])
               if (strlen($t_value['tpl_detail'])<10)
                  echo "<li><a class='articles' href='../".$rubric['rubric']['directory']
                     ."/index.php?rubric=".$rubric['rubric']['id'].(($pos > 0) ? "&amp;pos="
                     .$pos : "")."#artikel_".$value['nr']."'>".$value['titel']."</a></li>\n";
               else
                  echo "<li><a class='articles' href='../".$rubric['rubric']['directory']
                     ."/detail.php?nr=".$value['nr']."&rubric="
                     .$rubric['rubric']['id']."'>".$value['titel']."</a></li>\n";
         $i++;
      }
      if (!empty($articles)) echo "</ul>";
   }
}


In die Funktion printLevel2 muss dann noch der Aufruf von der Funktion printArticles
Und zwar überall wo in der id des <a>-Tags "Activ" steht muss vor die Zeile eine öffnende geschweifte Klammer und nach der Zeile muss einen neue Zeile eingefügt werden: printArticles($value,$navArray,''); } bzw. printArticles($v,$navArray); }
Möglicherweise musst du davor noch so etwas wie if ($v['rubric']['id'] == Zahl) um die Ausgabe der Artikel nur auf bestimmte Rubriken zu beschränken.
Ob du $v oder $vaule schreibst richtet sich danach, ob in der Zeile nach der du den Code einfügst $v oder $value steht.

Wenn du die Artikel auch an Rubriken der Navigationsebene 1 haben möchtest, dann muss nach die erste Zeile (mit echo "<ul beginnend) folgender Code:
Code:
   foreach ($navArray as $key=>$value)
      if ($key == $actKey1)
         printArticles($value,$navArray);

und in dem Global_header.php muss bei dem Aufruf der Funktion printLevel2 in der If-Sleife noch AND ($actRubric['childs'] > 0) endferrnt werden und gegebenenfalls aus Kommentar hinter diese if-Abfrage geschrieben werden.


So jetzt hoffe ich, das ich nichts vergessen habe.
Und ich garantiere nicht dafür, dass dies 100% funktioniert, denn bei der Datenbankabfrage der Artikel war ich mir nicht ganz so sicher (daher auch die auskommentierten Zeilen), aber bei mir funktioniert es gut, und das sollte es bei dir auch machen.

Gruß Matthias V



Beitrag bearbeitet (23.06.05 14:45)


Zuletzt bearbeitet von Matthias V am 22.08.2005 20:17, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Matthias V
Modul-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1251
Wohnort: Sondershausen

BeitragVerfasst am: 08.06.2005 09:29    Titel: Re: Navigation mit Artikeleinträgen Antworten mit Zitat

Ich habe an meinem Code noch etwas geändert, damit Validatoren nicht meckern.
Und zwar habe ich in function printArticles () im letzten else-Zeig &rubric= ersetzt durch &amp;rubric=.
Falls beim Kopieren &amp;amp; im Quelltext erscheint muss man einmal amp; entfernen.

@PJ:
Bei solch umfangreichen Code mit umfangreicher Anleitung würde ich mich über Feedback freuen, ob es denn so funktioniert wie ich es beschrieben und geschrieben habe, da ich auch noch etwas anders geschrieben habe als ich es verwende. (ich hatte eine
Code:
<div><a>
-Lösung und keine
Code:
<ul><li><a>
-Lösung bei mir eingesetzt)

Gruß Matthias V


Zuletzt bearbeitet von Matthias V am 22.09.2005 13:55, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Matthias V
Modul-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1251
Wohnort: Sondershausen

BeitragVerfasst am: 23.06.2005 14:44    Titel: Re: Navigation mit Artikeleinträgen Antworten mit Zitat

Hallo an alle die diesen Script nutzen,

ich habe noch etwas in der Funktion printArticles ergänzt, damit die Links zu den Indexseiten richtig funktionieren.
Bisher war es so, dass immer nur auf index.php?rubric=...#artikel_... verlinkt wurde und ich habe jetzt noch eingefügt, dass falls es mehrere Seiten einer Indexseite gibt auf die richtige verlinkt wird.

Desshalb habe ich noch den Parameter $pos eingefügt. Die Links sehen jetzt folgendermaßen aus: index.php?rubric=...&pos=...#artikel_...

Gruß Matthias V



Beitrag bearbeitet (23.06.05 14:59)

_________________
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
holgi
ConPresso-Newbie


Anmeldungsdatum: 01.01.1970
Beiträge: 4

BeitragVerfasst am: 07.08.2005 11:44    Titel: Re: Navigation mit Artikeleinträgen Antworten mit Zitat

Hallo.

Ich habe mir nun fast alle Themen zu der Navigationserstellung durchgelesen.
Irgendwie blicke ich jetzt gar nicht mehr durch.


Ist es vielleicht möglich, das jemand einmal eine vollständige und bereinigte Version von M. Klauke mit den Änderungen von Matthias V. hier veröffentlicht ?

Wäre toll.

mfg

Holger
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
clara
Gast





BeitragVerfasst am: 07.08.2005 22:59    Titel: Re: Navigation mit Artikeleinträgen Antworten mit Zitat

Ich verstehe auch nicht, warum das nicht plausibel erklärt wird.
Nach oben
PJ
Gast





BeitragVerfasst am: 22.09.2005 13:34    Titel: Antworten mit Zitat

AUch wenn es scho lange her ist, der Code hat super funktioniert!
Nach oben
Matthias V
Modul-Entwickler


Anmeldungsdatum: 01.01.1970
Beiträge: 1251
Wohnort: Sondershausen

BeitragVerfasst am: 22.09.2005 14:11    Titel: Antworten mit Zitat

Hallo clara und holgi,

diese hier im Forum veröffentlichten Code-Schnipsel sind alle zur Zeit der Beta bzw. RC Version von Conpresso entstanden. Jetzt gibt es noch eine weitere Conpresso-Eigene Version, die Balu hier im Forum auch beschrieben hat.

Das was speziell hier steht, sind Änderungen, die sehr ins detail gehen und die man in mehreren Dateien vornehmen muss, zudem habe ich dies in mehreren Webseiten in unterschiedlichen Formen eingesetzt, was eine gesammte Veröffentlichung schwierig macht.

Entweder ihr versucht euch ein bisschen in PHP einzuarbeiten und setzt dies hier beschriebene um, oder ihr benutzt die Rekursive Conpresso-eigene Ausgabefunktion (die ich mir noch nicht angeschaut habe).

Ihr könnt auch das Ausgabemodul von MarkusR benutzen, was sich zur Zeit wahrscheinlich in der Version Beta3 (beachtet dazu seine Bedingungen für Beta Tester) befindet oder warten bis dieses Modul fertig ist. Aber ich weiß micht ob MarkusR die Artikel mit als eine weitere Navigationsebene einbaut.

Aber wenn ihr die einzelnen Artikel mit in die Navigation einbauen möchtet dann setzt doch einfach das hier beschriebene um (ein bisschen Quelltext sollte jeder Admin bearbeiten können, nach den beschreibungen hier im Forum).

Ich habe es wahrscheinlich auch ausführlich genug beschrieben, denn PJ hat alles so umgesetzt und es funktioniert bei ihm.

Gruß Matthias V

______________________________ 12.10.2005______________________

Ich habe jetzt, zur Zeit für Version 4.0.3, diese Artikelnavigation in die Conpresso eigene Navigation printnavigation(); eingebaut.
Diese Navigation ist jetzt sehr variabel und lässt sich einfach einbauen.
Man kann angeben, ob man nur Navigationseinträge zu Artikeln mit Detailseite (je nach Template) oder auch zu Artikeln, die nur eine Index-seite haben, ausgeben möchte . Dann kann man einfach wählen, ob man eine "Wo bin ich Struktur" ausgeben möchte, die auch als Breadcrumb-Navigation bezeichnet wird.

Wer diese Sachen haben möchte, meldet sich einfach bei mir (z.B. per PN).

Man benutzt diese Funktionen einfach durch Aufruf der Funktion printnavigation(); mit 2 weiteren Parametern.

_________________
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso4 Community Foren-Übersicht -> ConPresso 4 Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen