Exemplo n.º 1
0
 /**
  * Executes view action.
  */
 public function executeView()
 {
     parent::executeView();
     if (!$this->document->isArchive() && $this->document['redirects_to'] == NULL) {
         $user = $this->getUser();
         $prefered_cultures = $user->getCulturesForDocuments();
         $associated_parkings = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_parking')), 'elevation');
         if (count($associated_parkings)) {
             $associated_parkings = Association::createHierarchyWithBestName($associated_parkings, $prefered_cultures, array('type' => 'pp'));
             $associated_parkings = Parking::getAssociatedParkingsData($associated_parkings);
         }
         $this->associated_parkings = $associated_parkings;
         $related_portals = array();
         Portal::getLocalPortals($related_portals, $this->associated_areas);
         $this->related_portals = $related_portals;
         $product_type_list = sfConfig::get('mod_products_types_list');
         $product_type_index_list = $this->document->get('product_type');
         $product_type_name_list = array();
         foreach ($product_type_index_list as $product_type_index) {
             $product_type_name_list[] = $this->__($product_type_list[$product_type_index]);
         }
         $product_types = implode(', ', $product_type_name_list);
         $doc_name = $this->document->get('name');
         $title = $doc_name;
         if ($this->document->isArchive()) {
             $version = $this->getRequestParameter('version');
             $title .= ' :: ' . $this->__('revision') . ' ' . $version;
         }
         $title .= ' :: ' . $product_types;
         $this->setPageTitle($title);
         $description = array($product_types . ' :: ' . $doc_name, $this->getAreasList());
         $this->getResponse()->addMeta('description', implode(' - ', $description));
     }
 }
Exemplo n.º 2
0
 public function executeView()
 {
     sfLoader::loadHelpers(array('General', 'MetaLink'));
     parent::executeView();
     // we get the user (id + name) who first uploaded this picture:
     $this->creator = $this->document->getCreator();
     $this->image_type = $this->document['image_type'];
     if (!$this->document->isArchive() && $this->document['redirects_to'] == NULL) {
         // here, we add the summit name to route names :
         $associated_routes = array_filter($this->associated_docs, array('c2cTools', 'is_route'));
         $associated_routes = Route::addBestSummitName($associated_routes, $this->__(' :') . ' ');
         $associated_docs = array_filter($this->associated_docs, array('c2cTools', 'is_not_route'));
         $associated_docs = array_filter($associated_docs, array('c2cTools', 'is_not_image'));
         $associated_docs = array_merge($associated_docs, $associated_routes);
         // sort by document type, name
         if (!empty($associated_docs)) {
             foreach ($associated_docs as $key => $row) {
                 $module[$key] = $row['module'];
                 $name[$key] = remove_accents($row['name']);
             }
             array_multisort($module, SORT_STRING, $name, SORT_STRING, $associated_docs);
         }
         $this->associated_documents = $associated_docs;
         // add linked docs areas (except users and images)
         $parent_ids = array();
         $associated_areas = array();
         foreach ($this->associated_docs as $doc) {
             if (!in_array($doc['module'], array('images', 'users'))) {
                 $parent_ids[] = $doc['id'];
             }
         }
         if (count($parent_ids)) {
             $prefered_cultures = $this->getUser()->getCulturesForDocuments();
             $associated_docs_areas = GeoAssociation::findAreasWithBestName($parent_ids, $prefered_cultures);
             $associated_areas = $this->associated_areas;
             $areas_ids = array();
             foreach ($associated_areas as $area) {
                 $areas_ids[] = $area['id'];
             }
             foreach ($associated_docs_areas as $area) {
                 if (!in_array($area['id'], $areas_ids)) {
                     $associated_areas[] = $area;
                 }
             }
         }
         $this->associated_areas = $associated_areas;
         $related_portals = array();
         $activities = $this->document->get('activities');
         if (in_array(5, $activities)) {
             $related_portals[] = 'ice';
         }
         Portal::getLocalPortals($related_portals, $associated_areas);
         $this->related_portals = $related_portals;
         // link for facebook
         list($image_name, $image_ext) = Images::getFileNameParts($this->document['filename']);
         $image_url = DIRECTORY_SEPARATOR . sfConfig::get('app_upload_dir') . DIRECTORY_SEPARATOR . sfConfig::get('app_images_directory_name') . DIRECTORY_SEPARATOR . $image_name . 'SI' . $image_ext;
         addMetaLink('image_src', $image_url);
     }
 }
Exemplo n.º 3
0
 public function executeView()
 {
     parent::executeView();
     // add editor + code for in map title
     if (!$this->document->isArchive() && $this->document['redirects_to'] == NULL) {
         $related_portals = array();
         Portal::getLocalPortals($related_portals, $this->associated_areas);
         $this->related_portals = $related_portals;
         $map_editors_list = sfConfig::get('mod_maps_editors_list');
         $title = $this->__($map_editors_list[$this->document->get('editor')]) . ' ' . $this->document->get('code') . ' ' . $this->document->get('name') . ' :: ' . $this->__(substr($this->getModuleName(), 0, -1));
         $this->setPageTitle($title);
     }
 }
Exemplo n.º 4
0
 public function executeView()
 {
     parent::executeView();
     if (!$this->document->isArchive() && $this->document['redirects_to'] == NULL) {
         // get last geo-associated outings
         $current_doc_id = $this->getRequestParameter('id');
         $latest_outings = array();
         $nb_outings = 0;
         $outing_params = array('areas' => $current_doc_id);
         $nb_outings = sfConfig::get('app_nb_linked_outings_areas');
         $latest_outings = Outing::listLatest($nb_outings + 1, array(), array(), array(), $outing_params, false);
         $latest_outings = Language::getTheBest($latest_outings, 'Outing');
         $this->latest_outings = $latest_outings;
         $this->nb_outings = $nb_outings;
         $related_portals = array();
         $id = $this->getRequestParameter('id');
         $areas = array(array('id' => $id));
         Portal::getLocalPortals($related_portals, $areas);
         $this->related_portals = $related_portals;
         $area_types_list = sfConfig::get('mod_areas_area_types_list');
         $title = $this->document->get('name') . ' :: ' . $this->__($area_types_list[$this->document->get('area_type')]);
         $this->setPageTitle($title);
     }
 }
Exemplo n.º 5
0
 /**
  * Executes view action.
  */
 public function executeView()
 {
     sfLoader::loadHelpers(array('General'));
     parent::executeView();
     if (!$this->document->isArchive() && $this->document['redirects_to'] == NULL) {
         // Add the summit name to route
         $associated_routes = array_filter($this->associated_docs, array('c2cTools', 'is_route'));
         $associated_routes = Route::addBestSummitName($associated_routes, $this->__(' :') . ' ');
         // Include outings additional data
         $associated_outings = array_filter($this->associated_docs, array('c2cTools', 'is_outing'));
         $associated_outings = Outing::fetchAdditionalFields($associated_outings);
         // group all linked docs except images in a single list
         $associated_docs = array_filter($this->associated_docs, array('c2cTools', 'is_not_route'));
         $associated_docs = array_filter($associated_docs, array('c2cTools', 'is_not_outing'));
         $associated_docs = array_filter($associated_docs, array('c2cTools', 'is_not_image'));
         $associated_docs = array_merge($associated_docs, $associated_routes, $associated_outings);
         // sort by document type, name
         if (count($associated_docs)) {
             foreach ($associated_docs as $key => $row) {
                 $module[$key] = $row['module'];
                 $name[$key] = remove_accents($row['name']);
             }
             array_multisort($module, SORT_STRING, $name, SORT_STRING, $associated_docs);
         }
         $this->associated_users = array_filter($associated_docs, array('c2cTools', 'is_user'));
         $this->associated_documents = $associated_docs;
         // Retrieve linked docs areas (except users)
         $parent_ids = array();
         $associated_areas = array();
         foreach ($this->associated_docs as $doc) {
             if ($doc['module'] != 'users') {
                 $parent_ids[] = $doc['id'];
             }
         }
         if (count($parent_ids)) {
             $prefered_cultures = $this->getUser()->getCulturesForDocuments();
             $associated_areas = GeoAssociation::findAreasWithBestName($parent_ids, $prefered_cultures);
         }
         $this->associated_areas = $associated_areas;
         // retrieve related portals, depending on article category
         // Soft mobility articles => changedapproche
         // ice activity + gear, stories or expeditions => ice portal
         $related_portals = array();
         $activities = $this->document->get('activities');
         $categories = $this->document->get('categories');
         if (in_array(7, $categories)) {
             $related_portals[] = 'cda';
         }
         if (array_intersect(array(2, 3, 8), $categories) && in_array(5, $activities)) {
             $related_portals[] = 'ice';
         }
         Portal::getLocalPortals($related_portals, $associated_areas);
         $this->related_portals = $related_portals;
         sfLoader::loadHelpers(array('sfBBCode', 'SmartFormat'));
         $abstract = strip_tags(parse_links(parse_bbcode_abstract($this->document->get('abstract'))));
         $this->getResponse()->addMeta('description', $abstract);
         if (in_array(100, $categories)) {
             $this->getResponse()->addMeta('robots', 'noindex, follow');
         }
     }
 }
Exemplo n.º 6
0
 public static function getRelatedPortals(&$portal_list, $areas, $routes, $activities = array())
 {
     if (count($routes)) {
         $use_route_activities = empty($activities);
         $has_ice_route = false;
         $has_steep_route = false;
         $has_ta_route = false;
         $has_alpibig_route = false;
         $has_raid_route = false;
         $route_activities = $activities;
         foreach ($routes as $route) {
             if ($use_route_activities) {
                 $route_activities = $route['activities'];
                 if (!is_array($route_activities)) {
                     $route_activities = Document::convertStringToArray($route_activities);
                 }
             }
             if (array_intersect(array(2, 5), $route_activities) && !$route['ice_rating'] instanceof Doctrine_Null && $route['ice_rating'] > 0) {
                 $has_ice_route = true;
             }
             if (in_array(1, $route_activities) && !$route['toponeige_technical_rating'] instanceof Doctrine_Null && $route['toponeige_technical_rating'] >= 10) {
                 $has_steep_route = true;
             }
             if (in_array(4, $route_activities) && !$route['global_rating'] instanceof Doctrine_Null && $route['global_rating'] >= 4 && !$route['equipment_rating'] instanceof Doctrine_Null && $route['equipment_rating'] >= 8) {
                 $has_ta_route = true;
             }
             if (array_intersect(array(2, 3), $route_activities) && !$route['global_rating'] instanceof Doctrine_Null && $route['global_rating'] >= 18 && !$route['engagement_rating'] instanceof Doctrine_Null && $route['engagement_rating'] >= 4 && !$route['difficulties_height'] instanceof Doctrine_Null && $route['difficulties_height'] >= 300) {
                 $has_alpibig_route = true;
             }
             if (!$route['duration'] instanceof Doctrine_Null && $route['duration'] >= 6) {
                 $has_raid_route = true;
             }
         }
         if ($has_ice_route) {
             $portal_list[] = 'ice';
         }
         if ($has_steep_route) {
             $portal_list[] = 'steep';
         }
         if ($has_ta_route) {
             $portal_list[] = 'ta';
         }
         if ($has_alpibig_route) {
             $portal_list[] = 'alpibig';
         }
         if ($has_raid_route) {
             $portal_list[] = 'raid';
         }
     }
     Portal::getLocalPortals($portal_list, $areas);
 }