Merge branch 'master' of git://github.com/friendika/friendika
This commit is contained in:
commit
c43f647049
|
@ -225,7 +225,7 @@ function facebook_post_hook(&$a,&$b) {
|
|||
|
||||
// make links readable before we strip the code
|
||||
|
||||
$msg = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/is",'$2 [$1]',$msg);
|
||||
$msg = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/is",'$2 $1',$msg);
|
||||
|
||||
$msg = preg_replace("/\[img\](.+?)\[\/img\]/is", t('Image: ') . '$1',$msg);
|
||||
|
||||
|
|
4
boot.php
4
boot.php
|
@ -2,9 +2,9 @@
|
|||
|
||||
set_time_limit(0);
|
||||
|
||||
define ( 'FRIENDIKA_VERSION', '2.1.915' );
|
||||
define ( 'FRIENDIKA_VERSION', '2.1.919' );
|
||||
define ( 'DFRN_PROTOCOL_VERSION', '2.1' );
|
||||
define ( 'DB_UPDATE_VERSION', 1040 );
|
||||
define ( 'DB_UPDATE_VERSION', 1043 );
|
||||
|
||||
define ( 'EOL', "<br />\r\n" );
|
||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||
|
|
20
database.sql
20
database.sql
|
@ -297,7 +297,8 @@ CREATE TABLE IF NOT EXISTS `profile` (
|
|||
`sexual` char(255) NOT NULL,
|
||||
`politic` char(255) NOT NULL,
|
||||
`religion` char(255) NOT NULL,
|
||||
`keywords` text NOT NULL,
|
||||
`pub_keywords` text NOT NULL,
|
||||
`prv_keywords` text NOT NULL,
|
||||
`about` text NOT NULL,
|
||||
`summary` char(255) NOT NULL,
|
||||
`music` text NOT NULL,
|
||||
|
@ -378,6 +379,7 @@ CREATE TABLE IF NOT EXISTS `user` (
|
|||
`page-flags` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`pwdreset` char(255) NOT NULL,
|
||||
`maxreq` int(11) NOT NULL DEFAULT '10',
|
||||
`expire` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`allow_cid` mediumtext NOT NULL,
|
||||
`allow_gid` mediumtext NOT NULL,
|
||||
`deny_cid` mediumtext NOT NULL,
|
||||
|
@ -479,3 +481,19 @@ CREATE TABLE IF NOT EXISTS `cache` (
|
|||
`v` TEXT NOT NULL,
|
||||
`updated` DATETIME NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `fcontact` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||
`url` CHAR( 255 ) NOT NULL ,
|
||||
`name` CHAR( 255 ) NOT NULL ,
|
||||
`photo` CHAR( 255 ) NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ffinder` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||
`uid` INT UNSIGNED NOT NULL ,
|
||||
`cid` INT UNSIGNED NOT NULL ,
|
||||
`fid` INT UNSIGNED NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ function bbcode($Text) {
|
|||
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" height="$2" width="$1">', $Text);
|
||||
|
||||
// Youtube extensions
|
||||
$Text = preg_replace("/\[youtube\]http:\/\/www.youtube.com\/watch\?v\=(.+?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text);
|
||||
$Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.+?)\[\/youtube\]/",'[youtube]$1[/youtube]',$Text);
|
||||
$Text = preg_replace("/\[youtube\](.+?)\[\/youtube\]/", '<object width="425" height="350" type="application/x-shockwave-flash" data="http://www.youtube.com/v/$1" ><param name="movie" value="http://www.youtube.com/v/$1"></param><!--[if IE]><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350" /><![endif]--></object>', $Text);
|
||||
|
||||
// oembed tag
|
||||
|
|
|
@ -19,6 +19,23 @@ class dba {
|
|||
public $connected = false;
|
||||
|
||||
function __construct($server,$user,$pass,$db,$install = false) {
|
||||
|
||||
$server = trim($server);
|
||||
$user = trim($user);
|
||||
$pass = trim($pass);
|
||||
$db = trim($db);
|
||||
|
||||
if($install) {
|
||||
if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) {
|
||||
if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) {
|
||||
notice( sprintf( t('Cannot locate DNS info for database server \'%s\'',$server)));
|
||||
$this->connected = false;
|
||||
$this->db = null;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->db = @new mysqli($server,$user,$pass,$db);
|
||||
if(! mysqli_connect_errno()) {
|
||||
$this->connected = true;
|
||||
|
@ -61,7 +78,7 @@ class dba {
|
|||
}
|
||||
else {
|
||||
|
||||
/*
|
||||
/**
|
||||
* If dbfail.out exists, we will write any failed calls directly to it,
|
||||
* regardless of any logging that may or may nor be in effect.
|
||||
* These usually indicate SQL syntax errors that need to be resolved.
|
||||
|
|
44
include/expire.php
Normal file
44
include/expire.php
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
|
||||
require_once("boot.php");
|
||||
|
||||
function expire_run($argv, $argc){
|
||||
global $a, $db;
|
||||
|
||||
if(is_null($a)) {
|
||||
$a = new App;
|
||||
}
|
||||
|
||||
if(is_null($db)) {
|
||||
@include(".htconfig.php");
|
||||
require_once("dba.php");
|
||||
$db = new dba($db_host, $db_user, $db_pass, $db_data);
|
||||
unset($db_host, $db_user, $db_pass, $db_data);
|
||||
};
|
||||
|
||||
require_once('session.php');
|
||||
require_once('datetime.php');
|
||||
require_once('simplepie/simplepie.inc');
|
||||
require_once('include/items.php');
|
||||
require_once('include/Contact.php');
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
|
||||
logger('expire: start');
|
||||
|
||||
$r = q("SELECT `uid`,`username`,`expire` FROM `user` WHERE `expire` != 0");
|
||||
if(count($r)) {
|
||||
foreach($r as $rr) {
|
||||
logger('Expire: ' . $rr['username'] . ' interval: ' . $rr['expire'], LOGGER_DEBUG);
|
||||
item_expire($rr['uid'],$rr['expire']);
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (array_search(__file__,get_included_files())===0){
|
||||
expire_run($argv,$argc);
|
||||
killme();
|
||||
}
|
41
include/fcontact.php
Normal file
41
include/fcontact.php
Normal file
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
|
||||
|
||||
function fcontact_store($url,$name,$photo) {
|
||||
|
||||
$nurl = str_replace(array('https:','//www.'), array('http:','//'), $url);
|
||||
|
||||
$r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' LIMIT 1",
|
||||
dbesc($nurl)
|
||||
);
|
||||
|
||||
if(count($r))
|
||||
return $r[0]['id'];
|
||||
|
||||
$r = q("INSERT INTO `fcontact` ( `url`, `name`, `photo` ) VALUES ( '%s', '%s', '%s' ) ",
|
||||
dbesc($nurl),
|
||||
dbesc($name),
|
||||
dbesc($photo)
|
||||
);
|
||||
|
||||
if($r) {
|
||||
$r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' LIMIT 1",
|
||||
dbesc($nurl)
|
||||
);
|
||||
if(count($r))
|
||||
return $r[0]['id'];
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
function ffinder_store($uid,$cid,$fid) {
|
||||
$r = q("INSERT INTO `ffinder` ( `uid`, `cid`, `fid` ) VALUES ( %d, %d, %d ) ",
|
||||
intval($uid),
|
||||
intval($cid),
|
||||
intval($fid)
|
||||
);
|
||||
return $r;
|
||||
}
|
||||
|
|
@ -401,6 +401,17 @@ function get_atom_elements($feed,$item) {
|
|||
$res['edited'] = $item->get_date('c');
|
||||
|
||||
|
||||
// Disallow time travelling posts
|
||||
|
||||
$d1 = strtotime($res['created']);
|
||||
$d2 = strtotime($res['edited']);
|
||||
$d3 = strtotime('now');
|
||||
|
||||
if($d1 > $d3)
|
||||
$res['created'] = datetime_convert();
|
||||
if($d2 > $d3)
|
||||
$res['edited'] = datetime_convert();
|
||||
|
||||
$rawowner = $item->get_item_tags(NAMESPACE_DFRN, 'owner');
|
||||
if($rawowner[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'])
|
||||
$res['owner-name'] = unxmlify($rawowner[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']);
|
||||
|
@ -702,6 +713,18 @@ function item_store($arr,$force_parent = false) {
|
|||
intval($current_post)
|
||||
);
|
||||
|
||||
/**
|
||||
* If this is now the last-child, force all _other_ children of this parent to *not* be last-child
|
||||
*/
|
||||
|
||||
if($arr['last-child']) {
|
||||
$r = q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d AND `id` != %d",
|
||||
dbesc($arr['uri']),
|
||||
intval($arr['uid']),
|
||||
intval($current_post)
|
||||
);
|
||||
}
|
||||
|
||||
return $current_post;
|
||||
}
|
||||
|
||||
|
@ -1484,3 +1507,49 @@ function atom_entry($item,$type,$author,$owner,$comment = false) {
|
|||
return $o;
|
||||
}
|
||||
|
||||
function item_expire($uid,$days) {
|
||||
|
||||
if((! $uid) || (! $days))
|
||||
return;
|
||||
|
||||
$r = q("SELECT * FROM `item`
|
||||
WHERE `uid` = %d
|
||||
AND `created` < UTC_TIMESTAMP() - INTERVAL %d DAY
|
||||
AND `id` = `parent`
|
||||
AND `deleted` = 0",
|
||||
intval($uid),
|
||||
intval($days)
|
||||
);
|
||||
|
||||
if(! count($r))
|
||||
return;
|
||||
|
||||
logger('expire: # items=' . count($r) );
|
||||
|
||||
foreach($r as $item) {
|
||||
|
||||
// Only expire posts, not photos and photo comments
|
||||
|
||||
if(strlen($item['resource-id']))
|
||||
continue;
|
||||
|
||||
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
intval($item['id'])
|
||||
);
|
||||
|
||||
// kill the kids
|
||||
|
||||
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
|
||||
dbesc(datetime_convert()),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($item['parent-uri']),
|
||||
intval($item['uid'])
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
proc_run('php',"include/notifier.php","expire","$uid");
|
||||
|
||||
}
|
|
@ -40,6 +40,7 @@ function notifier_run($argv, $argc){
|
|||
break;
|
||||
}
|
||||
|
||||
$expire = false;
|
||||
$top_level = false;
|
||||
$recipients = array();
|
||||
$url_recipients = array();
|
||||
|
@ -57,6 +58,17 @@ function notifier_run($argv, $argc){
|
|||
$item = $message[0];
|
||||
|
||||
}
|
||||
elseif($cmd === 'expire') {
|
||||
$expire = true;
|
||||
$items = q("SELECT * FROM `item` WHERE `uid` = %d AND `wall` = 1
|
||||
AND `deleted` = 1 AND `changed` > UTC_TIMESTAMP - INTERVAL 10 MINUTE",
|
||||
intval($item_id)
|
||||
);
|
||||
$uid = $item_id;
|
||||
$item_id = 0;
|
||||
if(! count($items))
|
||||
return;
|
||||
}
|
||||
else {
|
||||
|
||||
// find ancestors
|
||||
|
@ -76,11 +88,10 @@ function notifier_run($argv, $argc){
|
|||
intval($parent_id)
|
||||
);
|
||||
|
||||
if(! count($items)){
|
||||
if(! count($items)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// avoid race condition with deleting entries
|
||||
|
||||
if($items[0]['deleted']) {
|
||||
|
@ -98,11 +109,11 @@ function notifier_run($argv, $argc){
|
|||
intval($uid)
|
||||
);
|
||||
|
||||
if(count($r))
|
||||
$owner = $r[0];
|
||||
else {
|
||||
if(! count($r))
|
||||
return;
|
||||
}
|
||||
|
||||
$owner = $r[0];
|
||||
|
||||
$hub = get_config('system','huburl');
|
||||
|
||||
// If this is a public conversation, notify the feed hub
|
||||
|
@ -117,7 +128,7 @@ function notifier_run($argv, $argc){
|
|||
|
||||
$parent = $items[0];
|
||||
|
||||
if($parent['type'] === 'remote') {
|
||||
if($parent['type'] === 'remote' && (! $expire)) {
|
||||
// local followup to remote post
|
||||
$followup = true;
|
||||
$notify_hub = false; // not public
|
||||
|
@ -235,6 +246,7 @@ function notifier_run($argv, $argc){
|
|||
}
|
||||
else {
|
||||
foreach($items as $item) {
|
||||
|
||||
if(! $item['parent'])
|
||||
continue;
|
||||
|
||||
|
@ -244,7 +256,7 @@ function notifier_run($argv, $argc){
|
|||
|
||||
$atom .= atom_entry($item,'text',$contact,$owner,true);
|
||||
|
||||
if(($top_level) && ($notify_hub) && ($item['author-link'] === $item['owner-link']))
|
||||
if(($top_level) && ($notify_hub) && ($item['author-link'] === $item['owner-link']) && (! $expire))
|
||||
$slaps[] = atom_entry($item,'html',$contact,$owner,true);
|
||||
}
|
||||
}
|
||||
|
@ -319,7 +331,7 @@ function notifier_run($argv, $argc){
|
|||
// only send salmon if public - e.g. if it's ok to notify
|
||||
// a public hub, it's ok to send a salmon
|
||||
|
||||
if(count($slaps) && $notify_hub) {
|
||||
if((count($slaps)) && ($notify_hub) && (! $expire)) {
|
||||
logger('notifier: slapdelivery: ' . $contact['name']);
|
||||
foreach($slaps as $slappy) {
|
||||
if($contact['notify']) {
|
||||
|
@ -350,7 +362,7 @@ function notifier_run($argv, $argc){
|
|||
|
||||
// send additional slaps to mentioned remote tags (@foo@example.com)
|
||||
|
||||
if($slap && count($url_recipients) && $followup && $notify_hub) {
|
||||
if($slap && count($url_recipients) && $followup && $notify_hub && (! $expire)) {
|
||||
foreach($url_recipients as $url) {
|
||||
if($url) {
|
||||
logger('notifier: urldelivery: ' . $url);
|
||||
|
|
|
@ -29,6 +29,17 @@ function poller_run($argv, $argc){
|
|||
|
||||
proc_run('php',"include/queue.php");
|
||||
|
||||
// once daily run expire in background
|
||||
|
||||
$d1 = get_config('system','last_expire_day');
|
||||
$d2 = intval(datetime_convert('UTC','UTC','now','d'));
|
||||
|
||||
if($d2 != intval($d1)) {
|
||||
set_config('system','last_expire_day',$d2);
|
||||
proc_run('php','include/expire.php');
|
||||
}
|
||||
|
||||
|
||||
// clear old cache
|
||||
q("DELETE FROM `cache` WHERE `updated` < '%s'",
|
||||
dbesc(datetime_convert('UTC','UTC',"now - 30 days")));
|
||||
|
|
|
@ -32,9 +32,16 @@ $install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false
|
|||
* Get the language setting directly from system variables, bypassing get_config()
|
||||
* as database may not yet be configured.
|
||||
*
|
||||
* If possible, we use the value from the browser.
|
||||
*
|
||||
*/
|
||||
|
||||
$lang = ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
|
||||
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
|
||||
$langs = preg_split("/[,-]/",$_SERVER['HTTP_ACCEPT_LANGUAGE'],2);
|
||||
$lang = $langs[0];
|
||||
} else {
|
||||
$lang = ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
|
||||
}
|
||||
|
||||
load_translation_table($lang);
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ function directory_content(&$a) {
|
|||
|
||||
if($search)
|
||||
$search = dbesc($search);
|
||||
$sql_extra = ((strlen($search)) ? " AND MATCH (`profile`.`name`, `user`.`nickname`, `pdesc`, `locality`,`region`,`country-name`,`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`keywords` ) AGAINST ('$search' IN BOOLEAN MODE) " : "");
|
||||
$sql_extra = ((strlen($search)) ? " AND MATCH (`profile`.`name`, `user`.`nickname`, `pdesc`, `locality`,`region`,`country-name`,`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`pub_keywords`,`prv_keywords` ) AGAINST ('$search' IN BOOLEAN MODE) " : "");
|
||||
|
||||
$publish = ((get_config('system','publish_all')) ? '' : " AND `publish` = 1 " );
|
||||
|
||||
|
|
|
@ -532,7 +532,7 @@ function item_content(&$a) {
|
|||
|
||||
require_once('include/security.php');
|
||||
|
||||
$uid = $_SESSION['uid'];
|
||||
$uid = local_user();
|
||||
|
||||
if(($a->argc == 3) && ($a->argv[1] === 'drop') && intval($a->argv[2])) {
|
||||
|
||||
|
|
|
@ -28,6 +28,11 @@ function profile_init(&$a) {
|
|||
$a->page['htmlhead'] .= '<link rel="openid.delegate" href="' . $delegate . '" />' . "\r\n";
|
||||
}
|
||||
|
||||
$keywords = ((x($a->profile,'pub_keywords')) ? $a->profile['pub_keywords'] : '');
|
||||
$keywords = str_replace(array(',',' ',',,'),array(' ',',',','),$keywords);
|
||||
if(strlen($keywords))
|
||||
$a->page['htmlhead'] .= '<meta name="keywords" content="' . $keywords . '" />' . "\r\n" ;
|
||||
|
||||
$a->page['htmlhead'] .= '<meta name="dfrn-global-visibility" content="' . (($a->profile['net-publish']) ? 'true' : 'false') . '" />' . "\r\n" ;
|
||||
$a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/dfrn_poll/' . $which .'" />' . "\r\n" ;
|
||||
$uri = urlencode('acct:' . $a->profile['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : ''));
|
||||
|
|
|
@ -55,7 +55,8 @@ function profiles_post(&$a) {
|
|||
$region = notags(trim($_POST['region']));
|
||||
$postal_code = notags(trim($_POST['postal_code']));
|
||||
$country_name = notags(trim($_POST['country_name']));
|
||||
$keywords = notags(trim($_POST['keywords']));
|
||||
$pub_keywords = notags(trim($_POST['pub_keywords']));
|
||||
$prv_keywords = notags(trim($_POST['prv_keywords']));
|
||||
$marital = notags(trim($_POST['marital']));
|
||||
if($marital != $orig[0]['marital'])
|
||||
$maritalchanged = true;
|
||||
|
@ -147,7 +148,8 @@ function profiles_post(&$a) {
|
|||
`homepage` = '%s',
|
||||
`politic` = '%s',
|
||||
`religion` = '%s',
|
||||
`keywords` = '%s',
|
||||
`pub_keywords` = '%s',
|
||||
`prv_keywords` = '%s',
|
||||
`about` = '%s',
|
||||
`interest` = '%s',
|
||||
`contact` = '%s',
|
||||
|
@ -176,7 +178,8 @@ function profiles_post(&$a) {
|
|||
dbesc($homepage),
|
||||
dbesc($politic),
|
||||
dbesc($religion),
|
||||
dbesc($keywords),
|
||||
dbesc($pub_keywords),
|
||||
dbesc($prv_keywords),
|
||||
dbesc($about),
|
||||
dbesc($interest),
|
||||
dbesc($contact),
|
||||
|
@ -383,7 +386,8 @@ function profiles_content(&$a) {
|
|||
'$homepage' => $r[0]['homepage'],
|
||||
'$politic' => $r[0]['politic'],
|
||||
'$religion' => $r[0]['religion'],
|
||||
'$keywords' => $r[0]['keywords'],
|
||||
'$pub_keywords' => $r[0]['pub_keywords'],
|
||||
'$prv_keywords' => $r[0]['prv_keywords'],
|
||||
'$music' => $r[0]['music'],
|
||||
'$book' => $r[0]['book'],
|
||||
'$tv' => $r[0]['tv'],
|
||||
|
|
|
@ -63,6 +63,7 @@ function settings_post(&$a) {
|
|||
$defloc = ((x($_POST,'defloc')) ? notags(trim($_POST['defloc'])) : '');
|
||||
$openid = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : '');
|
||||
$maxreq = ((x($_POST,'maxreq')) ? intval($_POST['maxreq']) : 0);
|
||||
$expire = ((x($_POST,'expire')) ? intval($_POST['expire']) : 0);
|
||||
|
||||
$allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
|
||||
$publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
|
||||
|
@ -139,7 +140,7 @@ function settings_post(&$a) {
|
|||
$openidserver = '';
|
||||
}
|
||||
|
||||
$r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d, `openidserver` = '%s' WHERE `uid` = %d LIMIT 1",
|
||||
$r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d, `expire` = %d, `openidserver` = '%s' WHERE `uid` = %d LIMIT 1",
|
||||
dbesc($username),
|
||||
dbesc($email),
|
||||
dbesc($openid),
|
||||
|
@ -154,6 +155,7 @@ function settings_post(&$a) {
|
|||
intval($allow_location),
|
||||
dbesc($theme),
|
||||
intval($maxreq),
|
||||
intval($expire),
|
||||
dbesc($openidserver),
|
||||
intval(local_user())
|
||||
);
|
||||
|
@ -238,6 +240,7 @@ function settings_content(&$a) {
|
|||
$defloc = $a->user['default-location'];
|
||||
$openid = $a->user['openid'];
|
||||
$maxreq = $a->user['maxreq'];
|
||||
$expire = ((intval($a->user['expire'])) ? $a->user['expire'] : '');
|
||||
|
||||
if(! strlen($a->user['timezone']))
|
||||
$timezone = date_default_timezone_get();
|
||||
|
@ -358,6 +361,7 @@ function settings_content(&$a) {
|
|||
'$sel_notify4' => (($notify & NOTIFY_COMMENT) ? ' checked="checked" ' : ''),
|
||||
'$sel_notify5' => (($notify & NOTIFY_MAIL) ? ' checked="checked" ' : ''),
|
||||
'$maxreq' => $maxreq,
|
||||
'$expire' => $expire,
|
||||
'$theme' => $theme_selector,
|
||||
'$pagetype' => $pagetype
|
||||
));
|
||||
|
|
32
update.php
32
update.php
|
@ -326,7 +326,7 @@ function update_1033() {
|
|||
`k` CHAR( 255 ) NOT NULL PRIMARY KEY ,
|
||||
`v` TEXT NOT NULL,
|
||||
`updated` DATETIME NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8;");
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
|
||||
}
|
||||
|
||||
|
||||
|
@ -377,3 +377,33 @@ function update_1038() {
|
|||
function update_1039() {
|
||||
q("ALTER TABLE `addon` ADD `timestamp` BIGINT NOT NULL DEFAULT '0'");
|
||||
}
|
||||
|
||||
|
||||
function update_1040() {
|
||||
|
||||
q("CREATE TABLE IF NOT EXISTS `fcontact` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||
`url` CHAR( 255 ) NOT NULL ,
|
||||
`name` CHAR( 255 ) NOT NULL ,
|
||||
`photo` CHAR( 255 ) NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
|
||||
|
||||
q("CREATE TABLE IF NOT EXISTS `ffinder` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||
`uid` INT UNSIGNED NOT NULL ,
|
||||
`cid` INT UNSIGNED NOT NULL ,
|
||||
`fid` INT UNSIGNED NOT NULL
|
||||
) ENGINE = MYISAM DEFAULT CHARSET=utf8 ");
|
||||
|
||||
}
|
||||
|
||||
function update_1041() {
|
||||
q("ALTER TABLE `profile` CHANGE `keywords` `prv_keywords` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
|
||||
q("ALTER TABLE `profile` ADD `pub_keywords` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `religion` ");
|
||||
}
|
||||
|
||||
function update_1042() {
|
||||
q("ALTER TABLE `user` ADD `expire` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `maxreq` ");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -134,11 +134,17 @@ $sexual
|
|||
</div>
|
||||
<div id="profile-edit-religion-end"></div>
|
||||
|
||||
<div id="profile-edit-keywords-wrapper" >
|
||||
<label id="profile-edit-keywords-label" for="profile-edit-keywords" >Keywords: </label>
|
||||
<input type="text" size="32" name="keywords" id="profile-edit-keywords" title="Example: fishing photography software" value="$keywords" />
|
||||
</div><div id="profile-edit-keywords-desc">(Used for searching public profiles, never shown to others)</div>
|
||||
<div id="profile-edit-keywords-end"></div>
|
||||
<div id="profile-edit-pubkeywords-wrapper" >
|
||||
<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >Public Keywords: </label>
|
||||
<input type="text" size="32" name="pubkeywords" id="profile-edit-pubkeywords" title="Example: fishing photography software" value="$pub_keywords" />
|
||||
</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
|
||||
<div id="profile-edit-pubkeywords-end"></div>
|
||||
|
||||
<div id="profile-edit-prvkeywords-wrapper" >
|
||||
<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Private Keywords: </label>
|
||||
<input type="text" size="32" name="prvkeywords" id="profile-edit-prvkeywords" title="Example: fishing photography software" value="$prv_keywords" />
|
||||
</div><div id="profile-edit-prvkeywords-desc">(Used for searching profiles, never shown to others)</div>
|
||||
<div id="profile-edit-prvkeywords-end"></div>
|
||||
|
||||
|
||||
<div class="profile-edit-submit-wrapper" >
|
||||
|
|
|
@ -78,7 +78,7 @@ $profile_in_net_dir
|
|||
|
||||
|
||||
<div id="settings-default-perms" class="settings-default-perms" >
|
||||
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >⇩ $permissions</div>
|
||||
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
|
||||
<div id="settings-default-perms-menu-end"></div>
|
||||
|
||||
<div id="settings-default-perms-select" style="display: none;" >
|
||||
|
@ -89,6 +89,10 @@ $profile_in_net_dir
|
|||
</div>
|
||||
<div id="settings-default-perms-end"></div>
|
||||
|
||||
<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
|
||||
<div id="settings-expire-end"></div>
|
||||
|
||||
|
||||
<div class="settings-submit-wrapper" >
|
||||
<input type="submit" name="submit" class="settings-submit" value="Submit" />
|
||||
</div>
|
||||
|
|
|
@ -134,11 +134,17 @@ $sexual
|
|||
</div>
|
||||
<div id="profile-edit-religion-end"></div>
|
||||
|
||||
<div id="profile-edit-keywords-wrapper" >
|
||||
<label id="profile-edit-keywords-label" for="profile-edit-keywords" >Keywords: </label>
|
||||
<input type="text" size="32" name="keywords" id="profile-edit-keywords" title="Example: fishing photography software" value="$keywords" />
|
||||
</div><div id="profile-edit-keywords-desc">(Used for searching public profiles, never shown to others)</div>
|
||||
<div id="profile-edit-keywords-end"></div>
|
||||
<div id="profile-edit-pubkeywords-wrapper" >
|
||||
<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >Public Keywords: </label>
|
||||
<input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="Example: fishing photography software" value="$pub_keywords" />
|
||||
</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
|
||||
<div id="profile-edit-pubkeywords-end"></div>
|
||||
|
||||
<div id="profile-edit-prvkeywords-wrapper" >
|
||||
<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Private Keywords: </label>
|
||||
<input type="text" size="32" name="prv_keywords" id="profile-edit-prvkeywords" title="Example: fishing photography software" value="$prv_keywords" />
|
||||
</div><div id="profile-edit-prvkeywords-desc">(Used for searching profiles, never shown to others)</div>
|
||||
<div id="profile-edit-prvkeywords-end"></div>
|
||||
|
||||
|
||||
<div class="profile-edit-submit-wrapper" >
|
||||
|
|
|
@ -76,9 +76,8 @@ $profile_in_dir
|
|||
$profile_in_net_dir
|
||||
|
||||
|
||||
|
||||
<div id="settings-default-perms" class="settings-default-perms" >
|
||||
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >⇩ $permissions</div>
|
||||
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
|
||||
<div id="settings-default-perms-menu-end"></div>
|
||||
|
||||
<div id="settings-default-perms-select" style="display: none;" >
|
||||
|
@ -89,6 +88,10 @@ $profile_in_net_dir
|
|||
</div>
|
||||
<div id="settings-default-perms-end"></div>
|
||||
|
||||
<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
|
||||
<div id="settings-expire-end"></div>
|
||||
|
||||
|
||||
<div class="settings-submit-wrapper" >
|
||||
<input type="submit" name="submit" class="settings-submit" value="Submit" />
|
||||
</div>
|
||||
|
|
|
@ -134,11 +134,17 @@ $sexual
|
|||
</div>
|
||||
<div id="profile-edit-religion-end"></div>
|
||||
|
||||
<div id="profile-edit-keywords-wrapper" >
|
||||
<label id="profile-edit-keywords-label" for="profile-edit-keywords" >Keywords: </label>
|
||||
<input type="text" size="32" name="keywords" id="profile-edit-keywords" title="Example: fishing photography software" value="$keywords" />
|
||||
</div><div id="profile-edit-keywords-desc">(Used for searching public profiles, never shown to others)</div>
|
||||
<div id="profile-edit-keywords-end"></div>
|
||||
<div id="profile-edit-pubkeywords-wrapper" >
|
||||
<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >Public Keywords: </label>
|
||||
<input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="Example: fishing photography software" value="$pub_keywords" />
|
||||
</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
|
||||
<div id="profile-edit-pubkeywords-end"></div>
|
||||
|
||||
<div id="profile-edit-prvkeywords-wrapper" >
|
||||
<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Private Keywords: </label>
|
||||
<input type="text" size="32" name="prv_keywords" id="profile-edit-prvkeywords" title="Example: fishing photography software" value="$prv_keywords" />
|
||||
</div><div id="profile-edit-prvkeywords-desc">(Used for searching profiles, never shown to others)</div>
|
||||
<div id="profile-edit-prvkeywords-end"></div>
|
||||
|
||||
|
||||
<div class="profile-edit-submit-wrapper" >
|
||||
|
|
|
@ -78,7 +78,7 @@ $profile_in_net_dir
|
|||
|
||||
|
||||
<div id="settings-default-perms" class="settings-default-perms" >
|
||||
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >⇩ $permissions</div>
|
||||
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
|
||||
<div id="settings-default-perms-menu-end"></div>
|
||||
|
||||
<div id="settings-default-perms-select" style="display: none;" >
|
||||
|
@ -89,6 +89,9 @@ $profile_in_net_dir
|
|||
</div>
|
||||
<div id="settings-default-perms-end"></div>
|
||||
|
||||
<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
|
||||
<div id="settings-expire-end"></div>
|
||||
|
||||
<div class="settings-submit-wrapper" >
|
||||
<input type="submit" name="submit" class="settings-submit" value="Submit" />
|
||||
</div>
|
||||
|
|
|
@ -16,14 +16,14 @@ $a->strings['last'] = 'last';
|
|||
$a->strings['next'] = 'next';
|
||||
$a->strings[' likes this.'] = ' aime ça.';
|
||||
$a->strings[' doesn\'t like this.'] = ' n\'aime pas ça.';
|
||||
$a->strings['people'] = 'personne(s)';
|
||||
$a->strings['like this.'] = 'aime(nt) ça.';
|
||||
$a->strings['don\'t like this.'] = 'n\'aime(nt) pas ça.';
|
||||
$a->strings['people'] = 'personnes';
|
||||
$a->strings['like this.'] = 'aiment ça.';
|
||||
$a->strings['don\'t like this.'] = 'n\'aiment pas ça.';
|
||||
$a->strings['and'] = 'et';
|
||||
$a->strings[', and '] = ', et ';
|
||||
$a->strings[' other people'] = ' autre(s) personne(s)';
|
||||
$a->strings[' like this.'] = ' aime(nt) ça.';
|
||||
$a->strings[' don\'t like this.'] = ' n\'aime(nt) pas ça.';
|
||||
$a->strings[' other people'] = ' autres personnes';
|
||||
$a->strings[' like this.'] = ' aiment ça.';
|
||||
$a->strings[' don\'t like this.'] = ' n\'aiment pas ça.';
|
||||
$a->strings['No contacts'] = 'Aucun contact';
|
||||
$a->strings['Contacts'] = 'Contacts';
|
||||
$a->strings['View Contacts'] = 'Voir les contacts';
|
||||
|
|
|
@ -134,11 +134,17 @@ $sexual
|
|||
</div>
|
||||
<div id="profile-edit-religion-end"></div>
|
||||
|
||||
<div id="profile-edit-keywords-wrapper" >
|
||||
<label id="profile-edit-keywords-label" for="profile-edit-keywords" >Parole chiave: </label>
|
||||
<input type="text" size="32" name="keywords" id="profile-edit-keywords" title="Esempio: pescare fotografia software" value="$keywords" />
|
||||
</div><div id="profile-edit-keywords-desc">(Usati per la ricerca dei profili pubblci, mai mostrati agli altri)</div>
|
||||
<div id="profile-edit-keywords-end"></div>
|
||||
<div id="profile-edit-pubkeywords-wrapper" >
|
||||
<label id="profile-edit-pubkeywords-label" for="profile-edit-pubkeywords" >[Public] Parole chiave: </label>
|
||||
<input type="text" size="32" name="pub_keywords" id="profile-edit-pubkeywords" title="Esempio: pescare fotografia software" value="$pub_keywords" />
|
||||
</div><div id="profile-edit-pubkeywords-desc">(Used for suggesting potential friends, can be seen by others)</div>
|
||||
<div id="profile-edit-pubkeywords-end"></div>
|
||||
|
||||
<div id="profile-edit-prvkeywords-wrapper" >
|
||||
<label id="profile-edit-prvkeywords-label" for="profile-edit-prvkeywords" >Parole chiave: </label>
|
||||
<input type="text" size="32" name="prv_keywords" id="profile-edit-prvkeywords" title="Esempio: pescare fotografia software" value="$prv_keywords" />
|
||||
</div><div id="profile-edit-prvkeywords-desc">(Usati per la ricerca dei profili, mai mostrati agli altri)</div>
|
||||
<div id="profile-edit-prvkeywords-end"></div>
|
||||
|
||||
|
||||
<div class="profile-edit-submit-wrapper" >
|
||||
|
|
|
@ -79,7 +79,7 @@ $profile_in_net_dir
|
|||
|
||||
|
||||
<div id="settings-default-perms" class="settings-default-perms" >
|
||||
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >⇩ $permissions</div>
|
||||
<div id="settings-default-perms-menu" class="fakelink" onClick="openClose('settings-default-perms-select');" >$permissions</div>
|
||||
<div id="settings-default-perms-menu-end"></div>
|
||||
|
||||
<div id="settings-default-perms-select" style="display: none;" >
|
||||
|
@ -90,6 +90,9 @@ $profile_in_net_dir
|
|||
</div>
|
||||
<div id="settings-default-perms-end"></div>
|
||||
|
||||
<div id="settings-expire-desc">Automatically expire (delete) posts older than <input type="text" size="3" name="expire" value="$expire" /> days</div>
|
||||
<div id="settings-expire-end"></div>
|
||||
|
||||
<div class="settings-submit-wrapper" >
|
||||
<input type="submit" name="submit" class="settings-submit" value="Aggiorna" />
|
||||
</div>
|
||||
|
|
|
@ -373,6 +373,10 @@ input#dfrn-url {
|
|||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
#settings-expire-end {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
#settings-username-end,
|
||||
#settings-email-end,
|
||||
#settings-nick-end,
|
||||
|
@ -624,7 +628,8 @@ input#dfrn-url {
|
|||
#profile-edit-sexual-label,
|
||||
#profile-edit-politic-label,
|
||||
#profile-edit-religion-label,
|
||||
#profile-edit-keywords-label,
|
||||
#profile-edit-pubkeywords-label,
|
||||
#profile-edit-prvkeywords-label,
|
||||
#profile-edit-homepage-label {
|
||||
float: left;
|
||||
width: 175px;
|
||||
|
@ -644,7 +649,8 @@ input#dfrn-url {
|
|||
#sexual-select,
|
||||
#profile-edit-politic,
|
||||
#profile-edit-religion,
|
||||
#profile-edit-keywords,
|
||||
#profile-edit-pubkeywords,
|
||||
#profile-edit-prvkeywords,
|
||||
#profile-in-dir-yes,
|
||||
#profile-in-dir-no,
|
||||
#profile-in-netdir-yes,
|
||||
|
@ -698,7 +704,8 @@ input#dfrn-url {
|
|||
|
||||
|
||||
#profile-edit-pdesc-desc,
|
||||
#profile-edit-keywords-desc {
|
||||
#profile-edit-pubkeywords-desc,
|
||||
#profile-edit-prvkeywords-desc {
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
@ -741,7 +748,8 @@ input#dfrn-url {
|
|||
#profile-edit-sexual-end,
|
||||
#profile-edit-politic-end,
|
||||
#profile-edit-religion-end,
|
||||
#profile-edit-keywords-end,
|
||||
#profile-edit-pubkeywords-end,
|
||||
#profile-edit-prvkeywords-end,
|
||||
#profile-edit-homepage-end,
|
||||
#profile-in-dir-break,
|
||||
#profile-in-dir-end,
|
||||
|
|
|
@ -506,6 +506,10 @@ input#dfrn-url {
|
|||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
#settings-expire-end {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
#settings-username-end,
|
||||
#settings-email-end,
|
||||
#settings-nick-end,
|
||||
|
@ -755,7 +759,8 @@ input#dfrn-url {
|
|||
#profile-edit-sexual-label,
|
||||
#profile-edit-politic-label,
|
||||
#profile-edit-religion-label,
|
||||
#profile-edit-keywords-label,
|
||||
#profile-edit-pubkeywords-label,
|
||||
#profile-edit-prvkeywords-label,
|
||||
#profile-edit-homepage-label {
|
||||
float: left;
|
||||
width: 175px;
|
||||
|
@ -775,7 +780,8 @@ input#dfrn-url {
|
|||
#sexual-select,
|
||||
#profile-edit-politic,
|
||||
#profile-edit-religion,
|
||||
#profile-edit-keywords,
|
||||
#profile-edit-pubkeywords,
|
||||
#profile-edit-prvkeywords,
|
||||
#profile-in-dir-yes,
|
||||
#profile-in-dir-no,
|
||||
#profile-in-netdir-yes,
|
||||
|
@ -806,7 +812,8 @@ input#dfrn-url {
|
|||
margin-left: 20px;
|
||||
}
|
||||
|
||||
#profile-edit-keywords-desc {
|
||||
#profile-edit-pubkeywords-desc,
|
||||
#profile-edit-prvkeywords-desc {
|
||||
float: left;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
@ -864,7 +871,8 @@ input#dfrn-url {
|
|||
#profile-edit-sexual-end,
|
||||
#profile-edit-politic-end,
|
||||
#profile-edit-religion-end,
|
||||
#profile-edit-keywords-end,
|
||||
#profile-edit-pubkeywords-end,
|
||||
#profile-edit-prvkeywords-end,
|
||||
#profile-edit-homepage-end,
|
||||
#profile-in-dir-break,
|
||||
#profile-in-dir-end,
|
||||
|
|
Loading…
Reference in a new issue