commit
bb623fc464
12
boot.php
12
boot.php
@ -46,7 +46,7 @@ define ( 'RED_PLATFORM', 'Red Matrix' );
|
|||||||
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
|
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
|
||||||
define ( 'ZOT_REVISION', 1 );
|
define ( 'ZOT_REVISION', 1 );
|
||||||
|
|
||||||
define ( 'DB_UPDATE_VERSION', 1084 );
|
define ( 'DB_UPDATE_VERSION', 1085 );
|
||||||
|
|
||||||
define ( 'EOL', '<br />' . "\r\n" );
|
define ( 'EOL', '<br />' . "\r\n" );
|
||||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
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_UNVERIFIED', 0x0002);
|
||||||
define ( 'HUBLOC_FLAGS_DELETED', 0x1000);
|
define ( 'HUBLOC_FLAGS_DELETED', 0x1000);
|
||||||
|
|
||||||
|
define ( 'XCHAN_FLAGS_NORMAL', 0x0000);
|
||||||
define ( 'XCHAN_FLAGS_HIDDEN', 0x0001);
|
define ( 'XCHAN_FLAGS_HIDDEN', 0x0001);
|
||||||
define ( 'XCHAN_FLAGS_ORPHAN', 0x0002);
|
define ( 'XCHAN_FLAGS_ORPHAN', 0x0002);
|
||||||
define ( 'XCHAN_FLAGS_CENSORED', 0x0004);
|
define ( 'XCHAN_FLAGS_CENSORED', 0x0004);
|
||||||
@ -496,10 +496,11 @@ define ( 'ITEM_MODERATED', 0x0004);
|
|||||||
define ( 'ITEM_SPAM', 0x0008);
|
define ( 'ITEM_SPAM', 0x0008);
|
||||||
define ( 'ITEM_DELETED', 0x0010);
|
define ( 'ITEM_DELETED', 0x0010);
|
||||||
define ( 'ITEM_UNPUBLISHED', 0x0020);
|
define ( 'ITEM_UNPUBLISHED', 0x0020);
|
||||||
define ( 'ITEM_WEBPAGE', 0x0040); // is a static web page, not a conversational item
|
define ( 'ITEM_WEBPAGE', 0x0040); // is a static web page, not a conversational item
|
||||||
define ( 'ITEM_DELAYED_PUBLISH', 0x0080);
|
define ( 'ITEM_DELAYED_PUBLISH', 0x0080);
|
||||||
define ( 'ITEM_BUILDBLOCK', 0x0100); // Named thusly to make sure nobody confuses this with ITEM_BLOCKED
|
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_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
|
* Item Flags
|
||||||
*/
|
*/
|
||||||
@ -518,7 +519,6 @@ define ( 'ITEM_MENTIONSME', 0x0400);
|
|||||||
define ( 'ITEM_NOCOMMENT', 0x0800); // commenting/followups are disabled
|
define ( 'ITEM_NOCOMMENT', 0x0800); // commenting/followups are disabled
|
||||||
define ( 'ITEM_OBSCURED', 0x1000); // bit-mangled to protect from casual browsing by site admin
|
define ( 'ITEM_OBSCURED', 0x1000); // bit-mangled to protect from casual browsing by site admin
|
||||||
define ( 'ITEM_VERIFIED', 0x2000); // Signature verification was successful
|
define ( 'ITEM_VERIFIED', 0x2000); // Signature verification was successful
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Reverse the effect of magic_quotes_gpc if it is enabled.
|
* 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
|
* Create a system channel - which has no account attached
|
||||||
*
|
*
|
||||||
* Currently unused.
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function create_dir_account() {
|
//function create_sys_channel() {
|
||||||
create_identity(array(
|
// create_identity(array(
|
||||||
'account_id' => 'xxx', // This will create an identity with an (integer) account_id of 0, but account_id is required
|
// 'nickname' => 'sys',
|
||||||
'nickname' => 'dir',
|
// 'name' => 'System',
|
||||||
'name' => 'Directory',
|
// 'pageflags' => PAGE_SYSTEM,
|
||||||
'pageflags' => PAGE_DIRECTORY_CHANNEL|PAGE_HIDDEN,
|
// 'publish' => 0,
|
||||||
'publish' => 0
|
// 'xchanflags' => XCHAN_FLAGS_SYSTEM
|
||||||
));
|
// ));
|
||||||
}
|
//}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @channel_total()
|
* @channel_total()
|
||||||
@ -145,7 +144,7 @@ function create_identity($arr) {
|
|||||||
|
|
||||||
$name = escape_tags($arr['name']);
|
$name = escape_tags($arr['name']);
|
||||||
$pageflags = ((x($arr,'pageflags')) ? intval($arr['pageflags']) : PAGE_NORMAL);
|
$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']);
|
$name_error = validate_channelname($arr['name']);
|
||||||
if($name_error) {
|
if($name_error) {
|
||||||
$ret['message'] = $name_error;
|
$ret['message'] = $name_error;
|
||||||
@ -243,7 +242,7 @@ function create_identity($arr) {
|
|||||||
|
|
||||||
$newuid = $ret['channel']['channel_id'];
|
$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($hash),
|
||||||
dbesc($guid),
|
dbesc($guid),
|
||||||
dbesc($sig),
|
dbesc($sig),
|
||||||
@ -258,7 +257,8 @@ function create_identity($arr) {
|
|||||||
dbesc($ret['channel']['channel_name']),
|
dbesc($ret['channel']['channel_name']),
|
||||||
dbesc('zot'),
|
dbesc('zot'),
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
dbesc(datetime_convert())
|
dbesc(datetime_convert()),
|
||||||
|
intval($xchanflags)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Not checking return value.
|
// Not checking return value.
|
||||||
@ -1111,22 +1111,18 @@ function get_theme_uid() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @function get_default_profile_photo($size = 175)
|
* @function get_default_profile_photo($size = 175)
|
||||||
* Retrieves the path of the default_profile_photo for this system
|
* Retrieves the path of the default_profile_photo for this system
|
||||||
* with the specified size.
|
* with the specified size.
|
||||||
* @param int $size
|
* @param int $size
|
||||||
* one of (175, 80, 48)
|
* one of (175, 80, 48)
|
||||||
* @returns string
|
* @returns string
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function get_default_profile_photo($size = 175) {
|
function get_default_profile_photo($size = 175) {
|
||||||
$scheme = get_config('system','default_profile_photo');
|
$scheme = get_config('system','default_profile_photo');
|
||||||
if(! $scheme)
|
if(! $scheme)
|
||||||
$scheme = 'rainbow_man';
|
$scheme = 'rainbow_man';
|
||||||
return 'images/default_profile_photos/' . $scheme . '/' . $size . '.jpg';
|
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_hash` (`xtag_hash`),
|
||||||
KEY `xtag_flags` (`xtag_flags`)
|
KEY `xtag_flags` (`xtag_flags`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
) 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
|
<?php
|
||||||
|
|
||||||
define( 'UPDATE_VERSION' , 1084 );
|
define( 'UPDATE_VERSION' , 1085 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -919,3 +919,19 @@ ADD INDEX ( `aid` )");
|
|||||||
return UPDATE_FAILED;
|
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