Esempio n. 1
0
 function afterAction(&$base)
 {
     if (!Roll::isFormInvalid()) {
         $base->setInfoText($this->method);
     }
     LocationHistory::saveInfoText();
     if (Roll::isFormInvalid()) {
         LocationHistory::rollBack(1);
     } else {
         LocationHistory::resetPost();
         CacheManager::resetCache(0, TRUE);
         //performReset
         if (isset($base->nextAction)) {
             LocationHistory::rollBack($base->nextAction);
         } elseif (isset($base->rollBackNum)) {
             LocationHistory::rollBack($base->rollBackNum);
         } else {
             if ($this->method == "delete") {
                 $ctrl =& new AppController(LocationHistory::getBack(2));
                 // ha showdetails-rol mentunk a delete-re, akkor a showdetails elotti oldalra terunk vissza:
                 if ($ctrl->list == $this->list && $ctrl->method == "showdetails" && $ctrl->rollid == $this->rollid) {
                     LocationHistory::rollBack(3);
                 }
             }
             LocationHistory::rollBack(2);
         }
     }
 }
Esempio n. 2
0
 function deleteColumn($field)
 {
     if ($field->isCommon) {
         $cidCond = "";
     } else {
         $cidCond = " AND cid=#cid#";
     }
     // ha nem common a custom field, amit torlunk, csak azoknak a custom listeknek az oszlopaibol kell torolni,
     // amik a field categoriajara specifikusak:
     $query = array("SELECT id, `columns`, cache FROM @search WHERE FIND_IN_SET(#id#, `columns`)!=0 {$cidCond}", "columns", $field->id, "columns", $field->cid);
     loadObjectsSql($lists = new CustomList(), $query, $lists);
     foreach ($lists as $l) {
         $f = preg_replace("{(,)?\\b{$this->id}\\b(?(1)|(,|\$))}", "", $l->columns);
         executeQuery(array("UPDATE @search SET `columns`=#f# WHERE id=#id#", "columns", $f, $l->id));
         if ($l->cache) {
             CacheManager::resetCache($l->id, TRUE, FALSE);
         }
     }
     $query = array("SELECT *, '' AS str FROM @search WHERE query LIKE '%{$field->columnIndex}%' {$cidCond}", $field->cid);
     $lists = new CustomList();
     $lists->cid = $field->cid;
     $lists->activateVariableFields();
     loadObjectsSql($lists, $query, $lists);
     foreach ($lists as $l) {
         unset($l->{$field->columnIndex});
         $l->makeSearchQuery(TRUE);
         modify($l);
         if ($l->cache) {
             CacheManager::resetCache($l->id, TRUE, FALSE);
         }
     }
 }
Esempio n. 3
0
 function modify($whereFields = "")
 {
     // betoltjuk aregi category-t:
     G::load($oldObject, $this->id, "appcategory");
     $this->handleExpirationFieldsContraversy();
     parent::modify($whereFields);
     // recursive esetben csak a wholeName valtoztatasarol van szo,
     // nincs attachment feltoltes, exp, vagy immediateAppear valtoztatas:
     if (!Roll::isFormInvalid()) {
         $this->storeAttachment();
         $this->handleExpirationChanges($oldObject->expiration);
         $this->handleImmediateAppearChanges($oldObject->immediateAppear);
         CacheManager::resetCache($this->id);
     }
 }
Esempio n. 4
0
 function move()
 {
     global $gorumroll;
     // csak admin move-olhat:
     hasAdminRights($isAdm);
     if (!$isAdm) {
         return;
     }
     $oldCid = G::getAttr($this->id, "item", "cid");
     // ha nincs move-olas:
     if ($oldCid == $this->cid) {
         return;
     }
     G::load($newCategory, array("SELECT * FROM @category WHERE id=#cid#", $this->cid));
     // Ellenorzes:
     ItemField::filterCompatibleCategories($oldCid, $newCategory);
     if (!count($newCategory)) {
         return;
     }
     // trukkozes
     $newCategory = $newCategory[0];
     CustomField::addCustomColumns("item");
     G::load($oldFields, array("SELECT columnIndex FROM @customfield WHERE cid=#cid# ORDER BY sortId ASC", $oldCid));
     G::load($newFields, array("SELECT columnIndex FROM @customfield WHERE cid=#cid# ORDER BY sortId ASC", $this->cid));
     load($this);
     $newObj = gclone($this);
     $newObj->cid = $newCategory->id;
     if ($newCategory->immediateAppear) {
         $newObj->status = TRUE;
     }
     for ($i = 0; $i < count($oldFields); $i++) {
         if (isset($this->{$oldFields[$i]->columnIndex})) {
             $newObj->{$newFields[$i]->columnIndex} = $this->{$oldFields[$i]->columnIndex};
         }
     }
     modify($newObj);
     // itemnumok beallitasa
     if ($newObj->status) {
         $newCategory->increaseDirectItemNum();
     }
     G::load($oldCategory, $oldCid, "appcategory");
     if ($this->status) {
         $oldCategory->decreaseDirectItemNum();
     }
     Roll::setInfoText("adMoved");
     CacheManager::resetCache($this->cid);
     CacheManager::resetCache($oldCid);
 }
Esempio n. 5
0
 function delete()
 {
     load($this);
     parent::delete();
     if ($this->cache) {
         CacheManager::resetCache($this->id, TRUE, FALSE);
     }
 }