[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
< > Navigation Artikel Online erweitern - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
a.albrecht
Beiträge: 141
Registriert: 17. Dez 2008, 23:43
Kontaktdaten: ICQ

< > Navigation Artikel Online erweitern

24. Feb 2012, 21:24

Hallo Redaxos,

ich habe folgende < > Navigation, um von einem Startartikel zum nächsten zu gelangen.
Diese Navigation beinhaltet jedoch auch Artikel, die auf offline stehen.

Wie kann ich Offline-Artikel von der Ausgabe ausschließen?

Code: Alles auswählen

    <?php

    ## eigene ID
    $cat = OOCategory::getCategoryById($this->getValue('category_id'));

    ## current artikel id
    $currentarticleID = $cat->getId();
    $currentarticle = OOArticle::getArticleById($currentarticleID);

    ## eltern ID & Clang
    $catParent = $cat->getParent();
    $catParentId = $catParent->getId();
    $catParentClang = $catParent->getClang();

    ## IDs der Kategorien
    $cat = OOCategory::getCategoryById($catParentId);
    $kat = $cat->getChildren();

    ## ID uebergabe an katIds
    foreach ($kat as $kats) {
       $katIds[] = $kats->getId();
    }

    ## uebergabe der StartArtikel der katIds
$article = array();
    foreach ($katIds as $katArticles) {
      $article[] = OOArticle::getArticleById($katArticles);

    }

    ## ab hier ist es das Modul von Artikel blaettern
    if (is_array($article))
    {
       ## artikelreihenfolge in eine liste laden
       foreach ($article as $var)
       {
          $articlestack[] = $var->getId();
       }
       ## herausfinden, welcher artikel der vorgaenger-artikel ist
       $i = 0;
       $catcount = count($articlestack);
       foreach ($articlestack as $var)
       {
          if($var == $currentarticleID)
          {
             if($i+1 < $catcount )
             {
                $nextID = $articlestack[$i+1];
                $successor = '<a href="'.rex_getUrl($nextID).'">></a>';
             }
             if($i-1 > -1)
             {
                $prevID = $articlestack[$i-1];
                $predecessor = '<a href="'.rex_getUrl($prevID).'"><</a>';
             }
          }
          $i++;
       }
       echo $predecessor . " " . $successor;

    }
    ?>

Angie
Beiträge: 22
Registriert: 13. Jan 2010, 16:08

Re: < > Navigation Artikel Online erweitern

25. Feb 2012, 12:54

Hi,

vor der Ausgabe eine online-Abfrage einbauen:

Code: Alles auswählen

foreach (....) {
if ($...->isOnline()) {
Ausgabe
}
}
Greetz,
Angie

a.albrecht
Beiträge: 141
Registriert: 17. Dez 2008, 23:43
Kontaktdaten: ICQ

Re: < > Navigation Artikel Online erweitern

25. Feb 2012, 16:42

Vielen Dank, sprich:

Code: Alles auswählen

foreach ($articlestack as $var)
       {

if ($article->isOnline()) {          

if($var == $currentarticleID)
          {
             if($i+1 < $catcount )
             {
                $nextID = $articlestack[$i+1];
                $successor = '<a href="'.rex_getUrl($nextID).'">></a>';
             }
             if($i-1 > -1)
             {
                $prevID = $articlestack[$i-1];
                $predecessor = '<a href="'.rex_getUrl($prevID).'"><</a>';
             }
          }
          $i++; }
       }

smithi
Beiträge: 7
Registriert: 24. Jun 2010, 08:32

Re: < > Navigation Artikel Online erweitern

11. Okt 2012, 07:31

hi,
ich wollte zum einen fragen ob ich deinen code benutzten darf und falls ich ihn benutzten darf wo meiner Fehler liegt.

Code: Alles auswählen

<?php
	## eigene ID
    $cat = OOCategory::getCategoryById($this->getValue('category_id'));

    ## current artikel id
    $currentarticleID = $cat->getId();
    $currentarticle = OOArticle::getArticleById($currentarticleID);

    ## eltern ID & Clang
    $catParent = $cat->getParent();
    $catParentId = $catParent->getId();
    $catParentClang = $catParent->getClang();

    ## IDs der Kategorien
    $cat = OOCategory::getCategoryById($catParentId);
    $kat = $cat->getChildren();

    ## ID uebergabe an katIds
    foreach ($kat as $kats) {
       $katIds[] = $kats->getId();
    }

    ## uebergabe der StartArtikel der katIds
	$article = array();
    foreach ($katIds as $katArticles) {
      $article[] = OOArticle::getArticleById($katArticles);
    }

    ## ab hier ist es das Modul von Artikel blaettern
    if (is_array($article))
    {
       ## artikelreihenfolge in eine liste laden
       foreach ($article as $var)
       {
          $articlestack[] = $var->getId();
       }
       ## herausfinden, welcher artikel der vorgaenger-artikel ist
       $i = 0;
       $catcount = count($articlestack);
       foreach ($articlestack as $var)
       {

			if ($article->isOnline()) 
			{
				if($var == $currentarticleID)
				{
					if($i+1 < $catcount )
					{
						$nextID = $articlestack[$i+1];
						$weiter = '<a href="'.rex_getUrl($nextID).'">></a>';
					}
					if($i-1 > -1)
					{
						$prevID = $articlestack[$i-1];
						$zurueck = '<a href="'.rex_getUrl($prevID).'"><</a>';
					}
				}
				$i++; 
			}
		}
    }
    ?>
Habe den Script als eigenes Template und includiere das in die Templates in denen ich es brauche.
Ausgabe ist bei mir ganz normal "echo $weiter" etc..

Da passiert bei mir leider nichts.

hoffe das ihr mir helfen könnt.

danke im vorraus

Zurück zu „Allgemeines [R4]“