Exemplo n.º 1
0
function updateExtensionForm(checkbox, name)
{
  extensionForm = document.getElementById(name + '_form');

  rowGroupDisplayValue = document.all ? 'block' : 'table-row-group';

  if (checkbox.checked)
  {
    extensionForm.style.display = rowGroupDisplayValue;
  }
  else
  {
    extensionForm.style.display = 'none';  
  }  
}

function showTier3Extensions()
{
  document.getElementById('tier3_exts').style.display = 'block';
  document.getElementById('show_tier3_exts').style.display = 'none';
}

<?php 
if (array_intersect(array_keys((array) $sf_request->getParameter('extensions')), ExtensionDefinitionTable::getNamesByTier(3))) {
    ?>
showTier3Extensions();
<?php 
}
?>

</script>
Exemplo n.º 2
0
 public function addEntity($request, $primary)
 {
     if (!in_array($primary, array('Person', 'Org'))) {
         throw new Exception("Invalid primary extension: " . $primary);
     }
     $this->header = 'Add New ' . ($primary == 'Person' ? 'Person' : 'Organization');
     //create new entity and extension
     $this->entity = new Entity();
     $this->entity->addExtension($primary);
     //get extensions and definitions
     $this->tier2_defs = ExtensionDefinitionTable::getByTier(2, $primary);
     $this->tier3_defs = ExtensionDefinitionTable::getByTier(3, $primary);
     //create entity form
     $this->entity_form = new EntityForm($this->entity);
     //create primary extension form
     $primaryFormClass = $primary . 'Form';
     $this->primary_ext_form = new $primaryFormClass($this->entity->getPrimaryExtensionObject(), null, false);
     //create all other extension forms
     $this->other_ext_forms = array();
     $exts = ExtensionDefinitionTable::getNamesByTier(array(2, 3), $primary, $havingFields = true);
     foreach ($exts as $ext) {
         $class = $ext . 'Form';
         $object = new $ext();
         $this->other_ext_forms[$ext] = new $class($object, null, false);
     }
     $this->reference_form = new ReferenceForm();
     //form submission
     if ($request->isMethod('post')) {
         $this->entity_form->bind($request->getParameter('entity'));
         $this->primary_ext_form->bind($request->getParameter('entity'));
         $new_exts = array_keys((array) $request->getParameter('extensions'));
         $this->reference_form->bind($request->getParameter('reference'));
         foreach ($exts as $ext) {
             $this->other_ext_forms[$ext]->bind($request->getParameter('entity'));
         }
         if ($this->entity_form->isValid() && $this->reference_form->isValid()) {
             $db = Doctrine_Manager::connection();
             try {
                 $db->beginTransaction();
                 //save extensions
                 foreach ($new_exts as $ext) {
                     $this->entity->addExtension($ext);
                 }
                 //save entity and reference
                 $this->entity_form->updateObject();
                 $this->entity->saveWithRequiredReference($request->getParameter('reference'));
                 //create primary alias
                 $a = new Alias();
                 $a->Entity = $this->entity;
                 $a->name = $this->entity->name;
                 $a->is_primary = true;
                 $a->save();
                 $db->commit();
             } catch (Exception $e) {
                 $db->rollback();
                 throw $e;
             }
             //redirect to view
             $this->redirect($this->entity->getInternalUrl());
         }
     }
     $this->setTemplate('addEntity');
 }