Пример #1
0
 /**
  * Add an object to the map
  *
  * @return boolean
  */
 function add_object($object, $icon = null)
 {
     $object_position = new org_routamc_positioning_object($object);
     $coordinates = $object_position->get_coordinates();
     if (is_null($coordinates)) {
         return false;
     }
     $marker = array();
     $marker['coordinates'] = $coordinates;
     // TODO: Use reflection to get the label property
     if (isset($object->title)) {
         $marker['title'] = $object->title;
     } elseif (isset($object->name)) {
         $marker['title'] = $object->name;
     } else {
         $marker['title'] = $object->guid;
     }
     if (isset($object->abstract)) {
         $marker['abstract'] = $object->abstract;
     }
     if (!is_null($icon)) {
         $marker['icon'] = $icon;
     }
     if (isset($object->abstract_allow_html) && $object->abstract_allow_html) {
         $marker['abstract_allow_html'] = true;
     }
     return $this->add_marker($marker);
 }
Пример #2
0
echo $view['description'];
?>
" href="&(main_url:h);"><img &(size_line:h); src="&(img_url:h);" title="<?php 
echo $view['title'];
?>
" alt="<?php 
echo $view['title'];
?>
" border="0"></a>
        </div>

        <div class="taken location">
            <?php 
$coordinates = null;
if ($GLOBALS['midcom_config']['positioning_enable'] && class_exists('org_routamc_positioning_object') && $data['photo']->photographer) {
    $position_object = new org_routamc_positioning_object($data['photo']);
    $coordinates = $position_object->get_coordinates($data['photo']->photographer, $data['photo']->taken);
}
if ($coordinates && $coordinates['latitude'] && $coordinates['longitude']) {
    echo sprintf($data['l10n']->get('taken on %s in %s'), strftime('%d.%m.%Y %H:%M', $data['photo']->taken), org_routamc_positioning_utils::pretty_print_location($coordinates['latitude'], $coordinates['longitude']));
} else {
    echo sprintf('Otettu %s', strftime('%d.%m.%Y %H:%M', $data['photo']->taken));
}
?>
        </div>
        <?php 
if ($data['topic']->component == 'org.routamc.gallery') {
    if ($data['topic']->component == 'org.routamc.gallery') {
        $photostream_topic = midcom_helper_find_node_by_component('org.routamc.photostream');
        if ($photostream_topic) {
            $photostream_prefix = $photostream_topic['18'];
Пример #3
0
 function getRecentPosts($message)
 {
     $args = $this->_params_to_args($message);
     if (count($args) != 4) {
         return new XML_RPC_Response(0, midcom_connection::get_error(), 'Invalid arguments.');
     }
     if ($args[0] != $this->_content_topic->guid) {
         return new XML_RPC_Response(0, midcom_connection::get_error(), 'Blog ID does not match this folder.');
     }
     if (!midcom::get('auth')->login($args[1], $args[2])) {
         return new XML_RPC_Response(0, midcom_connection::get_error(), 'Authentication failed.');
     }
     midcom::get('auth')->initialize();
     $response = array();
     $qb = midcom_db_article::new_query_builder();
     $qb->set_limit($args[3]);
     $qb->add_constraint('topic', '=', $this->_content_topic->id);
     $qb->add_order('metadata.published', 'DESC');
     $articles = $qb->execute();
     foreach ($articles as $article) {
         if (!$this->_datamanager->autoset_storage($article)) {
             // This article has something wrong, skip it
             continue;
         }
         $arg = $article->name ? $article->name : $article->guid;
         if ($this->_config->get('view_in_url')) {
             $link = midcom_core_context::get()->get_key(MIDCOM_CONTEXT_ANCHORPREFIX) . "view/{$arg}/";
         } else {
             $link = midcom_core_context::get()->get_key(MIDCOM_CONTEXT_ANCHORPREFIX) . "{$arg}/";
         }
         if (array_key_exists('categories', $this->_datamanager->types)) {
             $categories = $this->_datamanager->types['categories']->selection;
         } else {
             $categories = array();
         }
         $response_array = array('postid' => new XML_RPC_Value($article->guid, 'string'), 'title' => new XML_RPC_Value($article->title, 'string'), 'permaLink' => new XML_RPC_Value(midcom::get('permalinks')->create_permalink($article->guid), 'string'), 'link' => new XML_RPC_Value($link, 'string'), 'description' => new XML_RPC_Value($article->content, 'string'), 'mt_excerpt' => new XML_RPC_Value($article->abstract, 'string'), 'dateCreated' => new XML_RPC_Value(gmdate("Ymd\\TH:i:s\\Z", $article->metadata->published), 'dateTime.iso8601'), 'categories' => XML_RPC_encode($categories));
         if ($this->_positioning) {
             $object_position = new org_routamc_positioning_object($article);
             $coordinates = $object_position->get_coordinates();
             $response_array['georss:point'] = new XML_RPC_Value("{$coordinates['latitude']} {$coordinates['longitude']}", 'string');
         }
         $response[] = new XML_RPC_Value($response_array, 'struct');
     }
     return new XML_RPC_Response(new XML_RPC_Value($response, 'array'));
 }
Пример #4
0
    }
}
$item->guid = midcom::get('permalinks')->create_permalink($data['article']->guid);
$item->date = (int) $data['article']->metadata->published;
$item->description = '';
if ($data['article']->abstract != '') {
    $item->description .= '<div class="abstract">' . $data['datamanager']->types['abstract']->convert_to_html() . '</div>';
}
if (array_key_exists('image', $data['datamanager']->types) && $data['config']->get('rss_use_image')) {
    $item->description .= "\n<div class=\"image\">" . $data['datamanager']->types['image']->convert_to_html() . '</div>';
}
if ($data['config']->get('rss_use_content')) {
    $item->description .= "\n" . $data['datamanager']->types['content']->convert_to_html();
}
// Replace links
$item->description = preg_replace(',<(a|link|img|script|form|input)([^>]+)(href|src|action)="/([^>"\\s]+)",ie', '"<\\1\\2\\3=\\"' . midcom::get()->get_host_name() . '/\\4\\""', $item->description);
// TODO: Figure out the RSS multi-category support for real
$categories = explode('|', $data['article']->extra1);
if (count($categories) > 1) {
    $item->category = $categories[1];
}
if ($GLOBALS['midcom_config']['positioning_enable']) {
    // Attach coordinates to the item if available
    $object_position = new org_routamc_positioning_object($data['article']);
    $coordinates = $object_position->get_coordinates();
    if (!is_null($coordinates)) {
        $item->lat = $coordinates['latitude'];
        $item->long = $coordinates['longitude'];
    }
}
$data['feedcreator']->addItem($item);
Пример #5
0
 /**
  * Populates appropriate metadata into XHTML documents based on metadata information
  * available to MidCOM for the request.
  */
 function populate_meta_head()
 {
     // Populate the request metadata into view
     $request_metadata = $this->get_request_metadata();
     // HTML generator information
     midcom::get('head')->add_meta_head(array('name' => 'generator', 'content' => 'Midgard/' . mgd_version() . ' MidCOM/' . midcom::get_version() . ' PHP/' . phpversion()));
     // PermaLink into machine-detectable format
     midcom::get('head')->add_link_head(array('rel' => 'bookmark', 'href' => $request_metadata['permalink']));
     // Last revision time for the entire page
     if ($request_metadata['lastmodified']) {
         midcom::get('head')->add_meta_head(array('name' => 'lastupdated', 'content' => @gmdate('Y-m-d H:i:s\\Z', $request_metadata['lastmodified'])));
     }
     // If an object has been bound we have more information available
     $view_metadata = $this->get_view_metadata();
     if ($view_metadata) {
         foreach ($GLOBALS['midcom_config']['metadata_head_elements'] as $property => $metatag) {
             $content = $view_metadata->get($property);
             if ($content) {
                 // Handle date fields
                 switch ($property) {
                     case 'published':
                     case 'created':
                     case 'revised':
                     case 'approved':
                     case 'locked':
                         $content = gmdate('Y-m-d', (int) $content);
                         break;
                 }
                 midcom::get('head')->add_meta_head(array('name' => $metatag, 'content' => $content));
             }
         }
         // TODO: Add support for tags here
         if ($GLOBALS['midcom_config']['metadata_opengraph']) {
             $this->_add_opengraph_metadata($view_metadata);
         }
         if ($GLOBALS['midcom_config']['positioning_enable']) {
             // Load the positioning library
             midcom::get('componentloader')->load_library('org.routamc.positioning');
             // Display position metadata
             $object_position = new org_routamc_positioning_object($view_metadata->object);
             $object_position->set_metadata();
         }
     }
 }
Пример #6
0
     echo "DTSTART;TZID=Europe/Helsinki:" . date('Ymd\\THis', strtotime($event->start)) . "\n";
     echo "DTEND;TZID=Europe/Helsinki:" . date('Ymd\\THis', strtotime($event->end)) . "\n";
 }
 echo "SUMMARY:" . $event->title . "\n";
 echo "DESCRIPTION:" . $content . "\n";
 //        echo "URL:" . $_MIDCOM->permalinks->create_permalink($event->guid) . "\n";
 echo "URL:" . $url_prefix . $event->guid . '/' . "\n";
 $location = '';
 if ($event->eventslocation != 0) {
     $eventlocation = new fi_kilonkipinat_events_location_dba($event->eventslocation);
     $location = $eventlocation->title;
 } else {
     if ($event->locationvisibility == FI_KILONKIPINAT_EVENTS_EVENT_LOCATION_VISIBILITY_PUBLIC) {
         $location_object = $event;
         if (class_exists('org_routamc_positioning_object')) {
             $object_position = new org_routamc_positioning_object($location_object);
             $location_object = $object_position->seek_location_object();
             if ($location_object) {
                 if ($location_object->street && strlen($location_object->street) > 0) {
                     $location .= $location_object->street;
                 }
                 if ($location_object->postalcode && strlen($location_object->postalcode) > 0) {
                     if ($location != '') {
                         $location .= ', ' . $location_object->postalcode;
                     } else {
                         $location .= $location_object->postalcode;
                     }
                 }
                 if ($location_object->region && strlen($location_object->region) > 0) {
                     if ($location != '') {
                         $location .= ', ' . $location_object->region;