Artikelkalender
Verfasst: Do 19. Jan 2006, 12:27
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:
Ausgabe:
Artikelliste
Sie ist auf der Artikelliste w3concepts.alist.thumb.v1 aufgebaut.
Eingabe
Ausgabe
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.
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>";
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ärz";}
elseif ($monat == 3) {$monat_title = "März"; $b_monat = "Februar"; $n_monat ="April";}
elseif ($monat == 4) {$monat_title = "April"; $b_monat = "Mä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>";
?>
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(" ",$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>";
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();
?>
ToDos
- SQL Abfrage muss noch angepasst werden, diese liest im moment noch die komplette tabelle mit allen mandanten usw. aus.