Пример #1
0
 function _on_watched_dba_update($object)
 {
     // Note: the API key has to be defined in /etc/midgard/midcom.conf
     $apikey = $GLOBALS['midcom_config']['qaiku_apikey'];
     $_MIDCOM->load_library('org.openpsa.httplib');
     $message = array('channel' => 'opendata', 'source' => 'opengov.fi', 'lang' => 'fi', 'status' => '', 'external_url' => '');
     if ($object->get_parameter('fi.opengov.datacatalog', 'qaiku_id')) {
         // This is already on Qaiku, skip
         return;
     }
     if ($object instanceof midcom_baseclasses_database_article) {
         // Check that the article is a visible one
         $topic = new midcom_db_topic($object->topic);
         if ($topic->component != 'net.nehmer.blog') {
             return;
         }
         $message['status'] = "[blog] {$object->title}";
     } elseif ($object instanceof fi_opengov_datacatalog_dataset_dba) {
         // Check that the dataset is a published one
         if (!fi_opengov_datacatalog_dataset_dba::matching_license_type($object->guid, 'free')) {
             // We don't publicize closed datasets
             return;
         }
         $message['status'] = "[dataset] {$object->title}";
     } else {
         return;
     }
     $message['external_url'] = $_MIDCOM->permalinks->resolve_permalink($object->guid);
     $http = new org_openpsa_httplib();
     $json = $http->post("http://www.qaiku.com/api/statuses/update.json?apikey={$apikey}", $message);
     $qaiku = json_decode($json);
     if (is_object($qaiku) && isset($qaiku->id)) {
         $object->set_parameter('fi.opengov.datacatalog', 'qaiku_id', $qaiku->id);
     }
 }
Пример #2
0
 /**
  * Checks the license type of the dataset
  * @param GUID guid of the dataset
  * @param string type; can be free or non-free
  * @return boolean true, if the dataset license type macthes the given criteria
  */
 public function matching_license_type($dataset_guid, $type)
 {
     $retval = false;
     $qb = fi_opengov_datacatalog_dataset_dba::new_query_builder();
     $qb->add_constraint('guid', '=', $dataset_guid);
     $res = $qb->execute();
     if (count($res) == 1) {
         $qb = fi_opengov_datacatalog_info_dba::new_query_builder();
         $qb->add_constraint('id', '=', $res[0]->license);
         $qb->add_constraint('type', '=', 'license');
         $res = $qb->execute();
         if (count($res) == 1) {
             if ($res[0]->get_parameter('fi.opengov.datacatalog', 'license_type') == $type) {
                 $retval = true;
             }
         }
     }
     unset($qb);
     unset($res);
     return $retval;
 }
Пример #3
0
 /**
  * Get latest 'n' comments that are posted to blogs
  * @param string GUID of the blog topic
  * @param integer the last 'n' number of comments to be fetched 
  */
 public function _get_last_dataset_comments($number = -1)
 {
     $_comments = array();
     $qb = fi_opengov_datacatalog_dataset_dba::new_query_builder();
     $_res = $qb->execute();
     foreach ($_res as $dataset) {
         $qb2 = net_nehmer_comments_comment::new_query_builder();
         $qb2->add_constraint('status', '>=', 4);
         $qb2->add_constraint('objectguid', '=', $dataset->guid);
         $_res2 = $qb2->execute();
         if (count($_res2)) {
             foreach ($_res2 as $comment) {
                 $_comments[$comment->metadata->created]['type'] = 'dataset';
                 $_comments[$comment->metadata->created]['object'] = $comment;
             }
             krsort($_comments);
         }
     }
     if (isset($number) && $number != -1 && count($_comments) > $number) {
         $_comments = array_splice($_comments, 0, $number);
     }
     return $_comments;
 }
Пример #4
0
<?php

$free = fi_opengov_datacatalog_dataset_dba::get_number_of_datasets('free');
$non_free = fi_opengov_datacatalog_dataset_dba::get_number_of_datasets('non-free');
$all = $free + $non_free;
$percent = 0;
if ($all) {
    $percent = round($free / $all * 100);
}
?>

<div id="sidebar">
    <a name="sidebar_target"></a>
    <div class="datastatus">
        <div class="datapercent">
            &(percent);<span class="percent">%</span>
        </div>
        <div class="statustext">
            Tämänhetkinen tilanne: &(all); dataseteistä vain 
            <a href="/data/open"> &(free); ovat avoimia</a>.
        </div>
        <div class="clear"></div>
    </div>
    <h2>Myös sinä voit auttaa!</h2>
    <p>
        Tiedätkö dataseteistä joita katalogissa ei ole? 
        <a href="/data/suggest/">Ehdota datasettiä</a> ja koitamme lisätä sen niin pian kuin mahdollista 
    </p>
    <p>
        <a href="/data/suggest/">
            <img src="/style/img/btn_suggest_fi.png" alt="Ehdota \datasettiä">
Пример #5
0
 /**
  * Displays the dataset tag cloud
  *
  * @param mixed $handler_id The ID of the handler.
  * @param mixed &$data The local request data.
  */
 public function _show_tagcloud($handler_id, &$data)
 {
     $_tags = fi_opengov_datacatalog_dataset_dba::get_all_tags();
     if (count($_tags)) {
         midcom_show_style('dataset_tagcloud_header');
         foreach ($_tags as $tag => $value) {
             $this->_request_data['tag'] = $tag;
             $this->_request_data['url'] = $_MIDCOM->get_context_data(MIDCOM_CONTEXT_ANCHORPREFIX) . 'topic/' . $tag;
             midcom_show_style('dataset_tagcloud_item');
         }
         midcom_show_style('dataset_tagcloud_footer');
     } else {
         midcom_show_style('no_tags');
     }
     unset($_tags);
 }