Seite 1 von 1

Blättern mit wählbarem Startartikel

Verfasst: Sa 24. Mär 2007, 16:37
von volupp11
Nachdem ich mich vergeblich seit Stunden durch das Forum wühle, will ich mal hoffen, dass sich jemand erbarmt und antwortet. Ich brauche nämlich dringend ein Blättermodul, welches es ermöglicht die Startartikel wahlweise zu berücksichtigen. Artikel in Unterkatagorien oder darüberliegenden Kategorieebenen dürfen bei der Blätterfunktion keine Berücksichtigung finden.

Hier mal meinen bisherigen Code:

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
* Modulname   :     artikelblaettern 
* Author      :     smac 
* Created     :     21-09-2006 
* Created     :     21-09-2006 
************************************************/ 

$cms_idcat = "CMS_VALUE[10]";
echo '
		<table><tr><td class="text_medium" style="padding:5px">Kategorie wählen: </td></tr>
		<tr><td class="text_medium" style="padding:5px">';

echo buildCategorySelect("CMS_VAR[10]", "CMS_VALUE[10]");
echo '&nbsp;<input type="image" src="images/submit.gif"></td></tr>';
if ("CMS_VALUE[17]" != '') {
	$cms_include_start_article = ' checked';
} else {
	$cms_include_start_article = '';
}
echo '
        <tr>
          <td>'.mi18n("Startartikel in Liste einbeziehen").':</td>
          <td><input type="checkbox" name="CMS_VAR[17]" value="yes"'.$cms_include_start_article.'></td>
        </tr>';
echo " 
        <tr>  
          <td>Anzahl der angezeigten Zahlen (Anfang und Ende):</td> 
          <td><input type='text' name='CMS_VAR[1]' value='CMS_VALUE[1]'></td> 
        </tr> 
        <tr> 
          <td>Platzhalter:</td> 
          <td><input type='text' name='CMS_VAR[2]' value='CMS_VALUE[2]'></td> 
        </tr> 
        <tr> 
          <td>Linkname zurück:</td> 
          <td><input type='text' name='CMS_VAR[3]' value='CMS_VALUE[3]'></td> 
        </tr>    
        <tr> 
          <td>Linkname weiter:</td> 
          <td><input type='text' name='CMS_VAR[4]' value='CMS_VALUE[4]'></td> 
        </tr> 
        <tr> 
          <td>Sortierung:</td> 
          <td> 
           <select name='CMS_VAR[5]'>"; 
            if ("CMS_VALUE[5]" == "ARTLANG.created") { 
                  echo "<option value='ARTLANG.created' selected>Erstelldatum</option>"; 
            } else { 
               echo "<option value='ARTLANG.created'>Erstelldatum</option>'"; 
            } 
            if ("CMS_VALUE[5]" == "ARTLANG.lastmodified") { 
                  echo "<option value='ARTLANG.lastmodified' selected>Änderungsdatum</option>"; 
            } else { 
               echo "<option value='ARTLANG.lastmodified'>Änderungsdatum</option>'"; 
            } 
            if ("CMS_VALUE[5]" == "ARTLANG.published") { 
                  echo "<option value='ARTLANG.published' selected>Veröffentlichunsdatum</option>"; 
            } else { 
               echo "<option value='ARTLANG.published'>Veröffentlichunsdatum</option>'"; 
            } 
            if ("CMS_VALUE[5]" == "ARTLANG.title") { 
                  echo "<option value='ARTLANG.title' selected>Titel (Eigenschaften)</option>"; 
            } else { 
               echo "<option value='ARTLANG.title'>Titel (Eigenschaften)</option>'"; 
            } 
            if ("CMS_VALUE[5]" == "ARTLANG.summary") { 
                  echo "<option value='ARTLANG.summary' selected>Zusammenfassung</option>"; 
            } else { 
               echo "<option value='ARTLANG.summary'>Zusammenfassung</option>'"; 
            } 
            if ("CMS_VALUE[5]" == "ARTLANG.artsort") { 
                  echo "<option value='ARTLANG.artsort' selected>Sortierung</option>"; 
            } else { 
               echo "<option value='ARTLANG.artsort'>Sortierung</option>'"; 
            } 
echo "       </select> 
        </td> 
        </tr> 
        <tr> 
          <td>Sortierung:</td> 
          <td> 
           <select name='CMS_VAR[6]'>"; 
            if ("CMS_VALUE[6]" == "ASC") { 
                  echo "<option value='ASC' selected>aufsteigend</option>"; 
            } else { 
               echo "<option value='ASC'>aufsteigend</option>'"; 
            } 
            if ("CMS_VALUE[6]" == "DESC") { 
                  echo "<option value='DESC' selected>absteigend</option>"; 
            } else { 
               echo "<option value='DESC'>absteigend</option>'"; 
            } 
echo "       </select> 
        </td> 
        </tr> 
   </table> 
"; 

Code: Alles auswählen

<?php 

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     artikelblaettern 
* Author      :     smac 
* Created     :     21-09-2006 
* Created     :     21-09-2006 
************************************************/ 


$anzahl = "CMS_VALUE[1]"; 
$platzhalter = "CMS_VALUE[2]"; 
$zurueck = "CMS_VALUE[3]"; 
$weiter = "CMS_VALUE[4]"; 
$sortiert = "CMS_VALUE[5]"; 
$steigung = "CMS_VALUE[6]"; 
// selected category
$selcat = "CMS_VALUE[10]";

$startartikel = "CMS_VALUE[17]"; 
if ($startartikel == '') $startartikel = false; 

if ($startartikel) {
$with_start = "";
} else {
$with_start = "AND CATART.is_start = '0'";
}


if ($anzahl=="") $anzahl = 1; 
if ($platzhalter=="") $platzhalter = "..."; 
if ($sortiert=="") $sortiert = "ARTLANG.created"; 
if ($steigung=="") $steigung= "ASC"; 


$sql = "SELECT ARTLANG.idart, ARTLANG.title, CATART.idcat, CATART.is_start, ARTLANG.created 
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT 
WHERE CAT.idcat='$selcat' 
AND ARTLANG.idart = CATART.idart 
AND CATART.idcat = CAT.idcat 
AND ARTLANG.idlang = '$lang' 
AND ARTLANG.online = '1' 
".$with_start."
ORDER BY ".$sortiert." ".$steigung; 


$db->query($sql); 
if ($db->num_rows() != 0) 
{ 
echo "<div id='uebersicht'>"; 
$artikel = array(array()); 
$j=0; 
$db->next_record(); 
$idart_last=$db->f("idart"); 
for ($i=0; $i<$db->num_rows(); $i++) 
{ 
$artikel[$j][0] = $db->f("idart"); 
$artikel[$j][1] = $db->f("idcat"); 

$type = $db->f("idtype"); 
$typeid = $db->f("typeid"); 

while ( $idart_last==$db->f("idart") ) 
{ 
$idart_last=$db->f("idart"); 
$db->next_record(); 
$i++; 
} 

$idart_last=$db->f("idart"); 
$j++; 
$i--; 
} 



// Zurückblättern 
for ($i=0; $i < $j; $i++) 
{ 
   if ($idart==$artikel[$i][0] && $i!=0) { 
      $x = $i-1; 
      $zurueck_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$x][1]."&idart=".$artikel[$x][0]; 
      echo "<a href='".$sess->url("$zurueck_link")."'>".$zurueck."</a> "; 
   } 
} 


// Zahlen und Platzhalter 
for ($i=0; $i < $j; $i++) 
{ 

   $k = $i+1; 
    
   $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$i][1]."&idart=".$artikel[$i][0]; 

   if ($idart!=$artikel[$i][0]) { 
      if ( $k <= $anzahl || $k > $j-$anzahl) { 
         echo "<a href='".$sess->url("$navmod_link")."'>".$k."</a> "; 
      } 
   } else { 
      if ($k != 1 && $k != 2) { echo $platzhalter." " ; }; 
      echo $k." "; 
      if ($k != $j-1 && $k != $j) { echo $platzhalter." "; }; 
   }    
    
} 

// Weiterblättern 
for ($i=0; $i < $j; $i++) 
{ 
   if ($idart==$artikel[$i][0] && $i != $j-1) { 
      $y = $i+1; 
      $weiter_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$y][1]."&idart=".$artikel[$y][0]; 
      echo "<a href='".$sess->url("$weiter_link")."'>".$weiter."</a> "; 
   } 
} 

echo "</div>"; 
} 


?>
Viele Grüsse

Volker

Verfasst: Di 10. Apr 2007, 14:33
von Wiesel
Hallo zusammen,

ich suche ebenfalls ein Modul mit dem ich durch alle Artikel einer Kategorie blättern kann.
Das ganze könnte in etwa so aussehen:
Seite: Bild Zurück 1 | 2 | 3 | 4 | 5 | 6 | 7 Weiter Bild
Aber ausschmücken kann man am Schluss noch..

Gibt es in der Richtung schon etwas fertiges oder muss man sich da selber bemühen?

Und spielt dafür die Version von Contenido eine Rolle?
Zur Zeit haben wir noch 4.4.4 im Einsatz, wollen aber bald auf die neueste wechseln.

Für Hilfe wäre ich sehr dankbar. :D

Gruß Wiesel

Verfasst: Di 10. Apr 2007, 15:16
von Wiesel
Ok, ich bin wiedereinmal durch weiteres Suchen fündig geworden.

Hier http://contenido.org/forum/viewtopic.php?t=14046 gibts alles was ich wollte. :D

Danke an dieser Stelle an alle Beteiligten^^

Gruß Wiesel