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

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

Beitrag von mvf »

kloevekorn hat geschrieben:
punkte weg
sind tatsächlich weg.
fein dann jetzt (letztes post habe ich nochmal den unteren teil enfernt war murx :) ) hier jetzt auch oben och ne temp variable

Code: Alles auswählen

         if (strlen(trim($teasertext)) == 0) {
            $teasertext = strip_tags($article->getContent('CMS_HTML', 1));
            $teasertext2 = $teasertext;
            $teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
            if ($teasertext <= $teasertext2) {
               $teasertext.= '';
            } else {
               $temp_teasertext = $teasertext;
               $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);
			
			if ($teasertext2 > $temp_teasertext) {
            $tpl->set('d', 'MORE', mi18n("mehr"));
            } 

			$tpl->next();
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 »

Das "mehr" ist immer da.

Wenn ein Artikel keinen Inhalt hat, steht da der Platzhalter {MORE}
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

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.= '...';
            } 
				
			} // 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);
			
			if ($teasertext2 > $teasertext) {
            $tpl->set('d', 'MORE', mi18n("mehr"));
            } 

			$tpl->next();
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 »

ich glaube, ohne das html-template anzufassen, wird das nichts. Die Funktionalität kann man ganz klar im Modul abbilden. Aber das {MORE} wird man so nicht los.

Man muss irgendwie eine Überprüfung im Template durchführen können.
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

erfasst am: Fr Dez 16, 2005 11:01 pm Titel: Antworten mit Zitat
probier mal

Code:
if (strlen(trim($teasertext)) == 0) {
$teasertext = strip_tags($article->getContent('CMS_HTML', 1));
$teasertext2 = $teasertext;
$teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
if ($teasertext2 > $teasertext) {
$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);

if ($teasertext2 > $teasertext) {
$tpl->set('d', 'MORE', mi18n("mehr"));
}

$tpl->next();

_________________
Grüsse, Guido[/code]

Nur die Platzhalter MORE[/code]
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

neuer versuch:

Code: Alles auswählen

         if (strlen(trim($teasertext)) == 0) {
            $teasertext = strip_tags($article->getContent('CMS_HTML', 1));
            $teasertext2 = $teasertext;
            $teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
            $temp_teasertext = $teasertext;
            if ($teasertext2 > $teasertext) {
               $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);
			
			if (($teasertext2 > $temp_teasertext) {
            $tpl->set('d', 'MORE', mi18n("mehr"));
            } 

			$tpl->next();
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 »

kloevekorn hat geschrieben:ich glaube, ohne das html-template anzufassen, wird das nichts. Die Funktionalität kann man ganz klar im Modul abbilden. Aber das {MORE} wird man so nicht los.

Man muss irgendwie eine Überprüfung im Template durchführen können.
glaube ich nicht denn wenn man im template ein {img} hat und keines mitgegeben weir, sollte da auch kein leerer platzhalter erscheinen.

da wo wir murxen passt des schon mas muss nur sehen dass man deas template set für more rauskriegt. pack doch mal in das template ine {Hallo}

ob das was beinflusst dann weist du es wei ein hallo wird nicht mitgegeben ;) aber ich bin eben auch newbie und probieren geht über studieren
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 »

Wahnsinniger :wink: (danke, wie du dich reinkniest)

Die Unterscheidung langer/kurzer Artikel klappt .... aber das MORE ... still there.

Das Modul wäre so wohl ok. Aber man muss an die Templates. Vielleicht hat ja noch jemand ne Idee, wie man die Platzhalter zu fassen kriegt.
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

da wo wir murxen passt des schon mas muss nur sehen dass man deas template set für more rauskriegt. pack doch mal in das template ine {Hallo}

ob das was beinflusst dann weist du es wei ein hallo wird nicht mitgegeben Wink aber ich bin eben auch newbie und probieren geht über studieren
Klar wird da Hallo ausgegeben, die Namen für die Platzhalter können frei vergeben werden.[/quote]
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

ob das was beinflusst dann weist du es wei ein hallo wird nicht mitgegeben ;) aber ich bin eben auch newbie und probieren geht über studieren
muss mich korrigieren, da steht dann {IMG}

:(


dannmuss das mor aus dem template raus un mit in den teasertext rein, also wenn der orgtext länger ist dann soll teasertext= anzahl gesetzter wörter und danach noch ein leerzeichen die 3 ... und dann wieder ein leerzeichenund des more

des sollte dann gehen
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 »

try

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.= ' ... ' .  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();
und des more erst mal raus aus dem template

um den anker/link kümmern wir uns wenn die anzeige passt
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:

dannmuss das mor aus dem template raus un mit in den teasertext rein, also wenn der orgtext länger ist dann soll teasertext= anzahl gesetzter wörter und danach noch ein leerzeichen die 3 ... und dann wieder ein leerzeichenund des more

des sollte dann gehen
Richtig, aber ist es nicht so, dass die ganze Seite ganz zum Schluss komplett generiert wird mit allen Artikeln. Will sagen, es gibt keine Schleife mehr, in die man aus dem Modul was zwischen die Artikel schreiben könnte:

Code: Alles auswählen

} // end for

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


	}
	
}
?>
Oder habe ich das falsch verstanden?
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

??? immer nur des snippet ersetzen darunte bleibt alles schpn stehen ???

hier mal das ganze ende ab eben dem if

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>';
            }
            
         } // 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);

	}
}
?>
editiert neue variante mit link
Zuletzt geändert von mvf am Fr 16. Dez 2005, 23:21, insgesamt 1-mal geändert.
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:??? immer nur des snippet ersetzen darunte bleibt alles schpn stehen ???

hier mal das ganze ende ab eben dem if

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.= ' ... ' .  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);

	}
}
?>
??????? worauf willst du hinaus?
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

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