Newsmodul-Konstanten

Gesperrt
Talrond
Beiträge: 4
Registriert: Di 10. Feb 2004, 15:36
Wohnort: Neuwied
Kontaktdaten:

Newsmodul-Konstanten

Beitrag von Talrond »

Hallo.

Ich benutze für meine Website das mitgelieferte News-Modul für die Contenido-Version 4.4.4

Jetzt möchte ich aber die 3 Variablen in diesem Modul festschreiben, damit die Redakteure "feste" Templatevorgaben verwenden, statt sie konfigurieren zu müssen.

Derzeit habe ich die Überschrift wie die Zeichenlänge bereits vorgeben können, aber dank meiner eher bescheidenen Kenntnisse in php bin ich noch nicht zur Vorgabe der Kategorie gekommen.

Hier der derzeitige Stand:
Input:

Code: Alles auswählen

// selected category
$selected = "CMS_VALUE[0]";

echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
        <tr valign=\"top\">
          <td>Kategorie wählen:</td>
          <td>
            <select name=\"CMS_VAR[0]\">";
            if($selected!="0" && $selected!=""){
             echo"<option value=\"0\">--- kein ---</option>";

            }else{
            echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
            }

            // fetch all categorys
            $query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ".
                     $cfg["tab"]["cat"]." AS B,  ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ".
                     "AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
                     "AND C.visible=1 ORDER BY A.idtree";
            // execute query
            $db->query($query);

            // loop result and build the options
            while ($db->next_record()) {

              // indent spacer
              $spaces = "|";

              // how many levels
              $levels = $db->f("level");

              for ($i = 0; $i < $levels; $i ++) {
                // add 2 spaces for every level
                $spaces = $spaces . "--";

              } // end for
              
              $spaces .= ">";


              if ($selected == $db->f("idcat")) {
                // selected category
                echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } else {
                // category
                echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

              } // end if

            } // end while

echo "      </select>";

echo "    </td>
        </tr>
        <tr>
          <td>Überschrift</td>
          <td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"News\"></td>
        </tr>
        <tr>
          <td>Angezeigte Länge in Zeichen</td>
          <td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"50\"></td>
        </tr>

      </table>";
Output:

Code: Alles auswählen

<?php
// second db class instance
$db2 = new DB_Contenido;

// selected category
$selcat = "CMS_VALUE[0]";

 if($selcat!="0" && $selcat!=""){

// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
          $cfg["tab"]["art_lang"]." AS ARTLANG ".
         "WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
         "ARTLANG.online = '1' ORDER BY CATART.idart DESC";

// execute query
$db->query($query);

unset($articleID);
unset($linkID);

// get id's of sub articles
while ($db->next_record()) {
  $articleID[] = $db->f("idartlang");
  $linkID[] = $db->f("idart");
} // end while

// loop through subarticles

echo '
<table width="170" border="0" cellspacing="0" cellpadding="0">
<tr><td height="21" colspan="2" ></td></tr>
<tr><td height="21" width="0" style="border: 0px; border-top:0px; border-bottom:0px; border-color: #000000; border-style: solid; background-color: #333333"> <width="0" height="21" border="0"></td>
<td width="200" style="border: 1px; border-left:1px; border-color: #000000; border-style: soild; background-color: #333333; padding-left:10px" class="punkte">News</td></tr>
';



if (is_array($articleID)) {

    foreach ($articleID as $key => $value) {

          // select all CMS variables of the article
          $sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
          $db->query($sql);
          $db->next_record();
          $head = $db->f("value");

          if ( strlen($head) > "50") {
            $head = substr($head, 0, "50");
            $head .= '..';
          }

          // link
          $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");

          echo '<tr><td colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #111111; border-style: solid; background-color: #111111; padding-left:10px"><a href="'.$link.'">'.urldecode($db->f("value")).'</a></td></tr>';

    } // end while



          unset($headline);
        unset($text);
        
    } // end foreach
    
} // end if (is_array)

echo '</table><br>';


?>
Wie ersichtlich im Input-Abschnitt, habe ich bereits die Überschrift "News" und die Zeichenlänge von "50" vorgegeben. Nun möchte ich noch die Kategorie vorgeben.

Also meine Frage: How to?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ganz auf die schnelle...

Code: Alles auswählen

echo "  <tr> 
          <td>Angezeigte Länge in Zeichen</td> 
          <td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"";
if ("CMS_VALUE[3]"=="") {
    echo "50"; // hier die vorgabe setzen, die beim erstmaligen aufruf verwendet werden soll...
} else {
    echo "CMS_VALUE[3]";
}
echo "\"></td> 
        </tr> 

      </table>";
beim erstmaligen aufrufen der konfiguration wird kontrolliert ob ein wert in CMS_VALUE[3] gespeichert ist, falls nicht wird 50 eingetragen...
nach dem erstmaligen speichern der konfiguration wird 50 bei CMS_VALUE[3] verwendet...
*** make your own tools (wishlist :: thx)
Gesperrt