Modul: Multiple Article Teaser/Mehrfachartikelvorschau

MyAccount
Beiträge: 383
Registriert: Do 17. Jul 2003, 10:21

Beitrag von MyAccount » Mo 12. Dez 2005, 10:49

Also jetzt aber?! Das was Du suchst, ist doch die selbe Problematik, die ich hier angesprochen habe, oder nicht? Es ist natürlich weder die Artikelliste noch der MultiTeaser, aber es lässt sich doch daraus entwickeln.

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Mo 12. Dez 2005, 11:01

Ich suche es nicht mehr ich habe es hier und in der entwicklung bzw im ersten Austausch mit Herrb habe ich die idee verworfen auch noch eine Artikelliste mit zu integrieren das Sie meinem Kunden keinen nutzen bringt.

Verstehe aber auch den zusammenhang nicht den du mit deinem link auf meinen anderen Thread herstellen willst. Was ich dort programmiert haben will ist ne andere Geschichte.Nach meiner Ausschreibung wurde genau dieses Modul hier in der version 0.8 Erstellt und mit beiderseitigem Einverständniss hier gepostet. Die neue Ausschreibung hat mit diesem Thread hier rein gar nichts zu tun da ich dort die artikel automatisch Teasen will und nicht wie hier gewünscht gezielt aus verschiedenen Kategorien. Ich habe deine Problematik erkant aber muss den anderen zustimmen dieses Modul hier wird sonst zu komplex.Wenn ich es so benötigt hätte dann wäre es auch so programmiert worden.

Ich werde mich hier jetzt auch nicht mehr zu meinen Bewegründen äußern ich habe das Modul bekommen welches ich in der ersten Ausschreibung beschrieben habe und ich denke ich werde genauso das Modul erhalten was in meiner zweiten Auschreibung gewünscht wird.

greets
greets

jost
Beiträge: 322
Registriert: Mo 10. Jan 2005, 20:12
Kontaktdaten:

Beitrag von jost » Mo 12. Dez 2005, 12:35

Wenn Du Lust hast, kannst Du es ja hier veröffentlichen.

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Mo 12. Dez 2005, 12:38

jost hat geschrieben:Wenn Du Lust hast, kannst Du es ja hier veröffentlichen.
schau mal auf seite 1 im header

Code: Alles auswählen

Modul:         Multiple Article Teaser V1.01
Author:        Björn Behrens, HerrB
Created:       09.12.2005
Specification: Rezeptionist

Partly based on Article Include and News module Contenido V4.6.x
Author:        Willi Man/Andreas Lindner
Copyright:     Contenido - four for business
steht rezeptionist ergo aufgrund meiner ersten ausschreibung
http://www.contenido.de/forum/viewtopic.php?t=10418
wurde dieses Modul programmiert und Herrb und ich haben uns darauf geeinigt das wir es der öffentlichkeit zugänglich machen.


greets
Zuletzt geändert von rezeptionist am Mo 12. Dez 2005, 12:46, insgesamt 1-mal geändert.
greets

jost
Beiträge: 322
Registriert: Mo 10. Jan 2005, 20:12
Kontaktdaten:

Beitrag von jost » Mo 12. Dez 2005, 12:45

Habe heute schon zuviel gelesen. Super, besten Dank. :-)

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Multiple Article Teaser v1.02

Beitrag von i-fekt » So 25. Dez 2005, 03:17

Multiple Article Teaser v1.02

Mit dieser Modifikation sind mehr Textteile als Headline und Text auswählbar, Code etwas schlanker. Im Output kann man außerdem einstellen, ob nach X Teasern etwas anderes erscheinen soll.

Input:

Code: Alles auswählen

# Initialization
$bDebug = false;
unset ($aSettings);
$aSettings = array();
$aSettings["ArticleCount"]       = "CMS_VALUE[1]";
$aSettings["TeaserLength"]       = "CMS_VALUE[2]";
$aSettings["SampleCat"]          = "CMS_VALUE[3]";
$aSettings["SampleArt"]          = "CMS_VALUE[4]";
$aSettings["HeadlineIdentifier"] = "CMS_VALUE[5]";
$aSettings["TextIdentifier"]     = "CMS_VALUE[6]";
$aSettings["Text2Identifier"]     = "CMS_VALUE[15]";
$aSettings["Text3Identifier"]     = "CMS_VALUE[16]";
$aSettings["ImageIdentifier"]    = "CMS_VALUE[7]";
$aSettings["ImageWidth"]         = "CMS_VALUE[8]";
$aSettings["ImageHeight"]        = "CMS_VALUE[9]";
$aSettings["ImageFromContent"]   = "CMS_VALUE[10]";

# Functions
function fncBuildCategorySelect($sName, $sValue, $sLevel = 0, $sOnChange = '') {
 global $cfg, $client, $lang, $idcat;

 $db  = new DB_Contenido;
 $db2 = new DB_Contenido;

 $html = '';
 $html .= '<select name="'.$sName.'" onchange="'.$sOnChange.'">';
 $html .= ' <option value="">'.i18n("Please choose").'</option>';

 if ($sLevel > 0) {
  $addString = "AND c.level<$sLevel";
 }

 $sql = "SELECT
               a.idcat AS idcat,
               b.name AS name,
               c.level
           FROM
               ".$cfg["tab"]["cat"]." AS a,
               ".$cfg["tab"]["cat_lang"]." AS b,
               ".$cfg["tab"]["cat_tree"]." AS c
          WHERE
               a.idclient = '".$client."' AND
               b.idlang = '".$lang."' AND
               b.idcat = a.idcat AND
               c.idcat = a.idcat $addString
       ORDER BY
               c.idtree";

 $db->query($sql);

 $categories = array ();
 while ($db->next_record()) {
  $categories[$db->f("idcat")]["name"] = $db->f("name");

  $sql = "SELECT level FROM ".$cfg["tab"]["cat_tree"]." WHERE idcat = '".$db->f("idcat")."'";
  $db2->query($sql);

  if ($db2->next_record()) {
   $categories[$db->f("idcat")]["level"] = $db2->f("level");
  }

  $sql2 = "SELECT
                 a.title AS title,
                 b.idcatart AS idcatart
             FROM
                 ".$cfg["tab"]["art_lang"]." AS a,
                 ".$cfg["tab"]["cat_art"]." AS b
            WHERE
                 b.idcat = '".$db->f("idcat")."' AND
                 a.idart = b.idart AND
                 a.idlang = '".$lang."'";
  $db2->query($sql);

  while ($db2->next_record()) {
   $categories[$db->f("idcat")]["articles"][$db2->f("idcatart")] = $db2->f("title");
  }
 }

 foreach ($categories as $tmpidcat => $props) {
  $spaces = "&nbsp;&nbsp;";

  for ($i = 0; $i < $props["level"]; $i ++) {
   $spaces .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  }

  $tmp_val = $tmpidcat;

  if ($sValue != $tmp_val) {
   $html .= '<option value="'.$tmp_val.'" style="background-color:#EFEFEF">'.$spaces.">".$props["name"].'</option>';
  } else {
   $html .= '<option value="'.$tmp_val.'" style="background-color:#EFEFEF" selected="selected">'.$spaces.">".$props["name"].'</option>';
  }
 }

 $html .= '</select>';

 unset ($db2);
 unset ($sql);
 unset ($categories);
 unset ($tmp_val);
 unset ($tmpidcat);
 unset ($spaces);

 return $html;
}

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."'";
  $db2->query($sql);

  while ($db2->next_record()) {
   $lIDCatArt = $db2->f('idcatart');
   $sTitle    = $db2->f('title');

   if ($sValue != $lIDCatArt) {
    $html .= '<option value="'.$lIDCatArt.'">&nbsp;'.$sTitle.'</option>'.chr(10);
   } else {
    $html .= '<option selected="selected" value="'.$lIDCatArt.'">&nbsp;'.$sTitle.'</option>'.chr(10);
   }
  }
 }

 $html .= '</select>'.chr(10);

 unset ($db2);
 unset ($lIDCatArt);
 unset ($sTitle);

 return $html;
}

function fncBuildTypeSelect($sName, $lIDCatArt, $sValue, $sTypeRange = '', $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($lIDCatArt) && $lIDCatArt > 0) {
  $sql = "SELECT
                a.typeid AS typeid,
                a.value AS value,
                a.idtype AS idtype,
                d.type AS type,
                d.description AS description
            FROM
                ".$cfg["tab"]["content"]." AS a,
                ".$cfg["tab"]["art_lang"]." AS b,
                ".$cfg["tab"]["cat_art"]." AS c,
                ".$cfg["tab"]["type"]." AS d
           WHERE
                a.idtype    = d.idtype AND
                a.idartlang = b.idartlang AND
                b.idart     = c.idart AND
                b.idlang    = '".$lang."' AND ";
  if ($sTypeRange != "") {
   $sql .= "a.idtype IN (".$sTypeRange.") AND ";
  }
  $sql .= "     c.idcatart = '".$lIDCatArt."' ORDER BY a.idtype, a.typeid";

  $db2->query($sql);

  while ($db2->next_record()) {
   $sTypeIdentifier = "tblData.idtype = '".$db2->f('idtype')."' AND tblData.typeid = '".$db2->f('typeid')."'";
   $sContent = $db2->f('type')."[".$db2->f('typeid')."]: ".substr(strip_tags(urldecode($db2->f("value"))), 0, 50);
   $sDescription = i18n($db2->f("description"));

   if ($sValue != $sTypeIdentifier) {
    $html .= '<option value="'.$sTypeIdentifier.'">&nbsp;'.$sContent.'</option>'.chr(10);
   } else {
    $html .= '<option selected="selected" value="'.$sTypeIdentifier.'">&nbsp;'.$sContent.'</option>'.chr(10);
   }
  }
 }
 $html .= '</select>'.chr(10);

 unset ($db2);
 unset ($sTypeIdentifier);
 unset ($sContent);
 unset ($sDescription);

 return $html;
}

# Checking values
if (!is_numeric($aSettings["ArticleCount"]) || $aSettings["ArticleCount"] <= 0) {
 $aSettings["ArticleCount"] = 1;
}
if (!is_numeric($aSettings["TeaserLength"]) || $aSettings["TeaserLength"] <= 0) {
 $aSettings["TeaserLength"] = 50;
}
if (!is_numeric($aSettings["SampleCat"]) || $aSettings["SampleCat"] < 0) {
 $aSettings["SampleCat"] = 0;
}
if (!is_numeric($aSettings["SampleArt"]) || $aSettings["SampleArt"] < 0) {
 $aSettings["SampleArt"] = 0;
}
if (strlen($aSettings["HeadlineIdentifier"]) > 50) {
 $aSettings["HeadlineIdentifier"] = "";
}
if (strlen($aSettings["TextIdentifier"]) > 50) {
 $aSettings["TextIdentifier"] = "";
}
if (strlen($aSettings["Text2Identifier"]) > 50) {
 $aSettings["Text2Identifier"] = "";
}
if (strlen($aSettings["Text3Identifier"]) > 50) {
 $aSettings["Text3Identifier"] = "";
}
if (strlen($aSettings["ImageIdentifier"]) > 50) {
 $aSettings["ImageIdentifier"] = "";
}
if (!is_numeric($aSettings["ImageWidth"]) || $aSettings["ImageWidth"] <= 0) {
 $aSettings["ImageWidth"] = 0;
 $aSettings["ImageHeight"] = 0;
}
if (!is_numeric($aSettings["ImageHeight"]) || $aSettings["ImageHeight"] <= 0) {
 $aSettings["ImageWidth"] = 0;
 $aSettings["ImageHeight"] = 0;
}

echo '        <table cellspacing="0" cellpadding="2" border="0" width="100%">', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td>'.mi18n("Count:").'</td>', chr(10);
echo '              <td><input type="text" name="CMS_VAR[1]" value="'.$aSettings["ArticleCount"].'" size="5">&nbsp<input type="image" src="images/submit.gif"></td>', chr(10);
echo '           </tr>', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td>'.mi18n("Teaser length (max.):").'</td>', chr(10);
echo '              <td><input type="text" name="CMS_VAR[2]" value="'.$aSettings["TeaserLength"].'" size="5"></td>', chr(10);
echo '           </tr>', chr(10);
echo '        </table>', chr(10);
echo '        <table cellspacing="0" cellpadding="2" border="0" width="100%">', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td colspan="2" class="textw_medium" style="background-color: #a9aec2; border: 1px solid #747488;">'.mi18n("Identify elements:").'</td>', chr(10);
echo '           </tr>', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td colspan="2" class="text" style="border-left: 1px solid #747488; border-right: 1px solid #747488;">'.mi18n("Sample category:").'<br />'.fncBuildCategorySelect("CMS_VAR[3]", $aSettings["SampleCat"], 0, "if (document.forms[0].elements['CMS_VAR[3]'].value != 'CMS_VALUE[3]') { document.forms[0].elements['CMS_VAR[4]'].disabled = true; document.forms[0].elements['CMS_VAR[5]'].disabled = true; document.forms[0].elements['CMS_VAR[6]'].disabled = true; document.forms[0].elements['CMS_VAR[15]'].disabled = true; document.forms[0].elements['CMS_VAR[16]'].disabled = true; document.forms[0].elements['CMS_VAR[7]'].disabled = true; } else { document.forms[0].elements['CMS_VAR[4]'].disabled = false; document.forms[0].elements['CMS_VAR[5]'].disabled = false; document.forms[0].elements['CMS_VAR[6]'].disabled = false; document.forms[0].elements['CMS_VAR[15]'].disabled = false; document.forms[0].elements['CMS_VAR[16]'].disabled = false; document.forms[0].elements['CMS_VAR[7]'].disabled = false;}").'&nbsp<input type="image" src="images/submit.gif"></td>', chr(10);
echo '           </tr>', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td colspan="2" class="text" style="border-left: 1px solid #747488; border-right: 1px solid #747488;">'.mi18n("Sample Article:").'<br />'.fncBuildArticleSelect("CMS_VAR[4]", $aSettings["SampleCat"], $aSettings["SampleArt"], "if (document.forms[0].elements['CMS_VAR[4]'].value != 'CMS_VALUE[4]') { document.forms[0].elements['CMS_VAR[5]'].disabled = true; document.forms[0].elements['CMS_VAR[6]'].disabled = true; document.forms[0].elements['CMS_VAR[15]'].disabled = true; document.forms[0].elements['CMS_VAR[16]'].disabled = true; document.forms[0].elements['CMS_VAR[7]'].disabled = true; } else { document.forms[0].elements['CMS_VAR[5]'].disabled = false; document.forms[0].elements['CMS_VAR[6]'].disabled = false; document.forms[0].elements['CMS_VAR[15]'].disabled = false; document.forms[0].elements['CMS_VAR[16]'].disabled = false; document.forms[0].elements['CMS_VAR[7]'].disabled = false;}").'&nbsp<input type="image" src="images/submit.gif"></td>', chr(10);
echo '           </tr>', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td class="text" style="border-left: 1px solid #747488;">'.mi18n("Headline Element:").'</td>', chr(10);
echo '              <td class="text" style="border-right: 1px solid #747488;">'.fncBuildTypeSelect("CMS_VAR[5]", $aSettings["SampleArt"], $aSettings["HeadlineIdentifier"], "'1','2','3','9','17'").'</td>', chr(10);
echo '           </tr>', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td class="text" style="border-left: 1px solid #747488;">'.mi18n("Text Element:").'</td>', chr(10);
echo '              <td class="text" style="border-right: 1px solid #747488;">'.fncBuildTypeSelect("CMS_VAR[6]", $aSettings["SampleArt"], $aSettings["TextIdentifier"], "'1','2','3','9','17'").'</td>', chr(10);
echo '           </tr>', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td class="text" style="border-left: 1px solid #747488;">'.mi18n("Text Element 2:").'</td>', chr(10);
echo '              <td class="text" style="border-right: 1px solid #747488;">'.fncBuildTypeSelect("CMS_VAR[15]", $aSettings["SampleArt"], $aSettings["Text2Identifier"], "'1','2','3','9','17'").'</td>', chr(10);
echo '           </tr>', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td class="text" style="border-left: 1px solid #747488;">'.mi18n("Text Element 3:").'</td>', chr(10);
echo '              <td class="text" style="border-right: 1px solid #747488;">'.fncBuildTypeSelect("CMS_VAR[16]", $aSettings["SampleArt"], $aSettings["Text3Identifier"], "'1','2','3','9','17'").'</td>', chr(10);
echo '           </tr>', chr(10);
echo '           <tr valign="top">',chr(10);
echo '              <td class="text" style="border-left: 1px solid #747488; border-bottom: 1px solid #747488;">'.mi18n("Image Element:").'</td>', chr(10);
echo '              <td class="text" style="border-right: 1px solid #747488; border-bottom: 1px solid #747488;">',chr(10);
if ($aSettings["ImageFromContent"] != "") {
 echo '                 <input type="checkbox" name="CMS_VAR[10]" value="enabled" checked onclick="document.forms[0].elements[\'CMS_VAR[7]\'].disabled = true;" />'.mi18n("From text").'&nbsp<input type="image" src="images/submit.gif">&nbsp;',chr(10);
 echo '                 '.fncBuildTypeSelect("CMS_VAR[7]", $aSettings["SampleArt"], $aSettings["ImageIdentifier"], "'1','2','3','9','17'").'&nbsp', chr(10);
} else {
 echo '                 <input type="checkbox" name="CMS_VAR[10]" value="enabled" onclick="document.forms[0].elements[\'CMS_VAR[7]\'].disabled = true;" />'.mi18n("From text").'&nbsp<input type="image" src="images/submit.gif">&nbsp;',chr(10);
 echo '                 '.fncBuildTypeSelect("CMS_VAR[7]", $aSettings["SampleArt"], $aSettings["ImageIdentifier"], "'4'").'&nbsp', chr(10);
}
echo '                 '.mi18n("Width:").' <input type="text" name="CMS_VAR[8]" value="'.$aSettings["ImageWidth"].'" size="5" title="'.mi18n("Set to 0 to disable resize").'">&nbsp;', chr(10);
echo '                 '.mi18n("Height:").' <input type="text" name="CMS_VAR[9]" value="'.$aSettings["ImageHeight"].'" size="5" title="'.mi18n("Set to 0 to disable resize").'"></td>', chr(10);
echo '           </tr>', chr(10);
echo '        </table>', chr(10);

for ($i = 0; $i < $aSettings["ArticleCount"]; $i++) {
 $lCatIdentifier = 20 + ($i * 2);
 $lArtIdentifier = 21 + ($i * 2);

 echo '        <br />', chr(10);
 echo '        <table cellspacing="0" cellpadding="2" border="0" width="100%>', chr(10);
 echo '           <tr valign="top">', chr(10);
 echo '              <td class="textw_medium" style="background-color: #a9aec2; border: 1px solid #747488;">'.sprintf(mi18n("Article %d:"), $i + 1).'</td>', chr(10);
 echo '           </tr>', chr(10);
 echo '           <tr valign="top">',chr(10);
 echo '              <td class="text" style="border-left: 1px solid #747488; border-right: 1px solid #747488;">'.mi18n("Select Category:")."</td>", chr(10);
 echo '           </tr>', chr(10);
 echo '           <tr valign="top">',chr(10);
 if ($bDebug) {
  echo "<td><pre>Count: ".$aSettings["ArticleCount"].", Cat: CMS_VALUE[$lCatIdentifier], CatArt: CMS_VALUE[$lArtIdentifier], Client: ".$client.", Lang: ".$lang."<br />Webpath: ".$cfgClient[$client]['path']['htmlpath']."</pre></td>", chr(10);
 }
 echo '              <td class="text" style="border-left: 1px solid #747488; border-right: 1px solid #747488;">'.fncBuildCategorySelect("CMS_VAR[$lCatIdentifier]", "CMS_VALUE[$lCatIdentifier]", 0, "if (document.forms[0].elements['CMS_VAR[$lCatIdentifier]'].value != 'CMS_VALUE[$lCatIdentifier]') { document.forms[0].elements['CMS_VAR[$lArtIdentifier]'].disabled = true; } else { document.forms[0].elements['CMS_VAR[$lArtIdentifier]'].disabled = false; }").'&nbsp<input type="image" src="images/submit.gif"></td>', chr(10);
 echo '           </tr>', chr(10);
 echo '           <tr valign="top">',chr(10);
 echo '              <td class="text" style="border-left: 1px solid #747488; border-right: 1px solid #747488;">'.mi18n("Select Article:")."</td>", chr(10);
 echo '           </tr>', chr(10);
 echo '           <tr valign="top">',chr(10);
 echo '              <td class="text" style="border-left: 1px solid #747488; border-right: 1px solid #747488; border-bottom: 1px solid #747488;">'.fncBuildArticleSelect("CMS_VAR[$lArtIdentifier]", "CMS_VALUE[$lCatIdentifier]", "CMS_VALUE[$lArtIdentifier]").'</td>', chr(10);
 echo '           </tr>', chr(10);
 echo '        </table>', chr(10);
}

Output:

Code: Alles auswählen

<?php
# Initialization
$bDebug = false;
unset ($aSettings);
unset ($aData);
$aSettings = array();
$aData = array();
$aSettings["ArticleCount"]       = "CMS_VALUE[1]";
$aSettings["TeaserLength"]       = "CMS_VALUE[2]";
$aSettings["HeadlineIdentifier"] = "CMS_VALUE[5]";
$aSettings["TextIdentifier"]     = "CMS_VALUE[6]";
$aSettings["Text2Identifier"]     = "CMS_VALUE[15]";
$aSettings["Text3Identifier"]     = "CMS_VALUE[16]";
$aSettings["ImageIdentifier"]    = "CMS_VALUE[7]";
$aSettings["ImageWidth"]         = "CMS_VALUE[8]";
$aSettings["ImageHeight"]        = "CMS_VALUE[9]";
$aSettings["ImageFromContent"]   = "CMS_VALUE[10]";

# Checking values
if (!is_numeric($aSettings["ArticleCount"]) || $aSettings["ArticleCount"] <= 0) {
 $aSettings["ArticleCount"] = 0;
}
if (!is_numeric($aSettings["TeaserLength"]) || $aSettings["TeaserLength"] <= 0) {
 $aSettings["TeaserLength"] = 50;
}
if (!is_numeric($aSettings["ImageWidth"]) || $aSettings["ImageWidth"] <=0) {
 $aSettings["ImageWidth"] = 0;
 $aSettings["ImageHeight"] = 0;
}
if (!is_numeric($aSettings["ImageHeight"]) || $aSettings["ImageHeight"] <=0) {
 $aSettings["ImageWidth"] = 0;
 $aSettings["ImageHeight"] = 0;
}
if (!is_object($db2)) {
 $db2 = new DB_Contenido;
}
if (!is_object($db3)) {
 $db3 = new DB_Contenido;
}

if ($aSettings["ArticleCount"] > 0 && ($aSettings["HeadlineIdentifier"]!="" || $aSettings["TextIdentifier"]!="" || $aSettings["Text2Identifier"]!="" || $aSettings["Text3Identifier"]!="" || $aSettings["ImageIdentifier"]!="")) {
 for ($i = 0; $i < $aSettings["ArticleCount"]; $i++) {
  $lArtIdentifier = 21 + ($i * 2);
  $aData["Item".($i + 1)] = array();
  $aData["Item".($i + 1)]["IDCatArt"] = "CMS_VALUE[$lArtIdentifier]";
  $aData["Item".($i + 1)]["Headline"] = "&nbsp;";
  $aData["Item".($i + 1)]["Text"]     = "&nbsp;";
  $aData["Item".($i + 1)]["Text2"]     = "&nbsp;";
  $aData["Item".($i + 1)]["Text3"]     = "&nbsp;";
  $aData["Item".($i + 1)]["Image"]    = array();
  $aData["Item".($i + 1)]["Image"]["ServerPath"] = "";
  $aData["Item".($i + 1)]["Image"]["WebPath"]    = "";

  if ($aData["Item".($i + 1)]["IDCatArt"] != "") {
   $sql =  "SELECT tblData.value AS value, tblData.idtype AS idtype, tblData.typeid AS typeid FROM ";
   $sql .= $cfg["tab"]["cat_art"]." AS tblCatArt, ";
   $sql .= $cfg["tab"]["art_lang"]." AS tblArtLang, ";
   $sql .= $cfg["tab"]["content"]." AS tblData ";
   $sql .= "WHERE tblData.idartlang = tblArtLang.idartlang AND ";
   $sql .= "tblArtLang.idlang = '".$lang."' AND ";
   $sql .= "tblArtLang.idart = tblCatArt.idart AND ";
   $sql .= "tblCatArt.idcatart = '".$aData["Item".($i + 1)]["IDCatArt"]."' AND (";

   $sql_items = "";
   if ($aSettings["HeadlineIdentifier"] != "") {
    $sql_items = "(".$aSettings["HeadlineIdentifier"].")";
   }
   if ($aSettings["TextIdentifier"] != "") {
    if ($sql_items != "") {
     $sql_items .= " OR (".$aSettings["TextIdentifier"].")";
    } else {
     $sql_items = "(".$aSettings["TextIdentifier"].")";
    }
   }
   if ($aSettings["Text2Identifier"] != "") {
    if ($sql_items != "") {
     $sql_items .= " OR (".$aSettings["Text2Identifier"].")";
    } else {
     $sql_items = "(".$aSettings["Text2Identifier"].")";
    }
   }
   if ($aSettings["Text3Identifier"] != "") {
    if ($sql_items != "") {
     $sql_items .= " OR (".$aSettings["Text3Identifier"].")";
    } else {
     $sql_items = "(".$aSettings["Text3Identifier"].")";
    }
   }
   if ($aSettings["ImageIdentifier"] != "") {
    if ($sql_items != "") {
     $sql_items .= " OR (".$aSettings["ImageIdentifier"].")";
    } else {
     $sql_items = "(".$aSettings["ImageIdentifier"].")";
    }
   }

   $sql .= $sql_items.")";

   if ($bDebug) {
    echo "<pre>".$sql."</pre>", chr(10);
   }

   // execute query
   $db2->query($sql);

   while ($db2->next_record()) {
    $sTypeIdentifier = "tblData.idtype = '".$db2->f('idtype')."' AND tblData.typeid = '".$db2->f('typeid')."'";

    # Note: The TypeIdentifier for one item may be the same as for another item.
    #       Therefore, we are storing the content everywhere as needed
    if ($sTypeIdentifier == $aSettings["HeadlineIdentifier"]) {
     $aData["Item".($i + 1)]["Headline"] = strip_tags(urldecode($db2->f('value')));
    }
    if ($sTypeIdentifier == $aSettings["TextIdentifier"]) {
     $sTmpValue = strip_tags(urldecode($db2->f('value')));
     if (strlen($sTmpValue) > $aSettings["TeaserLength"]) {
      $sTmpValue = substr($sTmpValue, 0, $aSettings["TeaserLength"])."...";
     }
     $aData["Item".($i + 1)]["Text"] = $sTmpValue;
    }
    if ($sTypeIdentifier == $aSettings["Text2Identifier"]) {
     $sTmpValue = strip_tags(urldecode($db2->f('value')));
     if (strlen($sTmpValue) > $aSettings["TeaserLength"]) {
      $sTmpValue = substr($sTmpValue, 0, $aSettings["TeaserLength"])."...";
     }
     $aData["Item".($i + 1)]["Text2"] = $sTmpValue;
    }
    if ($sTypeIdentifier == $aSettings["Text3Identifier"]) {
     $sTmpValue = strip_tags(urldecode($db2->f('value')));
     if (strlen($sTmpValue) > $aSettings["TeaserLength"]) {
      $sTmpValue = substr($sTmpValue, 0, $aSettings["TeaserLength"])."...";
     }
     $aData["Item".($i + 1)]["Text3"] = $sTmpValue;
    }
    if ($sTypeIdentifier == $aSettings["ImageIdentifier"]) {
     $sql = "";
     if ($aSettings["ImageFromContent"] != "") {
      $sTmpValue = urldecode($db2->f('value'));

      $regEx = "/<img[^>]*?>.*?/i";
      $match = array ();
      preg_match($regEx, $sTmpValue, $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}";
      # }
      #}

      if (strlen($name) > 0) {
       $sql =  "SELECT dirname, filename FROM ".$cfg["tab"]["upl"]." ";
       $sql .= "WHERE filename REGEXP '$name'";
      }
     } else {
      $sql =  "SELECT dirname, filename FROM ".$cfg["tab"]["upl"]." ";
      $sql .= "WHERE idupl = '".$db2->f('value')."'";
     }

     if ($bDebug) {
      echo "<pre>".$sql."</pre>";
     }

     if ($sql != "") {
      // execute query
      $db3->query($sql);

      if ($db3->next_record()) {
       $aData["Item".($i + 1)]["Image"]["ServerPath"] = $cfgClient[$client]["upl"]["path"].$db3->f('dirname').$db3->f('filename');
       $aData["Item".($i + 1)]["Image"]["WebPath"] = $cfgClient[$client]["upl"]["htmlpath"].$db3->f('dirname').$db3->f('filename');
      }
     }
    }
   }
  }
 }
 unset ($db2);
 unset ($sql);
 unset ($sql_items);
 unset ($sIDCatArt);
 unset ($sTmpValue);

 for ($i = 0; $i < $aSettings["ArticleCount"]; $i++) {
  if ($aData["Item".($i + 1)]["IDCatArt"] != "") {
   $href = $sess->url("front_content.php?idcatart=".$aData["Item".($i + 1)]["IDCatArt"]);
   echo '<div id="area'.($i + 1).'">', chr(10);
   if ($aSettings["ImageWidth"] == 0 || $aSettings["ImageHeight"] == 0) {
    $image = $aData["Item".($i + 1)]["Image"]["WebPath"];
   } else {
    if ($aData["Item".($i + 1)]["Image"]["ServerPath"] != "" && file_exists($aData["Item".($i + 1)]["Image"]["ServerPath"])) {
     #Scale image
     $image = capiImgScale($aData["Item".($i + 1)]["Image"]["ServerPath"], $aSettings["ImageWidth"], $aSettings["ImageHeight"], false, false, 10, false);
    } else {
     $image = $aData["Item".($i + 1)]["Image"]["WebPath"];
    }
   }

   #Get dimensions of the image
   list ($width, $height, $type, $attr) = getimagesize($image);

   echo '   <div id="image"><img src="'.$image.'" width="'.$width.'" height="'.$height.'" /></div>', chr(10);

   echo '   <div id="headline">'.$aData["Item".($i + 1)]["Headline"].'</div>', chr(10);
   echo '   <div id="text">'.$aData["Item".($i + 1)]["Text"].'<br /><a href="'.$href.'">'.mi18n("More...").'</a></div>', chr(10);
   echo '   <div id="text2">'.$aData["Item".($i + 1)]["Text2"].'<br /><a href="'.$href.'">'.mi18n("More...").'</a></div>', chr(10);
   echo '   <div id="text3">'.$aData["Item".($i + 1)]["Text3"].'<br /><a href="'.$href.'">'.mi18n("More...").'</a></div>', chr(10);
   echo '</div>', chr(10);
  }
 }
}
?>
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » So 25. Dez 2005, 03:58

Was immer noch unklar ist, wo werden die ganzen Thumbs gespeichert? Der Pfad im Browser ist

Code: Alles auswählen

http://www.domain.de/cms/cache/82ab018ff383d5609b1b995e5dc902f6.jpg
Im Modul taucht das Wort "cache" nirgends auf und der Bildname ist auch seltsam? Die Bilder scheinen erzeugt zu werden, wenn die Seite geladen wird. Muss man etwa das Cache Verzeichnis immer wieder löschen, damit der Platz auf der Server nicht irgendwann zu ist oder wie läuft das ab?
Zuletzt geändert von i-fekt am So 25. Dez 2005, 15:28, insgesamt 1-mal geändert.
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 25. Dez 2005, 14:50

Das übernimmt die Funktion capiImgScale selbsttätig. Und ja, theoretisch könnte man die Thumbs immer mal wieder löschen - existieren sie nicht, werden sie erzeugt.

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

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » So 25. Dez 2005, 15:26

Das ist sehr ungünstig, ich habe in einen anderen Auftritt geschaut wo fast 800 gecachte Bilder lagen, die das System bei der Dateiverwaltung erzeugt hat.
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 25. Dez 2005, 17:24

Bitte keine Cross-Postings, siehe Dein anderer Beitrag zum gleichen Thema.

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

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 25. Dez 2005, 22:51

So, das Modul liegt in V1.0.2 vor.

Es enthält keine signifikanten Änderungen - jedoch sind nun die Funktionen ausgegliedert. Dies war für die Erstellung des Moduls "Article List Advanced" erforderlich, da die gleichen Funktionen auch dort verwendet werden.

Außerdem wurde ein minimaler Bug korrigiert: Wurde kein Bild festgelegt oder der Artikel enthält keins, wurde trotzdem die Artikel-Bild-Zeile ausgegeben. Aber das muss man nur korrigieren, wenn es einem auffällt ... :wink:

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

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » Mo 26. Dez 2005, 02:40

Das Modul ist wirklich sehr fähig, daher habe ich zwei interessante und vor allem nützliche Feature-Requests.

1. Wie kann man das Datum mit auslesen?

2. Liese sich der Block "Identify elements:" in die Template-Vorkonfiguration verschieben, so dass er nicht mehr auftaucht bei der normalen Konfiguration im Artikel. Damit würde einem Redakteur nur noch die Möglichkeit gegeben, den Ordner und Artikel auszuwählen, nicht aber was ausgelesen werden soll?
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 26. Dez 2005, 12:30

zu 1: Welches?

zu 2: Möglich wäre es bestimmt, ich denke drüber nach. Allerdings ergibt sich da ein Handling-Problem: Auch Du könntest die Angaben nicht mehr für die vorhandenen Artikel und Kategorien ändern - wenn sie sich doch mal ändern sollten. Mmmh, ich denke drüber nach.

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

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » Mo 26. Dez 2005, 17:12

zu 1: Am besten das lastmodiefied, aber auch das created wäre klasse.

zu 2: Ich weiß nicht ob es etwas gibt, das den Status überprüft, dann könnte man den Block für nicht-Administratoren oder so mit einem DIV umschliessen lassen der das ganze unsichtbar macht.
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » Mo 6. Feb 2006, 09:46

Ich würde gerne das Modul mit der Advanced Artikelliste einsetzen, allerdings verwenden diese die Datei "functions.input.helper.php".

Genügt es diese Datei umzubenennen und im Modul den Dateinamen ebenfalls zu ersetzen? Wäre es nicht sinnvoll das stets so zu machen?

Gesperrt