<?php
/**
* copyright (c) 2006-2010 JTL-Software-GmbH, all rights reserved
*
* this file may not be redistributed in whole or significant part
* and is subject to the JTL-Software-GmbH license.
*
* license: http://jtl-software.de/jtlshop3license.html
*/
function baueFilterSQL($nAktuelleSeite = 1)
{
$oSQL->cSortSQL = "";
$oSQL->cAnzahlSQL = "";
$oSQL->cDatumSQL = "";
$oSQL->cNewsKatSQL = "";
// Anzahl Filter
if($_SESSION['NewsNaviFilter']->nAnzahl > 0)
$oSQL->cAnzahlSQL = " LIMIT " . (($nAktuelleSeite - 1) * $_SESSION['NewsNaviFilter']->nAnzahl) . ", " . $_SESSION['NewsNaviFilter']->nAnzahl;
elseif($_SESSION['NewsNaviFilter']->nAnzahl == -1) // Standard
$oSQL->cAnzahlSQL = "";
// Sortierung Filter
if($_SESSION['NewsNaviFilter']->nSort > 0)
{
switch($_SESSION['NewsNaviFilter']->nSort)
{
case 1: // Datum absteigend
$oSQL->cSortSQL = " ORDER BY tnews.dGueltigVon DESC";
break;
case 2: // Datum aufsteigend
$oSQL->cSortSQL = " ORDER BY tnews.dGueltigVon";
break;
case 3: // Name a ... z
$oSQL->cSortSQL = " ORDER BY tnews.cBetreff";
break;
case 4: // Name z ... a
$oSQL->cSortSQL = " ORDER BY tnews.cBetreff DESC";
break;
case 5: // Anzahl Kommentare absteigend
$oSQL->cSortSQL = " ORDER BY nNewsKommentarAnzahl DESC";
break;
case 6: // Anzahl Kommentare aufsteigend
$oSQL->cSortSQL = " ORDER BY nNewsKommentarAnzahl";
break;
}
}
elseif($_SESSION['NewsNaviFilter']->nSort == -1) // Standard
$oSQL->cSortSQL = " ORDER BY tnews.dGueltigVon DESC";
// Datum Filter
if(strlen($_SESSION['NewsNaviFilter']->cDatum) > 0 && intval($_SESSION['NewsNaviFilter']->cDatum) != -1)
{
list($nMonat, $nJahr) = explode("-", $_SESSION['NewsNaviFilter']->cDatum);
$oSQL->cDatumSQL = " AND MONTH(tnews.dGueltigVon)='" . intval($nMonat) . "' AND YEAR(tnews.dGueltigVon)='" . intval($nJahr) . "'";
}
elseif(intval($_SESSION['NewsNaviFilter']->cDatum) == -1)
$oSQL->cDatumSQL = "";
// NewsKat Filter
if($_SESSION['NewsNaviFilter']->nNewsKat > 0)
{
$oSQL->cNewsKatSQL = " JOIN tnewskategorienews ON tnewskategorienews.kNews = tnews.kNews
AND tnewskategorienews.kNewsKategorie = " . intval($_SESSION['NewsNaviFilter']->nNewsKat);
}
elseif($_SESSION['NewsNaviFilter']->nNewsKat == -1)
$oSQL->cNewsKatSQL = "";
return $oSQL;
}
// Prüft ob eine Kunde bereits einen Kommentar zu einer News geschrieben hat.
// Falls Ja => return false
// Falls Nein => return true
function pruefeKundenKommentar($cKommentar, $cName = "", $cEmail = "", $kNews, $Einstellungen)
{
$nPlausiValue_arr = array();
// Kommentar prüfen
if(strlen($_POST['cKommentar']) == 0)
$nPlausiValue_arr['cKommentar'] = 1;
if(strlen($_POST['cKommentar']) > 1000)
$nPlausiValue_arr['cKommentar'] = 2;
if(isset($_SESSION['Kunde']->kKunde) && $_SESSION['Kunde']->kKunde > 0 && $kNews > 0) // Kunde ist eingeloggt
{
$oNewsKommentar = $GLOBALS['DB']->executeQuery("SELECT count(*) as nAnzahl
FROM tnewskommentar
WHERE kNews=" . intval($kNews) . "
AND kKunde=" . intval($_SESSION['Kunde']->kKunde), 1);
if($oNewsKommentar->nAnzahl > intval($Einstellungen['news']['news_kommentare_anzahlprobesucher']) && intval($Einstellungen['news']['news_kommentare_anzahlprobesucher']) != 0)
$nPlausiValue_arr['nAnzahl'] = 1;
$cEmail = $_SESSION['Kunde']->cMail;
}
else // Kunde ist nicht eingeloggt
{
// Name prüfen
if(strlen($cName) == 0)
$nPlausiValue_arr['cName'] = 1;
// Email prüfen
if(!valid_email($cEmail))
$nPlausiValue_arr['cEmail'] = 1;
}
if(!$nPlausiValue_arr['cName'] && pruefeEmailblacklist($cEmail))
$nPlausiValue_arr['cEmail'] = 2;
return $nPlausiValue_arr;
}
function gibNewskommentarFehler($nPlausiValue_arr)
{
$cFehler = "";
if(!isset($GLOBALS['oSprache']))
return $cFehler;
// Kommentarfeld ist leer
if($nPlausiValue_arr['cKommentar'] == 1)
$cFehler .= $GLOBALS['oSprache']->gibWert('newscommentMissingtext', 'errorMessages') . "<br />";
// Kommentar ist länger als 1000 Zeichen
elseif($nPlausiValue_arr['cKommentar'] == 2)
$cFehler .= $GLOBALS['oSprache']->gibWert('newscommentLongtext', 'errorMessages') . "<br />";
// Kunde hat bereits einen Newskommentar zu der aktuellen News geschrieben
if($nPlausiValue_arr['nAnzahl'] == 1)
$cFehler .= $GLOBALS['oSprache']->gibWert('newscommentAlreadywritten', 'errorMessages') . "<br />";
// Kunde ist nicht eingeloggt und das Feld Name oder Email ist leer
if($nPlausiValue_arr['cName'] == 1 || $nPlausiValue_arr['cEmail'] == 1)
$cFehler .= $GLOBALS['oSprache']->gibWert('newscommentMissingnameemail', 'errorMessages') . "<br />";
// Emailadresse ist auf der Blacklist
if($nPlausiValue_arr['cEmail'] == 2)
$cFehler .= $GLOBALS['oSprache']->gibWert('kwkEmailblocked', 'errorMessages') . "<br />";
return $cFehler;
}
function holeNewsKategorien($cDatumSQL)
{
$cSQL = "";
if(strlen($cDatumSQL) > 0)
{
$cSQL = " JOIN tnewskategorienews ON tnewskategorienews.kNewsKategorie = tnewskategorie.kNewsKategorie
JOIN tnews ON tnews.kNews = tnewskategorienews.kNews
" . $cDatumSQL;
}
$oNewsKategorie_arr = $GLOBALS['DB']->executeQuery("SELECT tnewskategorie.kNewsKategorie, tnewskategorie.kSprache, tnewskategorie.cName,
tnewskategorie.cBeschreibung, tnewskategorie.cMetaTitle, tnewskategorie.cMetaDescription,
tnewskategorie.nSort, tnewskategorie.nAktiv, tnewskategorie.dLetzteAktualisierung, tseo.cSeo,
DATE_FORMAT(tnewskategorie.dLetzteAktualisierung, '%d.%m.%Y %H:%i') as dLetzteAktualisierung_de
FROM tnewskategorie
" . $cSQL . "
LEFT JOIN tseo ON tseo.cKey = 'kNewsKategorie'
AND tseo.kKey = tnewskategorie.kNewsKategorie
AND tseo.kSprache = " . $_SESSION['kSprache'] . "
AND tnewskategorie.kSprache = " . $_SESSION['kSprache'] . "
WHERE tnewskategorie.kSprache = " . $_SESSION['kSprache'] . "
GROUP BY tnewskategorie.kNewsKategorie
ORDER BY tnewskategorie.nSort", 2);
return $oNewsKategorie_arr;
}
function baueDatum($oDatum_arr)
{
$oDatumTMP_arr = array();
if(is_array($oDatum_arr) && count($oDatum_arr) > 0)
{
foreach($oDatum_arr as $oDatum)
{
unset($oTMP);
$oTMP->cWert = $oDatum->nMonat . "-" . $oDatum->nJahr;
$oTMP->cName = mappeDatumName(strval($oDatum->nMonat), intval($oDatum->nJahr), $_SESSION['cISOSprache']);
$oDatumTMP_arr[] = $oTMP;
}
}
return $oDatumTMP_arr;
}
function mappeDatumName($cMonat, $nJahr, $cISOSprache)
{
$cName = "";
if($cISOSprache == "ger")
{
switch($cMonat)
{
case "01":
$cName .= $GLOBALS['oSprache']->gibWert('january', 'news').", " . $nJahr;
break;
case "02":
$cName .= $GLOBALS['oSprache']->gibWert('february', 'news').", " . $nJahr;
break;
case "03":
$cName .= $GLOBALS['oSprache']->gibWert('march', 'news').", " . $nJahr;
break;
case "04":
$cName .= $GLOBALS['oSprache']->gibWert('april', 'news').", " . $nJahr;
break;
case "05":
$cName .= $GLOBALS['oSprache']->gibWert('may', 'news').", " . $nJahr;
break;
case "06":
$cName .= $GLOBALS['oSprache']->gibWert('june', 'news').", " . $nJahr;
break;
case "07":
$cName .= $GLOBALS['oSprache']->gibWert('july', 'news').", " . $nJahr;
break;
case "08":
$cName .= $GLOBALS['oSprache']->gibWert('august', 'news').", " . $nJahr;
break;
case "09":
$cName .= $GLOBALS['oSprache']->gibWert('september', 'news').", " . $nJahr;
break;
case "10":
$cName .= $GLOBALS['oSprache']->gibWert('october', 'news').", " . $nJahr;
break;
case "11":
$cName .= $GLOBALS['oSprache']->gibWert('november', 'news').", " . $nJahr;
break;
case "12":
$cName .= $GLOBALS['oSprache']->gibWert('december', 'news').", " . $nJahr;
break;
}
}
else
$cName .= date("F", mktime(0, 0, 0, intval($cMonat), 1, $nJahr)) . ", " . $nJahr;
return $cName;
}
?>