original_string: public function EditCategory($CategoryID = '') {
        // Check permission
        $this->Permission('Garden.Settings.Manage');
        
        // Set up models
        $RoleModel = new RoleModel();
        $PermissionModel = Gdn::PermissionModel();
        $this->Form->SetModel($this->CategoryModel);
        
        if (!$CategoryID && $this->Form->IsPostBack()) {
           if ($ID = $this->Form->GetFormValue('CategoryID'))
              $CategoryID = $ID;
        }
        
        // Get category data
        $this->Category = $this->CategoryModel->GetID($CategoryID);
        $this->Category->CustomPermissions = $this->Category->CategoryID == $this->Category->PermissionCategoryID;
        
        // Set up head
        $this->AddJsFile('jquery.alphanumeric.js');
        $this->AddJsFile('categories.js');
        $this->AddJsFile('jquery.gardencheckboxgrid.js');
        $this->Title(T('Edit Category'));
           
        $this->AddSideMenu('vanilla/settings/managecategories');
        
        // Make sure the form knows which item we are editing.
        $this->Form->AddHidden('CategoryID', $CategoryID);
        $this->SetData('CategoryID', $CategoryID);
        
        // Load all roles with editable permissions
        $this->RoleArray = $RoleModel->GetArray();
        
        $this->FireEvent('AddEditCategory');
        
        if ($this->Form->IsPostBack() == FALSE) {
           $this->Form->SetData($this->Category);
           $this->Form->SetValue('CustomPoints', $this->Category->PointsCategoryID == $this->Category->CategoryID);
        } else {
           $Upload = new Gdn_Upload();
           $TmpImage = $Upload->ValidateUpload('PhotoUpload', FALSE);
           if ($TmpImage) {
              
              // Generate the target image name
              $TargetImage = $Upload->GenerateTargetName(PATH_UPLOADS);
              $ImageBaseName = pathinfo($TargetImage, PATHINFO_BASENAME);
  
              // Save the uploaded image
              $Parts = $Upload->SaveAs(
                 $TmpImage,
                 $ImageBaseName
              );
              $this->Form->SetFormValue('Photo', $Parts['SaveName']);
           }
           $this->Form->SetFormValue('CustomPoints', (bool)$this->Form->GetFormValue('CustomPoints'));
           
           if ($this->Form->Save()) {
              $Category = CategoryModel::Categories($CategoryID);
              $this->SetData('Category', $Category);
              
              if ($this->DeliveryType() == DELIVERY_TYPE_ALL)
                 Redirect('vanilla/settings/managecategories');
           }
        }
         
        // Get all of the currently selected role/permission combinations for this junction.
        $Permissions = $PermissionModel->GetJunctionPermissions(array('JunctionID' => $CategoryID), 'Category', '', array('AddDefaults' => !$this->Category->CustomPermissions));
        $Permissions = $PermissionModel->UnpivotPermissions($Permissions, TRUE);
        
        if ($this->DeliveryType() == DELIVERY_TYPE_ALL)
           $this->SetData('PermissionData', $Permissions, TRUE);
        
        // Render default view
        $this->Render();
     }
code: public function EditCategory($CategoryID = '') {
        // Check permission
        $this->Permission('Garden.Settings.Manage');
        
        // Set up models
        $RoleModel = new RoleModel();
        $PermissionModel = Gdn::PermissionModel();
        $this->Form->SetModel($this->CategoryModel);
        
        if (!$CategoryID && $this->Form->IsPostBack()) {
           if ($ID = $this->Form->GetFormValue('CategoryID'))
              $CategoryID = $ID;
        }
        
        // Get category data
        $this->Category = $this->CategoryModel->GetID($CategoryID);
        $this->Category->CustomPermissions = $this->Category->CategoryID == $this->Category->PermissionCategoryID;
        
        // Set up head
        $this->AddJsFile('jquery.alphanumeric.js');
        $this->AddJsFile('categories.js');
        $this->AddJsFile('jquery.gardencheckboxgrid.js');
        $this->Title(T('Edit Category'));
           
        $this->AddSideMenu('vanilla/settings/managecategories');
        
        // Make sure the form knows which item we are editing.
        $this->Form->AddHidden('CategoryID', $CategoryID);
        $this->SetData('CategoryID', $CategoryID);
        
        // Load all roles with editable permissions
        $this->RoleArray = $RoleModel->GetArray();
        
        $this->FireEvent('AddEditCategory');
        
        if ($this->Form->IsPostBack() == FALSE) {
           $this->Form->SetData($this->Category);
           $this->Form->SetValue('CustomPoints', $this->Category->PointsCategoryID == $this->Category->CategoryID);
        } else {
           $Upload = new Gdn_Upload();
           $TmpImage = $Upload->ValidateUpload('PhotoUpload', FALSE);
           if ($TmpImage) {
              
              // Generate the target image name
              $TargetImage = $Upload->GenerateTargetName(PATH_UPLOADS);
              $ImageBaseName = pathinfo($TargetImage, PATHINFO_BASENAME);
  
              // Save the uploaded image
              $Parts = $Upload->SaveAs(
                 $TmpImage,
                 $ImageBaseName
              );
              $this->Form->SetFormValue('Photo', $Parts['SaveName']);
           }
           $this->Form->SetFormValue('CustomPoints', (bool)$this->Form->GetFormValue('CustomPoints'));
           
           if ($this->Form->Save()) {
              $Category = CategoryModel::Categories($CategoryID);
              $this->SetData('Category', $Category);
              
              if ($this->DeliveryType() == DELIVERY_TYPE_ALL)
                 Redirect('vanilla/settings/managecategories');
           }
        }
         
        // Get all of the currently selected role/permission combinations for this junction.
        $Permissions = $PermissionModel->GetJunctionPermissions(array('JunctionID' => $CategoryID), 'Category', '', array('AddDefaults' => !$this->Category->CustomPermissions));
        $Permissions = $PermissionModel->UnpivotPermissions($Permissions, TRUE);
        
        if ($this->DeliveryType() == DELIVERY_TYPE_ALL)
           $this->SetData('PermissionData', $Permissions, TRUE);
        
        // Render default view
        $this->Render();
     }
code_tokens: public function EditCategory ( $ CategoryID = '' ) { // Check permission $ this -> Permission ( 'Garden.Settings.Manage' ) ; // Set up models $ RoleModel = new RoleModel ( ) ; $ PermissionModel = Gdn :: PermissionModel ( ) ; $ this -> Form -> SetModel ( $ this -> CategoryModel ) ; if ( ! $ CategoryID && $ this -> Form -> IsPostBack ( ) ) { if ( $ ID = $ this -> Form -> GetFormValue ( 'CategoryID' ) ) $ CategoryID = $ ID ; } // Get category data $ this -> Category = $ this -> CategoryModel -> GetID ( $ CategoryID ) ; $ this -> Category -> CustomPermissions = $ this -> Category -> CategoryID == $ this -> Category -> PermissionCategoryID ; // Set up head $ this -> AddJsFile ( 'jquery.alphanumeric.js' ) ; $ this -> AddJsFile ( 'categories.js' ) ; $ this -> AddJsFile ( 'jquery.gardencheckboxgrid.js' ) ; $ this -> Title ( T ( 'Edit Category' ) ) ; $ this -> AddSideMenu ( 'vanilla/settings/managecategories' ) ; // Make sure the form knows which item we are editing. $ this -> Form -> AddHidden ( 'CategoryID' , $ CategoryID ) ; $ this -> SetData ( 'CategoryID' , $ CategoryID ) ; // Load all roles with editable permissions $ this -> RoleArray = $ RoleModel -> GetArray ( ) ; $ this -> FireEvent ( 'AddEditCategory' ) ; if ( $ this -> Form -> IsPostBack ( ) == FALSE ) { $ this -> Form -> SetData ( $ this -> Category ) ; $ this -> Form -> SetValue ( 'CustomPoints' , $ this -> Category -> PointsCategoryID == $ this -> Category -> CategoryID ) ; } else { $ Upload = new Gdn_Upload ( ) ; $ TmpImage = $ Upload -> ValidateUpload ( 'PhotoUpload' , FALSE ) ; if ( $ TmpImage ) { // Generate the target image name $ TargetImage = $ Upload -> GenerateTargetName ( PATH_UPLOADS ) ; $ ImageBaseName = pathinfo ( $ TargetImage , PATHINFO_BASENAME ) ; // Save the uploaded image $ Parts = $ Upload -> SaveAs ( $ TmpImage , $ ImageBaseName ) ; $ this -> Form -> SetFormValue ( 'Photo' , $ Parts [ 'SaveName' ] ) ; } $ this -> Form -> SetFormValue ( 'CustomPoints' , ( bool ) $ this -> Form -> GetFormValue ( 'CustomPoints' ) ) ; if ( $ this -> Form -> Save ( ) ) { $ Category = CategoryModel :: Categories ( $ CategoryID ) ; $ this -> SetData ( 'Category' , $ Category ) ; if ( $ this -> DeliveryType ( ) == DELIVERY_TYPE_ALL ) Redirect ( 'vanilla/settings/managecategories' ) ; } } // Get all of the currently selected role/permission combinations for this junction. $ Permissions = $ PermissionModel -> GetJunctionPermissions ( array ( 'JunctionID' => $ CategoryID ) , 'Category' , '' , array ( 'AddDefaults' => ! $ this -> Category -> CustomPermissions ) ) ; $ Permissions = $ PermissionModel -> UnpivotPermissions ( $ Permissions , TRUE ) ; if ( $ this -> DeliveryType ( ) == DELIVERY_TYPE_ALL ) $ this -> SetData ( 'PermissionData' , $ Permissions , TRUE ) ; // Render default view $ this -> Render ( ) ; }
docstring: Editing a category.
  
  @since 2.0.0
  @access public
  
  @param int $CategoryID Unique ID of the category to be updated.
docstring_tokens: Editing a category .