Seite 1 von 1

Bestimmte Artikel anzeigen????

Verfasst: Do 26. Jan 2006, 09:29
von renasco
Hallo alle zusammen :D

ich fühl mich langsam in diesen Forum richtig wohl :),
Ich wollte auf mein Homepage für die News ein Module zuerstellen bzw. einen zuändern.
Ich hatte vor bei diesen Code hier:

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
************************************************/

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

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

$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_rechts.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 ++) {

			$article = $list->nextArticle();

			$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.'" class="teaser_img">';
				} 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;";

			$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);

	}
}
?>
das so zu ändern, dass nur ab den ersten vier aktuellen Artikel, die Artikeln angezeigt werden.
z.B:
1. Artikel 5
2. Artikel 6
3. Artikel 7
4. Artikel 8
5. .....

Vielen Dank im vorraus!!!!!!! :D

Verfasst: Do 26. Jan 2006, 09:42
von i-fekt
Versuche mal Zeile 78 durch das zu ersetzen?

Code: Alles auswählen

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

Verfasst: Do 26. Jan 2006, 12:01
von rezeptionist
sorry wenn ich jetzt mal saublöd frage

Warum welchen sinn macht es die news ert ab dem 5ten Artikel anzuzeigen was passiert mit den ersten 4 Artikeln ??

Verfasst: Do 26. Jan 2006, 12:16
von i-fekt
Man kann die ersten Artikel optisch anders darstellen als die folgenden. ;)

Verfasst: Do 26. Jan 2006, 12:19
von HerrB
Na ja, aber da kann ich auch mittendrin ein

Code: Alles auswählen

if ($i < 4) { // mach was } else { // mach was anderes }
einbauen ... da baue ich doch das Modul nicht zweimal ein...

Gruß
HerrB

Verfasst: Do 26. Jan 2006, 14:06
von renasco
ich bin mir sicher es gibt andere lösungen, bei mir ist so gewesen, dass mir nur die Lösung in den sinn gekommen ist!!!
Ist auch nicht viel Arbeit :)

Verfasst: Do 26. Jan 2006, 14:07
von i-fekt
renasco hat geschrieben:ich bin mir sicher es gibt andere lösungen, bei mir ist so gewesen, dass mir nur die Lösung in den sinn gekommen ist!!!
Ist auch nicht viel Arbeit :)
:?:

Verfasst: Do 26. Jan 2006, 14:20
von rezeptionist
grins wenn es nicht viel arbeit ist dann viel spaß bin wech 8)

Verfasst: Do 26. Jan 2006, 18:10
von renasco
i-fekt hat geschrieben:Versuche mal Zeile 78 durch das zu ersetzen?

Code: Alles auswählen

for ($i = 4; $i < $limit_art; $i ++) {
Wenn ich das mache werden nur 2 von 6 Artikeln angezeigt
ich bekommen diese Ausgabe:
1. Artikel 1
2. Artikel 2

Anstatt:
1. Artikel 5
2. Artikel 6
3. .....

Bitte helfen!!!! Webmaster im Not :)