Example #1
0
 function &insert(&$obj)
 {
     if (is_a($obj, 'Inline') && !$this->noPara) {
         $obj =& $obj->toPara();
     }
     return parent::insert($obj);
 }
 /**
  * Sets up all template access for a template variable
  * 
  * @param integer $tv_id
  * @param array $templates
  * 
  * @return boolean
  */
 public function setup_tv_template_access($tv_id, $templates)
 {
     $template_collection = $this->modx->getCollection('modTemplate');
     // Remove all tv access for each template
     foreach ($template_collection as $template) {
         $template = Element::insert($template);
         if (!$this->remove_template_access($tv_id, $template->get_property('id'))) {
             return false;
         }
     }
     // Give access to all templates if the first name is *
     if ($templates[0] === '*') {
         foreach ($template_collection as $template) {
             $template = Element::insert($template);
             if ($template) {
                 if (!$this->add_template_access($tv_id, $template->get_property('id'))) {
                     return false;
                 }
             }
         }
     } else {
         foreach ($templates as $template_name) {
             $template = Element::get($this->modx, 'modTemplate', $template_name);
             // If the template exists add access to the tv
             if ($template) {
                 if (!$this->add_template_access($tv_id, $template->get_property('id'))) {
                     return false;
                 }
             }
         }
     }
     return true;
 }
 if (count($flagged_tvs) > 0) {
     $updated_tvs = $tvs;
     foreach ($flagged_tvs as $i) {
         unset($updated_tvs[$i]);
     }
     // Update the template variable file and remove the tvs from the sync if successfull
     if ($element_helper->update_tv_file($updated_tvs)) {
         foreach ($flagged_tvs as $i) {
             $element_sync->remove_element('modTemplateVar', $tvs[$i]->name);
         }
     }
 }
 // Process the template variable elements
 foreach ($modx->getCollection('modTemplateVar') as $element_object) {
     // Check if the tv exists in the template variables file
     $element = Element::insert($element_object);
     $name = $element->get_property('name');
     $category_id = $element->get_property('category');
     $tv_file_has_tv = false;
     // Check if the element has a category and is whitelisted
     if ($category_id !== 0) {
         $category = Element::get($modx, 'modCategory', $category_id);
         if (!in_array($category->get_property('name'), $category_whitelist)) {
             continue;
         }
     }
     // Loop through the tvs to check if it exists in the template variables file
     foreach ($tvs as $i => $tv) {
         if ($tv->name === $name) {
             $tv_file_has_tv = true;
         }