[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Fehlfunktion des Moduls "Kategorie abhängige Sidebar&qu - 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/
®
Beiträge: 21
Registriert: 26. Sep 2005, 14:42
Wohnort: Erfurt

Fehlfunktion des Moduls "Kategorie abhängige Sidebar&qu

5. Okt 2005, 18:24

Hallo,

ich habe das Modul "Kategorie abhängige Sidebar" aus dem Download verwendet, aber ich denke, es funktioniert nicht richtig.

Hier mal das Modul: (braucht nur Ausgabe)

Code: Alles auswählen

<?php
// Suche alle Artikel mit dem Namen "sidebar" in der Aktuellen Kategorie
$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', REX_CATEGORY_ID);

if ( ($numArtikel = count( $SidebarArtikel)) > 0) {
  $ooSidebarArtikel = null;
  for( $i = 0; $i < $numArtikel; $i++) {
    if ( $SidebarArtikel[ $i]->getId() != REX_ARTICLE_ID) {
       $ooSidebarArtikel = $SidebarArtikel[ $i];
       break;
    }
  }

  if ( $ooSidebarArtikel !== null) {
    $artikel = new article();
    $artikel->setArticleId( $ooSidebarArtikel->getId());
    echo $artikel->getArticle();
  }
}
?> 
Die Suche nach "sidebar" beschränkt sich nicht auf die aktuelle Kategorie. Ich bekomme auf allen Seiten eine sidebar ausgegeben, die mitunter in irgendeiner entfernten Kategorie liegt.

Kann das jemand korrigieren.
Danke, Ruben.

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

Re: Fehlfunktion des Moduls "Kategorie abhängige Sideba

5. Okt 2005, 18:54

Hi Ruben,

die Kategorie abhängige Sidebar ist, wie sie in der Modulssammlung ist, nur für REDAXO 2.7.4 zu gebrauchen.

Um Sie auch mit REDAXO 3.0 zu verwenden, musst du folgendes Ändern:

Code: Alles auswählen

$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', REX_CATEGORY_ID);
ersetzen durch

Code: Alles auswählen

$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', false, false, REX_CATEGORY_ID);
Ausserdem brauchst du die CVS Version der Datei class.ooarticle.inc.php

Gruß,
Markus

®
Beiträge: 21
Registriert: 26. Sep 2005, 14:42
Wohnort: Erfurt

5. Okt 2005, 19:04

Ich benutze die Version 2.7(.4?).
Ruben.

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

5. Okt 2005, 19:10

® hat geschrieben:Ich benutze die Version 2.7(.4?).
Ruben.

In der 2.7.4 benötigst du ebenfalls die neuste CVS Version der Datei

http://cvs.berlios.de/cgi-bin/viewcvs.c ... le.inc.php

Ich hab das ganze mal in der Modulsammlung ergänzt.

Gruß,
Markus

®
Beiträge: 21
Registriert: 26. Sep 2005, 14:42
Wohnort: Erfurt

6. Okt 2005, 09:55

Danke, alles supi. Ruben.

®
Beiträge: 21
Registriert: 26. Sep 2005, 14:42
Wohnort: Erfurt

6. Okt 2005, 11:05

Kann man das auch in ein Template einbauen, sodass grundsätzlich an vorbestimmter Stelle, wenn Artikel 'sidebar' vorhanden, dieser eingeblendet wird? Was muss ich da ändern?

(Einfach reinkopiren bringt wieder irgendeinen Artikel 'sidebar'.)

Ruben.

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

6. Okt 2005, 15:02

Hi Ruben,

in Templates ist die "Variable" REX_ARTICLE_ID nicht verfügbar.

Dann muss du anstatt

Code: Alles auswählen

$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', REX_CATEGORY_ID);
folgendes Schreiben:

REDAXO2

Code: Alles auswählen

$catId = $this->getValue('category_id');
$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', $catId);
REDAXO3

Code: Alles auswählen

$article = OOArticle::getArticleById($this->getValue('article_id'));
$catId = $article->isStartPage() ? $article->getId() : $article->getParentId();
$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', false, false, $catId);
Gruß,
Markus
Zuletzt geändert von Markus.Staab am 12. Okt 2005, 18:17, insgesamt 3-mal geändert.

Havard
Beiträge: 150
Registriert: 20. Jan 2005, 19:59

6. Okt 2005, 16:24

wie würde ein solches modul für version 3 aussehen?

müsste doch lediglich folgender code abgeändert werden oder?

Code: Alles auswählen

$catId = $this->isStartPage() ? $this->getId() : $this->getParentId();
$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', $catId); 
wenn ja in was?

Havard
Beiträge: 150
Registriert: 20. Jan 2005, 19:59

6. Okt 2005, 16:53

erhalte nun leider folgende fehlermeldung:

Code: Alles auswählen

Fatal error: Call to undefined function: isstartpage() in /srv/www/htdocs/web13/html/redaxo/include/generated/templates/5.template on line 4
was ist zu tun?

vielen dank für deine bemühungen.

gruß

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

6. Okt 2005, 17:10

Hi,

ich habe das letzte Posting ausgebessert.

Gruß,
Markus

®
Beiträge: 21
Registriert: 26. Sep 2005, 14:42
Wohnort: Erfurt

12. Okt 2005, 17:56

Hi Kills,
ich muss nochmal nerven. Das funktioniert noch nicht.

Problem:
Die Suche nach "sidebar" beschränkt sich nicht auf die aktuelle Kategorie.

Parameter:
Redaxo 3, sämtliche class-Dateien aus dem CVS aktualisiert

Code: Alles auswählen

  <?php 
$article = OOArticle::getArticleById($this->getValue('article_id')); 
$catId = $article->isStartPage() ? $article->getId() : $article->getParentId(); 
$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', $catId);
 
  if ( ($numArtikel = count( $SidebarArtikel)) > 0) { 
  $ooSidebarArtikel = null; 
  for( $i = 0; $i < $numArtikel; $i++) { 
    if ( $SidebarArtikel[ $i]->getId() != REX_ARTICLE_ID) { 
       $ooSidebarArtikel = $SidebarArtikel[ $i]; 
       break; 
    } 
  } 

  if ( $ooSidebarArtikel !== null) { 
    $artikel = new article(); 
    $artikel->setArticleId( $ooSidebarArtikel->getId()); 

    echo $artikel->getArticle(); 
  } 
  } 
  ?>
Vielleicht hast du eine Idee, woran es liegen könnte.
Danke, sagt der Ruben.

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

12. Okt 2005, 18:18

Hi,

ich hab oben nochmals nachgebessert... ;)

Für REDAXO 3 muss es anstatt

Code: Alles auswählen

$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', $catId); 
so heissen:

Code: Alles auswählen

$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', false, false, $catId); 
Gruß,
Markus

Havard
Beiträge: 150
Registriert: 20. Jan 2005, 19:59

16. Okt 2005, 12:09

Folgender Code - eingbracht im Template per include - gibt immer noch keinen Artikel Namens sidebar in einer Kateorie aus (Redaxo 3):

Code: Alles auswählen

<?php
$article = OOArticle::getArticleById($this->getValue('article_id'));
$catId = $article->isStartPage() ? $article->getId() : $article->getParentId();
$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', false, false, $catId); 
 
  if ( ($numArtikel = count( $SidebarArtikel)) > 0) {
  $ooSidebarArtikel = null;
  for( $i = 0; $i < $numArtikel; $i++) {
    if ( $SidebarArtikel[ $i]->getId() != REX_ARTICLE_ID) {
       $ooSidebarArtikel = $SidebarArtikel[ $i];
       break;
    }
  }

  if ( $ooSidebarArtikel !== null) {
    $artikel = new article();
    $artikel->setArticleId( $ooSidebarArtikel->getId());

    echo $artikel->getArticle();
  }
  }
?> 
Hab ich jetzt etwas falsch verstanden??

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

Re: Fehlfunktion des Moduls "Kategorie abhängige Sideba

17. Okt 2005, 16:36

kills hat geschrieben: Ausserdem brauchst du die CVS Version der Datei class.ooarticle.inc.php
Das hast du beachtet?

Gruß,
Markus

Havard
Beiträge: 150
Registriert: 20. Jan 2005, 19:59

17. Okt 2005, 18:21

Ist bereits ausgetauscht worden.
Es kommt zwar zu keiner Fehlermeldung - ausgegeben wird jedoch auch nichts.

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

17. Okt 2005, 18:59

Hi Havard,

Verwendung als Modul:

Code: Alles auswählen

<?php
$article = OOArticle::getArticleById(REX_ARTICLE_ID);
$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', false, false, REX_CATEGORY_ID);
 
if ( ($numArtikel = count( $SidebarArtikel)) > 0) {
  $ooSidebarArtikel = null;
  for( $i = 0; $i < $numArtikel; $i++) {
    if ( $SidebarArtikel[ $i]->getId() != REX_ARTICLE_ID) {
       $ooSidebarArtikel = $SidebarArtikel[ $i];
       break;
    }
  }


  if ( $ooSidebarArtikel !== null) {
    $artikel = new article();
    $artikel->setArticleId( $ooSidebarArtikel->getId());

    echo $artikel->getArticle();
  }
}
?>
Verwendung als Template:

Code: Alles auswählen

<?php
$article = OOArticle::getArticleById($this->getValue('article_id'));
$catId = $article->isStartPage() ? $article->getId() : $article->getParentId();
$SidebarArtikel = OOArticle::searchArticlesByName( 'sidebar', false, false, $catId);
 
if ( ($numArtikel = count( $SidebarArtikel)) > 0) {
  $ooSidebarArtikel = null;
  for( $i = 0; $i < $numArtikel; $i++) {
    if ( $SidebarArtikel[ $i]->getId() != $this->getValue('article_id')) {
       $ooSidebarArtikel = $SidebarArtikel[ $i];
       break;
    }
  }


  if ( $ooSidebarArtikel !== null) {
    $artikel = new article();
    $artikel->setArticleId( $ooSidebarArtikel->getId());

    echo $artikel->getArticle();
  }
}
?>
Mit der aktuellen CVS Version (von allen Dateien!), sollte die 1. Methode auch im Template funktionieren!

Gruß,
Markus

Zurück zu „Allgemeines [R2]“