aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module/Ratings.php
diff options
context:
space:
mode:
Diffstat (limited to 'Zotlabs/Module/Ratings.php')
-rw-r--r--Zotlabs/Module/Ratings.php115
1 files changed, 115 insertions, 0 deletions
diff --git a/Zotlabs/Module/Ratings.php b/Zotlabs/Module/Ratings.php
new file mode 100644
index 000000000..802bbfec2
--- /dev/null
+++ b/Zotlabs/Module/Ratings.php
@@ -0,0 +1,115 @@
+<?php
+namespace Zotlabs\Module;
+
+require_once('include/dir_fns.php');
+
+
+class Ratings extends \Zotlabs\Web\Controller {
+
+ function init() {
+
+ if((get_config('system','block_public')) && (! local_channel()) && (! remote_channel())) {
+ return;
+ }
+
+ if(local_channel())
+ load_contact_links(local_channel());
+
+ $dirmode = intval(get_config('system','directory_mode'));
+
+ $x = find_upstream_directory($dirmode);
+ if($x)
+ $url = $x['url'];
+
+ $poco_rating = get_config('system','poco_rating_enable');
+ // if unset default to enabled
+ if($poco_rating === false)
+ $poco_rating = true;
+
+ if(! $poco_rating)
+ return;
+
+ if(argc() > 1)
+ $hash = argv(1);
+
+ if(! $hash) {
+ notice('Must supply a channel identififier.');
+ return;
+ }
+
+ $results = false;
+
+ $x = z_fetch_url($url . '/ratingsearch/' . urlencode($hash));
+
+
+ if($x['success'])
+ $results = json_decode($x['body'],true);
+
+
+ if((! $results) || (! $results['success'])) {
+
+ notice('No results.');
+ return;
+ }
+
+ if(array_key_exists('xchan_hash',$results['target']))
+ \App::$poi = $results['target'];
+
+ $friends = array();
+ $others = array();
+
+ if($results['ratings']) {
+ foreach($results['ratings'] as $n) {
+ if(is_array(\App::$contacts) && array_key_exists($n['xchan_hash'],\App::$contacts))
+ $friends[] = $n;
+ else
+ $others[] = $n;
+ }
+ }
+
+ \App::$data = array('target' => $results['target'], 'results' => array_merge($friends,$others));
+
+ if(! \App::$data['results']) {
+ notice( t('No ratings') . EOL);
+ }
+
+ return;
+ }
+
+
+
+
+
+ function get() {
+
+ if((get_config('system','block_public')) && (! local_channel()) && (! remote_channel())) {
+ notice( t('Public access denied.') . EOL);
+ return;
+ }
+
+ $poco_rating = get_config('system','poco_rating_enable');
+ // if unset default to enabled
+ if($poco_rating === false)
+ $poco_rating = true;
+
+ if(! $poco_rating)
+ return;
+
+ $site_target = ((array_key_exists('target',\App::$data) && array_key_exists('site_url',\App::$data['target'])) ?
+ '<a href="' . \App::$data['target']['site_url'] . '" >' . \App::$data['target']['site_url'] . '</a>' : '');
+
+
+ $o = replace_macros(get_markup_template('prep.tpl'),array(
+ '$header' => t('Ratings'),
+ '$rating_lbl' => t('Rating: ' ),
+ '$website' => t('Website: '),
+ '$site' => $site_target,
+ '$rating_text_lbl' => t('Description: '),
+ '$raters' => \App::$data['results']
+ ));
+
+ return $o;
+ }
+
+
+}