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); } }
/** * 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; }
/** * 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; }
<?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ä">
/** * 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); }