本文整理汇总了PHP中Document::convertStringToArray方法的典型用法代码示例。如果您正苦于以下问题:PHP Document::convertStringToArray方法的具体用法?PHP Document::convertStringToArray怎么用?PHP Document::convertStringToArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Document
的用法示例。
在下文中一共展示了Document::convertStringToArray方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: field_route_ratings_data
function field_route_ratings_data($document, $show_activities = true, $add_tooltips = false, $use_esc_raw = false, $format = 'html', $avalaible_activities = null)
{
$activities = isset($document['activities']) ? Document::convertStringToArray($document['activities']) : $document->get('activities', ESC_RAW);
return _route_ratings_sum_up($format, $activities, $avalaible_activities, $show_activities, _filter_ratings_data($document, 'global_rating', 'globalRating', 'app_routes_global_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'engagement_rating', 'engagementRating', 'app_routes_engagement_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'objective_risk_rating', 'objectiveRiskRating', 'app_routes_objective_risk_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'toponeige_technical_rating', 'toponeigeTechnicalRating', 'app_routes_toponeige_technical_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'toponeige_exposition_rating', 'toponeigeExpositionRating', 'app_routes_toponeige_exposition_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'labande_ski_rating', 'labandeSkiRating', 'app_routes_labande_ski_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'labande_global_rating', 'labandeGlobalRating', 'app_routes_global_ratings', $format, $add_tooltips), _filter_ratings_rock($document, $format, $add_tooltips, false, null, $use_esc_raw), _filter_ratings_data($document, 'ice_rating', 'iceRating', 'app_routes_ice_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'mixed_rating', 'mixedRating', 'app_routes_mixed_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'aid_rating', 'aidRating', 'app_routes_aid_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'rock_exposition_rating', 'rockExpositionRating', 'app_routes_rock_exposition_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'equipment_rating', 'equipmentRating', 'app_equipment_ratings_list', $format, $add_tooltips, false, null, null, 'app_equipment_ratings_tooltips'), _filter_ratings_data($document, 'hiking_rating', 'hikingRating', 'app_routes_hiking_ratings', $format, $add_tooltips), _filter_ratings_data($document, 'snowshoeing_rating', 'snowshoeingRating', 'app_routes_snowshoeing_ratings', $format, $add_tooltips));
}
示例2: executeView
//.........这里部分代码省略.........
$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));
}
}
示例3: count
$doc_activities = $document->getRaw('activities');
$has_doc_activities = count($doc_activities);
} else {
$has_doc_activities = false;
}
$strict = (int) $strict;
// cast so that false is 0 and true is 1.
$activity_list = sfConfig::get('app_activities_list');
unset($activity_list[0]);
$routes_per_activity = array();
foreach ($activity_list as $activity_index => $activity) {
$routes_per_activity[$activity_index] = array();
}
$routes_activities = array();
foreach ($associated_routes as $key => $route) {
$activities = isset($route['activities']) ? Document::convertStringToArray($route['activities']) : $route->getRaw('activities');
if ($has_doc_activities) {
$inter_activities = array_intersect($activities, $doc_activities);
if (!empty($inter_activities)) {
$activities = $inter_activities;
}
}
$routes_activities[$key] = $activities;
foreach ($activities as $activity_index) {
$routes_per_activity[$activity_index][] = $key;
}
}
$activity_summary = array();
if (count($associated_routes) > 5) {
foreach ($activity_list as $activity_index => $activity) {
$nb_routes = count($routes_per_activity[$activity_index]);
示例4: getAssociatedRoutesData
public static function getAssociatedRoutesData($outings)
{
if (count($outings) == 0) {
return $outings;
}
$outing_ids = array();
foreach ($outings as $key => $outing) {
$outing_ids[] = $outing['id'];
$outings[$outing['id']] = $outing;
unset($outings[$key]);
}
$ro_associations = Association::countAllMain($outing_ids, 'ro');
if (count($ro_associations) == 0) {
return $outings;
}
$route_ids = array();
foreach ($ro_associations as $ro) {
$route_id = $ro['main_id'];
$outing_id = $ro['linked_id'];
$route_ids[] = $route_id;
$outings[$outing_id]['linked_routes'] = isset($outings[$outing_id]['linked_routes']) ? array_merge($outings[$outing_id]['linked_routes'], array($route_id)) : array($route_id);
}
$route_ids = array_unique($route_ids);
$outing_fields = array('max_elevation', 'height_diff_up');
$route_ski_fields = array('toponeige_technical_rating', 'toponeige_exposition_rating', 'labande_ski_rating', 'labande_global_rating');
$route_climbing_fields = array('global_rating', 'engagement_rating', 'objective_risk_rating', 'rock_free_rating', 'rock_required_rating', 'ice_rating', 'mixed_rating', 'aid_rating', 'rock_exposition_rating', 'equipment_rating');
$route_hiking_fields = array('hiking_rating');
$route_snowshoeing_fields = array('snowshoeing_rating');
$route_fields = array_merge($route_ski_fields, $route_climbing_fields, $route_hiking_fields, $route_snowshoeing_fields);
$routes = Document::findIn('Route', $route_ids);
foreach ($outings as &$outing) {
foreach ($outing_fields as $field) {
if (!$outing[$field] instanceof Doctrine_Null) {
$outing[$field . '_set'] = true;
}
}
$route_activities = array();
foreach ($routes as $route) {
if (!isset($outing['linked_routes'])) {
continue;
}
if (!in_array($route['id'], $outing['linked_routes'])) {
continue;
}
$route_activities = array_merge($route_activities, Document::convertStringToArray($route['activities']));
// if height_diff_up or max_elevation not in outing, get values from routes
foreach ($outing_fields as $field) {
if (!isset($outing[$field . '_set']) && ($outing[$field] instanceof Doctrine_Null || $route[$field] > $outing[$field])) {
$outing[$field] = $route[$field];
}
}
foreach ($route_fields as $field) {
$field_value = $route[$field];
if (!isset($outing[$field]) || isset($field_value) && $field_value > $outing[$field]) {
$outing[$field] = $field_value;
}
}
}
$activities_to_show = array_intersect(Document::convertStringToArray($outing['activities']), $route_activities);
if (count($activities_to_show) == 0) {
$activities_to_show = $route_activities;
}
if (!count(array_intersect($activities_to_show, array(1)))) {
foreach ($route_ski_fields as $field) {
$outing[$field] = null;
}
}
if (!count(array_intersect($activities_to_show, array(2, 3, 4, 5)))) {
foreach ($route_climbing_fields as $field) {
$outing[$field] = null;
}
}
if (!count(array_intersect($activities_to_show, array(6)))) {
foreach ($route_hiking_fields as $field) {
$outing[$field] = null;
}
}
if (!count(array_intersect($activities_to_show, array(7)))) {
foreach ($route_snowshoeing_fields as $field) {
$outing[$field] = null;
}
}
}
return $outings;
}
示例5: getRelatedPortals
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);
}