Artikelkalender

Gesperrt
baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Artikelkalender

Beitrag von baumpaul »

Hallo,

ich habe mir für einen Blog eine Artikelkalender geschreiben.

Es besteht aus 2 Modulen, einmal dem Kalender selbst und dann einer Ausgabeseite für die Artikel.

Kalender
Eingabe:

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
* Modulname   :     Kalender v.1
* Author      :     Phillip Baumgärtner
* Copyright   :     Phillip Baumgärtner
* Created     :     19-01-2006
* Modified    :     
************************************************/ 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";

echo "<tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[0]\">";
$selected = "CMS_VALUE[0]";

if($selected!="0" && $selected!=""){
    echo"<option value=\"0\">--- kein ---</option>"; 
} else { 
    echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>"; 
} 

$sql = " 
    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 
    "; 

$db->query($sql); 

while ($db->next_record()) { 
    $spaces = "|"; 
    $levels = $db->f("level"); 
    for ($i = 0; $i < $levels; $i ++) { 
        $spaces = $spaces . "--"; 
    } 
    $spaces .= ">"; 

    if ($selected == $db->f("idcat")) { 
        echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 
    } else { 
        echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 
    } 
} 
echo "</select></td></tr>"; 

echo "<tr><td>Artikel der Ausgabeseite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\" size=\"15\" /></td>"; 

echo "</table>";
Ausgabe:

Code: Alles auswählen

<?php
/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
* Modulname   :     Kalender v.1
* Author      :     Phillip Baumgärtner
* Copyright   :     Phillip Baumgärtner 
* Created     :     19-01-2006
* Modified    :     
************************************************/ 

if (isset($_GET["jahr"])) {
	$jahr = $_GET["jahr"];
} else {
	$jahr = date("Y");
}
if (isset($_GET["monat"])) {
	$monat = $_GET["monat"];
} else {
	$monat = date("n");
}

if ($monat == 1) {
	$b_jahr = $jahr -1;
	$b_monat = 12;
} else {
	$b_monat = $monat -1;
	$b_jahr = $jahr;
}
$b_link = "front_content.php?idcat=$idcat&jahr=$b_jahr&monat=$b_monat";

if ($monat == 12) {
	$n_jahr = $jahr +1;
	$n_monat = 1;
} else {
	$n_monat = $monat +1;
	$n_jahr = $jahr;
}
$n_link = "front_content.php?idcat=$idcat&jahr=$n_jahr&monat=$n_monat";

$datum = mktime(1,0,0,$monat,1,$jahr);
$t = date("t",$datum); // Anzahl der Tage des angegebenen Monats
$w = date("w",$datum); // Numerischer Tag einer Woche

$tag = array(1,0,6,5,4,3,2);

$monat_ohne_erste_woche = $t - $tag[$w];
$letzte_woche = $erste_woche % 7;
$wochen = ($monat_ohne_erste_woche - $letzte_woche) / 7;
$leere_zellen_erste_woche = 7 - $tag[$w];
$volle_zellen_erste_woche = 7 - $w + 1;
$leere_zellen_letzte_woche = 7 - $letzte_woche;

global $cfg, $idcat;
$db  = new DB_Contenido;

$resultat = "SELECT DAYOFMONTH(created)
AS tag FROM ".$cfg["tab"]["art_lang"]." WHERE YEAR(created)= $jahr
AND MONTH(created) = $monat";

if ($result = $db->query($resultat)) {
} else {
	echo "<li>SQL error: ".mysql_error()."</li>";
}

if ($monat == 1) {$monat_title = "Januar"; $b_monat = "Dezember"; $n_monat ="Februar";}
elseif  ($monat == 2) {$monat_title = "Februar"; $b_monat = "Januar"; $n_monat ="M&auml;rz";}
elseif  ($monat == 3) {$monat_title = "M&auml;rz"; $b_monat = "Februar"; $n_monat ="April";}
elseif  ($monat == 4) {$monat_title = "April"; $b_monat = "M&auml;rz"; $n_monat ="Mai";}
elseif  ($monat == 5) {$monat_title = "Mai"; $b_monat = "April"; $n_monat ="Juni";}
elseif  ($monat == 6) {$monat_title = "Juni"; $b_monat = "Mai"; $n_monat ="Juli";}
elseif  ($monat == 7) {$monat_title = "Juli"; $b_monat = "Juni"; $n_monat ="August";}
elseif  ($monat == 8) {$monat_title = "August"; $b_monat = "Juli"; $n_monat ="September";}
elseif  ($monat == 9) {$monat_title = "September"; $b_monat = "August"; $n_monat ="Oktober";}
elseif  ($monat == 10) {$monat_title = "Oktober"; $b_monat = "September"; $n_monat ="November";}
elseif  ($monat == 11) {$monat_title = "November"; $b_monat = "Oktober"; $n_monat ="Dezember";}
else  {$monat_title = "Dezember"; $b_monat = "November"; $n_monat ="Januar";}

echo "<h3>$monat_title $jahr</h3>";
echo "<table id=\"Kalender\">";
echo "<tr class=\"navigation\"><td colspan=\"3\"><a href=\"$b_link\">$b_monat</a></td><td></td><td colspan=\"3\"><a href=\"$n_link\">$n_monat</a></td></tr>";
echo "<tr><th>Mo</th><th>Di</th><th>Mi</th><th>Do</th><th>Fr</th><th>Sa</th><th>So</th></tr>";

$tage_aktivitaeten = array();
$zaehler = 0;

while (list($tag)=mysql_fetch_row($result)) {
	$tage_aktivitaeten[$zaehler] = $tag;
	$zaehler++;
}

if ($monat < 10) {
	$monat = "0".$monat;
}

$schon_gezaehlte_tage = 0;

if ($w == 0) {
	print "<tr>";
	for ($i = 0; $i < 6; $i++) {
		print '<td></td>';
	}
	$schon_gezaehlte_tage += 1;
	if (in_array($schon_gezaehlte_tage, $tage_aktivitaeten)){
		if ($schon_gezaehlte_tage < 10) {
				$aktueller_tag = "0".$schon_gezaehlte_tage;
		} else {
			$aktueller_tag = $schon_gezaehlte_tage;
		}
		echo '<td class="aktivitaet"><a href="front_content.php?idart=CMS_VALUE[1]&date='.$jahr.'-'.$monat.'-'.$aktueller_tag.'">1</a></td>';
	} else {
		print '<td>1</td>';
	}
	print "</tr>";
} elseif ($w != 0) {
	print "<tr>";
	for ($i = 0; $i < $leere_zellen_erste_woche; $i++) {
		print '<td></td>';
	}
	for ($i = 0; $i < $volle_zellen_erste_woche; $i++) {
		$schon_gezaehlte_tage += 1;
		if (in_array($schon_gezaehlte_tage, $tage_aktivitaeten)) {
			if ($schon_gezaehlte_tage < 10) {
				$aktueller_tag = "0".$schon_gezaehlte_tage;
			} else {
				$aktueller_tag = $schon_gezaehlte_tage;
			}
			echo '<td class="aktivitaet"><a href="front_content.php?idart=CMS_VALUE[1]&date='.$jahr.'-'.$monat.'-'.$aktueller_tag.'">'.$schon_gezaehlte_tage.'</a></td>';
		} else {
			print "<td>$schon_gezaehlte_tage</td>";
		}
	}
	print "</tr>";
}

for ($i = 0; $i < $wochen; $i++) {
	print "<tr>";
	for ($d = 0; $d < 7; $d++) {
		$schon_gezaehlte_tage += 1;
		if ($schon_gezaehlte_tage < $t +1) {
			if (in_array($schon_gezaehlte_tage, $tage_aktivitaeten)) {
				if ($schon_gezaehlte_tage < 10) {
					$aktueller_tag = "0".$schon_gezaehlte_tage;
				} else {
					$aktueller_tag = $schon_gezaehlte_tage;
				}
				echo '<td class="aktivitaet"><a href="front_content.php?idart=CMS_VALUE[1]&date='.$jahr.'-'.$monat.'-'.$aktueller_tag.'">'.$schon_gezaehlte_tage.'</a></td>';
			} else {
				print "<td>$schon_gezaehlte_tage</td>";
			}
		} else {
			print "<td></td>";
		}
	}
	print "</tr>";
}

/*if ($schon_gezaehlte_tage < $t) {
	print '<tr>';
	while ($letzte_woche > 0) {
		$letzte_tage = $t - $letzte_woche + 1;
		if (in_array($letzte_tage, $tag)) {
			echo '<td class="aktivitaet">'.$letzte_tage.'</td>';
		} else {
			print "<td>$letzte_tage</td>";
		}
		$letzte_woche -= 1;
	}
	for ($i = 0; $i < leere_zellen_letzte_woche; $i++) {
		print '<td></td>';
	}
	print '</tr>';
}*/

echo "</table>";
?>
Artikelliste
Sie ist auf der Artikelliste w3concepts.alist.thumb.v1 aufgebaut.

Eingabe

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
* Modulname   :     w3concepts.alist.thumb.v1 
* Author      :     Andreas Kummer 
* Copyright   :     mumprecht & kummer w3concepts 
* Created     :     07-11-2004 
* Modified    :     07-11-2004 
************************************************/ 

class pfadAlistThumb { 

   function pfadAlistThumb($pfad) {
      $this->pfad = $pfad;
      $this->pathlen = strlen($this->pfad);
   }

   function getPath($root,$level = 0) {
      $content = $this->readDir($root);

      foreach ($content as $file) {
         if (is_dir($root.$file)) {
            $verzeichnis = substr($root,$this->pathlen);
            $returnvalue["{$verzeichnis}{$file}/"] = str_repeat("&nbsp;",$level * 5).$file;
            $returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1));
         }
      }

      return $returnvalue;
   } 

   function readDir($path) {
      $handle = opendir($path);

      while ($file = readdir ($handle)) {
         if ($file != "." && $file != "..") $returnvalue[] = $file;
      }
      closedir($handle);

      return $returnvalue;
   }

   function makeSelect($preselection) {
      $pfad = $this->getPath($this->pfad);

      foreach ($pfad as $key => $value) {
         echo "$key :: $value<br/>\n";
         if ($preselection == $key) {
            echo "<option value=\"$key\" selected=\"selected\">$value</option>";
         } else {
            echo "<option value=\"$key\">$value</option>";
         }
      }
   }
}

$pfad = new pfadAlistThumb($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']);

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";

echo "<tr><td>Thumbnailpfad:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[0]\" />";
$pfad->makeSelect("CMS_VALUE[0]");
echo "</td>";

echo "<tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[1]\">";
$selected = "CMS_VALUE[1]";

if($selected!="0" && $selected!=""){
    echo"<option value=\"0\">--- kein ---</option>"; 
} else { 
    echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>"; 
} 

$sql = " 
    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 
    "; 

$db->query($sql); 

while ($db->next_record()) { 
    $spaces = "|"; 
    $levels = $db->f("level"); 
    for ($i = 0; $i < $levels; $i ++) { 
        $spaces = $spaces . "--"; 
    } 
    $spaces .= ">"; 

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

echo "</select></td></tr>"; 

echo "<tr><td>Anzahl Artikel je Seite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\" size=\"3\" /></td>"; 

echo "<tr><td>Text für Previous-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"15\" /></td>"; 

echo "<tr><td>Text für Next-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"15\" /></td>"; 

echo "<tr><td>Thumbnail-Breite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"5\" /></td>"; 

echo "<tr><td>Artikel anzeigen bis:</td>"; 
echo "<td><select name=\"CMS_VAR[6]\">"; 
$ebene = "CMS_VALUE[6]"; 
for ($i=0;$i>-3;$i--) { 
    if ($i == $ebene) { 
        echo"<option value=\"$i\" selected=\"selected\">Ebene $i</option>"; 
    } else { 
        echo"<option value=\"$i\">Ebene $i</option>"; 
    } 
} 

echo "</table>";
Ausgabe

Code: Alles auswählen

<?php 
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     w3concepts.alist.mod4.v1 
* Author      :     Andreas Kummer 
* Copyright   :     mumprecht & kummer w3concepts 
* Created     :     06-21-2004 
* Modified    :     06-21-2004 
************************************************/ 

class alistThumbs {

   function alistThumbs() {

      // Initialwerte festlegen
      $this->setIniValues();

      // Datenbankverbindung herstellen
      $this->db  = new DB_Contenido;
      $this->db2  = new DB_Contenido;

      // Anzahl Artikel ermitteln
      $this->anzahl_artikel = $this->getNumberOfArticles();

      // Artikel auslesen
      $this->getArticles();

      // Navigation ausgeben 
      echo "<div class=\"topAddContrContainer\">";
	  $this->showNavigation(); 
	  echo "</div>";
	  
	  // Artikel ausgeben
      $this->showArticles();

      // Navigation ausgeben
	  echo "<div class=\"bottomAddContrContainer\">";
      $this->showNavigation();
	  echo "</div>";
   }

   function setIniValues() {
       
      $bildzielpfad = "CMS_VALUE[0]";
      $this->bildzielpfad['frontend'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$bildzielpfad;
      $this->bildzielpfad['backend'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$bildzielpfad;

      $this->categorie = "CMS_VALUE[1]";

      $this->angezeigte_anzahl = "CMS_VALUE[2]";
      if ($this->angezeigte_anzahl == '') $this->angezeigte_anzahl = 10;

      $this->navigationslink['previous'] = "CMS_VALUE[3]";
      if ($this->navigationslink['previous'] == '') $this->navigationslink['previous'] = '[:: rückwärts ]';

      $this->navigationslink['next'] = "CMS_VALUE[4]";
      if ($this->navigationslink['next'] == '') $this->navigationslink['next'] = '[ vorwärts ::]';

      $this->ebene = "CMS_VALUE[6]";

      $this->bildbreite = "CMS_VALUE[5]";

      $this->limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0);
	  
	  $this->datum = $_GET['date'];
   } 

   function createImage($dirname, $filename) {

      global $cfg, $cfgClient, $client;

      $bilddateiname = "{$this->bildbreite}_$filename.jpg";

                if (!file_exists("{$this->bildzielpfad['backend']}$bilddateiname")) {

         $src_image_size = getimagesize($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);

         $bildhoehe = round($src_image_size[1] * $this->bildbreite / $src_image_size[0]);
         if ($bildhoehe > $this->bildbreite) {
            $bildhoehe = $this->bildbreite;
            $bildbreite = round($src_image_size[0] * $bildhoehe / $src_image_size[1]);
         } else {
            $bildbreite = $this->bildbreite;
         }

                    $dst_im = imagecreatetruecolor($bildbreite,$bildhoehe); 

                    if ($src_image_size[2] == 1) { 
                        $src_im = imagecreatefromGIF($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
                    } elseif ($src_image_size[2] == 2) { 
                        $src_im = ImageCreateFromJPEG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
                    } else { 
                        $src_im = imagecreatefromgd($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
                    } 
                    
                    imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]); 
                    imagejpeg ($dst_im,$this->bildzielpfad['backend'].$bilddateiname,100); 
                } 

      return $this->bildzielpfad['frontend'].$bilddateiname; 
   } 

   function showNavigation() { 

      global $sess, $client, $lang, $idcat, $idart, $cfgClient; 

      if ($this->limit > 0 || $this->anzahl_artikel > $this->limit + $this->angezeigte_anzahl) { 
         echo '<div class="ArtikelNavigation">';
          
         if ($this->limit > 0) { 
            $displaylimit = ($this->limit - $this->angezeigte_anzahl >= 0)?($this->limit - $this->angezeigte_anzahl):(0); 
            echo "<a class=\"navigator\" href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->navigationslink['previous']}</a> "; 
         } else { 
            echo '';
         }
		 
		 if ($this->anzahl_artikel > $this->limit) {
		 	$this->zaehler = 0;
			$this->seiten = $this->anzahl_artikel / $this->angezeigte_anzahl;
			$this->seiten = ceil($this->seiten);
			$this->newlimit = 0;
			while ($this->zaehler < $this->seiten) {
				if ($this->newlimit == $this->limit) {
					$this->zaehler++;
					echo " <a class=\"active\" href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?idcat=$idcat&idart=$idart&displaylimit=$this->newlimit")."\">" .$this->zaehler. "</a> ";
					$this->newlimit = $this->newlimit + $this->angezeigte_anzahl;
				} else {
					$this->zaehler++;
					echo " <a class=\"seite\" href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?idcat=$idcat&idart=$idart&displaylimit=$this->newlimit")."\">" .$this->zaehler. "</a> ";
					$this->newlimit = $this->newlimit + $this->angezeigte_anzahl;
				}
			}
         } else { 
            echo '';
         }
			 
         if ($this->anzahl_artikel > $this->limit + $this->angezeigte_anzahl) {
            $displaylimit = $this->limit + $this->angezeigte_anzahl; 
            echo " <a class=\"navigator\" href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->navigationslink['next']}</a>"; 
         } else { 
            echo '';
         } 
         echo '</div>'; 
      } 
   } 

   function getNumberOfArticles() { 

      global $cfg, $lang; 

      switch ($this->ebene) { 
         case -2: 
            $this->db->query(" 
               SELECT count(*) AS anzahl 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.parentid = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang != e.idartlang 
			   AND e.created LIKE '$this->datum%' 
               ");
            break; 
         case -1: 
            $this->db->query(" 
               SELECT count(*) AS anzahl 
                  FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang != e.idartlang 
			   AND e.created LIKE '$this->datum%' 
               "); 
            break; 
         case 0: 
            $this->db->query(" 
               SELECT count(*) AS anzahl 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang != e.idartlang 
			   AND e.created LIKE '$this->datum%' 
               "); 
            break; 
      } 

      $this->db->next_record(); 
      return $this->db->f('anzahl'); 
   } 

function getArticles() { 

  global $cfg, $lang; 

  switch ($this->ebene) { 
	 case -2: 
		$this->db->query(" 
		   SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum 
		   FROM 
			  {$cfg['tab']['cat']} AS a, 
			  {$cfg['tab']['cat']} AS b, 
			  {$cfg['tab']['cat']} AS c 
		   LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
		   LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
		   LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
		   WHERE 
		   ( 
			  ( 
				 c.parentid = b.idcat 
				 AND b.parentid = a.idcat 
			  ) 
			  OR 
			  ( 
				 c.idcat = b.idcat 
				 AND b.parentid = a.idcat 
			  ) 
			  OR 
			  ( 
				 c.idcat = b.idcat 
				 AND b.idcat = a.idcat 
			  ) 
		   ) 
		   AND a.idcat = {$this->categorie} 
		   AND e.online = 1 
		   AND e.redirect = 0 
		   AND e.external_redirect = 0 
		   AND e.idlang = $lang 
		   AND f.startidartlang != e.idartlang 
		   AND e.created LIKE '$this->datum%' 
		   ORDER BY e.created DESC 
		   LIMIT {$this->limit}, {$this->angezeigte_anzahl} 
		   ");
		break; 
	 case -1: 
		$this->db->query(" 
		   SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum 
		   FROM 
			  {$cfg['tab']['cat']} AS a, 
			  {$cfg['tab']['cat']} AS b, 
			  {$cfg['tab']['cat']} AS c 
		   LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
		   LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
		   LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
		   WHERE 
		   ( 

			  ( 
				 c.idcat = b.idcat 
				 AND b.parentid = a.idcat 
			  ) 
			  OR 
			  ( 
				 c.idcat = b.idcat 
				 AND b.idcat = a.idcat 
			  ) 
		   ) 
		   AND a.idcat = {$this->categorie} 
		   AND e.online = 1 
		   AND e.redirect = 0 
		   AND e.external_redirect = 0 
		   AND e.idlang = $lang 
		   AND f.startidartlang != e.idartlang 
		   AND e.created LIKE '$this->datum%' 
		   ORDER BY artsort 
		   LIMIT {$this->limit}, {$this->angezeigte_anzahl} 
		   "); 
		break; 
	 case 0: 
		$this->db->query(" 
		   SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum 
		   FROM 
			  {$cfg['tab']['cat']} AS a, 
			  {$cfg['tab']['cat']} AS b, 
			  {$cfg['tab']['cat']} AS c 
		   LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
		   LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
		   LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
		   WHERE 
		   ( 
			  ( 
				 c.idcat = b.idcat 
				 AND b.idcat = a.idcat 
			  ) 
		   ) 
		   AND a.idcat = {$this->categorie} 
		   AND e.online = 1 
		   AND e.redirect = 0 
		   AND e.external_redirect = 0 
		   AND e.idlang = $lang 
		   AND f.startidartlang != e.idartlang 
		   AND e.created LIKE '$this->datum%' 
		   ORDER BY artsort
		   LIMIT {$this->limit}, {$this->angezeigte_anzahl} 
		   "); 
		break; 
  }

      $counter = 0; 
      while ($this->db->next_record()) { 
         $this->articles[$counter]['name'] = $this->db->f('name'); 
         $this->articles[$counter]['pagetitle'] = $this->db->f('pagetitle'); 
         $this->articles[$counter]['idcat'] = $this->db->f('idcat'); 
         $this->articles[$counter]['idart'] = $this->db->f('idart'); 
         $this->articles[$counter]['idartlang'] = $this->db->f('idartlang'); 
         $this->articles[$counter]['created'] = $this->db->f('erstellungsdatum'); 
         $this->articles[$counter]['summary'] = $this->db->f('summary'); 

         $counter++; 
      } 

      for ($i=0;$i<count($this->articles);$i++) { 
         $this->db->query(" 
            SELECT a.value, a.typeid, b.type, c.filename, c.dirname 
            FROM {$cfg['tab']['content']} AS a 
            LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype 
            LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl 
            WHERE 
            a.idartlang = {$this->articles[$i]['idartlang']} 
            AND b.type = 'CMS_IMG' 
            "); 
         if ($this->db->next_record()) { 
            $this->articles[$i]['picture'] = $this->createImage($this->db->f('dirname'),$this->db->f('filename')); 
         } 
      } 
   } 

   function showArticles() { 

      global $sess, $cfgClient, $client, $lang, $edit; 

      if (count($this->articles) == 0 || $edit) { 
          
         echo "<div class=\"text\">CMS_HTML[10]</div>"; 
      } else { 

         echo '<div id="ArtikelListe">'; 
    
         for ($i=0;$i<count($this->articles);$i++) { 
            list($key,$artikel) = each($this->articles); 

            $link = $sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?idcat={$artikel['idcat']}&idart={$artikel['idart']}"); 
    
            // Titelzeile ausgeben 
            echo "<div class=\"alistHeader\"><h2><a title=\"{$artikel['pagetitle']}\" href=\"$link\">{$artikel['pagetitle']}</a> <span class=\"created\">vom {$artikel['created']}</span></h2></div>"; 
    
            if (!empty($artikel['picture'])) { 
    
               // Zusammenfassung und Bild ausgeben 
               echo "<div class=\"alistSummary\"><div class=\"Image\"><a href=\"$link\"><img alt=\"{$artikel['pagetitle']}\" title=\"{$artikel['pagetitle']}\" src=\"{$artikel['picture']}\" border=\"0\"/></a></div><p>{$artikel['summary']} <a title=\"{$artikel['pagetitle']}\" href=\"$link\">Mehr lesen...</a></p></div>"; 
            } else { 
    
               // Zusammenfassung ausgeben 
               echo "<div class=\"alistSummary\"><p>{$artikel['summary']} <a title=\"{$artikel['pagetitle']}\" href=\"$link\">Mehr lesen...</a></p></div>"; 
            } 

            if ($i < count($this->articles) -1) { 
               //echo '<div class="alistSeparator"><img src="upload/bilder/layout/spc.gif" border="0" title=\"{$artikel['pagetitle']}\" alt=\"{$artikel['pagetitle']}\" /></div>';
	       echo "<div class=\"alistSeparator\"><hr noshade=\"noshade\" /></div>";
            }                                         
          
         } 

         echo '</div>'; 
      } 
   } 
} 

$alistThumbs = new alistThumbs(); 
?>
Eine Vorschau gibt es auf www.dotpb.de/blog/

ToDos


- SQL Abfrage muss noch angepasst werden, diese liest im moment noch die komplette tabelle mit allen mandanten usw. aus.
Zuletzt geändert von baumpaul am Do 19. Jan 2006, 22:19, insgesamt 5-mal geändert.
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

Bei dir hat der Januar ja 36 Tage...
phpchris
Beiträge: 438
Registriert: Fr 28. Mai 2004, 16:07
Kontaktdaten:

Beitrag von phpchris »

Und wenn ich auf den 19. klicke, gibts keinen Artikel...
baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul »

phpchris hat geschrieben:Und wenn ich auf den 19. klicke, gibts keinen Artikel...
Ja, weil die komplette Tabelle con_art_lang abgefragt wird und nicht passend zur Kategorie, dich ich auch noch irgendwo mit einbringen muss.

Habe die SQL Abfrage nicht richtig hinbekommen. Viellicht kann da jemand übernehmen.
baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul »

Ich bekomme die SQL Abfrage nicht hin. Kann sich das mal jemand anschauen.

Code: Alles auswählen

$resultat = "SELECT DAYOFMONTH(created) AS tag 
			FROM 
			  {$cfg['tab']['cat']} AS a, 
			  {$cfg['tab']['cat']} AS b, 
			  {$cfg['tab']['cat']} AS c 
		   LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
		   LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
		   LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
		   WHERE 
		   ( 
			  ( 
				 c.parentid = b.idcat 
				 AND b.parentid = a.idcat 
			  ) 
			  OR 
			  ( 
				 c.idcat = b.idcat 
				 AND b.parentid = a.idcat 
			  ) 
			  OR 
			  ( 
				 c.idcat = b.idcat 
				 AND b.idcat = a.idcat 
			  ) 
		   ) 
		   AND e.online = 1 
		   AND e.redirect = 0 
		   AND e.external_redirect = 0 
		   AND e.idlang = $lang 
		   AND f.startidartlang != e.idartlang 
		   AND YEAR(e.created)= $jahr 
		   AND MONTH(e.created) = $monat";
Gesperrt