Navigation mit Sprung in 1. Unterkategorie

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

Beitragvon fsiebert1977 » 13. Dez 2005, 11:58

Hi Thomas,

die Funktion getFirstSlice() gibt es doch gar nicht in OOArticle, oder?
Gruß Florian
www.softloop.biz
fsiebert1977
 
Beiträge: 172
Registriert: 9. Feb 2005, 19:51
Wohnort: Bad Nauheim

Beitragvon Thomas.Blum » 13. Dez 2005, 12:07

Hej,

du hast recht. Sie war abeer in der 27er Version drin. Daher habe ich es. Mal sehen ob es wieder eingebaut wird.

Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon Thomas.Blum » 13. Dez 2005, 12:13

Hej,

also du musst in der ooarticle.inc.php das einbauen:

function getFirstSlice() {
return OOArticleSlice::getFirstSliceForArticle($this->_id);
}

du solltest aber wissen, das die Slice Methoden auf die DB zurückgreifen und das nicht wenig.

thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon fsiebert1977 » 13. Dez 2005, 12:17

Du meinst also, dass das zu Lasten der Performance geht? Gibt es dann nicht eine Möglichkeit, auf die bereits generierten Artikel zuzugreifen und zu schauen, ob Inhalte da sind?
Gruß Florian
www.softloop.biz
fsiebert1977
 
Beiträge: 172
Registriert: 9. Feb 2005, 19:51
Wohnort: Bad Nauheim

Beitragvon Thomas.Blum » 13. Dez 2005, 12:30

fsiebert1977 hat geschrieben:Du meinst also, dass das zu Lasten der Performance geht?

Ja. Alle Artikel- und Kategorien-Klassen gehen über die generated. Die Slices dagegen nicht.

fsiebert1977 hat geschrieben:Gibt es dann nicht eine Möglichkeit, auf die bereits generierten Artikel zuzugreifen und zu schauen, ob Inhalte da sind?


$a = new article();
$a->setArticleId($articleId);
$a->setCLang($REX['CUR_CLANG']);
$temp = $a->getArticle();

vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon fsiebert1977 » 13. Dez 2005, 14:05

Was passiert in deinem Beispiel? Wird da ein neuer Artikel generiert? Im Prinzip existieren die Artikel ja schon unter generated/articles. Kann man nicht darauf zugreifen? Was meinst du?
Gruß Florian
www.softloop.biz
fsiebert1977
 
Beiträge: 172
Registriert: 9. Feb 2005, 19:51
Wohnort: Bad Nauheim

Beitragvon Thomas.Blum » 13. Dez 2005, 14:14

Hej,

in dem Beispiel hohlst du dir den bereits generierten Inhalt eines bestimmten Artikels in Abhängigkeit der Artikel Id.

Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon fsiebert1977 » 13. Dez 2005, 14:35

Hi Thomas,

vielen Dank, es klappt jetzt. Was ich allerdings noch nicht so richtig verstehe, ist, warum man diese Zwischenschritte machen muss. Ich habe jetzt folgenden Code in meiner Referenzliste, die nach dem selben Prinzip arbeitet:
Code: Alles auswählen
<?php

$oCurArt = OOArticle::getArticleById(REX_ARTICLE_ID);
$curCatId = $oCurArt->getCategoryId();
$oArticles = OOArticle::getArticlesOfCategory($curCatId, true);

echo "<h2>".$oCurArt->_name."</h2>";
echo "<ul>";
foreach($oArticles as $oArticle) {
  $url = $oArticle->getUrl();
  $a = new article();
  $a->setArticleId($oArticle->getId());
  $a->setCLang($REX['CUR_CLANG']);
  $hasContent = $a->getArticle();
  switch($oArticle->_type_id) {
    case 3 :
      $class = "blau";
      break;
    case 4 :
      $class = "gruen";
      break;
    case 5 :
      $class = "rot";
      break;
    default :
      $class = "";
  }
  echo $oArticle->isStartPage() ? "" : "<li class=\"$class\">".($hasContent ? "<a href=\"$url&amp;FORM[titel]=$oArticle->_name\" onclick=\"window.open(this.href, 'reference', 'width=800,height=600,top=' + (screen.availHeight/2-300) + ',left=' + (screen.availWidth/2-400) + ',scrollbars=yes,resizable=yes'); return false;\">" : "").$oArticle->_name.($hasContent ? "</a>" : "")."</li>";
}

echo "</ul>";

?>

Wieso kann ich nicht gleich $oArticle->getArticle() sagen? Da meldet er bei mir, dass es keine Funktion getArticle() in class.article.inc.php gibt. Ich dachte, $oArticle ist auch ein normaler Artikel?
Gruß Florian
www.softloop.biz
fsiebert1977
 
Beiträge: 172
Registriert: 9. Feb 2005, 19:51
Wohnort: Bad Nauheim

Beitragvon Markus.Staab » 13. Dez 2005, 15:52

Hi Florian,

Code: Alles auswählen
$oArticles = OOArticle::getArticlesOfCategory($curCatId, true);

$oArticle ist ein OOArticle

Code: Alles auswählen
$a = new article();

$a ist ein article

Das sind 2 verschiedene Klassen...

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

Beitragvon fsiebert1977 » 13. Dez 2005, 15:55

Ahhhh... ok. Vielen Dank für eure Hilfe.
Gruß Florian
www.softloop.biz
fsiebert1977
 
Beiträge: 172
Registriert: 9. Feb 2005, 19:51
Wohnort: Bad Nauheim

Vorherige

Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast