$oNewsletters->setWhere("idlang", $lang); if ($_REQUEST["filter"] != "") { if ($_REQUEST["searchin"] == "--all--" || $_REQUEST["searchin"] == "") { foreach ($aFields as $sKey => $aData) { if (strpos($aData["type"], "search") !== false) { $oNewsletters->setWhereGroup("filter", $aData["field"], $_REQUEST["filter"], "LIKE"); } } $oNewsletters->setInnerGroupCondition("filter", "OR"); } else { $oNewsletters->setWhere($_REQUEST["searchin"], $_REQUEST["filter"], "LIKE"); } } if ($_REQUEST["elemperpage"] > 0) { // Getting item count without limit (for page function) - better idea anyone (performance)? $oNewsletters->query(); $iItemCount = $oNewsletters->count(); if ($_REQUEST["elemperpage"] * $_REQUEST["page"] >= $iItemCount + $_REQUEST["elemperpage"] && $_REQUEST["page"] != 1) { $_REQUEST["page"]--; } $oNewsletters->setLimit($_REQUEST["elemperpage"] * ($_REQUEST["page"] - 1), $_REQUEST["elemperpage"]); } else { $iItemCount = 0; } $oNewsletters->setOrder("welcome DESC, " . $_REQUEST["sortby"] . " " . $_REQUEST["sortorder"]); $oNewsletters->query(); // Output data $oMenu = new UI_Menu(); $iMenu = 0; // Store messages for repeated use (speeds performance, as i18n translation is only needed once) $aMsg = array();
/** * Overriden store()-Method to set modified and modifiedby data and * to ensure, that there is only one welcome newsletter */ public function store() { global $client, $lang, $auth; $client = Contenido_Security::toInteger($client); $lang = Contenido_Security::toInteger($lang); $this->set("modified", date("Y-m-d H:i:s"), false); $this->set("modifiedby", $auth->auth["uid"]); if ($this->get("welcome") == 1) { $oItems = new NewsletterCollection(); $oItems->setWhere("idclient", $client); $oItems->setWhere("idlang", $lang); $oItems->setWhere("welcome", 1); $oItems->setWhere("idnews", $this->get("idnews"), "<>"); $oItems->query(); while ($oItem = $oItems->next()) { $oItem->set("welcome", 0); $oItem->store(); } unset($oItem); unset($oItems); } parent::store(); }