Teaser rechts

wizzarts
Beiträge: 12
Registriert: So 14. Dez 2008, 19:20
Wohnort: Bonn
Kontaktdaten:

Teaser rechts

Beitrag von wizzarts » Mi 1. Jul 2009, 08:04

Hallo,

ich würde gerne einen bestimmten Artikel im Container 60 (Teaser-rechts) anzeigen lassen, und das in allen Artikeln. Er soll so etwas wie Neuerscheinungen enthalten und im Artikel-Editor jederzeit geändert werden können, so, dass er automatisch überall geändert wird.

Ich stelle es mir so vor:

Eine unsichtbare Kategorie enthält einen online-gestellten Artikel mit einem eigenen Layout. Der Teaser_Rechts enthält einen festen Link auf diesen Artikel und übernimmt Titel, Text und Bild über Variablen (wie bei der Newsliste).

Zur Zeit benutze ich ein Template mit einem Text-Container, das ich in das Standard-Layout dem Container 60 zugewiesen habe. Das funktioniert, nur dass ich bei jedem Artikel den Inhalt manuell einfügen muß.

Das ist nicht so ganz befriedigend. Über RSS-Feed und Article_Include komme ich nicht weiter. Die Strukturtiefe des Codes übersteigt ein wenig meinen Horizont und es würde zu lange dauern, mich einzuarbeiten.

Kann jemand helfen?
Auf dem Weg nach oben gib jedem die Hand,
denn auf dem Weg nach unten triffst Du sie alle wieder.

Kozu
Beiträge: 42
Registriert: Mo 27. Aug 2007, 11:38
Kontaktdaten:

Re: Teaser rechts

Beitrag von Kozu » Mi 1. Jul 2009, 16:22

Hätte jetzt spontan auch direkt an Article-Include gedacht. Warum kommst du damit nicht weiter? Was genau ist dein Problem?

wizzarts
Beiträge: 12
Registriert: So 14. Dez 2008, 19:20
Wohnort: Bonn
Kontaktdaten:

Re: Teaser rechts

Beitrag von wizzarts » Mi 1. Jul 2009, 19:05

Salut,

nun, es ist, wie ich gesagt habe. Ohne ein Verständnis der Architektur des Programmes ist es für mich nicht leicht, mir einen Überblick zu verschaffen. Ich bin fit in Sachen CSS und HTML, ein wenig PHP. Aber diese weitreichende Verschachtelung ohne wirkliche Doku (Über Joomla z.B. gibt es massig Literatur und Refs) sind eine harte Nuss für mich als Contenido-Einsteiger.

Ich habe folgendes gemacht:

In meinem Standard-Layout unter Container 60 Article_Include ausgewählt und unter Konfiguration die versteckte Kategorie und den entsprechenden Artikel ausgewählt. Der Artikel basiert auf einem Layout mit nur einem Container, das mit einem neu-erstellten Template verknüpft ist.

Aber im Frontend wird nichts angezeigt.

Ich wünschte, es gäbe irgendwo eine Schritt-für-Schritt Anleitung. (So eine für Leute wie mich)

Dank Dir schon einmal im Voraus
Auf dem Weg nach oben gib jedem die Hand,
denn auf dem Weg nach unten triffst Du sie alle wieder.

Kozu
Beiträge: 42
Registriert: Mo 27. Aug 2007, 11:38
Kontaktdaten:

Re: Teaser rechts

Beitrag von Kozu » Do 2. Jul 2009, 08:45

wizzarts hat geschrieben:In meinem Standard-Layout unter Container 60 Article_Include ausgewählt und unter Konfiguration die versteckte Kategorie und den entsprechenden Artikel ausgewählt. Der Artikel basiert auf einem Layout mit nur einem Container, das mit einem neu-erstellten Template verknüpft ist.
Das sieht ja schonmal ganz gut aus. Was genau meinst du mit "versteckter Kategorie"? Mögliche Fehlerquellen könnten sein:

- Die Kategorie, in der du die Teaser-Artikel abgelegt hast, ist offline
- Die Teaser-Artikel sind offline
- Im Layout, worauf das Template deines Teaser-Artikels basiert, fehlen vor dem Inhalt, der im Teaser angezeigt werden soll: <!--start:content--> und danach <!--end:content-->

Bei mir sieht das ganze so aus, also das Layout für den Teaser-Artikel (bei mir "Kontextbox" genannt):

Code: Alles auswählen

<html>

<head>
  <link rel="stylesheet" type="text/css" href="/cms/css/styles.css" media="text/screen">
</head>

<body>
<!--start:content-->
<div class="kontextbox">
<container id="28" name="kontextbox1" mode="mandatory">Kontextbox1</container>
<container id="29" name="kontextbox2" mode="mandatory">Kontextbox2</container>
</div>
<!--end:content-->
</body>
</html>

Kozu
Beiträge: 42
Registriert: Mo 27. Aug 2007, 11:38
Kontaktdaten:

Re: Teaser rechts

Beitrag von Kozu » Do 2. Jul 2009, 08:47

Noch was: Am Modul an sich habe ich nichts verändert. Auch ich habe keine Ahnung von PHP. Das funzte direkt.

wizzarts
Beiträge: 12
Registriert: So 14. Dez 2008, 19:20
Wohnort: Bonn
Kontaktdaten:

Re: Teaser rechts

Beitrag von wizzarts » Do 2. Jul 2009, 10:44

Habs ausprobiert, aber es geht nicht.

Die Kategorie war offline, hab sie online gesetzt mit dem Ergebnis, dass ich jetzt den Link in meiner Navi habe, was ich nicht wollte. Aber dennoch keinen Erfolg.

Vielleicht zur Erklärung:

Ich möchte in der rechten Spalte, auf jeder Artikelseite gleich, eine Infobox mit Neuerscheinungen, Goodies und so weiter haben, die aber nirgends hin verlinkt sind. (Mehr als das, was dort steht, wird im Artikel auch nicht stehen und ich möchte keinen zusätzlichen Klick)

Zur Zeit habe ich eine Textbox gebaut und in Container 60 eingefügt, muss aber nun in jedem Artikel die Infobox rechts einfügen.

Ich dachte, es geht einfacher, wenn ich nur einen "Info-Artikel" habe, den ich dann bearbeite.

Danke Dir aber dennoch für Deine Hilfe.

Gruß

3ndy
Auf dem Weg nach oben gib jedem die Hand,
denn auf dem Weg nach unten triffst Du sie alle wieder.

wizzarts
Beiträge: 12
Registriert: So 14. Dez 2008, 19:20
Wohnort: Bonn
Kontaktdaten:

Re: Teaser rechts

Beitrag von wizzarts » Do 2. Jul 2009, 10:47

Nachtrag:

Seltsamerweise funktioniert es mit der Startseite, die das Newsliste-Template hat. Die Kategorie ist auch offline.

??????

Keiner mag mich :(
Auf dem Weg nach oben gib jedem die Hand,
denn auf dem Weg nach unten triffst Du sie alle wieder.

Kozu
Beiträge: 42
Registriert: Mo 27. Aug 2007, 11:38
Kontaktdaten:

Re: Teaser rechts

Beitrag von Kozu » Do 2. Jul 2009, 11:40

Mmh, weiß auch nicht. Also ich kann dir jetzt eigentlich nur vorschlagen, alles nochmal von vorne zu machen:

1.) Du installierst das Modul Article_Include:

Eingabe:

Code: Alles auswählen

?><?php
/**
* $RCSfile$
*
* Description: Article Include Input
*
* @version 1.0.0
* @author Willi Man
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2003-12-18
* modified 2004-01-02
* modified 2005-08-05 Andreas Lindner
* }}
*
* $Id$
*/

#Get current settings
$name         = "CMS_VAR[1]";
$cms_idcat    = "CMS_VALUE[1]";
$cms_idcatart = "CMS_VALUE[2]";

#Cat selector
echo buildCategorySelect($name, $cms_idcat);

$bDebug = false;
if ($bDebug)
    echo "<pre>cat $cms_idcat catart $cms_idcatart client $client lang $lang <br>webpath ".$cfgClient[$client]['path']['htmlpath']."</pre>";

echo '<table cellpadding="0" cellspacing="0" border="0">';

#Article selector
echo '
      <tr><td class="text_medium" style="padding:5px">'.mi18n("Artikel wählen").': </td></tr>
      <tr><td class="text_medium" style="padding:5px">';
echo '<select name="CMS_VAR[2]" style="width:240px">';
echo '<option value="" selected>'.i18n("Please choose").'</option>';

if ($cms_idcat != "0" && strlen($cms_idcat) > 0) {
    $sql = "SELECT
                        a.title AS title,
                        b.idcatart AS idcatart
                    FROM
                        ".$cfg["tab"]["art_lang"]." AS a,
                        ".$cfg["tab"]["cat_art"]." AS b
                        WHERE
                        b.idcat = '".$cms_idcat."' AND
                        a.idart = b.idart AND
                        a.idlang = '".$lang."'";

    $db->query($sql);

    while ($db->next_record()) {

        $catartid = $db->f('idcatart');
        $title = $db->f('title');

        if ($cms_idcatart != $catartid) {
            echo '<option value="'.$catartid.'">&nbsp;'.$title.'</option>';
        } else {
            echo '<option selected="selected" value="'.$catartid.'">&nbsp;'.$title.'</option>';
        }

    }
}

echo '</select>&nbsp;<input type="image" src="images/submit.gif">';
echo '</td></tr></table>';
?><?php
Ausgabe:

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: Article Include Output
*
* @version 1.0.0
* @author Willi Man
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2003-12-18
* modified 2004-01-02
* modified 2005-08-05 Andreas Lindner
* }}
*
* $Id$
*/

#Get current settings
$cms_idcat    = "CMS_VALUE[1]";
$cms_idcatart = "CMS_VALUE[2]";

$bDebug = false;

#Check data
$cms_idcat    = (int)$cms_idcat;
$cms_idcatart = (int)$cms_idcatart;

if ($bDebug) {
   echo "<pre> cat $cms_idcat catart $cms_idcatart</pre>";
}

if ($cms_idcat >= 0 && $cms_idcatart >= 0)
{
   $bArticleAvailable = false;
   # Get idcat, idcatart, idart and lastmodified from the database
   $sql = "SELECT A.idart AS idart, A.idcat AS idcat, A.createcode AS createcode,
                  A.idcatart AS idcatart, B.lastmodified AS lastmodified
           FROM ".$cfg["tab"]["cat_art"]." AS A, ".$cfg["tab"]["art_lang"]." AS B
           WHERE
            A.idart = B.idart AND
            B.online = 1 AND ";

   if ($cms_idcatart == 0)
   {
      $sql .= "A.idcat = '" . $cms_idcat . "' ORDER BY B.lastmodified DESC"; # Only idcat specified, get latest article of category
   } else {
      $sql .= "A.idcatart = '" . $cms_idcatart . "'"; # Article specified
   }

   if ($bDebug)
   {
      echo "<pre>";
      print_r($sql);
      echo "</pre>";
   }
   $db->query($sql);

   if ($db->next_record())
   { 
      $bArticleAvailable = true; 
      $iIDCatArt   = $db->f("idcatart"); 
      $iIDCat      = $db->f("idcat"); 
      $iIDArt      = $db->f("idart"); 
      $iCreateCode = $db->f("createcode"); 
      $sModified   = $db->f("lastmodified"); 
   } 

   $db->free();

   # Check if category is online or protected
   $sql = "SELECT public, visible 
           FROM " . $cfg["tab"]["cat_lang"] . " 
           WHERE idcat = '" . $iIDCat . "' AND idlang = '" . $lang . "'";
   
   if ($bDebug)
   {
      echo "<pre>";
      print_r($sql);
      echo "</pre>";
   }
   
   $db->query($sql);
   $db->next_record();

   $iPublic  = $db->f("public");
   $iVisible = $db->f("visible"); 

   $db->free(); 

   # Check if article is online
   # Not needed anymore, as only online articles are used
   /* $sql = "SELECT online FROM " . $cfg["tab"]["art_lang"] . "
           WHERE idart = '" . $cms_artid . "' AND idlang = '" . $lang . "'";

   if ($bDebug)
   {
      echo "<pre>";
      print_r($sql);
      echo "</pre>";
   }
   $db->query($sql);
   $db->next_record();

   $online = $db->f("online");

   $db->free(); */

   # If the article is online and the according category is not protected and visible, include the article
   if ($bArticleAvailable && $iPublic == 1 && $iVisible == 1) 
   { 
      # Check, if code creation is necessary 
      # Note, that createcode may be 0, but no code is available (all code for other languages will be deleted in 
      # front_content, if code for one language will be created). This "bug" may be fixed in future releases. 
      if ($iCreateCode == 0) 
      { 
         $sql = "SELECT count(*) AS CodeCount FROM " . $cfg["tab"]["code"] . " 
                 WHERE idcatart = '" . $iIDCatArt . "' AND idlang = '" . $lang . "'";
         
         if ($bDebug)
         {
            echo "<pre>";
            print_r($sql);
            echo "</pre>";
         }

         $db->query($sql);
         $db->next_record();

         if ($db->f("CodeCount") == 0) {
            $iCreateCode = 1;
         }
         $db->free();
      }

      # Create code if necessary
      if ($iCreateCode == 1)
      {
         cInclude('includes', 'functions.con.php');
         cInclude('includes', 'functions.tpl.php');
         cInclude('includes', 'functions.mod.php');

         conGenerateCode($iIDCat, $iIDArt, $lang, $client);
      } 

      # Get code from database and execute it 
      $sql = "SELECT code FROM " . $cfg["tab"]["code"] . " 
              WHERE idcatart = '" . $iIDCatArt . "' AND idlang = '" . $lang . "'";

      if ($bDebug)
      {
         echo "<pre>"; 
         print_r($sql); 
         echo "</pre>"; 
      } 

      $db->query($sql); 

      if ($db->next_record()) 
      {
         $sCode = stripslashes($db->f("code")); 
         $db->free(); 

         ob_start();
         eval("?>
".$sCode."
<?php
");
         $sCode = ob_get_contents();

         # Clean buffer
         ob_end_clean();

         $iStartPos = strpos($sCode, "<!--start:content-->");
         $iEndPos   = strpos($sCode, "<!--end:content-->");
         $iDiffLen  = $iEndPos - $iStartPos;

         $sCode = substr($sCode, $iStartPos, $iDiffLen);

         echo $sCode;
      } else {
         echo "<!-- ERROR in module Article Include<pre>no code created for article to include!<br>idcat $cms_catid, idart $cms_artid, idlang $lang, idclient $client</pre>-->";
      }
   }
}
?>
2.) Layout anlegen (wie oben veröffentlicht)
3.) Template für Kontextbox (bei dir: Teaser-Artikel rechts) anlegen
4.) Modul in dein Artikel-Tamplate (also den Hauptartikel, wo der Teaser eingebunden werden soll) einbinden
5.) Eine Kategorie erstellen, die nicht in deiner Navigation eingebunden, aber online ist (wenn du die Kategorie nicht in deiner Navigation haben willst, musst du sie einfach als eigenen Baum anlegen, nicht als Unterpunkt des Baums, auf dem deine Navigation basiert)
6.) Artikel in dieser Kategorie anlegen mit dem Template, das du unter Punkt 3 erstellt hast.
7.) Artikel online schalten
8.) In der Kategorie- oder Artikelkonfiguration deines Hauptartikels (nicht die Kontextbox, also der Teaser-Artikel) den Artikel, den du unter Punkt 6 erstellt hast einbinden

So funktionierts bei mir.

wizzarts
Beiträge: 12
Registriert: So 14. Dez 2008, 19:20
Wohnort: Bonn
Kontaktdaten:

Re: Teaser rechts

Beitrag von wizzarts » Do 2. Jul 2009, 12:15

Hey, Dank Dir

das sieht ja mal gut aus. Werde mich heute Nacht dransetzen. Gut ist auch der Tipp mit dem neuen Baum. Das allein hilft mir schon bei vielem weiter.

Kann ich solch einen Baum auch abgesetzt vom anderen Linkbaum mit etwas anderem Design erscheinen lassen? Wahrscheinlich ja, wenn ich einen neuen Container erstelle, diesen Baum auswähle und neue CSS-Styles einbinde. Werds mal probieren.

Recht herzlichen Dank

3ndy
Auf dem Weg nach oben gib jedem die Hand,
denn auf dem Weg nach unten triffst Du sie alle wieder.

wizzarts
Beiträge: 12
Registriert: So 14. Dez 2008, 19:20
Wohnort: Bonn
Kontaktdaten:

Re: Teaser rechts

Beitrag von wizzarts » Do 2. Jul 2009, 21:06

Ich geb auf,

ich würde gerne auf Dein Angebot zurückkommen.

Ich bin wie folgt vorgegangen:

1) Ich habe den Code von Dir in das Modul Article_Include eingefügt.
2) Ich habe das Layout "Kontextbox" angelegt. (Hab Deinen Code benutzt und Deine Bezeichnungen, damit Du Dich zurecht findest.)
3) Ich habe wie beschrieben das Template "Kontextbox" erstellt.
4) Ich habe in meinem Standard-Template (ist mein Haupt-Template für Artikel) das Modul "Article_Include" eingefügt.
5) Ich habe die Kategorie News-Artikel-Rechts als Baum erstellt und Online gesetzt.
6) Ich habe den Artikel eingefügt und Online gesetzt.
7) Ich habe in der Artikelkonfiguration "Blasmusik" den Artikel eingefügt.
8) Ich bin verzweifelt.
9) Ich habe aufgegeben.
10) Schreibe grad die Antwort.
11) Schicke Dir Daten als PM

Dank Dir schon mal.

Gruß

3ndy
Auf dem Weg nach oben gib jedem die Hand,
denn auf dem Weg nach unten triffst Du sie alle wieder.

Kozu
Beiträge: 42
Registriert: Mo 27. Aug 2007, 11:38
Kontaktdaten:

Re: Teaser rechts

Beitrag von Kozu » Fr 3. Jul 2009, 13:47

Es geht jetzt. Siehe PN.

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Article_Include generell

Beitrag von McHubi » Mi 22. Jul 2009, 10:46

Hallo zusammen,

ich teste gerade ein wenig den Beispielmandanten der Version 4.8.12 und hänge beim Modul article_include.

Ich nutze dafür das Standard-Layout und habe im Standard-Template in einem "freien" Container das Modul ausgewählt. In der Artikelkonfiguration wird das Modul auch mit seinen beiden Dropdowns angezeigt und es lässt sich ein einzubindender Artikel auswählen. So weit so gut, allerdings wird im Frontend nichts angezeigt.

Ich habe dann ein eigenes Layout angelegt, d. h. das obige Beispiel 1 zu 1 (bis auf die Einbindung der css-Datei/en) übernommen - siehe Post von Kozu » Do Jul 02, 2009 7:45 am. Das Ergebnis ist das gleiche.

Was läuft falsch? Vielleicht hab ich nur eine Kleinigkeit übersehen?

Vielen Dank für einen Tipp!
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

Kozu
Beiträge: 42
Registriert: Mo 27. Aug 2007, 11:38
Kontaktdaten:

Re: Article_Include generell

Beitrag von Kozu » Mi 22. Jul 2009, 14:57

McHubi hat geschrieben:In der Artikelkonfiguration wird das Modul auch mit seinen beiden Dropdowns angezeigt und es lässt sich ein einzubindender Artikel auswählen. So weit so gut, allerdings wird im Frontend nichts angezeigt.
Da würden mir spontan zwei Fehler einfallen:

1.) Der Artikel, der eingebunden werden soll, ist offline.
2.) Der Artikel, der eingebunden werden soll, ist leer, also enthält keinen Text/kein Bild etc.

Dumme Nachfrage: Der Artikel, der eingebunden werden soll, verfügt über ein eigenes Template mit wenigstens einem Text- oder Bildmodul?

Gruß,
Kozu

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Teaser rechts

Beitrag von McHubi » Do 23. Jul 2009, 06:42

Hi Kozu,

tja, das ist es leider beides nicht. Habe zum Einbinden den Artikel der Startseite vom Beispielmandanten gewählt. Und der ist in jedem Fall mit Inhalten online...
Es funzt aber auch mit anderen Artikeln nicht.

Inwiefern fragst Du nach einem eigenen Template? Ohne Template gäbs ja an sich keinen Artikel... In den Kategorien waren Templates zugeordnet. Da in der Artikelübersicht bei Template "--- kein ---" angezeigt wurde, hab ich also auch hier ein Template dem Artikel direkt zugeordnet. Falls Du das damit meinst. - Bringt aber auch nichts...

Großes Rätsel :?
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

matthiasschnueriger
Beiträge: 60
Registriert: Mo 28. Nov 2005, 16:01
Kontaktdaten:

Re: Teaser rechts

Beitrag von matthiasschnueriger » Di 1. Jun 2010, 22:11

Weiss nicht, ob dieser Thread momentan noch jemanden interessiert bzw. ob das Problem gelöst wurde.

Ich hatte genau dasselbe Problem und zwar dass ich einen gewünschten Artikel im Backend zuweisen konnte, dieser im Frontend jedoch nicht angezeigt wurde.
Das Lösung ist ganz einfach: Und zwar müssen ALLE Templates unter "Kategorien" neu gespeichert werden. Scheinbar wird das nicht automatisch übernommen, obwohl es die korrekte Artikel-Include-Datei anzeigt.

MfG

Gesperrt