/** * 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)); } }
/** * Executes view action. */ public function executeView() { parent::executeView(); if (!$this->document->isArchive() && $this->document['redirects_to'] == NULL) { $user = $this->getUser(); $prefered_cultures = $user->getCulturesForDocuments(); $current_doc_id = $this->getRequestParameter('id'); // ghost summits, used for adding routes to huts // if summit is associated directly to a hut, redirect to hut unless ?redirect=no is appended (after a slug!) $associated_huts = array_filter($this->associated_docs, array('c2cTools', 'is_hut')); if (count($associated_huts) > 0 && $this->getRequestParameter('redirect') != 'no') { $associated_hut = reset($associated_huts); // array has been filtered $hut_id = $associated_hut['id']; $lang = $this->getRequestParameter('lang'); $this->redirect("@document_by_id_lang?module=huts&id={$hut_id}&lang={$lang}"); } // main associated summits are summits directly linked to this one $main_associated_summits = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_summit')), 'elevation'); $associated_sites = $this->associated_sites; // idea here is to display some docs (routes, images, sites), not only if they are directly linked to the summit, // but also if they are linked to a sub(-sub)-summit $sub_summit_ids = array(); $sub_summit_names = array(); $summit_name = $this->document->get('name'); $over_summit_name = ''; if (count($main_associated_summits)) { $associated_summits = Association::createHierarchyWithBestName($main_associated_summits, $prefered_cultures, array('type' => 'ss', 'current_doc_id' => $current_doc_id, 'keep_current_doc' => true)); // simply go through the list and get the next items that have a bigger level $i = reset($associated_summits); while (!isset($i['is_doc'])) { $i = next($associated_summits); } $doc_level = $i['level']; $i = next($associated_summits); while ($i !== false && $i['level'] > $doc_level) { $sub_summit_ids[] = $i['id']; $sub_summit_names[] = $i['name']; $i = next($associated_summits); } if (count($sub_summit_ids)) { $summit_docs = array_filter($this->associated_docs, array('c2cTools', 'is_site_route_image')); $summit_docs_ids = array(); foreach ($summit_docs as $doc) { $summit_docs_ids[] = $doc['id']; } $associated_summit_docs = Association::findLinkedDocsWithBestName($sub_summit_ids, $prefered_cultures, array('st', 'sr', 'si'), false, true, $summit_docs_ids); $this->associated_docs = array_merge($this->associated_docs, $associated_summit_docs); $associated_summit_sites = c2cTools::sortArrayByName(array_filter($associated_summit_docs, array('c2cTools', 'is_site'))); foreach ($associated_summit_sites as $key => $site) { $associated_summit_sites[$key]['parent_id'] = true; } $associated_sites = array_merge($associated_sites, $associated_summit_sites); $this->associated_sites = $associated_sites; // Find part of summit name which is used into sub-summit names foreach ($sub_summit_names as $sub_summit_name) { $sub_summit_name_prefix = explode(' - ', $sub_summit_name, -1); if (count($sub_summit_name_prefix) && strpos($summit_name, $sub_summit_name_prefix[0]) !== false) { $over_summit_name = $sub_summit_name_prefix[0]; break; } } $over_summit_name_2 = false; $over_summit_name_3 = false; foreach ($sub_summit_names as $sub_summit_name) { if (!$over_summit_name_3 && strpos($sub_summit_name, $summit_name) === 0) { $over_summit_name_2 = true; } else { if (!empty($over_summit_name) && strpos($sub_summit_name, $over_summit_name) !== false) { $over_summit_name_3 = true; } } } if ($over_summit_name_2) { $over_summit_name = $summit_name; } } } else { $associated_summits = $main_associated_summits; } $this->associated_summits = $associated_summits; array_unshift($sub_summit_ids, $current_doc_id); $this->ids = implode('-', $sub_summit_ids); // second param will not display the summit name before the route when the summit is the one of the document $associated_routes = Route::getAssociatedRoutesData($this->associated_docs, $this->__(' :') . ' ', $this->document->get('id'), $over_summit_name); $this->associated_routes = $associated_routes; $associated_books = c2cTools::sortArrayByName(array_filter($this->associated_docs, array('c2cTools', 'is_book'))); $doc_ids = array(); $associated_huts = array(); $associated_parkings = array(); $associated_routes_books = array(); if (count($associated_routes) || count($associated_sites)) { foreach ($associated_routes as $route) { if ($route['duration'] instanceof Doctrine_Null || $route['duration'] <= 4) { $doc_ids[] = $route['id']; } } foreach ($associated_sites as $site) { $doc_ids[] = $site['id']; } if (count($doc_ids)) { $book_ids = array(); foreach ($associated_books as $book) { $book_ids[] = $book['id']; } $associated_route_docs = Association::findLinkedDocsWithBestName($doc_ids, $prefered_cultures, array('hr', 'ht', 'pr', 'pt', 'br'), false, false, $book_ids); if (count($associated_route_docs)) { $associated_route_docs = c2cTools::sortArray($associated_route_docs, 'elevation'); $associated_huts = array_filter($associated_route_docs, array('c2cTools', 'is_hut')); $associated_parkings = Parking::getAssociatedParkingsData(array_filter($associated_route_docs, array('c2cTools', 'is_parking'))); $associated_routes_books = c2cTools::sortArray(array_filter($associated_route_docs, array('c2cTools', 'is_book')), 'name'); foreach ($associated_routes_books as $key => $book) { $associated_routes_books[$key]['parent_id'] = true; } } } } $this->associated_huts = $associated_huts; $this->associated_parkings = $associated_parkings; $associated_books = array_merge($associated_books, $associated_routes_books); if (count($associated_books)) { $associated_books = Book::getAssociatedBooksData($associated_books); } $this->associated_books = $associated_books; // get associated outings $latest_outings = array(); $nb_outings = 0; if (count($associated_routes)) { $outing_params = array('summits' => $this->ids); $nb_outings = sfConfig::get('app_nb_linked_outings_docs'); $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; $this->associated_images = Document::fetchAdditionalFieldsFor(array_filter($this->associated_docs, array('c2cTools', 'is_image')), 'Image', array('filename', 'image_type', 'date_time', 'width', 'height')); $cab = count($associated_books); $this->section_list = array('books' => $cab != 0, 'map' => (bool) $this->document->get('geom_wkt')); $related_portals = array(); Portal::getRelatedPortals($related_portals, $this->associated_areas, $associated_routes); $summit_type_index = $this->document->get('summit_type'); if ($summit_type_index == 5 && !in_array('raid', $related_portals)) { $related_portals[] = 'raid'; } $this->related_portals = $related_portals; $summit_type_list = sfConfig::get('app_summits_summit_types'); $summit_type_list[1] = 'summit'; $summit_type = $this->__($summit_type_list[$summit_type_index]); $doc_name = $summit_name; $title = $doc_name; if ($this->document->isArchive()) { $version = $this->getRequestParameter('version'); $title .= ' :: ' . $this->__('revision') . ' ' . $version; } $title .= ' :: ' . $summit_type; $this->setPageTitle($title); $description = array($summit_type . ' :: ' . $doc_name, $this->document->get('elevation') . $this->__('meters'), $this->getAreasList()); $this->getResponse()->addMeta('description', implode(' - ', $description)); } }
/** * Executes view action. */ public function executeView() { parent::executeView(); if (!$this->document->isArchive() && $this->document['redirects_to'] == NULL) { $user = $this->getUser(); $prefered_cultures = $user->getCulturesForDocuments(); $current_doc_id = $this->getRequestParameter('id'); $parent_ids = $sub_site_ids = $site_docs_ids = $child_types = array(); // if we have sub-(sub)-sites, we also want to display the outings and images linked to these sites $main_associated_sites = $this->associated_sites; if (count($main_associated_sites)) { $associated_sites = Association::createHierarchyWithBestName($main_associated_sites, $prefered_cultures, array('type' => 'tt', 'current_doc_id' => $current_doc_id, 'keep_current_doc' => true)); $i = reset($associated_sites); while (!isset($i['is_doc'])) { $i = next($associated_sites); } $doc_level = $i['level']; $i = next($associated_sites); while ($i !== false && $i['level'] > $doc_level) { $sub_site_ids[] = $i['id']; $i = next($associated_sites); } // we want to display on the page the images and outings of the subsites if (count($sub_site_ids)) { $site_docs = array_filter($this->associated_docs, array('c2cTools', 'is_image')); foreach ($site_docs as $doc) { $site_docs_ids[] = $doc['id']; } $child_types[] = 'ti'; $child_types[] = 'to'; } } else { $associated_sites = $main_associated_sites; } $associated_summits = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_summit')), 'elevation'); // we display sub-sub-sites one the page, but also the others sites linked to the same summits if (count($associated_summits)) { foreach ($associated_summits as $summit) { $summit_ids[] = $summit['id']; } $sites_ids = array(); foreach ($associated_sites as $site) { $sites_ids[] = $site['id']; } $summit_docs_ids = array_merge($sites_ids, array($current_doc_id)); $associated_summits_sites = Association::findLinkedDocsWithBestName($summit_ids, $prefered_cultures, 'st', true, true, $summit_docs_ids); $associated_sites = array_merge($associated_sites, $associated_summits_sites); } // associated parkings 2-hop hierarchy $associated_parkings = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_parking')), 'elevation'); if (count($associated_parkings)) { foreach ($associated_parkings as $parking) { $parent_ids[] = $parking['id']; } $child_types[] = 'pp'; } $associated_outings = array_filter($this->associated_docs, array('c2cTools', 'is_outing')); // all outings (directly or indirectly linked) $parent_ids = array_merge($parent_ids, $sub_site_ids); if (count($parent_ids)) { $associated_childs = Association::findLinkedDocsWithBestName($parent_ids, $prefered_cultures, $child_types, true, true, $site_docs_ids); $this->associated_docs = array_merge($this->associated_docs, $associated_childs); if (count($associated_parkings)) { $associated_parkings = Association::createHierarchy($associated_parkings, array_filter($associated_childs, array('c2cTools', 'is_parking')), array('type' => 'pp', 'show_sub_docs' => false)); } if (count($sub_site_ids)) { $associated_site_outings = array_filter($associated_childs, array('c2cTools', 'is_outing')); if (count($associated_site_outings)) { if (count($associated_outings)) { $outing_ids = array(); foreach ($associated_outings as $outing) { $outing_ids[] = $outing['id']; } foreach ($associated_site_outings as $outing) { if (!in_array($outing['id'], $outing_ids)) { $associated_outings[] = $outing; } } } else { $associated_outings = $associated_site_outings; } } } } $this->associated_sites = $associated_sites; array_unshift($sub_site_ids, $current_doc_id); $this->ids = implode('-', $sub_site_ids); $this->associated_parkings = Parking::getAssociatedParkingsData($associated_parkings); $this->associated_routes = Route::getAssociatedRoutesData($this->associated_docs, $this->__(' :') . ' '); $this->associated_huts = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_hut')), 'elevation'); $this->associated_summits = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_summit')), 'elevation'); // also get author of books $associated_books = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_book')), 'name'); if (count($associated_books)) { $associated_books = Book::getAssociatedBooksData($associated_books); } $this->associated_books = $associated_books; if (!isset($associated_outings)) { $associated_outings = array_filter($this->associated_docs, array('c2cTools', 'is_outing')); } $associated_outings = Outing::fetchAdditionalFields($associated_outings, true, true); // sort outings array by antichronological order. usort($associated_outings, array('c2cTools', 'cmpDate')); $this->nb_outings = count($associated_outings); // group them by blocks $outings_limit = sfConfig::get('app_documents_outings_limit'); $a = array(); $i = 0; while (count($associated_outings) - $i * $outings_limit > $outings_limit) { $a[] = array_slice($associated_outings, $i * $outings_limit, $outings_limit); $i++; } $a[] = array_slice($associated_outings, $i * $outings_limit); $this->associated_outings = $a; $this->associated_images = Document::fetchAdditionalFieldsFor(array_filter($this->associated_docs, array('c2cTools', 'is_image')), 'Image', array('filename', 'image_type', 'date_time', 'width', 'height')); $site_types = $this->document->get('site_types'); if (!is_array($site_types)) { $site_types = Document::convertStringToArray($site_types); } $site_types_list = sfConfig::get('app_sites_site_types'); foreach ($site_types as &$type) { $type = $this->__($site_types_list[$type]); } $site_types = implode(', ', $site_types); if (!empty($site_types)) { $site_types = ' (' . $site_types . ')'; } $site_types = $this->__('site') . $site_types; $doc_name = $this->document->get('name'); $title = $doc_name; if ($this->document->isArchive()) { $version = $this->getRequestParameter('version'); $title .= ' :: ' . $this->__('revision') . ' ' . $version; } $title .= ' :: ' . $site_types; $this->setPageTitle($title); $description = array($site_types . ' :: ' . $doc_name, $this->getAreasList()); $this->getResponse()->addMeta('description', implode(' - ', $description)); } }
/** * Executes view action. */ public function executeView() { parent::executeView(); if (!$this->document->isArchive() && $this->document['redirects_to'] == NULL) { $user = $this->getUser(); $prefered_cultures = $user->getCulturesForDocuments(); $current_doc_id = $this->getRequestParameter('id'); $is_gite_camping = $this->document->get('shelter_type') == 5 || $this->document->get('shelter_type') == 6; // retrieve 2-hops parkings $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; $associated_routes = array_filter($this->associated_docs, array('c2cTools', 'is_route')); // associated summits $associated_summits = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_summit')), 'name'); $this->associated_summits = $associated_summits; $summit_ids = $summit_routes_tmp = $summit_routes_ids = array(); if (count($associated_summits)) { foreach ($associated_summits as $summit) { $summit_ids[] = $summit['id']; } $summit_routes_tmp = Association::countAllLinked($summit_ids, 'sr'); foreach ($summit_routes_tmp as $route) { $summit_routes_ids[] = $route['linked_id']; } } // for a gite, routes and sites are not directly linked. We retrieve the routes linked to the linked parkings if ($is_gite_camping) { $parking_ids = array(); foreach ($associated_parkings as $parking) { $parking_ids[] = $parking['id']; } $associated_parking_docs = Association::findLinkedDocsWithBestName($parking_ids, $prefered_cultures, array('pr', 'pt'), false, true); $associated_routes = array_filter($associated_parking_docs, array('c2cTools', 'is_route')); $associated_parking_sites = c2cTools::sortArrayByName(array_filter($associated_parking_docs, array('c2cTools', 'is_site'))); $this->associated_sites = array_merge($this->associated_sites, $associated_parking_sites); // associated sites should be empty!! Else it violates moderation rules $this->ids = implode('-', $parking_ids); } else { $associated_routes = array_filter($this->associated_docs, array('c2cTools', 'is_route')); $this->associated_sites = c2cTools::sortArrayByName(array_filter($this->associated_docs, array('c2cTools', 'is_site'))); $this->ids = $current_doc_id; } // get additional data for routes $associated_routes = Route::getAssociatedRoutesData($associated_routes, $this->__(' :') . ' ', reset($summit_ids)); // these are the routes where the hut act as a summit // they are displayed in a specific section $summit_ids = $summit_routes_tmp = $summit_routes_ids = $associated_summit_routes = array(); if (count($associated_summits)) { foreach ($associated_summits as $summit) { $summit_ids[] = $summit['id']; } $summit_routes_tmp = Association::countAllLinked($summit_ids, 'sr'); foreach ($summit_routes_tmp as $route) { $summit_routes_ids[] = $route['linked_id']; } } if (count($summit_routes_ids)) { foreach ($associated_routes as $key => $route) { if (in_array($route['id'], $summit_routes_ids)) { $associated_summit_routes[$key] = $route; unset($associated_routes[$key]); } } } $this->associated_routes = $associated_routes; $this->associated_summit_routes = $associated_summit_routes; // We retrieve both the books directly linked $associated_books = c2cTools::sortArrayByName(array_filter($this->associated_docs, array('c2cTools', 'is_book'))); // AND the books linked to linked routes // FIXME we should probably also do this with linked sites $route_ids = array(); $associated_routes_books = array(); if (count($associated_routes)) { foreach ($associated_routes as $route) { if ($route['duration'] instanceof Doctrine_Null || $route['duration'] <= 4) { $route_ids[] = $route['id']; } } if (count($route_ids)) { $book_ids = array(); foreach ($associated_books as $book) { $book_ids[] = $book['id']; } $associated_route_docs = Association::findLinkedDocsWithBestName($route_ids, $prefered_cultures, array('br'), false, false, $book_ids); if (count($associated_route_docs)) { $associated_route_docs = c2cTools::sortArray($associated_route_docs, 'name'); $associated_routes_books = array_filter($associated_route_docs, array('c2cTools', 'is_book')); foreach ($associated_routes_books as $key => $book) { $associated_routes_books[$key]['parent_id'] = true; } } } } $associated_books = array_merge($associated_books, $associated_routes_books); if (count($associated_books)) { $associated_books = Book::getAssociatedBooksData($associated_books); } $this->associated_books = $associated_books; // get associated outings $latest_outings = array(); $nb_outings = 0; if (!$is_gite_camping && count($associated_routes) || $is_gite_camping && count($parking_ids)) { if (!$is_gite_camping) { $outing_params = array('huts' => $current_doc_id); } else { $outing_params = array('parkings' => $this->ids); } $nb_outings = sfConfig::get('app_nb_linked_outings_docs'); $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; // possibly related portals $related_portals = array(); Portal::getRelatedPortals($related_portals, $this->associated_areas, $associated_routes); $this->related_portals = $related_portals; $cab = count($associated_books); $this->section_list = array('books' => $cab != 0, 'map' => (bool) $this->document->get('geom_wkt')); $hut_type_list = sfConfig::get('mod_huts_shelter_types_list'); $hut_type_index = $this->document->get('shelter_type'); $hut_type = $this->__($hut_type_list[$hut_type_index]); $doc_name = $this->document->get('name'); $title = $doc_name; if ($this->document->isArchive()) { $version = $this->getRequestParameter('version'); $title .= ' :: ' . $this->__('revision') . ' ' . $version; } $title .= ' :: ' . $hut_type; $this->setPageTitle($title); $description = array($hut_type . ' :: ' . $doc_name, $this->getActivitiesList(), $this->getAreasList()); $this->getResponse()->addMeta('description', implode(' - ', $description)); } }
/** * Executes view action. */ public function executeView() { parent::executeView(); if (!$this->document->isArchive() && $this->document['redirects_to'] == NULL) { $user = $this->getUser(); $prefered_cultures = $user->getCulturesForDocuments(); $current_doc_id = $this->getRequestParameter('id'); $main_associated_parkings = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_parking')), 'elevation'); // Idea here is to retrieve not only the routes linked directly to the parking, but also the ones // associated to the sub(-sub)-parkings // We also do this for products and huts $parking_ids = array(); if (count($main_associated_parkings)) { $associated_parkings = Association::createHierarchyWithBestName($main_associated_parkings, $prefered_cultures, array('type' => 'pp', 'current_doc_id' => $current_doc_id, 'keep_current_doc' => true)); $associated_parkings = Parking::getAssociatedParkingsData($associated_parkings); // simply go through the list and get the next items that have a bigger level $i = reset($associated_parkings); while (!isset($i['is_doc'])) { $i = next($associated_parkings); } $doc_level = $i['level']; $i = next($associated_parkings); while ($i !== false && $i['level'] > $doc_level) { $parking_ids[] = $i['id']; $i = next($associated_parkings); } if (count($parking_ids)) { $this->associated_docs = array_merge($this->associated_docs, Association::findLinkedDocsWithBestName($parking_ids, $prefered_cultures, array('pr', 'ph', 'pf'))); } } else { $associated_parkings = $main_associated_parkings; } $this->associated_parkings = $associated_parkings; array_unshift($parking_ids, $current_doc_id); $this->ids = implode('-', $parking_ids); $associated_routes = Route::getAssociatedRoutesData($this->associated_docs, $this->__(' :') . ' '); $this->associated_routes = $associated_routes; // related books (associated to the above mentioned routes) $route_ids = array(); $associated_routes_books = array(); if (count($associated_routes)) { foreach ($associated_routes as $route) { if ($route['duration'] instanceof Doctrine_Null || $route['duration'] <= 4) { $route_ids[] = $route['id']; } } if (count($route_ids)) { $associated_route_docs = Association::findLinkedDocsWithBestName($route_ids, $prefered_cultures, array('br'), false, false); if (count($associated_route_docs)) { $associated_route_docs = c2cTools::sortArray($associated_route_docs, 'name'); $associated_routes_books = array_filter($associated_route_docs, array('c2cTools', 'is_book')); foreach ($associated_routes_books as $key => $book) { $associated_routes_books[$key]['parent_id'] = true; } } } } $cab = 0; if (count($associated_routes_books)) { $associated_books = Book::getAssociatedBooksData($associated_routes_books); $this->associated_books = $associated_books; $cab = count($associated_books); } // get associated outings (to the above mentionned routes) $latest_outings = array(); $nb_outings = 0; if (count($associated_routes)) { $outing_params = array('parkings' => $this->ids); $nb_outings = sfConfig::get('app_nb_linked_outings_docs'); $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; // associated huts $this->associated_huts = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_hut')), 'elevation'); // asscoiated products $this->associated_products = c2cTools::sortArray(array_filter($this->associated_docs, array('c2cTools', 'is_product')), 'name'); // related portals $related_portals = array(); $public_transportation_rating = $this->document->get('public_transportation_rating'); if (in_array($public_transportation_rating, array(1, 2, 4, 5))) { $related_portals[] = 'cda'; } Portal::getRelatedPortals($related_portals, $this->associated_areas, $associated_routes); $this->related_portals = $related_portals; $this->section_list = array('books' => $cab != 0, 'map' => (bool) $this->document->get('geom_wkt')); $description = array($this->__('parking') . ' :: ' . $this->document->get('name'), $this->getAreasList()); $this->getResponse()->addMeta('description', implode(' - ', $description)); } }