Artikelliste - nur Ausgabe der letzten akuellsten 5 Artikel

Gesperrt
iberion
Beiträge: 24
Registriert: So 14. Aug 2005, 02:30
Wohnort: Dortmund
Kontaktdaten:

Artikelliste - nur Ausgabe der letzten akuellsten 5 Artikel

Beitrag von iberion » Mi 1. Aug 2007, 16:20

Hallo,
ich arbeite u.a. mit der u.g. Artikelliste, welche bei mir
Stellenangebote enthält. Die Artikelliste ist auf der rechten
Seite und gibt die Headline mit Link aus. Da es sehr viele
Stellenanzeigen sind, würde die Liste ultralang. Daher
möchte ich, dass sie nur die 5 aktuellsten Artikel ausgibt.
Ich habe keine Ahnung von PHP und hoffe auf eure Mithilfe,
falls es nicht zu umfangreich ist, den Code zu verändern.

Danke im Voraus.
Gruss
Torsten




Code: Alles auswählen

/**
* Artikelliste mit I1,H1,T1
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* INPUT
*
* Author Jan Lengowski
* Copyright four for business AG
*/

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

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
        <tr valign=\"top\">
          <td class=\"text_medium\">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 class=\"text_medium\">?berschrift</td>
          <td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\"></td>
        </tr>
        <tr>
          <td class=\"text_medium\">Angezeigte L?nge in Zeichen</td>
          <td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"></td>
        </tr>

      </table>";

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* REFERENZ MODUL / ARTIKELLISTE
*
* Artikelliste mit Img 1, Head 1, Head 2
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Author      :     Jan Lengowski
* Copyright   :     four for business AG
* Created     :     15-08-2002
* Modified    :     16-08-2002
************************************************/

// 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="223" border="0" cellspacing="0" cellpadding="0">
<tr><td height="0" colspan="0" ></td></tr>
<tr><td height="21" width="19" style="border: 0px; border-left: 1px; border-top:1px; border-bottom:1px; border-color: #00519e; border-style: solid; background-color: #00519e; padding-left:1px"><img src="images/art_graph.gif" width="22" height="21" border="0"></td>
<td width="223" style="border: 0px; ; border-top:1px; border-bottom:1px; border-left:1px; border-right:1px; border-color: #00519e; border-style: solid; background-color: #FFFFFF; padding-left:8px" class="punkte2">CMS_VALUE[2]</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) > "CMS_VALUE[3]") {
            $head = substr($head, 0, "CMS_VALUE[3]");
            $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="artikeltext_k" height="22" style="border: 0px; ; border-top:0px; border-bottom:1px; border-color: #00519e; border-style: dotted; background-color: #a5b1d6; padding-left:5px"><a class="klein_art" href="'.$link.'">'.urldecode($db->f("value")).'</a></td></tr>';

    } // end while



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

echo '</table><br>';


?>


emergence
Beiträge: 10644
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Fr 3. Aug 2007, 07:23

das ganze hat in deinem fall mehr mit SQL zu tun...

Code: Alles auswählen

ORDER BY CATART.idart DESC
durch

Code: Alles auswählen

ORDER BY ARTLANG.created DESC LIMIT 0,5
ersetzen...
*** make your own tools (wishlist :: thx)

iberion
Beiträge: 24
Registriert: So 14. Aug 2005, 02:30
Wohnort: Dortmund
Kontaktdaten:

Beitrag von iberion » Fr 3. Aug 2007, 13:07

Vielen Dank. Es funktioniert wunderbar.
So einfach kann es sein :)

Gesperrt