aboutsummaryrefslogtreecommitdiffstats
path: root/mod/achievements.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-12-22 13:44:00 -0800
committerfriendica <info@friendica.com>2013-12-22 13:44:00 -0800
commitbb623fc464b777737114e953653dd4d90b7e2b3d (patch)
tree471bf284ef04d9ce8df9afdc710fa04358feda76 /mod/achievements.php
parent7e7b5bfa4930493a8feae10b0550e29797956c70 (diff)
parent0d5c5187f9123e6ac9490408544e4816234adf17 (diff)
downloadvolse-hubzilla-bb623fc464b777737114e953653dd4d90b7e2b3d.tar.gz
volse-hubzilla-bb623fc464b777737114e953653dd4d90b7e2b3d.tar.bz2
volse-hubzilla-bb623fc464b777737114e953653dd4d90b7e2b3d.zip
Merge pull request #250 from beardy-unixer/master
Various bits
Diffstat (limited to 'mod/achievements.php')
-rw-r--r--mod/achievements.php84
1 files changed, 84 insertions, 0 deletions
diff --git a/mod/achievements.php b/mod/achievements.php
new file mode 100644
index 000000000..1910def73
--- /dev/null
+++ b/mod/achievements.php
@@ -0,0 +1,84 @@
+<?php
+
+function achievements_content(&$a) {
+
+ if(argc() > 1)
+ $which = argv(1);
+ else {
+ notice( t('Requested profile is not available.') . EOL );
+ return;
+}
+
+ $profile = 0;
+ $profile = argv(1);
+ profile_load($a,$which,$profile);
+
+ $r = q("select channel_id from channel where channel_address = '%s'",
+ dbesc($which)
+ );
+ if($r) {
+ $owner = intval($r[0]['channel_id']);
+ }
+
+ $observer = $a->get_observer();
+ $ob_hash = (($observer) ? $observer['xchan_hash'] : '');
+ $perms = get_all_perms($owner,$ob_hash);
+ if(! $perms['view_profile']) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+// By default, all badges are false
+ $contactbadge = false;
+ $profilebadge = false;
+ $keywordsbadge = false;
+
+// Check number of contacts. Award a badge if over 10
+// We'll figure these out on each page load instead of
+// writing them to the DB because that will mean one needs
+// to retain their achievements - eg, you can't add
+// a bunch of channels just to get your badge, and then
+// delete them all again. If these become popular or
+// used in profiles or something, we may need to reconsider
+// and add a table for this - because this won't scale.
+
+ $r = q("select * from abook where abook_channel = %d",
+ intval($owner)
+ );
+
+ if (count($r))
+ $contacts = count($r);
+ // We're checking for 11 to adjust for the abook record for self
+ if ($contacts >= 11)
+ $contactbadge = true;
+
+// Check if an about field in the profile has been created.
+
+ $r = q("select * from profile where uid = %d and about <> ''",
+ intval($owner)
+ );
+
+ if ($r)
+ $profilebadge = 1;
+
+// Check if keywords have been set
+
+ $r = q("select * from profile where uid = %d and keywords <> ''",
+ intval($owner)
+ );
+
+ if($r)
+ $keywordsbadge = 1;
+
+// FIXME - stick ths in a template, and make it look pretty.
+ $o .= "Template not implemented";
+ $o .= "If this is one, you get the profile badge" . $profilebadge . "<br>";
+ $o .= "If this is one, you get the contact badge" . $contactbadge . "<br>";
+ $o .= "If this is one you get the keywords badge" . $keywordsbadge . "<br>";
+ $o .= "I haven't done the top level posts badge yet" . $toplevelpostsbadge . "<br>";
+ $o .= "I haven't done the number of channels badge yet" . $channelsbadge;
+
+
+return $o;
+
+}