/** * 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)); } }
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); } }
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); } }
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); } }
/** * 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'); } } }
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); }