Seite 1 von 1

News Modul von Andreas Lindner zwei mal einsetzen

Verfasst: Di 22. Aug 2006, 14:55
von casi1969
Hallo,

ich möchte das News Modul von Andreas Lindner (s.u.) zwei mal im gleichen Template einsetzen. Bei anderen Modulen musste dafür nur eine bestimmte Variable verändert werden. Wie kann man das hier realisieren?

Code: Alles auswählen

<?php


/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     News
* Author(s)   :     Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
* Modified    :     Clemens Koch, OWLweb (added page & browsing support),
* Date        :     22.08.2006
************************************************/

cInclude('classes', 'class.article.php');
cInclude('includes', 'functions.api.string.php');
cInclude('includes', 'functions.api.images.php');

if (!is_object($tpl)) {
   $tpl = new Template;
}

$aperpage = "CMS_VALUE[20]";
if ("CMS_VALUE[21]" != "") {
   $browse = true;
} else {
   $browse = false;
}

if ($aperpage == '') {
   $aperpage = 1000;
}

$pages = 0;

if (!isset ($_GET["p"])) {
   $page = 1;
} else {
   $page = $_GET["p"];
}
$tpl->reset();

$sql = "SELECT
            htmlpath, frontendpath
        FROM
            ".$cfg["tab"]["clients"]."
        WHERE
            idclient = ".$client." ";

$db->query($sql);

if ($db->next_record()) {
   $htmlpath = $db->f('htmlpath');
   $frontendpath = $db->f('frontendpath');
}

// selected category
$selcat = "CMS_VALUE[1]";
//echo "sel $selcat<br>";
$template = "teaser-standard.html";
//echo "tpl $template<br>";
// anzahl der zeichen text
$mxtext = 200;

$limit = "CMS_VALUE[15]";

$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
   $cms_sort_direction = 'desc';
}

if ("CMS_VALUE[3]" == "sortdate") {
   $order = 'lastmodified';
} else {
   $order = 'artsort';
}

$newsheadline = "CMS_VALUE[4]";

$tpl->set('s', 'TITLE', $newsheadline);

if (strlen($selcat) > 0 AND $selcat != '0') {
   $options = array ('idcat' => $selcat, "start" => false, "order" => $order, "direction" => $cms_sort_direction);

   $list = new ArticleCollection($options);

   $count = $list->count;

   if ($count > 0) {
      if (is_numeric($limit) AND strlen($limit) > 0) {
         if ($limit < $list->count) {
            $limit_art = $limit;
         } else {
            $limit_art = $list->count;
         }
      } else {
         $limit_art = $list->count;
      }

      for ($i = 0; $i < $limit_art; $i ++) {

         if (($i % $aperpage) == 0) {
            $pages = $pages +1;
         }

         $article = $list->nextArticle();
         if ($pages == $page) {
            $article_id = $article->getField('idart');

            $teaser_img = '';
            if ($noimg != 'true') {
               $text_html = $article->getContent('CMS_HTML', 1);

               $regEx = "/<img[^>]*?>.*?/i";
               $match = array ();
               preg_match($regEx, $text_html, $match);

               $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
               $img = array ();
               preg_match($regEx, $match[0], $img);
               $img_src = preg_split("/\//", $img[0]);

               $img_name = $img_src[count($img_src) - 1];
               $img_name = preg_replace("/\"/", "", $img_name);
               $img_split = preg_split("/\./", $img_name);
               $img_type = $img_split[count($img_split) - 1];

               $img_split2 = preg_split("/_/", $img_split[0]);

               $name = $img_name;

               if (count($img_split2) > 1) {
                  $img_x = $img_split2[count($img_split2) - 1];
                  $img_y = $img_split2[count($img_split2) - 2];

                  if (is_numeric($img_x) AND is_numeric($img_y)) {
                     $suffix = "_".$img_x."_".$img_y.".".$img_type;
                     $name = preg_replace("/$suffix/", "", $img_name);
                     $name = $name.".[a-zA-Z]{3}";
                  }
               }

               $img_teaser = '';

               if (strlen($name) > 0) {
                  $sql = "SELECT
                                                                                                                                                                                                          *
                                                                                                                                                                                                      FROM
                                                                                                                                                                                                          ".$cfg["tab"]["upl"]."
                                                                                                                                                                                                      WHERE
                                                                                                                                                                                                          filename REGEXP '$name' ";

                  //echo "<pre>"; print_r($sql); echo "</pre>";

                  $db->query($sql);

                  if ($db->next_record()) {
                     $filename = $db->f('filename');
                     $dirname = $db->f('dirname');
                  }

                  $img_path = $cfgClient[$client]["upl"]["path"].$dirname.$filename;

                  $img_size = "CMS_VALUE[14]";

                  $img_teaser = capiImgScale($img_path, $img_size, $img_size, $crop = false, $expand = false, $cacheTime = 1000, $wantHQ = false);
               } // end if strlen

               if (strlen($img_teaser) > 0) {
                  $teaser_img = '<img src="'.$img_teaser.'" alt="" />';
               } else {
                  $teaser_img = '';
               }

            } // end if noimg       

            $headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
            $headline = str_replace($replace, " ", $headline);

            /*            $subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
                        $subheadline = str_replace($replace, " ", $subheadline);*/

            $teaserheadline = /*$subheadline."&nbsp;-&nbsp;".*/
            $headline;
            $href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
            $teasertext = $article->getField('summary');

            if (strlen(trim($teasertext)) == 0) {
               $teasertext = strip_tags($article->getContent('CMS_HTML', 1));
               $teasertext2 = $teasertext;
               $teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
               if ($teasertext != $teasertext2) {
                  $teasertext .= '...';
               }

            } // end if             
            $teasertext = $teasertext."&nbsp;".$next;

            $tpl->set('d', 'HEADLINE', $teaserheadline);
            $tpl->set('d', 'TEXT', $teasertext);
            $tpl->set('d', 'HREF', $href);
            $tpl->set('d', 'IMG', $teaser_img);
            $tpl->set('d', 'MORE', mi18n("mehr"));

            $tpl->next();
         }
      } // end for

      $tpl->generate('templates/'.$template);
      $selcat = $_GET["idcat"];
      if ($pages != 1) {
         $prev = $page -1;
         $next = $page +1;
         echo "<div class=\"newsnavi\">";
         if ($page > 1 && $browse) {
            $href = $sess->url("front_content.php?idcat=$selcat&p=$prev");
            echo "<a href=\"".$href."\">zur&uuml;ck</a>";
         }
         for ($j = 1; $j < $pages +1; $j ++) {
            $href = $sess->url("front_content.php?idcat=$selcat&p=$j");
            if ($j == $page) {
               echo "[<strong>".$j."</strong>]";
            } else {
               echo "[<a href=\"".$href."\">".$j."</a>]";
            }
         }
         echo "";
         if (($pages - $page) != 0 && $browse) {
            $href = $sess->url("front_content.php?idcat=$selcat&p=$next");
            echo "<a href=\"".$href."\">vor</a>";
         }
         echo "</div>";

      }
   }
}
?> 

Verfasst: Di 22. Aug 2006, 17:39
von emergence
hmm...
durch und

Code: Alles auswählen

$_GET["p"]
durch

Code: Alles auswählen

$_GET["p2"] 
ersetzen..., sollte gehen...

Verfasst: Di 22. Aug 2006, 18:22
von casi1969
Vielen Dank emergence!

Das klappt prima, mit den Änderungen kann man die Listen getrennt navigieren, nur wenn man bei den Veranstaltungen die zweite Seite ausgewählt hat und bei den Terminen wechsel will springen die Veranstaltungen zurück auf die erste Seite.

Und nach den ... am Ende des Teasers "Termine" eine 2 oder 3 angezeigt, je nachdem welche News man bei den Veranstaltungen aufruft. http://www.ganztag-blk.de/cms/front_con ... cat=9&p2=2

Wo kommen die Zahlen her?

Verfasst: Fr 25. Aug 2006, 07:35
von casi1969
Hat keiner eine Idee, was man noch ändern müsste, damit beide News-Spalten unabhängig voneinanden funktionieren?

Wäre für jeden Tipp dankbar.