commit
bb623fc464
6
boot.php
6
boot.php
@ -46,7 +46,7 @@ define ( 'RED_PLATFORM', 'Red Matrix' );
|
||||
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
|
||||
define ( 'ZOT_REVISION', 1 );
|
||||
|
||||
define ( 'DB_UPDATE_VERSION', 1084 );
|
||||
define ( 'DB_UPDATE_VERSION', 1085 );
|
||||
|
||||
define ( 'EOL', '<br />' . "\r\n" );
|
||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||
@ -363,7 +363,7 @@ define ( 'HUBLOC_FLAGS_PRIMARY', 0x0001);
|
||||
define ( 'HUBLOC_FLAGS_UNVERIFIED', 0x0002);
|
||||
define ( 'HUBLOC_FLAGS_DELETED', 0x1000);
|
||||
|
||||
|
||||
define ( 'XCHAN_FLAGS_NORMAL', 0x0000);
|
||||
define ( 'XCHAN_FLAGS_HIDDEN', 0x0001);
|
||||
define ( 'XCHAN_FLAGS_ORPHAN', 0x0002);
|
||||
define ( 'XCHAN_FLAGS_CENSORED', 0x0004);
|
||||
@ -500,6 +500,7 @@ define ( 'ITEM_WEBPAGE', 0x0040); // is a static web page, not a conver
|
||||
define ( 'ITEM_DELAYED_PUBLISH', 0x0080);
|
||||
define ( 'ITEM_BUILDBLOCK', 0x0100); // Named thusly to make sure nobody confuses this with ITEM_BLOCKED
|
||||
define ( 'ITEM_PDL', 0x0200); // Page Description Language - e.g. Comanche
|
||||
define ( 'ITEM_BUG', 0x0400); // Is a bug, can be used by the internal bug tracker
|
||||
/**
|
||||
* Item Flags
|
||||
*/
|
||||
@ -518,7 +519,6 @@ define ( 'ITEM_MENTIONSME', 0x0400);
|
||||
define ( 'ITEM_NOCOMMENT', 0x0800); // commenting/followups are disabled
|
||||
define ( 'ITEM_OBSCURED', 0x1000); // bit-mangled to protect from casual browsing by site admin
|
||||
define ( 'ITEM_VERIFIED', 0x2000); // Signature verification was successful
|
||||
|
||||
/**
|
||||
*
|
||||
* Reverse the effect of magic_quotes_gpc if it is enabled.
|
||||
|
@ -71,22 +71,21 @@ function validate_channelname($name) {
|
||||
|
||||
|
||||
/**
|
||||
* @function create_dir_account()
|
||||
* @function create_sys_account()
|
||||
* Create a system channel - which has no account attached
|
||||
*
|
||||
* Currently unused.
|
||||
*
|
||||
*/
|
||||
|
||||
function create_dir_account() {
|
||||
create_identity(array(
|
||||
'account_id' => 'xxx', // This will create an identity with an (integer) account_id of 0, but account_id is required
|
||||
'nickname' => 'dir',
|
||||
'name' => 'Directory',
|
||||
'pageflags' => PAGE_DIRECTORY_CHANNEL|PAGE_HIDDEN,
|
||||
'publish' => 0
|
||||
));
|
||||
}
|
||||
//function create_sys_channel() {
|
||||
// create_identity(array(
|
||||
// 'nickname' => 'sys',
|
||||
// 'name' => 'System',
|
||||
// 'pageflags' => PAGE_SYSTEM,
|
||||
// 'publish' => 0,
|
||||
// 'xchanflags' => XCHAN_FLAGS_SYSTEM
|
||||
// ));
|
||||
//}
|
||||
|
||||
/**
|
||||
* @channel_total()
|
||||
@ -145,7 +144,7 @@ function create_identity($arr) {
|
||||
|
||||
$name = escape_tags($arr['name']);
|
||||
$pageflags = ((x($arr,'pageflags')) ? intval($arr['pageflags']) : PAGE_NORMAL);
|
||||
|
||||
$xchanflags = ((x($arr,'xchanflags')) ? intval($arr['xchanflags']) : XCHAN_FLAGS_NORMAL);
|
||||
$name_error = validate_channelname($arr['name']);
|
||||
if($name_error) {
|
||||
$ret['message'] = $name_error;
|
||||
@ -243,7 +242,7 @@ function create_identity($arr) {
|
||||
|
||||
$newuid = $ret['channel']['channel_id'];
|
||||
|
||||
$r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_photo_l, xchan_photo_m, xchan_photo_s, xchan_addr, xchan_url, xchan_follow, xchan_connurl, xchan_name, xchan_network, xchan_photo_date, xchan_name_date ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
|
||||
$r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_guid_sig, xchan_pubkey, xchan_photo_l, xchan_photo_m, xchan_photo_s, xchan_addr, xchan_url, xchan_follow, xchan_connurl, xchan_name, xchan_network, xchan_photo_date, xchan_name_date, xchan_flags ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%d')",
|
||||
dbesc($hash),
|
||||
dbesc($guid),
|
||||
dbesc($sig),
|
||||
@ -258,7 +257,8 @@ function create_identity($arr) {
|
||||
dbesc($ret['channel']['channel_name']),
|
||||
dbesc('zot'),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert())
|
||||
dbesc(datetime_convert()),
|
||||
intval($xchanflags)
|
||||
);
|
||||
|
||||
// Not checking return value.
|
||||
@ -1126,7 +1126,3 @@ function get_default_profile_photo($size = 175) {
|
||||
$scheme = 'rainbow_man';
|
||||
return 'images/default_profile_photos/' . $scheme . '/' . $size . '.jpg';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1029,3 +1029,11 @@ CREATE TABLE IF NOT EXISTS `xtag` (
|
||||
KEY `xtag_hash` (`xtag_hash`),
|
||||
KEY `xtag_flags` (`xtag_flags`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE if not exists `sys_perms` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||
`cat` CHAR( 255 ) NOT NULL ,
|
||||
`k` CHAR( 255 ) NOT NULL ,
|
||||
`v` MEDIUMTEXT NOT NULL,
|
||||
`public_perm` TINYINT( 1 ) UNSIGNED NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET = utf8");
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
define( 'UPDATE_VERSION' , 1084 );
|
||||
define( 'UPDATE_VERSION' , 1085 );
|
||||
|
||||
/**
|
||||
*
|
||||
@ -919,3 +919,19 @@ ADD INDEX ( `aid` )");
|
||||
return UPDATE_FAILED;
|
||||
}
|
||||
|
||||
function update_r1084() {
|
||||
|
||||
|
||||
$r = q("CREATE TABLE if not exists `sys_perms` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||
`cat` CHAR( 255 ) NOT NULL ,
|
||||
`k` CHAR( 255 ) NOT NULL ,
|
||||
`v` MEDIUMTEXT NOT NULL,
|
||||
`public_perm` TINYINT( 1 ) UNSIGNED NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET = utf8");
|
||||
|
||||
if($r)
|
||||
return UPDATE_SUCCESS;
|
||||
return UPDATE_FAILED;
|
||||
|
||||
}
|
||||
|
84
mod/achievements.php
Normal file
84
mod/achievements.php
Normal file
@ -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;
|
||||
|
||||
}
|
20
mod/xref.php
Normal file
20
mod/xref.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
function ref_init(&$a) {
|
||||
// Sets a referral URL using an xchan directly
|
||||
// Link format: example.com/xref/[xchan]/[TargetURL]
|
||||
// Target URL is optional.
|
||||
// Cookie lasts 24 hours to survive a browser restart. Contains no personal
|
||||
// information at all - just somebody else's xchan.
|
||||
$referrer = argv(1);
|
||||
$expire=time()+60*60*24;
|
||||
$path = 'ref';
|
||||
setcookie(ref, $referrer, $expire, "/");
|
||||
$url = '';
|
||||
|
||||
if (argc() > 2)
|
||||
$url = argv(2);
|
||||
|
||||
goaway (z_root() . '/' . $url);
|
||||
|
||||
}
|
Reference in New Issue
Block a user