Seite 11 von 12
Verfasst: Sa 3. Feb 2007, 17:35
von Katrin
Ich habe basierend auf der Version 1.02 eine kleine Änderung gemacht. Damit wird der Link "mehr" nur angezeigt wenn der Text auch wirklich länger ist als die als maximal eingestellte Teaserlänge. Ich weiß nicht, ob es nicht vielleicht auch noch eine elegantere Lösung gibt aber es funktioniert und vielleicht kann's ja jemand gebrauchen!
Im Output Modul
Code: Alles auswählen
if (strlen($sTmpValue) > $aSettings["TeaserLength"]) {
$sTmpValue = substr($sTmpValue, 0, $aSettings["TeaserLength"])."...";
}
ersetzen durch
Code: Alles auswählen
if (strlen($sTmpValue) > $aSettings["TeaserLength"]) {
$sTmpValue = substr($sTmpValue, 0, $aSettings["TeaserLength"])."...";
$more = true;
}
else if (strlen($sTmpValue) < $aSettings["TeaserLenght"]){
$more = false;
}
und
Code: Alles auswählen
echo '<div id="t_text">'.$aData["Item".($i + 1)]["Text"].'<br /><a href="'.$href.'">'.mi18n("More...").'</a></div>', chr(10);
echo '</div>', chr(10);
ersetzen durch
Code: Alles auswählen
if ($more){
echo '<div id="t_text">'.$aData["Item".($i + 1)]["Text"].'<br /><a href="'.$href.'">'.mi18n("More...").'</a></div>', chr(10);
}
else {
echo '<div id="t_text">'.$aData["Item".($i + 1)]["Text"].'<br /></div>', chr(10);
}
echo '</div>', chr(10);
Verfasst: Mo 5. Feb 2007, 17:24
von Katrin
Mir ist grade aufgefallen, dass wenn von 3 Teaserfeldern ein einziger Text länger ist als die angegebene Zeichenanzahl, der Link trotzdem bei allen 3 erscheint. Wie kann ich das vermeiden?
Verfasst: Di 6. Feb 2007, 19:31
von HerrB
$more = false grundsätzlich vor
Code: Alles auswählen
if (strlen($sTmpValue) > $aSettings["TeaserLength"]) {
setzen. Damit entfällt auch die else-Abfrage...
Gruß
HerrB
Verfasst: Mi 7. Feb 2007, 11:18
von Katrin
Danke für deine Hilfe.
Das hatte ich gestern schon versucht. Das komische ist, dass wenn ich $more oben testweise ausgebe jeweils der richtige Wert ausgegeben wird, wenn ich das $more aber vor der richtigen Ausgabe ganz unten nochmal ausgeben lasse, dann steht das für alle Texte auf true.
Das kann ich leider noch nicht so ganz nachvollziehen

Verfasst: Do 8. Feb 2007, 01:10
von HerrB
Poste mal den Code im Bereich der entscheidenen Zeilen.
Gruß
HerrB
Verfasst: Do 8. Feb 2007, 13:34
von Katrin
HerrB hat geschrieben:Poste mal den Code im Bereich der entscheidenen Zeilen.
Ich dachte ich hätte noch eine andere Lösung gefunden, aber die funktioniert leider auch nicht. Hier sind die entsprechenden Codefragmente:
Code: Alles auswählen
if ($sTypeIdentifier == $aSettings["TextIdentifier"]) {
$sTmpValue = strip_tags(urldecode($db2->f('value')));
$more = false;
if (strlen($sTmpValue) > $aSettings["TeaserLength"]) {
$sTmpValue = substr($sTmpValue, 0, $aSettings["TeaserLength"])."...";
$more = true;
}
$aData["Item".($i + 1)]["Text"] = $sTmpValue;
echo $i.'. Typ: '.gettype($sTmpValue).'<br /> Inhalt: '.$sTmpValue.'<br /> Mehr: '.$more.'<br /><br />';
}
Code: Alles auswählen
echo 'Mehr: '.$more.'<br />';
if ($more){
echo '<div>'.$aData["Item".($i+1)]["Text"].'<br /><a href="'.$href.'">'.mi18n("More...").'</a></div>', chr(10);
echo '<br />';
}
else {
echo '<div>'.$aData["Item".($i+1)]["Text"].'<br /></div>', chr(10);
echo '<br />';
}
echo '</div>', chr(10);
Verfasst: Di 13. Feb 2007, 14:52
von HerrB
Das ist eine Eigenschaft des jeweiligen Textes, so einfach wird es auch nicht funktionieren. Ergänze oberhalb von
die Zeile
Unten solltest Du dann
verwenden.
Gruß
HerrB
Verfasst: Di 13. Feb 2007, 22:19
von Katrin
So funktioniert es, vielen Dank für die Hilfe!
Ich kenne mich leider noch nicht so gut in PHP aus, aber ich lerne jeden Tag dazu

Verfasst: Mi 14. Feb 2007, 17:14
von JochBec
ich bin zu doof
Das Modul läuft klasse bei mir, aber die Artikel werden nicht alphabethisch im Backend sortiert. Ich habe schon den Tipp dazu hier gefunden
Ergänze in fncBuildArticleSelect hinter dem SQL-Statement diese Zeile:
Code:
$sql .= "ORDER BY a.title";
Gruß
HerrB
aber ich kriege es nicht hin. Wo genau muss die Zeile hin? Ins Input denke ich... da finde ich auch die Stelle, aber ich weiß nicht so genau wohin ich die Zeile einfügen soll. Habe schon ein paar Stellen versucht, aber die waren es wohl nicht, denn es passierte nichts
Danke schonmal für nen heissen Tipp!
Verfasst: Mi 14. Feb 2007, 17:23
von wosch
JochBec hat geschrieben:
Ergänze in fncBuildArticleSelect hinter dem SQL-Statement diese Zeile:
Code:
$sql .= "ORDER BY a.title";
Gruß
HerrB
aber ich kriege es nicht hin.
Wo genau muss die Zeile hin? Ins Input denke ich... da finde ich auch die Stelle, aber ich weiß nicht so genau wohin ich die Zeile einfügen soll. Habe schon ein paar Stellen versucht, aber die waren es wohl nicht, denn es passierte nichts
Danke schonmal für nen heissen Tipp!
In die Datei functions.input.helper.php (Verzeichnis cms/include) dort so ab Zeile 94 etwa.
Verfasst: Do 15. Feb 2007, 09:17
von JochBec
Hmmm,
habe ich versucht, vielleicht wars die falsche Stelle, denn es bringt nichts... Wo genau ist "hinter dem SQL-Statement"? Sieht jetzt so aus:
Code: Alles auswählen
function fncBuildArticleSelect($sName, $sIDCat, $sValue, $sOnChange = '') {
global $cfg, $lang;
$db2 = new DB_Contenido;
$html = '';
$html .= '<select name="'.$sName.'" onchange="'.$sOnChange.'">'.chr(10);
$html .= ' <option value="" selected>'.i18n("Please choose").'</option>'.chr(10);
if (is_numeric($sIDCat) && $sIDCat > 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
a.online = '1' AND
b.idcat = '".$sIDCat."' AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$sql .= "ORDER BY a.title";
So würde ich die Ortsangabe interpretieren

Falsch?
Verfasst: Do 15. Feb 2007, 11:12
von HerrB
Nö, stimmt.
Gruß
HerrB
Verfasst: Do 15. Feb 2007, 12:08
von JochBec
Fehler gefunden!
Die Zeile muß doch ins Modul-INPUT und nicht in die Helper - und dann klappt es problemlos.
Danke für die Hilfe!
Greetz,
Jo
Verfasst: Mo 26. Feb 2007, 11:45
von blackelementz
Hallo,
habe das Modul auch in benutzung.
Heute wollte ich es mal für eine Warenausgabe machen ausnutzen.
Ein Problem was ich aber nun jetzt nach der ganzen Konfiguration und dem Stylen endeckt habe ist das man ja garnicht manuell Links für jede ausgabe eingeben kann.
Ich möchte das in einem Shop einsetzen aber nicht direkt im Shop sondern halt im restlichen inhalt der Website und da macht es Sinn wenn man die Waren gleich auf den Artikel im Shop weiterleiten kann.
Wie könnte ich das umsetzen?
Wie gesagt ich möchte nicht auf den Artikel (contenido) mit den ganzen details verlinken sondern direkt in den Shop wo man den auch kaufen kann.
Hoffe mir kann jemand helfen.
Gruß
Verfasst: Mo 26. Feb 2007, 13:01
von wosch
blackelementz hat geschrieben:Hoffe mir kann jemand helfen.
Vielleicht, mal sehen.
blackelementz hat geschrieben:Wie könnte ich das umsetzen?
In dem du die in Contenido eingebaute Fuktion "Weiterleitung" nutzt.
Du leitest bei dem Artikel in der News-Liste einfach auf die Artikel-URL in deinem Shop weiter.