mirror of
https://github.com/friendica/friendica
synced 2024-12-26 19:20:16 +00:00
Merge remote branch 'upstream/master'
This commit is contained in:
commit
2e2bb5e8b0
85 changed files with 3724 additions and 2911 deletions
78
boot.php
78
boot.php
|
@ -9,9 +9,9 @@ require_once('include/nav.php');
|
|||
require_once('include/cache.php');
|
||||
|
||||
define ( 'FRIENDICA_PLATFORM', 'Friendica');
|
||||
define ( 'FRIENDICA_VERSION', '2.3.1325' );
|
||||
define ( 'FRIENDICA_VERSION', '2.3.1328' );
|
||||
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
|
||||
define ( 'DB_UPDATE_VERSION', 1139 );
|
||||
define ( 'DB_UPDATE_VERSION', 1141 );
|
||||
|
||||
define ( 'EOL', "<br />\r\n" );
|
||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||
|
@ -73,6 +73,14 @@ define ( 'HOOK_HOOK', 0);
|
|||
define ( 'HOOK_FILE', 1);
|
||||
define ( 'HOOK_FUNCTION', 2);
|
||||
|
||||
/**
|
||||
* DB update return values
|
||||
*/
|
||||
|
||||
define ( 'UPDATE_SUCCESS', 0);
|
||||
define ( 'UPDATE_FAILED', 1);
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* page/profile types
|
||||
|
@ -193,6 +201,8 @@ define ( 'ACTIVITY_REQ_FRIEND', NAMESPACE_ACTIVITY_SCHEMA . 'request-friend' );
|
|||
define ( 'ACTIVITY_UNFRIEND', NAMESPACE_ACTIVITY_SCHEMA . 'remove-friend' );
|
||||
define ( 'ACTIVITY_FOLLOW', NAMESPACE_ACTIVITY_SCHEMA . 'follow' );
|
||||
define ( 'ACTIVITY_UNFOLLOW', NAMESPACE_ACTIVITY_SCHEMA . 'stop-following' );
|
||||
define ( 'ACTIVITY_JOIN', NAMESPACE_ACTIVITY_SCHEMA . 'join' );
|
||||
|
||||
define ( 'ACTIVITY_POST', NAMESPACE_ACTIVITY_SCHEMA . 'post' );
|
||||
define ( 'ACTIVITY_UPDATE', NAMESPACE_ACTIVITY_SCHEMA . 'update' );
|
||||
define ( 'ACTIVITY_TAG', NAMESPACE_ACTIVITY_SCHEMA . 'tag' );
|
||||
|
@ -205,6 +215,7 @@ define ( 'ACTIVITY_OBJ_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'photo' );
|
|||
define ( 'ACTIVITY_OBJ_P_PHOTO', NAMESPACE_ACTIVITY_SCHEMA . 'profile-photo' );
|
||||
define ( 'ACTIVITY_OBJ_ALBUM', NAMESPACE_ACTIVITY_SCHEMA . 'photo-album' );
|
||||
define ( 'ACTIVITY_OBJ_EVENT', NAMESPACE_ACTIVITY_SCHEMA . 'event' );
|
||||
define ( 'ACTIVITY_OBJ_GROUP', NAMESPACE_ACTIVITY_SCHEMA . 'group' );
|
||||
define ( 'ACTIVITY_OBJ_TAGTERM', NAMESPACE_DFRN . '/tagterm' );
|
||||
define ( 'ACTIVITY_OBJ_PROFILE', NAMESPACE_DFRN . '/profile' );
|
||||
|
||||
|
@ -658,32 +669,29 @@ if(! function_exists('check_config')) {
|
|||
|
||||
// call the specific update
|
||||
|
||||
// global $db;
|
||||
// $db->excep(TRUE);
|
||||
// try {
|
||||
// $db->beginTransaction();
|
||||
$func = 'update_' . $x;
|
||||
$func($a);
|
||||
// $db->commit();
|
||||
// } catch(Exception $ex) {
|
||||
// $db->rollback();
|
||||
// //send the administrator an e-mail
|
||||
// $email_tpl = get_intltext_template("update_fail_eml.tpl");
|
||||
// $email_tpl = replace_macros($email_tpl, array(
|
||||
// '$sitename' => $a->config['sitename'],
|
||||
// '$siteurl' => $a->get_baseurl(),
|
||||
// '$update' => $x,
|
||||
// '$error' => $ex->getMessage()));
|
||||
// $subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
|
||||
$func = 'update_' . $x;
|
||||
$retval = $func();
|
||||
if($retval) {
|
||||
//send the administrator an e-mail
|
||||
$email_tpl = get_intltext_template("update_fail_eml.tpl");
|
||||
$email_msg = replace_macros($email_tpl, array(
|
||||
'$sitename' => $a->config['sitename'],
|
||||
'$siteurl' => $a->get_baseurl(),
|
||||
'$update' => $x,
|
||||
'$error' => sprintf( t('Update %s failed. See error logs.'), $x)
|
||||
));
|
||||
$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
|
||||
|
||||
// mail($a->config['admin_email'], $subject, $text,
|
||||
// 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||
// . 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||
// . 'Content-transfer-encoding: 8bit' );
|
||||
// //try the logger
|
||||
// logger('update failed: '.$ex->getMessage().EOL);
|
||||
// }
|
||||
// $db->excep(FALSE);
|
||||
mail($a->config['admin_email'], $subject, $email_msg,
|
||||
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
|
||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||
. 'Content-transfer-encoding: 8bit' );
|
||||
//try the logger
|
||||
logger('CRITICAL: Update Failed: '. $x);
|
||||
}
|
||||
else
|
||||
set_config('database','update_' . $x, 'success');
|
||||
|
||||
}
|
||||
}
|
||||
set_config('system','build', DB_UPDATE_VERSION);
|
||||
|
@ -725,9 +733,10 @@ if(! function_exists('check_config')) {
|
|||
foreach($installed as $i) {
|
||||
if(! in_array($i['name'],$plugins_arr)) {
|
||||
uninstall_plugin($i['name']);
|
||||
}
|
||||
else
|
||||
}
|
||||
else {
|
||||
$installed_arr[] = $i['name'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1463,16 +1472,19 @@ if(! function_exists('profile_tabs')){
|
|||
'label'=>t('Status'),
|
||||
'url' => $url,
|
||||
'sel' => ((!isset($tab)&&$a->argv[0]=='profile')?'active':''),
|
||||
'title' => t('Status Messages and Posts'),
|
||||
),
|
||||
array(
|
||||
'label' => t('Profile'),
|
||||
'url' => $url.'/?tab=profile',
|
||||
'sel' => ((isset($tab) && $tab=='profile')?'active':''),
|
||||
'title' => t('Profile Details'),
|
||||
),
|
||||
array(
|
||||
'label' => t('Photos'),
|
||||
'url' => $a->get_baseurl() . '/photos/' . $nickname,
|
||||
'sel' => ((!isset($tab)&&$a->argv[0]=='photos')?'active':''),
|
||||
'title' => t('Photo Albums'),
|
||||
),
|
||||
);
|
||||
|
||||
|
@ -1481,11 +1493,13 @@ if(! function_exists('profile_tabs')){
|
|||
'label' => t('Events'),
|
||||
'url' => $a->get_baseurl() . '/events',
|
||||
'sel' =>((!isset($tab)&&$a->argv[0]=='events')?'active':''),
|
||||
'title' => t('Events and Calendar'),
|
||||
);
|
||||
$tabs[] = array(
|
||||
'label' => t('Personal Notes'),
|
||||
'url' => $a->get_baseurl() . '/notes',
|
||||
'sel' =>((!isset($tab)&&$a->argv[0]=='notes')?'active':''),
|
||||
'title' => t('Only You Can See This'),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -1505,6 +1519,12 @@ function get_my_url() {
|
|||
return false;
|
||||
}
|
||||
|
||||
function zrl_init(&$a) {
|
||||
proc_run('php','include/gprobe.php',bin2hex(get_my_url()));
|
||||
$arr = array('zrl' => get_my_url(), 'url' => $a->cmd);
|
||||
call_hooks('zrl_init',$arr);
|
||||
}
|
||||
|
||||
function zrl($s,$force = false) {
|
||||
if(! strlen($s))
|
||||
return $s;
|
||||
|
|
|
@ -16,9 +16,11 @@ CREATE TABLE IF NOT EXISTS `addon` (
|
|||
`name` char(255) NOT NULL,
|
||||
`version` char(255) NOT NULL,
|
||||
`installed` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`hidden` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`timestamp` bigint(20) NOT NULL DEFAULT '0',
|
||||
`plugin_admin` tinyint(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `hidden` (`hidden`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
@ -1019,6 +1021,7 @@ CREATE TABLE IF NOT EXISTS `user` (
|
|||
`pwdreset` char(255) NOT NULL,
|
||||
`maxreq` int(11) NOT NULL DEFAULT '10',
|
||||
`expire` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`account_removed` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`account_expired` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`account_expires_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`expire_notification_sent` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
|
@ -1036,7 +1039,8 @@ CREATE TABLE IF NOT EXISTS `user` (
|
|||
KEY `blocked` (`blocked`),
|
||||
KEY `verified` (`verified`),
|
||||
KEY `unkmail` (`unkmail`),
|
||||
KEY `cntunkmail` (`cntunkmail`)
|
||||
KEY `cntunkmail` (`cntunkmail`),
|
||||
KEY `account_removed` (`account_removed`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
|
|
@ -51,6 +51,21 @@ function user_remove($uid) {
|
|||
|
||||
|
||||
function contact_remove($id) {
|
||||
|
||||
$r = q("select uid from contact where id = %d limit 1",
|
||||
intval($id)
|
||||
);
|
||||
if((! count($r)) || (! intval($r[0]['uid'])))
|
||||
return;
|
||||
|
||||
$archive = get_pconfig($r[0]['uid'], 'system','archive_removed_contacts');
|
||||
if($archive) {
|
||||
q("update contact set `archive` = 1, `network` = 'none', `writable` = 0 where id = %d limit 1",
|
||||
intval($id)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
q("DELETE FROM `contact` WHERE `id` = %d LIMIT 1",
|
||||
intval($id)
|
||||
);
|
||||
|
|
|
@ -380,7 +380,7 @@
|
|||
$nick = $name;
|
||||
|
||||
// Generating a random ID
|
||||
if (!array_key_exists($nick, $usercache))
|
||||
if (is_null($usercache[$nick]) or !array_key_exists($nick, $usercache))
|
||||
$usercache[$nick] = mt_rand(2000000, 2100000);
|
||||
|
||||
$ret = array(
|
||||
|
|
|
@ -75,22 +75,28 @@ class dba {
|
|||
if((! $this->db) || (! $this->connected))
|
||||
return false;
|
||||
|
||||
$this->error = '';
|
||||
|
||||
if($this->mysqli)
|
||||
$result = @$this->db->query($sql);
|
||||
else
|
||||
$result = @mysql_query($sql,$this->db);
|
||||
|
||||
if($this->mysqli) {
|
||||
if($this->db->errno)
|
||||
$this->error = $this->db->error;
|
||||
}
|
||||
elseif(mysql_errno($this->db))
|
||||
$this->error = mysql_error($this->db);
|
||||
|
||||
if(strlen($this->error)) {
|
||||
logger('dba: ' . $this->error);
|
||||
}
|
||||
|
||||
if($this->debug) {
|
||||
|
||||
$mesg = '';
|
||||
|
||||
if($this->mysqli) {
|
||||
if($this->db->errno)
|
||||
logger('dba: ' . $this->db->error);
|
||||
}
|
||||
elseif(mysql_errno($this->db))
|
||||
logger('dba: ' . mysql_error($this->db));
|
||||
|
||||
if($result === false)
|
||||
$mesg = 'false';
|
||||
elseif($result === true)
|
||||
|
@ -102,7 +108,9 @@ class dba {
|
|||
$mesg = mysql_num_rows($result) . ' results' . EOL;
|
||||
}
|
||||
|
||||
$str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . EOL;
|
||||
$str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg
|
||||
. (($this->error) ? ' error: ' . $this->error : '')
|
||||
. EOL;
|
||||
|
||||
logger('dba: ' . $str );
|
||||
}
|
||||
|
@ -114,9 +122,9 @@ class dba {
|
|||
*/
|
||||
|
||||
if($result === false) {
|
||||
logger('dba: ' . printable($sql) . ' returned false.');
|
||||
logger('dba: ' . printable($sql) . ' returned false.' . "\n" . $this->error);
|
||||
if(file_exists('dbfail.out'))
|
||||
file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n", FILE_APPEND);
|
||||
file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n" . $this->error . "\n", FILE_APPEND);
|
||||
}
|
||||
|
||||
if(($result === true) || ($result === false))
|
||||
|
|
60
include/gprobe.php
Normal file
60
include/gprobe.php
Normal file
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
|
||||
require_once("boot.php");
|
||||
require_once('include/Scrape.php');
|
||||
|
||||
function gprobe_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('include/session.php');
|
||||
require_once('include/datetime.php');
|
||||
|
||||
load_config('config');
|
||||
load_config('system');
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
load_hooks();
|
||||
|
||||
if($argc != 2)
|
||||
return;
|
||||
|
||||
$url = hex2bin($argv[1]);
|
||||
|
||||
$r = q("select * from gcontact where nurl = '%s' limit 1",
|
||||
dbesc(normalise_link($url))
|
||||
);
|
||||
|
||||
if(count($r))
|
||||
return;
|
||||
|
||||
$arr = probe_url($url);
|
||||
|
||||
if(count($arr) && x($arr,'network') && $arr['network'] === NETWORK_DFRN) {
|
||||
q("insert into `gcontact` (`name`,`url`,`nurl`,`photo`)
|
||||
values ( '%s', '%s', '%s', '%s') ",
|
||||
dbesc($arr['name']),
|
||||
dbesc($arr['url']),
|
||||
dbesc(normalise_link($arr['url'])),
|
||||
dbesc($arr['photo'])
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (array_search(__file__,get_included_files())===0){
|
||||
gprobe_run($argv,$argc);
|
||||
killme();
|
||||
}
|
|
@ -2227,10 +2227,10 @@ function local_delivery($importer,$data) {
|
|||
logger('local_delivery: received remote comment');
|
||||
$is_like = false;
|
||||
// remote reply to our post. Import and then notify everybody else.
|
||||
|
||||
$datarray = get_atom_elements($feed,$item);
|
||||
|
||||
|
||||
$r = q("SELECT `id`, `uid`, `last-child`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
$r = q("SELECT `id`, `uid`, `last-child`, `edited`, `body` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($item_id),
|
||||
intval($importer['importer_uid'])
|
||||
);
|
||||
|
@ -2266,14 +2266,22 @@ function local_delivery($importer,$data) {
|
|||
// return 0;
|
||||
// }
|
||||
|
||||
// our user with $importer['importer_uid'] is the owner
|
||||
|
||||
$own = q("select name,url,thumb from contact where uid = %d and self = 1 limit 1",
|
||||
intval($importer['importer_uid'])
|
||||
);
|
||||
|
||||
|
||||
$datarray['type'] = 'remote-comment';
|
||||
$datarray['wall'] = 1;
|
||||
$datarray['parent-uri'] = $parent_uri;
|
||||
$datarray['uid'] = $importer['importer_uid'];
|
||||
$datarray['owner-name'] = $r[0]['name'];
|
||||
$datarray['owner-link'] = $r[0]['url'];
|
||||
$datarray['owner-avatar'] = $r[0]['thumb'];
|
||||
$datarray['owner-name'] = $own[0]['name'];
|
||||
$datarray['owner-link'] = $own[0]['url'];
|
||||
$datarray['owner-avatar'] = $own[0]['thumb'];
|
||||
$datarray['contact-id'] = $importer['id'];
|
||||
|
||||
if(($datarray['verb'] === ACTIVITY_LIKE) || ($datarray['verb'] === ACTIVITY_DISLIKE)) {
|
||||
$is_like = true;
|
||||
$datarray['type'] = 'activity';
|
||||
|
@ -2290,26 +2298,34 @@ function local_delivery($importer,$data) {
|
|||
}
|
||||
|
||||
if(($datarray['verb'] === ACTIVITY_TAG) && ($datarray['object-type'] === ACTIVITY_OBJ_TAGTERM)) {
|
||||
|
||||
|
||||
|
||||
$xo = parse_xml_string($datarray['object'],false);
|
||||
$xt = parse_xml_string($datarray['target'],false);
|
||||
|
||||
if(($xt->type == ACTIVITY_OBJ_NOTE) && ($xt->id == $r[0]['uri'])) {
|
||||
if(($xt->type == ACTIVITY_OBJ_NOTE) && ($xt->id)) {
|
||||
|
||||
// fetch the parent item
|
||||
|
||||
$tagp = q("select * from item where uri = '%s' and uid = %d limit 1",
|
||||
dbesc($xt->id),
|
||||
intval($importer['importer_uid'])
|
||||
);
|
||||
if(! count($tagp))
|
||||
continue;
|
||||
|
||||
// extract tag, if not duplicate, and this user allows tags, add to parent item
|
||||
|
||||
if($xo->id && $xo->content) {
|
||||
$newtag = '#[url=' . $xo->id . ']'. $xo->content . '[/url]';
|
||||
|
||||
if(! (stristr($r[0]['tag'],$newtag))) {
|
||||
if(! (stristr($tagp[0]['tag'],$newtag))) {
|
||||
$i = q("SELECT `blocktags` FROM `user` where `uid` = %d LIMIT 1",
|
||||
intval($importer['importer_uid'])
|
||||
);
|
||||
if(count($i) && ! ($i[0]['blocktags'])) {
|
||||
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
|
||||
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . $newtag),
|
||||
intval($r[0]['id'])
|
||||
if(count($i) && ! intval($i[0]['blocktags'])) {
|
||||
q("UPDATE item SET tag = '%s', `edited` = '%s' WHERE id = %d LIMIT 1",
|
||||
dbesc($tagp[0]['tag'] . (strlen($tagp[0]['tag']) ? ',' : '') . $newtag),
|
||||
intval($tagp[0]['id']),
|
||||
dbesc(datetime_convert())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
519
include/onepoll.php
Normal file
519
include/onepoll.php
Normal file
|
@ -0,0 +1,519 @@
|
|||
<?php
|
||||
|
||||
require_once("boot.php");
|
||||
|
||||
function onepoll_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('include/session.php');
|
||||
require_once('include/datetime.php');
|
||||
require_once('library/simplepie/simplepie.inc');
|
||||
require_once('include/items.php');
|
||||
require_once('include/Contact.php');
|
||||
require_once('include/email.php');
|
||||
require_once('include/socgraph.php');
|
||||
require_once('include/pidfile.php');
|
||||
|
||||
load_config('config');
|
||||
load_config('system');
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
load_hooks();
|
||||
|
||||
logger('onepoll: start');
|
||||
|
||||
$abandon_days = intval(get_config('system','account_abandon_days'));
|
||||
if($abandon_days < 1)
|
||||
$abandon_days = 0;
|
||||
|
||||
|
||||
$manual_id = 0;
|
||||
$generation = 0;
|
||||
$hub_update = false;
|
||||
$force = false;
|
||||
$restart = false;
|
||||
|
||||
if(($argc > 1) && (intval($argv[1])))
|
||||
$contact_id = intval($argv[1]);
|
||||
|
||||
if(! $contact_id) {
|
||||
logger('onepoll: no contact');
|
||||
return;
|
||||
}
|
||||
|
||||
$d = datetime_convert();
|
||||
|
||||
// Only poll from those with suitable relationships,
|
||||
// and which have a polling address and ignore Diaspora since
|
||||
// we are unable to match those posts with a Diaspora GUID and prevent duplicates.
|
||||
|
||||
$abandon_sql = (($abandon_days)
|
||||
? sprintf(" AND `user`.`login_date` > UTC_TIMESTAMP() - INTERVAL %d DAY ", intval($abandon_days))
|
||||
: ''
|
||||
);
|
||||
|
||||
$contacts = q("SELECT `contact`.* FROM `contact`
|
||||
WHERE ( `rel` = %d OR `rel` = %d ) AND `poll` != ''
|
||||
AND NOT `network` IN ( '%s', '%s' )
|
||||
AND `contact`.`id` = %d
|
||||
AND `self` = 0 AND `contact`.`blocked` = 0 AND `contact`.`readonly` = 0
|
||||
AND `contact`.`archive` = 0 LIMIT 1",
|
||||
intval(CONTACT_IS_SHARING),
|
||||
intval(CONTACT_IS_FRIEND),
|
||||
dbesc(NETWORK_DIASPORA),
|
||||
dbesc(NETWORK_FACEBOOK),
|
||||
intval($contact_id)
|
||||
);
|
||||
|
||||
if(! count($contacts)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$contact = $contacts[0];
|
||||
|
||||
|
||||
$xml = false;
|
||||
|
||||
$t = $contact['last-update'];
|
||||
|
||||
if($contact['subhub']) {
|
||||
$interval = get_config('system','pushpoll_frequency');
|
||||
$contact['priority'] = (($interval !== false) ? intval($interval) : 3);
|
||||
$hub_update = false;
|
||||
|
||||
if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))
|
||||
$hub_update = true;
|
||||
}
|
||||
else
|
||||
$hub_update = false;
|
||||
|
||||
|
||||
$importer_uid = $contact['uid'];
|
||||
|
||||
$r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `contact`.`uid` = `user`.`uid` WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
if(! count($r))
|
||||
return;
|
||||
|
||||
$importer = $r[0];
|
||||
|
||||
logger("onepoll: poll: ({$contact['id']}) IMPORTER: {$importer['name']}, CONTACT: {$contact['name']}");
|
||||
|
||||
$last_update = (($contact['last-update'] === '0000-00-00 00:00:00')
|
||||
? datetime_convert('UTC','UTC','now - 7 days', ATOM_TIME)
|
||||
: datetime_convert('UTC','UTC',$contact['last-update'], ATOM_TIME)
|
||||
);
|
||||
|
||||
if($contact['network'] === NETWORK_DFRN) {
|
||||
|
||||
$idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']);
|
||||
if(intval($contact['duplex']) && $contact['dfrn-id'])
|
||||
$idtosend = '0:' . $orig_id;
|
||||
if(intval($contact['duplex']) && $contact['issued-id'])
|
||||
$idtosend = '1:' . $orig_id;
|
||||
|
||||
// they have permission to write to us. We already filtered this in the contact query.
|
||||
$perm = 'rw';
|
||||
|
||||
$url = $contact['poll'] . '?dfrn_id=' . $idtosend
|
||||
. '&dfrn_version=' . DFRN_PROTOCOL_VERSION
|
||||
. '&type=data&last_update=' . $last_update
|
||||
. '&perm=' . $perm ;
|
||||
|
||||
$handshake_xml = fetch_url($url);
|
||||
|
||||
logger('onepoll: handshake with url ' . $url . ' returns xml: ' . $handshake_xml, LOGGER_DATA);
|
||||
|
||||
|
||||
if(! $handshake_xml) {
|
||||
logger("poller: $url appears to be dead - marking for death ");
|
||||
// dead connection - might be a transient event, or this might
|
||||
// mean the software was uninstalled or the domain expired.
|
||||
// Will keep trying for one month.
|
||||
mark_for_death($contact);
|
||||
|
||||
// set the last-update so we don't keep polling
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact['id'])
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if(! strstr($handshake_xml,'<?xml')) {
|
||||
logger('poller: response from ' . $url . ' did not contain XML.');
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact['id'])
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$res = parse_xml_string($handshake_xml);
|
||||
|
||||
if(intval($res->status) == 1) {
|
||||
logger("poller: $url replied status 1 - marking for death ");
|
||||
|
||||
// we may not be friends anymore. Will keep trying for one month.
|
||||
// set the last-update so we don't keep polling
|
||||
|
||||
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact['id'])
|
||||
);
|
||||
mark_for_death($contact);
|
||||
}
|
||||
else {
|
||||
if($contact['term-date'] != '0000-00-00 00:00:00') {
|
||||
logger("poller: $url back from the dead - removing mark for death");
|
||||
unmark_for_death($contact);
|
||||
}
|
||||
}
|
||||
|
||||
if((intval($res->status) != 0) || (! strlen($res->challenge)) || (! strlen($res->dfrn_id)))
|
||||
return;
|
||||
|
||||
if(((float) $res->dfrn_version > 2.21) && ($contact['poco'] == '')) {
|
||||
q("update contact set poco = '%s' where id = %d limit 1",
|
||||
dbesc(str_replace('/profile/','/poco/', $contact['url'])),
|
||||
intval($contact['id'])
|
||||
);
|
||||
}
|
||||
|
||||
$postvars = array();
|
||||
|
||||
$sent_dfrn_id = hex2bin((string) $res->dfrn_id);
|
||||
$challenge = hex2bin((string) $res->challenge);
|
||||
|
||||
$final_dfrn_id = '';
|
||||
|
||||
if(($contact['duplex']) && strlen($contact['prvkey'])) {
|
||||
openssl_private_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['prvkey']);
|
||||
openssl_private_decrypt($challenge,$postvars['challenge'],$contact['prvkey']);
|
||||
}
|
||||
else {
|
||||
openssl_public_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['pubkey']);
|
||||
openssl_public_decrypt($challenge,$postvars['challenge'],$contact['pubkey']);
|
||||
}
|
||||
|
||||
$final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
|
||||
|
||||
if(strpos($final_dfrn_id,':') == 1)
|
||||
$final_dfrn_id = substr($final_dfrn_id,2);
|
||||
|
||||
if($final_dfrn_id != $orig_id) {
|
||||
logger('poller: ID did not decode: ' . $contact['id'] . ' orig: ' . $orig_id . ' final: ' . $final_dfrn_id);
|
||||
// did not decode properly - cannot trust this site
|
||||
return;
|
||||
}
|
||||
|
||||
$postvars['dfrn_id'] = $idtosend;
|
||||
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
|
||||
$postvars['perm'] = 'rw';
|
||||
|
||||
$xml = post_url($contact['poll'],$postvars);
|
||||
|
||||
}
|
||||
elseif(($contact['network'] === NETWORK_OSTATUS)
|
||||
|| ($contact['network'] === NETWORK_DIASPORA)
|
||||
|| ($contact['network'] === NETWORK_FEED) ) {
|
||||
|
||||
// Upgrading DB fields from an older Friendica version
|
||||
// Will only do this once per notify-enabled OStatus contact
|
||||
// or if relationship changes
|
||||
|
||||
$stat_writeable = ((($contact['notify']) && ($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['rel'] == CONTACT_IS_FRIEND)) ? 1 : 0);
|
||||
|
||||
if($stat_writeable != $contact['writable']) {
|
||||
q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d LIMIT 1",
|
||||
intval($stat_writeable),
|
||||
intval($contact['id'])
|
||||
);
|
||||
}
|
||||
|
||||
// Are we allowed to import from this person?
|
||||
|
||||
if($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['blocked'] || $contact['readonly'])
|
||||
return;
|
||||
|
||||
$xml = fetch_url($contact['poll']);
|
||||
}
|
||||
elseif($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) {
|
||||
|
||||
logger("onepoll: mail: Fetching", LOGGER_DEBUG);
|
||||
|
||||
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
||||
if($mail_disabled)
|
||||
return;
|
||||
|
||||
logger("onepoll: Mail: Enabled", LOGGER_DEBUG);
|
||||
|
||||
$mbox = null;
|
||||
$x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
$mailconf = q("SELECT * FROM `mailacct` WHERE `server` != '' AND `uid` = %d LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
if(count($x) && count($mailconf)) {
|
||||
$mailbox = construct_mailbox_name($mailconf[0]);
|
||||
$password = '';
|
||||
openssl_private_decrypt(hex2bin($mailconf[0]['pass']),$password,$x[0]['prvkey']);
|
||||
$mbox = email_connect($mailbox,$mailconf[0]['user'],$password);
|
||||
unset($password);
|
||||
logger("Mail: Connect");
|
||||
if($mbox) {
|
||||
q("UPDATE `mailacct` SET `last_check` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($mailconf[0]['id']),
|
||||
intval($importer_uid)
|
||||
);
|
||||
}
|
||||
}
|
||||
if($mbox) {
|
||||
|
||||
$msgs = email_poll($mbox,$contact['addr']);
|
||||
|
||||
if(count($msgs)) {
|
||||
logger("Mail: Parsing ".count($msgs)." mails.", LOGGER_DEBUG);
|
||||
|
||||
foreach($msgs as $msg_uid) {
|
||||
logger("Mail: Parsing mail ".$msg_uid, LOGGER_DATA);
|
||||
|
||||
$datarray = array();
|
||||
$meta = email_msg_meta($mbox,$msg_uid);
|
||||
$headers = email_msg_headers($mbox,$msg_uid);
|
||||
|
||||
// look for a 'references' header and try and match with a parent item we have locally.
|
||||
|
||||
$raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : '');
|
||||
$datarray['uri'] = msgid2iri(trim($meta->message_id,'<>'));
|
||||
|
||||
if($raw_refs) {
|
||||
$refs_arr = explode(' ', $raw_refs);
|
||||
if(count($refs_arr)) {
|
||||
for($x = 0; $x < count($refs_arr); $x ++)
|
||||
$refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
|
||||
}
|
||||
$qstr = implode(',',$refs_arr);
|
||||
$r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
if(count($r))
|
||||
$datarray['parent-uri'] = $r[0]['uri'];
|
||||
}
|
||||
|
||||
|
||||
if(! x($datarray,'parent-uri'))
|
||||
$datarray['parent-uri'] = $datarray['uri'];
|
||||
|
||||
// Have we seen it before?
|
||||
$r = q("SELECT * FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
|
||||
intval($importer_uid),
|
||||
dbesc($datarray['uri'])
|
||||
);
|
||||
|
||||
if(count($r)) {
|
||||
// logger("Mail: Seen before ".$msg_uid);
|
||||
if($meta->deleted && ! $r[0]['deleted']) {
|
||||
q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($r[0]['id'])
|
||||
);
|
||||
}
|
||||
switch ($mailconf[0]['action']) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
logger("Mail: Deleting ".$msg_uid);
|
||||
imap_delete($mbox, $msg_uid, FT_UID);
|
||||
break;
|
||||
case 2:
|
||||
logger("Mail: Mark as seen ".$msg_uid);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
break;
|
||||
case 3:
|
||||
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
if ($mailconf[0]['movetofolder'] != "")
|
||||
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// Decoding the header
|
||||
$subject = imap_mime_header_decode($meta->subject);
|
||||
$datarray['title'] = "";
|
||||
foreach($subject as $subpart)
|
||||
if ($subpart->charset != "default")
|
||||
$datarray['title'] .= iconv($subpart->charset, 'UTF-8//IGNORE', $subpart->text);
|
||||
else
|
||||
$datarray['title'] .= $subpart->text;
|
||||
|
||||
$datarray['title'] = notags(trim($datarray['title']));
|
||||
|
||||
//$datarray['title'] = notags(trim($meta->subject));
|
||||
$datarray['created'] = datetime_convert('UTC','UTC',$meta->date);
|
||||
|
||||
// Is it reply?
|
||||
$reply = ((substr(strtolower($datarray['title']), 0, 3) == "re:") or
|
||||
(substr(strtolower($datarray['title']), 0, 3) == "re-") or
|
||||
(raw_refs != ""));
|
||||
|
||||
$r = email_get_msg($mbox,$msg_uid, $reply);
|
||||
if(! $r) {
|
||||
logger("Mail: can't fetch msg ".$msg_uid);
|
||||
continue;
|
||||
}
|
||||
$datarray['body'] = escape_tags($r['body']);
|
||||
|
||||
logger("Mail: Importing ".$msg_uid);
|
||||
|
||||
// some mailing lists have the original author as 'from' - add this sender info to msg body.
|
||||
// todo: adding a gravatar for the original author would be cool
|
||||
|
||||
if(! stristr($meta->from,$contact['addr'])) {
|
||||
$from = imap_mime_header_decode($meta->from);
|
||||
$fromdecoded = "";
|
||||
foreach($from as $frompart)
|
||||
if ($frompart->charset != "default")
|
||||
$fromdecoded .= iconv($frompart->charset, 'UTF-8//IGNORE', $frompart->text);
|
||||
else
|
||||
$fromdecoded .= $frompart->text;
|
||||
|
||||
$datarray['body'] = "[b]".t('From: ') . escape_tags($fromdecoded) . "[/b]\n\n" . $datarray['body'];
|
||||
}
|
||||
|
||||
$datarray['uid'] = $importer_uid;
|
||||
$datarray['contact-id'] = $contact['id'];
|
||||
if($datarray['parent-uri'] === $datarray['uri'])
|
||||
$datarray['private'] = 1;
|
||||
if(($contact['network'] === NETWORK_MAIL) && (! get_pconfig($importer_uid,'system','allow_public_email_replies'))) {
|
||||
$datarray['private'] = 1;
|
||||
$datarray['allow_cid'] = '<' . $contact['id'] . '>';
|
||||
}
|
||||
$datarray['author-name'] = $contact['name'];
|
||||
$datarray['author-link'] = 'mailbox';
|
||||
$datarray['author-avatar'] = $contact['photo'];
|
||||
|
||||
$stored_item = item_store($datarray);
|
||||
q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d",
|
||||
dbesc($datarray['parent-uri']),
|
||||
intval($importer_uid)
|
||||
);
|
||||
q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
|
||||
intval($stored_item)
|
||||
);
|
||||
switch ($mailconf[0]['action']) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
logger("Mail: Deleting ".$msg_uid);
|
||||
imap_delete($mbox, $msg_uid, FT_UID);
|
||||
break;
|
||||
case 2:
|
||||
logger("Mail: Mark as seen ".$msg_uid);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
break;
|
||||
case 3:
|
||||
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
if ($mailconf[0]['movetofolder'] != "")
|
||||
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
imap_close($mbox);
|
||||
}
|
||||
}
|
||||
elseif($contact['network'] === NETWORK_FACEBOOK) {
|
||||
// This is picked up by the Facebook plugin on a cron hook.
|
||||
// Ignored here.
|
||||
}
|
||||
|
||||
if($xml) {
|
||||
logger('poller: received xml : ' . $xml, LOGGER_DATA);
|
||||
if(! strstr($xml,'<?xml')) {
|
||||
logger('poller: post_handshake: response from ' . $url . ' did not contain XML.');
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact['id'])
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
consume_feed($xml,$importer,$contact,$hub,1,1);
|
||||
|
||||
|
||||
// do it twice. Ensures that children of parents which may be later in the stream aren't tossed
|
||||
|
||||
consume_feed($xml,$importer,$contact,$hub,1,2);
|
||||
|
||||
$hubmode = 'subscribe';
|
||||
if($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly'])
|
||||
$hubmode = 'unsubscribe';
|
||||
|
||||
if((strlen($hub)) && ($hub_update) && ($contact['rel'] != CONTACT_IS_FOLLOWER)) {
|
||||
logger('poller: hub ' . $hubmode . ' : ' . $hub . ' contact name : ' . $contact['name'] . ' local user : ' . $importer['name']);
|
||||
$hubs = explode(',', $hub);
|
||||
if(count($hubs)) {
|
||||
foreach($hubs as $h) {
|
||||
$h = trim($h);
|
||||
if(! strlen($h))
|
||||
continue;
|
||||
subscribe_to_hub($h,$importer,$contact,$hubmode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$updated = datetime_convert();
|
||||
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s', `success_update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc($updated),
|
||||
dbesc($updated),
|
||||
intval($contact['id'])
|
||||
);
|
||||
|
||||
|
||||
// load current friends if possible.
|
||||
|
||||
if($contact['poco']) {
|
||||
$r = q("SELECT count(*) as total from glink
|
||||
where `cid` = %d and updated > UTC_TIMESTAMP() - INTERVAL 1 DAY",
|
||||
intval($contact['id'])
|
||||
);
|
||||
}
|
||||
if(count($r)) {
|
||||
if(! $r[0]['total']) {
|
||||
poco_load($contact['id'],$importer_uid,$contact['poco']);
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (array_search(__file__,get_included_files())===0){
|
||||
onepoll_run($argv,$argc);
|
||||
killme();
|
||||
}
|
|
@ -5,7 +5,7 @@
|
|||
if (! function_exists('uninstall_plugin')){
|
||||
function uninstall_plugin($plugin){
|
||||
logger("Addons: uninstalling " . $plugin);
|
||||
q("DELETE FROM `addon` WHERE `name` = '%s' LIMIT 1",
|
||||
q("DELETE FROM `addon` WHERE `name` = '%s' ",
|
||||
dbesc($plugin)
|
||||
);
|
||||
|
||||
|
@ -37,6 +37,16 @@ function install_plugin($plugin) {
|
|||
intval($t),
|
||||
$plugin_admin
|
||||
);
|
||||
|
||||
// we can add the following with the previous SQL
|
||||
// once most site tables have been updated.
|
||||
// This way the system won't fall over dead during the update.
|
||||
|
||||
if(file_exists('addon/' . $plugin . '/.hidden')) {
|
||||
q("update addon set hidden = 1 where name = '%s' limit 1",
|
||||
dbesc($plugin)
|
||||
);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -113,6 +113,8 @@ function poller_run($argv, $argc){
|
|||
$force = true;
|
||||
}
|
||||
|
||||
$interval = ((get_config('system','delivery_interval') === false) ? 3 : intval(get_config('system','delivery_interval')));
|
||||
|
||||
$sql_extra = (($manual_id) ? " AND `id` = $manual_id " : "");
|
||||
|
||||
reload_plugins();
|
||||
|
@ -136,6 +138,7 @@ function poller_run($argv, $argc){
|
|||
AND NOT `network` IN ( '%s', '%s' )
|
||||
$sql_extra
|
||||
AND `self` = 0 AND `contact`.`blocked` = 0 AND `contact`.`readonly` = 0
|
||||
AND `contact`.`archive` = 0
|
||||
AND `user`.`account_expired` = 0 $abandon_sql ORDER BY RAND()",
|
||||
intval(CONTACT_IS_SHARING),
|
||||
intval(CONTACT_IS_FRIEND),
|
||||
|
@ -224,440 +227,12 @@ function poller_run($argv, $argc){
|
|||
continue;
|
||||
}
|
||||
|
||||
// Check to see if we are running out of memory - if so spawn a new process and kill this one
|
||||
|
||||
$avail_memory = return_bytes(ini_get('memory_limit'));
|
||||
$memused = memory_get_peak_usage(true);
|
||||
if(intval($avail_memory)) {
|
||||
if(($memused / $avail_memory) > 0.95) {
|
||||
if($generation + 1 > 10) {
|
||||
logger('poller: maximum number of spawns exceeded. Terminating.');
|
||||
killme();
|
||||
}
|
||||
logger('poller: memory exceeded. ' . $memused . ' bytes used. Spawning new poll.');
|
||||
proc_run('php', 'include/poller.php', 'restart', (string) $generation + 1);
|
||||
killme();
|
||||
}
|
||||
}
|
||||
|
||||
$importer_uid = $contact['uid'];
|
||||
|
||||
$r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `contact`.`uid` = `user`.`uid` WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
if(! count($r))
|
||||
continue;
|
||||
|
||||
$importer = $r[0];
|
||||
|
||||
logger("poller: poll: ({$contact['id']}) IMPORTER: {$importer['name']}, CONTACT: {$contact['name']}");
|
||||
|
||||
$last_update = (($contact['last-update'] === '0000-00-00 00:00:00')
|
||||
? datetime_convert('UTC','UTC','now - 30 days', ATOM_TIME)
|
||||
: datetime_convert('UTC','UTC',$contact['last-update'], ATOM_TIME)
|
||||
);
|
||||
|
||||
if($contact['network'] === NETWORK_DFRN) {
|
||||
|
||||
$idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']);
|
||||
|
||||
if(intval($contact['duplex']) && $contact['dfrn-id'])
|
||||
$idtosend = '0:' . $orig_id;
|
||||
if(intval($contact['duplex']) && $contact['issued-id'])
|
||||
$idtosend = '1:' . $orig_id;
|
||||
|
||||
// they have permission to write to us. We already filtered this in the contact query.
|
||||
$perm = 'rw';
|
||||
|
||||
$url = $contact['poll'] . '?dfrn_id=' . $idtosend
|
||||
. '&dfrn_version=' . DFRN_PROTOCOL_VERSION
|
||||
. '&type=data&last_update=' . $last_update
|
||||
. '&perm=' . $perm ;
|
||||
|
||||
$handshake_xml = fetch_url($url);
|
||||
|
||||
logger('poller: handshake with url ' . $url . ' returns xml: ' . $handshake_xml, LOGGER_DATA);
|
||||
|
||||
|
||||
if(! $handshake_xml) {
|
||||
logger("poller: $url appears to be dead - marking for death ");
|
||||
// dead connection - might be a transient event, or this might
|
||||
// mean the software was uninstalled or the domain expired.
|
||||
// Will keep trying for one month.
|
||||
mark_for_death($contact);
|
||||
|
||||
// set the last-update so we don't keep polling
|
||||
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact['id'])
|
||||
);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if(! strstr($handshake_xml,'<?xml')) {
|
||||
logger('poller: response from ' . $url . ' did not contain XML.');
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact['id'])
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$res = parse_xml_string($handshake_xml);
|
||||
|
||||
if(intval($res->status) == 1) {
|
||||
logger("poller: $url replied status 1 - marking for death ");
|
||||
|
||||
// we may not be friends anymore. Will keep trying for one month.
|
||||
// set the last-update so we don't keep polling
|
||||
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact['id'])
|
||||
);
|
||||
|
||||
mark_for_death($contact);
|
||||
}
|
||||
else {
|
||||
if($contact['term-date'] != '0000-00-00 00:00:00') {
|
||||
logger("poller: $url back from the dead - removing mark for death");
|
||||
unmark_for_death($contact);
|
||||
}
|
||||
}
|
||||
|
||||
if((intval($res->status) != 0) || (! strlen($res->challenge)) || (! strlen($res->dfrn_id)))
|
||||
continue;
|
||||
|
||||
if(((float) $res->dfrn_version > 2.21) && ($contact['poco'] == '')) {
|
||||
q("update contact set poco = '%s' where id = %d limit 1",
|
||||
dbesc(str_replace('/profile/','/poco/', $contact['url'])),
|
||||
intval($contact['id'])
|
||||
);
|
||||
}
|
||||
|
||||
$postvars = array();
|
||||
|
||||
$sent_dfrn_id = hex2bin((string) $res->dfrn_id);
|
||||
$challenge = hex2bin((string) $res->challenge);
|
||||
|
||||
$final_dfrn_id = '';
|
||||
|
||||
if(($contact['duplex']) && strlen($contact['prvkey'])) {
|
||||
openssl_private_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['prvkey']);
|
||||
openssl_private_decrypt($challenge,$postvars['challenge'],$contact['prvkey']);
|
||||
}
|
||||
else {
|
||||
openssl_public_decrypt($sent_dfrn_id,$final_dfrn_id,$contact['pubkey']);
|
||||
openssl_public_decrypt($challenge,$postvars['challenge'],$contact['pubkey']);
|
||||
}
|
||||
|
||||
$final_dfrn_id = substr($final_dfrn_id, 0, strpos($final_dfrn_id, '.'));
|
||||
|
||||
if(strpos($final_dfrn_id,':') == 1)
|
||||
$final_dfrn_id = substr($final_dfrn_id,2);
|
||||
|
||||
if($final_dfrn_id != $orig_id) {
|
||||
logger('poller: ID did not decode: ' . $contact['id'] . ' orig: ' . $orig_id . ' final: ' . $final_dfrn_id);
|
||||
// did not decode properly - cannot trust this site
|
||||
continue;
|
||||
}
|
||||
|
||||
$postvars['dfrn_id'] = $idtosend;
|
||||
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
|
||||
$postvars['perm'] = 'rw';
|
||||
|
||||
$xml = post_url($contact['poll'],$postvars);
|
||||
}
|
||||
elseif(($contact['network'] === NETWORK_OSTATUS)
|
||||
|| ($contact['network'] === NETWORK_DIASPORA)
|
||||
|| ($contact['network'] === NETWORK_FEED) ) {
|
||||
|
||||
// Upgrading DB fields from an older Friendica version
|
||||
// Will only do this once per notify-enabled OStatus contact
|
||||
// or if relationship changes
|
||||
|
||||
$stat_writeable = ((($contact['notify']) && ($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['rel'] == CONTACT_IS_FRIEND)) ? 1 : 0);
|
||||
|
||||
if($stat_writeable != $contact['writable']) {
|
||||
q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d LIMIT 1",
|
||||
intval($stat_writeable),
|
||||
intval($contact['id'])
|
||||
);
|
||||
}
|
||||
|
||||
// Are we allowed to import from this person?
|
||||
|
||||
if($contact['rel'] == CONTACT_IS_FOLLOWER || $contact['blocked'] || $contact['readonly'])
|
||||
continue;
|
||||
|
||||
$xml = fetch_url($contact['poll']);
|
||||
}
|
||||
elseif($contact['network'] === NETWORK_MAIL || $contact['network'] === NETWORK_MAIL2) {
|
||||
|
||||
logger("Mail: Fetching");
|
||||
|
||||
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
|
||||
if($mail_disabled)
|
||||
continue;
|
||||
|
||||
logger("Mail: Enabled");
|
||||
|
||||
$mbox = null;
|
||||
$x = q("SELECT `prvkey` FROM `user` WHERE `uid` = %d LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
$mailconf = q("SELECT * FROM `mailacct` WHERE `server` != '' AND `uid` = %d LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
if(count($x) && count($mailconf)) {
|
||||
$mailbox = construct_mailbox_name($mailconf[0]);
|
||||
$password = '';
|
||||
openssl_private_decrypt(hex2bin($mailconf[0]['pass']),$password,$x[0]['prvkey']);
|
||||
$mbox = email_connect($mailbox,$mailconf[0]['user'],$password);
|
||||
unset($password);
|
||||
logger("Mail: Connect");
|
||||
if($mbox) {
|
||||
q("UPDATE `mailacct` SET `last_check` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($mailconf[0]['id']),
|
||||
intval($importer_uid)
|
||||
);
|
||||
}
|
||||
}
|
||||
if($mbox) {
|
||||
logger("Mail: mbox");
|
||||
|
||||
$msgs = email_poll($mbox,$contact['addr']);
|
||||
|
||||
if(count($msgs)) {
|
||||
logger("Mail: Parsing ".count($msgs)." mails.");
|
||||
|
||||
foreach($msgs as $msg_uid) {
|
||||
logger("Mail: Parsing mail ".$msg_uid);
|
||||
|
||||
$datarray = array();
|
||||
$meta = email_msg_meta($mbox,$msg_uid);
|
||||
$headers = email_msg_headers($mbox,$msg_uid);
|
||||
|
||||
// look for a 'references' header and try and match with a parent item we have locally.
|
||||
|
||||
$raw_refs = ((x($headers,'references')) ? str_replace("\t",'',$headers['references']) : '');
|
||||
$datarray['uri'] = msgid2iri(trim($meta->message_id,'<>'));
|
||||
|
||||
if($raw_refs) {
|
||||
$refs_arr = explode(' ', $raw_refs);
|
||||
if(count($refs_arr)) {
|
||||
for($x = 0; $x < count($refs_arr); $x ++)
|
||||
$refs_arr[$x] = "'" . msgid2iri(str_replace(array('<','>',' '),array('','',''),dbesc($refs_arr[$x]))) . "'";
|
||||
}
|
||||
$qstr = implode(',',$refs_arr);
|
||||
$r = q("SELECT `uri` , `parent-uri` FROM `item` WHERE `uri` IN ( $qstr ) AND `uid` = %d LIMIT 1",
|
||||
intval($importer_uid)
|
||||
);
|
||||
if(count($r))
|
||||
$datarray['parent-uri'] = $r[0]['uri'];
|
||||
}
|
||||
|
||||
|
||||
if(! x($datarray,'parent-uri'))
|
||||
$datarray['parent-uri'] = $datarray['uri'];
|
||||
|
||||
// Have we seen it before?
|
||||
$r = q("SELECT * FROM `item` WHERE `uid` = %d AND `uri` = '%s' LIMIT 1",
|
||||
intval($importer_uid),
|
||||
dbesc($datarray['uri'])
|
||||
);
|
||||
|
||||
if(count($r)) {
|
||||
logger("Mail: Seen before ".$msg_uid);
|
||||
if($meta->deleted && ! $r[0]['deleted']) {
|
||||
q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($r[0]['id'])
|
||||
);
|
||||
}
|
||||
switch ($mailconf[0]['action']) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
logger("Mail: Deleting ".$msg_uid);
|
||||
imap_delete($mbox, $msg_uid, FT_UID);
|
||||
break;
|
||||
case 2:
|
||||
logger("Mail: Mark as seen ".$msg_uid);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
break;
|
||||
case 3:
|
||||
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
if ($mailconf[0]['movetofolder'] != "")
|
||||
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// Decoding the header
|
||||
$subject = imap_mime_header_decode($meta->subject);
|
||||
$datarray['title'] = "";
|
||||
foreach($subject as $subpart)
|
||||
if ($subpart->charset != "default")
|
||||
$datarray['title'] .= iconv($subpart->charset, 'UTF-8//IGNORE', $subpart->text);
|
||||
else
|
||||
$datarray['title'] .= $subpart->text;
|
||||
|
||||
$datarray['title'] = notags(trim($datarray['title']));
|
||||
|
||||
//$datarray['title'] = notags(trim($meta->subject));
|
||||
$datarray['created'] = datetime_convert('UTC','UTC',$meta->date);
|
||||
|
||||
// Is it reply?
|
||||
$reply = ((substr(strtolower($datarray['title']), 0, 3) == "re:") or
|
||||
(substr(strtolower($datarray['title']), 0, 3) == "re-") or
|
||||
(raw_refs != ""));
|
||||
|
||||
$r = email_get_msg($mbox,$msg_uid, $reply);
|
||||
if(! $r) {
|
||||
logger("Mail: can't fetch msg ".$msg_uid);
|
||||
continue;
|
||||
}
|
||||
$datarray['body'] = escape_tags($r['body']);
|
||||
|
||||
logger("Mail: Importing ".$msg_uid);
|
||||
|
||||
// some mailing lists have the original author as 'from' - add this sender info to msg body.
|
||||
// todo: adding a gravatar for the original author would be cool
|
||||
|
||||
if(! stristr($meta->from,$contact['addr'])) {
|
||||
$from = imap_mime_header_decode($meta->from);
|
||||
$fromdecoded = "";
|
||||
foreach($from as $frompart)
|
||||
if ($frompart->charset != "default")
|
||||
$fromdecoded .= iconv($frompart->charset, 'UTF-8//IGNORE', $frompart->text);
|
||||
else
|
||||
$fromdecoded .= $frompart->text;
|
||||
|
||||
$datarray['body'] = "[b]".t('From: ') . escape_tags($fromdecoded) . "[/b]\n\n" . $datarray['body'];
|
||||
}
|
||||
|
||||
$datarray['uid'] = $importer_uid;
|
||||
$datarray['contact-id'] = $contact['id'];
|
||||
if($datarray['parent-uri'] === $datarray['uri'])
|
||||
$datarray['private'] = 1;
|
||||
if(($contact['network'] === NETWORK_MAIL) && (! get_pconfig($importer_uid,'system','allow_public_email_replies'))) {
|
||||
$datarray['private'] = 1;
|
||||
$datarray['allow_cid'] = '<' . $contact['id'] . '>';
|
||||
}
|
||||
$datarray['author-name'] = $contact['name'];
|
||||
$datarray['author-link'] = 'mailbox';
|
||||
$datarray['author-avatar'] = $contact['photo'];
|
||||
|
||||
$stored_item = item_store($datarray);
|
||||
q("UPDATE `item` SET `last-child` = 0 WHERE `parent-uri` = '%s' AND `uid` = %d",
|
||||
dbesc($datarray['parent-uri']),
|
||||
intval($importer_uid)
|
||||
);
|
||||
q("UPDATE `item` SET `last-child` = 1 WHERE `id` = %d LIMIT 1",
|
||||
intval($stored_item)
|
||||
);
|
||||
switch ($mailconf[0]['action']) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
logger("Mail: Deleting ".$msg_uid);
|
||||
imap_delete($mbox, $msg_uid, FT_UID);
|
||||
break;
|
||||
case 2:
|
||||
logger("Mail: Mark as seen ".$msg_uid);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
break;
|
||||
case 3:
|
||||
logger("Mail: Moving ".$msg_uid." to ".$mailconf[0]['movetofolder']);
|
||||
imap_setflag_full($mbox, $msg_uid, "\\Seen", ST_UID);
|
||||
if ($mailconf[0]['movetofolder'] != "")
|
||||
imap_mail_move($mbox, $msg_uid, $mailconf[0]['movetofolder'], FT_UID);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
imap_close($mbox);
|
||||
}
|
||||
}
|
||||
elseif($contact['network'] === NETWORK_FACEBOOK) {
|
||||
// This is picked up by the Facebook plugin on a cron hook.
|
||||
// Ignored here.
|
||||
}
|
||||
|
||||
if($xml) {
|
||||
logger('poller: received xml : ' . $xml, LOGGER_DATA);
|
||||
|
||||
if(! strstr($xml,'<?xml')) {
|
||||
logger('poller: post_handshake: response from ' . $url . ' did not contain XML.');
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc(datetime_convert()),
|
||||
intval($contact['id'])
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
consume_feed($xml,$importer,$contact,$hub,1,1);
|
||||
|
||||
// do it twice. Ensures that children of parents which may be later in the stream aren't tossed
|
||||
|
||||
consume_feed($xml,$importer,$contact,$hub,1,2);
|
||||
|
||||
$hubmode = 'subscribe';
|
||||
if($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly'])
|
||||
$hubmode = 'unsubscribe';
|
||||
|
||||
if((strlen($hub)) && ($hub_update) && ($contact['rel'] != CONTACT_IS_FOLLOWER)) {
|
||||
logger('poller: hub ' . $hubmode . ' : ' . $hub . ' contact name : ' . $contact['name'] . ' local user : ' . $importer['name']);
|
||||
$hubs = explode(',', $hub);
|
||||
if(count($hubs)) {
|
||||
foreach($hubs as $h) {
|
||||
$h = trim($h);
|
||||
if(! strlen($h))
|
||||
continue;
|
||||
subscribe_to_hub($h,$importer,$contact,$hubmode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$updated = datetime_convert();
|
||||
|
||||
$r = q("UPDATE `contact` SET `last-update` = '%s', `success_update` = '%s' WHERE `id` = %d LIMIT 1",
|
||||
dbesc($updated),
|
||||
dbesc($updated),
|
||||
intval($contact['id'])
|
||||
);
|
||||
|
||||
|
||||
// load current friends if possible.
|
||||
|
||||
if($contact['poco']) {
|
||||
$r = q("SELECT count(*) as total from glink
|
||||
where `cid` = %d and updated > UTC_TIMESTAMP() - INTERVAL 1 DAY",
|
||||
intval($contact['id'])
|
||||
);
|
||||
}
|
||||
if(count($r)) {
|
||||
if(! $r[0]['total']) {
|
||||
poco_load($contact['id'],$importer_uid,$contact['poco']);
|
||||
}
|
||||
}
|
||||
|
||||
// loop - next contact
|
||||
proc_run('php','include/onepoll.php',$contact['id']);
|
||||
if($interval)
|
||||
@time_sleep_until(microtime(true) + (float) $interval);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,8 +7,10 @@ function gender_selector($current="",$suffix="") {
|
|||
|
||||
$o .= "<select name=\"gender$suffix\" id=\"gender-select$suffix\" size=\"1\" >";
|
||||
foreach($select as $selection) {
|
||||
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
||||
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
||||
if($selection !== 'NOTRANSLATION') {
|
||||
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
||||
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
||||
}
|
||||
}
|
||||
$o .= '</select>';
|
||||
return $o;
|
||||
|
@ -20,8 +22,10 @@ function sexpref_selector($current="",$suffix="") {
|
|||
|
||||
$o .= "<select name=\"sexual$suffix\" id=\"sexual-select$suffix\" size=\"1\" >";
|
||||
foreach($select as $selection) {
|
||||
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
||||
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
||||
if($selection !== 'NOTRANSLATION') {
|
||||
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
||||
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
||||
}
|
||||
}
|
||||
$o .= '</select>';
|
||||
return $o;
|
||||
|
@ -34,8 +38,10 @@ function marital_selector($current="",$suffix="") {
|
|||
|
||||
$o .= "<select name=\"marital\" id=\"marital-select\" size=\"1\" >";
|
||||
foreach($select as $selection) {
|
||||
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
||||
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
||||
if($selection !== 'NOTRANSLATION') {
|
||||
$selected = (($selection == $current) ? ' selected="selected" ' : '');
|
||||
$o .= "<option value=\"$selection\" $selected >$selection</option>";
|
||||
}
|
||||
}
|
||||
$o .= '</select>';
|
||||
return $o;
|
||||
|
|
|
@ -92,13 +92,10 @@ if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
|
|||
load_translation_table($lang);
|
||||
}
|
||||
|
||||
if(x($_GET,'zrl')) {
|
||||
if((x($_GET,'zrl')) && (! $install)) {
|
||||
$_SESSION['my_url'] = $_GET['zrl'];
|
||||
$a->query_string = preg_replace('/[\?&]zrl=(.*?)([\?&]|$)/is','',$a->query_string);
|
||||
if(! $install) {
|
||||
$arr = array('zrl' => $_SESSION['my_url'], 'url' => $a->cmd);
|
||||
call_hooks('zrl_init',$arr);
|
||||
}
|
||||
zrl_init($a);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
16
js/main.js
16
js/main.js
|
@ -73,7 +73,16 @@
|
|||
setupFieldRichtext();
|
||||
|
||||
/* popup menus */
|
||||
function close_last_popup_menu() {
|
||||
if(last_popup_menu) {
|
||||
last_popup_menu.hide();
|
||||
last_popup_button.removeClass("selected");
|
||||
last_popup_menu = null;
|
||||
last_popup_button = null;
|
||||
}
|
||||
}
|
||||
$('a[rel^=#]').click(function(e){
|
||||
close_last_popup_menu();
|
||||
menu = $( $(this).attr('rel') );
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
@ -90,12 +99,7 @@
|
|||
return false;
|
||||
});
|
||||
$('html').click(function() {
|
||||
if(last_popup_menu) {
|
||||
last_popup_menu.hide();
|
||||
last_popup_button.removeClass("selected");
|
||||
last_popup_menu = null;
|
||||
last_popup_button = null;
|
||||
}
|
||||
close_last_popup_menu();
|
||||
});
|
||||
|
||||
// fancyboxes
|
||||
|
|
|
@ -61,6 +61,9 @@ function admin_post(&$a){
|
|||
case 'logs':
|
||||
admin_page_logs_post($a);
|
||||
break;
|
||||
case 'dbsync':
|
||||
admin_page_dbsync_post($a);
|
||||
break;
|
||||
case 'update':
|
||||
admin_page_remoteupdate_post($a);
|
||||
break;
|
||||
|
@ -94,7 +97,8 @@ function admin_content(&$a) {
|
|||
'users' => Array($a->get_baseurl(true)."/admin/users/", t("Users") , "users"),
|
||||
'plugins'=> Array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"),
|
||||
'themes' => Array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"),
|
||||
'update' => Array($a->get_baseurl(true)."/admin/update/", t("Update") , "update")
|
||||
'dbsync' => Array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync"),
|
||||
'update' => Array($a->get_baseurl(true)."/admin/update/", t("Software Update") , "update")
|
||||
);
|
||||
|
||||
/* get plugins admin page */
|
||||
|
@ -142,6 +146,9 @@ function admin_content(&$a) {
|
|||
case 'logs':
|
||||
$o = admin_page_logs($a);
|
||||
break;
|
||||
case 'dbsync':
|
||||
$o = admin_page_dbsync($a);
|
||||
break;
|
||||
case 'update':
|
||||
$o = admin_page_remoteupdate($a);
|
||||
break;
|
||||
|
@ -235,6 +242,7 @@ function admin_page_site_post(&$a){
|
|||
$proxyuser = ((x($_POST,'proxyuser')) ? notags(trim($_POST['proxyuser'])) : '');
|
||||
$proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
|
||||
$timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
|
||||
$delivery_interval = ((x($_POST,'delivery_interval'))? intval(trim($_POST['delivery_interval'])) : 0);
|
||||
$dfrn_only = ((x($_POST,'dfrn_only')) ? True : False);
|
||||
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
|
||||
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
|
||||
|
@ -281,7 +289,7 @@ function admin_page_site_post(&$a){
|
|||
}
|
||||
}
|
||||
set_config('system','ssl_policy',$ssl_policy);
|
||||
|
||||
set_config('system','delivery_interval',$delivery_interval);
|
||||
set_config('config','sitename',$sitename);
|
||||
if ($banner==""){
|
||||
// don't know why, but del_config doesn't work...
|
||||
|
@ -425,6 +433,7 @@ function admin_page_site(&$a) {
|
|||
'$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""),
|
||||
'$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""),
|
||||
'$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")),
|
||||
'$delivery_interval' => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")),
|
||||
|
||||
'$form_security_token' => get_form_security_token("admin_site"),
|
||||
|
||||
|
@ -433,6 +442,62 @@ function admin_page_site(&$a) {
|
|||
}
|
||||
|
||||
|
||||
function admin_page_dbsync(&$a) {
|
||||
|
||||
$o = '';
|
||||
|
||||
if($a->argc > 3 && intval($a->argv[3]) && $a->argv[2] === 'mark') {
|
||||
set_config('database', 'update_' . intval($a->argv[3]), 'success');
|
||||
info( t('Update has been marked successful') . EOL);
|
||||
goaway($a->get_baseurl(true) . '/admin/dbsync');
|
||||
}
|
||||
|
||||
if($a->argc > 2 && intval($a->argv[2])) {
|
||||
require_once('update.php');
|
||||
$func = 'update_' . intval($a->argv[2]);
|
||||
if(function_exists($func)) {
|
||||
$retval = $func();
|
||||
if($retval === UPDATE_FAILED) {
|
||||
$o .= sprintf( t('Executing %s failed. Check system logs.'), $func);
|
||||
}
|
||||
elseif($retval === UPDATE_SUCCESS) {
|
||||
$o .= sprintf( t('Update %s was successfully applied.', $func));
|
||||
set_config('database',$func, 'success');
|
||||
}
|
||||
else
|
||||
$o .= sprintf( t('Update %s did not return a status. Unknown if it succeeded.'), $func);
|
||||
}
|
||||
else
|
||||
$o .= sprintf( t('Update function %s could not be found.'), $func);
|
||||
return $o;
|
||||
}
|
||||
|
||||
$failed = array();
|
||||
$r = q("select * from config where `cat` = 'database' ");
|
||||
if(count($r)) {
|
||||
foreach($r as $rr) {
|
||||
$upd = intval(substr($rr['k'],7));
|
||||
if($upd < 1139 || $rr['v'] === 'success')
|
||||
continue;
|
||||
$failed[] = $upd;
|
||||
}
|
||||
}
|
||||
if(! count($failed))
|
||||
return '<h3>' . t('No failed updates.') . '</h3>';
|
||||
|
||||
$o = replace_macros(get_markup_template('failed_updates.tpl'),array(
|
||||
'$base' => $a->get_baseurl(true),
|
||||
'$banner' => t('Failed Updates'),
|
||||
'$desc' => t('This does not include updates prior to 1139, which did not return a status.'),
|
||||
'$mark' => t('Mark success (if update was manually applied)'),
|
||||
'$apply' => t('Attempt to execute this update step automatically'),
|
||||
'$failed' => $failed
|
||||
));
|
||||
|
||||
return $o;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Users admin page
|
||||
*
|
||||
|
@ -977,7 +1042,6 @@ readable.");
|
|||
$size = 5000000;
|
||||
$seek = fseek($fp,0-$size,SEEK_END);
|
||||
if($seek === 0) {
|
||||
fgets($fp); // throw away the first partial line
|
||||
$data = escape_tags(fread($fp,$size));
|
||||
while(! feof($fp))
|
||||
$data .= escape_tags(fread($fp,4096));
|
||||
|
|
|
@ -290,22 +290,26 @@ function contacts_content(&$a) {
|
|||
'label' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
|
||||
'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/block',
|
||||
'sel' => '',
|
||||
'title' => t('Toggle Blocked status'),
|
||||
),
|
||||
array(
|
||||
'label' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
|
||||
'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/ignore',
|
||||
'sel' => '',
|
||||
'title' => t('Toggle Ignored status'),
|
||||
),
|
||||
|
||||
array(
|
||||
'label' => (($contact['archive']) ? t('Unarchive') : t('Archive') ),
|
||||
'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/archive',
|
||||
'sel' => '',
|
||||
'title' => t('Toggle Archive status'),
|
||||
),
|
||||
array(
|
||||
'label' => t('Repair'),
|
||||
'url' => $a->get_baseurl(true) . '/crepair/' . $contact_id,
|
||||
'sel' => '',
|
||||
'title' => t('Advanced Contact Settings'),
|
||||
)
|
||||
);
|
||||
$tab_tpl = get_markup_template('common_tabs.tpl');
|
||||
|
@ -403,40 +407,47 @@ function contacts_content(&$a) {
|
|||
'label' => t('Suggestions'),
|
||||
'url' => $a->get_baseurl(true) . '/suggest',
|
||||
'sel' => '',
|
||||
'title' => t('Suggest potential friends'),
|
||||
),
|
||||
array(
|
||||
'label' => t('All Contacts'),
|
||||
'url' => $a->get_baseurl(true) . '/contacts/all',
|
||||
'sel' => ($all) ? 'active' : '',
|
||||
'title' => t('Show all contacts'),
|
||||
),
|
||||
array(
|
||||
'label' => t('Unblocked'),
|
||||
'url' => $a->get_baseurl(true) . '/contacts',
|
||||
'sel' => ((! $all) && (! $blocked) && (! $hidden) && (! $search) && (! $nets) && (! $ignored) && (! $archived)) ? 'active' : '',
|
||||
'title' => t('Only show unblocked contacts'),
|
||||
),
|
||||
|
||||
array(
|
||||
'label' => t('Blocked'),
|
||||
'url' => $a->get_baseurl(true) . '/contacts/blocked',
|
||||
'sel' => ($blocked) ? 'active' : '',
|
||||
'title' => t('Only show blocked contacts'),
|
||||
),
|
||||
|
||||
array(
|
||||
'label' => t('Ignored'),
|
||||
'url' => $a->get_baseurl(true) . '/contacts/ignored',
|
||||
'sel' => ($ignored) ? 'active' : '',
|
||||
'title' => t('Only show ignored contacts'),
|
||||
),
|
||||
|
||||
array(
|
||||
'label' => t('Archived'),
|
||||
'url' => $a->get_baseurl(true) . '/contacts/archived',
|
||||
'sel' => ($archived) ? 'active' : '',
|
||||
'title' => t('Only show archived contacts'),
|
||||
),
|
||||
|
||||
array(
|
||||
'label' => t('Hidden'),
|
||||
'url' => $a->get_baseurl(true) . '/contacts/hidden',
|
||||
'sel' => ($hidden) ? 'active' : '',
|
||||
'title' => t('Only show hidden contacts'),
|
||||
),
|
||||
|
||||
);
|
||||
|
|
|
@ -207,7 +207,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
|||
if($duplex == 1)
|
||||
$params['duplex'] = 1;
|
||||
|
||||
if($user['page-flags'] == PAGE_COMMUNITY)
|
||||
if($user[0]['page-flags'] == PAGE_COMMUNITY)
|
||||
$params['page'] = 1;
|
||||
|
||||
logger('dfrn_confirm: Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA);
|
||||
|
@ -434,7 +434,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
|||
else
|
||||
$contact = null;
|
||||
|
||||
if(isset($new_relation) && $new_relation == CONTACT_IS_FRIEND) {
|
||||
|
||||
if((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) {
|
||||
|
||||
if(($contact) && ($contact['network'] === NETWORK_DIASPORA)) {
|
||||
require_once('include/diaspora.php');
|
||||
|
@ -447,7 +448,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
|||
$r = q("SELECT `hide-friends` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
|
||||
intval($uid)
|
||||
);
|
||||
if((count($r)) && ($activity) && (! $hidden)) {
|
||||
|
||||
if((count($r)) && ($r[0]['hide-friends'] == 0) && ($activity) && (! $hidden)) {
|
||||
|
||||
require_once('include/items.php');
|
||||
|
||||
|
@ -468,12 +470,15 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
|||
$arr['author-name'] = $arr['owner-name'] = $self[0]['name'];
|
||||
$arr['author-link'] = $arr['owner-link'] = $self[0]['url'];
|
||||
$arr['author-avatar'] = $arr['owner-avatar'] = $self[0]['thumb'];
|
||||
$arr['verb'] = ACTIVITY_FRIEND;
|
||||
$arr['object-type'] = ACTIVITY_OBJ_PERSON;
|
||||
|
||||
|
||||
$A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]';
|
||||
$APhoto = '[url=' . $self[0]['url'] . ']' . '[img]' . $self[0]['thumb'] . '[/img][/url]';
|
||||
|
||||
$B = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
|
||||
$BPhoto = '[url=' . $contact['url'] . ']' . '[img]' . $contact['thumb'] . '[/img][/url]';
|
||||
|
||||
$arr['verb'] = ACTIVITY_FRIEND;
|
||||
$arr['object-type'] = ACTIVITY_OBJ_PERSON;
|
||||
$arr['body'] = sprintf( t('%1$s is now friends with %2$s'), $A, $B)."\n\n\n".$BPhoto;
|
||||
|
||||
$arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $contact['name'] . '</title>'
|
||||
|
@ -481,6 +486,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
|||
$arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $contact['url'] . '" />' . "\n");
|
||||
$arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $contact['thumb'] . '" />' . "\n");
|
||||
$arr['object'] .= '</link></object>' . "\n";
|
||||
|
||||
$arr['last-child'] = 1;
|
||||
|
||||
$arr['allow_cid'] = $user[0]['allow_cid'];
|
||||
|
@ -710,6 +716,10 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
|||
WHERE `contact`.`id` = %d LIMIT 1",
|
||||
intval($dfrn_record)
|
||||
);
|
||||
|
||||
if(count($r))
|
||||
$combined = $r[0];
|
||||
|
||||
if((count($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
|
||||
|
||||
push_lang($r[0]['language']);
|
||||
|
@ -738,6 +748,65 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
|
|||
}
|
||||
pop_lang();
|
||||
}
|
||||
|
||||
// Send a new friend post if we are allowed to...
|
||||
|
||||
if($page && intval(get_pconfig($local_uid,'system','post_joingroup'))) {
|
||||
$r = q("SELECT `hide-friends` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
|
||||
intval($local_uid)
|
||||
);
|
||||
|
||||
if((count($r)) && ($r[0]['hide-friends'] == 0)) {
|
||||
|
||||
require_once('include/items.php');
|
||||
|
||||
$self = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
|
||||
intval($local_uid)
|
||||
);
|
||||
|
||||
if(count($self)) {
|
||||
|
||||
$arr = array();
|
||||
$arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $local_uid);
|
||||
$arr['uid'] = $local_uid;
|
||||
$arr['contact-id'] = $self[0]['id'];
|
||||
$arr['wall'] = 1;
|
||||
$arr['type'] = 'wall';
|
||||
$arr['gravity'] = 0;
|
||||
$arr['origin'] = 1;
|
||||
$arr['author-name'] = $arr['owner-name'] = $self[0]['name'];
|
||||
$arr['author-link'] = $arr['owner-link'] = $self[0]['url'];
|
||||
$arr['author-avatar'] = $arr['owner-avatar'] = $self[0]['thumb'];
|
||||
|
||||
$A = '[url=' . $self[0]['url'] . ']' . $self[0]['name'] . '[/url]';
|
||||
$APhoto = '[url=' . $self[0]['url'] . ']' . '[img]' . $self[0]['thumb'] . '[/img][/url]';
|
||||
|
||||
$B = '[url=' . $combined['url'] . ']' . $combined['name'] . '[/url]';
|
||||
$BPhoto = '[url=' . $combined['url'] . ']' . '[img]' . $combined['thumb'] . '[/img][/url]';
|
||||
|
||||
$arr['verb'] = ACTIVITY_JOIN;
|
||||
$arr['object-type'] = ACTIVITY_OBJ_GROUP;
|
||||
$arr['body'] = sprintf( t('%1$s has joined %2$s'), $A, $B)."\n\n\n" .$BPhoto;
|
||||
$arr['object'] = '<object><type>' . ACTIVITY_OBJ_GROUP . '</type><title>' . $combined['name'] . '</title>'
|
||||
. '<id>' . $combined['url'] . '/' . $combined['name'] . '</id>';
|
||||
$arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $combined['url'] . '" />' . "\n");
|
||||
$arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $combined['thumb'] . '" />' . "\n");
|
||||
$arr['object'] .= '</link></object>' . "\n";
|
||||
|
||||
$arr['last-child'] = 1;
|
||||
|
||||
$arr['allow_cid'] = $user[0]['allow_cid'];
|
||||
$arr['allow_gid'] = $user[0]['allow_gid'];
|
||||
$arr['deny_cid'] = $user[0]['deny_cid'];
|
||||
$arr['deny_gid'] = $user[0]['deny_gid'];
|
||||
|
||||
$i = item_store($arr);
|
||||
if($i)
|
||||
proc_run('php',"include/notifier.php","activity","$i");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
xml_status(0); // Success
|
||||
return; // NOTREACHED
|
||||
|
||||
|
|
|
@ -700,7 +700,8 @@ function dfrn_request_content(&$a) {
|
|||
'node' => $r[0]['nickname'],
|
||||
'dfrn_id' => $r[0]['issued-id'],
|
||||
'intro_id' => $intro[0]['id'],
|
||||
'duplex' => (($r[0]['page-flags'] == PAGE_FREELOVE) ? 1 : 0)
|
||||
'duplex' => (($r[0]['page-flags'] == PAGE_FREELOVE) ? 1 : 0),
|
||||
'activity' => intval(get_pconfig($r[0]['uid'],'system','post_newfriend'))
|
||||
);
|
||||
dfrn_confirm_post($a,$handsfree);
|
||||
}
|
||||
|
|
|
@ -18,10 +18,18 @@ function friendica_init(&$a) {
|
|||
$admin = false;
|
||||
}
|
||||
|
||||
$visible_plugins = array();
|
||||
if(is_array($a->plugins) && count($a->plugins)) {
|
||||
$r = q("select * from addon where hidden = 0");
|
||||
if(count($r))
|
||||
foreach($r as $rr)
|
||||
$visible_plugins[] = $rr['name'];
|
||||
}
|
||||
|
||||
$data = Array(
|
||||
'version' => FRIENDICA_VERSION,
|
||||
'url' => z_root(),
|
||||
'plugins' => $a->plugins,
|
||||
'plugins' => $visible_plugins,
|
||||
'register_policy' => $register_policy[$a->config['register_policy']],
|
||||
'admin' => $admin,
|
||||
'site_name' => $a->config['sitename'],
|
||||
|
@ -54,9 +62,18 @@ function friendica_content(&$a) {
|
|||
|
||||
$o .= '<p></p>';
|
||||
|
||||
if(count($a->plugins)) {
|
||||
$visible_plugins = array();
|
||||
if(is_array($a->plugins) && count($a->plugins)) {
|
||||
$r = q("select * from addon where hidden = 0");
|
||||
if(count($r))
|
||||
foreach($r as $rr)
|
||||
$visible_plugins[] = $rr['name'];
|
||||
}
|
||||
|
||||
|
||||
if(count($visible_plugins)) {
|
||||
$o .= '<p>' . t('Installed plugins/addons/apps:') . '</p>';
|
||||
$sorted = $a->plugins;
|
||||
$sorted = $visible_plugins;
|
||||
$s = '';
|
||||
sort($sorted);
|
||||
foreach($sorted as $p) {
|
||||
|
|
|
@ -171,37 +171,44 @@ function network_content(&$a, $update = 0) {
|
|||
'label' => t('Commented Order'),
|
||||
'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '?f=&cid=' . $_GET['cid'] : ''),
|
||||
'sel'=>$all_active,
|
||||
'title'=> t('Sort by Comment Date'),
|
||||
),
|
||||
array(
|
||||
'label' => t('Posted Order'),
|
||||
'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
|
||||
'sel'=>$postord_active,
|
||||
'title' => t('Sort by Post Date'),
|
||||
),
|
||||
|
||||
array(
|
||||
'label' => t('Personal'),
|
||||
'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
|
||||
'sel' => $conv_active,
|
||||
'title' => t('Posts that mention or involve you'),
|
||||
),
|
||||
array(
|
||||
'label' => t('New'),
|
||||
'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '/new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
|
||||
'sel' => $new_active,
|
||||
'title' => t('Activity Stream - by date'),
|
||||
),
|
||||
array(
|
||||
'label' => t('Starred'),
|
||||
'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
|
||||
'sel'=>$starred_active,
|
||||
'title' => t('Favourite Posts'),
|
||||
),
|
||||
array(
|
||||
'label' => t('Shared Links'),
|
||||
'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&bmark=1',
|
||||
'sel'=>$bookmarked_active,
|
||||
'title'=> t('Interesting Links'),
|
||||
),
|
||||
// array(
|
||||
// 'label' => t('Spam'),
|
||||
// 'url'=>$a->get_baseurl(true) . '/network?f=&spam=1'
|
||||
// 'sel'=> $spam_active,
|
||||
// 'title' => t('Posts flagged as SPAM'),
|
||||
// ),
|
||||
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@ function profile_init(&$a) {
|
|||
|
||||
profile_load($a,$which,$profile);
|
||||
|
||||
$userblock = (($a->profile['hidewall'] && (! local_user()) && (! remote_user())) ? true : false);
|
||||
|
||||
if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
|
||||
$a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
|
||||
}
|
||||
|
@ -41,8 +43,8 @@ function profile_init(&$a) {
|
|||
$delegate = ((strstr($a->profile['openid'],'://')) ? $a->profile['openid'] : 'http://' . $a->profile['openid']);
|
||||
$a->page['htmlhead'] .= '<link rel="openid.delegate" href="' . $delegate . '" />' . "\r\n";
|
||||
}
|
||||
|
||||
if(! $blocked) {
|
||||
// site block
|
||||
if((! $blocked) && (! $userblock)) {
|
||||
$keywords = ((x($a->profile,'pub_keywords')) ? $a->profile['pub_keywords'] : '');
|
||||
$keywords = str_replace(array('#',',',' ',',,'),array('',' ',',',','),$keywords);
|
||||
if(strlen($keywords))
|
||||
|
|
|
@ -139,21 +139,49 @@ function profiles_post(&$a) {
|
|||
|
||||
|
||||
$changes = array();
|
||||
$value = '';
|
||||
if($is_default) {
|
||||
if($marital != $orig[0]['marital']) $changes[] = '♥ ' . t('Marital Status');
|
||||
if($withchanged) $changes[] = '♥ ' . t('Romantic Partner');
|
||||
if($work != $orig[0]['work']) $changes[] = t('Work/Employment');
|
||||
if($religion != $orig[0]['religion']) $changes[] = t('Religion');
|
||||
if($politic != $orig[0]['politic']) $changes[] = t('Political Views');
|
||||
if($gender != $orig[0]['gender']) $changes[] = t('Gender');
|
||||
if($sexual != $orig[0]['sexual']) $changes[] = t('Sexual Preference');
|
||||
if($homepage != $orig[0]['homepage']) $changes[] = t('Homepage');
|
||||
if($interest != $orig[0]['interest']) $changes[] = t('Interests');
|
||||
if($marital != $orig[0]['marital']) {
|
||||
$changes[] = '[color=#ff0000]♥[/color] ' . t('Marital Status');
|
||||
$value = $marital;
|
||||
}
|
||||
if($withchanged) {
|
||||
$changes[] = '♥ ' . t('Romantic Partner');
|
||||
$value = strip_tags($with);
|
||||
}
|
||||
if($work != $orig[0]['work']) {
|
||||
$changes[] = t('Work/Employment');
|
||||
}
|
||||
if($religion != $orig[0]['religion']) {
|
||||
$changes[] = t('Religion');
|
||||
$value = $religion;
|
||||
}
|
||||
if($politic != $orig[0]['politic']) {
|
||||
$changes[] = t('Political Views');
|
||||
$value = $politic;
|
||||
}
|
||||
if($gender != $orig[0]['gender']) {
|
||||
$changes[] = t('Gender');
|
||||
$value = $gender;
|
||||
}
|
||||
if($sexual != $orig[0]['sexual']) {
|
||||
$changes[] = t('Sexual Preference');
|
||||
$value = $sexual;
|
||||
}
|
||||
if($homepage != $orig[0]['homepage']) {
|
||||
$changes[] = t('Homepage');
|
||||
$value = $homepage;
|
||||
}
|
||||
if($interest != $orig[0]['interest']) {
|
||||
$changes[] = t('Interests');
|
||||
$value = $interest;
|
||||
}
|
||||
if($address != $orig[0]['address'] || $locality != $orig[0]['locality'] || $region != $orig[0]['region']
|
||||
|| $country_name != $orig[0]['country_name'])
|
||||
$changes[] = t('Location');
|
||||
|| $country_name != $orig[0]['country-name']) {
|
||||
$changes[] = t('Location');
|
||||
}
|
||||
|
||||
profile_activity($changes);
|
||||
profile_activity($changes,$value);
|
||||
|
||||
}
|
||||
|
||||
|
@ -245,7 +273,7 @@ function profiles_post(&$a) {
|
|||
}
|
||||
|
||||
|
||||
function profile_activity($changed) {
|
||||
function profile_activity($changed, $value) {
|
||||
$a = get_app();
|
||||
|
||||
if(! local_user() || ! is_array($changed) || ! count($changed))
|
||||
|
@ -289,7 +317,7 @@ function profile_activity($changed) {
|
|||
foreach($changed as $ch) {
|
||||
if(strlen($changes)) {
|
||||
if ($z == ($t - 1))
|
||||
$changes .= ' and ';
|
||||
$changes .= t(' and ');
|
||||
else
|
||||
$changes .= ', ';
|
||||
}
|
||||
|
@ -299,7 +327,15 @@ function profile_activity($changed) {
|
|||
|
||||
$prof = '[url=' . $self[0]['url'] . '?tab=profile' . ']' . t('public profile') . '[/url]';
|
||||
|
||||
$arr['body'] = sprintf( t('%1$s has an updated %2$s, changing %3$s.'), $A, $prof, $changes);
|
||||
if($t == 1 && strlen($value)) {
|
||||
$message = sprintf( t('%1$s changed %2$s to %3$s'), $A, $changes, $value);
|
||||
$message .= "\n\n" . sprintf( t(' - Visit %1$s\'s %2$s'), $A, $prof);
|
||||
}
|
||||
else
|
||||
$message = sprintf( t('%1$s has an updated %2$s, changing %3$s.'), $A, $prof, $changes);
|
||||
|
||||
|
||||
$arr['body'] = $message;
|
||||
|
||||
$arr['object'] = '<object><type>' . ACTIVITY_OBJ_PROFILE . '</type><title>' . $self[0]['name'] . '</title>'
|
||||
. '<id>' . $self[0]['url'] . '/' . $self[0]['name'] . '</id>';
|
||||
|
|
|
@ -352,6 +352,7 @@ function settings_post(&$a) {
|
|||
$hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
|
||||
$hidewall = (($_POST['hidewall'] == 1) ? 1: 0);
|
||||
$post_newfriend = (($_POST['post_newfriend'] == 1) ? 1: 0);
|
||||
$post_joingroup = (($_POST['post_joingroup'] == 1) ? 1: 0);
|
||||
$post_profilechange = (($_POST['post_profilechange'] == 1) ? 1: 0);
|
||||
|
||||
|
||||
|
@ -436,6 +437,7 @@ function settings_post(&$a) {
|
|||
|
||||
set_pconfig(local_user(),'system','suggestme', $suggestme);
|
||||
set_pconfig(local_user(),'system','post_newfriend', $post_newfriend);
|
||||
set_pconfig(local_user(),'system','post_joingroup', $post_joingroup);
|
||||
set_pconfig(local_user(),'system','post_profilechange', $post_profilechange);
|
||||
|
||||
|
||||
|
@ -802,6 +804,9 @@ function settings_content(&$a) {
|
|||
$post_newfriend = get_pconfig(local_user(), 'system','post_newfriend');
|
||||
$post_newfriend = (($post_newfriend===false)? '0': $post_newfriend); // default if not set: 0
|
||||
|
||||
$post_joingroup = get_pconfig(local_user(), 'system','post_joingroup');
|
||||
$post_joingroup = (($post_joingroup===false)? '0': $post_joingroup); // default if not set: 0
|
||||
|
||||
$post_profilechange = get_pconfig(local_user(), 'system','post_profilechange');
|
||||
$post_profilechange = (($post_profilechange===false)? '0': $post_profilechange); // default if not set: 0
|
||||
|
||||
|
@ -976,6 +981,7 @@ function settings_content(&$a) {
|
|||
'$h_not' => t('Notification Settings'),
|
||||
'$activity_options' => t('By default post a status message when:'),
|
||||
'$post_newfriend' => array('post_newfriend', t('accepting a friend request'), $post_newfriend, ''),
|
||||
'$post_joingroup' => array('post_joingroup', t('joining a forum/community'), $post_joingroup, ''),
|
||||
'$post_profilechange' => array('post_profilechange', t('making an <em>interesting</em> profile change'), $post_profilechange, ''),
|
||||
'$lbl_not' => t('Send a notification email when:'),
|
||||
'$notify1' => array('notify1', t('You receive an introduction'), ($notify & NOTIFY_INTRO), NOTIFY_INTRO, ''),
|
||||
|
|
|
@ -66,14 +66,14 @@ function tagger_content(&$a) {
|
|||
}
|
||||
|
||||
$uri = item_new_uri($a->get_hostname(),$owner_uid);
|
||||
|
||||
$xterm = xmlify($term);
|
||||
$post_type = (($item['resource-id']) ? t('photo') : t('status'));
|
||||
$targettype = (($item['resource-id']) ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
|
||||
|
||||
$link = xmlify('<link rel="alternate" type="text/html" href="'
|
||||
. $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . '" />' . "\n") ;
|
||||
|
||||
$body = $item['body'];
|
||||
$body = xmlify($item['body']);
|
||||
|
||||
$target = <<< EOT
|
||||
<target>
|
||||
|
@ -95,8 +95,8 @@ EOT;
|
|||
<local>1</local>
|
||||
<id>$tagid</id>
|
||||
<link>$tagid</link>
|
||||
<title>$term</title>
|
||||
<content>$term</content>
|
||||
<title>$xterm</title>
|
||||
<content>$xterm</content>
|
||||
</object>
|
||||
EOT;
|
||||
|
||||
|
|
16
update.php
16
update.php
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
define( 'UPDATE_VERSION' , 1139 );
|
||||
define( 'UPDATE_VERSION' , 1141 );
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -1215,4 +1215,18 @@ function update_1137() {
|
|||
|
||||
function update_1138() {
|
||||
q("alter table contact add archive tinyint(1) not null default '0' after hidden, add index (archive)");
|
||||
}
|
||||
|
||||
function update_1139() {
|
||||
$r = q("alter table user add account_removed tinyint(1) not null default '0' after expire, add index(account_removed) ");
|
||||
if(! $r)
|
||||
return UPDATE_FAILED ;
|
||||
return UPDATE_SUCCESS ;
|
||||
}
|
||||
|
||||
function update_1140() {
|
||||
$r = q("alter table addon add hidden tinyint(1) not null default '0' after installed, add index(hidden) ");
|
||||
if(! $r)
|
||||
return UPDATE_FAILED ;
|
||||
return UPDATE_SUCCESS ;
|
||||
}
|
1041
util/messages.po
1041
util/messages.po
File diff suppressed because it is too large
Load diff
|
@ -16,10 +16,12 @@
|
|||
<li class='admin link button $admin.users.2'><a href='$admin.users.0'>$admin.users.1</a><span id='pending-update' title='$h_pending'></span></li>
|
||||
<li class='admin link button $admin.plugins.2'><a href='$admin.plugins.0'>$admin.plugins.1</a></li>
|
||||
<li class='admin link button $admin.themes.2'><a href='$admin.themes.0'>$admin.themes.1</a></li>
|
||||
<li class='admin link button $admin.dbsync.2'><a href='$admin.dbsync.0'>$admin.dbsync.1</a></li>
|
||||
</ul>
|
||||
|
||||
<ul class='admin linklist'>
|
||||
<li class='admin link button $admin.update.2'><a href='$admin.update.0'>$admin.update.1</a></li>
|
||||
<li class='admin link button $admin.update.2'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
|
|
@ -80,6 +80,7 @@
|
|||
{{ inc field_input.tpl with $field=$proxy }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$proxyuser }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$timeout }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$delivery_interval }}{{ endinc }}
|
||||
{{ inc field_input.tpl with $field=$abandon_days }}{{ endinc }}
|
||||
|
||||
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<ul class="tabs">
|
||||
{{ for $tabs as $tab }}
|
||||
<li><a href="$tab.url" class="tab button $tab.sel">$tab.label</a></li>
|
||||
<li><a href="$tab.url" class="tab button $tab.sel"{{ if $tab.title }} title="$tab.title"{{ endif }}>$tab.label</a></li>
|
||||
{{ endfor }}
|
||||
</ul>
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
|
||||
Hallo $myname,
|
||||
Hallo $[myname],
|
||||
|
||||
'$requestor' folgt dir jetzt auf $sitename.
|
||||
Du hast einen neuen Anhänger auf $[sitename] - '$[requestor]'.
|
||||
|
||||
Du kannst das Profil unter $url abrufen.
|
||||
Du kannst das Profil unter $[url] besuchen.
|
||||
|
||||
Bitte melde dich auf deiner Seite an um die Anfrage zu bestätigen, abzulehnen
|
||||
oder zu ignorieren.
|
||||
Bitte melde dich an um die Anfrage zu bestätigen oder sie zu ignorieren bzw. abzulehnen.
|
||||
|
||||
$siteurl
|
||||
$[siteurl]
|
||||
|
||||
Grüße,
|
||||
$sitename Administrator
|
||||
beste Grüße,
|
||||
|
||||
$[sitename] Administrator
|
1593
view/de/messages.po
1593
view/de/messages.po
File diff suppressed because it is too large
Load diff
|
@ -1,34 +1,34 @@
|
|||
|
||||
Hallo $[username],
|
||||
Danke für deine Anmeldung auf $[sitename]. Dein Account wurde angelegt.
|
||||
Die Login Details sind die folgenden:
|
||||
|
||||
|
||||
Adresse der Seite: $[siteurl]
|
||||
Login Name: $[email]
|
||||
Passwort: $[password]
|
||||
|
||||
Du kannst das Passwort in den "Einstellungen" zu deinem Account ändern
|
||||
nachdem du dich eingeloggt hast.
|
||||
|
||||
Bitte nimm dir einige Augenblicke Zeit um die anderen Einstellungen auf der Seite zu überprüfen.
|
||||
|
||||
Eventuell möchtest du außerdem einige grundlegenden Informationen in dein Standart-Profil eintragen
|
||||
(auf der "Profile" Seite) damit andere Leute dich einfacher finden können.
|
||||
|
||||
Wir empfehlen den kompletten Namen anzugeben, ein eigenes Profil-Foto,
|
||||
ein paar "Profil-Schlüsselwörter" anzugeben (damit man leichter Gleichinteressierte finden kann) - und
|
||||
natürlich in welchen Land Du lebst; wenn Du es nicht genauer angeben möchtest
|
||||
dann das.
|
||||
|
||||
Wir respektieren Ihr Recht auf Privatsphäre, und keines dieser Elemente sind notwendig.
|
||||
Wenn Du hier neu bist und keinen kennst, wird man Dir helfen
|
||||
ein paar neue und interessante Freunde zu finden.
|
||||
|
||||
|
||||
Danke dir und willkommen auf $[sitename].
|
||||
|
||||
Beste Grüße,
|
||||
$[sitename] Administrator
|
||||
|
||||
|
||||
Hallo $[username],
|
||||
Danke für deine Anmeldung auf $[sitename]. Dein Account wurde angelegt.
|
||||
Die Login Details sind die folgenden:
|
||||
|
||||
|
||||
Adresse der Seite: $[siteurl]
|
||||
Login Name: $[email]
|
||||
Passwort: $[password]
|
||||
|
||||
Du kannst das Passwort in den "Einstellungen" zu deinem Account ändern
|
||||
nachdem du dich eingeloggt hast.
|
||||
|
||||
Bitte nimm dir einige Augenblicke Zeit um die anderen Einstellungen auf der Seite zu überprüfen.
|
||||
|
||||
Eventuell möchtest du außerdem einige grundlegenden Informationen in dein Standart-Profil eintragen
|
||||
(auf der "Profile" Seite) damit andere Leute dich einfacher finden können.
|
||||
|
||||
Wir empfehlen den kompletten Namen anzugeben, ein eigenes Profil-Foto,
|
||||
ein paar "Profil-Schlüsselwörter" anzugeben (damit man leichter Gleichinteressierte finden kann) - und
|
||||
natürlich in welchen Land Du lebst; wenn Du es nicht genauer angeben möchtest
|
||||
dann das.
|
||||
|
||||
Wir respektieren Ihr Recht auf Privatsphäre, und keines dieser Elemente sind notwendig.
|
||||
Wenn Du hier neu bist und keinen kennst, wird man Dir helfen
|
||||
ein paar neue und interessante Freunde zu finden.
|
||||
|
||||
|
||||
Danke dir und willkommen auf $[sitename].
|
||||
|
||||
Beste Grüße,
|
||||
$[sitename] Administrator
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ $a->strings["Permission settings"] = "Berechtigungseinstellungen";
|
|||
$a->strings["CC: email addresses"] = "Cc:-E-Mail-Addressen";
|
||||
$a->strings["Public post"] = "Öffentlicher Beitrag";
|
||||
$a->strings["Set title"] = "Titel setzen";
|
||||
$a->strings["Categories (comma-separated list)"] = "Kategorien (mit Komma separierte Liste)";
|
||||
$a->strings["Categories (comma-separated list)"] = "Kategorien (kommasepariert)";
|
||||
$a->strings["Example: bob@example.com, mary@example.com"] = "Z.B.: bob@example.com, mary@example.com";
|
||||
$a->strings["This introduction has already been accepted."] = "Diese Kontaktanfrage wurde bereits akzeptiert.";
|
||||
$a->strings["Profile location is not valid or does not contain profile information."] = "Profiladresse ist ungültig oder stellt einige Profildaten nicht zur Verfügung.";
|
||||
|
@ -301,7 +301,8 @@ $a->strings["Contact has been blocked"] = "Kontakt wurde blockiert";
|
|||
$a->strings["Contact has been unblocked"] = "Kontakt wurde wieder freigegeben";
|
||||
$a->strings["Contact has been ignored"] = "Kontakt wurde ignoriert";
|
||||
$a->strings["Contact has been unignored"] = "Kontakt wird nicht mehr ignoriert";
|
||||
$a->strings["stopped following"] = "wird nicht mehr gefolgt";
|
||||
$a->strings["Contact has been archived"] = "Kontakt wurde archiviert";
|
||||
$a->strings["Contact has been unarchived"] = "Kontakt wurde aus dem Archiv geholt";
|
||||
$a->strings["Contact has been removed."] = "Kontakt wurde entfernt.";
|
||||
$a->strings["You are mutual friends with %s"] = "Du hast mit %s eine beidseitige Freundschaft";
|
||||
$a->strings["You are sharing with %s"] = "Du teilst mit %s";
|
||||
|
@ -320,6 +321,8 @@ $a->strings["View all contacts"] = "Alle Kontakte anzeigen";
|
|||
$a->strings["Unblock"] = "Entsperren";
|
||||
$a->strings["Block"] = "Sperren";
|
||||
$a->strings["Unignore"] = "Ignorieren aufheben";
|
||||
$a->strings["Unarchive"] = "Unarchivieren";
|
||||
$a->strings["Archive"] = "Archivieren";
|
||||
$a->strings["Repair"] = "Reparieren";
|
||||
$a->strings["Contact Editor"] = "Kontakt Editor";
|
||||
$a->strings["Profile Visibility"] = "Profil Anzeige";
|
||||
|
@ -337,13 +340,15 @@ $a->strings["Update public posts"] = "Öffentliche Beiträge aktualisieren";
|
|||
$a->strings["Update now"] = "Jetzt aktualisieren";
|
||||
$a->strings["Currently blocked"] = "Derzeit geblockt";
|
||||
$a->strings["Currently ignored"] = "Derzeit ignoriert";
|
||||
$a->strings["Currently archived"] = "Momentan archiviert";
|
||||
$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Antworten/Likes auf deine öffentlichen Beiträge <strong>könnten</strong> weiterhin sichtbar sein";
|
||||
$a->strings["Suggestions"] = "Kontaktvorschläge";
|
||||
$a->strings["All Contacts"] = "Alle Kontakte";
|
||||
$a->strings["Unblocked Contacts"] = "Nicht blockierte Kontakte";
|
||||
$a->strings["Blocked Contacts"] = "Blockierte Kontakte";
|
||||
$a->strings["Ignored Contacts"] = "Ignorierte Kontakte";
|
||||
$a->strings["Hidden Contacts"] = "Verborgene Kontakte";
|
||||
$a->strings["Unblocked"] = "Ungeblockt";
|
||||
$a->strings["Blocked"] = "Geblockt";
|
||||
$a->strings["Ignored"] = "Ignoriert";
|
||||
$a->strings["Archived"] = "Archiviert";
|
||||
$a->strings["Hidden"] = "Verborgen";
|
||||
$a->strings["Mutual Friendship"] = "Beidseitige Freundschaft";
|
||||
$a->strings["is a fan of yours"] = "ist ein Fan von dir";
|
||||
$a->strings["you are a fan of"] = "du bist Fan von";
|
||||
|
@ -373,6 +378,7 @@ $a->strings["Connector settings"] = "Connector-Einstellungen";
|
|||
$a->strings["Plugin settings"] = "Plugin-Einstellungen";
|
||||
$a->strings["Connected apps"] = "Verbundene Programme";
|
||||
$a->strings["Export personal data"] = "Persönliche Daten exportieren";
|
||||
$a->strings["Remove account"] = "Account entfernen";
|
||||
$a->strings["Settings"] = "Einstellungen";
|
||||
$a->strings["Missing some important data!"] = "Wichtige Daten fehlen!";
|
||||
$a->strings["Update"] = "Aktualisierungen";
|
||||
|
@ -723,6 +729,8 @@ $a->strings["Proxy user"] = "Proxy Nutzer";
|
|||
$a->strings["Proxy URL"] = "Proxy URL";
|
||||
$a->strings["Network timeout"] = "Netzwerk Wartezeit";
|
||||
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen).";
|
||||
$a->strings["Delivery interval"] = "Zustellungsintervall";
|
||||
$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl an Sekunden um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared-Hosts, 2-3 für VPS, 0-1 für große dedizierte Server.";
|
||||
$a->strings["%s user blocked/unblocked"] = array(
|
||||
0 => "%s Benutzer geblockt/freigegeben",
|
||||
1 => "%s Benutzer geblockt/freigegeben",
|
||||
|
@ -947,7 +955,8 @@ $a->strings["The given API Key seems to work correctly."] = "Der angegebene API
|
|||
$a->strings["The correctness of the API Key could not be detected. Somthing strange's going on."] = "Die Echtheit des API Schlüssels konnte nicht überprüft werden. Etwas Merkwürdiges ist hier im Gange.";
|
||||
$a->strings["App-ID / API-Key"] = "App-ID / API-Key";
|
||||
$a->strings["Application secret"] = "Anwendungs-Geheimnis";
|
||||
$a->strings["Polling Interval (min. %1\$s minutes)"] = "Abrufintervall (min. %1\$s Minuten)";
|
||||
$a->strings["Polling Interval in minutes (minimum %1\$s minutes)"] = "Abfrage-Intervall in Minuten (min %1\$s Minuten)";
|
||||
$a->strings["Synchronize comments (no comments on Facebook are missed, at the cost of increased system load)"] = "Kommentare synchronisieren (Kein Kommentar von Facebook geht verlohren, verursacht höhere Last auf dem Server)";
|
||||
$a->strings["Real-Time Updates"] = "Echt-Zeit Aktualisierungen";
|
||||
$a->strings["Real-Time Updates are activated."] = "Echtzeit-Updates sind aktiviert.";
|
||||
$a->strings["Deactivate Real-Time Updates"] = "Echtzeit-Updates deaktivieren";
|
||||
|
@ -961,6 +970,11 @@ $a->strings["Facebook post failed. Queued for retry."] = "Veröffentlichung bei
|
|||
$a->strings["Your Facebook connection became invalid. Please Re-authenticate."] = "Deine Facebook Anmeldedaten sind ungültig geworden. Bitte re-authentifiziere dich.";
|
||||
$a->strings["Facebook connection became invalid"] = "Facebook Anmeldedaten sind ungültig geworden";
|
||||
$a->strings["Hi %1\$s,\n\nThe connection between your accounts on %2\$s and Facebook became invalid. This usually happens after you change your Facebook-password. To enable the connection again, you have to %3\$sre-authenticate the Facebook-connector%4\$s."] = "Hi %1\$s,\n\ndie Verbindung von deinem Account auf %2\$s und Facebook funktioniert derzeit nicht. Dies ist im Allgemeinen das Ergebnis einer Passwortänderung bei Facebook. Um die Verbindung wieder zu aktivieren musst du %3\$sden Facebook-Connector neu Authentifizieren%4\$s.";
|
||||
$a->strings["Lifetime of the cache (in hours)"] = "Lebenszeit des Caches (in Stunden)";
|
||||
$a->strings["Cache Statistics"] = "Cache Statistik";
|
||||
$a->strings["Number of items"] = "Anzahl der Einträge";
|
||||
$a->strings["Size of the cache"] = "Größe des Caches";
|
||||
$a->strings["Delete the whole cache"] = "Cache leeren";
|
||||
$a->strings["%d person likes this"] = array(
|
||||
0 => "%d Person mag das",
|
||||
1 => "%d Leuten mögen das",
|
||||
|
@ -969,6 +983,7 @@ $a->strings["%d person doesn't like this"] = array(
|
|||
0 => " %d Person mag das nicht",
|
||||
1 => "%d Leute mögen das nicht",
|
||||
);
|
||||
$a->strings["Get added to this list!"] = "Werde Mitglied dieser Liste";
|
||||
$a->strings["Generate new key"] = "Neuen Schlüssel erstellen";
|
||||
$a->strings["Widgets key"] = "Widgets Schlüssel";
|
||||
$a->strings["Widgets available"] = "Verfügbare Widgets";
|
||||
|
@ -1058,12 +1073,12 @@ $a->strings["The impressum addon needs to be configured!<br />Please add at leas
|
|||
$a->strings["The page operators name."] = "Name des Server-Administrators";
|
||||
$a->strings["Site Owners Profile"] = "Profil des Seitenbetreibers";
|
||||
$a->strings["Profile address of the operator."] = "Profil-Adresse des Server-Administrators";
|
||||
$a->strings["How to contact the operator via snail mail."] = "Wie erreicht man den Betreiber der Seite postalisch.";
|
||||
$a->strings["How to contact the operator via snail mail. You can use BBCode here."] = "Kontaktmöglichkeiten zum Administrator via Schneckenpost. Du kannst BBCode verwenden.";
|
||||
$a->strings["Notes"] = "Hinweise";
|
||||
$a->strings["Additional notes that are displayed beneath the contact information."] = "Zusätzliche Angaben, die unterhalb der Kontakt-Informationen angezeigt werden.";
|
||||
$a->strings["Additional notes that are displayed beneath the contact information. You can use BBCode here."] = "Zusätzliche Informationen die neben den Kontaktmöglichkeiten angezeigt werden. Du kannst BBCode verwenden.";
|
||||
$a->strings["How to contact the operator via email. (will be displayed obfuscated)"] = "Wie erreichts man den Betreiber per Email. (Adresse wird verschleiert dargestellt)";
|
||||
$a->strings["Footer note"] = "Fußnote";
|
||||
$a->strings["Text for the footer."] = "Text für die Fußnote";
|
||||
$a->strings["Text for the footer. You can use BBCode here."] = "Text für die Fußzeile. Du kannst BBCode verwenden.";
|
||||
$a->strings["Report Bug"] = "Fehlerreport erstellen";
|
||||
$a->strings["\"Blockem\" Settings"] = "\"Blockem\"-Einstellungen";
|
||||
$a->strings["Comma separated profile URLS to block"] = "Profil-URLs, die blockiert werden sollen (durch Kommas getrennt)";
|
||||
|
@ -1204,6 +1219,10 @@ $a->strings["Enable Posterous Post Plugin"] = "Posterous-Plugin aktivieren";
|
|||
$a->strings["Posterous login"] = "Posterous-Anmeldename";
|
||||
$a->strings["Posterous password"] = "Posterous-Passwort";
|
||||
$a->strings["Post to Posterous by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous";
|
||||
$a->strings["Theme settings"] = "Themen Einstellungen";
|
||||
$a->strings["Set resize level for images in posts and comments (width and height)"] = "Wähle das Vergrößerungsmaß für Bilder in Beiträgen und Kommentaren (Höhe und Breite)";
|
||||
$a->strings["Set font-size for posts and comments"] = "Schriftgröße für Beiträge und Kommentare festlegen";
|
||||
$a->strings["Color scheme"] = "Farbschema";
|
||||
$a->strings["Last users"] = "Letzte Nutzer";
|
||||
$a->strings["Last likes"] = "Zuletzt gemocht";
|
||||
$a->strings["Last photos"] = "Letzte Fotos";
|
||||
|
@ -1221,15 +1240,13 @@ $a->strings["Your photos"] = "Deine Fotos";
|
|||
$a->strings["Your events"] = "Deine Ereignisse";
|
||||
$a->strings["Personal notes"] = "Persönliche Notizen";
|
||||
$a->strings["Your personal photos"] = "Deine privaten Fotos";
|
||||
$a->strings["Theme settings"] = "Themen Einstellungen";
|
||||
$a->strings["Set font-size for posts and comments"] = "Schriftgröße für Beiträge und Kommentare festlegen";
|
||||
$a->strings["Set line-height for posts and comments"] = "Liniengröße für Beiträge und Kommantare festlegen";
|
||||
$a->strings["Set resolution for middle column"] = "Auflösung für die Mittelspalte setzen";
|
||||
$a->strings["Set color scheme"] = "Wähle Farbschema";
|
||||
$a->strings["Alignment"] = "Ausrichtung";
|
||||
$a->strings["Left"] = "Links";
|
||||
$a->strings["Center"] = "Mitte";
|
||||
$a->strings["Color scheme"] = "Farbschema";
|
||||
$a->strings["Set colour scheme"] = "Farbschema wählen";
|
||||
$a->strings["Gender:"] = "Geschlecht:";
|
||||
$a->strings["j F, Y"] = "j F, Y";
|
||||
$a->strings["j F"] = "j F";
|
||||
|
@ -1505,6 +1522,7 @@ $a->strings["Welcome "] = "Willkommen ";
|
|||
$a->strings["Please upload a profile photo."] = "Bitte lade ein Profilbild hoch.";
|
||||
$a->strings["Welcome back "] = "Willkommen zurück ";
|
||||
$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Das Sicherheits-Merkmal war nicht korrekt. Das passiert meistens wenn das Formular vor dem Absenden zu lange geöffnet war (länger als 3 Stunden).";
|
||||
$a->strings["stopped following"] = "wird nicht mehr gefolgt";
|
||||
$a->strings["View Status"] = "Pinnwand anschauen";
|
||||
$a->strings["View Profile"] = "Profil anschauen";
|
||||
$a->strings["View Photos"] = "Bilder anschauen";
|
||||
|
@ -1525,6 +1543,14 @@ $a->strings["like"] = "mag ich";
|
|||
$a->strings["dislike"] = "mag ich nicht";
|
||||
$a->strings["Share this"] = "Teile dieses";
|
||||
$a->strings["share"] = "Teilen";
|
||||
$a->strings["Bold"] = "Fett";
|
||||
$a->strings["Italic"] = "Kursiv";
|
||||
$a->strings["Underline"] = "Unterstrichen";
|
||||
$a->strings["Quote"] = "Zitat";
|
||||
$a->strings["Code"] = "Code";
|
||||
$a->strings["Image"] = "Bild";
|
||||
$a->strings["Link"] = "Verweis";
|
||||
$a->strings["Video"] = "Video";
|
||||
$a->strings["add star"] = "markieren";
|
||||
$a->strings["remove star"] = "Markierung entfernen";
|
||||
$a->strings["toggle star status"] = "Markierung umschalten";
|
||||
|
@ -1569,9 +1595,9 @@ $a->strings["Edit profile"] = "Profil bearbeiten";
|
|||
$a->strings["Message"] = "Nachricht";
|
||||
$a->strings["g A l F d"] = "l, d. F G \\U\\h\\r";
|
||||
$a->strings["F d"] = "d. F";
|
||||
$a->strings["[today]"] = "[heute]";
|
||||
$a->strings["Birthday Reminders"] = "Geburtstagserinnerungen";
|
||||
$a->strings["Birthdays this week:"] = "Geburtstage diese Woche:";
|
||||
$a->strings["[today]"] = "[heute]";
|
||||
$a->strings["[No description]"] = "[keine Beschreibung]";
|
||||
$a->strings["Event Reminders"] = "Veranstaltungserinnerungen";
|
||||
$a->strings["Events this week:"] = "Veranstaltungen diese Woche";
|
||||
$a->strings["[No description]"] = "[keine Beschreibung]";
|
||||
|
|
1481
view/eo/messages.po
1481
view/eo/messages.po
File diff suppressed because it is too large
Load diff
|
@ -301,7 +301,8 @@ $a->strings["Contact has been blocked"] = "Kontakto estas blokita.";
|
|||
$a->strings["Contact has been unblocked"] = "Kontakto estas malblokita.";
|
||||
$a->strings["Contact has been ignored"] = "Kontakto estas ignorita.";
|
||||
$a->strings["Contact has been unignored"] = "Kontakto estas malignorita.";
|
||||
$a->strings["stopped following"] = "ne plu sekvas";
|
||||
$a->strings["Contact has been archived"] = "Enarkivigis kontakton";
|
||||
$a->strings["Contact has been unarchived"] = "Elarkivigis kontakton";
|
||||
$a->strings["Contact has been removed."] = "Kontakto estas forigita.";
|
||||
$a->strings["You are mutual friends with %s"] = "Vi estas reciproka amiko de %s";
|
||||
$a->strings["You are sharing with %s"] = "Vi kunhavigas kun %s";
|
||||
|
@ -320,6 +321,8 @@ $a->strings["View all contacts"] = "Vidi ĉiujn kontaktojn";
|
|||
$a->strings["Unblock"] = "Malbloki";
|
||||
$a->strings["Block"] = "Bloki";
|
||||
$a->strings["Unignore"] = "Malignori";
|
||||
$a->strings["Unarchive"] = "Elarkivigi";
|
||||
$a->strings["Archive"] = "Enarkivigi";
|
||||
$a->strings["Repair"] = "Ripari";
|
||||
$a->strings["Contact Editor"] = "Kontakta redaktilo.";
|
||||
$a->strings["Profile Visibility"] = "Videbleco de profilo";
|
||||
|
@ -337,13 +340,15 @@ $a->strings["Update public posts"] = "Ĝisdatigi publikajn afiŝojn";
|
|||
$a->strings["Update now"] = "Ĝisdatigi nun";
|
||||
$a->strings["Currently blocked"] = "Nuntempe blokata";
|
||||
$a->strings["Currently ignored"] = "Nuntempe ignorata";
|
||||
$a->strings["Currently archived"] = "Nuntempe enarkivigita";
|
||||
$a->strings["Replies/likes to your public posts <strong>may</strong> still be visible"] = "Rispondoj/ŝataĵo al viaj publikaj afiŝoj <strong>eble</strong> plu estos videbla";
|
||||
$a->strings["Suggestions"] = "Sugestoj";
|
||||
$a->strings["All Contacts"] = "Ĉiuj Kontaktoj";
|
||||
$a->strings["Unblocked Contacts"] = "Malblokitaj Kontaktoj";
|
||||
$a->strings["Blocked Contacts"] = "Blokitaj Kontaktoj";
|
||||
$a->strings["Ignored Contacts"] = "Ignoritaj Kontaktoj";
|
||||
$a->strings["Hidden Contacts"] = "Kaŝitaj Kontaktoj";
|
||||
$a->strings["Unblocked"] = "Malblokita";
|
||||
$a->strings["Blocked"] = "Blokita";
|
||||
$a->strings["Ignored"] = "Ignorita";
|
||||
$a->strings["Archived"] = "Enarkivigita";
|
||||
$a->strings["Hidden"] = "Kaŝita";
|
||||
$a->strings["Mutual Friendship"] = "Reciproka amikeco";
|
||||
$a->strings["is a fan of yours"] = "estas admiranto de vi";
|
||||
$a->strings["you are a fan of"] = "vi estas admiranto de";
|
||||
|
@ -373,6 +378,7 @@ $a->strings["Connector settings"] = "Konektiloj";
|
|||
$a->strings["Plugin settings"] = "Kromprogramoj";
|
||||
$a->strings["Connected apps"] = "Konektitaj programoj";
|
||||
$a->strings["Export personal data"] = "Eksporto";
|
||||
$a->strings["Remove account"] = "Forigi konton";
|
||||
$a->strings["Settings"] = "Agordoj";
|
||||
$a->strings["Missing some important data!"] = "Mankas importantaj datumoj!";
|
||||
$a->strings["Update"] = "Ĝisdatigi";
|
||||
|
@ -723,6 +729,8 @@ $a->strings["Proxy user"] = "Uzantnomo por retperanto";
|
|||
$a->strings["Proxy URL"] = "URL adreso de retperanto";
|
||||
$a->strings["Network timeout"] = "Reta tempolimo";
|
||||
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Valoro en sekundoj. Uzu 0 por mallimitigi (ne rekomendata).";
|
||||
$a->strings["Delivery interval"] = "Intervalo de liverado";
|
||||
$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Malfruigi fonan liveradon dum tiom da sekundoj por malpliigi la ŝargon de la sistemo. Rekomendoj: 4-5 por komunaj serviloj, 2-3 por virtualaj privataj serviloj, 0-1 por grandaj dediĉitaj serviloj.";
|
||||
$a->strings["%s user blocked/unblocked"] = array(
|
||||
0 => "Blokis/malblokis %s uzanton",
|
||||
1 => "Blokis/malblokis %s uzantojn",
|
||||
|
@ -947,7 +955,7 @@ $a->strings["The given API Key seems to work correctly."] = "La API ŝlosilo ŝa
|
|||
$a->strings["The correctness of the API Key could not be detected. Somthing strange's going on."] = "Ne povis kontroli la ĝustecon de la API ŝlosilo. Ia stranga afero okazas. ";
|
||||
$a->strings["App-ID / API-Key"] = "Programo ID / API Ŝlosilo";
|
||||
$a->strings["Application secret"] = "Programo sekreto";
|
||||
$a->strings["Polling Interval (min. %1\$s minutes)"] = "Intervalo por la enketilo (poller intervalo, minimume %1\$s mintuoj) ";
|
||||
$a->strings["Polling Interval in minutes (minimum %1\$s minutes)"] = "Intervalo de enketo en minutoj (minimume %1\$s minutoj)";
|
||||
$a->strings["Synchronize comments (no comments on Facebook are missed, at the cost of increased system load)"] = "Sinkronigi komentojn (vi ricevas ĉiujn komentojn de Facebook, sed la ŝargo de la sistemo iom kreskas)";
|
||||
$a->strings["Real-Time Updates"] = "Realtempaj Ĝisdatigoj";
|
||||
$a->strings["Real-Time Updates are activated."] = "Realtempaj Ĝisdatigoj estas ŝaltita";
|
||||
|
@ -975,6 +983,7 @@ $a->strings["%d person doesn't like this"] = array(
|
|||
0 => "%d homo malŝatas tiun",
|
||||
1 => "%d homo malŝatas tiun",
|
||||
);
|
||||
$a->strings["Get added to this list!"] = "Iĝu membro de ĉi tiu listo!";
|
||||
$a->strings["Generate new key"] = "Generi novan ĉifroŝlosilon";
|
||||
$a->strings["Widgets key"] = "Ŝlosilo por fenestraĵoj";
|
||||
$a->strings["Widgets available"] = "Disponeblaj fenestraĵoj";
|
||||
|
@ -1064,12 +1073,12 @@ $a->strings["The impressum addon needs to be configured!<br />Please add at leas
|
|||
$a->strings["The page operators name."] = "La nomo de la funkciigisto de la retejo.";
|
||||
$a->strings["Site Owners Profile"] = "Profilo de la Proprietulo de la Retejo";
|
||||
$a->strings["Profile address of the operator."] = "La profilo de la funkciigisto de la retejo.";
|
||||
$a->strings["How to contact the operator via snail mail."] = "Kiel kontakti la funkciigiston de la retejo tra paperpoŝto.";
|
||||
$a->strings["How to contact the operator via snail mail. You can use BBCode here."] = "Kiel poŝte kontakti la funkciigisto de la retejo. Vi eblas uzi BBCode ĉi tie.";
|
||||
$a->strings["Notes"] = "Notoj";
|
||||
$a->strings["Additional notes that are displayed beneath the contact information."] = "Pliaj notoj kiuj estas montrigota malsupre la kontaktinformojn.";
|
||||
$a->strings["Additional notes that are displayed beneath the contact information. You can use BBCode here."] = "Pli da notoj kiuj aperas sub la kontaktinformoj. Vi eblas uzi BBCode ĉi tie.";
|
||||
$a->strings["How to contact the operator via email. (will be displayed obfuscated)"] = "Kiel kontakti la funkciigiston de la retejo tra retpoŝto. (montriĝos vuale) ";
|
||||
$a->strings["Footer note"] = "Paĝpiednoto";
|
||||
$a->strings["Text for the footer."] = "Teksto por la paĝpiedo.";
|
||||
$a->strings["Text for the footer. You can use BBCode here."] = "Teksto por la paĝpiedo. Vie eblas uzi BBCode ĉi tie.";
|
||||
$a->strings["Report Bug"] = "Skribi cimraporton";
|
||||
$a->strings["\"Blockem\" Settings"] = "\"Blockem\" Agordoj";
|
||||
$a->strings["Comma separated profile URLS to block"] = "Blokotaj URL adresoj, disigita per komo";
|
||||
|
@ -1210,6 +1219,10 @@ $a->strings["Enable Posterous Post Plugin"] = "Ŝalti la Poserous-afiŝo krompro
|
|||
$a->strings["Posterous login"] = "Posterous salutnomo";
|
||||
$a->strings["Posterous password"] = "Posterous pasvorto";
|
||||
$a->strings["Post to Posterous by default"] = "Defaŭlte afiŝi al Posterous";
|
||||
$a->strings["Theme settings"] = "Agordoj pri la etoso";
|
||||
$a->strings["Set resize level for images in posts and comments (width and height)"] = "Agordi la regrandignivelo por bildoj en afiŝoj kaj komentoj (larĝo kaj alto)";
|
||||
$a->strings["Set font-size for posts and comments"] = "Agordi la tiparan grandon por afiŝoj kaj komentoj";
|
||||
$a->strings["Color scheme"] = "Kolorskemo";
|
||||
$a->strings["Last users"] = "Ĵusaj uzantoj";
|
||||
$a->strings["Last likes"] = "Ĵusaj ŝatitaj elementoj";
|
||||
$a->strings["Last photos"] = "Ĵusaj bildoj";
|
||||
|
@ -1227,15 +1240,13 @@ $a->strings["Your photos"] = "Viaj bildoj";
|
|||
$a->strings["Your events"] = "Viaj okazoj";
|
||||
$a->strings["Personal notes"] = "Personaj notoj";
|
||||
$a->strings["Your personal photos"] = "Viaj personaj bildoj";
|
||||
$a->strings["Theme settings"] = "Agordoj pri la etoso";
|
||||
$a->strings["Set font-size for posts and comments"] = "Agordi la tiparan grandon por afiŝoj kaj komentoj";
|
||||
$a->strings["Set line-height for posts and comments"] = "Agordi la linigrandon por afiŝoj kaj komentoj";
|
||||
$a->strings["Set resolution for middle column"] = "Agordi la distingivon por la meza kolumno";
|
||||
$a->strings["Set color scheme"] = "Agordi Kolorskemon";
|
||||
$a->strings["Alignment"] = "Ĝisrandigo";
|
||||
$a->strings["Left"] = "Maldekstren";
|
||||
$a->strings["Center"] = "Centren";
|
||||
$a->strings["Color scheme"] = "Kolorskemo";
|
||||
$a->strings["Set colour scheme"] = "Agordi Kolorskemon";
|
||||
$a->strings["Gender:"] = "Sekso:";
|
||||
$a->strings["j F, Y"] = "j F, Y";
|
||||
$a->strings["j F"] = "j F";
|
||||
|
@ -1511,6 +1522,7 @@ $a->strings["Welcome "] = "Bonvenon ";
|
|||
$a->strings["Please upload a profile photo."] = "Bonvolu alŝuti profilbildon.";
|
||||
$a->strings["Welcome back "] = "Bonvenon ";
|
||||
$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "La sekuriga ĵetono de la formo estis malĝusta. Tio verŝajne okazis ĉar la formo estis malfermita dum tro longa tempo (>3 horoj) antaŭ la sendado.";
|
||||
$a->strings["stopped following"] = "ne plu sekvas";
|
||||
$a->strings["View Status"] = "Vidi Staton";
|
||||
$a->strings["View Profile"] = "Vidi Profilon";
|
||||
$a->strings["View Photos"] = "Vidi Bildojn";
|
||||
|
@ -1531,6 +1543,14 @@ $a->strings["like"] = "ŝati";
|
|||
$a->strings["dislike"] = "malŝati";
|
||||
$a->strings["Share this"] = "Kunhavigi ĉi tiun";
|
||||
$a->strings["share"] = "kunhavigi";
|
||||
$a->strings["Bold"] = "Grasa";
|
||||
$a->strings["Italic"] = "Kursiva";
|
||||
$a->strings["Underline"] = "Substreki";
|
||||
$a->strings["Quote"] = "Citaĵo";
|
||||
$a->strings["Code"] = "Kodo";
|
||||
$a->strings["Image"] = "Bildo";
|
||||
$a->strings["Link"] = "Ligilo";
|
||||
$a->strings["Video"] = "Video";
|
||||
$a->strings["add star"] = "aldoni stelon";
|
||||
$a->strings["remove star"] = "forpreni stelon";
|
||||
$a->strings["toggle star status"] = "ŝalti/malŝalti steloŝtato";
|
||||
|
@ -1575,9 +1595,9 @@ $a->strings["Edit profile"] = "Redakti profilon";
|
|||
$a->strings["Message"] = "Mesaĝo";
|
||||
$a->strings["g A l F d"] = "\\j\\e \\l\\a G\\a \\h\\o\\r\\o, l F d";
|
||||
$a->strings["F d"] = "F d";
|
||||
$a->strings["[today]"] = "[hodiaŭ]";
|
||||
$a->strings["Birthday Reminders"] = "Memorigilo pri naskiĝtagoj";
|
||||
$a->strings["Birthdays this week:"] = "Naskiĝtagoj ĉi-semajne:";
|
||||
$a->strings["[today]"] = "[hodiaŭ]";
|
||||
$a->strings["[No description]"] = "[Neniu priskribo]";
|
||||
$a->strings["Event Reminders"] = "Memorigiloj pri Okazoj";
|
||||
$a->strings["Events this week:"] = "Okazoj ĉi-semajne:";
|
||||
$a->strings["[No description]"] = "[Neniu priskribo]";
|
||||
|
|
17
view/failed_updates.tpl
Normal file
17
view/failed_updates.tpl
Normal file
|
@ -0,0 +1,17 @@
|
|||
<h2>$banner</h2>
|
||||
|
||||
<div id="failed_updates_desc">$desc</div>
|
||||
|
||||
{{ if $failed }}
|
||||
{{ for $failed as $f }}
|
||||
|
||||
<h4>$f</h4>
|
||||
<ul>
|
||||
<li><a href="$base/admin/dbsync/mark/$f">$mark</a></li>
|
||||
<li><a href="$base/admin/dbsync/$f">$apply</a></li>
|
||||
</ul>
|
||||
|
||||
<hr />
|
||||
{{ endfor }}
|
||||
{{ endif }}
|
||||
|
|
@ -6,6 +6,7 @@
|
|||
<link rel="stylesheet" href="$baseurl/library/jgrowl/jquery.jgrowl.css" type="text/css" media="screen" />
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="$stylesheet" media="all" />
|
||||
<meta name="viewport" content="width=800, initial-scale=1, maximum-scale=3" />
|
||||
|
||||
<link rel="shortcut icon" href="$baseurl/images/friendica-32.png" />
|
||||
<link rel="search"
|
||||
|
|
|
@ -102,6 +102,7 @@ $unkmail
|
|||
<strong>$activity_options</strong>
|
||||
|
||||
{{inc field_checkbox.tpl with $field=$post_newfriend }}{{endinc}}
|
||||
{{inc field_checkbox.tpl with $field=$post_joingroup }}{{endinc}}
|
||||
{{inc field_checkbox.tpl with $field=$post_profilechange }}{{endinc}}
|
||||
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ $a->page['htmlhead'] .= '
|
|||
<script>
|
||||
|
||||
$(function() {
|
||||
$(".wall-item-content-wrapper img").aeImageResize({height: '.$resize.', width: '.$resize.'});
|
||||
$(".wall-item-content img").aeImageResize({height: '.$resize.', width: '.$resize.'});
|
||||
});
|
||||
</script>';}
|
||||
}
|
||||
|
|
|
@ -4,9 +4,20 @@
|
|||
{{ endif }}
|
||||
</div>
|
||||
|
||||
<div id="close_profiles">
|
||||
{{ if $comunity_profilest_title }}
|
||||
<h3>$comunity_profilest_title<a id="close_comunity_profiles_icon" onClick="close_profiles()" class="icon close_box" title="close"></a></h3>
|
||||
<div id='lastusers-wrapper' class='items-wrapper'>
|
||||
{{ for $comunity_profiles_items as $i }}
|
||||
$i
|
||||
{{ endfor }}
|
||||
</div>
|
||||
{{ endif }}
|
||||
</div>
|
||||
|
||||
<div id="close_helpers">
|
||||
{{ if $lastusers_title }}
|
||||
<h3 style="margin-top:0px;">$helpers.title.1<a id="close_helpers_icon" onClick="close_helpers()" class="icon close_box" title="close"></a></h3>
|
||||
<h3>$helpers.title.1<a id="close_helpers_icon" onClick="close_helpers()" class="icon close_box" title="close"></a></h3>
|
||||
<a href="http://kakste.com/profile/newhere" title="@NewHere" style="margin-left: 10px; " target="blank">NewHere</a><br>
|
||||
<a href="https://helpers.pyxis.uberspace.de/profile/helpers" style="margin-left: 10px; " title="Friendica Support" target="blank">Friendica Support</a><br>
|
||||
<a href="https://letstalk.pyxis.uberspace.de/profile/letstalk" style="margin-left: 10px; " title="Let's talk" target="blank">Let's talk</a><br>
|
||||
|
@ -42,6 +53,9 @@ $nv.search
|
|||
{{ endif }}
|
||||
</div>
|
||||
|
||||
<div id="twitter">
|
||||
</div>
|
||||
|
||||
<div id="close_lastusers">
|
||||
{{ if $lastusers_title }}
|
||||
<h3>$lastusers_title<a id="close_lastusers_icon" onClick="close_lastusers()" class="icon close_box" title="close"></a></h3>
|
||||
|
|
|
@ -1182,7 +1182,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-aerith/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1191,14 +1191,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-aerith/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-aerith/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -1178,7 +1178,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-aerith/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1187,14 +1187,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-aerith/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-aerith/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -1158,7 +1158,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-aerith/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1167,14 +1167,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-aerith/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-aerith/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -1154,7 +1154,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-aerith/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1163,14 +1163,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-aerith/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-aerith/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -1014,7 +1015,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1243,7 +1244,7 @@ aside #likes a:hover{
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -1013,7 +1014,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1241,7 +1242,7 @@ aside #likes a:hover{
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
|
|
@ -1148,7 +1148,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-blue/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1157,14 +1157,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-blue/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-blue/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -1144,7 +1144,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-blue/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1153,14 +1153,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-blue/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-blue/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -1128,7 +1128,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-blue/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1137,14 +1137,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-blue/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-blue/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -1124,7 +1124,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-blue/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1133,14 +1133,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-blue/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-blue/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -983,7 +984,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1203,7 +1204,7 @@ aside #side-peoplefind-url {
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -982,7 +983,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1201,7 +1202,7 @@ aside #side-peoplefind-url {
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
|
|
@ -1431,7 +1431,7 @@ transition: all 0.2s ease-in-out;
|
|||
|
||||
.wall-item-comment-wrapper {
|
||||
margin: 1px 5px 5px 80px;
|
||||
background-color: #fff;
|
||||
background-color: #444;
|
||||
width: 500px;
|
||||
}
|
||||
.wall-item-comment-wrapper .comment-edit-photo {
|
||||
|
@ -1442,14 +1442,14 @@ transition: all 0.2s ease-in-out;
|
|||
width: 100%;
|
||||
font-size: 10px;
|
||||
color: #999999;
|
||||
border: 1px solid #DDD;
|
||||
border: 1px solid #2e2e2f;
|
||||
padding: 0.3em;
|
||||
font-size: 14px;
|
||||
}
|
||||
.wall-item-comment-wrapper .comment-edit-text-full {
|
||||
font-size: 14px;
|
||||
height: 4em;
|
||||
color: #2e2f2e;
|
||||
color: #eec;
|
||||
border: 1px solid #2e2f2e;
|
||||
}
|
||||
.comment-edit-preview {
|
||||
|
@ -1596,8 +1596,8 @@ transition: all 0.2s ease-in-out;
|
|||
height: 2.0em;
|
||||
width: 99%;
|
||||
font-size: 15px;
|
||||
color: #999999;
|
||||
border: 1px solid #DDD;
|
||||
color: #eec;
|
||||
border: 1px solid #444;
|
||||
padding: 0.3em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
|
|
@ -540,7 +540,7 @@ header #banner a:active,
|
|||
header #banner a:visited,
|
||||
header #banner a:link,
|
||||
header #banner a:hover {
|
||||
color: #2e2f2e;
|
||||
color: #eec;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
vertical-align: middle;
|
||||
|
@ -661,7 +661,7 @@ nav .nav-menu-icon {
|
|||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
nav .nav-menu-icon:hover {
|
||||
background-color: #eec;
|
||||
background-color: #308dbf;
|
||||
position: relative;
|
||||
height: 22px;
|
||||
padding: 5px;
|
||||
|
@ -776,7 +776,7 @@ nav #nav-apps-link.selected {
|
|||
}
|
||||
|
||||
.notify-seen {
|
||||
background: none repeat scroll 0 0 #DDDDDD;
|
||||
background: none repeat scroll 0 0 #666;
|
||||
}
|
||||
|
||||
ul.menu-popup {
|
||||
|
@ -1424,7 +1424,7 @@ transition: all 0.2s ease-in-out;
|
|||
.wall-item-comment-wrapper .comment-edit-text-full {
|
||||
font-size: 14px;
|
||||
height: 4em;
|
||||
color: #2e302;
|
||||
color: #eec;
|
||||
border: 1px solid #2e302;
|
||||
}
|
||||
.comment-edit-preview {
|
||||
|
@ -1571,10 +1571,11 @@ transition: all 0.2s ease-in-out;
|
|||
height: 2.0em;
|
||||
width: 99%;
|
||||
font-size: 15px;
|
||||
color: #999999;
|
||||
color: #eec;
|
||||
border: 1px solid #DDD;
|
||||
padding: 0.3em;
|
||||
margin-bottom: 10px;
|
||||
background: #444;
|
||||
}
|
||||
.grey
|
||||
{
|
||||
|
@ -1667,6 +1668,7 @@ transition: all 0.2s ease-in-out;
|
|||
margin: 0 0 5px;
|
||||
width: 60%;
|
||||
border: 1px solid #d2d2d2;
|
||||
background: #444;
|
||||
}
|
||||
#profile-jot-form #jot-title:-webkit-input-placeholder {
|
||||
font-weight: normal;
|
||||
|
|
|
@ -1671,6 +1671,7 @@ body .pageheader{
|
|||
height: 2.0em;
|
||||
width: 100%;
|
||||
font-size: 10px;
|
||||
background: #444;
|
||||
color: #999999;
|
||||
border: 1px solid #DDD;
|
||||
padding: 0.3em;
|
||||
|
|
|
@ -439,7 +439,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -1158,7 +1158,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-green/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1167,14 +1167,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-green/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-green/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
@ -1301,7 +1301,7 @@ transition: all 0.2s ease-in-out;
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
}
|
||||
|
||||
/*marker*/
|
||||
|
@ -1840,7 +1840,7 @@ transition: all 0.2s ease-in-out;
|
|||
font-weight: bolder;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -439,7 +439,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -493,7 +493,7 @@ code {
|
|||
float: right;
|
||||
}
|
||||
.tool a {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
}
|
||||
.tool a:hover {
|
||||
text-decoration: none;
|
||||
|
@ -1155,7 +1155,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-green/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1164,14 +1164,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-green/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-green/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
@ -1297,7 +1297,7 @@ transition: all 0.2s ease-in-out;
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
}
|
||||
|
||||
.wall-item-decor {
|
||||
|
@ -1832,7 +1832,7 @@ transition: all 0.2s ease-in-out;
|
|||
font-weight: bolder;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -1964,7 +1964,7 @@ ul.tabs li {
|
|||
margin-left: 5px;
|
||||
}
|
||||
ul.tabs li .active {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -440,7 +440,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -1134,7 +1134,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-green/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1143,14 +1143,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-green/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-green/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
@ -1276,7 +1276,7 @@ transition: all 0.2s ease-in-out;
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
}
|
||||
|
||||
/*marker*/
|
||||
|
@ -1811,7 +1811,7 @@ transition: all 0.2s ease-in-out;
|
|||
cursor: pointer;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -1945,7 +1945,7 @@ ul.tabs li {
|
|||
margin-left: 5px;
|
||||
}
|
||||
ul.tabs li .active {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -440,7 +440,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -1130,7 +1130,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-green/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1139,14 +1139,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-green/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-green/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
@ -1270,7 +1270,7 @@ transition: all 0.2s ease-in-out;
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
}
|
||||
|
||||
.wall-item-decor {
|
||||
|
@ -1801,7 +1801,7 @@ transition: all 0.2s ease-in-out;
|
|||
cursor: pointer;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -1933,7 +1933,7 @@ ul.tabs li {
|
|||
margin-left: 5px;
|
||||
}
|
||||
ul.tabs li .active {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -476,7 +477,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -614,7 +615,7 @@ header #banner #logo-text {
|
|||
}
|
||||
/* messages */
|
||||
#message-new {
|
||||
background: #194719;
|
||||
background: #2c9936;
|
||||
border: 1px solid #333;
|
||||
width: 150px;
|
||||
}
|
||||
|
@ -991,7 +992,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1185,7 +1186,7 @@ aside #side-peoplefind-url {
|
|||
height: auto;
|
||||
}
|
||||
aside #likes a, a:visited, a:link {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
||||
|
@ -1220,7 +1221,7 @@ aside #likes a:hover{
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
@ -1422,7 +1423,7 @@ body .pageheader{
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
}
|
||||
|
||||
/*marker*/
|
||||
|
@ -2073,7 +2074,7 @@ body .pageheader{
|
|||
cursor: pointer;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -2207,7 +2208,7 @@ ul.tabs li {
|
|||
margin-left: 5px;
|
||||
}
|
||||
ul.tabs li .active {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -2225,7 +2226,7 @@ ul.rs_tabs li {
|
|||
clear: both;
|
||||
}
|
||||
ul.rs_tabs li .selected {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -477,7 +478,7 @@ a:hover {
|
|||
}
|
||||
/*color*/
|
||||
.fakelink {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -550,7 +551,7 @@ code {
|
|||
}
|
||||
/*color*/
|
||||
.tool a {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
}
|
||||
.tool a:hover {
|
||||
text-decoration: none;
|
||||
|
@ -617,7 +618,7 @@ header #banner #logo-text {
|
|||
/*color*/
|
||||
/* messages */
|
||||
#message-new {
|
||||
background: #194719;
|
||||
background: #2c9936;
|
||||
border: 1px solid #333;
|
||||
width: 150px;
|
||||
}
|
||||
|
@ -994,7 +995,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1189,7 +1190,7 @@ aside #side-peoplefind-url {
|
|||
}
|
||||
/*color*/
|
||||
aside #likes a, a:visited, a:link {
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
||||
|
@ -1224,7 +1225,7 @@ aside #likes a:hover{
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
@ -1425,7 +1426,7 @@ body .pageheader{
|
|||
}
|
||||
/*color*/
|
||||
.tread-wrapper a{
|
||||
color: #194719;
|
||||
color: #2c9936;
|
||||
}
|
||||
.wall-item-decor {
|
||||
position: absolute;
|
||||
|
@ -2071,7 +2072,7 @@ body .pageheader{
|
|||
}
|
||||
/*color*/
|
||||
.button.creation2 {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -2204,7 +2205,7 @@ ul.tabs li {
|
|||
}
|
||||
/*color*/
|
||||
ul.tabs li .active {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -2223,7 +2224,7 @@ ul.rs_tabs li {
|
|||
}
|
||||
/*color*/
|
||||
ul.rs_tabs li .selected {
|
||||
background-color: #194719;
|
||||
background-color: #2c9936;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -439,7 +439,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -807,7 +807,7 @@ ul.menu-popup a {
|
|||
text-decoration: none;
|
||||
}
|
||||
ul.menu-popup a:hover {
|
||||
background-color: #996d73; /*bdcdd4;*/
|
||||
background-color: #D02B55; /*bdcdd4;*/
|
||||
color: #fff;
|
||||
}
|
||||
ul.menu-popup .menu-sep {
|
||||
|
@ -1158,7 +1158,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-pink/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1167,14 +1167,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-pink/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-pink/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
@ -1301,7 +1301,7 @@ transition: all 0.2s ease-in-out;
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
}
|
||||
|
||||
/*marker*/
|
||||
|
@ -1840,7 +1840,7 @@ transition: all 0.2s ease-in-out;
|
|||
font-weight: bolder;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -439,7 +439,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -493,7 +493,7 @@ code {
|
|||
float: right;
|
||||
}
|
||||
.tool a {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
}
|
||||
.tool a:hover {
|
||||
text-decoration: none;
|
||||
|
@ -807,7 +807,7 @@ ul.menu-popup a {
|
|||
text-decoration: none;
|
||||
}
|
||||
ul.menu-popup a:hover {
|
||||
background-color: #996d73; /*bdcdd4;*/
|
||||
background-color: #D02B55; /*bdcdd4;*/
|
||||
color: #fff;
|
||||
}
|
||||
ul.menu-popup .menu-sep {
|
||||
|
@ -1155,7 +1155,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-pink/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1164,14 +1164,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-pink/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-pink/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
@ -1297,7 +1297,7 @@ transition: all 0.2s ease-in-out;
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
}
|
||||
|
||||
.wall-item-decor {
|
||||
|
@ -1832,7 +1832,7 @@ transition: all 0.2s ease-in-out;
|
|||
font-weight: bolder;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -1964,7 +1964,7 @@ ul.tabs li {
|
|||
margin-left: 5px;
|
||||
}
|
||||
ul.tabs li .active {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -440,7 +440,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -807,7 +807,7 @@ ul.menu-popup a {
|
|||
text-decoration: none;
|
||||
}
|
||||
ul.menu-popup a:hover {
|
||||
background-color: #996d73; /*bdcdd4;*/
|
||||
background-color: #D02B55; /*bdcdd4;*/
|
||||
color: #fff;
|
||||
}
|
||||
ul.menu-popup .menu-sep {
|
||||
|
@ -1134,7 +1134,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-pink/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1143,14 +1143,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-pink/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-pink/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
@ -1276,7 +1276,7 @@ transition: all 0.2s ease-in-out;
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
}
|
||||
|
||||
/*marker*/
|
||||
|
@ -1811,7 +1811,7 @@ transition: all 0.2s ease-in-out;
|
|||
cursor: pointer;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -1945,7 +1945,7 @@ ul.tabs li {
|
|||
margin-left: 5px;
|
||||
}
|
||||
ul.tabs li .active {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -440,7 +440,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -806,7 +806,7 @@ ul.menu-popup a {
|
|||
text-decoration: none;
|
||||
}
|
||||
ul.menu-popup a:hover {
|
||||
background-color: #996d73; /*bdcdd4;*/
|
||||
background-color: #D02B55; /*bdcdd4;*/
|
||||
color: #fff;
|
||||
}
|
||||
ul.menu-popup .menu-sep {
|
||||
|
@ -1130,7 +1130,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-pink/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1139,14 +1139,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-pink/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-pink/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
@ -1270,7 +1270,7 @@ transition: all 0.2s ease-in-out;
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
}
|
||||
|
||||
.wall-item-decor {
|
||||
|
@ -1801,7 +1801,7 @@ transition: all 0.2s ease-in-out;
|
|||
cursor: pointer;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -1933,7 +1933,7 @@ ul.tabs li {
|
|||
margin-left: 5px;
|
||||
}
|
||||
ul.tabs li .active {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -476,7 +477,7 @@ a:hover {
|
|||
clear: both;
|
||||
}
|
||||
.fakelink {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -614,7 +615,7 @@ header #banner #logo-text {
|
|||
}
|
||||
/* messages */
|
||||
#message-new {
|
||||
background: #996d73;
|
||||
background: #D02B55;
|
||||
border: 1px solid #333;
|
||||
width: 150px;
|
||||
}
|
||||
|
@ -943,7 +944,7 @@ ul.menu-popup a {
|
|||
text-decoration: none;
|
||||
}
|
||||
ul.menu-popup a:hover {
|
||||
background-color: #996d73; /*bdcdd4;*/
|
||||
background-color: #D02B55; /*bdcdd4;*/
|
||||
color: #fff;
|
||||
}
|
||||
ul.menu-popup .menu-sep {
|
||||
|
@ -991,7 +992,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1185,7 +1186,7 @@ aside #side-peoplefind-url {
|
|||
height: auto;
|
||||
}
|
||||
aside #likes a, a:visited, a:link {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
||||
|
@ -1220,7 +1221,7 @@ aside #likes a:hover{
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
@ -1422,7 +1423,7 @@ body .pageheader{
|
|||
padding-top: 10px;
|
||||
}
|
||||
.tread-wrapper a{
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
}
|
||||
|
||||
/*marker*/
|
||||
|
@ -2073,7 +2074,7 @@ body .pageheader{
|
|||
cursor: pointer;
|
||||
}
|
||||
.button.creation2 {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -2207,7 +2208,7 @@ ul.tabs li {
|
|||
margin-left: 5px;
|
||||
}
|
||||
ul.tabs li .active {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -2225,7 +2226,7 @@ ul.rs_tabs li {
|
|||
clear: both;
|
||||
}
|
||||
ul.rs_tabs li .selected {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -477,7 +478,7 @@ a:hover {
|
|||
}
|
||||
/*color*/
|
||||
.fakelink {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
/* color: #3e3e8c; */
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
@ -550,7 +551,7 @@ code {
|
|||
}
|
||||
/*color*/
|
||||
.tool a {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
}
|
||||
.tool a:hover {
|
||||
text-decoration: none;
|
||||
|
@ -617,7 +618,7 @@ header #banner #logo-text {
|
|||
/* messages */
|
||||
/*color*/
|
||||
#message-new {
|
||||
background: #996d73;
|
||||
background: #D02B55;
|
||||
border: 1px solid #333;
|
||||
width: 150px;
|
||||
}
|
||||
|
@ -946,7 +947,7 @@ ul.menu-popup a {
|
|||
}
|
||||
/*color*/
|
||||
ul.menu-popup a:hover {
|
||||
background-color: #996d73; /*bdcdd4;*/
|
||||
background-color: #D02B55; /*bdcdd4;*/
|
||||
color: #fff;
|
||||
}
|
||||
ul.menu-popup .menu-sep {
|
||||
|
@ -994,7 +995,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1189,7 +1190,7 @@ aside #side-peoplefind-url {
|
|||
}
|
||||
/*color*/
|
||||
aside #likes a, a:visited, a:link {
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
||||
|
@ -1224,7 +1225,7 @@ aside #likes a:hover{
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
@ -1425,7 +1426,7 @@ body .pageheader{
|
|||
}
|
||||
/*color*/
|
||||
.tread-wrapper a{
|
||||
color: #996d73;
|
||||
color: #D02B55;
|
||||
}
|
||||
.wall-item-decor {
|
||||
position: absolute;
|
||||
|
@ -2071,7 +2072,7 @@ body .pageheader{
|
|||
}
|
||||
/*color*/
|
||||
.button.creation2 {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -2204,7 +2205,7 @@ ul.tabs li {
|
|||
}
|
||||
/*color*/
|
||||
ul.tabs li .active {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
@ -2223,7 +2224,7 @@ ul.rs_tabs li {
|
|||
}
|
||||
/*color*/
|
||||
ul.rs_tabs li .selected {
|
||||
background-color: #996d73;
|
||||
background-color: #D02B55;
|
||||
border: 1px solid #777777;
|
||||
color: white;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
|
|
|
@ -1182,7 +1182,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-red/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1191,14 +1191,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-red/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-red/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -1178,7 +1178,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-red/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1187,14 +1187,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-red/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-red/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -1141,7 +1141,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-red/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1150,14 +1150,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-red/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-red/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -1137,7 +1137,7 @@ list-style-type: disc;
|
|||
}
|
||||
/* widget: search */
|
||||
span.sbox_l {
|
||||
background: white url('../diabook/icons/srch_l.gif') no-repeat top left;
|
||||
background: white url('../diabook-red/icons/srch_l.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-left: 10px;
|
||||
|
@ -1146,14 +1146,14 @@ span.sbox_l {
|
|||
}
|
||||
|
||||
span.sbox_r {
|
||||
background: white url('../diabook/icons/srch_r.gif') no-repeat top left;
|
||||
background: white url('../diabook-red/icons/srch_r.gif') no-repeat top left;
|
||||
float: left;
|
||||
width: 19px; height: 19px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
span.sbox input {
|
||||
background: white url('../diabook/icons/srch_bg.gif') repeat-x top left;
|
||||
background: white url('../diabook-red/icons/srch_bg.gif') repeat-x top left;
|
||||
float: left;
|
||||
margin-top: 5px;
|
||||
border: 0;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -1013,7 +1014,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1232,7 +1233,7 @@ aside #side-peoplefind-url {
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -1012,7 +1013,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1230,7 +1231,7 @@ aside #side-peoplefind-url {
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
<div style="display: table-cell"></div>
|
||||
<div style="border-top: 1px solid #D2D2D2; width: 100%;margin-top: 30px;">
|
||||
<div id="footerbox" style="display:none">
|
||||
<a style="float:right; color:#333;margin-right:10px;display: table;margin-top: 5px;" href="friendica" title="Site Info / Impressum" >Info / Impressum</a>
|
||||
</div>
|
|
@ -24,3 +24,8 @@ $(function() {
|
|||
_______________________________________________________________________________________________
|
||||
|
||||
http://javascriptly.com/examples/jquery-grab-bag/autogrow-textarea.html
|
||||
|
||||
_______________________________________________________________________________________________
|
||||
|
||||
http://jquery.malsup.com/
|
||||
http://jquery.malsup.com/twitter/
|
||||
|
|
289
view/theme/diabook/js/jquery.twitter.search.js
Normal file
289
view/theme/diabook/js/jquery.twitter.search.js
Normal file
|
@ -0,0 +1,289 @@
|
|||
/*!
|
||||
* jQuery Twitter Search Plugin
|
||||
* Examples and documentation at: http://jquery.malsup.com/twitter/
|
||||
* Copyright (c) 2010 M. Alsup
|
||||
* Version: 1.04 (15-SEP-2011)
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
* Requires: jQuery v1.3.2 or later
|
||||
*/
|
||||
|
||||
;(function($) {
|
||||
$.fn.twitterSearch = function(options) {
|
||||
if (typeof options == 'string')
|
||||
options = { term: options };
|
||||
return this.each(function() {
|
||||
var grabFlag = false,
|
||||
grabbing = false,
|
||||
$frame = $(this), text, $text, $title, $bird, $cont, height, paused = false,
|
||||
opts = $.extend(true, {}, $.fn.twitterSearch.defaults, options || {}, $.metadata ? $frame.metadata() : {});
|
||||
|
||||
opts.formatter = opts.formatter || $.fn.twitterSearch.formatter;
|
||||
opts.filter = opts.filter || $.fn.twitterSearch.filter;
|
||||
|
||||
if (!opts.applyStyles) { // throw away all style defs
|
||||
for (var css in opts.css)
|
||||
opts.css[css] = {};
|
||||
}
|
||||
|
||||
if (opts.title === null) // user can set to '' to suppress title
|
||||
opts.title = opts.term;
|
||||
|
||||
opts.title = opts.title || '';
|
||||
text = opts.titleLink ? ('<a href="'+ opts.titleLink +'">'+ opts.title + '</a>') : ('<span>' + opts.title +'<a id="close_friends_icon" onClick="close_twitter()" class="icon close_box" title="close"></a>'+ '</span>');
|
||||
$text = $(text);
|
||||
if (opts.titleLink)
|
||||
$text.css(opts.css['titleLink']);
|
||||
$title = $('<div class="twitterSearchTitle"></div>').append($text).appendTo($frame).css(opts.css['title']);
|
||||
if (opts.bird) {
|
||||
$bird = $('<img class="twitterSearchBird" src="'+opts.birdSrc+'" />').appendTo($title).css(opts.css['bird']);
|
||||
if (opts.birdLink)
|
||||
$bird.wrap('<a href="'+ opts.birdLink +'"></a>');
|
||||
}
|
||||
$cont = $('<div class="twitterSearchContainter"></div>').appendTo($frame).css(opts.css['container']);
|
||||
cont = $cont[0];
|
||||
if (opts.colorExterior)
|
||||
$title.css('background-color',opts.colorExterior);
|
||||
if (opts.colorInterior)
|
||||
$cont.css('background-color',opts.colorInterior);
|
||||
|
||||
$frame.css(opts.css['frame']);
|
||||
if (opts.colorExterior)
|
||||
$frame.css('border-color',opts.colorExterior);
|
||||
|
||||
height = $frame.innerHeight() - $title.outerHeight();
|
||||
$cont.height(height);
|
||||
|
||||
if (opts.pause)
|
||||
$cont.hover(function(){paused = true;},function(){paused = false;});
|
||||
|
||||
$('<div class="twitterSearchLoading">Loading tweets..</div>').css(opts.css['loading']).appendTo($cont);
|
||||
|
||||
grabTweets();
|
||||
|
||||
function grabTweets() {
|
||||
var url = opts.url + opts.term;
|
||||
grabFlag = false;
|
||||
grabbing = true;
|
||||
// grab twitter stream
|
||||
$.getJSONP({
|
||||
url: url,
|
||||
timeout: 30000,
|
||||
error: function(xhr, status, e) {
|
||||
failWhale(e);
|
||||
},
|
||||
complete: function() {
|
||||
grabbing = false;
|
||||
if (opts.refreshSeconds)
|
||||
setTimeout(regrab, opts.refreshSeconds * 1000);
|
||||
},
|
||||
success: function(json) {
|
||||
if (json.error) {
|
||||
failWhale(json.error);
|
||||
return;
|
||||
}
|
||||
$cont.fadeOut('fast',function() {
|
||||
$cont.empty();
|
||||
|
||||
// iterate twitter results
|
||||
$.each(json.results, function(i) {
|
||||
if (!opts.filter.call(opts, this))
|
||||
return; // skip this tweet
|
||||
var $img, $text, w,
|
||||
tweet = opts.formatter(this, opts),
|
||||
$tweet = $(tweet);
|
||||
$tweet.css(opts.css['tweet']);
|
||||
$img = $tweet.find('.twitterSearchProfileImg').css(opts.css['img']);
|
||||
$tweet.find('.twitterSearchUser').css(opts.css['user']);
|
||||
$tweet.find('.twitterSearchTime').css(opts.css['time']);
|
||||
$tweet.find('a').css(opts.css['a']);
|
||||
$tweet.appendTo($cont);
|
||||
$text = $tweet.find('.twitterSearchText').css(opts.css['text']);
|
||||
if (opts.avatar) {
|
||||
w = $img.outerWidth() + parseInt($tweet.css('paddingLeft'));
|
||||
$text.css('paddingLeft', w);
|
||||
}
|
||||
});
|
||||
|
||||
$cont.fadeIn('fast');
|
||||
|
||||
if (json.results.length < 2) {
|
||||
if (opts.refreshSeconds)
|
||||
setTimeout(grabTweets, opts.refreshSeconds * 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
// stage first animation
|
||||
setTimeout(go, opts.timeout);
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
function regrab() {
|
||||
grabFlag = true;
|
||||
}
|
||||
|
||||
function failWhale(msg) {
|
||||
var $fail = $('<div class="twitterSearchFail">' + msg + '</div>').css(opts.css['fail']);
|
||||
$cont.empty().append($fail);
|
||||
};
|
||||
|
||||
function go() {
|
||||
if (paused || grabbing) {
|
||||
setTimeout(go, 500);
|
||||
return;
|
||||
}
|
||||
var h, $el = $cont.children(':first'), el = $el[0];
|
||||
$el.animate(opts.animOut, opts.animOutSpeed, function() {
|
||||
h = $el.outerHeight();
|
||||
$el.animate({ marginTop: -h }, opts.animInSpeed, function() {
|
||||
$el.css({ marginTop: 0, opacity: 1 });
|
||||
/*@cc_on
|
||||
try { el.style.removeAttribute('filter'); } // ie cleartype fix
|
||||
catch(smother) {}
|
||||
@*/
|
||||
$el.css(opts.css['tweet']).show().appendTo($cont);
|
||||
|
||||
setTimeout(grabFlag ? grabTweets : go, opts.timeout);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.twitterSearch.filter = function(tweet) {
|
||||
return true;
|
||||
};
|
||||
|
||||
$.fn.twitterSearch.formatter = function(json, opts) {
|
||||
var str, pretty,
|
||||
text = json.text;
|
||||
if (opts.anchors) {
|
||||
text = json.text.replace(/(http:\/\/\S+)/g, '<a href="$1">$1</a>');
|
||||
text = text.replace(/\@(\w+)/g, '<a href="http://twitter.com/$1">@$1</a>');
|
||||
}
|
||||
str = '<div class="twitterSearchTweet">';
|
||||
if (opts.avatar)
|
||||
str += '<img class="twitterSearchProfileImg" src="' + json.profile_image_url + '" />';
|
||||
str += '<div><span class="twitterSearchUser"><a href="http://www.twitter.com/'+ json.from_user+'/status/'+ json.id_str +'">'
|
||||
+ json.from_user + '</a></span>';
|
||||
pretty = prettyDate(json.created_at);
|
||||
if (opts.time && pretty)
|
||||
str += ' <span class="twitterSearchTime">('+ pretty +')</span>'
|
||||
str += '<div class="twitterSearchText">' + text + '</div></div></div>';
|
||||
return str;
|
||||
};
|
||||
|
||||
$.fn.twitterSearch.defaults = {
|
||||
url: 'http://search.twitter.com/search.json?callback=?&q=',
|
||||
anchors: true, // true or false (enable embedded links in tweets)
|
||||
animOutSpeed: 500, // speed of animation for top tweet when removed
|
||||
animInSpeed: 500, // speed of scroll animation for moving tweets up
|
||||
animOut: { opacity: 0 }, // animation of top tweet when it is removed
|
||||
applyStyles: true, // true or false (apply default css styling or not)
|
||||
avatar: true, // true or false (show or hide twitter profile images)
|
||||
bird: true, // true or false (show or hide twitter bird image)
|
||||
birdLink: false, // url that twitter bird image should like to
|
||||
birdSrc: 'http://cloud.github.com/downloads/malsup/twitter/tweet.gif', // twitter bird image
|
||||
colorExterior: null, // css override of frame border-color and title background-color
|
||||
colorInterior: null, // css override of container background-color
|
||||
filter: null, // callback fn to filter tweets: fn(tweetJson) { /* return false to skip tweet */ }
|
||||
formatter: null, // callback fn to build tweet markup
|
||||
pause: false, // true or false (pause on hover)
|
||||
refreshSeconds: 0, // number of seconds to wait before polling for newer tweets
|
||||
term: '', // twitter search term
|
||||
time: true, // true or false (show or hide the time that the tweet was sent)
|
||||
timeout: 4000, // delay betweet tweet scroll
|
||||
title: null, // title text to display when frame option is true (default = 'term' text)
|
||||
titleLink: null, // url for title link
|
||||
css: {
|
||||
// default styling
|
||||
a: { textDecoration: 'none', color: '#3B5998' },
|
||||
bird: { width: '50px', height: '20px', position: 'absolute', left: '-30px', top: '-20px', border: 'none' },
|
||||
container: { overflow: 'hidden', backgroundColor: '', height: '360px' },
|
||||
fail: { background: '#6cc5c3 url(http://cloud.github.com/downloads/malsup/twitter/failwhale.png) no-repeat 50% 50%', height: '100%', padding: '10px' },
|
||||
frame: { border: '0px solid #C2CFF1', borderRadius: '0px', '-moz-border-radius': '0px', '-webkit-border-radius': '0px' },
|
||||
tweet: { padding: '5px 10px', clear: 'left' },
|
||||
img: { 'float': 'left', margin: '5px', width: '48px', height: '48px' },
|
||||
loading: { padding: '20px', textAlign: 'center', color: '#888' },
|
||||
text: {},
|
||||
time: { fontSize: 'smaller', color: '#888' },
|
||||
title: { 'border-bottom': '1px solid #D2D2D2', 'padding-top': '5px', 'padding-bottom': '0px', 'padding-left': '9px', 'margin-bottom': '0px', 'margin-top': '30px' , 'display': 'block', 'font-size': '1.17em', 'font-weight': 'bold'},
|
||||
titleLink: { textDecoration: 'none', color: '#3B5998' },
|
||||
user: { fontWeight: 'bold' }
|
||||
}
|
||||
};
|
||||
|
||||
// fn to handle jsonp with timeouts and errors
|
||||
// hat tip to Ricardo Tomasi for the timeout logic
|
||||
$.getJSONP = function(s) {
|
||||
s.dataType = 'jsonp';
|
||||
$.ajax(s);
|
||||
|
||||
// figure out what the callback fn is
|
||||
var $script = $(document.getElementsByTagName('head')[0].firstChild);
|
||||
var url = $script.attr('src') || '';
|
||||
var cb = (url.match(/callback=(\w+)/)||[])[1];
|
||||
if (!cb)
|
||||
return; // bail
|
||||
var t = 0, cbFn = window[cb];
|
||||
|
||||
$script[0].onerror = function(e) {
|
||||
$script.remove();
|
||||
handleError(s, {}, "error", e);
|
||||
clearTimeout(t);
|
||||
};
|
||||
|
||||
if (!s.timeout)
|
||||
return;
|
||||
|
||||
window[cb] = function(json) {
|
||||
clearTimeout(t);
|
||||
cbFn(json);
|
||||
cbFn = null;
|
||||
};
|
||||
|
||||
t = setTimeout(function() {
|
||||
$script.remove();
|
||||
handleError(s, {}, "timeout");
|
||||
if (cbFn)
|
||||
window[cb] = function(){};
|
||||
}, s.timeout);
|
||||
|
||||
function handleError(s, xhr, msg, e) {
|
||||
s.error && s.error.call(s.context, xhr, msg, e);
|
||||
s.global && $.event.trigger("ajaxError", [xhr, s, e || msg]);
|
||||
s.complete && s.complete.call(s.context, xhr, e || msg);
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* JavaScript Pretty Date
|
||||
* Copyright (c) 2008 John Resig (jquery.com)
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
// converts ISO time to casual time
|
||||
function prettyDate(time){
|
||||
var date = new Date((time || "").replace(/-/g,"/").replace(/TZ/g," ")),
|
||||
diff = (((new Date()).getTime() - date.getTime()) / 1000),
|
||||
day_diff = Math.floor(diff / 86400);
|
||||
|
||||
if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 )
|
||||
return;
|
||||
var v = day_diff == 0 && (
|
||||
diff < 60 && "just now" ||
|
||||
diff < 120 && "1 minute ago" ||
|
||||
diff < 3600 && Math.floor( diff / 60 ) + " minutes ago" ||
|
||||
diff < 7200 && "1 hour ago" ||
|
||||
diff < 86400 && Math.floor( diff / 3600 ) + " hours ago") ||
|
||||
day_diff == 1 && "Yesterday" ||
|
||||
day_diff < 7 && day_diff + " days ago" ||
|
||||
day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago";
|
||||
if (!v)
|
||||
window.console && console.log(time);
|
||||
return v ? v : '';
|
||||
}
|
||||
|
||||
})(jQuery);
|
|
@ -136,7 +136,7 @@
|
|||
</nav>
|
||||
|
||||
|
||||
<div id="scrollup" style="position: fixed; bottom: 5px; right: 10px;"><a id="down" onclick="scrolldown()" ><img id="scroll_top_bottom" src="view/theme/diabook/icons/scroll_bottom.png" style="display:cursor !important;" alt="back to top" title="Back to top"></a></div>
|
||||
<div id="scrollup" style="position: fixed; bottom: 5px; right: 10px;z-index: 97;"><a id="down" onclick="scrolldown()" ><img id="scroll_top_bottom" src="view/theme/diabook/icons/scroll_bottom.png" style="display:cursor !important;" alt="back to top" title="Back to top"></a></div>
|
||||
<div style="position: fixed; bottom: 3px; left: 25px;">$langselector</div>
|
||||
<div style="position: fixed; bottom: 23px; left: 5px;"><a href="http://pad.toktan.org/p/diabook" target="blank" ><img src="view/theme/diabook/icons/bluebug.png" title="report bugs for the theme diabook"/></a></div>
|
||||
|
||||
|
|
|
@ -1252,6 +1252,7 @@ right_aside .icon {width: 10px; height: 10px;}
|
|||
transition: all 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
|
||||
/* wall item */
|
||||
.tread-wrapper {
|
||||
border-bottom: 1px solid #D2D2D2;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -974,7 +975,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1195,7 +1196,7 @@ aside #side-peoplefind-url {
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
.admin.linklist {
|
||||
border: 0px; padding: 0px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.admin.link {
|
||||
|
@ -974,7 +975,7 @@ ul.menu-popup .empty {
|
|||
background-color: #bdcdd4;
|
||||
}
|
||||
#nav-notifications-menu {
|
||||
width: 400px;
|
||||
width: 425px !important;
|
||||
max-height: 550px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
@ -1198,7 +1199,7 @@ aside #side-peoplefind-url {
|
|||
margin-right: 20px;
|
||||
}
|
||||
#login-submit-wrapper{
|
||||
padding-top: 120px;
|
||||
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
aside #login-submit-button{
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
/*
|
||||
* Name: Diabook
|
||||
* Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
|
||||
* Version: (Version: 1.022)
|
||||
* Version: (Version: 1.024)
|
||||
* Author:
|
||||
*/
|
||||
|
||||
|
||||
//print diabook-version for debugging
|
||||
$diabook_version = "Diabook (Version: 1.022)";
|
||||
$diabook_version = "Diabook (Version: 1.024)";
|
||||
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version);
|
||||
|
||||
//change css on network and profilepages
|
||||
|
@ -44,6 +44,26 @@ function diabook_community_info(){
|
|||
$a = get_app();
|
||||
|
||||
|
||||
// comunity_profiles
|
||||
$aside['$comunity_profilest_title'] = t('Community Profiles');
|
||||
$aside['$comunity_profiles_items'] = array();
|
||||
$r = q("select gcontact.* from gcontact left join glink on glink.gcid = gcontact.id
|
||||
where glink.cid = 0 and glink.uid = 0 order by rand() limit 9");
|
||||
$tpl = file_get_contents( dirname(__file__).'/ch_directory_item.tpl');
|
||||
if(count($r)) {
|
||||
$photo = 'photo';
|
||||
foreach($r as $rr) {
|
||||
$profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
|
||||
$entry = replace_macros($tpl,array(
|
||||
'$id' => $rr['id'],
|
||||
'$profile-link' => zrl($rr['url']),
|
||||
'$photo' => $rr[$photo],
|
||||
'$alt-text' => $rr['name'],
|
||||
));
|
||||
$aside['$comunity_profiles_items'][] = $entry;
|
||||
}
|
||||
}
|
||||
|
||||
// last 12 users
|
||||
$aside['$lastusers_title'] = t('Last users');
|
||||
$aside['$lastusers_items'] = array();
|
||||
|
@ -175,9 +195,8 @@ function diabook_community_info(){
|
|||
|
||||
//Community Page
|
||||
if(local_user()) {
|
||||
$page = '<div id="page-sidebar-right_aside" class="widget">
|
||||
<div class="title tool">
|
||||
<h3>'.t("Community Pages").'<a id="close_pages_icon" onClick="close_pages()" class="icon close_box" title="close"></a></h3></div>
|
||||
$page = '<div id="page-sidebar-right_aside" >
|
||||
<h3 style="margin-top:0px;">'.t("Community Pages").'<a id="close_pages_icon" onClick="close_pages()" class="icon close_box" title="close"></a></h3></div>
|
||||
<div id="sidebar-page-list"><ul>';
|
||||
|
||||
$pagelist = array();
|
||||
|
@ -266,9 +285,9 @@ if ($a->argv[0] === "network" && local_user()){
|
|||
|
||||
}
|
||||
|
||||
$ccCookie = $_COOKIE['close_pages'] + $_COOKIE['close_helpers'] + $_COOKIE['close_services'] + $_COOKIE['close_friends'] + $_COOKIE['close_lastusers'] + $_COOKIE['close_lastphotos'] + $_COOKIE['close_lastlikes'];
|
||||
$ccCookie = $_COOKIE['close_pages'] + $_COOKIE['close_profiles'] + $_COOKIE['close_helpers'] + $_COOKIE['close_services'] + $_COOKIE['close_friends'] + $_COOKIE['close_twitter'] + $_COOKIE['close_lastusers'] + $_COOKIE['close_lastphotos'] + $_COOKIE['close_lastlikes'];
|
||||
|
||||
if($ccCookie != "7") {
|
||||
if($ccCookie != "9") {
|
||||
// COMMUNITY
|
||||
diabook_community_info();
|
||||
|
||||
|
@ -282,7 +301,7 @@ if ($a->argv[0] === "network" && local_user()){
|
|||
|
||||
//right_aside at profile pages
|
||||
if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
|
||||
if($ccCookie != "7") {
|
||||
if($ccCookie != "9") {
|
||||
// COMMUNITY
|
||||
diabook_community_info();
|
||||
|
||||
|
@ -312,7 +331,25 @@ $a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></scrip
|
|||
$autogrowJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.autogrow.textarea.js";
|
||||
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $autogrowJS);
|
||||
|
||||
//load jquery.twitter.search.js
|
||||
$twitterJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.twitter.search.js";
|
||||
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $twitterJS);
|
||||
|
||||
//js scripts
|
||||
|
||||
//check if community_home-plugin is activated and change css
|
||||
$nametocheck = "communityhome";
|
||||
$r = q("select id from addon where name = '%s' and installed = 1", dbesc($nametocheck));
|
||||
if(count($r) == "1") {
|
||||
|
||||
$a->page['htmlhead'] .= '
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("div#login-submit-wrapper").attr("style","padding-top: 120px;");
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
|
||||
//comment-edit-wrapper on photo_view
|
||||
if ($a->argv[0].$a->argv[2] === "photos"."image"){
|
||||
|
||||
|
@ -324,16 +361,28 @@ $a->page['htmlhead'] .= '
|
|||
|
||||
});
|
||||
</script>';
|
||||
|
||||
}
|
||||
|
||||
$a->page['htmlhead'] .= '
|
||||
|
||||
<script>
|
||||
|
||||
$(function() {
|
||||
$("a.lightbox").fancybox(); // Select all links with lightbox class
|
||||
$("#twitter").twitterSearch({
|
||||
term: "friendica",
|
||||
animInSpeed: 250,
|
||||
bird: false,
|
||||
avatar: false,
|
||||
colorExterior: "#fff",
|
||||
title: "Last Tweets",
|
||||
timeout: 10000 });
|
||||
});
|
||||
|
||||
$(window).load(function() {
|
||||
var footer_top = $(document).height() - 30;
|
||||
$("div#footerbox").attr("style", "border-top: 1px solid #D2D2D2; width: 70%;right: 15%;position: absolute;top:"+footer_top+"px;");
|
||||
});
|
||||
</script>';
|
||||
|
||||
|
||||
|
@ -412,8 +461,10 @@ $a->page['htmlhead'] .= '
|
|||
function restore_boxes(){
|
||||
$.cookie("close_pages","2", { expires: 365, path: "/" });
|
||||
$.cookie("close_helpers","2", { expires: 365, path: "/" });
|
||||
$.cookie("close_profiles","2", { expires: 365, path: "/" });
|
||||
$.cookie("close_services","2", { expires: 365, path: "/" });
|
||||
$.cookie("close_friends","2", { expires: 365, path: "/" });
|
||||
$.cookie("close_twitter","2", { expires: 365, path: "/" });
|
||||
$.cookie("close_lastusers","2", { expires: 365, path: "/" });
|
||||
$.cookie("close_lastphotos","2", { expires: 365, path: "/" });
|
||||
$.cookie("close_lastlikes","2", { expires: 365, path: "/" });
|
||||
|
@ -433,7 +484,7 @@ $a->page['htmlhead'] .= '
|
|||
</script>';
|
||||
|
||||
|
||||
if($ccCookie != "7") {
|
||||
if($ccCookie != "9") {
|
||||
$a->page['htmlhead'] .= '
|
||||
<script>
|
||||
$("right_aside").ready(function(){
|
||||
|
@ -442,6 +493,11 @@ $("right_aside").ready(function(){
|
|||
{
|
||||
document.getElementById( "close_pages" ).style.display = "none";
|
||||
};
|
||||
|
||||
if($.cookie("close_profiles") == "1")
|
||||
{
|
||||
document.getElementById( "close_profiles" ).style.display = "none";
|
||||
};
|
||||
|
||||
if($.cookie("close_helpers") == "1")
|
||||
{
|
||||
|
@ -458,6 +514,10 @@ $("right_aside").ready(function(){
|
|||
document.getElementById( "close_friends" ).style.display = "none";
|
||||
};
|
||||
|
||||
if($.cookie("close_twitter") == "1")
|
||||
{
|
||||
document.getElementById( "twitter" ).style.display = "none";
|
||||
};
|
||||
|
||||
if($.cookie("close_lastusers") == "1")
|
||||
{
|
||||
|
@ -481,6 +541,11 @@ function close_pages(){
|
|||
$.cookie("close_pages","1", { expires: 365, path: "/" });
|
||||
};
|
||||
|
||||
function close_profiles(){
|
||||
document.getElementById( "close_profiles" ).style.display = "none";
|
||||
$.cookie("close_profiles","1", { expires: 365, path: "/" });
|
||||
};
|
||||
|
||||
function close_helpers(){
|
||||
document.getElementById( "close_helpers" ).style.display = "none";
|
||||
$.cookie("close_helpers","1", { expires: 365, path: "/" });
|
||||
|
@ -495,7 +560,11 @@ function close_friends(){
|
|||
document.getElementById( "close_friends" ).style.display = "none";
|
||||
$.cookie("close_friends","1", { expires: 365, path: "/" });
|
||||
};
|
||||
|
||||
|
||||
function close_twitter(){
|
||||
document.getElementById( "twitter" ).style.display = "none";
|
||||
$.cookie("close_twitter","1", { expires: 365, path: "/" });
|
||||
};
|
||||
|
||||
function close_lastusers(){
|
||||
document.getElementById( "close_lastusers" ).style.display = "none";
|
||||
|
|
|
@ -73,8 +73,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
|
|||
#nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;}
|
||||
.floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(dark/icons.png) -190px -60px no-repeat;}
|
||||
.search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#1d1f1d;border-radius:5px;}
|
||||
#search-text{border:1px #eec solid;background:#2e2f2e;color:#eec;}
|
||||
.search-box #search-text{margin:8px;width:10em;height:14px;color:#eec;}
|
||||
#search-text{border:1px #eec solid;background:#2e2f2e;color:#eec;font-size:8pt;margin:8px;width:10em;height:14px;}
|
||||
#scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;}
|
||||
#user-menu{box-shadow:5px 0 10px 0 #111;display:block;width:75%;margin:3px 0 0 0;position:relative;background-color:#555753;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background:#555753 url("dark/menu-user-pin.jpg") 98% center no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;}
|
||||
#user-menu-label{font-size:12px;padding:3px 20px 9px 5px;height:10px;}
|
||||
|
|
|
@ -477,13 +477,11 @@ nav #nav-notifications-linkmenu {
|
|||
#search-text {
|
||||
border: 1px #eec solid;
|
||||
background: #2e2f2e;
|
||||
color: #eec; }
|
||||
|
||||
.search-box #search-text {
|
||||
color: #eec;
|
||||
font-size: 8pt;
|
||||
margin: 8px;
|
||||
width: 10em;
|
||||
height: 14px;
|
||||
color: #eec; }
|
||||
height: 14px; }
|
||||
|
||||
#scrollup {
|
||||
position: fixed;
|
||||
|
|
|
@ -73,8 +73,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
|
|||
#nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;}
|
||||
.floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(light/icons.png) -190px -60px no-repeat;}
|
||||
.search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#1d1f1d;border-radius:5px;}
|
||||
#search-text{border:1px #eec solid;background:#2e3436;color:#eec;}
|
||||
.search-box #search-text{margin:8px;width:10em;height:14px;color:#eec;}
|
||||
#search-text{border:1px #eec solid;background:#2e3436;color:#eec;font-size:8pt;margin:8px;width:10em;height:14px;}
|
||||
#scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;}
|
||||
#user-menu{box-shadow:5px 0 10px 0 #111;display:block;width:75%;margin:3px 0 0 0;position:relative;background-color:#555753;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background:#555753 url("light/menu-user-pin.jpg") 98% center no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;}
|
||||
#user-menu-label{font-size:12px;padding:3px 20px 9px 5px;height:10px;}
|
||||
|
|
|
@ -478,13 +478,11 @@ nav #nav-notifications-linkmenu {
|
|||
#search-text {
|
||||
border: 1px #eec solid;
|
||||
background: #2e3436;
|
||||
color: #eec; }
|
||||
|
||||
.search-box #search-text {
|
||||
color: #eec;
|
||||
font-size: 8pt;
|
||||
margin: 8px;
|
||||
width: 10em;
|
||||
height: 14px;
|
||||
color: #eec; }
|
||||
height: 14px; }
|
||||
|
||||
#scrollup {
|
||||
position: fixed;
|
||||
|
|
Loading…
Reference in a new issue