public function propertiesAction()
 {
     if ($this->_getParam("data")) {
         if ($this->getUser()->isAllowed("predefined_properties")) {
             if ($this->_getParam("xaction") == "destroy") {
                 $id = Zend_Json::decode($this->_getParam("data"));
                 $property = Property_Predefined::getById($id);
                 $property->delete();
                 $this->_helper->json(array("success" => true, "data" => array()));
             } else {
                 if ($this->_getParam("xaction") == "update") {
                     $data = Zend_Json::decode($this->_getParam("data"));
                     // save type
                     $property = Property_Predefined::getById($data["id"]);
                     $property->setValues($data);
                     $property->save();
                     $this->_helper->json(array("data" => $property, "success" => true));
                 } else {
                     if ($this->_getParam("xaction") == "create") {
                         $data = Zend_Json::decode($this->_getParam("data"));
                         unset($data["id"]);
                         // save type
                         $property = Property_Predefined::create();
                         $property->setValues($data);
                         $property->save();
                         $this->_helper->json(array("data" => $property, "success" => true));
                     }
                 }
             }
         } else {
             if ($this->getUser() != null) {
                 Logger::err("user [" . $this->getUser()->getId() . "] attempted to modify properties predefined, but has no permission to do so.");
             } else {
                 Logger::err("attempt to modify properties predefined, but no user in session.");
             }
         }
     } else {
         // get list of types
         $list = new Property_Predefined_List();
         $list->setLimit($this->_getParam("limit"));
         $list->setOffset($this->_getParam("start"));
         if ($this->_getParam("sort")) {
             $list->setOrderKey($this->_getParam("sort"));
             $list->setOrder($this->_getParam("dir"));
         }
         if ($this->_getParam("filter")) {
             $list->setCondition("`name` LIKE " . $list->quote("%" . $this->_getParam("filter") . "%") . " OR `description` LIKE " . $list->quote("%" . $this->_getParam("filter") . "%"));
         }
         $list->load();
         $properties = array();
         if (is_array($list->getProperties())) {
             foreach ($list->getProperties() as $property) {
                 $properties[] = $property;
             }
         }
         $this->_helper->json(array("data" => $properties, "success" => true, "total" => $list->getTotalCount()));
     }
 }
 /**
  * Loads a list of predefined properties for the specicifies parameters, returns an array of Property_Predefined elements
  *
  * @return array
  */
 public function load()
 {
     $properties = array();
     $propertiesData = $this->db->fetchCol("SELECT id FROM properties_predefined" . $this->getCondition() . $this->getOrder() . $this->getOffsetLimit(), $this->model->getConditionVariables());
     foreach ($propertiesData as $propertyData) {
         $properties[] = Property_Predefined::getById($propertyData);
     }
     $this->model->setProperties($properties);
     return $properties;
 }
Exemple #3
0
 /**
  * get the config from an predefined property-set (eg. select)
  *
  * @return void
  */
 public function setConfigFromPredefined()
 {
     if ($this->getName() && $this->getType()) {
         $predefined = Property_Predefined::getByKey($this->getName());
         if ($predefined->getType() == $this->getType()) {
             $this->config = $predefined->getConfig();
         }
     }
 }