public static function execute($id = null, $data) { if (Registry::exists('CategoryTree')) { $OSCOM_CategoryTree = Registry::get('CategoryTree'); } else { $OSCOM_CategoryTree = new CategoryTree(); Registry::set('CategoryTree', $OSCOM_CategoryTree); } if (is_numeric($id)) { $data['id'] = $id; } // Prevent another big bang and check if category is not being moved to a child category if (isset($data['id']) && $OSCOM_CategoryTree->getParentID($data['id']) != $data['parent_id']) { if (in_array($data['id'], explode('_', $OSCOM_CategoryTree->buildBreadcrumb($data['parent_id'])))) { return false; } } if (isset($data['image'])) { $new_image = $data['image']; while (file_exists(OSCOM::getConfig('dir_fs_public', 'OSCOM') . 'categories/' . $new_image)) { $new_image = rand(10, 99) . $new_image; } if (rename(OSCOM::getConfig('dir_fs_public', 'OSCOM') . 'upload/' . $data['image'], OSCOM::getConfig('dir_fs_public', 'OSCOM') . 'categories/' . $new_image)) { if (is_numeric($id)) { $old_image = Categories::get($id, 'categories_image'); unlink(OSCOM::getConfig('dir_fs_public', 'OSCOM') . 'categories/' . $old_image); } $data['image'] = $new_image; } else { $data['image'] = null; } } if (OSCOM::callDB('Admin\\Categories\\Save', $data)) { Cache::clear('categories'); Cache::clear('category_tree'); Cache::clear('also_purchased'); return true; } return false; }
<fieldset> <p><label for="parent_id"><?php echo OSCOM::getDef('field_parent_category'); ?> </label><?php echo HTML::selectMenu('parent_id', array_merge(array(array('id' => '0', 'text' => OSCOM::getDef('top_category'))), $OSCOM_Application->getCategoryList()), $OSCOM_ObjectInfo->getInt('parent_id')); ?> </p> <p><label><?php echo OSCOM::getDef('field_name'); ?> </label></p> <?php foreach ($OSCOM_Language->getAll() as $l) { echo '<p>' . $OSCOM_Language->showImage($l['code']) . ' ' . $l['name'] . '<br />' . HTML::inputField('categories_name[' . $l['id'] . ']', Categories::get($OSCOM_ObjectInfo->getInt('categories_id'), 'categories_name', $l['id'])) . '</p>'; } ?> <p><label><?php echo OSCOM::getDef('field_image'); ?> </label></p> <p id="cImage" class="imageSelectorPlaceholder"></p> <p><label><?php echo OSCOM::getDef('field_image_browser'); ?> </label></p> <div class="imageSelector"> <ul id="cImages"></ul>