Merge https://github.com/friendica/friendica into pull
This commit is contained in:
commit
8b51ffefc0
20 changed files with 18099 additions and 24066 deletions
9
boot.php
9
boot.php
|
@ -401,6 +401,7 @@ if(! class_exists('App')) {
|
||||||
private $db;
|
private $db;
|
||||||
|
|
||||||
private $curl_code;
|
private $curl_code;
|
||||||
|
private $curl_content_type;
|
||||||
private $curl_headers;
|
private $curl_headers;
|
||||||
|
|
||||||
private $cached_profile_image;
|
private $cached_profile_image;
|
||||||
|
@ -673,6 +674,14 @@ if(! class_exists('App')) {
|
||||||
return $this->curl_code;
|
return $this->curl_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function set_curl_content_type($content_type) {
|
||||||
|
$this->curl_content_type = $content_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_curl_content_type() {
|
||||||
|
return $this->curl_content_type;
|
||||||
|
}
|
||||||
|
|
||||||
function set_curl_headers($headers) {
|
function set_curl_headers($headers) {
|
||||||
$this->curl_headers = $headers;
|
$this->curl_headers = $headers;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,10 +19,20 @@ function cronhooks_run(&$argv, &$argc){
|
||||||
|
|
||||||
require_once('include/session.php');
|
require_once('include/session.php');
|
||||||
require_once('include/datetime.php');
|
require_once('include/datetime.php');
|
||||||
|
require_once('include/pidfile.php');
|
||||||
|
|
||||||
load_config('config');
|
load_config('config');
|
||||||
load_config('system');
|
load_config('system');
|
||||||
|
|
||||||
|
$lockpath = get_config('system','lockpath');
|
||||||
|
if ($lockpath != '') {
|
||||||
|
$pidfile = new pidfile($lockpath, 'cron.lck');
|
||||||
|
if($pidfile->is_already_running()) {
|
||||||
|
logger("cronhooks: Already running");
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$a->set_baseurl(get_config('system','url'));
|
$a->set_baseurl(get_config('system','url'));
|
||||||
|
|
||||||
load_hooks();
|
load_hooks();
|
||||||
|
|
|
@ -1589,6 +1589,26 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
This function returns true if $update has an edited timestamp newer
|
||||||
|
than $existing, i.e. $update contains new data which should override
|
||||||
|
what's already there. If there is no timestamp yet, the update is
|
||||||
|
assumed to be newer. If the update has no timestamp, the existing
|
||||||
|
item is assumed to be up-to-date. If the timestamps are equal it
|
||||||
|
assumes the update has been seen before and should be ignored.
|
||||||
|
*/
|
||||||
|
function edited_timestamp_is_newer($existing, $update) {
|
||||||
|
if (!x($existing,'edited') || !$existing['edited']) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!x($update,'edited') || !$update['edited']) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$existing_edited = datetime_convert('UTC', 'UTC', $existing['edited']);
|
||||||
|
$update_edited = datetime_convert('UTC', 'UTC', $update['edited']);
|
||||||
|
return (strcmp($existing_edited, $update_edited) < 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* consume_feed - process atom feed and update anything/everything we might need to update
|
* consume_feed - process atom feed and update anything/everything we might need to update
|
||||||
|
@ -2002,7 +2022,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
||||||
// Update content if 'updated' changes
|
// Update content if 'updated' changes
|
||||||
|
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
|
if (edited_timestamp_is_newer($r[0], $datarray)) {
|
||||||
|
|
||||||
// do not accept (ignore) an earlier edit than one we currently have.
|
// do not accept (ignore) an earlier edit than one we currently have.
|
||||||
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
||||||
|
@ -2151,7 +2171,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
||||||
// Update content if 'updated' changes
|
// Update content if 'updated' changes
|
||||||
|
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
|
if (edited_timestamp_is_newer($r[0], $datarray)) {
|
||||||
|
|
||||||
// do not accept (ignore) an earlier edit than one we currently have.
|
// do not accept (ignore) an earlier edit than one we currently have.
|
||||||
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
||||||
|
@ -2905,7 +2925,7 @@ function local_delivery($importer,$data) {
|
||||||
|
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
$iid = $r[0]['id'];
|
$iid = $r[0]['id'];
|
||||||
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
|
if (edited_timestamp_is_newer($r[0], $datarray)) {
|
||||||
|
|
||||||
// do not accept (ignore) an earlier edit than one we currently have.
|
// do not accept (ignore) an earlier edit than one we currently have.
|
||||||
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
||||||
|
@ -3080,7 +3100,7 @@ function local_delivery($importer,$data) {
|
||||||
// Update content if 'updated' changes
|
// Update content if 'updated' changes
|
||||||
|
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
|
if (edited_timestamp_is_newer($r[0], $datarray)) {
|
||||||
|
|
||||||
// do not accept (ignore) an earlier edit than one we currently have.
|
// do not accept (ignore) an earlier edit than one we currently have.
|
||||||
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
||||||
|
@ -3256,7 +3276,7 @@ function local_delivery($importer,$data) {
|
||||||
// Update content if 'updated' changes
|
// Update content if 'updated' changes
|
||||||
|
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
if((x($datarray,'edited') !== false) && (datetime_convert('UTC','UTC',$datarray['edited']) !== $r[0]['edited'])) {
|
if (edited_timestamp_is_newer($r[0], $datarray)) {
|
||||||
|
|
||||||
// do not accept (ignore) an earlier edit than one we currently have.
|
// do not accept (ignore) an earlier edit than one we currently have.
|
||||||
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
if(datetime_convert('UTC','UTC',$datarray['edited']) < $r[0]['edited'])
|
||||||
|
|
|
@ -94,14 +94,14 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_
|
||||||
}
|
}
|
||||||
if(strpos($newurl,'/') === 0)
|
if(strpos($newurl,'/') === 0)
|
||||||
$newurl = $url . $newurl;
|
$newurl = $url . $newurl;
|
||||||
$url_parsed = @parse_url($newurl);
|
if (filter_var($newurl, FILTER_VALIDATE_URL)) {
|
||||||
if (isset($url_parsed)) {
|
|
||||||
$redirects++;
|
$redirects++;
|
||||||
return fetch_url($newurl,$binary,$redirects,$timeout);
|
return fetch_url($newurl,$binary,$redirects,$timeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$a->set_curl_code($http_code);
|
$a->set_curl_code($http_code);
|
||||||
|
$a->set_curl_content_type($curl_info['content_type']);
|
||||||
|
|
||||||
$body = substr($s,strlen($header));
|
$body = substr($s,strlen($header));
|
||||||
$a->set_curl_headers($header);
|
$a->set_curl_headers($header);
|
||||||
|
@ -189,8 +189,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
|
||||||
$newurl = trim(array_pop($matches));
|
$newurl = trim(array_pop($matches));
|
||||||
if(strpos($newurl,'/') === 0)
|
if(strpos($newurl,'/') === 0)
|
||||||
$newurl = $url . $newurl;
|
$newurl = $url . $newurl;
|
||||||
$url_parsed = @parse_url($newurl);
|
if (filter_var($newurl, FILTER_VALIDATE_URL)) {
|
||||||
if (isset($url_parsed)) {
|
|
||||||
$redirects++;
|
$redirects++;
|
||||||
return fetch_url($newurl,false,$redirects,$timeout);
|
return fetch_url($newurl,false,$redirects,$timeout);
|
||||||
}
|
}
|
||||||
|
|
|
@ -331,13 +331,17 @@ function onepoll_run(&$argv, &$argc){
|
||||||
);
|
);
|
||||||
|
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'],LOGGER_DEBUG);
|
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user']." UID: ".$importer_uid." URI: ".$datarray['uri'],LOGGER_DEBUG);
|
||||||
|
|
||||||
|
// Only delete when mails aren't automatically moved or deleted
|
||||||
|
if (($mailconf[0]['action'] != 1) AND ($mailconf[0]['action'] != 3))
|
||||||
if($meta->deleted && ! $r[0]['deleted']) {
|
if($meta->deleted && ! $r[0]['deleted']) {
|
||||||
q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
|
q("UPDATE `item` SET `deleted` = 1, `changed` = '%s' WHERE `id` = %d LIMIT 1",
|
||||||
dbesc(datetime_convert()),
|
dbesc(datetime_convert()),
|
||||||
intval($r[0]['id'])
|
intval($r[0]['id'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($mailconf[0]['action']) {
|
switch ($mailconf[0]['action']) {
|
||||||
case 0:
|
case 0:
|
||||||
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'].". Doing nothing.", LOGGER_DEBUG);
|
logger("Mail: Seen before ".$msg_uid." for ".$mailconf[0]['user'].". Doing nothing.", LOGGER_DEBUG);
|
||||||
|
|
449
include/text.php
449
include/text.php
|
@ -12,6 +12,15 @@ require_once("include/template_processor.php");
|
||||||
require_once("include/friendica_smarty.php");
|
require_once("include/friendica_smarty.php");
|
||||||
|
|
||||||
if(! function_exists('replace_macros')) {
|
if(! function_exists('replace_macros')) {
|
||||||
|
/**
|
||||||
|
* This is our template processor
|
||||||
|
*
|
||||||
|
* @global Template $t
|
||||||
|
* @param string|FriendicaSmarty $s the string requiring macro substitution,
|
||||||
|
* or an instance of FriendicaSmarty
|
||||||
|
* @param array $r key value pairs (search => replace)
|
||||||
|
* @return string substituted string
|
||||||
|
*/
|
||||||
function replace_macros($s,$r) {
|
function replace_macros($s,$r) {
|
||||||
global $t;
|
global $t;
|
||||||
|
|
||||||
|
@ -59,6 +68,7 @@ function random_string($size = 64,$type = RANDOM_STRING_HEX) {
|
||||||
return(substr($s,0,$size));
|
return(substr($s,0,$size));
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
if(! function_exists('notags')) {
|
||||||
/**
|
/**
|
||||||
* This is our primary input filter.
|
* This is our primary input filter.
|
||||||
*
|
*
|
||||||
|
@ -73,9 +83,9 @@ function random_string($size = 64,$type = RANDOM_STRING_HEX) {
|
||||||
* They will be replaced with safer brackets. This may be filtered further
|
* They will be replaced with safer brackets. This may be filtered further
|
||||||
* if these are not allowed either.
|
* if these are not allowed either.
|
||||||
*
|
*
|
||||||
|
* @param string $string Input string
|
||||||
|
* @return string Filtered string
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if(! function_exists('notags')) {
|
|
||||||
function notags($string) {
|
function notags($string) {
|
||||||
|
|
||||||
return(str_replace(array("<",">"), array('[',']'), $string));
|
return(str_replace(array("<",">"), array('[',']'), $string));
|
||||||
|
@ -84,10 +94,15 @@ function notags($string) {
|
||||||
// return(str_replace(array("<",">","\xBA","\xBC","\xBE"), array('[',']','','',''), $string));
|
// return(str_replace(array("<",">","\xBA","\xBC","\xBE"), array('[',']','','',''), $string));
|
||||||
}}
|
}}
|
||||||
|
|
||||||
// use this on "body" or "content" input where angle chars shouldn't be removed,
|
|
||||||
// and allow them to be safely displayed.
|
|
||||||
|
|
||||||
if(! function_exists('escape_tags')) {
|
if(! function_exists('escape_tags')) {
|
||||||
|
/**
|
||||||
|
* use this on "body" or "content" input where angle chars shouldn't be removed,
|
||||||
|
* and allow them to be safely displayed.
|
||||||
|
* @param string $string
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function escape_tags($string) {
|
function escape_tags($string) {
|
||||||
|
|
||||||
return(htmlspecialchars($string, ENT_COMPAT, 'UTF-8', false));
|
return(htmlspecialchars($string, ENT_COMPAT, 'UTF-8', false));
|
||||||
|
@ -98,6 +113,12 @@ function escape_tags($string) {
|
||||||
// used to generate initial passwords
|
// used to generate initial passwords
|
||||||
|
|
||||||
if(! function_exists('autoname')) {
|
if(! function_exists('autoname')) {
|
||||||
|
/**
|
||||||
|
* generate a string that's random, but usually pronounceable.
|
||||||
|
* used to generate initial passwords
|
||||||
|
* @param int $len
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function autoname($len) {
|
function autoname($len) {
|
||||||
|
|
||||||
if($len <= 0)
|
if($len <= 0)
|
||||||
|
@ -173,6 +194,11 @@ function autoname($len) {
|
||||||
// returns escaped text.
|
// returns escaped text.
|
||||||
|
|
||||||
if(! function_exists('xmlify')) {
|
if(! function_exists('xmlify')) {
|
||||||
|
/**
|
||||||
|
* escape text ($str) for XML transport
|
||||||
|
* @param string $str
|
||||||
|
* @return string Escaped text.
|
||||||
|
*/
|
||||||
function xmlify($str) {
|
function xmlify($str) {
|
||||||
/* $buffer = '';
|
/* $buffer = '';
|
||||||
|
|
||||||
|
@ -218,10 +244,12 @@ function xmlify($str) {
|
||||||
return($buffer);
|
return($buffer);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
// undo an xmlify
|
|
||||||
// pass xml escaped text ($s), returns unescaped text
|
|
||||||
|
|
||||||
if(! function_exists('unxmlify')) {
|
if(! function_exists('unxmlify')) {
|
||||||
|
/**
|
||||||
|
* undo an xmlify
|
||||||
|
* @param string $s xml escaped text
|
||||||
|
* @return string unescaped text
|
||||||
|
*/
|
||||||
function unxmlify($s) {
|
function unxmlify($s) {
|
||||||
// $ret = str_replace('&','&', $s);
|
// $ret = str_replace('&','&', $s);
|
||||||
// $ret = str_replace(array('<','>','"','''),array('<','>','"',"'"),$ret);
|
// $ret = str_replace(array('<','>','"','''),array('<','>','"',"'"),$ret);
|
||||||
|
@ -233,9 +261,12 @@ function unxmlify($s) {
|
||||||
return $ret;
|
return $ret;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
// convenience wrapper, reverse the operation "bin2hex"
|
|
||||||
|
|
||||||
if(! function_exists('hex2bin')) {
|
if(! function_exists('hex2bin')) {
|
||||||
|
/**
|
||||||
|
* convenience wrapper, reverse the operation "bin2hex"
|
||||||
|
* @param string $s
|
||||||
|
* @return number
|
||||||
|
*/
|
||||||
function hex2bin($s) {
|
function hex2bin($s) {
|
||||||
if(! (is_string($s) && strlen($s)))
|
if(! (is_string($s) && strlen($s)))
|
||||||
return '';
|
return '';
|
||||||
|
@ -247,17 +278,23 @@ function hex2bin($s) {
|
||||||
return(pack("H*",$s));
|
return(pack("H*",$s));
|
||||||
}}
|
}}
|
||||||
|
|
||||||
// Automatic pagination.
|
|
||||||
// To use, get the count of total items.
|
|
||||||
// Then call $a->set_pager_total($number_items);
|
|
||||||
// Optionally call $a->set_pager_itemspage($n) to the number of items to display on each page
|
|
||||||
// Then call paginate($a) after the end of the display loop to insert the pager block on the page
|
|
||||||
// (assuming there are enough items to paginate).
|
|
||||||
// When using with SQL, the setting LIMIT %d, %d => $a->pager['start'],$a->pager['itemspage']
|
|
||||||
// will limit the results to the correct items for the current page.
|
|
||||||
// The actual page handling is then accomplished at the application layer.
|
|
||||||
|
|
||||||
if(! function_exists('paginate')) {
|
if(! function_exists('paginate')) {
|
||||||
|
/**
|
||||||
|
* Automatic pagination.
|
||||||
|
*
|
||||||
|
* To use, get the count of total items.
|
||||||
|
* Then call $a->set_pager_total($number_items);
|
||||||
|
* Optionally call $a->set_pager_itemspage($n) to the number of items to display on each page
|
||||||
|
* Then call paginate($a) after the end of the display loop to insert the pager block on the page
|
||||||
|
* (assuming there are enough items to paginate).
|
||||||
|
* When using with SQL, the setting LIMIT %d, %d => $a->pager['start'],$a->pager['itemspage']
|
||||||
|
* will limit the results to the correct items for the current page.
|
||||||
|
* The actual page handling is then accomplished at the application layer.
|
||||||
|
*
|
||||||
|
* @param App $a App instance
|
||||||
|
* @return string html for pagination #FIXME remove html
|
||||||
|
*/
|
||||||
function paginate(&$a) {
|
function paginate(&$a) {
|
||||||
$o = '';
|
$o = '';
|
||||||
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
|
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
|
||||||
|
@ -314,6 +351,12 @@ function paginate(&$a) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('alt_pager')) {
|
if(! function_exists('alt_pager')) {
|
||||||
|
/**
|
||||||
|
* Alternative pager
|
||||||
|
* @param App $a App instance
|
||||||
|
* @param int $i
|
||||||
|
* @return string html for pagination #FIXME remove html
|
||||||
|
*/
|
||||||
function alt_pager(&$a, $i) {
|
function alt_pager(&$a, $i) {
|
||||||
$o = '';
|
$o = '';
|
||||||
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
|
$stripped = preg_replace('/(&page=[0-9]*)/','',$a->query_string);
|
||||||
|
@ -338,9 +381,14 @@ function alt_pager(&$a, $i) {
|
||||||
return $o;
|
return $o;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
// Turn user/group ACLs stored as angle bracketed text into arrays
|
|
||||||
|
|
||||||
if(! function_exists('expand_acl')) {
|
if(! function_exists('expand_acl')) {
|
||||||
|
/**
|
||||||
|
* Turn user/group ACLs stored as angle bracketed text into arrays
|
||||||
|
*
|
||||||
|
* @param string $s
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
function expand_acl($s) {
|
function expand_acl($s) {
|
||||||
// turn string array of angle-bracketed elements into numeric array
|
// turn string array of angle-bracketed elements into numeric array
|
||||||
// e.g. "<1><2><3>" => array(1,2,3);
|
// e.g. "<1><2><3>" => array(1,2,3);
|
||||||
|
@ -357,9 +405,11 @@ function expand_acl($s) {
|
||||||
return $ret;
|
return $ret;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
// Used to wrap ACL elements in angle brackets for storage
|
|
||||||
|
|
||||||
if(! function_exists('sanitise_acl')) {
|
if(! function_exists('sanitise_acl')) {
|
||||||
|
/**
|
||||||
|
* Wrap ACL elements in angle brackets for storage
|
||||||
|
* @param string $item
|
||||||
|
*/
|
||||||
function sanitise_acl(&$item) {
|
function sanitise_acl(&$item) {
|
||||||
if(intval($item))
|
if(intval($item))
|
||||||
$item = '<' . intval(notags(trim($item))) . '>';
|
$item = '<' . intval(notags(trim($item))) . '>';
|
||||||
|
@ -368,14 +418,18 @@ function sanitise_acl(&$item) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
// Convert an ACL array to a storable string
|
|
||||||
// Normally ACL permissions will be an array.
|
|
||||||
// We'll also allow a comma-separated string.
|
|
||||||
|
|
||||||
if(! function_exists('perms2str')) {
|
if(! function_exists('perms2str')) {
|
||||||
|
/**
|
||||||
|
* Convert an ACL array to a storable string
|
||||||
|
*
|
||||||
|
* Normally ACL permissions will be an array.
|
||||||
|
* We'll also allow a comma-separated string.
|
||||||
|
*
|
||||||
|
* @param string|array $p
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function perms2str($p) {
|
function perms2str($p) {
|
||||||
$ret = '';
|
$ret = '';
|
||||||
|
|
||||||
if(is_array($p))
|
if(is_array($p))
|
||||||
$tmp = $p;
|
$tmp = $p;
|
||||||
else
|
else
|
||||||
|
@ -388,10 +442,16 @@ function perms2str($p) {
|
||||||
return $ret;
|
return $ret;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
// generate a guaranteed unique (for this domain) item ID for ATOM
|
|
||||||
// safe from birthday paradox
|
|
||||||
|
|
||||||
if(! function_exists('item_new_uri')) {
|
if(! function_exists('item_new_uri')) {
|
||||||
|
/**
|
||||||
|
* generate a guaranteed unique (for this domain) item ID for ATOM
|
||||||
|
* safe from birthday paradox
|
||||||
|
*
|
||||||
|
* @param string $hostname
|
||||||
|
* @param int $uid
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function item_new_uri($hostname,$uid) {
|
function item_new_uri($hostname,$uid) {
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
@ -412,6 +472,12 @@ function item_new_uri($hostname,$uid) {
|
||||||
// safe from birthday paradox
|
// safe from birthday paradox
|
||||||
|
|
||||||
if(! function_exists('photo_new_resource')) {
|
if(! function_exists('photo_new_resource')) {
|
||||||
|
/**
|
||||||
|
* Generate a guaranteed unique photo ID.
|
||||||
|
* safe from birthday paradox
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function photo_new_resource() {
|
function photo_new_resource() {
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
@ -427,12 +493,17 @@ function photo_new_resource() {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
// wrapper to load a view template, checking for alternate
|
|
||||||
// languages before falling back to the default
|
|
||||||
|
|
||||||
// obsolete, deprecated.
|
|
||||||
|
|
||||||
if(! function_exists('load_view_file')) {
|
if(! function_exists('load_view_file')) {
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
* wrapper to load a view template, checking for alternate
|
||||||
|
* languages before falling back to the default
|
||||||
|
*
|
||||||
|
* @global string $lang
|
||||||
|
* @global App $a
|
||||||
|
* @param string $s view name
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function load_view_file($s) {
|
function load_view_file($s) {
|
||||||
global $lang, $a;
|
global $lang, $a;
|
||||||
if(! isset($lang))
|
if(! isset($lang))
|
||||||
|
@ -462,6 +533,14 @@ function load_view_file($s) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('get_intltext_template')) {
|
if(! function_exists('get_intltext_template')) {
|
||||||
|
/**
|
||||||
|
* load a view template, checking for alternate
|
||||||
|
* languages before falling back to the default
|
||||||
|
*
|
||||||
|
* @global string $lang
|
||||||
|
* @param string $s view path
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function get_intltext_template($s) {
|
function get_intltext_template($s) {
|
||||||
global $lang;
|
global $lang;
|
||||||
|
|
||||||
|
@ -492,6 +571,13 @@ function get_intltext_template($s) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('get_markup_template')) {
|
if(! function_exists('get_markup_template')) {
|
||||||
|
/**
|
||||||
|
* load template $s
|
||||||
|
*
|
||||||
|
* @param string $s
|
||||||
|
* @param string $root
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function get_markup_template($s, $root = '') {
|
function get_markup_template($s, $root = '') {
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
|
|
||||||
|
@ -519,6 +605,13 @@ function get_markup_template($s, $root = '') {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists("get_template_file")) {
|
if(! function_exists("get_template_file")) {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param App $a
|
||||||
|
* @param string $filename
|
||||||
|
* @param string $root
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function get_template_file($a, $filename, $root = '') {
|
function get_template_file($a, $filename, $root = '') {
|
||||||
$theme = current_theme();
|
$theme = current_theme();
|
||||||
|
|
||||||
|
@ -540,16 +633,23 @@ function get_template_file($a, $filename, $root = '') {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// for html,xml parsing - let's say you've got
|
|
||||||
// an attribute foobar="class1 class2 class3"
|
|
||||||
// and you want to find out if it contains 'class3'.
|
|
||||||
// you can't use a normal sub string search because you
|
|
||||||
// might match 'notclass3' and a regex to do the job is
|
|
||||||
// possible but a bit complicated.
|
|
||||||
// pass the attribute string as $attr and the attribute you
|
|
||||||
// are looking for as $s - returns true if found, otherwise false
|
|
||||||
|
|
||||||
if(! function_exists('attribute_contains')) {
|
if(! function_exists('attribute_contains')) {
|
||||||
|
/**
|
||||||
|
* for html,xml parsing - let's say you've got
|
||||||
|
* an attribute foobar="class1 class2 class3"
|
||||||
|
* and you want to find out if it contains 'class3'.
|
||||||
|
* you can't use a normal sub string search because you
|
||||||
|
* might match 'notclass3' and a regex to do the job is
|
||||||
|
* possible but a bit complicated.
|
||||||
|
* pass the attribute string as $attr and the attribute you
|
||||||
|
* are looking for as $s - returns true if found, otherwise false
|
||||||
|
*
|
||||||
|
* @param string $attr attribute value
|
||||||
|
* @param string $s string to search
|
||||||
|
* @return boolean True if found, False otherwise
|
||||||
|
*/
|
||||||
function attribute_contains($attr,$s) {
|
function attribute_contains($attr,$s) {
|
||||||
$a = explode(' ', $attr);
|
$a = explode(' ', $attr);
|
||||||
if(count($a) && in_array($s,$a))
|
if(count($a) && in_array($s,$a))
|
||||||
|
@ -558,6 +658,19 @@ function attribute_contains($attr,$s) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('logger')) {
|
if(! function_exists('logger')) {
|
||||||
|
/**
|
||||||
|
* log levels:
|
||||||
|
* LOGGER_NORMAL (default)
|
||||||
|
* LOGGER_TRACE
|
||||||
|
* LOGGER_DEBUG
|
||||||
|
* LOGGER_DATA
|
||||||
|
* LOGGER_ALL
|
||||||
|
*
|
||||||
|
* @global App $a
|
||||||
|
* @global dba $db
|
||||||
|
* @param string $msg
|
||||||
|
* @param int $level
|
||||||
|
*/
|
||||||
function logger($msg,$level = 0) {
|
function logger($msg,$level = 0) {
|
||||||
// turn off logger in install mode
|
// turn off logger in install mode
|
||||||
global $a;
|
global $a;
|
||||||
|
@ -580,6 +693,13 @@ function logger($msg,$level = 0) {
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('activity_match')) {
|
if(! function_exists('activity_match')) {
|
||||||
|
/**
|
||||||
|
* Compare activity uri. Knows about activity namespace.
|
||||||
|
*
|
||||||
|
* @param string $haystack
|
||||||
|
* @param string $needle
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
function activity_match($haystack,$needle) {
|
function activity_match($haystack,$needle) {
|
||||||
if(($haystack === $needle) || ((basename($needle) === $haystack) && strstr($needle,NAMESPACE_ACTIVITY_SCHEMA)))
|
if(($haystack === $needle) || ((basename($needle) === $haystack) && strstr($needle,NAMESPACE_ACTIVITY_SCHEMA)))
|
||||||
return true;
|
return true;
|
||||||
|
@ -587,15 +707,18 @@ function activity_match($haystack,$needle) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
// Pull out all #hashtags and @person tags from $s;
|
|
||||||
// We also get @person@domain.com - which would make
|
|
||||||
// the regex quite complicated as tags can also
|
|
||||||
// end a sentence. So we'll run through our results
|
|
||||||
// and strip the period from any tags which end with one.
|
|
||||||
// Returns array of tags found, or empty array.
|
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('get_tags')) {
|
if(! function_exists('get_tags')) {
|
||||||
|
/**
|
||||||
|
* Pull out all #hashtags and @person tags from $s;
|
||||||
|
* We also get @person@domain.com - which would make
|
||||||
|
* the regex quite complicated as tags can also
|
||||||
|
* end a sentence. So we'll run through our results
|
||||||
|
* and strip the period from any tags which end with one.
|
||||||
|
* Returns array of tags found, or empty array.
|
||||||
|
*
|
||||||
|
* @param string $s
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
function get_tags($s) {
|
function get_tags($s) {
|
||||||
$ret = array();
|
$ret = array();
|
||||||
|
|
||||||
|
@ -648,9 +771,15 @@ function get_tags($s) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
// quick and dirty quoted_printable encoding
|
//
|
||||||
|
|
||||||
if(! function_exists('qp')) {
|
if(! function_exists('qp')) {
|
||||||
|
/**
|
||||||
|
* quick and dirty quoted_printable encoding
|
||||||
|
*
|
||||||
|
* @param string $s
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function qp($s) {
|
function qp($s) {
|
||||||
return str_replace ("%","=",rawurlencode($s));
|
return str_replace ("%","=",rawurlencode($s));
|
||||||
}}
|
}}
|
||||||
|
@ -658,6 +787,10 @@ return str_replace ("%","=",rawurlencode($s));
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('get_mentions')) {
|
if(! function_exists('get_mentions')) {
|
||||||
|
/**
|
||||||
|
* @param array $item
|
||||||
|
* @return string html for mentions #FIXME: remove html
|
||||||
|
*/
|
||||||
function get_mentions($item) {
|
function get_mentions($item) {
|
||||||
$o = '';
|
$o = '';
|
||||||
if(! strlen($item['tag']))
|
if(! strlen($item['tag']))
|
||||||
|
@ -675,6 +808,13 @@ function get_mentions($item) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('contact_block')) {
|
if(! function_exists('contact_block')) {
|
||||||
|
/**
|
||||||
|
* Get html for contact block.
|
||||||
|
*
|
||||||
|
* @template contact_block.tpl
|
||||||
|
* @hook contact_block_end (contacts=>array, output=>string)
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function contact_block() {
|
function contact_block() {
|
||||||
$o = '';
|
$o = '';
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
@ -727,6 +867,14 @@ function contact_block() {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('micropro')) {
|
if(! function_exists('micropro')) {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param array $contact
|
||||||
|
* @param boolean $redirect
|
||||||
|
* @param string $class
|
||||||
|
* @param boolean $textmode
|
||||||
|
* @return string #FIXME: remove html
|
||||||
|
*/
|
||||||
function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
||||||
|
|
||||||
if($class)
|
if($class)
|
||||||
|
@ -771,6 +919,15 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('search')) {
|
if(! function_exists('search')) {
|
||||||
|
/**
|
||||||
|
* search box
|
||||||
|
*
|
||||||
|
* @param string $s search query
|
||||||
|
* @param string $id html id
|
||||||
|
* @param string $url search url
|
||||||
|
* @param boolean $save show save search button
|
||||||
|
* @return string html for search box #FIXME: remove html
|
||||||
|
*/
|
||||||
function search($s,$id='search-box',$url='/search',$save = false) {
|
function search($s,$id='search-box',$url='/search',$save = false) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$o = '<div id="' . $id . '">';
|
$o = '<div id="' . $id . '">';
|
||||||
|
@ -784,6 +941,12 @@ function search($s,$id='search-box',$url='/search',$save = false) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('valid_email')) {
|
if(! function_exists('valid_email')) {
|
||||||
|
/**
|
||||||
|
* Check if $x is a valid email string
|
||||||
|
*
|
||||||
|
* @param string $x
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
function valid_email($x){
|
function valid_email($x){
|
||||||
|
|
||||||
if(get_config('system','disable_email_validation'))
|
if(get_config('system','disable_email_validation'))
|
||||||
|
@ -795,21 +958,26 @@ function valid_email($x){
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
if(! function_exists('linkify')) {
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Function: linkify
|
|
||||||
*
|
|
||||||
* Replace naked text hyperlink with HTML formatted hyperlink
|
* Replace naked text hyperlink with HTML formatted hyperlink
|
||||||
*
|
*
|
||||||
|
* @param string $s
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if(! function_exists('linkify')) {
|
|
||||||
function linkify($s) {
|
function linkify($s) {
|
||||||
$s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\'\%\$\!\+]*)/", ' <a href="$1" target="external-link">$1</a>', $s);
|
$s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\'\%\$\!\+]*)/", ' <a href="$1" target="external-link">$1</a>', $s);
|
||||||
$s = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$s);
|
$s = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$s);
|
||||||
return($s);
|
return($s);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load poke verbs
|
||||||
|
*
|
||||||
|
* @return array index is present tense verb
|
||||||
|
value is array containing past tense verb, translation of present, translation of past
|
||||||
|
* @hook poke_verbs pokes array
|
||||||
|
*/
|
||||||
function get_poke_verbs() {
|
function get_poke_verbs() {
|
||||||
|
|
||||||
// index is present tense verb
|
// index is present tense verb
|
||||||
|
@ -827,11 +995,13 @@ function get_poke_verbs() {
|
||||||
return $arr;
|
return $arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load moods
|
||||||
|
* @return array index is mood, value is translated mood
|
||||||
|
* @hook mood_verbs moods array
|
||||||
|
*/
|
||||||
function get_mood_verbs() {
|
function get_mood_verbs() {
|
||||||
|
|
||||||
// index is present tense verb
|
|
||||||
// value is array containing past tense verb, translation of present, translation of past
|
|
||||||
|
|
||||||
$arr = array(
|
$arr = array(
|
||||||
'happy' => t('happy'),
|
'happy' => t('happy'),
|
||||||
'sad' => t('sad'),
|
'sad' => t('sad'),
|
||||||
|
@ -860,17 +1030,11 @@ function get_mood_verbs() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(! function_exists('smilies')) {
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Function: smilies
|
|
||||||
*
|
|
||||||
* Description:
|
|
||||||
* Replaces text emoticons with graphical images
|
* Replaces text emoticons with graphical images
|
||||||
*
|
*
|
||||||
* @Parameter: string $s
|
|
||||||
*
|
|
||||||
* Returns string
|
|
||||||
*
|
|
||||||
* It is expected that this function will be called using HTML text.
|
* It is expected that this function will be called using HTML text.
|
||||||
* We will escape text between HTML pre and code blocks from being
|
* We will escape text between HTML pre and code blocks from being
|
||||||
* processed.
|
* processed.
|
||||||
|
@ -879,11 +1043,12 @@ function get_mood_verbs() {
|
||||||
* function from being executed by the prepare_text() routine when preparing
|
* function from being executed by the prepare_text() routine when preparing
|
||||||
* bbcode source for HTML display
|
* bbcode source for HTML display
|
||||||
*
|
*
|
||||||
|
* @param string $s
|
||||||
|
* @param boolean $sample
|
||||||
|
* @return string
|
||||||
|
* @hook smilie ('texts' => smilies texts array, 'icons' => smilies html array, 'string' => $s)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if(! function_exists('smilies')) {
|
|
||||||
function smilies($s, $sample = false) {
|
function smilies($s, $sample = false) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
if(intval(get_config('system','no_smilies'))
|
if(intval(get_config('system','no_smilies'))
|
||||||
|
@ -995,8 +1160,13 @@ function smile_decode($m) {
|
||||||
return(str_replace($m[1],base64url_decode($m[1]),$m[0]));
|
return(str_replace($m[1],base64url_decode($m[1]),$m[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// expand <3333 to the correct number of hearts
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* expand <3333 to the correct number of hearts
|
||||||
|
*
|
||||||
|
* @param string $x
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function preg_heart($x) {
|
function preg_heart($x) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
if(strlen($x[1]) == 1)
|
if(strlen($x[1]) == 1)
|
||||||
|
@ -1010,6 +1180,12 @@ function preg_heart($x) {
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('day_translate')) {
|
if(! function_exists('day_translate')) {
|
||||||
|
/**
|
||||||
|
* Translate days and months names
|
||||||
|
*
|
||||||
|
* @param string $s
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function day_translate($s) {
|
function day_translate($s) {
|
||||||
$ret = str_replace(array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'),
|
$ret = str_replace(array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'),
|
||||||
array( t('Monday'), t('Tuesday'), t('Wednesday'), t('Thursday'), t('Friday'), t('Saturday'), t('Sunday')),
|
array( t('Monday'), t('Tuesday'), t('Wednesday'), t('Thursday'), t('Friday'), t('Saturday'), t('Sunday')),
|
||||||
|
@ -1024,23 +1200,31 @@ function day_translate($s) {
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('normalise_link')) {
|
if(! function_exists('normalise_link')) {
|
||||||
|
/**
|
||||||
|
* Normalize url
|
||||||
|
*
|
||||||
|
* @param string $url
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function normalise_link($url) {
|
function normalise_link($url) {
|
||||||
$ret = str_replace(array('https:','//www.'), array('http:','//'), $url);
|
$ret = str_replace(array('https:','//www.'), array('http:','//'), $url);
|
||||||
return(rtrim($ret,'/'));
|
return(rtrim($ret,'/'));
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(! function_exists('link_compare')) {
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Compare two URLs to see if they are the same, but ignore
|
* Compare two URLs to see if they are the same, but ignore
|
||||||
* slight but hopefully insignificant differences such as if one
|
* slight but hopefully insignificant differences such as if one
|
||||||
* is https and the other isn't, or if one is www.something and
|
* is https and the other isn't, or if one is www.something and
|
||||||
* the other isn't - and also ignore case differences.
|
* the other isn't - and also ignore case differences.
|
||||||
*
|
*
|
||||||
* Return true if the URLs match, otherwise false.
|
* @param string $a first url
|
||||||
|
* @param string $b second url
|
||||||
|
* @return boolean True if the URLs match, otherwise False
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if(! function_exists('link_compare')) {
|
|
||||||
function link_compare($a,$b) {
|
function link_compare($a,$b) {
|
||||||
if(strcasecmp(normalise_link($a),normalise_link($b)) === 0)
|
if(strcasecmp(normalise_link($a),normalise_link($b)) === 0)
|
||||||
return true;
|
return true;
|
||||||
|
@ -1048,9 +1232,13 @@ function link_compare($a,$b) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
// Find any non-embedded images in private items and add redir links to them
|
|
||||||
|
|
||||||
if(! function_exists('redir_private_images')) {
|
if(! function_exists('redir_private_images')) {
|
||||||
|
/**
|
||||||
|
* Find any non-embedded images in private items and add redir links to them
|
||||||
|
*
|
||||||
|
* @param App $a
|
||||||
|
* @param array $item
|
||||||
|
*/
|
||||||
function redir_private_images($a, &$item) {
|
function redir_private_images($a, &$item) {
|
||||||
|
|
||||||
$matches = false;
|
$matches = false;
|
||||||
|
@ -1076,6 +1264,17 @@ function redir_private_images($a, &$item) {
|
||||||
// If attach is true, also add icons for item attachments
|
// If attach is true, also add icons for item attachments
|
||||||
|
|
||||||
if(! function_exists('prepare_body')) {
|
if(! function_exists('prepare_body')) {
|
||||||
|
/**
|
||||||
|
* Given an item array, convert the body element from bbcode to html and add smilie icons.
|
||||||
|
* If attach is true, also add icons for item attachments
|
||||||
|
*
|
||||||
|
* @param array $item
|
||||||
|
* @param boolean $attach
|
||||||
|
* @return string item body html
|
||||||
|
* @hook prepare_body_init item array before any work
|
||||||
|
* @hook prepare_body ('item'=>item array, 'html'=>body string) after first bbcode to html
|
||||||
|
* @hook prepare_body_final ('item'=>item array, 'html'=>body string) after attach icons and blockquote special case handling (spoiler, author)
|
||||||
|
*/
|
||||||
function prepare_body($item,$attach = false) {
|
function prepare_body($item,$attach = false) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
@ -1201,9 +1400,13 @@ function prepare_body($item,$attach = false) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
// Given a text string, convert from bbcode to html and add smilie icons.
|
|
||||||
|
|
||||||
if(! function_exists('prepare_text')) {
|
if(! function_exists('prepare_text')) {
|
||||||
|
/**
|
||||||
|
* Given a text string, convert from bbcode to html and add smilie icons.
|
||||||
|
*
|
||||||
|
* @param string $text
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function prepare_text($text) {
|
function prepare_text($text) {
|
||||||
|
|
||||||
require_once('include/bbcode.php');
|
require_once('include/bbcode.php');
|
||||||
|
@ -1217,10 +1420,15 @@ function prepare_text($text) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* returns
|
* return array with details for categories and folders for an item
|
||||||
|
*
|
||||||
|
* @param array $item
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
* [
|
* [
|
||||||
* //categories [
|
* [ // categories array
|
||||||
* {
|
* {
|
||||||
* 'name': 'category name',
|
* 'name': 'category name',
|
||||||
* 'removeurl': 'url to remove this category',
|
* 'removeurl': 'url to remove this category',
|
||||||
|
@ -1229,7 +1437,8 @@ function prepare_text($text) {
|
||||||
* } ,
|
* } ,
|
||||||
* ....
|
* ....
|
||||||
* ],
|
* ],
|
||||||
* // folders [
|
* [ //folders array
|
||||||
|
* {
|
||||||
* 'name': 'folder name',
|
* 'name': 'folder name',
|
||||||
* 'removeurl': 'url to remove this folder',
|
* 'removeurl': 'url to remove this folder',
|
||||||
* 'first': 'is the first in this array? true/false',
|
* 'first': 'is the first in this array? true/false',
|
||||||
|
@ -1240,6 +1449,7 @@ function prepare_text($text) {
|
||||||
* ]
|
* ]
|
||||||
*/
|
*/
|
||||||
function get_cats_and_terms($item) {
|
function get_cats_and_terms($item) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$categories = array();
|
$categories = array();
|
||||||
$folders = array();
|
$folders = array();
|
||||||
|
@ -1284,11 +1494,12 @@ function get_cats_and_terms($item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* return atom link elements for all of our hubs
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(! function_exists('feed_hublinks')) {
|
if(! function_exists('feed_hublinks')) {
|
||||||
|
/**
|
||||||
|
* return atom link elements for all of our hubs
|
||||||
|
* @return string hub link xml elements
|
||||||
|
*/
|
||||||
function feed_hublinks() {
|
function feed_hublinks() {
|
||||||
|
|
||||||
$hub = get_config('system','huburl');
|
$hub = get_config('system','huburl');
|
||||||
|
@ -1308,9 +1519,13 @@ function feed_hublinks() {
|
||||||
return $hubxml;
|
return $hubxml;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
/* return atom link elements for salmon endpoints */
|
|
||||||
|
|
||||||
if(! function_exists('feed_salmonlinks')) {
|
if(! function_exists('feed_salmonlinks')) {
|
||||||
|
/**
|
||||||
|
* return atom link elements for salmon endpoints
|
||||||
|
* @param string $nick user nickname
|
||||||
|
* @return string salmon link xml elements
|
||||||
|
*/
|
||||||
function feed_salmonlinks($nick) {
|
function feed_salmonlinks($nick) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
@ -1325,6 +1540,11 @@ function feed_salmonlinks($nick) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('get_plink')) {
|
if(! function_exists('get_plink')) {
|
||||||
|
/**
|
||||||
|
* get private link for item
|
||||||
|
* @param array $item
|
||||||
|
* @return boolean|array False if item has not plink, otherwise array('href'=>plink url, 'title'=>translated title)
|
||||||
|
*/
|
||||||
function get_plink($item) {
|
function get_plink($item) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
if (x($item,'plink') && ($item['private'] != 1)) {
|
if (x($item,'plink') && ($item['private'] != 1)) {
|
||||||
|
@ -1339,6 +1559,11 @@ function get_plink($item) {
|
||||||
}}
|
}}
|
||||||
|
|
||||||
if(! function_exists('unamp')) {
|
if(! function_exists('unamp')) {
|
||||||
|
/**
|
||||||
|
* replace html amp entity with amp char
|
||||||
|
* @param string $s
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function unamp($s) {
|
function unamp($s) {
|
||||||
return str_replace('&', '&', $s);
|
return str_replace('&', '&', $s);
|
||||||
}}
|
}}
|
||||||
|
@ -1347,6 +1572,12 @@ function unamp($s) {
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('lang_selector')) {
|
if(! function_exists('lang_selector')) {
|
||||||
|
/**
|
||||||
|
* get html for language selector
|
||||||
|
* @global string $lang
|
||||||
|
* @return string
|
||||||
|
* @template lang_selector.tpl
|
||||||
|
*/
|
||||||
function lang_selector() {
|
function lang_selector() {
|
||||||
global $lang;
|
global $lang;
|
||||||
|
|
||||||
|
@ -1383,6 +1614,11 @@ function lang_selector() {
|
||||||
|
|
||||||
|
|
||||||
if(! function_exists('return_bytes')) {
|
if(! function_exists('return_bytes')) {
|
||||||
|
/**
|
||||||
|
* return number of bytes in size (K, M, G)
|
||||||
|
* @param string $size_str
|
||||||
|
* @return number
|
||||||
|
*/
|
||||||
function return_bytes ($size_str) {
|
function return_bytes ($size_str) {
|
||||||
switch (substr ($size_str, -1))
|
switch (substr ($size_str, -1))
|
||||||
{
|
{
|
||||||
|
@ -1393,6 +1629,9 @@ function return_bytes ($size_str) {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function generate_user_guid() {
|
function generate_user_guid() {
|
||||||
$found = true;
|
$found = true;
|
||||||
do {
|
do {
|
||||||
|
@ -1407,7 +1646,11 @@ function generate_user_guid() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $s
|
||||||
|
* @param boolean $strip_padding
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function base64url_encode($s, $strip_padding = false) {
|
function base64url_encode($s, $strip_padding = false) {
|
||||||
|
|
||||||
$s = strtr(base64_encode($s),'+/','-_');
|
$s = strtr(base64_encode($s),'+/','-_');
|
||||||
|
@ -1418,6 +1661,10 @@ function base64url_encode($s, $strip_padding = false) {
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $s
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function base64url_decode($s) {
|
function base64url_decode($s) {
|
||||||
|
|
||||||
if(is_array($s)) {
|
if(is_array($s)) {
|
||||||
|
@ -1446,6 +1693,16 @@ function base64url_decode($s) {
|
||||||
|
|
||||||
|
|
||||||
if (!function_exists('str_getcsv')) {
|
if (!function_exists('str_getcsv')) {
|
||||||
|
/**
|
||||||
|
* Parse csv string
|
||||||
|
*
|
||||||
|
* @param string $input
|
||||||
|
* @param string $delimiter
|
||||||
|
* @param string $enclosure
|
||||||
|
* @param string $escape
|
||||||
|
* @param string $eol
|
||||||
|
* @return boolean|array False on error, otherwise array[row][column]
|
||||||
|
*/
|
||||||
function str_getcsv($input, $delimiter = ',', $enclosure = '"', $escape = '\\', $eol = '\n') {
|
function str_getcsv($input, $delimiter = ',', $enclosure = '"', $escape = '\\', $eol = '\n') {
|
||||||
if (is_string($input) && !empty($input)) {
|
if (is_string($input) && !empty($input)) {
|
||||||
$output = array();
|
$output = array();
|
||||||
|
@ -1502,6 +1759,11 @@ if (!function_exists('str_getcsv')) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return div element with class 'clear'
|
||||||
|
* @return string
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
function cleardiv() {
|
function cleardiv() {
|
||||||
return '<div class="clear"></div>';
|
return '<div class="clear"></div>';
|
||||||
}
|
}
|
||||||
|
@ -1538,6 +1800,8 @@ function html2bb_video($s) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* apply xmlify() to all values of array $val, recursively
|
* apply xmlify() to all values of array $val, recursively
|
||||||
|
* @param array $val
|
||||||
|
* @return array
|
||||||
*/
|
*/
|
||||||
function array_xmlify($val){
|
function array_xmlify($val){
|
||||||
if (is_bool($val)) return $val?"true":"false";
|
if (is_bool($val)) return $val?"true":"false";
|
||||||
|
@ -1546,6 +1810,13 @@ function array_xmlify($val){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* transorm link href and img src from relative to absolute
|
||||||
|
*
|
||||||
|
* @param string $text
|
||||||
|
* @param string $base base url
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function reltoabs($text, $base)
|
function reltoabs($text, $base)
|
||||||
{
|
{
|
||||||
if (empty($base))
|
if (empty($base))
|
||||||
|
@ -1578,6 +1849,12 @@ function reltoabs($text, $base)
|
||||||
return $text;
|
return $text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get translated item type
|
||||||
|
*
|
||||||
|
* @param array $itme
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
function item_post_type($item) {
|
function item_post_type($item) {
|
||||||
if(intval($item['event-id']))
|
if(intval($item['event-id']))
|
||||||
return t('event');
|
return t('event');
|
||||||
|
|
|
@ -274,6 +274,7 @@ function admin_page_site_post(&$a){
|
||||||
$maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
|
$maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
|
||||||
$dfrn_only = ((x($_POST,'dfrn_only')) ? True : False);
|
$dfrn_only = ((x($_POST,'dfrn_only')) ? True : False);
|
||||||
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
|
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
|
||||||
|
$ostatus_poll_interval = ((x($_POST,'ostatus_poll_interval')) ? intval(trim($_POST['ostatus_poll_interval'])) : 0);
|
||||||
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
|
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
|
||||||
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
|
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
|
||||||
$new_share = ((x($_POST,'new_share')) ? True : False);
|
$new_share = ((x($_POST,'new_share')) ? True : False);
|
||||||
|
@ -388,6 +389,7 @@ function admin_page_site_post(&$a){
|
||||||
set_config('system','curl_timeout', $timeout);
|
set_config('system','curl_timeout', $timeout);
|
||||||
set_config('system','dfrn_only', $dfrn_only);
|
set_config('system','dfrn_only', $dfrn_only);
|
||||||
set_config('system','ostatus_disabled', $ostatus_disabled);
|
set_config('system','ostatus_disabled', $ostatus_disabled);
|
||||||
|
set_config('system','ostatus_poll_interval', $ostatus_poll_interval);
|
||||||
set_config('system','diaspora_enabled', $diaspora_enabled);
|
set_config('system','diaspora_enabled', $diaspora_enabled);
|
||||||
set_config('config','private_addons', $private_addons);
|
set_config('config','private_addons', $private_addons);
|
||||||
|
|
||||||
|
@ -444,6 +446,15 @@ function admin_page_site(&$a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* OStatus conversation poll choices */
|
||||||
|
$ostatus_poll_choices = array(
|
||||||
|
"-1" => t("Never"),
|
||||||
|
"0" => t("Frequently"),
|
||||||
|
"60" => t("Hourly"),
|
||||||
|
"720" => t("Twice daily"),
|
||||||
|
"1440" => t("Daily")
|
||||||
|
);
|
||||||
|
|
||||||
/* get user names to make the install a personal install of X */
|
/* get user names to make the install a personal install of X */
|
||||||
$user_names = array();
|
$user_names = array();
|
||||||
$user_names['---'] = t('Multi user instance');
|
$user_names['---'] = t('Multi user instance');
|
||||||
|
@ -520,6 +531,7 @@ function admin_page_site(&$a) {
|
||||||
'$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
|
'$no_utf' => array('no_utf', t("UTF-8 Regular expressions"), !get_config('system','no_utf'), t("Use PHP UTF8 regular expressions")),
|
||||||
'$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),
|
'$no_community_page' => array('no_community_page', t("Show Community Page"), !get_config('system','no_community_page'), t("Display a Community page showing all recent public postings on this site.")),
|
||||||
'$ostatus_disabled' => array('ostatus_disabled', t("Enable OStatus support"), !get_config('system','ostatus_disabled'), t("Provide built-in OStatus \x28identi.ca, status.net, etc.\x29 compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.")),
|
'$ostatus_disabled' => array('ostatus_disabled', t("Enable OStatus support"), !get_config('system','ostatus_disabled'), t("Provide built-in OStatus \x28identi.ca, status.net, etc.\x29 compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.")),
|
||||||
|
'$ostatus_poll_interval' => array('ostatus_poll_interval', t("OStatus conversation completion interval"), (string) intval(get_config('system','ostatus_poll_interval')), t("How often shall the poller check for new entries in OStatus conversations? This can be a very ressource task."), $ostatus_poll_choices),
|
||||||
'$diaspora_enabled' => array('diaspora_enabled', t("Enable Diaspora support"), get_config('system','diaspora_enabled'), t("Provide built-in Diaspora network compatibility.")),
|
'$diaspora_enabled' => array('diaspora_enabled', t("Enable Diaspora support"), get_config('system','diaspora_enabled'), t("Provide built-in Diaspora network compatibility.")),
|
||||||
'$dfrn_only' => array('dfrn_only', t('Only allow Friendica contacts'), get_config('system','dfrn_only'), t("All contacts must use Friendica protocols. All other built-in communication protocols disabled.")),
|
'$dfrn_only' => array('dfrn_only', t('Only allow Friendica contacts'), get_config('system','dfrn_only'), t("All contacts must use Friendica protocols. All other built-in communication protocols disabled.")),
|
||||||
'$verifyssl' => array('verifyssl', t("Verify SSL"), get_config('system','verifyssl'), t("If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites.")),
|
'$verifyssl' => array('verifyssl', t("Verify SSL"), get_config('system','verifyssl'), t("If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites.")),
|
||||||
|
|
|
@ -971,7 +971,7 @@ function item_content(&$a) {
|
||||||
if (is_ajax()){
|
if (is_ajax()){
|
||||||
// ajax return: [<item id>, 0 (no perm) | <owner id>]
|
// ajax return: [<item id>, 0 (no perm) | <owner id>]
|
||||||
echo json_encode(array(intval($a->argv[2]), intval($o)));
|
echo json_encode(array(intval($a->argv[2]), intval($o)));
|
||||||
kllme();
|
killme();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $o;
|
return $o;
|
||||||
|
|
|
@ -79,6 +79,7 @@
|
||||||
{{ inc field_checkbox.tpl with $field=$force_publish }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$force_publish }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$no_community_page }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$no_community_page }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$ostatus_disabled }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$ostatus_disabled }}{{ endinc }}
|
||||||
|
{{ inc field_select.tpl with $field=$ostatus_poll_interval }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$diaspora_enabled }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$diaspora_enabled }}{{ endinc }}
|
||||||
{{ inc field_checkbox.tpl with $field=$dfrn_only }}{{ endinc }}
|
{{ inc field_checkbox.tpl with $field=$dfrn_only }}{{ endinc }}
|
||||||
{{ inc field_input.tpl with $field=$global_directory }}{{ endinc }}
|
{{ inc field_input.tpl with $field=$global_directory }}{{ endinc }}
|
||||||
|
|
12713
view/de/messages.po
12713
view/de/messages.po
File diff suppressed because it is too large
Load diff
2411
view/de/strings.php
2411
view/de/strings.php
File diff suppressed because it is too large
Load diff
7169
view/pl/messages.po
7169
view/pl/messages.po
File diff suppressed because it is too large
Load diff
1377
view/pl/strings.php
1377
view/pl/strings.php
File diff suppressed because it is too large
Load diff
14389
view/ru/messages.po
14389
view/ru/messages.po
File diff suppressed because it is too large
Load diff
3182
view/ru/strings.php
3182
view/ru/strings.php
File diff suppressed because it is too large
Load diff
|
@ -84,6 +84,7 @@
|
||||||
{{include file="field_checkbox.tpl" field=$force_publish}}
|
{{include file="field_checkbox.tpl" field=$force_publish}}
|
||||||
{{include file="field_checkbox.tpl" field=$no_community_page}}
|
{{include file="field_checkbox.tpl" field=$no_community_page}}
|
||||||
{{include file="field_checkbox.tpl" field=$ostatus_disabled}}
|
{{include file="field_checkbox.tpl" field=$ostatus_disabled}}
|
||||||
|
{{include file="field_select.tpl" field=$ostatus_poll_interval}}
|
||||||
{{include file="field_checkbox.tpl" field=$diaspora_enabled}}
|
{{include file="field_checkbox.tpl" field=$diaspora_enabled}}
|
||||||
{{include file="field_checkbox.tpl" field=$dfrn_only}}
|
{{include file="field_checkbox.tpl" field=$dfrn_only}}
|
||||||
{{include file="field_input.tpl" field=$global_directory}}
|
{{include file="field_input.tpl" field=$global_directory}}
|
||||||
|
|
|
@ -255,6 +255,9 @@ a:focus {
|
||||||
img,
|
img,
|
||||||
figure {
|
figure {
|
||||||
border: 0 none;
|
border: 0 none;
|
||||||
|
border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
max-width: 550px;
|
max-width: 550px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
style.css
|
style.css
|
||||||
Smoothly
|
Theme: Smoothly
|
||||||
|
Maintainer: alex@friendica.pixelbits.de
|
||||||
Created by alex@friendica.pixelbits.de on 2013-03-12
|
last change: 2013-04-01
|
||||||
|
|
||||||
** Colors **
|
** Colors **
|
||||||
Blue links - #1873a2
|
Blue links - #1873a2
|
||||||
|
@ -16,6 +16,28 @@ Orange - #fec01d
|
||||||
|
|
||||||
@import url('css/typography.css');
|
@import url('css/typography.css');
|
||||||
|
|
||||||
|
@media only screen and (device-width: 768px) {
|
||||||
|
/* For general iPad layouts */
|
||||||
|
#page {
|
||||||
|
-moz-background-clip: border;
|
||||||
|
-moz-background-origin: pdading;
|
||||||
|
-moz-background-size: auto auto;
|
||||||
|
background-attachment: scroll;
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: url( );
|
||||||
|
background-position: center top;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait) {
|
||||||
|
/* For portrait layouts only */
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape) {
|
||||||
|
/* For landscape layouts only */
|
||||||
|
}
|
||||||
|
|
||||||
.lockview {
|
.lockview {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
@ -70,8 +92,8 @@ input[type=submit]:hover {
|
||||||
color: #efefef;
|
color: #efefef;
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -119,7 +141,7 @@ section {
|
||||||
}
|
}
|
||||||
|
|
||||||
.lframe {
|
.lframe {
|
||||||
border: 1px solid #dddddd;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 3px 3px 6px #959494;
|
box-shadow: 3px 3px 6px #959494;
|
||||||
-moz-box-shadow: 3px 3px 6px #959494;
|
-moz-box-shadow: 3px 3px 6px #959494;
|
||||||
-webkit-box-shadow: 3px 3px 6px #959494;
|
-webkit-box-shadow: 3px 3px 6px #959494;
|
||||||
|
@ -128,15 +150,15 @@ section {
|
||||||
}
|
}
|
||||||
|
|
||||||
.mframe {
|
.mframe {
|
||||||
padding: 3px;
|
padding: 1px;
|
||||||
background: none repeat scroll 0 0 #FFFFFF;
|
background: none repeat scroll 0 0 #FFFFFF;
|
||||||
border: 1px solid #C5C5C5;
|
border: 1px solid #7C7D7B;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
-moz-border-radius: 3px;
|
-moz-border-radius: 3px;
|
||||||
-webkit-border-radius: 3px;
|
-webkit-border-radius: 3px;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
}
|
}
|
||||||
|
|
||||||
#wall-item-lock {
|
#wall-item-lock {
|
||||||
|
@ -160,8 +182,8 @@ section {
|
||||||
.button:hover {
|
.button:hover {
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -219,19 +241,26 @@ section {
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
padding: 10px;
|
padding: 15px 10px 10px 20px;
|
||||||
margin: 10px 0 0 0;
|
margin: 20px 0 0 210px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#login_openid,
|
#login_openid,
|
||||||
#div_id_remember,
|
|
||||||
#login-extra-links a {
|
#login-extra-links a {
|
||||||
width: 460px;
|
width: 460px;
|
||||||
float: left;
|
float: left;
|
||||||
|
margin: 5px 0 0 230px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#div_id_remember {
|
||||||
|
width: 258px;
|
||||||
|
float: left;
|
||||||
|
margin: 5px 0 0 230px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#login_standard input,
|
#login_standard input,
|
||||||
#login_openid input {
|
#login_openid input {
|
||||||
|
height: 20px;
|
||||||
width: 240px;
|
width: 240px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -253,7 +282,8 @@ section {
|
||||||
}
|
}
|
||||||
|
|
||||||
#login-submit-button {
|
#login-submit-button {
|
||||||
width: 280px;
|
width: 250px;
|
||||||
|
margin: 10px 0 0 230px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-form,
|
.login-form,
|
||||||
|
@ -329,11 +359,11 @@ nav {
|
||||||
background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #bdbdbd), color-stop(1, #a2a2a2) );
|
background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #bdbdbd), color-stop(1, #a2a2a2) );
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 0px 0px 5px 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 0px 0px 5px 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 0px 0px 5px 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
nav a {
|
nav a {
|
||||||
|
@ -384,10 +414,13 @@ nav #user-menu {
|
||||||
background: -moz-linear-gradient( center top, #797979 5%, #898988 100% );
|
background: -moz-linear-gradient( center top, #797979 5%, #898988 100% );
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#797979', endColorstr='#898988');
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#797979', endColorstr='#898988');
|
||||||
background-color: #a2a2a2;
|
background-color: #a2a2a2;
|
||||||
|
border: 1px solid #7C7D7B;
|
||||||
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
border: 1px solid #7C7D8B;
|
|
||||||
color: #efefef;
|
color: #efefef;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -396,8 +429,8 @@ nav #user-menu {
|
||||||
nav #user-menu:hover {
|
nav #user-menu:hover {
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -580,7 +613,7 @@ ul#user-menu-popup li a.nav-sep {
|
||||||
#sysmsg br {
|
#sysmsg br {
|
||||||
display:block;
|
display:block;
|
||||||
margin:2px 0px;
|
margin:2px 0px;
|
||||||
border-top: 1px solid #dddddd;
|
border-top: 1px solid #7C7D7B;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================= */
|
/* ================= */
|
||||||
|
@ -625,18 +658,18 @@ aside h4 {
|
||||||
|
|
||||||
.vcard #profile-photo-wrapper {
|
.vcard #profile-photo-wrapper {
|
||||||
margin: 10px 0px;
|
margin: 10px 0px;
|
||||||
padding: 6px;
|
padding: 0;
|
||||||
width: auto;
|
width: auto;
|
||||||
background: none repeat scroll 0 0 #FFFFFF;
|
/*background: none repeat scroll 0 0 #FFFFFF;
|
||||||
border: 1px solid #C5C5C5;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -726,7 +759,7 @@ h3 #search:before {
|
||||||
|
|
||||||
#network-new-link {
|
#network-new-link {
|
||||||
background-color: #f3f3f3;
|
background-color: #f3f3f3;
|
||||||
border: 1px solid #cdcdcd;
|
border: 1px solid #7C7D7B;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -810,7 +843,7 @@ h3 #search:before {
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
color: #7c7d7b;
|
color: #7c7d7b;
|
||||||
border: 1px solid #cdcdcd;
|
border: 1px solid #7C7D7B;
|
||||||
}
|
}
|
||||||
|
|
||||||
li.widget-list {
|
li.widget-list {
|
||||||
|
@ -847,8 +880,8 @@ li.widget-list {
|
||||||
background-color: #1873a2;
|
background-color: #1873a2;
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -893,7 +926,7 @@ li.widget-list {
|
||||||
}
|
}
|
||||||
|
|
||||||
ul .sidebar-group-li {
|
ul .sidebar-group-li {
|
||||||
list-style: none;
|
list-style: disc;
|
||||||
font-size: 1.0em;
|
font-size: 1.0em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -944,7 +977,7 @@ ul .sidebar-group-li .icon {
|
||||||
-moz-border-radius: 5px 5px 0px 0px;
|
-moz-border-radius: 5px 5px 0px 0px;
|
||||||
-webkit-border-radius: 5px 5px 0px 0px;
|
-webkit-border-radius: 5px 5px 0px 0px;
|
||||||
border: 1px solid #e2e2e2;
|
border: 1px solid #e2e2e2;
|
||||||
border-bottom: 1px solid #cdcdcd;
|
border-bottom: 1px solid #7C7D7B;
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
|
@ -999,13 +1032,13 @@ ul .sidebar-group-li .icon {
|
||||||
width: 47px;
|
width: 47px;
|
||||||
height: 47px;
|
height: 47px;
|
||||||
margin-right: 2px;
|
margin-right: 2px;
|
||||||
border: 1px solid #C5C5C5;
|
border: 1px solid #7C7D7B;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
-moz-border-radius: 3px;
|
-moz-border-radius: 3px;
|
||||||
-webkit-border-radius: 3px;
|
-webkit-border-radius: 3px;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contact-block-div {
|
.contact-block-div {
|
||||||
|
@ -1036,6 +1069,14 @@ ul .sidebar-group-li .icon {
|
||||||
/* = Jot = */
|
/* = Jot = */
|
||||||
/* ======= */
|
/* ======= */
|
||||||
|
|
||||||
|
.jothidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#jot {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0px 2em 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
#profile-jot-text-loading,
|
#profile-jot-text-loading,
|
||||||
#profile-jot-text {
|
#profile-jot-text {
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
@ -1085,10 +1126,6 @@ ul .sidebar-group-li .icon {
|
||||||
border: 1px solid #cccccc;
|
border: 1px solid #cccccc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.jothidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.preview {
|
.preview {
|
||||||
background: #FFFFC8;
|
background: #FFFFC8;
|
||||||
}
|
}
|
||||||
|
@ -1175,8 +1212,8 @@ ul .sidebar-group-li .icon {
|
||||||
background-color: #1873a2;
|
background-color: #1873a2;
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -1233,6 +1270,7 @@ ul .sidebar-group-li .icon {
|
||||||
border-bottom: 0px;
|
border-bottom: 0px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#profile-jot-acl-wrapper {
|
#profile-jot-acl-wrapper {
|
||||||
margin: 0px 10px;
|
margin: 0px 10px;
|
||||||
border: 1px solid #eeeeee;
|
border: 1px solid #eeeeee;
|
||||||
|
@ -1337,6 +1375,13 @@ ul .sidebar-group-li .icon {
|
||||||
/* = Posts = */
|
/* = Posts = */
|
||||||
/* ========= */
|
/* ========= */
|
||||||
|
|
||||||
|
.wall-item-name {
|
||||||
|
font-style: bold !important;
|
||||||
|
border: 0px !important;
|
||||||
|
border-radius: 0px !important;
|
||||||
|
box-shadow: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
.wall-item-outside-wrapper {
|
.wall-item-outside-wrapper {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
border-bottom: 1px solid #dedede;
|
border-bottom: 1px solid #dedede;
|
||||||
|
@ -1345,13 +1390,13 @@ ul .sidebar-group-li .icon {
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
padding-left: 12px;
|
padding-left: 12px;
|
||||||
background: none repeat scroll 0 0 #FFFFFF;
|
background: none repeat scroll 0 0 #FFFFFF;
|
||||||
border: 1px solid #CDCDCD;
|
border: 1px solid #7C7D7B;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wall-item-outside-wrapper-end {
|
.wall-item-outside-wrapper-end {
|
||||||
|
@ -1371,19 +1416,19 @@ ul .sidebar-group-li .icon {
|
||||||
.wall-item-photo-menu-button {
|
.wall-item-photo-menu-button {
|
||||||
display: none;
|
display: none;
|
||||||
text-indent: -99999px;
|
text-indent: -99999px;
|
||||||
background: #eeeeee url("images/menu-user-pin.png") no-repeat 75px center;
|
background: #eeeeee url("images/menu-user-pin.png") no-repeat 35px center;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
top: 85px;
|
top: 82px;
|
||||||
left: -1px;
|
left: 0;
|
||||||
border-right: 1px solid #dddddd;
|
border-right: 1px solid #7C7D7B;
|
||||||
border-left: 1px solid #dddddd;
|
border-left: 1px solid #7C7D7B;
|
||||||
border-bottom: 1px solid #dddddd;
|
border-bottom: 1px solid #7C7D7B;
|
||||||
box-shadow: 3px 3px 4px #959494;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 0px 0px 5px 5px;
|
border-radius: 0px 0px 5px 5px;
|
||||||
-webkit-border-radius: 0px 0px 5px 5px;
|
-webkit-border-radius: 0px 0px 5px 5px;
|
||||||
-moz-border-radius: 0px 0px 5px 5px;
|
-moz-border-radius: 0px 0px 5px 5px;
|
||||||
|
@ -1397,15 +1442,25 @@ ul .sidebar-group-li .icon {
|
||||||
.wall-item-photo-wrapper {
|
.wall-item-photo-wrapper {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
height: 80px;
|
height: 80px;
|
||||||
padding: 4px;
|
padding: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
border: 1px solid #dddddd;
|
/*border: 1px solid #7C7D7B;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
box-shadow: 3px 3px 4px #959494;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.wall-item-photo {
|
||||||
|
border: 0px solid #7C7D7B;
|
||||||
|
border-radius: 2px;
|
||||||
|
-webkit-border-radius: 2px;
|
||||||
|
-moz-border-radius: 2px;
|
||||||
|
/*box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-webkit-box-shadow: 0 0 8px #BDBDBD;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.wall-item-tools {
|
.wall-item-tools {
|
||||||
|
@ -1506,6 +1561,7 @@ ul .sidebar-group-li .icon {
|
||||||
.wall-item-body img {
|
.wall-item-body img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wall-item-body p {
|
.wall-item-body p {
|
||||||
|
@ -1612,20 +1668,20 @@ ul .sidebar-group-li .icon {
|
||||||
color: #2e3436;
|
color: #2e3436;
|
||||||
border-top: 1px;
|
border-top: 1px;
|
||||||
background: #eeeeee;
|
background: #eeeeee;
|
||||||
border-right: 1px solid #dddddd;
|
border-right: 1px solid #7C7D7B;
|
||||||
border-left: 1px solid #dddddd;
|
border-left: 1px solid #7C7D7B;
|
||||||
border-bottom: 1px solid #dddddd;
|
border-bottom: 1px solid #7C7D7B;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: -1px;
|
left: 0px;
|
||||||
top: 101px;
|
top: 101px;
|
||||||
display: none;
|
display: none;
|
||||||
z-index: 10000;
|
z-index: 10000;
|
||||||
border-radius: 0px 5px 5px 5px;
|
border-radius: 0px 5px 5px 5px;
|
||||||
-webkit-border-radius: 0px 5px 5px 5px;
|
-webkit-border-radius: 0px 5px 5px 5px;
|
||||||
-moz-border-radius: 0px 5px 5px 5px;
|
-moz-border-radius: 0px 5px 5px 5px;
|
||||||
box-shadow: 3px 3px 4px #959494;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1633,9 +1689,9 @@ ul .sidebar-group-li .icon {
|
||||||
-webkit-border-radius: 0px 5px 5px 5px;
|
-webkit-border-radius: 0px 5px 5px 5px;
|
||||||
-moz-border-radius: 0px 5px 5px 5px;
|
-moz-border-radius: 0px 5px 5px 5px;
|
||||||
border-radius: 0px 5px 5px 5px;
|
border-radius: 0px 5px 5px 5px;
|
||||||
box-shadow: 3px 3px 4px #959494;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wall-item-photo-menu ul {
|
.wall-item-photo-menu ul {
|
||||||
|
@ -1718,16 +1774,22 @@ code {
|
||||||
.wall-item-outside-wrapper.comment .wall-item-photo {
|
.wall-item-outside-wrapper.comment .wall-item-photo {
|
||||||
width: 40px!important;
|
width: 40px!important;
|
||||||
height: 40px!important;
|
height: 40px!important;
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wall-item-outside-wrapper.comment .wall-item-photo-wrapper {
|
.wall-item-outside-wrapper.comment .wall-item-photo-wrapper {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wall-item-outside-wrapper.comment .wall-item-photo-menu-button {
|
.wall-item-outside-wrapper.comment .wall-item-photo-menu-button {
|
||||||
top: 45px;
|
top: 42px;
|
||||||
background-position: 35px center;
|
background-position: 15px center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wall-item-outside-wrapper.comment .wall-item-info {
|
.wall-item-outside-wrapper.comment .wall-item-info {
|
||||||
|
@ -1806,7 +1868,7 @@ code {
|
||||||
padding: 5px 5px;
|
padding: 5px 5px;
|
||||||
background-color: #a2a2a2;
|
background-color: #a2a2a2;
|
||||||
color: #eeeeec;
|
color: #eeeeec;
|
||||||
border: 1px solid #CDCDCD;
|
border: 1px solid #7C7D7B;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -1814,13 +1876,13 @@ code {
|
||||||
|
|
||||||
.comment-edit-submit:hover {
|
.comment-edit-submit:hover {
|
||||||
background-color: #1873a2;
|
background-color: #1873a2;
|
||||||
border: 1px solid #CDCDCD;
|
border: 1px solid #7C7D7B;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.comment-edit-submit:active {
|
.comment-edit-submit:active {
|
||||||
|
@ -1962,10 +2024,10 @@ div[id$="wrapper"] br {
|
||||||
margin-bottom: 70px;
|
margin-bottom: 70px;
|
||||||
margin-right: 29px;
|
margin-right: 29px;
|
||||||
background-color: #f6f6f6;
|
background-color: #f6f6f6;
|
||||||
border: 1px solid #dddddd;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 3px 3px 4px #959494;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile-match-break,
|
.profile-match-break,
|
||||||
|
@ -2004,8 +2066,17 @@ div[id$="wrapper"] br {
|
||||||
}
|
}
|
||||||
|
|
||||||
.photo {
|
.photo {
|
||||||
height: 191px!important;
|
height: 203px !important;
|
||||||
width: 191px!important;
|
width: 203px !important;
|
||||||
|
border: 1px solid #7C7D7B;
|
||||||
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#side-bar-photos-albums {
|
#side-bar-photos-albums {
|
||||||
|
@ -2338,6 +2409,10 @@ input #photo_edit_form {
|
||||||
-webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
|
-webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
|
||||||
-moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
|
-moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
|
||||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 0 5px rgba(0, 0, 0, 0.2), inset 0 0 50px rgba(0, 0, 0, 0.1);
|
||||||
|
border: 1px solid #7C7D7B;
|
||||||
|
border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#prvmail-wrapper:before,
|
#prvmail-wrapper:before,
|
||||||
|
@ -2362,6 +2437,10 @@ input #photo_edit_form {
|
||||||
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
|
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
|
||||||
-moz-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
|
-moz-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
|
border: 1px solid #7C7D7B;
|
||||||
|
border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#prvmail-wrapper:after,
|
#prvmail-wrapper:after,
|
||||||
|
@ -2374,6 +2453,10 @@ input #photo_edit_form {
|
||||||
-moz-transform: skew(5deg) rotate(5deg);
|
-moz-transform: skew(5deg) rotate(5deg);
|
||||||
-ms-transform: skew(5deg) rotate(5deg);
|
-ms-transform: skew(5deg) rotate(5deg);
|
||||||
-o-transform: skew(5deg) rotate(5deg);
|
-o-transform: skew(5deg) rotate(5deg);
|
||||||
|
border: 1px solid #7C7D7B;
|
||||||
|
border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.prvmail-text {
|
.prvmail-text {
|
||||||
|
@ -2432,13 +2515,13 @@ margin-left: 0px;
|
||||||
float: left;
|
float: left;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
background-color: #efefef;
|
background-color: #efefef;
|
||||||
border: 1px solid #C5C5C5;
|
border: 1px solid #7C7D7B;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
-moz-border-radius: 3px;
|
-moz-border-radius: 3px;
|
||||||
-webkit-border-radius: 3px;
|
-webkit-border-radius: 3px;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mail-list-detail {
|
.mail-list-detail {
|
||||||
|
@ -2447,7 +2530,7 @@ margin-left: 0px;
|
||||||
min-height: 70px;
|
min-height: 70px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
border: 1px solid #dddddd;
|
border: 1px solid #7C7D7B;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mail-list-sender-name {
|
.mail-list-sender-name {
|
||||||
|
@ -2496,6 +2579,7 @@ margin-left: 0px;
|
||||||
.mail-conv-sender-photo {
|
.mail-conv-sender-photo {
|
||||||
width: 64px;
|
width: 64px;
|
||||||
height: 64px;
|
height: 64px;
|
||||||
|
border-radius: 3px 3px 3px 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mail-conv-sender-name {
|
.mail-conv-sender-name {
|
||||||
|
@ -2525,7 +2609,7 @@ margin-left: 0px;
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
border: 1px solid #dddddd;
|
border: 1px solid #7C7D7B;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mail-conv-break {
|
.mail-conv-break {
|
||||||
|
@ -2541,7 +2625,7 @@ margin-left: 0px;
|
||||||
|
|
||||||
#prvmail-subject {
|
#prvmail-subject {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border: 1px solid #dddddd;
|
border: 1px solid #7C7D7B;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================= */
|
/* ================= */
|
||||||
|
@ -2647,6 +2731,13 @@ margin-left: 0px;
|
||||||
|
|
||||||
.contact-entry-photo {
|
.contact-entry-photo {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
/*border: 1px solid #7C7D7B;
|
||||||
|
border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-webkit-box-shadow: 0 0 8px #BDBDBD;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.contact-entry-edit-links .icon {
|
.contact-entry-edit-links .icon {
|
||||||
|
@ -2691,8 +2782,8 @@ margin-left: 0px;
|
||||||
background-color: #1873a2;
|
background-color: #1873a2;
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -2837,8 +2928,8 @@ margin-left: 0px;
|
||||||
background-color: #1873a2;
|
background-color: #1873a2;
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -2873,7 +2964,7 @@ margin-left: 0px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-stretch: semi-expanded;
|
font-stretch: semi-expanded;
|
||||||
background-color: #f3f3f3;
|
background-color: #f3f3f3;
|
||||||
border: 1px solid #cdcdcd;
|
border: 1px solid #7C7D7B;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
|
@ -3030,8 +3121,8 @@ margin-left: 0px;
|
||||||
background-color: #555753;
|
background-color: #555753;
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -3581,8 +3672,8 @@ margin-left: 0px;
|
||||||
clear: left;
|
clear: left;
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -3627,7 +3718,7 @@ margin-left: 0px;
|
||||||
/* =============== */
|
/* =============== */
|
||||||
|
|
||||||
.field {
|
.field {
|
||||||
margin-bottom: 10px;
|
/*margin-bottom: 10px;*/
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
padding-bottom: 0px;
|
padding-bottom: 0px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -3645,7 +3736,7 @@ margin-left: 0px;
|
||||||
|
|
||||||
.field label {
|
.field label {
|
||||||
float: left;
|
float: left;
|
||||||
width: 200px;
|
width: 210px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.field checkbox {
|
.field checkbox {
|
||||||
|
@ -3656,7 +3747,7 @@ margin-left: 0px;
|
||||||
.field input,
|
.field input,
|
||||||
.field textarea {
|
.field textarea {
|
||||||
width: 400px;
|
width: 400px;
|
||||||
border: 1px solid #CDCDCD;
|
border: 1px solid #7C7D7B;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -3715,6 +3806,21 @@ margin-left: 0px;
|
||||||
|
|
||||||
.sparkle {
|
.sparkle {
|
||||||
cursor: url('lock.cur'), pointer;
|
cursor: url('lock.cur'), pointer;
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
/*border: 1px solid #7C7D7B;
|
||||||
|
border-radius: 3px;
|
||||||
|
-moz-border-radius: 3px;
|
||||||
|
-webkit-border-radius: 3px;
|
||||||
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
|
-webkit-box-shadow: 0 0 8px #BDBDBD;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
border: 0px;
|
||||||
|
border-radius: 0px;
|
||||||
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
|
@ -3967,8 +4073,8 @@ footer {
|
||||||
background-color: #1873a2;
|
background-color: #1873a2;
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -4097,15 +4203,15 @@ ul.menu-popup {
|
||||||
color: #2e3436;
|
color: #2e3436;
|
||||||
border-top: 0px;
|
border-top: 0px;
|
||||||
background: #eeeeee;
|
background: #eeeeee;
|
||||||
border-right: 1px solid #dddddd;
|
border-right: 1px solid #7C7D7B;
|
||||||
border-left: 1px solid #dddddd;
|
border-left: 1px solid #7C7D7B;
|
||||||
border-bottom: 1px solid #dddddd;
|
border-bottom: 1px solid #7C7D7B;
|
||||||
border-radius: 0px 5px 5px 5px;
|
border-radius: 0px 5px 5px 5px;
|
||||||
-webkit-border-radius: 0px 5px 5px 5px;
|
-webkit-border-radius: 0px 5px 5px 5px;
|
||||||
-moz-border-radius: 0px 5px 5px 5px;
|
-moz-border-radius: 0px 5px 5px 5px;
|
||||||
box-shadow: 3px 3px 4px #959494;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.acpopupitem {
|
.acpopupitem {
|
||||||
|
@ -4191,7 +4297,7 @@ ul.menu-popup {
|
||||||
#scrollup {
|
#scrollup {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 1px;
|
right: 1px;
|
||||||
bottom: 30px;
|
bottom: 260px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4388,8 +4494,8 @@ div #datebrowse-sidebar.widget {
|
||||||
width: 410px;
|
width: 410px;
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -4409,7 +4515,9 @@ div #datebrowse-sidebar.widget {
|
||||||
|
|
||||||
#collapsed-comments-page-widget {}
|
#collapsed-comments-page-widget {}
|
||||||
|
|
||||||
.tool {}
|
.tool {
|
||||||
|
list-style-type: disc;
|
||||||
|
}
|
||||||
|
|
||||||
#logo-text {
|
#logo-text {
|
||||||
}
|
}
|
||||||
|
@ -4425,8 +4533,8 @@ div #datebrowse-sidebar.widget {
|
||||||
.settings-block {
|
.settings-block {
|
||||||
border: 1px solid #7C7D7B;
|
border: 1px solid #7C7D7B;
|
||||||
box-shadow: 0 0 8px #BDBDBD;
|
box-shadow: 0 0 8px #BDBDBD;
|
||||||
-moz-box-shadow: 3px 3px 4px #959494;
|
-moz-box-shadow: 0 0 8px #BDBDBD;
|
||||||
-webkit-box-shadow: 3px 3px 4px #959494;
|
-webkit-box-shadow: 0 0 8px #BDBDBD;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
-moz-border-radius: 5px;
|
-moz-border-radius: 5px;
|
||||||
-webkit-border-radius: 5px;
|
-webkit-border-radius: 5px;
|
||||||
|
@ -4475,6 +4583,7 @@ div #datebrowse-sidebar.widget {
|
||||||
|
|
||||||
#id_remember {
|
#id_remember {
|
||||||
width: auto;
|
width: auto;
|
||||||
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.field.input.openid {
|
.field.input.openid {
|
||||||
|
|
|
@ -3,8 +3,9 @@
|
||||||
/*
|
/*
|
||||||
* Name: Smoothly
|
* Name: Smoothly
|
||||||
* Description: Like coffee with milk. Theme optimized for iPad[2].
|
* Description: Like coffee with milk. Theme optimized for iPad[2].
|
||||||
* Version: Version 2013-03-12.1
|
* Version: Version 2013-04-1
|
||||||
* Author: Alex <https://friendica.pixelbits.de/profile/alex>
|
* Author: Anne Walk
|
||||||
|
* Author: Devlon Duthied
|
||||||
* Maintainer: Alex <https://friendica.pixelbits.de/profile/alex>
|
* Maintainer: Alex <https://friendica.pixelbits.de/profile/alex>
|
||||||
* Screenshot: <a href="screenshot.png">Screenshot</a>
|
* Screenshot: <a href="screenshot.png">Screenshot</a>
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -291,9 +291,9 @@ blockquote.shared_content {
|
||||||
body {
|
body {
|
||||||
font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif;
|
font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
/* background-color: #ffffff; */
|
background-color: #ffffff;
|
||||||
/* background-color: #ddd; */
|
/* background-color: #ddd; */
|
||||||
background-color: #F2F2F2;
|
/* background-color: #F2F2F2; */
|
||||||
color: #2d2d2d;
|
color: #2d2d2d;
|
||||||
/* margin: 37px 0px 0px 0px; */
|
/* margin: 37px 0px 0px 0px; */
|
||||||
margin: 0px 0px 0px 0px;
|
margin: 0px 0px 0px 0px;
|
||||||
|
@ -1117,7 +1117,7 @@ border-bottom: 1px solid #D2D2D2;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
.wall-item-container .wall-item-bottom {
|
.wall-item-container .wall-item-bottom {
|
||||||
opacity: 0.5;
|
opacity: 0;
|
||||||
-webkit-transition: all 0.2s ease-in-out;
|
-webkit-transition: all 0.2s ease-in-out;
|
||||||
-moz-transition: all 0.2s ease-in-out;
|
-moz-transition: all 0.2s ease-in-out;
|
||||||
-o-transition: all 0.2s ease-in-out;
|
-o-transition: all 0.2s ease-in-out;
|
||||||
|
|
Loading…
Reference in a new issue