nächster artikel der auch online ist

Wie verwendet man Templates oder erstellt Navigationen und passt diese an.

nächster artikel der auch online ist

Beitragvon Oliver.Kreischer » 5. Feb 2006, 15:30

hi,

kann mir jemand sagen wie der php code aussehen muß wenn ich in einem artikel einen link zu dem artikel mit der nächsten id (in der gleichen kategorie) haben möchte (artikel muß online sein)?

gruß
oliver
(hab schon gesucht und das modul mit den blätterbaren artikeln macht nicht das was ich (jetzt) möchte ...) :P
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Beitragvon Markus.Staab » 5. Feb 2006, 16:08

Hi Oliver,

Code: Alles auswählen
<?php
$category = OOCategory::getCategoryById( $this->getValue( 'category_id'));
$articles = $category->getArticles(true);
$next_article = null;
if ( is_array($articles))
{
  $choose = false;
  foreach ( $articles as $article)
{
    if ($choose)
    {
       $next_article = $article;
       break;
    }
    // Bis zum aktuellen Artikel durchgehen und den nächsten selektieren
    if ($article->getId() == $this->getValue('article_id'))
   {
      $choose = true;
   }
}
}

if ( $next_article !== null)
{
  // mach mit dem Artikel hier was du willst...
}
?>


ungetestet!

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Oliver.Kreischer » 5. Feb 2006, 20:15

hey markus,

danke für die antwort.

ich bekomme immer nur "Object" als wert...

gruß
oliver
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Beitragvon Markus.Staab » 6. Feb 2006, 15:55

Hi Oliver,

unten wo steht

Code: Alles auswählen
if ( $next_article !== null)
{
  // mach mit dem Artikel hier was du willst...
}


kannst du z.b. so machen

Code: Alles auswählen
if ( $next_article !== null)
{
  echo "<h2>". $next_article->getName() ."</h2>";
  echo $next_article->getArticle();
}


ungetestet!

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Oliver.Kreischer » 6. Feb 2006, 20:09

klappt super!

wunderbärchen :-))

oliver
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Beitragvon Oliver.Kreischer » 7. Feb 2006, 19:44

hallo,
ich freue mich immer noch!
wirklich klasse (es sind die kleinen dinge im leben :-)))

wäre es ein hexenwerk das script so zu erweitern das es auch den vorhergehenden artikel zeigt?

ich komme da etwas mit der schleife durcheinander...

gruß
oliver
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Beitragvon Markus.Staab » 8. Feb 2006, 14:17

Hi Oliver,

olien hat geschrieben:hallo,
ich freue mich immer noch!
wirklich klasse (es sind die kleinen dinge im leben :-)))


Anhaltende Freude ist doch immer was schönes :)


olien hat geschrieben:wäre es ein hexenwerk das script so zu erweitern das es auch den vorhergehenden artikel zeigt?


Kommt drauf an, ob man zaubern kann oder nicht :).

Aber hier mal mein Versuch:

Code: Alles auswählen
<?php
$category = OOCategory::getCategoryById( $this->getValue( 'category_id'));
$articles = $category->getArticles(true);
$prev_article = null;
if ( is_array($articles))
{
  for ( $i  =0; $i <count( $articles); $i++)
{
    // Bis zum aktuellen Artikel durchgehen und den nächsten selektieren
    if ($articles[ $i]->getId() == $this->getValue('article_id'))
   {
      if ( isset( $articles[ $i-1]))
     {
       $prev_article = $articles[ $i-1];
       break;
     }
   }
}
}

if ( $prev_article !== null)
{
  // mach mit dem Artikel hier was du willst...
}
?>


Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Oliver.Kreischer » 8. Feb 2006, 22:14

nach ein wenig basteln klappt es wunderbar.
wär alleine nicht drauf gekommen.

danke. zauberer!

gruß
oliver
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Beitragvon Markus.Staab » 9. Feb 2006, 14:53

Hi Oliver,

olien hat geschrieben:danke. zauberer!


hihi, gerne!

könntest du bitte deinen Code posten, falls der von mir gepostete oben nicht funktioniert.

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Oliver.Kreischer » 9. Feb 2006, 20:22

hi,

recht hast du (auch wenn es peinlich ist). dein code funktioniert.
ich brauchte nur noch etwas mehr :-))

so.
ich habe einen startartikel und viel artikel,

der startartikel zeigt die vielen artikel (multilist modul) das vor und zurück ist dann dafür da das ich innerhalb der artikel navigieren kann.


kann sicherlich eleganter gelöst werden..

startartikel id = 2
erster artikel id = 19


Code: Alles auswählen
<?php
$category = OOCategory::getCategoryById( $this->getValue( 'category_id'));
$articles = $category->getArticles(true);
$prev_article = null;
$aktuelleID = $this->getValue('article_id');

if ( is_array($articles))
{
  for ( $i = 0; $i <count( $articles); $i++)
{
   
if ($aktuelleID != 19) {                                                                  // ID des 1. Artikels eintragen
    if ($articles[ $i]->getId() == $this->getValue('article_id'))
   {
   
      
      if ( isset( $articles[ $i-1]))
     {
       $prev_article = $articles[ $i-1];
       break;
     }
   }
}
}
}
if ($aktuelleID != 19) {                                                           // ID des 1. Artikels eintragen
$VorherigeArtID = $prev_article->getID();

   if ( $VorherigeArtID != null)
   {
    echo "<a id='zurueck' href='index.php?article_id=".$VorherigeArtID."'></a>";
   }
}


$next_article = null;

if ( is_array($articles))
{
  $choose = false;
  foreach ( $articles as $article)
{
             if ($choose)
             {
                $next_article = $article;
                break;
             }
             // Bis zum aktuellen Artikel durchgehen und den nächsten selektieren
             if ($article->getId() == $this->getValue('article_id'))
            {
               $choose = true;
            }
}
}
$NaechsterArtID = $next_article->getId();
           

  // mach mit dem Artikel hier was du willst..
echo "<a id='uebersicht' href='index.php?article_id=2'></a>";

if ( $next_article !== null)
{
   if ( $next_article->getId() != 2)    // ID des Startartikels
   {
    echo "<a id='weiter' href='index.php?article_id=".$NaechsterArtID."'></a>";
   }
}

?>


hauptsache es funktioniert :-))

Oliver
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing

Beitragvon Markus.Staab » 9. Feb 2006, 20:43

Hi Oliver,

hatten wir zusammen für dich nicht schonmal so ein "Blättern"-Mechanismus zusammengebaut?

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Oliver.Kreischer » 9. Feb 2006, 20:47

ja. aber der funktionierte doch etwas anders.
so wie es jetzt ist verstehe ich es sogar!

gruß
oliver
(bin erst zufrieden wenn ich nicht mehr wegen allem fragen muß)
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing


Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast