Пример #1
0
 public function refreshTableData()
 {
     $refreshedCount = 0;
     $catInfo = $this->getItems(array("DetailLevel" => "ReturnAll"));
     $existCategoriesList = array();
     $res = CategoryTable::getList(array("select" => array("ID", "CATEGORY_ID")));
     while ($category = $res->fetch()) {
         $existCategoriesList[$category["CATEGORY_ID"]] = $category["ID"];
     }
     if (isset($catInfo["CategoryArray"]["Category"])) {
         $categories = Xml2Array::normalize($catInfo["CategoryArray"]["Category"]);
         foreach ($categories as $category) {
             $fields = array("CATEGORY_ID" => $category["CategoryID"], "LEVEL" => $category["CategoryLevel"], "NAME" => $category["CategoryName"], "PARENT_ID" => $category["CategoryParentID"]);
             if (array_key_exists($category["CategoryID"], $existCategoriesList)) {
                 $result = CategoryTable::update($existCategoriesList[$category["CategoryID"]], $fields);
             } else {
                 $result = CategoryTable::add($fields);
             }
             if ($result > 0) {
                 $refreshedCount++;
             }
         }
     }
     return $refreshedCount;
 }