コード例 #1
0
 public function run($id, $type, $getSub = false)
 {
     $controller = $this->getController();
     $controller->title = "RESSOURCES";
     $controller->subTitle = "Toutes les ressources de nos associations";
     $controller->pageTitle = ucfirst($controller->module->id) . " - " . $controller->title;
     if ($type == Organization::COLLECTION) {
         $organizations = array();
         $organization = Organization::getById($id);
         $organizations[$id] = $organization['name'];
     }
     $documents = Document::getWhere(array("type" => $type, "id" => $id, "contentKey" => array('$exists' => false)));
     if ($getSub && $type == Organization::COLLECTION && Authorisation::canEditMembersData($id)) {
         $subOrganization = Organization::getMembersByOrganizationId($id, Organization::COLLECTION);
         foreach ($subOrganization as $key => $value) {
             $organization = Organization::getById($key);
             $organizations[$key] = $organization['name'];
             $documents = array_merge($documents, Document::getWhere(array("type" => $type, "id" => $key, "contentKey" => array('$exists' => false))));
         }
     }
     $categories = Document::getAvailableCategories($id, $type);
     $params = array("documents" => $documents, "id" => $id, "categories" => $categories, "organizations" => $organizations, "getSub" => $getSub);
     if (Yii::app()->request->isAjaxRequest) {
         echo $controller->renderPartial("documents", $params, true);
     } else {
         $controller->render("documents", $params);
     }
 }
コード例 #2
0
 /**
  * Delete an entry from the organization table using the id
  */
 public function run()
 {
     //TODO SBAR : refactor : not use
     $result = array("result" => false, "msg" => Yii::t("common", "Uncorrect request"));
     if (Yii::app()->session["userId"]) {
         $account = Organization::getById($_POST["id"]);
         if ($account && Yii::app()->session["userEmail"] == $account['ph:owner']) {
             PHDB::remove(Organization::COLLECTION, array("_id" => new MongoId($_POST["id"])));
             //temporary for dev
             //TODO : Remove the association from all Ci accounts
             PHDB::update(PHType::TYPE_CITOYEN, array("_id" => new MongoId(Yii::app()->session["userId"])), array('$pull' => array("associations" => new MongoId($_POST["id"]))));
             $result = array("result" => true, "msg" => Yii::t("common", "Data saved"));
         }
     }
     Rest::json($result);
 }
コード例 #3
0
ファイル: SigAction.php プロジェクト: CivicTechFR/PixelHumain
 /**
  * 
  */
 public function run($id)
 {
     $controller = $this->getController();
     //get The organization Id
     if (empty($id)) {
         throw new CTKException("The organization id is mandatory to retrieve the organization !");
     }
     $organization = Organization::getPublicData($id);
     $controller->pageTitle = ucfirst($controller->module->id) . " - " . $controller->title;
     //Get this organizationEvent
     $events = array();
     if (isset($organization["links"]["events"])) {
         foreach ($organization["links"]["events"] as $key => $value) {
             $event = Event::getPublicData($key);
             $events[$key] = $event;
         }
     }
     //récupère les données de certains type de membres (TODO : à compléter)
     if (isset($organization["links"]["members"])) {
         foreach ($organization["links"]["members"] as $key => $value) {
             if ($value["type"] == 'organizations' || $value["type"] == 'organization' || $value["type"] == 'association' || $value["type"] == 'NGO') {
                 $publicData = Organization::getPublicData($key);
             }
             //if($value["type"] == 'citoyens')		 { $publicData = Person::getPublicData($key); }
             $addData = array("geo", "tags", "name", "description", "typeIntervention", "public");
             //"typeIntervention", "public" GRANDDIR only
             foreach ($addData as $data) {
                 if (!empty($publicData[$data])) {
                     $organization["links"]["members"][$key][$data] = $publicData[$data];
                 }
             }
         }
     }
     //Manage random Organization
     $organizationMembers = Organization::getMembersByOrganizationId($id, Organization::COLLECTION);
     $randomOrganizationId = array_rand($organizationMembers);
     $randomOrganization = Organization::getById($randomOrganizationId);
     $controller->render("sig", array("randomOrganization" => $randomOrganization, "organization" => $organization, "events" => $events, "members" => $organizationMembers));
 }
コード例 #4
0
 public function run($type = null, $id = null)
 {
     $controller = $this->getController();
     $organization = null;
     if (isset($id)) {
         $organization = Organization::getById($id);
         //make sure conected user is the owner
         if ($organization["email"] != Yii::app()->session["userEmail"] || isset($organization["ph:owner"]) && $organization["ph:owner"] != Yii::app()->session["userEmail"]) {
             $organization = null;
         }
     }
     $types = PHDB::findOne(PHType::TYPE_LISTS, array("name" => "organisationTypes"), array('list'));
     $tags = Tags::getActiveTags();
     $detect = new Mobile_Detect();
     $isMobile = $detect->isMobile();
     $params = array("organization" => $organization, 'type' => $type, 'types' => $types['list'], 'tags' => json_encode($tags));
     if ($isMobile) {
         $controller->layout = "//layouts/mainSimple";
         $controller->render("addOrganizationMobile", $params);
     } else {
         $controller->renderPartial("addOrganizationSV", $params);
     }
 }
コード例 #5
0
ファイル: index.php プロジェクト: zourite/communecter
?>
	
	<!-- start: PAGE CONTENT -->
<?php 
if (isset($_GET["isNotSV"])) {
    /*
    	$this->renderPartial('../default/panels/toolbar',array("toolbarStyle"=>"width:50px")); */
    $contextName = "";
    $contextIcon = "bookmark fa-rotate-270";
    $contextTitle = "";
    if (@$_GET["type"]) {
        $type = $_GET["type"];
    }
    if (isset($type) && $type == Organization::COLLECTION && isset($organization)) {
        Menu::organization($organization);
        $thisOrga = Organization::getById($organization["_id"]);
        $contextName = Yii::t("common", "Organization") . " : " . $thisOrga["name"];
        $contextIcon = "users";
        $contextTitle = Yii::t("common", "Participants");
    } else {
        if (isset($type) && $type == City::COLLECTION && isset($city)) {
            Menu::city($city);
            $contextName = Yii::t("common", "City") . " : " . $city["name"];
            $contextIcon = "university";
            $contextTitle = Yii::t("common", "DIRECTORY Local network of") . " " . $city["name"];
        } else {
            if (isset($type) && $type == Person::COLLECTION && isset($person)) {
                Menu::person($person);
                $contextName = Yii::t("common", "Person") . " : " . $person["name"];
                $contextIcon = "user";
                $contextTitle = Yii::t("common", "DIRECTORY of") . " " . $person["name"];
コード例 #6
0
 /**
  * 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);
     $controller->title = isset($organization["name"]) ? $organization["name"] : "";
     $controller->subTitle = isset($organization["shortDescripion"]) ? $organization["shortDescripion"] : "";
     $controller->pageTitle = $controller->title . " - " . $controller->subTitle;
     $params = array("organization" => $organization);
     $params["events"] = $events;
     //Same content Key base as the dashboard
     $contentKeyBase = Yii::app()->controller->id . ".dashboard";
     $params["contentKeyBase"] = $contentKeyBase;
     $limit = array(Document::IMG_PROFIL => 1, Document::IMG_MEDIA => 5);
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE, $limit);
     $params["images"] = $images;
     $documents = Document::getWhere(array("type" => Organization::COLLECTION, "id" => $id));
     $params["documents"] = $documents;
     $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);
     }
     if (isset($organization["links"]) && isset($organization["links"]["members"])) {
         $equipe = array();
         $ca = array();
         $bureau = array();
         foreach ($organization["links"]["members"] as $key => $value) {
             if ($value["type"] == PHType::TYPE_CITOYEN && isset($value["roles"])) {
                 $person = Person::getById($key);
                 if (!empty($person)) {
                     if (in_array("Bureau", $value["roles"])) {
                         $bureau[$key] = $person;
                     }
                     if (in_array("Conseil d'administration", $value["roles"])) {
                         $ca[$key] = $person;
                     }
                     if (in_array("Equipe", $value["roles"])) {
                         $equipe[$key] = $person;
                     }
                 }
             }
         }
         if (count($equipe) > 0) {
             $params["equipe"] = $equipe;
         }
         if (count($ca) > 0) {
             $params["ca"] = $ca;
         }
         if (count($bureau) > 0) {
             $params["bureau"] = $bureau;
         }
     }
     foreach ($events as $key => $value) {
         $newEvent = Event::getById($key);
         array_push($contextMap["events"], $newEvent);
     }
     foreach ($people as $key => $value) {
         $newCitoyen = Person::getById($key);
         array_push($contextMap["people"], $newCitoyen);
     }
     $params["contextMap"] = $contextMap;
     $params["countries"] = OpenData::getCountriesList();
     $lists = Lists::get(array("organisationTypes"));
     $params["organizationTypes"] = $lists["organisationTypes"];
     $controller->title = isset($organization["name"]) ? $organization["name"] : "";
     $controller->render("dashboard1", $params);
 }
コード例 #7
0
 /**
  * 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);
 }
コード例 #8
0
 /**
  * Return true if the organization can modify his members datas
  * @param String $organizationId An id of an organization
  * @return boolean True if the organization can edit his members data. False, else.
  */
 public static function canEditMembersData($organizationId)
 {
     $res = false;
     $organization = Organization::getById($organizationId);
     if (isset($organization["canEditMember"]) && $organization["canEditMember"]) {
         $res = true;
     }
     return $res;
 }
コード例 #9
0
ファイル: Link.php プロジェクト: CivicTechFR/PixelHumain
 private static function checkIdAndType($id, $type)
 {
     if ($type == Organization::COLLECTION) {
         $res = Organization::getById($id);
     } else {
         if ($type == PHType::TYPE_CITOYEN) {
             $res = Person::getById($id);
         } else {
             if ($type == PHType::TYPE_EVENTS) {
                 $res = Event::getById($id);
             } else {
                 if ($type == PHType::TYPE_PROJECTS) {
                     $res = Project::getById($id);
                 } else {
                     throw new CTKException("Can not manage this type of MemberOf : " . $type);
                 }
             }
         }
     }
     if (empty($res)) {
         throw new CTKException("The actor (" . $id . " / " . $type . ") is unknown");
     }
     return $res;
 }
コード例 #10
0
 public function run($id = null)
 {
     $controller = $this->getController();
     $organization = Organization::getById($id);
     Rest::json($organization);
 }
コード例 #11
0
 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;
 }
コード例 #12
0
 public function run($id, $type)
 {
     $controller = $this->getController();
     $itemType = Person::COLLECTION;
     if ($type == "organization") {
         $itemType = Organization::COLLECTION;
     } else {
         if ($type == "event") {
             $itemType = Event::COLLECTION;
         } else {
             if ($type == "project") {
                 $itemType = Project::COLLECTION;
             }
         }
     }
     $item = PHDB::findOne($itemType, array("_id" => new MongoId($id)));
     $viewerMap = array($type => $item);
     $viewerMap[Organization::COLLECTION] = array();
     $viewerMap[Event::COLLECTION] = array();
     $viewerMap[Person::COLLECTION] = array();
     $viewerMap[Project::COLLECTION] = array();
     if (isset($item) && isset($item["links"])) {
         foreach ($item["links"] as $key => $value) {
             foreach ($value as $k => $v) {
                 if (strcmp($key, "memberOf") == 0 || strcmp($key, "organizer") == 0) {
                     $obj = Organization::getById($k);
                     array_push($viewerMap[Organization::COLLECTION], $obj);
                 } else {
                     if (strcmp($key, "knows") == 0 || strcmp($key, "attendees") == 0 || strcmp($key, "contributors") == 0) {
                         $obj = Person::getById($k);
                         array_push($viewerMap[Person::COLLECTION], $obj);
                     } else {
                         if (strcmp($key, "events") == 0) {
                             $obj = Event::getById($k);
                             array_push($viewerMap[Event::COLLECTION], $obj);
                         } else {
                             if (strcmp($key, "projects") == 0) {
                                 $obj = Project::getById($k);
                                 array_push($viewerMap[Project::COLLECTION], $obj);
                             } else {
                                 if (strcmp($key, "members") == 0) {
                                     if (isset($v["type"])) {
                                         if (strcmp($v["type"], Organization::COLLECTION) == 0) {
                                             $obj = Organization::getById($k);
                                             array_push($viewerMap[Organization::COLLECTION], $obj);
                                         } else {
                                             if (strcmp($v["type"], Person::COLLECTION) == 0) {
                                                 $obj = Person::getById($k);
                                                 array_push($viewerMap[Person::COLLECTION], $obj);
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $params = array('viewerMap' => $viewerMap);
     $params["typeMap"] = $type;
     $controller->renderPartial("viewer", $params);
 }
コード例 #13
0
 public function actionTestBecomeAnAdmin()
 {
     $person = Person::getById("55c0c1a72336f213040041ee");
     $organization = Organization::getById("55797ceb2336f25c0c0041a8");
     var_dump($organization);
     $params = array("organization" => $organization, "newPendingAdmin" => $person, "title" => Yii::app()->name, "logo" => "/images/logo.png");
     $this->renderPartial('application.views.emails.askToBecomeAdmin', $params);
 }
コード例 #14
0
ファイル: Job.php プロジェクト: CivicTechFR/PixelHumain
 public static function getJobsList($organizationId = null)
 {
     $res = array();
     //List all job offers or filter by organizationId
     if ($organizationId != null) {
         $where = array("hiringOrganization" => $organizationId);
     } else {
         $where = array();
     }
     $jobList = PHDB::findAndSort(Job::COLLECTION, $where, array("datePosted" => -1));
     //Get the organization hiring detail
     if ($jobList != null) {
         foreach ($jobList as $jobId => $job) {
             if (!empty($job["hiringOrganization"])) {
                 $organization = Organization::getById($job["hiringOrganization"]);
                 $job["hiringOrganization"] = $organization;
                 array_push($res, $job);
             }
         }
     }
     return $res;
 }
コード例 #15
0
 /**
  * Dashboard Organization
  */
 public function run($id)
 {
     $controller = $this->getController();
     //get The organization Id
     if (empty($id)) {
         throw new CTKException(Yii::t("organisation", "The organization id is mandatory to retrieve the organization !"));
     }
     $organization = Organization::getPublicData($id);
     $params = array("organization" => $organization);
     $controller->title = isset($organization["name"]) ? $organization["name"] : "";
     $controller->subTitle = isset($organization["shortDescripion"]) ? $organization["shortDescripion"] : "";
     $controller->pageTitle = ucfirst($controller->module->id) . " - Informations publiques de " . $controller->title;
     //Same content Key base as the dashboard
     $contentKeyBase = Yii::app()->controller->id . ".dashboard";
     $params["contentKeyBase"] = $contentKeyBase;
     if (isset($organization["links"]) && isset($organization["links"]["members"])) {
         $memberData;
         $subOrganizationIds = array();
         $members = array("citoyens" => array(), "organizations" => array());
         foreach ($organization["links"]["members"] as $key => $member) {
             if ($member['type'] == Organization::COLLECTION) {
                 array_push($subOrganizationIds, $key);
                 $memberData = Organization::getPublicData($key);
                 array_push($members[Organization::COLLECTION], $memberData);
             } elseif ($member['type'] == PHType::TYPE_CITOYEN) {
                 $memberData = Person::getPublicData($key);
                 array_push($members[PHType::TYPE_CITOYEN], $memberData);
             }
         }
         if (count($subOrganizationIds) != 0) {
             $randomOrganizationId = array_rand($subOrganizationIds);
             $randomOrganization = Organization::getById($subOrganizationIds[$randomOrganizationId]);
             //Load the images
             $limit = array(Document::IMG_PROFIL => 1, Document::IMG_LOGO => 1);
             $images = Document::getListDocumentsURLByContentKey((string) $randomOrganization["_id"], $contentKeyBase, Document::DOC_TYPE_IMAGE, $limit);
             $randomOrganization["images"] = $images;
             $params["randomOrganization"] = $randomOrganization;
         }
         $params["members"] = $members;
     }
     $limit = array(Document::IMG_PROFIL => 1, Document::IMG_MEDIA => 5);
     $images = Document::getListDocumentsURLByContentKey($id, $contentKeyBase, Document::DOC_TYPE_IMAGE, $limit);
     $params["images"] = $images;
     $events = Organization::listEventsPublicAgenda($id);
     $params["events"] = $events;
     $lists = Lists::get(array("organisationTypes"));
     $params["organizationTypes"] = $lists["organisationTypes"];
     $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);
     }
     foreach ($events as $key => $value) {
         $newEvent = Event::getById($key);
         array_push($contextMap["events"], $newEvent);
     }
     foreach ($people as $key => $value) {
         $newCitoyen = Person::getById($key);
         array_push($contextMap["people"], $newCitoyen);
     }
     $params["contextMap"] = $contextMap;
     $controller->render("dashboardMember", $params);
 }
コード例 #16
0
ファイル: Event.php プロジェクト: CivicTechFR/PixelHumain
 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;
 }