Modul: Multiple Article Teaser/Mehrfachartikelvorschau

Katrin
Beiträge: 11
Registriert: Fr 22. Dez 2006, 19:38
Kontaktdaten:

Beitrag 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);
Katrin
Beiträge: 11
Registriert: Fr 22. Dez 2006, 19:38
Kontaktdaten:

Beitrag 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?
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Katrin
Beiträge: 11
Registriert: Fr 22. Dez 2006, 19:38
Kontaktdaten:

Beitrag 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 :?
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Poste mal den Code im Bereich der entscheidenen Zeilen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Katrin
Beiträge: 11
Registriert: Fr 22. Dez 2006, 19:38
Kontaktdaten:

Beitrag 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);
Zuletzt geändert von Katrin am Di 13. Feb 2007, 22:20, insgesamt 1-mal geändert.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Das ist eine Eigenschaft des jeweiligen Textes, so einfach wird es auch nicht funktionieren. Ergänze oberhalb von

Code: Alles auswählen

$aData["Item".($i + 1)]["Text"] = $sTmpValue;
die Zeile

Code: Alles auswählen

$aData["Item".($i + 1)]["More"] = $more;
Unten solltest Du dann

Code: Alles auswählen

if ($aData["Item".($i + 1)]["More"]) { 
verwenden.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Katrin
Beiträge: 11
Registriert: Fr 22. Dez 2006, 19:38
Kontaktdaten:

Beitrag 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 ;)
JochBec
Beiträge: 54
Registriert: Sa 18. Dez 2004, 15:11
Kontaktdaten:

Beitrag 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!
wosch

Beitrag 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.
JochBec
Beiträge: 54
Registriert: Sa 18. Dez 2004, 15:11
Kontaktdaten:

Beitrag 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?
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Nö, stimmt.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
JochBec
Beiträge: 54
Registriert: Sa 18. Dez 2004, 15:11
Kontaktdaten:

Beitrag 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
blackelementz
Beiträge: 106
Registriert: Di 27. Sep 2005, 13:53
Kontaktdaten:

Beitrag 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ß
wosch

Beitrag 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.
Gesperrt