Ejemplo n.º 1
0
 public function executeRemove($request)
 {
     $this->patterns = array();
     if ($request->isMethod('post')) {
         sfContext::switchTo('frontend');
         $frontendContext = sfContext::getInstance();
         if ($page = $request->getParameter('page')) {
             $routing = $frontendContext->getRouting();
             if ($route = $routing->findRoute($page)) {
                 $params = $route['parameters'];
                 $module = $params['module'];
                 $action = $params['action'];
                 unset($params['module']);
                 unset($params['action']);
                 unset($params['sf_culture']);
                 $this->patterns = LsCache::generateCachePatterns($module, $action, $params);
                 LsCache::clearCachePatterns($this->patterns);
             }
         }
         if ($entityId = $request->getParameter('entity_id')) {
             $this->patterns = array_merge($this->patterns, LsCache::clearEntityCacheById($entityId));
         }
         if ($relationshipId = $request->getParameter('relationship_id')) {
             $this->patterns = array_merge($this->patterns, LsCache::clearRelationshipCacheById($relationshipId));
         }
         if ($listId = $request->getParameter('list_id')) {
             $this->patterns = array_merge($this->patterns, LsCache::clearListCacheById($listId));
         }
         if ($userName = $request->getParameter('username')) {
             $this->patterns = array_merge($this->patterns, LsCache::clearUserCacheByName($userName));
         }
         if ($groupName = $request->getParameter('groupname')) {
             $this->patterns = array_merge($this->patterns, LsCache::clearGroupCacheByName($groupName));
         }
         sfContext::switchTo('backend');
     }
 }
Ejemplo n.º 2
0
 public function executeRefresh($request)
 {
     $this->checkRelationship($request);
     LsCache::clearRelationshipCacheById($this->relationship['id']);
     $this->redirect($request->getParameter('ref', RelationshipTable::getInternalUrl($this->relationship)));
 }
Ejemplo n.º 3
0
 public function executeAddRelationshipCategory($request)
 {
     $this->checkEntity($request, false, false);
     $this->entity2 = Doctrine::getTable('Entity')->find($request->getParameter('entity2_id'));
     $this->forward404Unless($this->entity2);
     $ext1 = $this->entity->getPrimaryExtension();
     $ext2 = $this->entity2->getPrimaryExtension();
     $this->categories = RelationshipCategoryTable::getByExtensionsQuery($ext1, $ext2)->execute();
     $this->reference_form = new ReferenceForm();
     $rel = new Relationship();
     $rel->Entity1 = $this->entity;
     $rel->Entity2 = $this->entity2;
     $this->reference_form->setSelectObject($rel);
     if ($request->isMethod('post')) {
         $refParams = $request->getParameter('reference');
         $this->reference_form->bind($refParams);
         if ($this->reference_form->isValid()) {
             //lobbying will need to be handled seperately
             if ($request->getParameter('category_id') == RelationshipTable::LOBBYING_CATEGORY) {
                 switch ($request->getParameter('lobbying_scenario')) {
                     case 'direct':
                         $r = new Relationship();
                         $r->Entity1 = $this->entity;
                         $r->Entity2 = $this->entity2;
                         $r->setCategory('Lobbying');
                         break;
                     case 'direct_reverse':
                         $r = new Relationship();
                         $r->Entity1 = $this->entity2;
                         $r->Entity2 = $this->entity;
                         $r->setCategory('Lobbying');
                         break;
                     case 'service':
                         $r = new Relationship();
                         $r->Entity1 = $this->entity;
                         $r->Entity2 = $this->entity2;
                         $r->setCategory('Transaction');
                         $r->description1 = 'Lobbying Client';
                         $r->description2 = $this->entity2['primary_ext'] == 'Org' ? 'Lobbying Firm' : 'Lobbyist';
                         break;
                     case 'service_reverse':
                         $r = new Relationship();
                         $r->Entity1 = $this->entity2;
                         $r->Entity2 = $this->entity;
                         $r->setCategory('Transaction');
                         $r->description1 = 'Lobbying Client';
                         $r->description2 = $this->entity['primary_ext'] == 'Org' ? 'Lobbying Firm' : 'Lobbyist';
                         break;
                     default:
                         $request->setError('lobbying_scenario', "You must pick a type of lobbying relationship to create");
                         return sfView::SUCCESS;
                         break;
                 }
                 $r->saveWithRequiredReference($refParams);
                 LsCache::clearRelationshipCacheById($r->id);
                 $this->redirect($r->getInternalUrl('edit', array('ref' => 'auto')));
             }
             if ($category = Doctrine::getTable('RelationshipCategory')->find($request->getParameter('category_id'))) {
                 //save relationship and reference
                 $r = new Relationship();
                 $r->Entity1 = $this->entity;
                 $r->Entity2 = $this->entity2;
                 $r->setCategory($category->name);
                 $r->switchEntityOrderIfNecessary();
                 $r->saveWithRequiredReference($refParams);
                 LsCache::clearRelationshipCacheById($r->id);
                 //redirect to edit page
                 $this->redirect($r->getInternalUrl('edit', array('ref' => 'auto')));
             } else {
                 $request->setError('category_id', "You must select a category");
             }
         } else {
             if (!($categoryId = $request->getParameter('category_id'))) {
                 $request->setError('category_id', "You must select a category");
             }
         }
     }
 }