Пример #1
0
 public function doExecute()
 {
     //Cancel?
     $arrDefaultReturn = array("base" => "collections", "action" => "edit_form", "subject" => $this->request->getProperty("subject"), "subcategory" => $this->request->getProperty("subcategory"), "username" => $this->request->getProperty("username"));
     if ($this->request->getProperty("cancel")) {
         $this->returnWithMessage($this->getLabel("text_collections_cancelled"), $arrDefaultReturn);
         return 1;
     }
     $strSubject = $this->request->getProperty("subject");
     $strSubcatID = $this->request->getProperty("subcategory");
     $strUsername = $this->request->getProperty("username");
     $strNewName = $this->request->getProperty("new_name");
     if (empty($strNewName)) {
         $this->returnWithMessage($this->getLabel("text_collections_blank_name"), $arrDefaultReturn);
         return 1;
     }
     // make sure they are logged in as the user they are trying to save as.
     $this->ensureSpecifiedUser();
     $objData = new Xerxes_DataMap();
     $category = $objData->getSubject($strSubject, null, Xerxes_DataMap::userCreatedMode, $strUsername);
     if (!empty($strSubcatID)) {
         // rename a subcategory
         $subcat = $this->getSubcategory($category, $strSubcatID);
         $subcat->name = $strNewName;
         $objData->updateUserSubcategoryProperties($subcat);
     } else {
         // rename category
         $category->name = $strNewName;
         $objData->updateUserCategoryProperties($category);
     }
     // new name if it's been changed!
     $arrDefaultReturn["subject"] = $category->normalized;
     $this->returnWithMessage($this->getLabel("text_collections_renamed"), $arrDefaultReturn);
     return 1;
 }
Пример #2
0
 public function doExecute()
 {
     // cancel?
     $arrDefaultReturn = array("base" => "collections", "action" => "edit_form", "subject" => $this->request->getProperty("subject"), "subcategory" => $this->request->getProperty("subcategory"), "username" => $this->request->getProperty("username"));
     if ($this->request->getProperty("cancel")) {
         $this->returnWithMessage($this->getLabel("text_collections_cancelled"), $arrDefaultReturn);
         return 1;
     }
     $strSubject = $this->request->getProperty("subject");
     $strSubcatID = $this->request->getProperty("subcategory");
     $strPublished = $this->request->getProperty("published");
     $strUsername = $this->request->getProperty("username");
     $strNewName = $this->request->getProperty("new_name");
     // Make sure they are logged in as the user they are trying to save as.
     $this->ensureSpecifiedUser();
     $objData = new Xerxes_DataMap();
     $category = $objData->getSubject($strSubject, null, Xerxes_DataMap::userCreatedMode, $strUsername);
     $message = "";
     if (!empty($strSubcatID)) {
         // edit a subcategory, rename
         $subcat = $this->getSubcategory($category, $strSubcatID);
         if (!empty($strNewName)) {
             $message .= "Section name changed. ";
             $subcat->name = $strNewName;
             $objData->updateUserSubcategoryProperties($subcat);
         }
     } else {
         // edit a category: rename/publish
         if (!empty($strNewName)) {
             $category->name = $strNewName;
             $message .= $this->getLabel("text_collections_name_changed");
         }
         if (!empty($strPublished)) {
             $boolPublished = (int) ($strPublished == "true");
             $category->published = $boolPublished;
             if ($boolPublished) {
                 $message .= $this->getLabel("text_collections_made_published");
             } else {
                 $message .= $this->getLabel("text_collections_made_private");
             }
         }
         $objData->updateUserCategoryProperties($category);
     }
     // new name if it's been changed!
     $arrDefaultReturn["subject"] = $category->normalized;
     $this->returnWithMessage($message, $arrDefaultReturn);
     return 1;
 }
Пример #3
0
 public function doExecute()
 {
     $arrDefaultReturn = array("base" => "collections", "action" => "edit_form", "subject" => $this->request->getProperty("subject"), "subcategory" => $this->request->getProperty("subcategory"), "username" => $this->request->getProperty("username"));
     $strSubject = $this->request->getProperty("subject");
     $strUsername = $this->request->getProperty("username");
     // make sure they are logged in as the user they are trying to save as.
     $this->ensureSpecifiedUser();
     $objData = new Xerxes_DataMap();
     $category = $objData->getSubject($strSubject, null, Xerxes_DataMap::userCreatedMode, $strUsername);
     // find any new assigned numbers, and reorder.
     $orderedSubcats = $category->subcategories;
     // we need to through the assignments in sorted order by sequence choice,
     // for this to work right.
     $sortedProperties = $this->request->getAllProperties();
     asort($sortedProperties);
     foreach ($sortedProperties as $name => $new_sequence) {
         $matches = array();
         if (!empty($new_sequence) && preg_match('/^subcat_seq_(\\d+)$/', $name, $matches)) {
             $subcatID = $matches[1];
             $old_index = null;
             $subcategory = null;
             for ($i = 0; $i < count($orderedSubcats); $i++) {
                 $candidate = $orderedSubcats[$i];
                 if ($candidate->id == $subcatID) {
                     $old_index = $i;
                     $subcategory = $candidate;
                 }
             }
             // if we found it.
             if ($subcategory) {
                 // remove it from the array, then add it back in
                 array_splice($orderedSubcats, $old_index, 1);
                 array_splice($orderedSubcats, $new_sequence - 1, 0, array($subcategory));
             }
         }
     }
     // okay, we've re-ordered $orderedSubcats, now update the sequence #s
     for ($i = 0; $i < count($orderedSubcats); $i++) {
         $subcategory = $orderedSubcats[$i];
         $subcategory->sequence = $i + 1;
         $objData->updateUserSubcategoryProperties($subcategory);
     }
     $this->returnWithMessage($this->getLabel("text_collections_section_order_changed"), $arrDefaultReturn);
     return 1;
 }