public function run($filter = null)
 {
     $query = array("name" => new MongoRegex("/" . $_POST['name'] . "/i"));
     $res = array();
     if (strcmp($filter, Person::COLLECTION) != 0) {
         $allCitoyen = PHDB::find(PHType::TYPE_CITOYEN, $query, array("name"));
         foreach ($allCitoyen as $key => $value) {
             $profil = Document::getLastImageByKey($key, Person::COLLECTION, Document::IMG_PROFIL);
             if ($profil != "") {
                 $value["imagePath"] = $profil;
             }
             $allCitoyen[$key] = $value;
         }
         $res["citoyen"] = $allCitoyen;
     }
     if (strcmp($filter, Organization::COLLECTION) != 0) {
         $allOrganizations = PHDB::find(Organization::COLLECTION, $query, array("name", "type"));
         foreach ($allOrganizations as $key => $value) {
             $profil = Document::getLastImageByKey($key, Organization::COLLECTION, Document::IMG_PROFIL);
             if ($profil != "") {
                 $value["imagePath"] = $profil;
             }
             $allOrganizations[$key] = $value;
         }
         $res["organization"] = $allOrganizations;
     }
     if (strcmp($filter, Event::COLLECTION) != 0) {
         $allEvents = PHDB::find(PHType::TYPE_EVENTS, $query, array("name"));
         foreach ($allEvents as $key => $value) {
             $profil = Document::getLastImageByKey($key, Event::COLLECTION, Document::IMG_PROFIL);
             if ($profil != "") {
                 $value["imagePath"] = $profil;
             }
             $allEvents[$key] = $value;
         }
         $res["event"] = $allEvents;
     }
     if (strcmp($filter, Project::COLLECTION) != 0) {
         $allProject = PHDB::find(Project::COLLECTION, $query, array("name"));
         foreach ($allProject as $key => $value) {
             $profil = Document::getLastImageByKey($key, Project::COLLECTION, Document::IMG_PROFIL);
             if ($profil != "") {
                 $value["imagePath"] = $profil;
             }
             $allProject[$key] = $value;
         }
         $res["project"] = $allProject;
     }
     Rest::json($res);
     Yii::app()->end();
 }
 public function run($type)
 {
     if (!in_array($type, $this->typeAvailable)) {
         throw new CTKException("The type " . $type . " can not be managed.");
     }
     $criterias = array();
     foreach ($_POST as $key => $value) {
         $criterias[$key] = $value;
     }
     $search = Search::findByCriterias($type, $criterias, "name", 10);
     foreach ($search as $key => $value) {
         $profil = Document::getLastImageByKey($key, Person::COLLECTION, Document::IMG_PROFIL);
         if ($profil != "") {
             $value["imagePath"] = $profil;
         }
         $search[$key] = $value;
     }
     return Rest::json(array("result" => true, "list" => $search));
 }
 public function run()
 {
     $query = array('$or' => array(array("email" => new MongoRegex("/" . $_POST['search'] . "/i")), array("name" => new MongoRegex("/" . $_POST['search'] . "/i"))));
     $allCitoyens = PHDB::findAndSort(PHType::TYPE_CITOYEN, $query, array("name" => 1), 6);
     $limitOrganization = 12 - count($allCitoyens);
     $allOrganization = PHDB::findAndSort(Organization::COLLECTION, $query, array("name" => 1), $limitOrganization, array("_id", "name", "type", "address", "email", "links", "imagePath"));
     foreach ($allCitoyens as $key => $value) {
         $logo = Document::getLastImageByKey($key, Person::COLLECTION, Document::IMG_LOGO);
         if ($logo != "") {
             $value["logo"] = $logo;
         }
         $allCitoyens[$key] = $value;
     }
     foreach ($allOrganization as $key => $value) {
         $logo = Document::getLastImageByKey($key, Organization::COLLECTION, Document::IMG_LOGO);
         if ($logo != "") {
             $value["logo"] = $logo;
         }
         $allOrganization[$key] = $value;
     }
     $all = array("citoyens" => $allCitoyens, "organizations" => $allOrganization);
     Rest::json($all);
     Yii::app()->end();
 }
 /**
  * Dashboard Organization
  */
 public function run($id)
 {
     $controller = $this->getController();
     if (empty($id)) {
         throw new CTKException(Yii::t("organisation", "The organization id is mandatory to retrieve the organization !"));
     }
     $organization = Organization::getPublicData($id);
     $events = Organization::listEventsPublicAgenda($id);
     $members = array("citoyens" => array(), "organizations" => array());
     $controller->title = isset($organization["name"]) ? $organization["name"] : "";
     $controller->subTitle = isset($organization["shortDescripion"]) ? $organization["shortDescripion"] : "";
     $controller->pageTitle = "Organization " . $controller->title . " - " . $controller->subTitle;
     if (isset($organization["_id"]) && isset(Yii::app()->session["userId"]) && Link::isLinked((string) $organization["_id"], Organization::COLLECTION, Yii::app()->session["userId"])) {
         $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='removeMemberBtn text-red tooltips' data-name='" . $organization["name"] . "' data-memberof-id='" . $organization["_id"] . "' data-member-type='" . Person::COLLECTION . "' data-member-id='" . Yii::app()->session["userId"] . "' data-placement='top' data-original-title='Remove from my Organizations' ><i class='disconnectBtnIcon fa fa-unlink'></i>NOT MEMBER</a></li>");
     } else {
         $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='connectBtn tooltips ' id='addMeAsMemberInfo' data-placement='top' data-original-title='I'm member of this organization' ><i class=' connectBtnIcon fa fa-link '></i>I'M MEMBER</a></li>");
     }
     $contentKeyBase = Yii::app()->controller->id . "." . Yii::app()->controller->action->id;
     $limit = array(Document::IMG_PROFIL => 1, Document::IMG_MEDIA => 5);
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE, $limit);
     $params = array("organization" => $organization);
     $params["contentKeyBase"] = $contentKeyBase;
     $params["images"] = $images;
     $params["events"] = $events;
     $contextMap = array();
     $contextMap["organization"] = $organization;
     $contextMap["events"] = array();
     $contextMap["organizations"] = array();
     $contextMap["people"] = array();
     $organizations = Organization::getMembersByOrganizationId($id, Organization::COLLECTION);
     $people = Organization::getMembersByOrganizationId($id, Person::COLLECTION);
     foreach ($organizations as $key => $value) {
         $newOrga = Organization::getById($key);
         array_push($contextMap["organizations"], $newOrga);
         array_push($members["organizations"], $newOrga);
     }
     foreach ($events as $key => $value) {
         $newEvent = Event::getById($key);
         array_push($contextMap["events"], $newEvent);
     }
     foreach ($people as $key => $value) {
         $newCitoyen = Person::getById($key);
         $profil = Document::getLastImageByKey($key, Person::COLLECTION, Document::IMG_PROFIL);
         if ($profil != "") {
             $newCitoyen["imagePath"] = $profil;
         }
         array_push($contextMap["people"], $newCitoyen);
         array_push($members["citoyens"], $newCitoyen);
     }
     $params["members"] = $members;
     $params["contextMap"] = $contextMap;
     //list
     $params["tags"] = Tags::getActiveTags();
     $lists = Lists::get(array("public", "typeIntervention", "organisationTypes"));
     $params["public"] = $lists["public"];
     $params["organizationTypes"] = $lists["organisationTypes"];
     $params["typeIntervention"] = $lists["typeIntervention"];
     $params["countries"] = OpenData::getCountriesList();
     //Plaquette de présentation
     $listPlaquette = Document::listDocumentByCategory($id, Organization::COLLECTION, Document::CATEGORY_PLAQUETTE, array('created' => 1));
     $params["plaquette"] = reset($listPlaquette);
     $controller->title = isset($organization["name"]) ? $organization["name"] : "";
     $controller->render("dashboard", $params);
 }
 public function actionSimple()
 {
     $this->layout = "//layouts/mainSimple";
     $params = array();
     //get The person Id
     $id = Yii::app()->session["userId"];
     /* **************************************
      *  PERSON
      ***************************************** */
     $person = Person::getPublicData($id);
     $this->title = (isset($person["name"]) ? $person["name"] : "") . "'s Directory";
     $this->subTitle = isset($person["description"]) ? $person["description"] : "";
     $this->pageTitle = ucfirst($this->module->id) . " - " . $this->title;
     /* **************************************
      *  EVENTS
      ***************************************** */
     $events = Authorisation::listEventsIamAdminOf($id);
     $eventsAttending = Event::listEventAttending($id);
     foreach ($eventsAttending as $key => $value) {
         $eventId = (string) $value["_id"];
         if (!isset($events[$eventId])) {
             $events[$eventId] = $value;
         }
     }
     //TODO - SBAR : Pour le dashboard person, affiche t-on les événements des associations dont je suis memebre ?
     //Get the organization where i am member of;
     /* **************************************
      *  ORGANIZATIONS
      ***************************************** */
     $organizations = array();
     if (isset($person["links"]) && isset($person["links"]["memberOf"])) {
         foreach ($person["links"]["memberOf"] as $key => $member) {
             $organization;
             if ($member['type'] == Organization::COLLECTION) {
                 $organization = Organization::getPublicData($key);
                 $profil = Document::getLastImageByKey($key, Organization::COLLECTION, Document::IMG_PROFIL);
                 if ($profil != "") {
                     $organization["imagePath"] = $profil;
                 }
                 array_push($organizations, $organization);
             }
             if (isset($organization["links"]["events"])) {
                 foreach ($organization["links"]["events"] as $keyEv => $valueEv) {
                     $event = Event::getPublicData($keyEv);
                     $profil = Document::getLastImageByKey($keyEv, Event::COLLECTION, Document::IMG_PROFIL);
                     if ($profil != "") {
                         $event["imagePath"] = $profil;
                     }
                     $events[$keyEv] = $event;
                 }
             }
         }
         //$randomOrganizationId = array_rand($subOrganizationIds);
         //$randomOrganization = Organization::getById( $subOrganizationIds[$randomOrganizationId] );
         //$params["randomOrganization"] = $randomOrganization;
     }
     /* **************************************
      *  PEOPLE
      ***************************************** */
     $people = array();
     if (isset($person["links"]) && isset($person["links"]["knows"])) {
         foreach ($person["links"]["knows"] as $key => $member) {
             if ($member['type'] == Person::COLLECTION) {
                 $citoyen = Person::getPublicData($key);
                 $profil = Document::getLastImageByKey($key, Person::COLLECTION, Document::IMG_PROFIL);
                 if ($profil != "") {
                     $citoyen["imagePath"] = $profil;
                 }
                 array_push($people, $citoyen);
             }
         }
     }
     /* **************************************
      *  PROJECTS
      ***************************************** */
     $projects = array();
     if (isset($person["links"]["projects"])) {
         foreach ($person["links"]["projects"] as $key => $value) {
             $project = Project::getPublicData($key);
             array_push($projects, $project);
         }
     }
     $params["person"] = $person;
     $params["organizations"] = $organizations;
     $params["projects"] = $projects;
     $params["events"] = $events;
     $params["people"] = $people;
     $this->render("index", $params);
 }
 public function run($insee = null)
 {
     $controller = $this->getController();
     //get The person Id
     if (empty($id)) {
         if (empty(Yii::app()->session["userId"])) {
             $controller->redirect(Yii::app()->homeUrl);
         } else {
             $id = Yii::app()->session["userId"];
         }
     }
     $person = Person::getPublicData($id);
     $contentKeyBase = Yii::app()->controller->id . "." . Yii::app()->controller->action->id;
     $limit = array(Document::IMG_PROFIL => 1, Document::IMG_MEDIA => 5);
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE, $limit);
     $params = array("person" => $person);
     $params['images'] = $images;
     $params["contentKeyBase"] = $contentKeyBase;
     $controller->sidebar1 = array(array('label' => "ACCUEIL", "key" => "home", "iconClass" => "fa fa-home", "href" => "communecter/person/dashboard/id/" . $id));
     $controller->title = "City Dashboard : " . $insee;
     $controller->subTitle = isset($person["description"]) ? $person["description"] : "";
     $controller->pageTitle = ucfirst($controller->module->id) . " - Informations publiques de " . $controller->title;
     //Get Projects
     $projects = array();
     if (isset($person["links"]["projects"])) {
         foreach ($person["links"]["projects"] as $key => $value) {
             $project = Project::getPublicData($key);
             array_push($projects, $project);
         }
     }
     //Get the Events
     $events = Authorisation::listEventsIamAdminOf($id);
     $eventsAttending = Event::listEventAttending($id);
     foreach ($eventsAttending as $key => $value) {
         $eventId = (string) $value["_id"];
         if (!isset($events[$eventId])) {
             $events[$eventId] = $value;
         }
     }
     $tags = PHDB::findOne(PHType::TYPE_LISTS, array("name" => "tags"), array('list'));
     //TODO - SBAR : Pour le dashboard person, affiche t-on les événements des associations dont je suis memebre ?
     //Get the organization where i am member of;
     $organizations = array();
     if (isset($person["links"]) && isset($person["links"]["memberOf"])) {
         foreach ($person["links"]["memberOf"] as $key => $member) {
             $organization;
             if ($member['type'] == Organization::COLLECTION) {
                 $organization = Organization::getPublicData($key);
                 $profil = Document::getLastImageByKey($key, Organization::COLLECTION, Document::IMG_PROFIL);
                 if ($profil != "") {
                     $organization["imagePath"] = $profil;
                 }
                 array_push($organizations, $organization);
             }
             if (isset($organization["links"]["events"])) {
                 foreach ($organization["links"]["events"] as $keyEv => $valueEv) {
                     $event = Event::getPublicData($keyEv);
                     $events[$keyEv] = $event;
                 }
             }
         }
         //$randomOrganizationId = array_rand($subOrganizationIds);
         //$randomOrganization = Organization::getById( $subOrganizationIds[$randomOrganizationId] );
         //$params["randomOrganization"] = $randomOrganization;
     }
     $people = array();
     if (isset($person["links"]) && isset($person["links"]["knows"])) {
         foreach ($person["links"]["knows"] as $key => $member) {
             $citoyen;
             if ($member['type'] == PHType::TYPE_CITOYEN) {
                 $citoyen = Person::getPublicData($key);
                 $profil = Document::getLastImageByKey($key, Person::COLLECTION, Document::IMG_PROFIL);
                 if ($profil != "") {
                     $citoyen["imagePath"] = $profil;
                 }
                 array_push($people, $citoyen);
             }
         }
     }
     $params["tags"] = $tags;
     $params["organizations"] = $organizations;
     $params["projects"] = $projects;
     $params["events"] = $events;
     $params["people"] = $people;
     $params["insee"] = $insee;
     $controller->render("dashboard", $params);
 }
 /**
  * List all the event the userId is adminOf
  * A user can be admin of an event if :
  * 1/ He is attendee + admin of the event
  * 2/ He is admin of an organization organizing an event
  * 3/ He is admin of an organization that can edit it members (canEditMembers flag) 
  *      and the organizations members is organizing the event
  * @param String $userId The userId to get the authorisation of
  * @return array List of EventId (String) the user is admin of
  */
 public static function listEventsIamAdminOf($userId)
 {
     $eventList = array();
     //event i'am admin
     $where = array("links.attendees." . $userId . ".isAdmin" => true);
     $eventList = PHDB::find(PHType::TYPE_EVENTS, $where);
     //events of organization i'am admin
     $listOrganizationAdmin = Authorisation::listUserOrganizationAdmin($userId);
     foreach ($listOrganizationAdmin as $organizationId => $organization) {
         $eventOrganization = Organization::listEventsPublicAgenda($organizationId);
         foreach ($eventOrganization as $eventId => $eventValue) {
             $eventList[$eventId] = $eventValue;
         }
     }
     foreach ($eventList as $key => $value) {
         $profil = Document::getLastImageByKey($key, PHType::TYPE_EVENTS, Document::IMG_PROFIL);
         if ($profil != "") {
             $value['imagePath'] = $profil;
         }
     }
     return $eventList;
 }
 public static function listEventsPublicAgenda($organizationId)
 {
     $events = array();
     $organization = Organization::getById($organizationId);
     if (isset($organization["links"]["events"])) {
         foreach ($organization["links"]["events"] as $keyEv => $valueEv) {
             $event = Event::getPublicData($keyEv);
             $events[$keyEv] = $event;
         }
     }
     //Specific case : if canEditMember
     if (Authorisation::canEditMembersData($organizationId)) {
         $subOrganization = Organization::getMembersByOrganizationId($organizationId, Organization::COLLECTION);
         foreach ($subOrganization as $key => $value) {
             $newOrganization = Organization::getById($key);
             if (!empty($newOrganization) && isset($newOrganization["links"]["events"])) {
                 foreach ($newOrganization["links"]["events"] as $keyEv => $valueEv) {
                     $event = Event::getPublicData($keyEv);
                     $events[$keyEv] = $event;
                 }
             }
         }
     }
     foreach ($events as $key => $value) {
         $profil = Document::getLastImageByKey($key, PHType::TYPE_EVENTS, Document::IMG_PROFIL);
         if ($profil != "") {
             $value['imagePath'] = $profil;
         }
     }
     return $events;
 }
 public function run($id = null)
 {
     $controller = $this->getController();
     //get The person Id
     if (empty($id)) {
         if (empty(Yii::app()->session["userId"])) {
             $controller->redirect(Yii::app()->homeUrl);
         } else {
             $id = Yii::app()->session["userId"];
         }
     }
     $person = Person::getPublicData($id);
     $contentKeyBase = Yii::app()->controller->id . "." . Yii::app()->controller->action->id;
     $limit = array(Document::IMG_PROFIL => 1, Document::IMG_MEDIA => 5);
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE, $limit);
     $params = array("person" => $person);
     $params['images'] = $images;
     $params["contentKeyBase"] = $contentKeyBase;
     $controller->sidebar1 = array(array('label' => "ACCUEIL", "key" => "home", "iconClass" => "fa fa-home", "href" => "communecter/person/dashboard/id/" . $id));
     $controller->title = (isset($person["name"]) ? $person["name"] : "") . "'s Dashboard";
     $controller->subTitle = isset($person["description"]) ? $person["description"] : "";
     $controller->pageTitle = ucfirst($controller->module->id) . " - Informations publiques de " . $controller->title;
     //$controller->pageTitle = "Citoyens ".$controller->title." - ".$controller->subTitle;
     if (isset($person["_id"]) && isset(Yii::app()->session["userId"]) && $person["_id"] != Yii::app()->session["userId"]) {
         if (isset($person["_id"]) && isset(Yii::app()->session["userId"]) && Link::isConnected(Yii::app()->session['userId'], PHType::TYPE_CITOYEN, (string) $person["_id"], PHType::TYPE_CITOYEN)) {
             $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='disconnectBtn text-red tooltips' data-name='" . $person["name"] . "' data-id='" . $person["_id"] . "' data-type='" . Person::COLLECTION . "' data-ownerlink='" . link::person2person . "' data-placement='top' data-original-title='Remove from my contact' ><i class='disconnectBtnIcon fa fa-unlink'></i>UNFOLLOW</a></li>");
         } else {
             $controller->toolbarMBZ = array("<li id='linkBtns'><a href='javascript:;' class='connectBtn tooltips ' id='addKnowsRelation' data-ownerlink='" . link::person2person . "' data-placement='top' data-original-title='I know this person' ><i class=' connectBtnIcon fa fa-link '></i>FOLLOW</a></li>");
         }
     }
     //Get Projects
     $projects = array();
     if (isset($person["links"]["projects"])) {
         foreach ($person["links"]["projects"] as $key => $value) {
             $project = Project::getPublicData($key);
             array_push($projects, $project);
         }
     }
     //Get the Events
     $events = Authorisation::listEventsIamAdminOf($id);
     $eventsAttending = Event::listEventAttending($id);
     foreach ($eventsAttending as $key => $value) {
         $eventId = (string) $value["_id"];
         if (!isset($events[$eventId])) {
             $events[$eventId] = $value;
         }
     }
     //TODO - SBAR : Pour le dashboard person, affiche t-on les événements des associations dont je suis memebre ?
     //Get the organization where i am member of;
     $organizations = array();
     if (isset($person["links"]) && isset($person["links"]["memberOf"])) {
         foreach ($person["links"]["memberOf"] as $key => $member) {
             $organization;
             if ($member['type'] == Organization::COLLECTION) {
                 $organization = Organization::getPublicData($key);
                 $profil = Document::getLastImageByKey($key, Organization::COLLECTION, Document::IMG_PROFIL);
                 if ($profil != "") {
                     $organization["imagePath"] = $profil;
                 }
                 array_push($organizations, $organization);
             }
             if (isset($organization["links"]["events"])) {
                 foreach ($organization["links"]["events"] as $keyEv => $valueEv) {
                     $event = Event::getPublicData($keyEv);
                     $events[$keyEv] = $event;
                 }
             }
         }
         //$randomOrganizationId = array_rand($subOrganizationIds);
         //$randomOrganization = Organization::getById( $subOrganizationIds[$randomOrganizationId] );
         //$params["randomOrganization"] = $randomOrganization;
     }
     $people = array();
     if (isset($person["links"]) && isset($person["links"]["knows"])) {
         foreach ($person["links"]["knows"] as $key => $member) {
             $citoyen;
             if ($member['type'] == PHType::TYPE_CITOYEN) {
                 $citoyen = Person::getPublicData($key);
                 $profil = Document::getLastImageByKey($key, Person::COLLECTION, Document::IMG_PROFIL);
                 if ($profil != "") {
                     $citoyen["imagePath"] = $profil;
                 }
                 array_push($people, $citoyen);
             }
         }
     }
     $params["countries"] = OpenData::getCountriesList();
     $params["listCodeOrga"] = Lists::get(array("organisationTypes"));
     $params["tags"] = Tags::getActiveTags();
     $params["organizations"] = $organizations;
     $params["projects"] = $projects;
     $params["events"] = $events;
     $params["people"] = $people;
     $controller->render("dashboard", $params);
 }
Beispiel #10
0
 public static function addInfoEvents($events)
 {
     foreach ($events as $key => $value) {
         if (!empty($value["startDate"]) && !empty($value["endDate"])) {
             if (gettype($value["startDate"]) == "object" && gettype($value["endDate"]) == "object") {
                 $events[$key]["startDate"] = date('Y-m-d h:i:s', $value["startDate"]->sec);
                 $events[$key]["endDate"] = date('Y-m-d h:i:s', $value["endDate"]->sec);
             } else {
                 //Manage old date with string on date value
                 $now = time();
                 $yesterday = mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"));
                 $yester2day = mktime(0, 0, 0, date("m"), date("d") - 2, date("Y"));
                 $events[$key]["endDate"] = date('Y-m-d h:i:s', $yesterday);
                 $events[$key]["startDate"] = date('Y-m-d h:i:s', $yester2day);
             }
         }
         $events[$key]["organizer"] = "";
         if (isset($value["links"])) {
             foreach ($value["links"] as $k => $v) {
                 if ($k == "organizer") {
                     foreach ($v as $organizerId => $val) {
                         $organization = Organization::getById($organizerId);
                         $events[$key]["organizer"] = $organization["name"];
                     }
                 }
             }
         }
         $imageUrl = Document::getLastImageByKey($key, self::COLLECTION, '');
         $events[$key]["imageUrl"] = $imageUrl;
     }
     return $events;
 }