News-Modul mit flexiblem "mehr" - gelöst

kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

mvf hat geschrieben:
kloevekorn hat geschrieben:??????? worauf willst du hinaus?
schau mal oben meinen letzten code, den habe ich editiert, + link

dann nimm den link mit dem {MORE} aus dem template und guck oben.

wenn der orgtext länger ist dann wird der link samt more an die $teasertext gehangen ansonsten nicht

das ist mein ansatz
Ich glaub, das klappt :D . Nur um den eigentlichen Link ergänzen und dann MORE aus dem Template raus.

Aber das check ich morgen und berichte, okay? Gute Nacht!

Thumbs up!
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

probier mal den letzten code von mir
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

mvf hat geschrieben:probier mal den letzten code von mir
habe ich doch, der funzt!!!!!!

Nur ich habe jetzt keinen Nerv mehr, den Link auch einzubauen einzubauen.

Mich wundert nur, wie lange ich gebraucht habe zu kapieren, dass man den MORE aus dem Template einfach rausschmeißen kann
:? . Naja und den Eingreifpunkt im Moduloutput habe ich auch nicht erkannt.

Hätte ich deinen Ansatz früher erkannt, hätten wir uns die Hälfte des Threads sparen können und wär auch klar gekommen.
:D - :(
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

Code: Alles auswählen

         if (strlen(trim($teasertext)) == 0) {
            $teasertext = strip_tags($article->getContent('CMS_HTML', 1));
            $teasertext2 = $teasertext;
            $teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
            if ($teasertext2 > $teasertext) {
               $teasertext.= ' ... <a href="'.$href.'" style="color:rgb(190,190,190);">'.mi18n("mehr").'</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.$href.'"><img src="images/navi_pfeil_rechts.gif" border="0" alt="'.mi18n("mehr").'" title="'.mi18n("mehr").'"/>';
            }
            
         } // end if            

      

         $tpl->set('d', 'HEADLINE', $teaserheadline);
         $tpl->set('d', 'TEXT', $teasertext);
         $tpl->set('d', 'HREF', $href);
         $tpl->set('d', 'IMG', $teaser_img);
         
         $tpl->next();

		} // end for

		$tpl->generate('templates/'.$template);

	}
}
?>
mit link, tested und funzt hier mit und ohne bild
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

mvf hat geschrieben: mit link, tested und funzt hier mit und ohne bild

funzt in der Tat - wow!!!

1000x Danke!

Grüße!
(Jetzt husch ins Körbchen - ist spät :D )
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

freue mich immer wieder wenn ich auch mal helfen kann, auch wennich eben noch ein greenhorn bin ;)

habe schon soviel vom board profitiert, dass es Zeit wird auch zu geben :)

@mods:
von mir aus kann der gesamte thread gerne gekürzt werden, sorry das wir uns so lang und breit hier ausgelassen haben, also einfach löschen bis auf den letzten code der funzt, sorry und merci

gute nach, ich bin nightshifter, bei mir gehts noch weiter ;)
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

mvf hat geschrieben: @mods:
von mir aus kann der gesamte thread gerne gekürzt werden, sorry das wir uns so lang und breit hier ausgelassen haben, also einfach löschen bis auf den letzten code der funzt, sorry und merci
schließe mich meinem geneigten Vorredner an. Manchmal sieht man den Wald vor lauter Bäumen nicht.

Unten kommt final-output-code des News-Moduls aus der 4.6.4., in dem das "mehr" nicht mehr aus der teaser_standard.html kommt und flexibel auf die eingestellte Teaserlänge generiert wird (oder eben nicht.) In der teaser_standard.html den "MORE"-Teil auskommentieren.

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
* changed    :      16.12.20005/mvf ("mehr")
************************************************/

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-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 ++) {

			$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 ($teasertext2 > $teasertext) {
               $teasertext.= ' ... <a href="'.$href.'" title="'.mi18n("Artikel weiterlesen").'" style="color:#blue;">'.mi18n("weiterlesen").'</a>';
            }
           
         } // end if   	
            

			$teasertext = $teasertext."&nbsp;";

			$tpl->set('d', 'HEADLINE2', $teaserheadline);
                        $tpl->set('d',"HEADLINE3",$subheadline);


			$tpl->set('d', 'TEXT', $teasertext);
			$tpl->set('d', 'HREF', $href);
			$tpl->set('d', 'IMG', $teaser_img);
			/* nicht mehr nötig, weil das MORE abhängig von der Artikellänge in diesem Modul generiert wird:
		        $tpl->set('d', 'MORE', mi18n("mehr"));
		    */
			$tpl->next();

		} // end for

		$tpl->generate('templates/'.$template);


	}
	
}
?>
Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Beitrag von Dinkel »

der Input-Code bleibt der alte vom News-modul?
selbstentwickelte Module:
Downloads und Infos zu den Modulen: gibt es hier.
Modul: Forum | Version 0.9 | getestet: 4.6.24 MR, 4.8.11, 4.8.11 AMR
Modul: Galleriffic | Version: 0.3.4 BETA | getestet: 4.8.11, 4.8.11 AMR, 4.8.12, 4.8.12 AMR
Modul: Metadata | Version: 2.0 | getestet: 4.9.7, 4.9.7 AMR
Modul: Slider Gallery | Version: 1.0 | getestet: 4.9.12 AMR
Modul: Up- & Download | Version: 4.1 | getestet: 4.9.12 AMR
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

Dinkel hat geschrieben:der Input-Code bleibt der alte vom News-modul?
yep und wenn du gerade reinstolperst aufgrund deines threads "Alle Artikel einer Kategorie ausgeben" dann kannst du $mxtext = 200; auch auskommentieren und den unteren teil des outputs anpassen.

das sollten wir dann aber in deinem thread diskutieren, damit nicht alles durcheinander geht. ;)
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

sorry doppelpost
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
Gesperrt