diff options
55 files changed, 1667 insertions, 1416 deletions
@@ -9,9 +9,9 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1351' ); +define ( 'FRIENDICA_VERSION', '3.0.1360' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1144 ); +define ( 'DB_UPDATE_VERSION', 1145 ); define ( 'EOL', "<br />\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); @@ -441,22 +441,19 @@ if(! class_exists('App')) { if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL)) $scheme = 'https'; - // We need to populate the $ssl flag across the entire program before turning this on. - // Basically, we'll have $ssl = true on any links which can only be seen by a logged in user - // (and also the login link). Anything seen by an outsider will have it turned off. - // At present, setting SSL_POLICY_SELFSIGN will only force remote contacts to update their - // contact links to this site with "http:" if they are currently using "https:" - - // if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) { - // if($ssl) - // $scheme = 'https'; - // else - // $scheme = 'http'; - // } - } + // Basically, we have $ssl = true on any links which can only be seen by a logged in user + // (and also the login link). Anything seen by an outsider will have it turned off. + + if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) { + if($ssl) + $scheme = 'https'; + else + $scheme = 'http'; + } + } - $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' ); - return $this->baseurl; + $this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' ); + return $this->baseurl; } function set_baseurl($url) { diff --git a/database.sql b/database.sql index ed97cd4aa..48900839c 100644 --- a/database.sql +++ b/database.sql @@ -173,6 +173,7 @@ CREATE TABLE IF NOT EXISTS `contact` ( `readonly` tinyint(1) NOT NULL DEFAULT '0', `writable` tinyint(1) NOT NULL DEFAULT '0', `forum` tinyint(1) NOT NULL DEFAULT '0', + `prv` tinyint(1) NOT NULL DEFAULT '0', `hidden` tinyint(1) NOT NULL DEFAULT '0', `archive` tinyint(1) NOT NULL DEFAULT '0', `pending` tinyint(1) NOT NULL DEFAULT '1', diff --git a/htconfig.php b/htconfig.php index 872572654..de7674c9a 100644 --- a/htconfig.php +++ b/htconfig.php @@ -88,3 +88,6 @@ $a->config['system']['itemcache'] = ""; // If enabled, the lockpath is used for a lockfile to check if the poller is running $a->config['system']['lockpath'] = ""; + +// If enabled, the MyBB fulltext engine is used +// $a->config['system']['use_fulltext_engine'] = true; diff --git a/include/api.php b/include/api.php index a693a32c8..5c17b35f5 100644 --- a/include/api.php +++ b/include/api.php @@ -4,26 +4,26 @@ require_once("conversation.php"); require_once("oauth.php"); require_once("html2plain.php"); - /* + /* * Twitter-Like API - * + * */ $API = Array(); - $called_api = Null; + $called_api = Null; function api_date($str){ //Wed May 23 06:01:13 +0000 2007 return datetime_convert('UTC', 'UTC', $str, "D M d H:i:s +0000 Y" ); } - - + + function api_register_func($path, $func, $auth=false){ global $API; $API[$path] = array('func'=>$func, 'auth'=>$auth); } - + /** * Simple HTTP Login */ @@ -691,24 +691,24 @@ 'geo' => '', 'coordinates' => $lastwall['coord'], 'place' => $lastwall['location'], - 'contributors' => '' + 'contributors' => '' ); } return api_apply_template("user", $type, array('$user' => $user_info)); - + } api_register_func('api/users/show','api_users_show'); - + /** - * + * * http://developer.twitter.com/doc/get/statuses/home_timeline - * + * * TODO: Optional parameters * TODO: Add reply info */ function api_statuses_home_timeline(&$a, $type){ if (local_user()===false) return false; - + $user_info = api_get_user($a); // get last newtork messages @@ -720,7 +720,7 @@ $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - + $start = $page*$count; //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); @@ -728,7 +728,7 @@ if ($max_id > 0) $sql_extra = 'AND `item`.`id` <= '.intval($max_id); - $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, + $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` @@ -747,7 +747,7 @@ $ret = api_format_items($r,$user_info); - + $data = array('$statuses' => $ret); switch($type){ case "atom": @@ -761,7 +761,7 @@ return($as); break; } - + return api_apply_template("timeline", $type, $data); } api_register_func('api/statuses/home_timeline','api_statuses_home_timeline', true); @@ -769,7 +769,7 @@ function api_statuses_public_timeline(&$a, $type){ if (local_user()===false) return false; - + $user_info = api_get_user($a); // get last newtork messages @@ -781,7 +781,7 @@ $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - + $start = $page*$count; //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); @@ -789,7 +789,7 @@ if ($max_id > 0) $sql_extra = 'AND `item`.`id` <= '.intval($max_id); - /*$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, + /*$r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` @@ -806,17 +806,17 @@ intval($since_id), intval($start), intval($count) );*/ - $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, + $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, - `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, + `contact`.`network`, `contact`.`thumb`, `contact`.`self`, `contact`.`writable`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`, `user`.`nickname`, `user`.`hidewall` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` LEFT JOIN `user` ON `user`.`uid` = `item`.`uid` WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0 - AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' - AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' - AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0 + AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' + AND `item`.`deny_cid` = '' AND `item`.`deny_gid` = '' + AND `item`.`private` = 0 AND `item`.`wall` = 1 AND `user`.`hidewall` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 $sql_extra AND `item`.`id`>%d @@ -827,7 +827,7 @@ $ret = api_format_items($r,$user_info); - + $data = array('$statuses' => $ret); switch($type){ case "atom": @@ -841,7 +841,7 @@ return($as); break; } - + return api_apply_template("timeline", $type, $data); } api_register_func('api/statuses/public_timeline','api_statuses_public_timeline', true); @@ -857,11 +857,11 @@ // params $id = intval($a->argv[3]); - logger('API: api_statuses_show: '.$id); + logger('API: api_statuses_show: '.$id); //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); - $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, + $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` @@ -875,7 +875,7 @@ ); $ret = api_format_items($r,$user_info); - + $data = array('$status' => $ret[0]); /*switch($type){ case "atom": @@ -976,7 +976,7 @@ $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - + $start = $page*$count; //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); @@ -985,11 +985,19 @@ $myurl = substr($myurl,strpos($myurl,'://')+3); $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); $diasp_url = str_replace('/profile/','/u/',$myurl); - $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` regexp '%s' or `tag` regexp '%s' or tag regexp '%s' )) ", - dbesc($myurl . '$'), - dbesc($myurl . '\\]'), - dbesc($diasp_url . '\\]') - ); + + if (get_config('system','use_fulltext_engine')) + $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ", + dbesc(protect_sprintf($myurl)), + dbesc(protect_sprintf($myurl)), + dbesc(protect_sprintf($diasp_url)) + ); + else + $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ", + dbesc(protect_sprintf('%' . $myurl)), + dbesc(protect_sprintf('%' . $myurl . ']%')), + dbesc(protect_sprintf('%' . $diasp_url . ']%')) + ); if ($max_id > 0) $sql_extra .= ' AND `item`.`id` <= '.intval($max_id); @@ -1013,7 +1021,7 @@ $ret = api_format_items($r,$user_info); - + $data = array('$statuses' => $ret); switch($type){ case "atom": @@ -1027,7 +1035,7 @@ return($as); break; } - + return api_apply_template("timeline", $type, $data); } api_register_func('api/statuses/mentions','api_statuses_mentions', true); @@ -1078,14 +1086,14 @@ $ret = api_format_items($r,$user_info); - + $data = array('$statuses' => $ret); switch($type){ case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); } - + return api_apply_template("timeline", $type, $data); } @@ -1094,25 +1102,25 @@ function api_favorites(&$a, $type){ if (local_user()===false) return false; - + $user_info = api_get_user($a); // in friendica starred item are private // return favorites only for self logger('api_favorites: self:' . $user_info['self']); - + if ($user_info['self']==0) { $ret = array(); } else { - - + + // params $count = (x($_GET,'count')?$_GET['count']:20); $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); if ($page<0) $page=0; - + $start = $page*$count; - $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, + $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` @@ -1129,16 +1137,16 @@ ); $ret = api_format_items($r,$user_info); - + } - + $data = array('$statuses' => $ret); switch($type){ case "atom": case "rss": $data = api_rss_extra($a, $data, $user_info); } - + return api_apply_template("timeline", $type, $data); } @@ -1208,7 +1216,7 @@ $as['link']['type'] = "text/html"; return($as); } - + function api_format_items($r,$user_info) { //logger('api_format_items: ' . print_r($r,true)); @@ -1223,14 +1231,14 @@ $status_user = (($item['cid']==$user_info['id'])?$user_info: api_item_get_user($a,$item)); if ($item['parent']!=$item['id']) { - $r = q("select id from item where parent=%s and id<%s order by id desc limit 1", + $r = q("select id from item where parent=%s and id<%s order by id desc limit 1", intval($item['parent']), intval($item['id'])); if ($r) $in_reply_to_status_id = $r[0]['id']; else $in_reply_to_status_id = $item['parent']; - $r = q("select `item`.`contact-id`, `contact`.nick, `item`.`author-name` from item, contact + $r = q("select `item`.`contact-id`, `contact`.nick, `item`.`author-name` from item, contact where `contact`.`id` = `item`.`contact-id` and `item`.id=%d", intval($in_reply_to_status_id)); $in_reply_to_screen_name = $r[0]['author-name']; @@ -1251,6 +1259,9 @@ else $statustext = trim($statustitle."\n\n".$statusbody); + if (($item["network"] == NETWORK_FEED) and (strlen($statustext)> 1000)) + $statustext = substr($statustext, 0, 1000)."... \n".$item["plink"]; + $status = array( 'text' => $statustext, 'truncated' => False, diff --git a/include/auth.php b/include/auth.php index b87662fea..cba6a67a7 100644 --- a/include/auth.php +++ b/include/auth.php @@ -53,6 +53,8 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p $check = get_config('system','paranoia'); // extra paranoia - if the IP changed, log them out if($check && ($_SESSION['addr'] != $_SERVER['REMOTE_ADDR'])) { + logger('Session address changed. Paranoid setting in effect, blocking session. ' + . $_SESSION['addr'] . ' != ' . $_SERVER['REMOTE_ADDR']); nuke_session(); goaway(z_root()); } diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 8487f845a..d86ba4543 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -221,13 +221,18 @@ function bb2diaspora($Text,$preserve_nl = false) { $Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$Text); - $Text = preg_replace('/\[(.*?)\]\((.*?)\\\\_(.*?)\)/ism','[$1]($2_$3)',$Text); + $Text = preg_replace_callback('/\[(.*?)\]\((.*?)\)/ism','unescape_underscores_in_links',$Text); call_hooks('bb2diaspora',$Text); return $Text; } +function unescape_underscores_in_links($m) { + $y = str_replace('\\_','_', $m[2]); + return('[' . $m[1] . '](' . $y . ')'); +} + function format_event_diaspora($ev) { $a = get_app(); diff --git a/include/config.php b/include/config.php index 12fc9cafc..df1070c13 100644 --- a/include/config.php +++ b/include/config.php @@ -6,7 +6,7 @@ * Note: * Please do not store booleans - convert to 0/1 integer values * The get_?config() functions return boolean false for keys that are unset, - * and this could lead to subtle bugs. + * and this could lead to subtle bugs. * * There are a few places in the code (such as the admin panel) where boolean * configurations need to be fixed as of 10/08/2011. @@ -30,6 +30,9 @@ function load_config($family) { $a->config[$family][$k] = $rr['v']; } } + } else if ($rr['cat'] != 'config') { + // Negative caching + $a->config[$family] = "!<unset>!"; } }} @@ -47,6 +50,13 @@ function get_config($family, $key, $instore = false) { global $a; if(! $instore) { + // Looking if the whole family isn't set + if(isset($a->config[$family])) { + if($a->config[$family] === '!<unset>!') { + return false; + } + } + if(isset($a->config[$family][$key])) { if($a->config[$family][$key] === '!<unset>!') { return false; @@ -87,11 +97,11 @@ function set_config($family,$key,$value) { dbesc($key), dbesc($dbvalue) ); - if($ret) + if($ret) return $value; return $ret; } - + $ret = q("UPDATE `config` SET `v` = '%s' WHERE `cat` = '%s' AND `k` = '%s' LIMIT 1", dbesc($dbvalue), dbesc($family), @@ -118,6 +128,9 @@ function load_pconfig($uid,$family) { $k = $rr['k']; $a->config[$uid][$family][$k] = $rr['v']; } + } else if ($rr['cat'] != 'config') { + // Negative caching + $a->config[$uid][$family] = "!<unset>!"; } }} @@ -129,6 +142,13 @@ function get_pconfig($uid,$family, $key, $instore = false) { global $a; if(! $instore) { + // Looking if the whole family isn't set + if(isset($a->config[$uid][$family])) { + if($a->config[$uid][$family] === '!<unset>!') { + return false; + } + } + if(isset($a->config[$uid][$family][$key])) { if($a->config[$uid][$family][$key] === '!<unset>!') { return false; diff --git a/include/dba.php b/include/dba.php index c9f880241..881097f30 100644 --- a/include/dba.php +++ b/include/dba.php @@ -32,9 +32,9 @@ class dba { if (!(strlen($server) && strlen($user))){ $this->connected = false; $this->db = null; - return; + return; } - + if($install) { if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { if(! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) { @@ -71,23 +71,29 @@ class dba { } public function q($sql) { - + if((! $this->db) || (! $this->connected)) return false; - + $this->error = ''; + //if (get_config("system", "db_log") != "") + // @file_put_contents(get_config("system", "db_log"), datetime_convert().':'.session_id(). ' Start '.$sql."\n", FILE_APPEND); + if($this->mysqli) $result = @$this->db->query($sql); else $result = @mysql_query($sql,$this->db); + //if (get_config("system", "db_log") != "") + // @file_put_contents(get_config("system", "db_log"), datetime_convert().':'.session_id(). ' Stop '."\n", FILE_APPEND); + if($this->mysqli) { if($this->db->errno) $this->error = $this->db->error; } elseif(mysql_errno($this->db)) - $this->error = mysql_error($this->db); + $this->error = mysql_error($this->db); if(strlen($this->error)) { logger('dba: ' . $this->error); @@ -107,8 +113,8 @@ class dba { else $mesg = mysql_num_rows($result) . ' results' . EOL; } - - $str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg + + $str = 'SQL = ' . printable($sql) . EOL . 'SQL returned ' . $mesg . (($this->error) ? ' error: ' . $this->error : '') . EOL; @@ -146,7 +152,7 @@ class dba { } } - + if($this->debug) logger('dba: ' . printable(print_r($r, true))); return($r); diff --git a/include/delivery.php b/include/delivery.php index 61b0bd33a..32943d5da 100644 --- a/include/delivery.php +++ b/include/delivery.php @@ -288,7 +288,7 @@ function delivery_run($argv, $argc){ if($normal_mode) { if($item_id == $item['id'] || $item['id'] == $item['parent']) - $atom .= atom_entry($item,'text',null,$owner,true); + $atom .= atom_entry($item,'text',null,$owner,true,(($top_level) ? $contact['id'] : 0)); } else $atom .= atom_entry($item,'text',null,$owner,true); diff --git a/include/diaspora.php b/include/diaspora.php index 3f2cdf8e4..f7c2c5e8e 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -2055,8 +2055,12 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) { $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); $theiraddr = $contact['addr']; - $p = q("select guid from item where parent = %d limit 1", - $item['parent'] + // The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always + // return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent. + // The only item with `parent` and `id` as the parent id is the parent item. + $p = q("select guid from item where parent = %d and id = %d limit 1", + intval($item['parent']), + intval($item['parent']) ); if(count($p)) $parent_guid = $p[0]['guid']; @@ -2111,8 +2115,12 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { $theiraddr = $contact['addr']; - $p = q("select guid from item where parent = %d limit 1", - $item['parent'] + // The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always + // return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent. + // The only item with `parent` and `id` as the parent id is the parent item. + $p = q("select guid from item where parent = %d and id = %d limit 1", + intval($item['parent']), + intval($item['parent']) ); if(count($p)) $parent_guid = $p[0]['guid']; diff --git a/include/enotify.php b/include/enotify.php index ca134ac86..f7ef74fac 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -13,7 +13,7 @@ function notification($params) { $banner = t('Friendica Notification'); $product = FRIENDICA_PLATFORM; - $siteurl = z_path(); + $siteurl = $a->get_baseurl(true); $thanks = t('Thank You,'); $sitename = get_config('config','sitename'); $site_admin = sprintf( t('%s Administrator'), $sitename); diff --git a/include/event.php b/include/event.php index 29202badd..866ae8c3f 100644 --- a/include/event.php +++ b/include/event.php @@ -42,7 +42,7 @@ function format_event_html($ev) { return $o; } - +/* function parse_event($h) { require_once('include/Scrape.php'); @@ -108,7 +108,7 @@ function parse_event($h) { return $ret; } - +*/ function format_event_bbcode($ev) { @@ -162,7 +162,6 @@ function bbtoevent($s) { $match = ''; if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match)) $ev['adjust'] = $match[1]; - $match = ''; $ev['nofinish'] = (((x($ev, 'start') && $ev['start']) && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0); return $ev; @@ -294,10 +293,14 @@ function event_store($arr) { intval($arr['uid']) ); - return $r[0]['id']; + $item_id = $r[0]['id']; } else - return 0; + $item_id = 0; + + call_hooks("event_updated", $arr['id']); + + return $item_id; } else { @@ -361,7 +364,7 @@ function event_store($arr) { $item_arr['body'] = format_event_bbcode($event); - $item_arr['object'] = '<object><type>' . xmlify(ACTIVITY_OBJ_EVENT) . '</type><title></title><id>' . xmlify($uri) . '</id>'; + $item_arr['object'] = '<object><type>' . xmlify(ACTIVITY_OBJ_EVENT) . '</type><title></title><id>' . xmlify($arr['uri']) . '</id>'; $item_arr['object'] .= '<content>' . xmlify(format_event_bbcode($event)) . '</content>'; $item_arr['object'] .= '</object>' . "\n"; @@ -383,6 +386,8 @@ function event_store($arr) { ); } + call_hooks("event_created", $event['id']); + return $item_id; } } diff --git a/include/items.php b/include/items.php index e5b640fd2..0ed16217f 100644 --- a/include/items.php +++ b/include/items.php @@ -180,6 +180,10 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0) foreach($items as $item) { + // prevent private email from leaking. + if($item['network'] === NETWORK_MAIL) + continue; + // public feeds get html, our own nodes use bbcode if($public_feed) { @@ -1063,9 +1067,6 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) { $a = get_app(); -// if((! strlen($contact['issued-id'])) && (! $contact['duplex']) && (! ($owner['page-flags'] == PAGE_COMMUNITY))) -// return 3; - $idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']); if($contact['duplex'] && $contact['dfrn-id']) @@ -1130,6 +1131,9 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) { $rino_allowed = ((intval($res->rino) === 1) ? 1 : 0); $page = (($owner['page-flags'] == PAGE_COMMUNITY) ? 1 : 0); + if($owner['page-flags'] == PAGE_PRVGROUP) + $page = 2; + $final_dfrn_id = ''; if($perm) { @@ -1183,7 +1187,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) { $postvars['ssl_policy'] = $ssl_policy; if($page) - $postvars['page'] = '1'; + $postvars['page'] = $page; if($rino && $rino_allowed && (! $dissolve)) { $key = substr(random_string(),0,16); @@ -2832,7 +2836,7 @@ function atom_author($tag,$name,$uri,$h,$w,$photo) { return $o; } -function atom_entry($item,$type,$author,$owner,$comment = false) { +function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) { $a = get_app(); @@ -2844,7 +2848,7 @@ function atom_entry($item,$type,$author,$owner,$comment = false) { if($item['allow_cid'] || $item['allow_gid'] || $item['deny_cid'] || $item['deny_gid']) - $body = fix_private_photos($item['body'],$owner['uid']); + $body = fix_private_photos($item['body'],$owner['uid'],$item,$cid); else $body = $item['body']; @@ -2927,14 +2931,17 @@ function atom_entry($item,$type,$author,$owner,$comment = false) { return $o; } -function fix_private_photos($s,$uid) { +function fix_private_photos($s,$uid, $item = null, $cid = 0) { $a = get_app(); - logger('fix_private_photos'); - if(preg_match("/\[img\](.*?)\[\/img\]/is",$s,$matches)) { - $image = $matches[1]; - logger('fix_private_photos: found photo ' . $image); - if(stristr($image ,$a->get_baseurl() . '/photo/')) { + logger('fix_private_photos', LOGGER_DEBUG); + $site = substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')); + + if(preg_match("/\[img(.*?)\](.*?)\[\/img\]/is",$s,$matches)) { + $image = $matches[2]; + logger('fix_private_photos: found photo ' . $image, LOGGER_DEBUG); + if(stristr($image , $site . '/photo/')) { + $replace = false; $i = basename($image); $i = str_replace('.jpg','',$i); $x = strpos($i,'-'); @@ -2947,17 +2954,86 @@ function fix_private_photos($s,$uid) { intval($uid) ); if(count($r)) { - logger('replacing photo'); - $s = str_replace($image, 'data:image/jpg;base64,' . base64_encode($r[0]['data']), $s); + + // Check to see if we should replace this photo link with an embedded image + // 1. No need to do so if the photo is public + // 2. If there's a contact-id provided, see if they're in the access list + // for the photo. If so, embed it. + // 3. Otherwise, if we have an item, see if the item permissions match the photo + // permissions, regardless of order but first check to see if they're an exact + // match to save some processing overhead. + + // Currently we only embed one private photo per message so as not to hit import + // size limits at the receiving end. + + // To embed multiples, we would need to parse out the embedded photos on message + // receipt and limit size based only on the text component. Would also need to + // ignore all photos during bbcode translation and item localisation, as these + // will hit internal regex backtrace limits. + + if(has_permissions($r[0])) { + if($cid) { + $recips = enumerate_permissions($r[0]); + if(in_array($cid, $recips)) { + $replace = true; + } + } + elseif($item) { + if(compare_permissions($item,$r[0])) + $replace = true; + } + } + if($replace) { + logger('fix_private_photos: replacing photo', LOGGER_DEBUG); + $s = str_replace($image, 'data:image/jpg;base64,' . base64_encode($r[0]['data']), $s); + logger('fix_private_photos: replaced: ' . $s, LOGGER_DATA); + } } } - logger('fix_private_photos: replaced: ' . $s, LOGGER_DATA); } } return($s); } +function has_permissions($obj) { + if(($obj['allow_cid'] != '') || ($obj['allow_gid'] != '') || ($obj['deny_cid'] != '') || ($obj['deny_gid'] != '')) + return true; + return false; +} + +function compare_permissions($obj1,$obj2) { + // first part is easy. Check that these are exactly the same. + if(($obj1['allow_cid'] == $obj2['allow_cid']) + && ($obj1['allow_gid'] == $obj2['allow_gid']) + && ($obj1['deny_cid'] == $obj2['deny_cid']) + && ($obj1['deny_gid'] == $obj2['deny_gid'])) + return true; + + // This is harder. Parse all the permissions and compare the resulting set. + + $recipients1 = enumerate_permissions($obj1); + $recipients2 = enumerate_permissions($obj2); + sort($recipients1); + sort($recipients2); + if($recipients1 == $recipients2) + return true; + return false; +} + +// returns an array of contact-ids that are allowed to see this object + +function enumerate_permissions($obj) { + require_once('include/group.php'); + $allow_people = expand_acl($obj['allow_cid']); + $allow_groups = expand_groups(expand_acl($obj['allow_gid'])); + $deny_people = expand_acl($obj['deny_cid']); + $deny_groups = expand_groups(expand_acl($obj['deny_gid'])); + $recipients = array_unique(array_merge($allow_people,$allow_groups)); + $deny = array_unique(array_merge($deny_people,$deny_groups)); + $recipients = array_diff($recipients,$deny); + return $recipients; +} function item_getfeedtags($item) { $ret = array(); @@ -3004,13 +3080,20 @@ function item_getfeedattach($item) { function item_expire($uid,$days) { - if((! $uid) || (! $days)) + if((! $uid) || ($days < 1)) return; + // $expire_network_only = save your own wall posts + // and just expire conversations started by others + + $expire_network_only = get_pconfig($uid,'expire','network_only'); + $sql_extra = ((intval($expire_network_only)) ? " AND wall = 0 " : ""); + $r = q("SELECT * FROM `item` WHERE `uid` = %d AND `created` < UTC_TIMESTAMP() - INTERVAL %d DAY AND `id` = `parent` + $sql_extra AND `deleted` = 0", intval($uid), intval($days) diff --git a/include/nav.php b/include/nav.php index 2c9c643a9..909ba9b54 100644 --- a/include/nav.php +++ b/include/nav.php @@ -117,7 +117,7 @@ function nav(&$a) { /* only show friend requests for normal pages. Other page types have automatic friendship. */ - if($_SESSION['page_flags'] == PAGE_NORMAL) { + if($_SESSION['page_flags'] == PAGE_NORMAL || $_SESSION['page_flags'] == PAGE_PRVGROUP) { $nav['introductions'] = array('notifications/intros', t('Introductions'), "", t('Friend Requests')); $nav['notifications'] = array('notifications', t('Notifications'), "", t('Notifications')); $nav['notifications']['all']=array('notifications/system', t('See all notifications'), "", ""); diff --git a/include/notifier.php b/include/notifier.php index cb4fb2a31..070e7a436 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -345,7 +345,7 @@ function notifier_run($argv, $argc){ if($mail) { $public_message = false; // mail is not public - $body = fix_private_photos($item['body'],$owner['uid']); + $body = fix_private_photos($item['body'],$owner['uid'],null,$message[0]['contact-id']); $atom .= replace_macros($mail_template, array( '$name' => xmlify($owner['name']), diff --git a/include/profile_advanced.php b/include/profile_advanced.php index bb9850cd0..8c2acd8e7 100644 --- a/include/profile_advanced.php +++ b/include/profile_advanced.php @@ -25,8 +25,8 @@ function advanced_profile(&$a) { $val = ((intval($a->profile['dob'])) ? day_translate(datetime_convert('UTC','UTC',$a->profile['dob'] . ' 00:00 +00:00',$year_bd_format)) - : day_translate(datetime_convert('UTC','UTC','2001-' . substr($a->profile['dob'],6) . ' 00:00 +00:00',$short_bd_format))); - + : day_translate(datetime_convert('UTC','UTC','2001-' . substr($a->profile['dob'],5) . ' 00:00 +00:00',$short_bd_format))); + $profile['birthday'] = array( t('Birthday:'), $val); } diff --git a/include/profile_selectors.php b/include/profile_selectors.php index 4700bb96f..8d29fd099 100644 --- a/include/profile_selectors.php +++ b/include/profile_selectors.php @@ -5,6 +5,8 @@ function gender_selector($current="",$suffix="") { $o = ''; $select = array('', t('Male'), t('Female'), t('Currently Male'), t('Currently Female'), t('Mostly Male'), t('Mostly Female'), t('Transgender'), t('Intersex'), t('Transsexual'), t('Hermaphrodite'), t('Neuter'), t('Non-specific'), t('Other'), t('Undecided')); + call_hooks('gender_selector', $select); + $o .= "<select name=\"gender$suffix\" id=\"gender-select$suffix\" size=\"1\" >"; foreach($select as $selection) { if($selection !== 'NOTRANSLATION') { @@ -20,6 +22,9 @@ function sexpref_selector($current="",$suffix="") { $o = ''; $select = array('', t('Males'), t('Females'), t('Gay'), t('Lesbian'), t('No Preference'), t('Bisexual'), t('Autosexual'), t('Abstinent'), t('Virgin'), t('Deviant'), t('Fetish'), t('Oodles'), t('Nonsexual')); + + call_hooks('sexpref_selector', $select); + $o .= "<select name=\"sexual$suffix\" id=\"sexual-select$suffix\" size=\"1\" >"; foreach($select as $selection) { if($selection !== 'NOTRANSLATION') { @@ -36,6 +41,8 @@ function marital_selector($current="",$suffix="") { $o = ''; $select = array('', t('Single'), t('Lonely'), t('Available'), t('Unavailable'), t('Has crush'), t('Infatuated'), t('Dating'), t('Unfaithful'), t('Sex Addict'), t('Friends'), t('Friends/Benefits'), t('Casual'), t('Engaged'), t('Married'), t('Imaginarily married'), t('Partners'), t('Cohabiting'), t('Common law'), t('Happy'), t('Not looking'), t('Swinger'), t('Betrayed'), t('Separated'), t('Unstable'), t('Divorced'), t('Imaginarily divorced'), t('Widowed'), t('Uncertain'), t('It\'s complicated'), t('Don\'t care'), t('Ask me') ); + call_hooks('marital_selector', $select); + $o .= "<select name=\"marital\" id=\"marital-select\" size=\"1\" >"; foreach($select as $selection) { if($selection !== 'NOTRANSLATION') { diff --git a/include/text.php b/include/text.php index d6a9ef5d3..376ac473d 100644 --- a/include/text.php +++ b/include/text.php @@ -742,6 +742,8 @@ function smilies($s, $sample = false) { ':homebrew', ':coffee', ':facepalm', + ':like', + ':dislike', '~friendika', '~friendica' @@ -778,6 +780,8 @@ function smilies($s, $sample = false) { '<img src="' . $a->get_baseurl() . '/images/beer_mug.gif" alt=":homebrew" />', '<img src="' . $a->get_baseurl() . '/images/coffee.gif" alt=":coffee" />', '<img src="' . $a->get_baseurl() . '/images/smiley-facepalm.gif" alt=":facepalm" />', + '<img src="' . $a->get_baseurl() . '/images/like.gif" alt=":like" />', + '<img src="' . $a->get_baseurl() . '/images/dislike.gif" alt=":dislike" />', '<a href="http://project.friendika.com">~friendika <img src="' . $a->get_baseurl() . '/images/friendika-16.png" alt="~friendika" /></a>', '<a href="http://friendica.com">~friendica <img src="' . $a->get_baseurl() . '/images/friendica-16.png" alt="~friendica" /></a>' ); diff --git a/include/user.php b/include/user.php new file mode 100644 index 000000000..75a91b096 --- /dev/null +++ b/include/user.php @@ -0,0 +1,325 @@ +<?php + +require_once('include/config.php'); +require_once('include/network.php'); +require_once('include/plugin.php'); +require_once('include/text.php'); +require_once('include/pgettext.php'); +require_once('include/datetime.php'); + +function create_user($arr) { + + // Required: { username, nickname, email } or { openid_url } + + $a = get_app(); + $result = array('success' => false, 'user' => null, 'password' => '', 'message' => ''); + + $using_invites = get_config('system','invitation_only'); + $num_invites = get_config('system','number_invites'); + + + $invite_id = ((x($arr,'invite_id')) ? notags(trim($arr['invite_id'])) : ''); + $username = ((x($arr,'username')) ? notags(trim($arr['username'])) : ''); + $nickname = ((x($arr,'nickname')) ? notags(trim($arr['nickname'])) : ''); + $email = ((x($arr,'email')) ? notags(trim($arr['email'])) : ''); + $openid_url = ((x($arr,'openid_url')) ? notags(trim($arr['openid_url'])) : ''); + $photo = ((x($arr,'photo')) ? notags(trim($arr['photo'])) : ''); + $publish = ((x($arr,'profile_publish_reg') && intval($arr['profile_publish_reg'])) ? 1 : 0); + $password = ((x($arr,'password')) ? trim($arr['password']) : ''); + + $netpublish = ((strlen(get_config('system','directory_submit_url'))) ? $publish : 0); + + $tmp_str = $openid_url; + + if($using_invites) { + if(! $invite_id) { + $result['message'] .= t('An invitation is required.') . EOL; + return $result; + } + $r = q("select * from register where `hash` = '%s' limit 1", dbesc($invite_id)); + if(! results($r)) { + $result['message'] .= t('Invitation could not be verified.') . EOL; + return $result; + } + } + + if((! x($username)) || (! x($email)) || (! x($nickname))) { + if($openid_url) { + if(! validate_url($tmp_str)) { + $result['message'] .= t('Invalid OpenID url') . EOL; + return $result; + } + $_SESSION['register'] = 1; + $_SESSION['openid'] = $openid_url; + require_once('library/openid.php'); + $openid = new LightOpenID; + $openid->identity = $openid_url; + $openid->returnUrl = $a->get_baseurl() . '/openid'; + $openid->required = array('namePerson/friendly', 'contact/email', 'namePerson'); + $openid->optional = array('namePerson/first','media/image/aspect11','media/image/default'); + goaway($openid->authUrl()); + // NOTREACHED + } + + notice( t('Please enter the required information.') . EOL ); + return; + } + + if(! validate_url($tmp_str)) + $openid_url = ''; + + + $err = ''; + + // collapse multiple spaces in name + $username = preg_replace('/ +/',' ',$username); + + if(mb_strlen($username) > 48) + $result['message'] .= t('Please use a shorter name.') . EOL; + if(mb_strlen($username) < 3) + $result['message'] .= t('Name too short.') . EOL; + + // I don't really like having this rule, but it cuts down + // on the number of auto-registrations by Russian spammers + + // Using preg_match was completely unreliable, due to mixed UTF-8 regex support + // $no_utf = get_config('system','no_utf'); + // $pat = (($no_utf) ? '/^[a-zA-Z]* [a-zA-Z]*$/' : '/^\p{L}* \p{L}*$/u' ); + + // So now we are just looking for a space in the full name. + + $loose_reg = get_config('system','no_regfullname'); + if(! $loose_reg) { + $username = mb_convert_case($username,MB_CASE_TITLE,'UTF-8'); + if(! strpos($username,' ')) + $result['message'] .= t("That doesn't appear to be your full \x28First Last\x29 name.") . EOL; + } + + + if(! allowed_email($email)) + $result['message'] .= t('Your email domain is not among those allowed on this site.') . EOL; + + if((! valid_email($email)) || (! validate_email($email))) + $result['message'] .= t('Not a valid email address.') . EOL; + + // Disallow somebody creating an account using openid that uses the admin email address, + // since openid bypasses email verification. We'll allow it if there is not yet an admin account. + + if((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0) && strlen($openid_url)) { + $r = q("SELECT * FROM `user` WHERE `email` = '%s' LIMIT 1", + dbesc($email) + ); + if(count($r)) + $result['message'] .= t('Cannot use that email.') . EOL; + } + + $nickname = $arr['nickname'] = strtolower($nickname); + + if(! preg_match("/^[a-z][a-z0-9\-\_]*$/",$nickname)) + $result['message'] .= t('Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.') . EOL; + $r = q("SELECT `uid` FROM `user` + WHERE `nickname` = '%s' LIMIT 1", + dbesc($nickname) + ); + if(count($r)) + $result['message'] .= t('Nickname is already registered. Please choose another.') . EOL; + + // Check deleted accounts that had this nickname. Doesn't matter to us, + // but could be a security issue for federated platforms. + + $r = q("SELECT * FROM `userd` + WHERE `username` = '%s' LIMIT 1", + dbesc($nickname) + ); + if(count($r)) + $result['message'] .= t('Nickname was once registered here and may not be re-used. Please choose another.') . EOL; + + if(strlen($result['message'])) { + return $result; + } + + $new_password = ((strlen($password)) ? $password : autoname(6) . mt_rand(100,9999)); + $new_password_encoded = hash('whirlpool',$new_password); + + $result['password'] = $new_password; + + require_once('include/crypto.php'); + + $keys = new_keypair(1024); + + if($keys === false) { + $result['message'] .= t('SERIOUS ERROR: Generation of security keys failed.') . EOL; + return $result; + } + + $prvkey = $keys['prvkey']; + $pubkey = $keys['pubkey']; + + /** + * + * Create another keypair for signing/verifying + * salmon protocol messages. We have to use a slightly + * less robust key because this won't be using openssl + * but the phpseclib. Since it is PHP interpreted code + * it is not nearly as efficient, and the larger keys + * will take several minutes each to process. + * + */ + + $sres = new_keypair(512); + $sprvkey = $sres['prvkey']; + $spubkey = $sres['pubkey']; + + $r = q("INSERT INTO `user` ( `guid`, `username`, `password`, `email`, `openid`, `nickname`, + `pubkey`, `prvkey`, `spubkey`, `sprvkey`, `register_date`, `verified`, `blocked`, `timezone` ) + VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, 'UTC' )", + dbesc(generate_user_guid()), + dbesc($username), + dbesc($new_password_encoded), + dbesc($email), + dbesc($openid_url), + dbesc($nickname), + dbesc($pubkey), + dbesc($prvkey), + dbesc($spubkey), + dbesc($sprvkey), + dbesc(datetime_convert()), + intval($verified), + intval($blocked) + ); + + if($r) { + $r = q("SELECT * FROM `user` + WHERE `username` = '%s' AND `password` = '%s' LIMIT 1", + dbesc($username), + dbesc($new_password_encoded) + ); + if($r !== false && count($r)) { + $u = $r[0]; + $newuid = intval($r[0]['uid']); + } + } + else { + $result['message'] .= t('An error occurred during registration. Please try again.') . EOL ; + return $result; + } + + /** + * if somebody clicked submit twice very quickly, they could end up with two accounts + * due to race condition. Remove this one. + */ + + $r = q("SELECT `uid` FROM `user` + WHERE `nickname` = '%s' ", + dbesc($nickname) + ); + if((count($r) > 1) && $newuid) { + $result['message'] .= t('Nickname is already registered. Please choose another.') . EOL; + q("DELETE FROM `user` WHERE `uid` = %d LIMIT 1", + intval($newuid) + ); + return $result; + } + + if(x($newuid) !== false) { + $r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` ) + VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ", + intval($newuid), + t('default'), + 1, + dbesc($username), + dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), + dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), + intval($publish), + intval($netpublish) + + ); + if($r === false) { + $result['message'] .= t('An error occurred creating your default profile. Please try again.') . EOL; + // Start fresh next time. + $r = q("DELETE FROM `user` WHERE `uid` = %d", + intval($newuid)); + return $result; + } + $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `nick`, `photo`, `thumb`, `micro`, `blocked`, `pending`, `url`, `nurl`, + `request`, `notify`, `poll`, `confirm`, `poco`, `name-date`, `uri-date`, `avatar-date`, `closeness` ) + VALUES ( %d, '%s', 1, '%s', '%s', '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 0 ) ", + intval($newuid), + datetime_convert(), + dbesc($username), + dbesc($nickname), + dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), + dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), + dbesc($a->get_baseurl() . "/photo/micro/{$newuid}.jpg"), + dbesc($a->get_baseurl() . "/profile/$nickname"), + dbesc(normalise_link($a->get_baseurl() . "/profile/$nickname")), + dbesc($a->get_baseurl() . "/dfrn_request/$nickname"), + dbesc($a->get_baseurl() . "/dfrn_notify/$nickname"), + dbesc($a->get_baseurl() . "/dfrn_poll/$nickname"), + dbesc($a->get_baseurl() . "/dfrn_confirm/$nickname"), + dbesc($a->get_baseurl() . "/poco/$nickname"), + dbesc(datetime_convert()), + dbesc(datetime_convert()), + dbesc(datetime_convert()) + ); + + // Create a group with no members. This allows somebody to use it + // right away as a default group for new contacts. + + require_once('include/group.php'); + group_add($newuid, t('Friends')); + + } + + // if we have no OpenID photo try to look up an avatar + if(! strlen($photo)) + $photo = avatar_img($email); + + // unless there is no avatar-plugin loaded + if(strlen($photo)) { + require_once('include/Photo.php'); + $photo_failure = false; + + $filename = basename($photo); + $img_str = fetch_url($photo,true); + $img = new Photo($img_str); + if($img->is_valid()) { + + $img->scaleImageSquare(175); + + $hash = photo_new_resource(); + + $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 ); + + if($r === false) + $photo_failure = true; + + $img->scaleImage(80); + + $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 5 ); + + if($r === false) + $photo_failure = true; + + $img->scaleImage(48); + + $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 6 ); + + if($r === false) + $photo_failure = true; + + if(! $photo_failure) { + q("UPDATE `photo` SET `profile` = 1 WHERE `resource-id` = '%s' ", + dbesc($hash) + ); + } + } + } + + call_hooks('register_account', $newuid); + + $result['success'] = true; + $result['user'] = $u; + return $result; + +}
\ No newline at end of file diff --git a/js/country.js b/js/country.js index 8d218bde6..c3add477f 100644 --- a/js/country.js +++ b/js/country.js @@ -275,7 +275,7 @@ aStates[249]="|'Adan|'Ataq|Abyan|Al Bayda'|Al Hudaydah|Al Jawf|Al Mahrah|Al Mahw aStates[250]="|Kosovo|Montenegro|Serbia|Vojvodina";
aStates[251]="|Central|Copperbelt|Eastern|Luapula|Lusaka|North-Western|Northern|Southern|Western";
aStates[252]="|Bulawayo|Harare|ManicalandMashonaland Central|Mashonaland East|Mashonaland West|Masvingo|Matabeleland North|Matabeleland South|Midlands";
-aStates[253]="Self Hosted|Private Server|Architects Of Sleep|DFRN|Distributed Friend Network|Free-Beer.ch|Foojbook|Free-Haven|Friendica.eu|Friendika.me.4.it|Friendika - I Ask Questions|Frndc.com|Hipatia|Hungerfreunde|Kaluguran Community|Kak Ste?|Karl.Markx.pm|Loozah Social Club|MyFriendica.net|MyFriendNetwork|Oi!|OpenMindSpace|Oradons Friendica|Recolutionari.es|Sysfu Social Club|theshi.re|Tumpambae|Uzmiac|Other";
+aStates[253]="|Self Hosted|Private Server|Architects Of Sleep|DFRN|Distributed Friend Network|Free-Beer.ch|Foojbook|Free-Haven|Friendica.eu|Friendika.me.4.it|Friendika - I Ask Questions|Frndc.com|Hipatia|Hungerfreunde|Kaluguran Community|Kak Ste?|Karl.Markx.pm|Loozah Social Club|MyFriendica.net|MyFriendNetwork|Oi!|OpenMindSpace|Recolutionari.es|Sysfu Social Club|theshi.re|Tumpambae|Uzmiac|Other";
/*
* gArCountryInfo
* (0) Country name
diff --git a/mod/acl.php b/mod/acl.php index 168b1f59f..1e8898ab6 100644 --- a/mod/acl.php +++ b/mod/acl.php @@ -135,7 +135,7 @@ function acl_init(&$a){ foreach($r as $g) { $x['photos'][] = $g['micro']; $x['links'][] = $g['url']; - $x['suggestions'][] = $g['name']; // sprintf( t('%s [%s]'),$g['name'],$g['url']); + $x['suggestions'][] = $g['name']; $x['data'][] = intval($g['id']); } } diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 093993bbc..76b99cbca 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -202,6 +202,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) { if($user[0]['page-flags'] == PAGE_COMMUNITY) $params['page'] = 1; + if($user[0]['page-flags'] == PAGE_PRVGROUP) + $params['page'] = 2; logger('dfrn_confirm: Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA); @@ -500,7 +502,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { ); if($contact && $g && intval($g[0]['def_gid'])) { require_once('include/group.php'); - group_add_member($uid,'',$contact[0]['id'],$g[0]['def_gid']); + group_add_member($uid,'',$contact['id'],$g[0]['def_gid']); } // Let's send our user to the contact editor in case they want to @@ -537,6 +539,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) { $page = ((x($_POST,'page')) ? intval($_POST['page']) : 0 ); $version_id = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0); + $forum = (($page == 1) ? 1 : 0); + $prv = (($page == 2) ? 1 : 0); + logger('dfrn_confirm: requestee contacted: ' . $node); logger('dfrn_confirm: request: POST=' . print_r($_POST,true), LOGGER_DATA); @@ -691,6 +696,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) { `pending` = 0, `duplex` = %d, `forum` = %d, + `prv` = %d, `network` = '%s' WHERE `id` = %d LIMIT 1 ", dbesc($photos[0]), @@ -701,7 +707,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) { dbesc(datetime_convert()), dbesc(datetime_convert()), intval($duplex), - intval($page), + intval($forum), + intval($prv), dbesc(NETWORK_DFRN), intval($dfrn_record) ); diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index 65d39d5fe..e55da5572 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -17,6 +17,9 @@ function dfrn_notify_post(&$a) { $ssl_policy = ((x($_POST,'ssl_policy')) ? notags(trim($_POST['ssl_policy'])): 'none'); $page = ((x($_POST,'page')) ? intval($_POST['page']) : 0); + $forum = (($page == 1) ? 1 : 0); + $prv = (($page == 2) ? 1 : 0); + $writable = (-1); if($dfrn_version >= 2.21) { $writable = (($perm === 'rw') ? 1 : 0); @@ -88,10 +91,11 @@ function dfrn_notify_post(&$a) { $importer = $r[0]; - if((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $page)) { - q("UPDATE `contact` SET `writable` = %d, forum = %d WHERE `id` = %d LIMIT 1", + if((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $forum) || ($importer['prv'] != $prv)) { + q("UPDATE `contact` SET `writable` = %d, forum = %d, prv = %d WHERE `id` = %d LIMIT 1", intval(($writable == (-1)) ? $importer['writable'] : $writable), - intval($page), + intval($forum), + intval($prv), intval($importer['id']) ); if($writable != (-1)) diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index b809929d7..896fe1792 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -68,7 +68,7 @@ function dfrn_request_post(&$a) { $dfrn_url = notags(trim($_POST['dfrn_url'])); $aes_allow = (((x($_POST,'aes_allow')) && ($_POST['aes_allow'] == 1)) ? 1 : 0); $confirm_key = ((x($_POST,'confirm_key')) ? $_POST['confirm_key'] : ""); - + $hidden = ((x($_POST,'hidden-contact')) ? intval($_POST['hidden-contact']) : 0); $contact_record = null; if(x($dfrn_url)) { @@ -98,8 +98,9 @@ function dfrn_request_post(&$a) { } if(is_array($contact_record)) { - $r = q("UPDATE `contact` SET `ret-aes` = %d WHERE `id` = %d LIMIT 1", + $r = q("UPDATE `contact` SET `ret-aes` = %d, hidden = %d WHERE `id` = %d LIMIT 1", intval($aes_allow), + intval($hidden), intval($contact_record['id']) ); } @@ -144,8 +145,8 @@ function dfrn_request_post(&$a) { */ $r = q("INSERT INTO `contact` ( `uid`, `created`,`url`, `nurl`, `name`, `nick`, `photo`, `site-pubkey`, - `request`, `confirm`, `notify`, `poll`, `poco`, `network`, `aes_allow`) - VALUES ( %d, '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d)", + `request`, `confirm`, `notify`, `poll`, `poco`, `network`, `aes_allow`, `hidden`) + VALUES ( %d, '%s', '%s', '%s', '%s' , '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d)", intval(local_user()), datetime_convert(), dbesc($dfrn_url), @@ -160,7 +161,8 @@ function dfrn_request_post(&$a) { $parms['dfrn-poll'], $parms['dfrn-poco'], dbesc(NETWORK_DFRN), - intval($aes_allow) + intval($aes_allow), + intval($hidden) ); } @@ -649,6 +651,8 @@ function dfrn_request_content(&$a) { $o = replace_macros($tpl,array( '$dfrn_url' => $dfrn_url, '$aes_allow' => (($aes_allow) ? '<input type="hidden" name="aes_allow" value="1" />' : "" ), + '$hidethem' => t('Hide this contact'), + '$hidechecked' => '', '$confirm_key' => $confirm_key, '$welcome' => sprintf( t('Welcome home %s.'), $a->user['username']), '$please' => sprintf( t('Please confirm your introduction/connection request to %s.'), $dfrn_url), @@ -680,7 +684,7 @@ function dfrn_request_content(&$a) { $auto_confirm = false; if(count($r)) { - if($r[0]['page-flags'] != PAGE_NORMAL) + if(($r[0]['page-flags'] != PAGE_NORMAL) && ($r[0]['page-flags'] != PAGE_PRVGROUP)) $auto_confirm = true; if(! $auto_confirm) { diff --git a/mod/item.php b/mod/item.php index 81dd553cd..497cf5daa 100644 --- a/mod/item.php +++ b/mod/item.php @@ -262,17 +262,17 @@ function item_post(&$a) { } } - if(strlen($categories)) { - // get the "fileas" tags for this post - $filedas = file_tag_file_to_list($categories, 'file'); + if(strlen($categories)) { + // get the "fileas" tags for this post + $filedas = file_tag_file_to_list($categories, 'file'); } - // save old and new categories, so we can determine what needs to be deleted from pconfig - $categories_old = $categories; - $categories = file_tag_list_to_file(trim($_REQUEST['category']), 'category'); - $categories_new = $categories; - if(strlen($filedas)) { - // append the fileas stuff to the new categories list - $categories .= file_tag_list_to_file($filedas, 'file'); + // save old and new categories, so we can determine what needs to be deleted from pconfig + $categories_old = $categories; + $categories = file_tag_list_to_file(trim($_REQUEST['category']), 'category'); + $categories_new = $categories; + if(strlen($filedas)) { + // append the fileas stuff to the new categories list + $categories .= file_tag_list_to_file($filedas, 'file'); } // Work around doubled linefeeds in Tinymce 3.5b2 @@ -355,13 +355,15 @@ function item_post(&$a) { $image_uri = substr($image_uri,0, strpos($image_uri,'-')); if(! strlen($image_uri)) continue; - $srch = '<' . intval($contact_record['id']) . '>'; + $srch = '<' . intval($contact_id) . '>'; + $r = q("SELECT `id` FROM `photo` WHERE `allow_cid` = '%s' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' AND `resource-id` = '%s' AND `uid` = %d LIMIT 1", dbesc($srch), dbesc($image_uri), intval($profile_uid) ); + if(! count($r)) continue; @@ -451,6 +453,7 @@ function item_post(&$a) { $tagged = array(); + $private_forum = false; if(count($tags)) { foreach($tags as $tag) { @@ -469,11 +472,22 @@ function item_post(&$a) { continue; $success = handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag); - if($success) + if($success['replaced']) $tagged[] = $tag; + if(is_array($success['contact']) && intval($success['contact']['prv'])) { + $private_forum = true; + $private_id = $success['contact']['id']; + } } } + if(($private_forum) && (! $parent) && (! $private)) { + // we tagged a private forum in a top level post and the message was public. + // Restrict it. + $private = 1; + $str_contact_allow = '<' . $private_id . '>'; + } + $attachments = ''; $match = false; @@ -891,6 +905,7 @@ function item_content(&$a) { function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) { $replaced = false; + $r = null; //is it a hash tag? if(strpos($tag,'#') === 0) { @@ -1021,5 +1036,5 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) { } } - return $replaced; + return array('replaced' => $replaced, 'contact' => $r[0]); } diff --git a/mod/network.php b/mod/network.php index f43eeb67e..7c4c1ac04 100644 --- a/mod/network.php +++ b/mod/network.php @@ -402,10 +402,22 @@ function network_content(&$a, $update = 0) { if(x($_GET,'search')) { $search = escape_tags($_GET['search']); - $sql_extra .= sprintf(" AND ( `item`.`body` like '%s' OR `item`.`tag` like '%s' ) ", - dbesc(protect_sprintf('%' . $search . '%')), - dbesc(protect_sprintf('%]' . $search . '[%')) - ); + if (get_config('system','use_fulltext_engine')) { + if(strpos($search,'#') === 0) + $sql_extra .= sprintf(" AND (MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode)) ", + dbesc(protect_sprintf($search)) + ); + else + $sql_extra .= sprintf(" AND (MATCH(`item`.`body`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode)) ", + dbesc(protect_sprintf($search)), + dbesc(protect_sprintf($search)) + ); + } else { + $sql_extra .= sprintf(" AND ( `item`.`body` like '%s' OR `item`.`tag` like '%s' ) ", + dbesc(protect_sprintf('%' . $search . '%')), + dbesc(protect_sprintf('%]' . $search . '[%')) + ); + } } if(strlen($file)) { $sql_extra .= file_tag_file_query('item',unxmlify($file)); @@ -414,15 +426,22 @@ function network_content(&$a, $update = 0) { if($conv) { $myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname']; $myurl = substr($myurl,strpos($myurl,'://')+3); - $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); + $myurl = str_replace('www.','',$myurl); $diasp_url = str_replace('/profile/','/u/',$myurl); - $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ", - dbesc(protect_sprintf('%s' . $myurl)), - dbesc(protect_sprintf('%' . $myurl . '\\]%')), - dbesc(protect_sprintf('%' . $diasp_url . '\\]%')) - ); - } + if (get_config('system','use_fulltext_engine')) + $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ", + dbesc(protect_sprintf($myurl)), + dbesc(protect_sprintf($myurl)), + dbesc(protect_sprintf($diasp_url)) + ); + else + $sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ", + dbesc(protect_sprintf('%' . $myurl)), + dbesc(protect_sprintf('%' . $myurl . ']%')), + dbesc(protect_sprintf('%' . $diasp_url . ']%')) + ); + } if($update) { diff --git a/mod/notes.php b/mod/notes.php index 0072ce447..703c898e6 100644 --- a/mod/notes.php +++ b/mod/notes.php @@ -80,7 +80,8 @@ function notes_content(&$a,$update = false) { $r = q("SELECT COUNT(*) AS `total` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` - WHERE `item`.`uid` = %d AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0 + WHERE `item`.`uid` = %d AND `item`.`visible` = 1 and `item`.`moderated` = 0 + AND `item`.`deleted` = 0 AND `item`.`type` = 'note' AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`self` = 1 AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 0 $sql_extra ", @@ -95,7 +96,8 @@ function notes_content(&$a,$update = false) { $r = q("SELECT `item`.`id` AS `item_id`, `contact`.`uid` AS `contact-uid` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` - WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0 and `item`.`moderated` = 0 + WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0 + and `item`.`moderated` = 0 AND `item`.`type` = 'note' AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`self` = 1 AND `item`.`id` = `item`.`parent` AND `item`.`wall` = 0 $sql_extra diff --git a/mod/profiles.php b/mod/profiles.php index 26fc88765..ca3890eb9 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -146,7 +146,7 @@ function profiles_post(&$a) { $value = $marital; } if($withchanged) { - $changes[] = '♥ ' . t('Romantic Partner'); + $changes[] = '[color=#ff0000]♥[/color] ' . t('Romantic Partner'); $value = strip_tags($with); } if($work != $orig[0]['work']) { @@ -176,9 +176,18 @@ function profiles_post(&$a) { $changes[] = t('Interests'); $value = $interest; } - if($address != $orig[0]['address'] || $locality != $orig[0]['locality'] || $region != $orig[0]['region'] + if($address != $orig[0]['address']) { + $changes[] = t('Address'); + // New address not sent in notifications, potential privacy issues + // in case this leaks to unintended recipients. Yes, it's in the public + // profile but that doesn't mean we have to broadcast it to everybody. + } + if($locality != $orig[0]['locality'] || $region != $orig[0]['region'] || $country_name != $orig[0]['country-name']) { $changes[] = t('Location'); + $comma1 = ((($locality) && ($region || $country_name)) ? ', ' : ' '); + $comma2 = (($region && $country_name) ? ', ' : ''); + $value = $locality . $comma1 . $region . $comma2 . $country_name; } profile_activity($changes,$value); diff --git a/mod/register.php b/mod/register.php index 58bba8533..b162f62be 100644 --- a/mod/register.php +++ b/mod/register.php @@ -43,326 +43,44 @@ function register_post(&$a) { break; } - $using_invites = get_config('system','invitation_only'); - $num_invites = get_config('system','number_invites'); - - - $invite_id = ((x($_POST,'invite_id')) ? notags(trim($_POST['invite_id'])) : ''); - $username = ((x($_POST,'username')) ? notags(trim($_POST['username'])) : ''); - $nickname = ((x($_POST,'nickname')) ? notags(trim($_POST['nickname'])) : ''); - $email = ((x($_POST,'email')) ? notags(trim($_POST['email'])) : ''); - $openid_url = ((x($_POST,'openid_url')) ? notags(trim($_POST['openid_url'])) : ''); - $photo = ((x($_POST,'photo')) ? notags(trim($_POST['photo'])) : ''); - $publish = ((x($_POST,'profile_publish_reg') && intval($_POST['profile_publish_reg'])) ? 1 : 0); - - $netpublish = ((strlen(get_config('system','directory_submit_url'))) ? $publish : 0); - - $tmp_str = $openid_url; - - if($using_invites) { - if(! $invite_id) { - notice( t('An invitation is required.') . EOL); - return; - } - $r = q("select * from register where `hash` = '%s' limit 1", dbesc($invite_id)); - if(! results($r)) { - notice( t('Invitation could not be verified.') . EOL); - return; - } - } - - if((! x($username)) || (! x($email)) || (! x($nickname))) { - if($openid_url) { - if(! validate_url($tmp_str)) { - notice( t('Invalid OpenID url') . EOL); - return; - } - $_SESSION['register'] = 1; - $_SESSION['openid'] = $openid_url; - require_once('library/openid.php'); - $openid = new LightOpenID; - $openid->identity = $openid_url; - $openid->returnUrl = $a->get_baseurl() . '/openid'; - $openid->required = array('namePerson/friendly', 'contact/email', 'namePerson'); - $openid->optional = array('namePerson/first','media/image/aspect11','media/image/default'); - goaway($openid->authUrl()); - // NOTREACHED - } - - notice( t('Please enter the required information.') . EOL ); - return; - } - - if(! validate_url($tmp_str)) - $openid_url = ''; - - - $err = ''; - - // collapse multiple spaces in name - $username = preg_replace('/ +/',' ',$username); - - if(mb_strlen($username) > 48) - $err .= t('Please use a shorter name.') . EOL; - if(mb_strlen($username) < 3) - $err .= t('Name too short.') . EOL; - - // I don't really like having this rule, but it cuts down - // on the number of auto-registrations by Russian spammers - - // Using preg_match was completely unreliable, due to mixed UTF-8 regex support - // $no_utf = get_config('system','no_utf'); - // $pat = (($no_utf) ? '/^[a-zA-Z]* [a-zA-Z]*$/' : '/^\p{L}* \p{L}*$/u' ); + require_once('include/user.php'); - // So now we are just looking for a space in the full name. - - $loose_reg = get_config('system','no_regfullname'); - if(! $loose_reg) { - $username = mb_convert_case($username,MB_CASE_TITLE,'UTF-8'); - if(! strpos($username,' ')) - $err .= t("That doesn't appear to be your full \x28First Last\x29 name.") . EOL; - } - - - if(! allowed_email($email)) - $err .= t('Your email domain is not among those allowed on this site.') . EOL; - - if((! valid_email($email)) || (! validate_email($email))) - $err .= t('Not a valid email address.') . EOL; - - // Disallow somebody creating an account using openid that uses the admin email address, - // since openid bypasses email verification. We'll allow it if there is not yet an admin account. - - if((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0) && strlen($openid_url)) { - $r = q("SELECT * FROM `user` WHERE `email` = '%s' LIMIT 1", - dbesc($email) - ); - if(count($r)) - $err .= t('Cannot use that email.') . EOL; - } + $result = create_user($_POST); - $nickname = $_POST['nickname'] = strtolower($nickname); - - if(! preg_match("/^[a-z][a-z0-9\-\_]*$/",$nickname)) - $err .= t('Your "nickname" can only contain "a-z", "0-9", "-", and "_", and must also begin with a letter.') . EOL; - $r = q("SELECT `uid` FROM `user` - WHERE `nickname` = '%s' LIMIT 1", - dbesc($nickname) - ); - if(count($r)) - $err .= t('Nickname is already registered. Please choose another.') . EOL; - - // Check deleted accounts that had this nickname. Doesn't matter to us, - // but could be a security issue for federated platforms. - - $r = q("SELECT * FROM `userd` - WHERE `username` = '%s' LIMIT 1", - dbesc($nickname) - ); - if(count($r)) - $err .= t('Nickname was once registered here and may not be re-used. Please choose another.') . EOL; - - if(strlen($err)) { - notice( $err ); + if(! $result['success']) { + notice($result['message']); return; } - - $new_password = autoname(6) . mt_rand(100,9999); - $new_password_encoded = hash('whirlpool',$new_password); - - require_once('include/crypto.php'); - - $result = new_keypair(1024); - - if($result === false) { - notice( t('SERIOUS ERROR: Generation of security keys failed.') . EOL); - return; - } - - $prvkey = $result['prvkey']; - $pubkey = $result['pubkey']; - - /** - * - * Create another keypair for signing/verifying - * salmon protocol messages. We have to use a slightly - * less robust key because this won't be using openssl - * but the phpseclib. Since it is PHP interpreted code - * it is not nearly as efficient, and the larger keys - * will take several minutes each to process. - * - */ - - $sres = new_keypair(512); - $sprvkey = $sres['prvkey']; - $spubkey = $sres['pubkey']; - - $r = q("INSERT INTO `user` ( `guid`, `username`, `password`, `email`, `openid`, `nickname`, - `pubkey`, `prvkey`, `spubkey`, `sprvkey`, `register_date`, `verified`, `blocked`, `timezone` ) - VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, 'UTC' )", - dbesc(generate_user_guid()), - dbesc($username), - dbesc($new_password_encoded), - dbesc($email), - dbesc($openid_url), - dbesc($nickname), - dbesc($pubkey), - dbesc($prvkey), - dbesc($spubkey), - dbesc($sprvkey), - dbesc(datetime_convert()), - intval($verified), - intval($blocked) - ); - - if($r) { - $r = q("SELECT `uid` FROM `user` - WHERE `username` = '%s' AND `password` = '%s' LIMIT 1", - dbesc($username), - dbesc($new_password_encoded) - ); - if($r !== false && count($r)) - $newuid = intval($r[0]['uid']); - } - else { - notice( t('An error occurred during registration. Please try again.') . EOL ); - return; - } - - /** - * if somebody clicked submit twice very quickly, they could end up with two accounts - * due to race condition. Remove this one. - */ - - $r = q("SELECT `uid` FROM `user` - WHERE `nickname` = '%s' ", - dbesc($nickname) - ); - if((count($r) > 1) && $newuid) { - $err .= t('Nickname is already registered. Please choose another.') . EOL; - q("DELETE FROM `user` WHERE `uid` = %d LIMIT 1", - intval($newuid) - ); - notice ($err); - return; - } - - if(x($newuid) !== false) { - $r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` ) - VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ", - intval($newuid), - 'default', - 1, - dbesc($username), - dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), - dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), - intval($publish), - intval($netpublish) - - ); - if($r === false) { - notice( t('An error occurred creating your default profile. Please try again.') . EOL ); - // Start fresh next time. - $r = q("DELETE FROM `user` WHERE `uid` = %d", - intval($newuid)); - return; - } - $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `nick`, `photo`, `thumb`, `micro`, `blocked`, `pending`, `url`, `nurl`, - `request`, `notify`, `poll`, `confirm`, `poco`, `name-date`, `uri-date`, `avatar-date`, `closeness` ) - VALUES ( %d, '%s', 1, '%s', '%s', '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 0 ) ", - intval($newuid), - datetime_convert(), - dbesc($username), - dbesc($nickname), - dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), - dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), - dbesc($a->get_baseurl() . "/photo/micro/{$newuid}.jpg"), - dbesc($a->get_baseurl() . "/profile/$nickname"), - dbesc(normalise_link($a->get_baseurl() . "/profile/$nickname")), - dbesc($a->get_baseurl() . "/dfrn_request/$nickname"), - dbesc($a->get_baseurl() . "/dfrn_notify/$nickname"), - dbesc($a->get_baseurl() . "/dfrn_poll/$nickname"), - dbesc($a->get_baseurl() . "/dfrn_confirm/$nickname"), - dbesc($a->get_baseurl() . "/poco/$nickname"), - dbesc(datetime_convert()), - dbesc(datetime_convert()), - dbesc(datetime_convert()) - ); - - - } - - // if we have no OpenID photo try to look up an avatar - if(! strlen($photo)) - $photo = avatar_img($email); - - // unless there is no avatar-plugin loaded - if(strlen($photo)) { - require_once('include/Photo.php'); - $photo_failure = false; - - $filename = basename($photo); - $img_str = fetch_url($photo,true); - $img = new Photo($img_str); - if($img->is_valid()) { - - $img->scaleImageSquare(175); - - $hash = photo_new_resource(); - - $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 ); - - if($r === false) - $photo_failure = true; - - $img->scaleImage(80); - - $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 5 ); - - if($r === false) - $photo_failure = true; - - $img->scaleImage(48); - - $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 6 ); - - if($r === false) - $photo_failure = true; - - if(! $photo_failure) { - q("UPDATE `photo` SET `profile` = 1 WHERE `resource-id` = '%s' ", - dbesc($hash) - ); - } - } - } - + $user = $result['user']; + if($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) { - $url = $a->get_baseurl() . "/profile/$nickname"; + $url = $a->get_baseurl() . '/profile/' . $user['nickname']; proc_run('php',"include/directory.php","$url"); } + $using_invites = get_config('system','invitation_only'); + $num_invites = get_config('system','number_invites'); + $invite_id = ((x($_POST,'invite_id')) ? notags(trim($_POST['invite_id'])) : ''); - call_hooks('register_account', $newuid); if( $a->config['register_policy'] == REGISTER_OPEN ) { if($using_invites && $invite_id) { q("delete * from register where hash = '%s' limit 1", dbesc($invite_id)); - set_pconfig($newuid,'system','invites_remaining',$num_invites); + set_pconfig($user['uid'],'system','invites_remaining',$num_invites); } $email_tpl = get_intltext_template("register_open_eml.tpl"); $email_tpl = replace_macros($email_tpl, array( '$sitename' => $a->config['sitename'], '$siteurl' => $a->get_baseurl(), - '$username' => $username, - '$email' => $email, - '$password' => $new_password, - '$uid' => $newuid )); + '$username' => $user['username'], + '$email' => $user['email'], + '$password' => $result['password'], + '$uid' => $user['uid'] )); - $res = mail($email, sprintf(t('Registration details for %s'), $a->config['sitename']), + $res = mail($user['email'], sprintf(t('Registration details for %s'), $a->config['sitename']), $email_tpl, 'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n" . 'Content-type: text/plain; charset=UTF-8' . "\n" @@ -387,8 +105,8 @@ function register_post(&$a) { $r = q("INSERT INTO `register` ( `hash`, `created`, `uid`, `password`, `language` ) VALUES ( '%s', '%s', %d, '%s', '%s' ) ", dbesc($hash), dbesc(datetime_convert()), - intval($newuid), - dbesc($new_password), + intval($user['uid']), + dbesc($result['password']), dbesc($lang) ); @@ -402,17 +120,17 @@ function register_post(&$a) { if($using_invites && $invite_id) { q("delete * from register where hash = '%s' limit 1", dbesc($invite_id)); - set_pconfig($newuid,'system','invites_remaining',$num_invites); + set_pconfig($user['uid'],'system','invites_remaining',$num_invites); } $email_tpl = get_intltext_template("register_verify_eml.tpl"); $email_tpl = replace_macros($email_tpl, array( '$sitename' => $a->config['sitename'], '$siteurl' => $a->get_baseurl(), - '$username' => $username, - '$email' => $email, - '$password' => $new_password, - '$uid' => $newuid, + '$username' => $user['username'], + '$email' => $user['email'], + '$password' => $result['password'], + '$uid' => $user['uid'], '$hash' => $hash )); diff --git a/mod/search.php b/mod/search.php index 3e6bf68aa..466ffc4c3 100644 --- a/mod/search.php +++ b/mod/search.php @@ -71,7 +71,7 @@ function search_content(&$a) { notice( t('Public access denied.') . EOL); return; } - + nav_set_selected('search'); require_once("include/bbcode.php"); @@ -96,7 +96,6 @@ function search_content(&$a) { $o .= search($search,'search-box','/search',((local_user()) ? true : false)); - if(strpos($search,'#') === 0) { $tag = true; $search = substr($search,1); @@ -109,10 +108,17 @@ function search_content(&$a) { if(! $search) return $o; - if($tag) - $sql_extra = sprintf(" AND `item`.`tag` REGEXP '%s' ", dbesc('\\]' . preg_quote($search) . '\\[')); - else - $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(preg_quote($search))); + if (get_config('system','use_fulltext_engine')) { + if($tag) + $sql_extra = sprintf(" AND MATCH (`item`.`tag`) AGAINST ('".'"%s"'."' in boolean mode) ", '#'.dbesc(protect_sprintf($search))); + else + $sql_extra = sprintf(" AND MATCH (`item`.`body`) AGAINST ('".'"%s"'."' in boolean mode) ", dbesc(protect_sprintf($search))); + } else { + if($tag) + $sql_extra = sprintf(" AND `item`.`tag` REGEXP '%s' ", dbesc('\\]' . protect_sprintf(preg_quote($search)) . '\\[')); + else + $sql_extra = sprintf(" AND `item`.`body` REGEXP '%s' ", dbesc(protect_sprintf(preg_quote($search)))); + } diff --git a/mod/settings.php b/mod/settings.php index 40fa55eea..92593d7a8 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -15,6 +15,7 @@ function get_theme_config_file($theme){ } function settings_init(&$a) { + // These lines provide the javascript needed by the acl selector $a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "';" ; @@ -86,6 +87,7 @@ EOT; $tabtpl = get_markup_template("generic_links_widget.tpl"); $a->page['aside'] = replace_macros($tabtpl, array( '$title' => t('Settings'), + '$class' => 'settings-widget', '$items' => $tabs, )); @@ -337,8 +339,7 @@ function settings_post(&$a) { $expire_notes = ((x($_POST,'expire_notes')) ? intval($_POST['expire_notes']) : 0); $expire_starred = ((x($_POST,'expire_starred')) ? intval($_POST['expire_starred']) : 0); $expire_photos = ((x($_POST,'expire_photos'))? intval($_POST['expire_photos']) : 0); - - + $expire_network_only = ((x($_POST,'expire_network_only'))? intval($_POST['expire_network_only']) : 0); $allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0); $publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0); @@ -434,6 +435,7 @@ function settings_post(&$a) { set_pconfig(local_user(),'expire','notes', $expire_notes); set_pconfig(local_user(),'expire','starred', $expire_starred); set_pconfig(local_user(),'expire','photos', $expire_photos); + set_pconfig(local_user(),'expire','network_only', $expire_network_only); set_pconfig(local_user(),'system','suggestme', $suggestme); set_pconfig(local_user(),'system','post_newfriend', $post_newfriend); @@ -443,7 +445,7 @@ function settings_post(&$a) { if($page_flags == PAGE_PRVGROUP) { $hidewall = 1; - if((! str_contact_allow) && (! str_group_allow) && (! str_contact_deny) && (! $str_group_deny)) { + if((! $str_contact_allow) && (! $str_group_allow) && (! $str_contact_deny) && (! $str_group_deny)) { if($def_gid) { info( t('Private forum has no privacy permissions. Using default privacy group.'). EOL); $str_group_allow = '<' . $def_gid . '>'; @@ -811,6 +813,9 @@ function settings_content(&$a) { $expire_photos = get_pconfig(local_user(), 'expire','photos'); $expire_photos = (($expire_photos===false)? '0' : $expire_photos); // default if not set: 0 + $expire_network_only = get_pconfig(local_user(), 'expire','network_only'); + $expire_network_only = (($expire_network_only===false)? '0' : $expire_network_only); // default if not set: 0 + $suggestme = get_pconfig(local_user(), 'system','suggestme'); $suggestme = (($suggestme===false)? '0': $suggestme); // default if not set: 0 @@ -832,27 +837,26 @@ function settings_content(&$a) { $pageset_tpl = get_markup_template('pagetypes.tpl'); $pagetype = replace_macros($pageset_tpl,array( - '$page_normal' => array('page-flags', t('Normal Account'), PAGE_NORMAL, + '$page_normal' => array('page-flags', t('Normal Account Page'), PAGE_NORMAL, t('This account is a normal personal profile'), ($a->user['page-flags'] == PAGE_NORMAL)), - '$page_soapbox' => array('page-flags', t('Soapbox Account'), PAGE_SOAPBOX, + '$page_soapbox' => array('page-flags', t('Soapbox Page'), PAGE_SOAPBOX, t('Automatically approve all connection/friend requests as read-only fans'), ($a->user['page-flags'] == PAGE_SOAPBOX)), - '$page_community' => array('page-flags', t('Community/Celebrity Account'), PAGE_COMMUNITY, + '$page_community' => array('page-flags', t('Community Forum/Celebrity Account'), PAGE_COMMUNITY, t('Automatically approve all connection/friend requests as read-write fans'), ($a->user['page-flags'] == PAGE_COMMUNITY)), - '$page_freelove' => array('page-flags', t('Automatic Friend Account'), PAGE_FREELOVE, + '$page_freelove' => array('page-flags', t('Automatic Friend Page'), PAGE_FREELOVE, t('Automatically approve all connection/friend requests as friends'), ($a->user['page-flags'] == PAGE_FREELOVE)), - '$page_prvgroup' => array('page-flags', t('Private Forum'), PAGE_PRVGROUP, - t('Private forum - approved members only [Experimental]'), + '$page_prvgroup' => array('page-flags', t('Private Forum [Experimental]'), PAGE_PRVGROUP, + t('Private forum - approved members only'), ($a->user['page-flags'] == PAGE_PRVGROUP)), - '$experimental' => ( (intval(get_config('system','prvgroup_testing'))) ? 'true' : ''), )); @@ -953,6 +957,7 @@ function settings_content(&$a) { 'notes' => array('expire_notes', t("Expire personal notes:"), $expire_notes, '', array(t('No'),t('Yes'))), 'starred' => array('expire_starred', t("Expire starred posts:"), $expire_starred, '', array(t('No'),t('Yes'))), 'photos' => array('expire_photos', t("Expire photos:"), $expire_photos, '', array(t('No'),t('Yes'))), + 'network_only' => array('expire_network_only', t("Only expire posts by others:"), $expire_network_only, '', array(t('No'),t('Yes'))), ); require_once('include/group.php'); @@ -1020,7 +1025,8 @@ function settings_content(&$a) { '$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''), - '$h_advn' => t('Advanced Page Settings'), + '$h_advn' => t('Advanced Account/Page Type Settings'), + '$h_descadvn' => t('Change the behaviour of this account for special situations'), '$pagetype' => $pagetype, diff --git a/mod/wallmessage.php b/mod/wallmessage.php index 1a4882b64..cf349775c 100644 --- a/mod/wallmessage.php +++ b/mod/wallmessage.php @@ -44,7 +44,7 @@ function wallmessage_post(&$a) { } // Work around doubled linefeeds in Tinymce 3.5b2 -dbg(1); + $body = str_replace("\r\n","\n",$body); $body = str_replace("\n\n","\n",$body); @@ -67,7 +67,7 @@ dbg(1); default: info( t('Message sent.') . EOL ); } -dbg(0); + // goaway($a->get_baseurl() . '/profile/' . $user['nickname']); } diff --git a/update.php b/update.php index f25d16f9d..f94b89fd3 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ <?php -define( 'UPDATE_VERSION' , 1144 ); +define( 'UPDATE_VERSION' , 1145 ); /** * @@ -1253,5 +1253,9 @@ function update_1143() { return UPDATE_SUCCESS ; } - - +function update_1144() { + $r = q("alter table contact add prv tinyint(1) not null default '0' after forum"); + if(! $r) + return UPDATE_FAILED ; + return UPDATE_SUCCESS ; +} diff --git a/util/messages.po b/util/messages.po index d732de130..69a9df6c3 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1351\n" +"Project-Id-Version: 3.0.1360\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-05-23 10:00-0700\n" +"POT-Creation-Date: 2012-05-31 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -37,10 +37,10 @@ msgstr "" #: ../../mod/crepair.php:115 ../../mod/wall_attach.php:44 #: ../../mod/fsuggest.php:78 ../../mod/events.php:138 ../../mod/api.php:26 #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:920 -#: ../../mod/editpost.php:10 ../../mod/install.php:171 +#: ../../mod/editpost.php:10 ../../mod/install.php:151 #: ../../mod/notifications.php:66 ../../mod/contacts.php:125 -#: ../../mod/settings.php:104 ../../mod/settings.php:535 -#: ../../mod/settings.php:540 ../../mod/manage.php:86 ../../mod/network.php:6 +#: ../../mod/settings.php:106 ../../mod/settings.php:537 +#: ../../mod/settings.php:542 ../../mod/manage.php:86 ../../mod/network.php:6 #: ../../mod/notes.php:20 ../../mod/wallmessage.php:9 #: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79 #: ../../mod/wallmessage.php:103 ../../mod/attach.php:33 @@ -52,10 +52,10 @@ msgstr "" #: ../../mod/message.php:96 ../../mod/allfriends.php:9 #: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53 #: ../../mod/follow.php:8 ../../mod/display.php:138 ../../mod/profiles.php:7 -#: ../../mod/profiles.php:365 ../../mod/delegate.php:6 +#: ../../mod/profiles.php:374 ../../mod/delegate.php:6 #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81 #: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:503 -#: ../../include/items.php:3214 ../../index.php:306 +#: ../../include/items.php:3297 ../../index.php:306 msgid "Permission denied." msgstr "" @@ -84,8 +84,8 @@ msgstr "" msgid "Return to contact editor" msgstr "" -#: ../../mod/crepair.php:148 ../../mod/settings.php:555 -#: ../../mod/settings.php:581 ../../mod/admin.php:656 ../../mod/admin.php:665 +#: ../../mod/crepair.php:148 ../../mod/settings.php:557 +#: ../../mod/settings.php:583 ../../mod/admin.php:656 ../../mod/admin.php:665 msgid "Name" msgstr "" @@ -125,13 +125,13 @@ msgstr "" #: ../../mod/events.php:428 ../../mod/photos.php:955 ../../mod/photos.php:1013 #: ../../mod/photos.php:1256 ../../mod/photos.php:1296 #: ../../mod/photos.php:1336 ../../mod/photos.php:1367 -#: ../../mod/install.php:251 ../../mod/install.php:289 +#: ../../mod/install.php:245 ../../mod/install.php:283 #: ../../mod/localtime.php:45 ../../mod/contacts.php:322 -#: ../../mod/settings.php:553 ../../mod/settings.php:699 -#: ../../mod/settings.php:760 ../../mod/settings.php:964 +#: ../../mod/settings.php:555 ../../mod/settings.php:701 +#: ../../mod/settings.php:762 ../../mod/settings.php:969 #: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:417 #: ../../mod/admin.php:653 ../../mod/admin.php:789 ../../mod/admin.php:988 -#: ../../mod/admin.php:1075 ../../mod/profiles.php:534 +#: ../../mod/admin.php:1075 ../../mod/profiles.php:543 #: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:605 #: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93 #: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158 @@ -159,7 +159,7 @@ msgstr "" #: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102 #: ../../addon/posterous/posterous.php:103 #: ../../view/theme/cleanzero/config.php:80 -#: ../../view/theme/diabook/theme.php:752 +#: ../../view/theme/diabook/theme.php:757 #: ../../view/theme/diabook/config.php:190 #: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70 #: ../../include/conversation.php:559 @@ -216,12 +216,12 @@ msgstr "" msgid "Edit event" msgstr "" -#: ../../mod/events.php:300 ../../include/text.php:1060 +#: ../../mod/events.php:300 ../../include/text.php:1064 msgid "link to source" msgstr "" -#: ../../mod/events.php:324 ../../view/theme/diabook/theme.php:126 -#: ../../include/nav.php:52 ../../boot.php:1523 +#: ../../mod/events.php:324 ../../view/theme/diabook/theme.php:131 +#: ../../include/nav.php:52 ../../boot.php:1520 msgid "Events" msgstr "" @@ -233,7 +233,7 @@ msgstr "" msgid "Previous" msgstr "" -#: ../../mod/events.php:327 ../../mod/install.php:210 +#: ../../mod/events.php:327 ../../mod/install.php:204 msgid "Next" msgstr "" @@ -271,7 +271,7 @@ msgid "Description:" msgstr "" #: ../../mod/events.php:423 ../../include/event.php:37 -#: ../../include/bb2diaspora.php:260 ../../boot.php:1103 +#: ../../include/bb2diaspora.php:265 ../../boot.php:1100 msgid "Location:" msgstr "" @@ -280,8 +280,8 @@ msgid "Share this event" msgstr "" #: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94 -#: ../../mod/dfrn_request.php:826 ../../mod/settings.php:554 -#: ../../mod/settings.php:580 ../../addon/js_upload/js_upload.php:45 +#: ../../mod/dfrn_request.php:830 ../../mod/settings.php:556 +#: ../../mod/settings.php:582 ../../addon/js_upload/js_upload.php:45 msgid "Cancel" msgstr "" @@ -324,29 +324,31 @@ msgid "" "and/or create new posts for you?" msgstr "" -#: ../../mod/api.php:105 ../../mod/dfrn_request.php:814 -#: ../../mod/settings.php:875 ../../mod/settings.php:881 -#: ../../mod/settings.php:889 ../../mod/settings.php:893 -#: ../../mod/settings.php:898 ../../mod/settings.php:904 -#: ../../mod/settings.php:910 ../../mod/settings.php:916 -#: ../../mod/settings.php:952 ../../mod/settings.php:953 -#: ../../mod/settings.php:954 ../../mod/settings.php:955 -#: ../../mod/register.php:511 ../../mod/profiles.php:511 +#: ../../mod/api.php:105 ../../mod/dfrn_request.php:818 +#: ../../mod/settings.php:879 ../../mod/settings.php:885 +#: ../../mod/settings.php:893 ../../mod/settings.php:897 +#: ../../mod/settings.php:902 ../../mod/settings.php:908 +#: ../../mod/settings.php:914 ../../mod/settings.php:920 +#: ../../mod/settings.php:956 ../../mod/settings.php:957 +#: ../../mod/settings.php:958 ../../mod/settings.php:959 +#: ../../mod/settings.php:960 ../../mod/register.php:516 +#: ../../mod/profiles.php:520 msgid "Yes" msgstr "" -#: ../../mod/api.php:106 ../../mod/dfrn_request.php:815 -#: ../../mod/settings.php:875 ../../mod/settings.php:881 -#: ../../mod/settings.php:889 ../../mod/settings.php:893 -#: ../../mod/settings.php:898 ../../mod/settings.php:904 -#: ../../mod/settings.php:910 ../../mod/settings.php:916 -#: ../../mod/settings.php:952 ../../mod/settings.php:953 -#: ../../mod/settings.php:954 ../../mod/settings.php:955 -#: ../../mod/register.php:512 ../../mod/profiles.php:512 +#: ../../mod/api.php:106 ../../mod/dfrn_request.php:819 +#: ../../mod/settings.php:879 ../../mod/settings.php:885 +#: ../../mod/settings.php:893 ../../mod/settings.php:897 +#: ../../mod/settings.php:902 ../../mod/settings.php:908 +#: ../../mod/settings.php:914 ../../mod/settings.php:920 +#: ../../mod/settings.php:956 ../../mod/settings.php:957 +#: ../../mod/settings.php:958 ../../mod/settings.php:959 +#: ../../mod/settings.php:960 ../../mod/register.php:517 +#: ../../mod/profiles.php:521 msgid "No" msgstr "" -#: ../../mod/photos.php:43 ../../boot.php:1517 +#: ../../mod/photos.php:43 ../../boot.php:1514 msgid "Photo Albums" msgstr "" @@ -354,7 +356,7 @@ msgstr "" #: ../../mod/photos.php:1005 ../../mod/photos.php:1020 #: ../../mod/photos.php:1445 ../../mod/photos.php:1457 #: ../../addon/communityhome/communityhome.php:110 -#: ../../view/theme/diabook/theme.php:593 +#: ../../view/theme/diabook/theme.php:598 msgid "Contact Photos" msgstr "" @@ -362,7 +364,7 @@ msgstr "" msgid "Upload New Photos" msgstr "" -#: ../../mod/photos.php:69 ../../mod/settings.php:20 +#: ../../mod/photos.php:69 ../../mod/settings.php:21 msgid "everybody" msgstr "" @@ -371,13 +373,13 @@ msgid "Contact information unavailable" msgstr "" #: ../../mod/photos.php:151 ../../mod/photos.php:652 ../../mod/photos.php:1005 -#: ../../mod/photos.php:1020 ../../mod/register.php:314 -#: ../../mod/register.php:321 ../../mod/register.php:328 +#: ../../mod/photos.php:1020 ../../mod/register.php:319 +#: ../../mod/register.php:326 ../../mod/register.php:333 #: ../../mod/profile_photo.php:60 ../../mod/profile_photo.php:67 #: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174 #: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261 #: ../../addon/communityhome/communityhome.php:111 -#: ../../view/theme/diabook/theme.php:594 +#: ../../view/theme/diabook/theme.php:599 msgid "Profile Photos" msgstr "" @@ -399,7 +401,7 @@ msgstr "" #: ../../mod/photos.php:583 ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 -#: ../../view/theme/diabook/theme.php:565 ../../include/text.php:1311 +#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1315 #: ../../include/diaspora.php:1662 ../../include/conversation.php:53 #: ../../include/conversation.php:126 msgid "photo" @@ -428,7 +430,7 @@ msgid "Image upload failed." msgstr "" #: ../../mod/photos.php:814 ../../mod/community.php:16 -#: ../../mod/dfrn_request.php:740 ../../mod/viewcontacts.php:17 +#: ../../mod/dfrn_request.php:744 ../../mod/viewcontacts.php:17 #: ../../mod/display.php:7 ../../mod/search.php:71 ../../mod/directory.php:29 msgid "Public access denied." msgstr "" @@ -551,7 +553,7 @@ msgstr "" #: ../../mod/photos.php:1295 ../../mod/photos.php:1335 #: ../../mod/photos.php:1366 ../../include/conversation.php:558 -#: ../../boot.php:517 +#: ../../boot.php:514 msgid "Comment" msgstr "" @@ -560,8 +562,8 @@ msgstr "" msgid "Preview" msgstr "" -#: ../../mod/photos.php:1394 ../../mod/settings.php:616 -#: ../../mod/settings.php:697 ../../mod/group.php:168 ../../mod/admin.php:660 +#: ../../mod/photos.php:1394 ../../mod/settings.php:618 +#: ../../mod/settings.php:699 ../../mod/group.php:168 ../../mod/admin.php:660 #: ../../include/conversation.php:322 ../../include/conversation.php:588 msgid "Delete" msgstr "" @@ -578,12 +580,12 @@ msgstr "" msgid "Not available." msgstr "" -#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:128 +#: ../../mod/community.php:30 ../../view/theme/diabook/theme.php:133 #: ../../include/nav.php:101 msgid "Community" msgstr "" -#: ../../mod/community.php:61 ../../mod/search.php:138 +#: ../../mod/community.php:61 ../../mod/search.php:144 msgid "No results." msgstr "" @@ -631,7 +633,7 @@ msgstr "" msgid "Post to Email" msgstr "" -#: ../../mod/editpost.php:95 ../../mod/settings.php:615 +#: ../../mod/editpost.php:95 ../../mod/settings.php:617 #: ../../include/conversation.php:575 msgid "Edit" msgstr "" @@ -700,201 +702,200 @@ msgstr "" msgid "This introduction has already been accepted." msgstr "" -#: ../../mod/dfrn_request.php:117 ../../mod/dfrn_request.php:495 +#: ../../mod/dfrn_request.php:118 ../../mod/dfrn_request.php:497 msgid "Profile location is not valid or does not contain profile information." msgstr "" -#: ../../mod/dfrn_request.php:122 ../../mod/dfrn_request.php:500 +#: ../../mod/dfrn_request.php:123 ../../mod/dfrn_request.php:502 msgid "Warning: profile location has no identifiable owner name." msgstr "" -#: ../../mod/dfrn_request.php:124 ../../mod/dfrn_request.php:502 +#: ../../mod/dfrn_request.php:125 ../../mod/dfrn_request.php:504 msgid "Warning: profile location has no profile photo." msgstr "" -#: ../../mod/dfrn_request.php:127 ../../mod/dfrn_request.php:505 +#: ../../mod/dfrn_request.php:128 ../../mod/dfrn_request.php:507 #, php-format msgid "%d required parameter was not found at the given location" msgid_plural "%d required parameters were not found at the given location" msgstr[0] "" msgstr[1] "" -#: ../../mod/dfrn_request.php:168 +#: ../../mod/dfrn_request.php:170 msgid "Introduction complete." msgstr "" -#: ../../mod/dfrn_request.php:192 +#: ../../mod/dfrn_request.php:194 msgid "Unrecoverable protocol error." msgstr "" -#: ../../mod/dfrn_request.php:220 +#: ../../mod/dfrn_request.php:222 msgid "Profile unavailable." msgstr "" -#: ../../mod/dfrn_request.php:245 +#: ../../mod/dfrn_request.php:247 #, php-format msgid "%s has received too many connection requests today." msgstr "" -#: ../../mod/dfrn_request.php:246 +#: ../../mod/dfrn_request.php:248 msgid "Spam protection measures have been invoked." msgstr "" -#: ../../mod/dfrn_request.php:247 +#: ../../mod/dfrn_request.php:249 msgid "Friends are advised to please try again in 24 hours." msgstr "" -#: ../../mod/dfrn_request.php:309 +#: ../../mod/dfrn_request.php:311 msgid "Invalid locator" msgstr "" -#: ../../mod/dfrn_request.php:318 +#: ../../mod/dfrn_request.php:320 msgid "Invalid email address." msgstr "" -#: ../../mod/dfrn_request.php:344 +#: ../../mod/dfrn_request.php:346 msgid "This account has not been configured for email. Request failed." msgstr "" -#: ../../mod/dfrn_request.php:440 +#: ../../mod/dfrn_request.php:442 msgid "Unable to resolve your name at the provided location." msgstr "" -#: ../../mod/dfrn_request.php:453 +#: ../../mod/dfrn_request.php:455 msgid "You have already introduced yourself here." msgstr "" -#: ../../mod/dfrn_request.php:457 +#: ../../mod/dfrn_request.php:459 #, php-format msgid "Apparently you are already friends with %s." msgstr "" -#: ../../mod/dfrn_request.php:478 +#: ../../mod/dfrn_request.php:480 msgid "Invalid profile URL." msgstr "" -#: ../../mod/dfrn_request.php:484 ../../mod/follow.php:23 +#: ../../mod/dfrn_request.php:486 ../../mod/follow.php:23 msgid "Disallowed profile URL." msgstr "" -#: ../../mod/dfrn_request.php:553 ../../mod/contacts.php:102 +#: ../../mod/dfrn_request.php:555 ../../mod/contacts.php:102 msgid "Failed to update contact record." msgstr "" -#: ../../mod/dfrn_request.php:574 +#: ../../mod/dfrn_request.php:576 msgid "Your introduction has been sent." msgstr "" -#: ../../mod/dfrn_request.php:627 +#: ../../mod/dfrn_request.php:629 msgid "Please login to confirm introduction." msgstr "" -#: ../../mod/dfrn_request.php:641 +#: ../../mod/dfrn_request.php:643 msgid "" "Incorrect identity currently logged in. Please login to <strong>this</" "strong> profile." msgstr "" -#: ../../mod/dfrn_request.php:653 +#: ../../mod/dfrn_request.php:654 +msgid "Hide this contact" +msgstr "" + +#: ../../mod/dfrn_request.php:657 #, php-format msgid "Welcome home %s." msgstr "" -#: ../../mod/dfrn_request.php:654 +#: ../../mod/dfrn_request.php:658 #, php-format msgid "Please confirm your introduction/connection request to %s." msgstr "" -#: ../../mod/dfrn_request.php:655 +#: ../../mod/dfrn_request.php:659 msgid "Confirm" msgstr "" -#: ../../mod/dfrn_request.php:696 ../../include/items.php:2729 +#: ../../mod/dfrn_request.php:700 ../../include/items.php:2733 msgid "[Name Withheld]" msgstr "" -#: ../../mod/dfrn_request.php:789 +#: ../../mod/dfrn_request.php:793 msgid "" "Please enter your 'Identity Address' from one of the following supported " "communications networks:" msgstr "" -#: ../../mod/dfrn_request.php:805 +#: ../../mod/dfrn_request.php:809 msgid "<strike>Connect as an email follower</strike> (Coming soon)" msgstr "" -#: ../../mod/dfrn_request.php:807 +#: ../../mod/dfrn_request.php:811 msgid "" "If you are not yet a member of the free social web, <a href=\"http://dir." "friendica.com/siteinfo\">follow this link to find a public Friendica site " "and join us today</a>." msgstr "" -#: ../../mod/dfrn_request.php:810 +#: ../../mod/dfrn_request.php:814 msgid "Friend/Connection Request" msgstr "" -#: ../../mod/dfrn_request.php:811 +#: ../../mod/dfrn_request.php:815 msgid "" "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " "testuser@identi.ca" msgstr "" -#: ../../mod/dfrn_request.php:812 +#: ../../mod/dfrn_request.php:816 msgid "Please answer the following:" msgstr "" -#: ../../mod/dfrn_request.php:813 +#: ../../mod/dfrn_request.php:817 #, php-format msgid "Does %s know you?" msgstr "" -#: ../../mod/dfrn_request.php:816 +#: ../../mod/dfrn_request.php:820 msgid "Add a personal note:" msgstr "" -#: ../../mod/dfrn_request.php:818 ../../include/contact_selectors.php:76 +#: ../../mod/dfrn_request.php:822 ../../include/contact_selectors.php:76 msgid "Friendica" msgstr "" -#: ../../mod/dfrn_request.php:819 +#: ../../mod/dfrn_request.php:823 msgid "StatusNet/Federated Social Web" msgstr "" -#: ../../mod/dfrn_request.php:820 ../../mod/settings.php:650 +#: ../../mod/dfrn_request.php:824 ../../mod/settings.php:652 #: ../../include/contact_selectors.php:80 msgid "Diaspora" msgstr "" -#: ../../mod/dfrn_request.php:821 +#: ../../mod/dfrn_request.php:825 #, php-format msgid "" " - please do not use this form. Instead, enter %s into your Diaspora search " "bar." msgstr "" -#: ../../mod/dfrn_request.php:822 +#: ../../mod/dfrn_request.php:826 msgid "Your Identity Address:" msgstr "" -#: ../../mod/dfrn_request.php:825 +#: ../../mod/dfrn_request.php:829 msgid "Submit Request" msgstr "" -#: ../../mod/install.php:111 +#: ../../mod/install.php:117 msgid "Friendica Social Communications Server - Setup" msgstr "" -#: ../../mod/install.php:117 ../../mod/install.php:157 -#: ../../mod/install.php:230 -msgid "Database connection" -msgstr "" - -#: ../../mod/install.php:124 +#: ../../mod/install.php:123 msgid "Could not connect to database." msgstr "" -#: ../../mod/install.php:128 +#: ../../mod/install.php:127 msgid "Could not create table." msgstr "" @@ -902,231 +903,245 @@ msgstr "" msgid "Your Friendica site database has been installed." msgstr "" -#: ../../mod/install.php:134 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the poller." -msgstr "" - -#: ../../mod/install.php:135 ../../mod/install.php:151 -#: ../../mod/install.php:209 -msgid "Please see the file \"INSTALL.txt\"." -msgstr "" - -#: ../../mod/install.php:137 -msgid "Proceed to registration" -msgstr "" - -#: ../../mod/install.php:143 -msgid "Proceed with Installation" -msgstr "" - -#: ../../mod/install.php:150 +#: ../../mod/install.php:138 msgid "" "You may need to import the file \"database.sql\" manually using phpmyadmin " "or mysql." msgstr "" -#: ../../mod/install.php:158 -msgid "Database import failed." +#: ../../mod/install.php:139 ../../mod/install.php:203 +#: ../../mod/install.php:482 +msgid "Please see the file \"INSTALL.txt\"." msgstr "" -#: ../../mod/install.php:206 +#: ../../mod/install.php:200 msgid "System check" msgstr "" -#: ../../mod/install.php:211 +#: ../../mod/install.php:205 msgid "Check again" msgstr "" -#: ../../mod/install.php:231 +#: ../../mod/install.php:224 +msgid "Database connection" +msgstr "" + +#: ../../mod/install.php:225 msgid "" "In order to install Friendica we need to know how to connect to your " "database." msgstr "" -#: ../../mod/install.php:232 +#: ../../mod/install.php:226 msgid "" "Please contact your hosting provider or site administrator if you have " "questions about these settings." msgstr "" -#: ../../mod/install.php:233 +#: ../../mod/install.php:227 msgid "" "The database you specify below should already exist. If it does not, please " "create it before continuing." msgstr "" -#: ../../mod/install.php:237 +#: ../../mod/install.php:231 msgid "Database Server Name" msgstr "" -#: ../../mod/install.php:238 +#: ../../mod/install.php:232 msgid "Database Login Name" msgstr "" -#: ../../mod/install.php:239 +#: ../../mod/install.php:233 msgid "Database Login Password" msgstr "" -#: ../../mod/install.php:240 +#: ../../mod/install.php:234 msgid "Database Name" msgstr "" -#: ../../mod/install.php:241 ../../mod/install.php:280 +#: ../../mod/install.php:235 ../../mod/install.php:274 msgid "Site administrator email address" msgstr "" -#: ../../mod/install.php:241 ../../mod/install.php:280 +#: ../../mod/install.php:235 ../../mod/install.php:274 msgid "" "Your account email address must match this in order to use the web admin " "panel." msgstr "" -#: ../../mod/install.php:245 ../../mod/install.php:283 +#: ../../mod/install.php:239 ../../mod/install.php:277 msgid "Please select a default timezone for your website" msgstr "" -#: ../../mod/install.php:270 +#: ../../mod/install.php:264 msgid "Site settings" msgstr "" -#: ../../mod/install.php:323 +#: ../../mod/install.php:317 msgid "Could not find a command line version of PHP in the web server PATH." msgstr "" -#: ../../mod/install.php:326 +#: ../../mod/install.php:318 +msgid "" +"If you don't have a command line version of PHP installed on server, you " +"will not be able to run background polling via cron. See <a href='http://" +"friendica.com/node/27'>'Activating scheduled tasks'</a>" +msgstr "" + +#: ../../mod/install.php:322 msgid "PHP executable path" msgstr "" -#: ../../mod/install.php:326 -msgid "Enter full path to php executable" +#: ../../mod/install.php:322 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." msgstr "" -#: ../../mod/install.php:331 +#: ../../mod/install.php:327 msgid "Command line PHP" msgstr "" -#: ../../mod/install.php:340 +#: ../../mod/install.php:336 msgid "" "The command line version of PHP on your system does not have " "\"register_argc_argv\" enabled." msgstr "" -#: ../../mod/install.php:341 +#: ../../mod/install.php:337 msgid "This is required for message delivery to work." msgstr "" -#: ../../mod/install.php:343 +#: ../../mod/install.php:339 msgid "PHP register_argc_argv" msgstr "" -#: ../../mod/install.php:364 +#: ../../mod/install.php:360 msgid "" "Error: the \"openssl_pkey_new\" function on this system is not able to " "generate encryption keys" msgstr "" -#: ../../mod/install.php:365 +#: ../../mod/install.php:361 msgid "" "If running under Windows, please see \"http://www.php.net/manual/en/openssl." "installation.php\"." msgstr "" -#: ../../mod/install.php:367 +#: ../../mod/install.php:363 msgid "Generate encryption keys" msgstr "" -#: ../../mod/install.php:374 +#: ../../mod/install.php:370 msgid "libCurl PHP module" msgstr "" -#: ../../mod/install.php:375 +#: ../../mod/install.php:371 msgid "GD graphics PHP module" msgstr "" -#: ../../mod/install.php:376 +#: ../../mod/install.php:372 msgid "OpenSSL PHP module" msgstr "" -#: ../../mod/install.php:377 +#: ../../mod/install.php:373 msgid "mysqli PHP module" msgstr "" -#: ../../mod/install.php:378 +#: ../../mod/install.php:374 msgid "mb_string PHP module" msgstr "" -#: ../../mod/install.php:383 ../../mod/install.php:385 +#: ../../mod/install.php:379 ../../mod/install.php:381 msgid "Apache mod_rewrite module" msgstr "" -#: ../../mod/install.php:383 +#: ../../mod/install.php:379 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "" -#: ../../mod/install.php:390 +#: ../../mod/install.php:386 msgid "Error: libCURL PHP module required but not installed." msgstr "" -#: ../../mod/install.php:394 +#: ../../mod/install.php:390 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "" -#: ../../mod/install.php:398 +#: ../../mod/install.php:394 msgid "Error: openssl PHP module required but not installed." msgstr "" -#: ../../mod/install.php:402 +#: ../../mod/install.php:398 msgid "Error: mysqli PHP module required but not installed." msgstr "" -#: ../../mod/install.php:406 +#: ../../mod/install.php:402 msgid "Error: mb_string PHP module required but not installed." msgstr "" -#: ../../mod/install.php:423 +#: ../../mod/install.php:419 msgid "" "The web installer needs to be able to create a file called \".htconfig.php\" " "in the top folder of your web server and it is unable to do so." msgstr "" -#: ../../mod/install.php:424 +#: ../../mod/install.php:420 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "" -#: ../../mod/install.php:425 +#: ../../mod/install.php:421 msgid "" -"Please check with your site documentation or support people to see if this " -"situation can be corrected." +"At the end of this procedure, we will give you a text to save in a file " +"named .htconfig.php in your Friendica top folder." msgstr "" -#: ../../mod/install.php:426 +#: ../../mod/install.php:422 msgid "" -"If not, you may be required to perform a manual installation. Please see the " -"file \"INSTALL.txt\" for instructions." +"You can alternatively skip this procedure and perform a manual installation. " +"Please see the file \"INSTALL.txt\" for instructions." msgstr "" -#: ../../mod/install.php:429 +#: ../../mod/install.php:425 msgid ".htconfig.php is writable" msgstr "" #: ../../mod/install.php:436 msgid "" +"Url rewrite in .htconfig is not working. Check your server configuration." +msgstr "" + +#: ../../mod/install.php:438 +msgid "Url rewrite is working" +msgstr "" + +#: ../../mod/install.php:444 +msgid "" "The database configuration file \".htconfig.php\" could not be written. " "Please use the enclosed text to create a configuration file in your web " "server root." msgstr "" -#: ../../mod/install.php:461 +#: ../../mod/install.php:469 msgid "Errors encountered creating database tables." msgstr "" +#: ../../mod/install.php:480 +msgid "<h1>What next</h1>" +msgstr "" + +#: ../../mod/install.php:481 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the poller." +msgstr "" + #: ../../mod/localtime.php:12 ../../include/event.php:11 -#: ../../include/bb2diaspora.php:238 +#: ../../include/bb2diaspora.php:243 msgid "l F d, Y \\@ g:i A" msgstr "" @@ -1172,7 +1187,7 @@ msgid "is interested in:" msgstr "" #: ../../mod/match.php:58 ../../mod/suggest.php:59 -#: ../../include/contact_widgets.php:9 ../../boot.php:1047 +#: ../../include/contact_widgets.php:9 ../../boot.php:1044 msgid "Connect" msgstr "" @@ -1220,7 +1235,7 @@ msgstr "" msgid "Personal" msgstr "" -#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:122 +#: ../../mod/notifications.php:90 ../../view/theme/diabook/theme.php:127 #: ../../include/nav.php:77 ../../include/nav.php:115 msgid "Home" msgstr "" @@ -1661,7 +1676,7 @@ msgstr "" msgid "Edit contact" msgstr "" -#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:124 +#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:129 #: ../../include/nav.php:139 msgid "Contacts" msgstr "" @@ -1693,13 +1708,13 @@ msgid "Password reset requested at %s" msgstr "" #: ../../mod/lostpass.php:45 ../../mod/lostpass.php:107 -#: ../../mod/register.php:367 ../../mod/register.php:421 -#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:745 +#: ../../mod/register.php:372 ../../mod/register.php:426 +#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:752 #: ../../addon/facebook/facebook.php:688 #: ../../addon/facebook/facebook.php:1178 #: ../../addon/public_server/public_server.php:62 -#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2738 -#: ../../boot.php:697 +#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:2742 +#: ../../boot.php:694 msgid "Administrator" msgstr "" @@ -1709,7 +1724,7 @@ msgid "" "Password reset failed." msgstr "" -#: ../../mod/lostpass.php:83 ../../boot.php:829 +#: ../../mod/lostpass.php:83 ../../boot.php:826 msgid "Password Reset" msgstr "" @@ -1753,97 +1768,97 @@ msgstr "" msgid "Reset" msgstr "" -#: ../../mod/settings.php:49 ../../include/nav.php:137 +#: ../../mod/settings.php:50 ../../include/nav.php:137 msgid "Account settings" msgstr "" -#: ../../mod/settings.php:54 +#: ../../mod/settings.php:55 msgid "Display settings" msgstr "" -#: ../../mod/settings.php:60 +#: ../../mod/settings.php:61 msgid "Connector settings" msgstr "" -#: ../../mod/settings.php:65 +#: ../../mod/settings.php:66 msgid "Plugin settings" msgstr "" -#: ../../mod/settings.php:70 +#: ../../mod/settings.php:71 msgid "Connected apps" msgstr "" -#: ../../mod/settings.php:75 +#: ../../mod/settings.php:76 msgid "Export personal data" msgstr "" -#: ../../mod/settings.php:80 +#: ../../mod/settings.php:81 msgid "Remove account" msgstr "" -#: ../../mod/settings.php:88 ../../mod/admin.php:748 ../../mod/admin.php:953 -#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:638 -#: ../../view/theme/diabook/theme.php:768 ../../include/nav.php:137 +#: ../../mod/settings.php:89 ../../mod/admin.php:748 ../../mod/admin.php:953 +#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:643 +#: ../../view/theme/diabook/theme.php:773 ../../include/nav.php:137 msgid "Settings" msgstr "" -#: ../../mod/settings.php:131 +#: ../../mod/settings.php:133 msgid "Missing some important data!" msgstr "" -#: ../../mod/settings.php:134 ../../mod/settings.php:579 +#: ../../mod/settings.php:136 ../../mod/settings.php:581 msgid "Update" msgstr "" -#: ../../mod/settings.php:239 +#: ../../mod/settings.php:241 msgid "Failed to connect with email account using the settings provided." msgstr "" -#: ../../mod/settings.php:244 +#: ../../mod/settings.php:246 msgid "Email settings updated." msgstr "" -#: ../../mod/settings.php:303 +#: ../../mod/settings.php:305 msgid "Passwords do not match. Password unchanged." msgstr "" -#: ../../mod/settings.php:308 +#: ../../mod/settings.php:310 msgid "Empty passwords are not allowed. Password unchanged." msgstr "" -#: ../../mod/settings.php:319 +#: ../../mod/settings.php:321 msgid "Password changed." msgstr "" -#: ../../mod/settings.php:321 +#: ../../mod/settings.php:323 msgid "Password update failed. Please try again." msgstr "" -#: ../../mod/settings.php:385 +#: ../../mod/settings.php:386 msgid " Please use a shorter name." msgstr "" -#: ../../mod/settings.php:387 +#: ../../mod/settings.php:388 msgid " Name too short." msgstr "" -#: ../../mod/settings.php:393 +#: ../../mod/settings.php:394 msgid " Not valid email." msgstr "" -#: ../../mod/settings.php:395 +#: ../../mod/settings.php:396 msgid " Cannot change to that email." msgstr "" -#: ../../mod/settings.php:448 +#: ../../mod/settings.php:450 msgid "Private forum has no privacy permissions. Using default privacy group." msgstr "" -#: ../../mod/settings.php:452 +#: ../../mod/settings.php:454 msgid "Private forum has no privacy permissions and no default privacy group." msgstr "" -#: ../../mod/settings.php:482 ../../addon/facebook/facebook.php:488 +#: ../../mod/settings.php:484 ../../addon/facebook/facebook.php:488 #: ../../addon/impressum/impressum.php:77 #: ../../addon/openstreetmap/openstreetmap.php:80 #: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105 @@ -1851,418 +1866,426 @@ msgstr "" msgid "Settings updated." msgstr "" -#: ../../mod/settings.php:552 ../../mod/settings.php:578 -#: ../../mod/settings.php:614 +#: ../../mod/settings.php:554 ../../mod/settings.php:580 +#: ../../mod/settings.php:616 msgid "Add application" msgstr "" -#: ../../mod/settings.php:556 ../../mod/settings.php:582 +#: ../../mod/settings.php:558 ../../mod/settings.php:584 #: ../../addon/statusnet/statusnet.php:555 msgid "Consumer Key" msgstr "" -#: ../../mod/settings.php:557 ../../mod/settings.php:583 +#: ../../mod/settings.php:559 ../../mod/settings.php:585 #: ../../addon/statusnet/statusnet.php:554 msgid "Consumer Secret" msgstr "" -#: ../../mod/settings.php:558 ../../mod/settings.php:584 +#: ../../mod/settings.php:560 ../../mod/settings.php:586 msgid "Redirect" msgstr "" -#: ../../mod/settings.php:559 ../../mod/settings.php:585 +#: ../../mod/settings.php:561 ../../mod/settings.php:587 msgid "Icon url" msgstr "" -#: ../../mod/settings.php:570 +#: ../../mod/settings.php:572 msgid "You can't edit this application." msgstr "" -#: ../../mod/settings.php:613 +#: ../../mod/settings.php:615 msgid "Connected Apps" msgstr "" -#: ../../mod/settings.php:617 +#: ../../mod/settings.php:619 msgid "Client key starts with" msgstr "" -#: ../../mod/settings.php:618 +#: ../../mod/settings.php:620 msgid "No name" msgstr "" -#: ../../mod/settings.php:619 +#: ../../mod/settings.php:621 msgid "Remove authorization" msgstr "" -#: ../../mod/settings.php:630 +#: ../../mod/settings.php:632 msgid "No Plugin settings configured" msgstr "" -#: ../../mod/settings.php:638 ../../addon/widgets/widgets.php:123 +#: ../../mod/settings.php:640 ../../addon/widgets/widgets.php:123 msgid "Plugin Settings" msgstr "" -#: ../../mod/settings.php:650 ../../mod/settings.php:651 +#: ../../mod/settings.php:652 ../../mod/settings.php:653 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "" -#: ../../mod/settings.php:650 ../../mod/settings.php:651 +#: ../../mod/settings.php:652 ../../mod/settings.php:653 msgid "enabled" msgstr "" -#: ../../mod/settings.php:650 ../../mod/settings.php:651 +#: ../../mod/settings.php:652 ../../mod/settings.php:653 msgid "disabled" msgstr "" -#: ../../mod/settings.php:651 +#: ../../mod/settings.php:653 msgid "StatusNet" msgstr "" -#: ../../mod/settings.php:681 +#: ../../mod/settings.php:683 msgid "Connector Settings" msgstr "" -#: ../../mod/settings.php:686 +#: ../../mod/settings.php:688 msgid "Email/Mailbox Setup" msgstr "" -#: ../../mod/settings.php:687 +#: ../../mod/settings.php:689 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "" -#: ../../mod/settings.php:688 +#: ../../mod/settings.php:690 msgid "Last successful email check:" msgstr "" -#: ../../mod/settings.php:689 +#: ../../mod/settings.php:691 msgid "Email access is disabled on this site." msgstr "" -#: ../../mod/settings.php:690 +#: ../../mod/settings.php:692 msgid "IMAP server name:" msgstr "" -#: ../../mod/settings.php:691 +#: ../../mod/settings.php:693 msgid "IMAP port:" msgstr "" -#: ../../mod/settings.php:692 +#: ../../mod/settings.php:694 msgid "Security:" msgstr "" -#: ../../mod/settings.php:692 ../../mod/settings.php:697 +#: ../../mod/settings.php:694 ../../mod/settings.php:699 msgid "None" msgstr "" -#: ../../mod/settings.php:693 +#: ../../mod/settings.php:695 msgid "Email login name:" msgstr "" -#: ../../mod/settings.php:694 +#: ../../mod/settings.php:696 msgid "Email password:" msgstr "" -#: ../../mod/settings.php:695 +#: ../../mod/settings.php:697 msgid "Reply-to address:" msgstr "" -#: ../../mod/settings.php:696 +#: ../../mod/settings.php:698 msgid "Send public posts to all email contacts:" msgstr "" -#: ../../mod/settings.php:697 +#: ../../mod/settings.php:699 msgid "Action after import:" msgstr "" -#: ../../mod/settings.php:697 +#: ../../mod/settings.php:699 msgid "Mark as seen" msgstr "" -#: ../../mod/settings.php:697 +#: ../../mod/settings.php:699 msgid "Move to folder" msgstr "" -#: ../../mod/settings.php:698 +#: ../../mod/settings.php:700 msgid "Move to folder:" msgstr "" -#: ../../mod/settings.php:758 +#: ../../mod/settings.php:760 msgid "Display Settings" msgstr "" -#: ../../mod/settings.php:764 +#: ../../mod/settings.php:766 msgid "Display Theme:" msgstr "" -#: ../../mod/settings.php:765 +#: ../../mod/settings.php:767 msgid "Update browser every xx seconds" msgstr "" -#: ../../mod/settings.php:765 +#: ../../mod/settings.php:767 msgid "Minimum of 10 seconds, no maximum" msgstr "" -#: ../../mod/settings.php:766 +#: ../../mod/settings.php:768 msgid "Number of items to display on the network page:" msgstr "" -#: ../../mod/settings.php:766 +#: ../../mod/settings.php:768 msgid "Maximum of 100 items" msgstr "" -#: ../../mod/settings.php:767 +#: ../../mod/settings.php:769 msgid "Don't show emoticons" msgstr "" -#: ../../mod/settings.php:835 ../../mod/admin.php:180 ../../mod/admin.php:634 -msgid "Normal Account" +#: ../../mod/settings.php:840 +msgid "Normal Account Page" msgstr "" -#: ../../mod/settings.php:836 +#: ../../mod/settings.php:841 msgid "This account is a normal personal profile" msgstr "" -#: ../../mod/settings.php:839 ../../mod/admin.php:181 ../../mod/admin.php:635 -msgid "Soapbox Account" +#: ../../mod/settings.php:844 +msgid "Soapbox Page" msgstr "" -#: ../../mod/settings.php:840 +#: ../../mod/settings.php:845 msgid "Automatically approve all connection/friend requests as read-only fans" msgstr "" -#: ../../mod/settings.php:843 ../../mod/admin.php:182 ../../mod/admin.php:636 -msgid "Community/Celebrity Account" +#: ../../mod/settings.php:848 +msgid "Community Forum/Celebrity Account" msgstr "" -#: ../../mod/settings.php:844 +#: ../../mod/settings.php:849 msgid "Automatically approve all connection/friend requests as read-write fans" msgstr "" -#: ../../mod/settings.php:847 ../../mod/admin.php:183 ../../mod/admin.php:637 -msgid "Automatic Friend Account" +#: ../../mod/settings.php:852 +msgid "Automatic Friend Page" msgstr "" -#: ../../mod/settings.php:848 +#: ../../mod/settings.php:853 msgid "Automatically approve all connection/friend requests as friends" msgstr "" -#: ../../mod/settings.php:851 -msgid "Private Forum" +#: ../../mod/settings.php:856 +msgid "Private Forum [Experimental]" msgstr "" -#: ../../mod/settings.php:852 -msgid "Private forum - approved members only [Experimental]" +#: ../../mod/settings.php:857 +msgid "Private forum - approved members only" msgstr "" -#: ../../mod/settings.php:865 +#: ../../mod/settings.php:869 msgid "OpenID:" msgstr "" -#: ../../mod/settings.php:865 +#: ../../mod/settings.php:869 msgid "(Optional) Allow this OpenID to login to this account." msgstr "" -#: ../../mod/settings.php:875 +#: ../../mod/settings.php:879 msgid "Publish your default profile in your local site directory?" msgstr "" -#: ../../mod/settings.php:881 +#: ../../mod/settings.php:885 msgid "Publish your default profile in the global social directory?" msgstr "" -#: ../../mod/settings.php:889 +#: ../../mod/settings.php:893 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "" -#: ../../mod/settings.php:893 +#: ../../mod/settings.php:897 msgid "Hide your profile details from unknown viewers?" msgstr "" -#: ../../mod/settings.php:898 +#: ../../mod/settings.php:902 msgid "Allow friends to post to your profile page?" msgstr "" -#: ../../mod/settings.php:904 +#: ../../mod/settings.php:908 msgid "Allow friends to tag your posts?" msgstr "" -#: ../../mod/settings.php:910 +#: ../../mod/settings.php:914 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "" -#: ../../mod/settings.php:916 +#: ../../mod/settings.php:920 msgid "Permit unknown people to send you private mail?" msgstr "" -#: ../../mod/settings.php:927 +#: ../../mod/settings.php:931 msgid "Profile is <strong>not published</strong>." msgstr "" -#: ../../mod/settings.php:933 ../../mod/profile_photo.php:211 +#: ../../mod/settings.php:937 ../../mod/profile_photo.php:211 msgid "or" msgstr "" -#: ../../mod/settings.php:938 +#: ../../mod/settings.php:942 msgid "Your Identity Address is" msgstr "" -#: ../../mod/settings.php:949 +#: ../../mod/settings.php:953 msgid "Automatically expire posts after this many days:" msgstr "" -#: ../../mod/settings.php:949 +#: ../../mod/settings.php:953 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "" -#: ../../mod/settings.php:950 +#: ../../mod/settings.php:954 msgid "Advanced expiration settings" msgstr "" -#: ../../mod/settings.php:951 +#: ../../mod/settings.php:955 msgid "Advanced Expiration" msgstr "" -#: ../../mod/settings.php:952 +#: ../../mod/settings.php:956 msgid "Expire posts:" msgstr "" -#: ../../mod/settings.php:953 +#: ../../mod/settings.php:957 msgid "Expire personal notes:" msgstr "" -#: ../../mod/settings.php:954 +#: ../../mod/settings.php:958 msgid "Expire starred posts:" msgstr "" -#: ../../mod/settings.php:955 +#: ../../mod/settings.php:959 msgid "Expire photos:" msgstr "" -#: ../../mod/settings.php:962 +#: ../../mod/settings.php:960 +msgid "Only expire posts by others:" +msgstr "" + +#: ../../mod/settings.php:967 msgid "Account Settings" msgstr "" -#: ../../mod/settings.php:970 +#: ../../mod/settings.php:975 msgid "Password Settings" msgstr "" -#: ../../mod/settings.php:971 +#: ../../mod/settings.php:976 msgid "New Password:" msgstr "" -#: ../../mod/settings.php:972 +#: ../../mod/settings.php:977 msgid "Confirm:" msgstr "" -#: ../../mod/settings.php:972 +#: ../../mod/settings.php:977 msgid "Leave password fields blank unless changing" msgstr "" -#: ../../mod/settings.php:976 +#: ../../mod/settings.php:981 msgid "Basic Settings" msgstr "" -#: ../../mod/settings.php:977 ../../include/profile_advanced.php:15 +#: ../../mod/settings.php:982 ../../include/profile_advanced.php:15 msgid "Full Name:" msgstr "" -#: ../../mod/settings.php:978 +#: ../../mod/settings.php:983 msgid "Email Address:" msgstr "" -#: ../../mod/settings.php:979 +#: ../../mod/settings.php:984 msgid "Your Timezone:" msgstr "" -#: ../../mod/settings.php:980 +#: ../../mod/settings.php:985 msgid "Default Post Location:" msgstr "" -#: ../../mod/settings.php:981 +#: ../../mod/settings.php:986 msgid "Use Browser Location:" msgstr "" -#: ../../mod/settings.php:984 +#: ../../mod/settings.php:989 msgid "Security and Privacy Settings" msgstr "" -#: ../../mod/settings.php:986 +#: ../../mod/settings.php:991 msgid "Maximum Friend Requests/Day:" msgstr "" -#: ../../mod/settings.php:986 ../../mod/settings.php:1005 +#: ../../mod/settings.php:991 ../../mod/settings.php:1010 msgid "(to prevent spam abuse)" msgstr "" -#: ../../mod/settings.php:987 +#: ../../mod/settings.php:992 msgid "Default Post Permissions" msgstr "" -#: ../../mod/settings.php:988 +#: ../../mod/settings.php:993 msgid "(click to open/close)" msgstr "" -#: ../../mod/settings.php:1005 +#: ../../mod/settings.php:1010 msgid "Maximum private messages per day from unknown people:" msgstr "" -#: ../../mod/settings.php:1008 +#: ../../mod/settings.php:1013 msgid "Notification Settings" msgstr "" -#: ../../mod/settings.php:1009 +#: ../../mod/settings.php:1014 msgid "By default post a status message when:" msgstr "" -#: ../../mod/settings.php:1010 +#: ../../mod/settings.php:1015 msgid "accepting a friend request" msgstr "" -#: ../../mod/settings.php:1011 +#: ../../mod/settings.php:1016 msgid "joining a forum/community" msgstr "" -#: ../../mod/settings.php:1012 +#: ../../mod/settings.php:1017 msgid "making an <em>interesting</em> profile change" msgstr "" -#: ../../mod/settings.php:1013 +#: ../../mod/settings.php:1018 msgid "Send a notification email when:" msgstr "" -#: ../../mod/settings.php:1014 +#: ../../mod/settings.php:1019 msgid "You receive an introduction" msgstr "" -#: ../../mod/settings.php:1015 +#: ../../mod/settings.php:1020 msgid "Your introductions are confirmed" msgstr "" -#: ../../mod/settings.php:1016 +#: ../../mod/settings.php:1021 msgid "Someone writes on your profile wall" msgstr "" -#: ../../mod/settings.php:1017 +#: ../../mod/settings.php:1022 msgid "Someone writes a followup comment" msgstr "" -#: ../../mod/settings.php:1018 +#: ../../mod/settings.php:1023 msgid "You receive a private message" msgstr "" -#: ../../mod/settings.php:1019 +#: ../../mod/settings.php:1024 msgid "You receive a friend suggestion" msgstr "" -#: ../../mod/settings.php:1020 +#: ../../mod/settings.php:1025 msgid "You are tagged in a post" msgstr "" -#: ../../mod/settings.php:1023 -msgid "Advanced Page Settings" +#: ../../mod/settings.php:1028 +msgid "Advanced Account/Page Type Settings" +msgstr "" + +#: ../../mod/settings.php:1029 +msgid "Change the behaviour of this account for special situations" msgstr "" #: ../../mod/manage.php:90 @@ -2375,13 +2398,13 @@ msgstr "" msgid "Invalid contact." msgstr "" -#: ../../mod/notes.php:44 ../../boot.php:1529 +#: ../../mod/notes.php:44 ../../boot.php:1526 msgid "Personal Notes" msgstr "" #: ../../mod/notes.php:63 ../../mod/filer.php:30 #: ../../addon/facebook/facebook.php:756 -#: ../../addon/privacy_image_cache/privacy_image_cache.php:148 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:150 #: ../../include/text.php:652 msgid "Save" msgstr "" @@ -2624,9 +2647,9 @@ msgstr "" msgid "Profile Visibility Editor" msgstr "" -#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:123 +#: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:74 -#: ../../include/nav.php:50 ../../boot.php:1508 +#: ../../include/nav.php:50 ../../boot.php:1505 msgid "Profile" msgstr "" @@ -2714,91 +2737,95 @@ msgstr "" msgid "An error occurred creating your default profile. Please try again." msgstr "" -#: ../../mod/register.php:365 ../../mod/regmod.php:52 +#: ../../mod/register.php:297 ../../include/profile_selectors.php:42 +msgid "Friends" +msgstr "" + +#: ../../mod/register.php:370 ../../mod/regmod.php:52 #, php-format msgid "Registration details for %s" msgstr "" -#: ../../mod/register.php:373 +#: ../../mod/register.php:378 msgid "" "Registration successful. Please check your email for further instructions." msgstr "" -#: ../../mod/register.php:377 +#: ../../mod/register.php:382 msgid "Failed to send email message. Here is the message that failed." msgstr "" -#: ../../mod/register.php:382 +#: ../../mod/register.php:387 msgid "Your registration can not be processed." msgstr "" -#: ../../mod/register.php:419 +#: ../../mod/register.php:424 #, php-format msgid "Registration request at %s" msgstr "" -#: ../../mod/register.php:428 +#: ../../mod/register.php:433 msgid "Your registration is pending approval by the site owner." msgstr "" -#: ../../mod/register.php:466 +#: ../../mod/register.php:471 msgid "" "This site has exceeded the number of allowed daily account registrations. " "Please try again tomorrow." msgstr "" -#: ../../mod/register.php:492 +#: ../../mod/register.php:497 msgid "" "You may (optionally) fill in this form via OpenID by supplying your OpenID " "and clicking 'Register'." msgstr "" -#: ../../mod/register.php:493 +#: ../../mod/register.php:498 msgid "" "If you are not familiar with OpenID, please leave that field blank and fill " "in the rest of the items." msgstr "" -#: ../../mod/register.php:494 +#: ../../mod/register.php:499 msgid "Your OpenID (optional): " msgstr "" -#: ../../mod/register.php:508 +#: ../../mod/register.php:513 msgid "Include your profile in member directory?" msgstr "" -#: ../../mod/register.php:528 +#: ../../mod/register.php:533 msgid "Membership on this site is by invitation only." msgstr "" -#: ../../mod/register.php:529 +#: ../../mod/register.php:534 msgid "Your invitation ID: " msgstr "" -#: ../../mod/register.php:532 ../../mod/admin.php:418 +#: ../../mod/register.php:537 ../../mod/admin.php:418 msgid "Registration" msgstr "" -#: ../../mod/register.php:540 +#: ../../mod/register.php:545 msgid "Your Full Name (e.g. Joe Smith): " msgstr "" -#: ../../mod/register.php:541 +#: ../../mod/register.php:546 msgid "Your Email Address: " msgstr "" -#: ../../mod/register.php:542 +#: ../../mod/register.php:547 msgid "" "Choose a profile nickname. This must begin with a text character. Your " "profile address on this site will then be '<strong>nickname@$sitename</" "strong>'." msgstr "" -#: ../../mod/register.php:543 +#: ../../mod/register.php:548 msgid "Choose a nickname: " msgstr "" -#: ../../mod/register.php:546 ../../include/nav.php:81 ../../boot.php:795 +#: ../../mod/register.php:551 ../../include/nav.php:81 ../../boot.php:792 msgid "Register" msgstr "" @@ -2810,8 +2837,8 @@ msgstr "" #: ../../addon/facebook/facebook.php:1572 #: ../../addon/communityhome/communityhome.php:158 #: ../../addon/communityhome/communityhome.php:167 -#: ../../view/theme/diabook/theme.php:560 -#: ../../view/theme/diabook/theme.php:569 ../../include/diaspora.php:1662 +#: ../../view/theme/diabook/theme.php:565 +#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1662 #: ../../include/conversation.php:48 ../../include/conversation.php:57 #: ../../include/conversation.php:121 ../../include/conversation.php:130 msgid "status" @@ -2819,7 +2846,7 @@ msgstr "" #: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1576 #: ../../addon/communityhome/communityhome.php:172 -#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1678 +#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1678 #: ../../include/conversation.php:65 #, php-format msgid "%1$s likes %2$s's %3$s" @@ -2832,7 +2859,7 @@ msgstr "" #: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:156 #: ../../mod/admin.php:697 ../../mod/admin.php:896 ../../mod/display.php:37 -#: ../../mod/display.php:142 ../../include/items.php:3096 +#: ../../mod/display.php:142 ../../include/items.php:3179 msgid "Item not found." msgstr "" @@ -2840,8 +2867,8 @@ msgstr "" msgid "Access denied." msgstr "" -#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:125 -#: ../../include/nav.php:51 ../../boot.php:1514 +#: ../../mod/fbrowser.php:23 ../../view/theme/diabook/theme.php:130 +#: ../../include/nav.php:51 ../../boot.php:1511 msgid "Photos" msgstr "" @@ -2870,34 +2897,34 @@ msgstr "" msgid "Empty post discarded." msgstr "" -#: ../../mod/item.php:377 ../../mod/wall_upload.php:99 +#: ../../mod/item.php:379 ../../mod/wall_upload.php:99 #: ../../mod/wall_upload.php:108 ../../mod/wall_upload.php:115 #: ../../include/message.php:144 msgid "Wall Photos" msgstr "" -#: ../../mod/item.php:786 +#: ../../mod/item.php:800 msgid "System error. Post not saved." msgstr "" -#: ../../mod/item.php:811 +#: ../../mod/item.php:825 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social network." msgstr "" -#: ../../mod/item.php:813 +#: ../../mod/item.php:827 #, php-format msgid "You may visit them online at %s" msgstr "" -#: ../../mod/item.php:814 +#: ../../mod/item.php:828 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "" -#: ../../mod/item.php:816 +#: ../../mod/item.php:830 #, php-format msgid "%s posted an update." msgstr "" @@ -3094,6 +3121,22 @@ msgstr "" msgid "User registrations waiting for confirmation" msgstr "" +#: ../../mod/admin.php:180 ../../mod/admin.php:634 +msgid "Normal Account" +msgstr "" + +#: ../../mod/admin.php:181 ../../mod/admin.php:635 +msgid "Soapbox Account" +msgstr "" + +#: ../../mod/admin.php:182 ../../mod/admin.php:636 +msgid "Community/Celebrity Account" +msgstr "" + +#: ../../mod/admin.php:183 ../../mod/admin.php:637 +msgid "Automatic Friend Account" +msgstr "" + #: ../../mod/admin.php:202 msgid "Message queues" msgstr "" @@ -3624,7 +3667,7 @@ msgstr "" msgid "FTP Password" msgstr "" -#: ../../mod/profile.php:21 ../../boot.php:960 +#: ../../mod/profile.php:21 ../../boot.php:957 msgid "Requested profile is not available." msgstr "" @@ -3694,8 +3737,8 @@ msgid "" "Account not found and OpenID registration is not permitted on this site." msgstr "" -#: ../../mod/openid.php:93 ../../include/auth.php:97 -#: ../../include/auth.php:160 +#: ../../mod/openid.php:93 ../../include/auth.php:99 +#: ../../include/auth.php:162 msgid "Login failed." msgstr "" @@ -3774,12 +3817,13 @@ msgstr "" msgid "No installed applications." msgstr "" -#: ../../mod/search.php:83 ../../include/text.php:650 ../../include/nav.php:91 +#: ../../mod/search.php:83 ../../include/text.php:649 +#: ../../include/text.php:650 ../../include/nav.php:91 msgid "Search" msgstr "" -#: ../../mod/profiles.php:21 ../../mod/profiles.php:375 -#: ../../mod/profiles.php:489 ../../mod/dfrn_confirm.php:62 +#: ../../mod/profiles.php:21 ../../mod/profiles.php:384 +#: ../../mod/profiles.php:498 ../../mod/dfrn_confirm.php:62 msgid "Profile not found." msgstr "" @@ -3823,237 +3867,241 @@ msgstr "" msgid "Interests" msgstr "" -#: ../../mod/profiles.php:181 +#: ../../mod/profiles.php:180 +msgid "Address" +msgstr "" + +#: ../../mod/profiles.php:187 msgid "Location" msgstr "" -#: ../../mod/profiles.php:253 +#: ../../mod/profiles.php:262 msgid "Profile updated." msgstr "" -#: ../../mod/profiles.php:320 +#: ../../mod/profiles.php:329 msgid " and " msgstr "" -#: ../../mod/profiles.php:328 +#: ../../mod/profiles.php:337 msgid "public profile" msgstr "" -#: ../../mod/profiles.php:331 +#: ../../mod/profiles.php:340 #, php-format msgid "%1$s changed %2$s to “%3$s”" msgstr "" -#: ../../mod/profiles.php:332 +#: ../../mod/profiles.php:341 #, php-format msgid " - Visit %1$s's %2$s" msgstr "" -#: ../../mod/profiles.php:335 +#: ../../mod/profiles.php:344 #, php-format msgid "%1$s has an updated %2$s, changing %3$s." msgstr "" -#: ../../mod/profiles.php:394 +#: ../../mod/profiles.php:403 msgid "Profile deleted." msgstr "" -#: ../../mod/profiles.php:412 ../../mod/profiles.php:446 +#: ../../mod/profiles.php:421 ../../mod/profiles.php:455 msgid "Profile-" msgstr "" -#: ../../mod/profiles.php:431 ../../mod/profiles.php:473 +#: ../../mod/profiles.php:440 ../../mod/profiles.php:482 msgid "New profile created." msgstr "" -#: ../../mod/profiles.php:452 +#: ../../mod/profiles.php:461 msgid "Profile unavailable to clone." msgstr "" -#: ../../mod/profiles.php:510 +#: ../../mod/profiles.php:519 msgid "Hide your contact/friend list from viewers of this profile?" msgstr "" -#: ../../mod/profiles.php:533 +#: ../../mod/profiles.php:542 msgid "Edit Profile Details" msgstr "" -#: ../../mod/profiles.php:535 +#: ../../mod/profiles.php:544 msgid "View this profile" msgstr "" -#: ../../mod/profiles.php:536 +#: ../../mod/profiles.php:545 msgid "Create a new profile using these settings" msgstr "" -#: ../../mod/profiles.php:537 +#: ../../mod/profiles.php:546 msgid "Clone this profile" msgstr "" -#: ../../mod/profiles.php:538 +#: ../../mod/profiles.php:547 msgid "Delete this profile" msgstr "" -#: ../../mod/profiles.php:539 +#: ../../mod/profiles.php:548 msgid "Profile Name:" msgstr "" -#: ../../mod/profiles.php:540 +#: ../../mod/profiles.php:549 msgid "Your Full Name:" msgstr "" -#: ../../mod/profiles.php:541 +#: ../../mod/profiles.php:550 msgid "Title/Description:" msgstr "" -#: ../../mod/profiles.php:542 +#: ../../mod/profiles.php:551 msgid "Your Gender:" msgstr "" -#: ../../mod/profiles.php:543 +#: ../../mod/profiles.php:552 #, php-format msgid "Birthday (%s):" msgstr "" -#: ../../mod/profiles.php:544 +#: ../../mod/profiles.php:553 msgid "Street Address:" msgstr "" -#: ../../mod/profiles.php:545 +#: ../../mod/profiles.php:554 msgid "Locality/City:" msgstr "" -#: ../../mod/profiles.php:546 +#: ../../mod/profiles.php:555 msgid "Postal/Zip Code:" msgstr "" -#: ../../mod/profiles.php:547 +#: ../../mod/profiles.php:556 msgid "Country:" msgstr "" -#: ../../mod/profiles.php:548 +#: ../../mod/profiles.php:557 msgid "Region/State:" msgstr "" -#: ../../mod/profiles.php:549 +#: ../../mod/profiles.php:558 msgid "<span class=\"heart\">♥</span> Marital Status:" msgstr "" -#: ../../mod/profiles.php:550 +#: ../../mod/profiles.php:559 msgid "Who: (if applicable)" msgstr "" -#: ../../mod/profiles.php:551 +#: ../../mod/profiles.php:560 msgid "Examples: cathy123, Cathy Williams, cathy@example.com" msgstr "" -#: ../../mod/profiles.php:552 ../../include/profile_advanced.php:43 +#: ../../mod/profiles.php:561 ../../include/profile_advanced.php:43 msgid "Sexual Preference:" msgstr "" -#: ../../mod/profiles.php:553 +#: ../../mod/profiles.php:562 msgid "Homepage URL:" msgstr "" -#: ../../mod/profiles.php:554 ../../include/profile_advanced.php:49 +#: ../../mod/profiles.php:563 ../../include/profile_advanced.php:49 msgid "Political Views:" msgstr "" -#: ../../mod/profiles.php:555 +#: ../../mod/profiles.php:564 msgid "Religious Views:" msgstr "" -#: ../../mod/profiles.php:556 +#: ../../mod/profiles.php:565 msgid "Public Keywords:" msgstr "" -#: ../../mod/profiles.php:557 +#: ../../mod/profiles.php:566 msgid "Private Keywords:" msgstr "" -#: ../../mod/profiles.php:558 +#: ../../mod/profiles.php:567 msgid "Example: fishing photography software" msgstr "" -#: ../../mod/profiles.php:559 +#: ../../mod/profiles.php:568 msgid "(Used for suggesting potential friends, can be seen by others)" msgstr "" -#: ../../mod/profiles.php:560 +#: ../../mod/profiles.php:569 msgid "(Used for searching profiles, never shown to others)" msgstr "" -#: ../../mod/profiles.php:561 +#: ../../mod/profiles.php:570 msgid "Tell us about yourself..." msgstr "" -#: ../../mod/profiles.php:562 +#: ../../mod/profiles.php:571 msgid "Hobbies/Interests" msgstr "" -#: ../../mod/profiles.php:563 +#: ../../mod/profiles.php:572 msgid "Contact information and Social Networks" msgstr "" -#: ../../mod/profiles.php:564 +#: ../../mod/profiles.php:573 msgid "Musical interests" msgstr "" -#: ../../mod/profiles.php:565 +#: ../../mod/profiles.php:574 msgid "Books, literature" msgstr "" -#: ../../mod/profiles.php:566 +#: ../../mod/profiles.php:575 msgid "Television" msgstr "" -#: ../../mod/profiles.php:567 +#: ../../mod/profiles.php:576 msgid "Film/dance/culture/entertainment" msgstr "" -#: ../../mod/profiles.php:568 +#: ../../mod/profiles.php:577 msgid "Love/romance" msgstr "" -#: ../../mod/profiles.php:569 +#: ../../mod/profiles.php:578 msgid "Work/employment" msgstr "" -#: ../../mod/profiles.php:570 +#: ../../mod/profiles.php:579 msgid "School/education" msgstr "" -#: ../../mod/profiles.php:575 +#: ../../mod/profiles.php:584 msgid "" "This is your <strong>public</strong> profile.<br />It <strong>may</strong> " "be visible to anybody using the internet." msgstr "" -#: ../../mod/profiles.php:585 ../../mod/directory.php:111 +#: ../../mod/profiles.php:594 ../../mod/directory.php:111 msgid "Age: " msgstr "" -#: ../../mod/profiles.php:620 +#: ../../mod/profiles.php:629 msgid "Edit/Manage Profiles" msgstr "" -#: ../../mod/profiles.php:621 ../../boot.php:1069 +#: ../../mod/profiles.php:630 ../../boot.php:1066 msgid "Change profile photo" msgstr "" -#: ../../mod/profiles.php:622 ../../boot.php:1070 +#: ../../mod/profiles.php:631 ../../boot.php:1067 msgid "Create New Profile" msgstr "" -#: ../../mod/profiles.php:633 ../../boot.php:1080 +#: ../../mod/profiles.php:642 ../../boot.php:1077 msgid "Profile Image" msgstr "" -#: ../../mod/profiles.php:635 ../../boot.php:1083 +#: ../../mod/profiles.php:644 ../../boot.php:1080 msgid "visible to everybody" msgstr "" -#: ../../mod/profiles.php:636 ../../boot.php:1084 +#: ../../mod/profiles.php:645 ../../boot.php:1081 msgid "Edit visibility" msgstr "" @@ -4105,7 +4153,7 @@ msgstr "" msgid "No entries." msgstr "" -#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:621 +#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:626 #: ../../include/contact_widgets.php:34 msgid "Friend Suggestions" msgstr "" @@ -4120,7 +4168,7 @@ msgstr "" msgid "Ignore/Hide" msgstr "" -#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:619 +#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:624 msgid "Global Directory" msgstr "" @@ -4230,83 +4278,83 @@ msgid "" "has already been approved." msgstr "" -#: ../../mod/dfrn_confirm.php:235 +#: ../../mod/dfrn_confirm.php:237 msgid "Response from remote site was not understood." msgstr "" -#: ../../mod/dfrn_confirm.php:244 +#: ../../mod/dfrn_confirm.php:246 msgid "Unexpected response from remote site: " msgstr "" -#: ../../mod/dfrn_confirm.php:252 +#: ../../mod/dfrn_confirm.php:254 msgid "Confirmation completed successfully." msgstr "" -#: ../../mod/dfrn_confirm.php:254 ../../mod/dfrn_confirm.php:268 -#: ../../mod/dfrn_confirm.php:275 +#: ../../mod/dfrn_confirm.php:256 ../../mod/dfrn_confirm.php:270 +#: ../../mod/dfrn_confirm.php:277 msgid "Remote site reported: " msgstr "" -#: ../../mod/dfrn_confirm.php:266 +#: ../../mod/dfrn_confirm.php:268 msgid "Temporary failure. Please wait and try again." msgstr "" -#: ../../mod/dfrn_confirm.php:273 +#: ../../mod/dfrn_confirm.php:275 msgid "Introduction failed or was revoked." msgstr "" -#: ../../mod/dfrn_confirm.php:418 +#: ../../mod/dfrn_confirm.php:420 msgid "Unable to set contact photo." msgstr "" -#: ../../mod/dfrn_confirm.php:475 ../../include/diaspora.php:507 +#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:507 #: ../../include/conversation.php:101 #, php-format msgid "%1$s is now friends with %2$s" msgstr "" -#: ../../mod/dfrn_confirm.php:557 +#: ../../mod/dfrn_confirm.php:562 #, php-format msgid "No user record found for '%s' " msgstr "" -#: ../../mod/dfrn_confirm.php:567 +#: ../../mod/dfrn_confirm.php:572 msgid "Our site encryption key is apparently messed up." msgstr "" -#: ../../mod/dfrn_confirm.php:578 +#: ../../mod/dfrn_confirm.php:583 msgid "Empty site URL was provided or URL could not be decrypted by us." msgstr "" -#: ../../mod/dfrn_confirm.php:599 +#: ../../mod/dfrn_confirm.php:604 msgid "Contact record was not found for you on our site." msgstr "" -#: ../../mod/dfrn_confirm.php:613 +#: ../../mod/dfrn_confirm.php:618 #, php-format msgid "Site public key not available in contact record for URL %s." msgstr "" -#: ../../mod/dfrn_confirm.php:633 +#: ../../mod/dfrn_confirm.php:638 msgid "" "The ID provided by your system is a duplicate on our system. It should work " "if you try again." msgstr "" -#: ../../mod/dfrn_confirm.php:644 +#: ../../mod/dfrn_confirm.php:649 msgid "Unable to set your contact credentials on our system." msgstr "" -#: ../../mod/dfrn_confirm.php:709 +#: ../../mod/dfrn_confirm.php:716 msgid "Unable to update your contact profile details on our system" msgstr "" -#: ../../mod/dfrn_confirm.php:743 +#: ../../mod/dfrn_confirm.php:750 #, php-format msgid "Connection accepted at %s" msgstr "" -#: ../../mod/dfrn_confirm.php:792 +#: ../../mod/dfrn_confirm.php:799 #, php-format msgid "%1$s has joined %2$s" msgstr "" @@ -4518,23 +4566,23 @@ msgid "" "connection again, you have to %3$sre-authenticate the Facebook-connector%4$s." msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:145 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:147 msgid "Lifetime of the cache (in hours)" msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:150 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:152 msgid "Cache Statistics" msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:153 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:155 msgid "Number of items" msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:155 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:157 msgid "Size of the cache" msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:157 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:159 msgid "Delete the whole cache" msgstr "" @@ -4661,7 +4709,7 @@ msgstr "" #: ../../addon/page/page.php:63 ../../addon/showmore/showmore.php:87 #: ../../include/contact_widgets.php:188 ../../include/conversation.php:470 -#: ../../boot.php:518 +#: ../../boot.php:515 msgid "show more" msgstr "" @@ -4677,7 +4725,7 @@ msgstr "" #: ../../addon/communityhome/communityhome.php:34 #: ../../addon/communityhome/twillingham/communityhome.php:28 #: ../../addon/communityhome/twillingham/communityhome.php:34 -#: ../../include/nav.php:64 ../../boot.php:816 +#: ../../include/nav.php:64 ../../boot.php:813 msgid "Login" msgstr "" @@ -4705,7 +4753,7 @@ msgid "Latest likes" msgstr "" #: ../../addon/communityhome/communityhome.php:155 -#: ../../view/theme/diabook/theme.php:557 ../../include/text.php:1309 +#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1313 #: ../../include/conversation.php:45 ../../include/conversation.php:118 msgid "event" msgstr "" @@ -5667,153 +5715,153 @@ msgstr "" msgid "Color scheme" msgstr "" -#: ../../view/theme/diabook/theme.php:122 ../../include/nav.php:49 +#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:49 #: ../../include/nav.php:115 msgid "Your posts and conversations" msgstr "" -#: ../../view/theme/diabook/theme.php:123 ../../include/nav.php:50 +#: ../../view/theme/diabook/theme.php:128 ../../include/nav.php:50 msgid "Your profile page" msgstr "" -#: ../../view/theme/diabook/theme.php:124 +#: ../../view/theme/diabook/theme.php:129 msgid "Your contacts" msgstr "" -#: ../../view/theme/diabook/theme.php:125 ../../include/nav.php:51 +#: ../../view/theme/diabook/theme.php:130 ../../include/nav.php:51 msgid "Your photos" msgstr "" -#: ../../view/theme/diabook/theme.php:126 ../../include/nav.php:52 +#: ../../view/theme/diabook/theme.php:131 ../../include/nav.php:52 msgid "Your events" msgstr "" -#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:53 +#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53 msgid "Personal notes" msgstr "" -#: ../../view/theme/diabook/theme.php:127 ../../include/nav.php:53 +#: ../../view/theme/diabook/theme.php:132 ../../include/nav.php:53 msgid "Your personal photos" msgstr "" -#: ../../view/theme/diabook/theme.php:129 -#: ../../view/theme/diabook/theme.php:638 -#: ../../view/theme/diabook/theme.php:742 +#: ../../view/theme/diabook/theme.php:134 +#: ../../view/theme/diabook/theme.php:643 +#: ../../view/theme/diabook/theme.php:747 #: ../../view/theme/diabook/config.php:201 msgid "Community Pages" msgstr "" -#: ../../view/theme/diabook/theme.php:485 -#: ../../view/theme/diabook/theme.php:744 +#: ../../view/theme/diabook/theme.php:490 +#: ../../view/theme/diabook/theme.php:749 #: ../../view/theme/diabook/config.php:203 msgid "Community Profiles" msgstr "" -#: ../../view/theme/diabook/theme.php:506 -#: ../../view/theme/diabook/theme.php:749 +#: ../../view/theme/diabook/theme.php:511 +#: ../../view/theme/diabook/theme.php:754 #: ../../view/theme/diabook/config.php:208 msgid "Last users" msgstr "" -#: ../../view/theme/diabook/theme.php:535 -#: ../../view/theme/diabook/theme.php:751 +#: ../../view/theme/diabook/theme.php:540 +#: ../../view/theme/diabook/theme.php:756 #: ../../view/theme/diabook/config.php:210 msgid "Last likes" msgstr "" -#: ../../view/theme/diabook/theme.php:580 -#: ../../view/theme/diabook/theme.php:750 +#: ../../view/theme/diabook/theme.php:585 +#: ../../view/theme/diabook/theme.php:755 #: ../../view/theme/diabook/config.php:209 msgid "Last photos" msgstr "" -#: ../../view/theme/diabook/theme.php:617 -#: ../../view/theme/diabook/theme.php:747 +#: ../../view/theme/diabook/theme.php:622 +#: ../../view/theme/diabook/theme.php:752 #: ../../view/theme/diabook/config.php:206 msgid "Find Friends" msgstr "" -#: ../../view/theme/diabook/theme.php:618 +#: ../../view/theme/diabook/theme.php:623 msgid "Local Directory" msgstr "" -#: ../../view/theme/diabook/theme.php:620 ../../include/contact_widgets.php:35 +#: ../../view/theme/diabook/theme.php:625 ../../include/contact_widgets.php:35 msgid "Similar Interests" msgstr "" -#: ../../view/theme/diabook/theme.php:622 ../../include/contact_widgets.php:37 +#: ../../view/theme/diabook/theme.php:627 ../../include/contact_widgets.php:37 msgid "Invite Friends" msgstr "" -#: ../../view/theme/diabook/theme.php:673 -#: ../../view/theme/diabook/theme.php:743 +#: ../../view/theme/diabook/theme.php:678 +#: ../../view/theme/diabook/theme.php:748 #: ../../view/theme/diabook/config.php:202 msgid "Earth Layers" msgstr "" -#: ../../view/theme/diabook/theme.php:678 +#: ../../view/theme/diabook/theme.php:683 msgid "Set zoomfactor for Earth Layers" msgstr "" -#: ../../view/theme/diabook/theme.php:679 +#: ../../view/theme/diabook/theme.php:684 #: ../../view/theme/diabook/config.php:199 msgid "Set longitude (X) for Earth Layers" msgstr "" -#: ../../view/theme/diabook/theme.php:680 +#: ../../view/theme/diabook/theme.php:685 #: ../../view/theme/diabook/config.php:200 msgid "Set latitude (Y) for Earth Layers" msgstr "" -#: ../../view/theme/diabook/theme.php:693 -#: ../../view/theme/diabook/theme.php:745 +#: ../../view/theme/diabook/theme.php:698 +#: ../../view/theme/diabook/theme.php:750 #: ../../view/theme/diabook/config.php:204 msgid "Help or @NewHere ?" msgstr "" -#: ../../view/theme/diabook/theme.php:700 -#: ../../view/theme/diabook/theme.php:746 +#: ../../view/theme/diabook/theme.php:705 +#: ../../view/theme/diabook/theme.php:751 #: ../../view/theme/diabook/config.php:205 msgid "Connect Services" msgstr "" -#: ../../view/theme/diabook/theme.php:707 -#: ../../view/theme/diabook/theme.php:748 +#: ../../view/theme/diabook/theme.php:712 +#: ../../view/theme/diabook/theme.php:753 msgid "Last Tweets" msgstr "" -#: ../../view/theme/diabook/theme.php:710 +#: ../../view/theme/diabook/theme.php:715 #: ../../view/theme/diabook/config.php:197 msgid "Set twitter search term" msgstr "" -#: ../../view/theme/diabook/theme.php:730 -#: ../../view/theme/diabook/theme.php:731 -#: ../../view/theme/diabook/theme.php:732 -#: ../../view/theme/diabook/theme.php:733 -#: ../../view/theme/diabook/theme.php:734 #: ../../view/theme/diabook/theme.php:735 #: ../../view/theme/diabook/theme.php:736 #: ../../view/theme/diabook/theme.php:737 #: ../../view/theme/diabook/theme.php:738 -#: ../../view/theme/diabook/theme.php:739 ../../include/acl_selectors.php:288 +#: ../../view/theme/diabook/theme.php:739 +#: ../../view/theme/diabook/theme.php:740 +#: ../../view/theme/diabook/theme.php:741 +#: ../../view/theme/diabook/theme.php:742 +#: ../../view/theme/diabook/theme.php:743 +#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:288 msgid "don't show" msgstr "" -#: ../../view/theme/diabook/theme.php:730 -#: ../../view/theme/diabook/theme.php:731 -#: ../../view/theme/diabook/theme.php:732 -#: ../../view/theme/diabook/theme.php:733 -#: ../../view/theme/diabook/theme.php:734 #: ../../view/theme/diabook/theme.php:735 #: ../../view/theme/diabook/theme.php:736 #: ../../view/theme/diabook/theme.php:737 #: ../../view/theme/diabook/theme.php:738 -#: ../../view/theme/diabook/theme.php:739 ../../include/acl_selectors.php:287 +#: ../../view/theme/diabook/theme.php:739 +#: ../../view/theme/diabook/theme.php:740 +#: ../../view/theme/diabook/theme.php:741 +#: ../../view/theme/diabook/theme.php:742 +#: ../../view/theme/diabook/theme.php:743 +#: ../../view/theme/diabook/theme.php:744 ../../include/acl_selectors.php:287 msgid "show" msgstr "" -#: ../../view/theme/diabook/theme.php:740 +#: ../../view/theme/diabook/theme.php:745 msgid "Show/hide boxes at right-hand column:" msgstr "" @@ -5854,7 +5902,7 @@ msgstr "" msgid "Set colour scheme" msgstr "" -#: ../../include/profile_advanced.php:17 ../../boot.php:1105 +#: ../../include/profile_advanced.php:17 ../../boot.php:1102 msgid "Gender:" msgstr "" @@ -5867,7 +5915,7 @@ msgid "j F" msgstr "" #: ../../include/profile_advanced.php:30 ../../include/datetime.php:448 -#: ../../include/items.php:1419 +#: ../../include/items.php:1423 msgid "Birthday:" msgstr "" @@ -5875,11 +5923,11 @@ msgstr "" msgid "Age:" msgstr "" -#: ../../include/profile_advanced.php:37 ../../boot.php:1108 +#: ../../include/profile_advanced.php:37 ../../boot.php:1105 msgid "Status:" msgstr "" -#: ../../include/profile_advanced.php:45 ../../boot.php:1110 +#: ../../include/profile_advanced.php:45 ../../boot.php:1107 msgid "Homepage:" msgstr "" @@ -6059,187 +6107,183 @@ msgstr "" msgid "Undecided" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Males" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Females" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Gay" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Lesbian" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "No Preference" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Bisexual" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Autosexual" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Abstinent" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Virgin" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Deviant" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Fetish" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Oodles" msgstr "" -#: ../../include/profile_selectors.php:21 +#: ../../include/profile_selectors.php:23 msgid "Nonsexual" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Single" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Lonely" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Available" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Unavailable" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Has crush" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Infatuated" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Dating" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Unfaithful" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Sex Addict" msgstr "" -#: ../../include/profile_selectors.php:37 -msgid "Friends" -msgstr "" - -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Friends/Benefits" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Casual" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Engaged" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Married" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Imaginarily married" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Partners" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Cohabiting" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Common law" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Happy" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Not looking" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Swinger" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Betrayed" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Separated" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Unstable" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Divorced" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Imaginarily divorced" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Widowed" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Uncertain" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "It's complicated" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Don't care" msgstr "" -#: ../../include/profile_selectors.php:37 +#: ../../include/profile_selectors.php:42 msgid "Ask me" msgstr "" -#: ../../include/event.php:17 ../../include/bb2diaspora.php:244 +#: ../../include/event.php:17 ../../include/bb2diaspora.php:249 msgid "Starts:" msgstr "" -#: ../../include/event.php:27 ../../include/bb2diaspora.php:252 +#: ../../include/event.php:27 ../../include/bb2diaspora.php:257 msgid "Finishes:" msgstr "" @@ -6279,127 +6323,127 @@ msgid_plural "%d Contacts" msgstr[0] "" msgstr[1] "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Monday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Tuesday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Wednesday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Thursday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Friday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Saturday" msgstr "" -#: ../../include/text.php:831 +#: ../../include/text.php:835 msgid "Sunday" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "January" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "February" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "March" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "April" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "May" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "June" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "July" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "August" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "September" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "October" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "November" msgstr "" -#: ../../include/text.php:835 +#: ../../include/text.php:839 msgid "December" msgstr "" -#: ../../include/text.php:920 +#: ../../include/text.php:924 msgid "bytes" msgstr "" -#: ../../include/text.php:940 ../../include/text.php:955 +#: ../../include/text.php:944 ../../include/text.php:959 msgid "remove" msgstr "" -#: ../../include/text.php:940 ../../include/text.php:955 +#: ../../include/text.php:944 ../../include/text.php:959 msgid "[remove]" msgstr "" -#: ../../include/text.php:943 +#: ../../include/text.php:947 msgid "Categories:" msgstr "" -#: ../../include/text.php:958 +#: ../../include/text.php:962 msgid "Filed under:" msgstr "" -#: ../../include/text.php:974 ../../include/text.php:986 +#: ../../include/text.php:978 ../../include/text.php:990 msgid "Click to open/close" msgstr "" -#: ../../include/text.php:1091 +#: ../../include/text.php:1095 msgid "default" msgstr "" -#: ../../include/text.php:1103 +#: ../../include/text.php:1107 msgid "Select an alternate language" msgstr "" -#: ../../include/text.php:1313 +#: ../../include/text.php:1317 msgid "activity" msgstr "" -#: ../../include/text.php:1315 +#: ../../include/text.php:1319 msgid "comment" msgstr "" -#: ../../include/text.php:1316 +#: ../../include/text.php:1320 msgid "post" msgstr "" -#: ../../include/text.php:1471 +#: ../../include/text.php:1475 msgid "Item filed" msgstr "" @@ -6463,7 +6507,7 @@ msgstr "" msgid "Contacts not in any group" msgstr "" -#: ../../include/nav.php:46 ../../boot.php:815 +#: ../../include/nav.php:46 ../../boot.php:812 msgid "Logout" msgstr "" @@ -6471,7 +6515,7 @@ msgstr "" msgid "End this session" msgstr "" -#: ../../include/nav.php:49 ../../boot.php:1502 +#: ../../include/nav.php:49 ../../boot.php:1499 msgid "Status" msgstr "" @@ -6551,11 +6595,11 @@ msgstr "" msgid "Manage other pages" msgstr "" -#: ../../include/nav.php:138 ../../boot.php:1063 +#: ../../include/nav.php:138 ../../boot.php:1060 msgid "Profiles" msgstr "" -#: ../../include/nav.php:138 ../../boot.php:1063 +#: ../../include/nav.php:138 ../../boot.php:1060 msgid "Manage/edit profiles" msgstr "" @@ -6638,13 +6682,13 @@ msgstr "" msgid "Logged out." msgstr "" -#: ../../include/auth.php:113 +#: ../../include/auth.php:115 msgid "" "We encountered a problem while logging in with the OpenID you provided. " "Please check the correct spelling of the ID." msgstr "" -#: ../../include/auth.php:113 +#: ../../include/auth.php:115 msgid "The error message was:" msgstr "" @@ -6934,11 +6978,11 @@ msgstr "" msgid "Please visit %s to approve or reject the suggestion." msgstr "" -#: ../../include/items.php:2736 +#: ../../include/items.php:2740 msgid "A new person is sharing with you at " msgstr "" -#: ../../include/items.php:2736 +#: ../../include/items.php:2740 msgid "You have a new follower at " msgstr "" @@ -7222,96 +7266,96 @@ msgstr "" msgid "permissions" msgstr "" -#: ../../boot.php:516 +#: ../../boot.php:513 msgid "Delete this item?" msgstr "" -#: ../../boot.php:519 +#: ../../boot.php:516 msgid "show fewer" msgstr "" -#: ../../boot.php:692 +#: ../../boot.php:689 #, php-format msgid "Update %s failed. See error logs." msgstr "" -#: ../../boot.php:694 +#: ../../boot.php:691 #, php-format msgid "Update Error at %s" msgstr "" -#: ../../boot.php:794 +#: ../../boot.php:791 msgid "Create a New Account" msgstr "" -#: ../../boot.php:818 +#: ../../boot.php:815 msgid "Nickname or Email address: " msgstr "" -#: ../../boot.php:819 +#: ../../boot.php:816 msgid "Password: " msgstr "" -#: ../../boot.php:822 +#: ../../boot.php:819 msgid "Or login using OpenID: " msgstr "" -#: ../../boot.php:828 +#: ../../boot.php:825 msgid "Forgot your password?" msgstr "" -#: ../../boot.php:995 +#: ../../boot.php:992 msgid "Edit profile" msgstr "" -#: ../../boot.php:1055 +#: ../../boot.php:1052 msgid "Message" msgstr "" -#: ../../boot.php:1171 ../../boot.php:1247 +#: ../../boot.php:1168 ../../boot.php:1244 msgid "g A l F d" msgstr "" -#: ../../boot.php:1172 ../../boot.php:1248 +#: ../../boot.php:1169 ../../boot.php:1245 msgid "F d" msgstr "" -#: ../../boot.php:1217 ../../boot.php:1288 +#: ../../boot.php:1214 ../../boot.php:1285 msgid "[today]" msgstr "" -#: ../../boot.php:1229 +#: ../../boot.php:1226 msgid "Birthday Reminders" msgstr "" -#: ../../boot.php:1230 +#: ../../boot.php:1227 msgid "Birthdays this week:" msgstr "" -#: ../../boot.php:1281 +#: ../../boot.php:1278 msgid "[No description]" msgstr "" -#: ../../boot.php:1299 +#: ../../boot.php:1296 msgid "Event Reminders" msgstr "" -#: ../../boot.php:1300 +#: ../../boot.php:1297 msgid "Events this week:" msgstr "" -#: ../../boot.php:1505 +#: ../../boot.php:1502 msgid "Status Messages and Posts" msgstr "" -#: ../../boot.php:1511 +#: ../../boot.php:1508 msgid "Profile Details" msgstr "" -#: ../../boot.php:1526 +#: ../../boot.php:1523 msgid "Events and Calendar" msgstr "" -#: ../../boot.php:1532 +#: ../../boot.php:1529 msgid "Only You Can See This" msgstr "" diff --git a/view/dfrn_req_confirm.tpl b/view/dfrn_req_confirm.tpl index 58e9233aa..6c916323c 100644 --- a/view/dfrn_req_confirm.tpl +++ b/view/dfrn_req_confirm.tpl @@ -11,6 +11,10 @@ $please <input type="hidden" name="localconfirm" value="1" /> $aes_allow +<label id="dfrn-request-homecoming-hide-label" for="dfrn-request-homecoming-hide">$hidethem</label> +<input type="checkbox" name="hidden-contact" value="1" {{ if $hidechecked }}checked="checked" {{ endif }} /> + + <div id="dfrn-request-homecoming-submit-wrapper" > <input id="dfrn-request-homecoming-submit" type="submit" name="submit" value="$submit" /> </div> diff --git a/view/generic_links_widget.tpl b/view/generic_links_widget.tpl index 45813b876..f3404f783 100644 --- a/view/generic_links_widget.tpl +++ b/view/generic_links_widget.tpl @@ -1,4 +1,4 @@ -<div class="widget"> +<div class="widget{{ if $class }} $class{{ endif }}"> {{if $title}}<h3>$title</h3>{{endif}} {{if $desc}}<div class="desc">$desc</div>{{endif}} diff --git a/view/pagetypes.tpl b/view/pagetypes.tpl index 924fc47ac..c9022a1c1 100644 --- a/view/pagetypes.tpl +++ b/view/pagetypes.tpl @@ -1,7 +1,5 @@ {{inc field_radio.tpl with $field=$page_normal }}{{endinc}} - {{inc field_radio.tpl with $field=$page_soapbox }}{{endinc}} {{inc field_radio.tpl with $field=$page_community }}{{endinc}} - {{inc field_radio.tpl with $field=$page_freelove }}{{endinc}} - {{ if $experimental }} {{inc field_radio.tpl with $field=$page_prvgroup }}{{endinc}} - {{ endif }}
\ No newline at end of file + {{inc field_radio.tpl with $field=$page_soapbox }}{{endinc}} + {{inc field_radio.tpl with $field=$page_freelove }}{{endinc}} diff --git a/view/settings.tpl b/view/settings.tpl index 556cd3ba3..d7ef21210 100644 --- a/view/settings.tpl +++ b/view/settings.tpl @@ -70,6 +70,7 @@ $unkmail {{ inc field_yesno.tpl with $field=$expire.items }}{{endinc}} {{ inc field_yesno.tpl with $field=$expire.notes }}{{endinc}} {{ inc field_yesno.tpl with $field=$expire.starred }}{{endinc}} + {{ inc field_yesno.tpl with $field=$expire.network_only }}{{endinc}} </div> </div> @@ -103,15 +104,16 @@ $group_select <h3 class="settings-heading">$h_not</h3> +<div id="settings-notifications"> -<strong>$activity_options</strong> +<div id="settings-activity-desc">$activity_options</div> {{inc field_checkbox.tpl with $field=$post_newfriend }}{{endinc}} {{inc field_checkbox.tpl with $field=$post_joingroup }}{{endinc}} {{inc field_checkbox.tpl with $field=$post_profilechange }}{{endinc}} -<div id="settings-notify-desc"><strong>$lbl_not </strong></div> +<div id="settings-notify-desc">$lbl_not</div> <div class="group"> {{inc field_intcheckbox.tpl with $field=$notify1 }}{{endinc}} @@ -123,6 +125,7 @@ $group_select {{inc field_intcheckbox.tpl with $field=$notify7 }}{{endinc}} </div> +</div> <div class="settings-submit-wrapper" > <input type="submit" name="submit" class="settings-submit" value="$submit" /> @@ -130,6 +133,7 @@ $group_select <h3 class="settings-heading">$h_advn</h3> +<div id="settings-pagetype-desc">$h_descadvn</div> $pagetype diff --git a/view/theme/diabook/theme.php b/view/theme/diabook/theme.php index de7e41841..83079782e 100755 --- a/view/theme/diabook/theme.php +++ b/view/theme/diabook/theme.php @@ -18,6 +18,11 @@ $a->page['htmlhead'] .= sprintf('<META NAME=generator CONTENT="%s"/>', $diabook_ //init css on network and profilepages $cssFile = null; + +// Preload config +load_config("diabook"); +load_pconfig(local_user(), "diabook"); + //get statuses of boxes at right-hand-column $close_pages = false; $site_close_pages = get_config("diabook", "close_pages" ); diff --git a/view/theme/dispy/communityhome.tpl b/view/theme/dispy/communityhome.tpl index 4d09b9255..aaa27465b 100644 --- a/view/theme/dispy/communityhome.tpl +++ b/view/theme/dispy/communityhome.tpl @@ -2,7 +2,6 @@ <div>$page</div> {{ endif }} -{{ if $lastusers_title }} <h3 id="extra-help-header">Help or '@NewHere'?</h3> <div id="extra-help"> <a href="https://helpers.pyxis.uberspace.de/profile/helpers" @@ -13,27 +12,24 @@ title="Local Friendica" target="_blank">Local Friendica</a><br /> <a href="http://kakste.com/profile/newhere" title="@NewHere" target="_blank">NewHere</a> </div> -{{ endif }} -{{ if $lastusers_title }} <h3 id="connect-services-header">Connectable Services</h3> -<div id="connect-services"> -<a href="$url/facebook"><img alt="Facebook" - src="view/theme/dispy/icons/facebook.png" title="Facebook" /></a> -<a href="$url/settings/connectors"><img - alt="StatusNet" src="view/theme/dispy/icons/StatusNet.png?" title="StatusNet" /></a> -<a href="$url/settings/connectors"><img - alt="LiveJournal" src="view/theme/dispy/icons/livejournal.png?" title="LiveJournal" /></a> -<a href="$url/settings/connectors"><img - alt="Posterous" src="view/theme/dispy/icons/posterous.png?" title="Posterous" /></a><br /> -<a href="$url/settings/connectors"><img - alt="Tumblr" src="view/theme/dispy/icons/tumblr.png?" title="Tumblr" /></a> -<a href="$url/settings/connectors"><img - alt="Twitter" src="view/theme/dispy/icons/twitter.png?" title="Twitter" /></a> -<a href="$url/settings/connectors"><img - alt="WordPress" src="view/theme/dispy/icons/wordpress.png?" title="WordPress" /></a> -<a href="$url/settings/connectors"><img - alt="E-Mail" src="view/theme/dispy/icons/email.png?" title="E-Mail" /></a> -</div> -{{ endif }} +<ul id="connect-services"> +<li><a href="$url/facebook"><img alt="Facebook" + src="view/theme/dispy/icons/facebook.png" title="Facebook" /></a></li> +<li><a href="$url/settings/connectors"><img + alt="StatusNet" src="view/theme/dispy/icons/StatusNet.png" title="StatusNet" /></a></li> +<li><a href="$url/settings/connectors"><img + alt="LiveJournal" src="view/theme/dispy/icons/livejournal.png" title="LiveJournal" /></a></li> +<li><a href="$url/settings/connectors"><img + alt="Posterous" src="view/theme/dispy/icons/posterous.png" title="Posterous" /></a></li> +<li><a href="$url/settings/connectors"><img + alt="Tumblr" src="view/theme/dispy/icons/tumblr.png" title="Tumblr" /></a></li> +<li><a href="$url/settings/connectors"><img + alt="Twitter" src="view/theme/dispy/icons/twitter.png" title="Twitter" /></a></li> +<li><a href="$url/settings/connectors"><img + alt="WordPress" src="view/theme/dispy/icons/wordpress.png" title="WordPress" /></a></li> +<li><a href="$url/settings/connectors"><img + alt="E-Mail" src="view/theme/dispy/icons/email.png" title="E-Mail" /></a></li> +</ul> diff --git a/view/theme/dispy/config.php b/view/theme/dispy/config.php index a24288bf8..25663c10b 100644 --- a/view/theme/dispy/config.php +++ b/view/theme/dispy/config.php @@ -41,17 +41,17 @@ function theme_admin_post(&$a) { function dispy_form(&$a, $font_size, $line_height, $colour) { $line_heights = array( - "1.3"=>"1.3", - "---"=>"---", - "1.6"=>"1.6", - "1.5"=>"1.5", - "1.4"=>"1.4", - "1.2"=>"1.2", - "1.1"=>"1.1", + "1.3" => "1.3", + "---" => "---", + "1.6" => "1.6", + "1.5" => "1.5", + "1.4" => "1.4", + "1.2" => "1.2", + "1.1" => "1.1", ); $font_sizes = array( '12' => '12', - '14' =>'14', + '14' => '14', "---" => "---", "16" => "16", "15" => "15", diff --git a/view/theme/dispy/conversation.tpl b/view/theme/dispy/conversation.tpl index 41b6aeadf..c49cdf26b 100644 --- a/view/theme/dispy/conversation.tpl +++ b/view/theme/dispy/conversation.tpl @@ -18,6 +18,7 @@ {{ if $dropping }} <div class="delete-checked"> -<a href="#" onclick="deleteCheckedItems();return false;"><span class="icon delete"></span><span class="s22 text">$dropping</span></a> +<a href="#" onclick="deleteCheckedItems();return false;"><span class="icon delete"></span><span class="s22 text" onmouseover="imgbright(this);" onmouseout="imgdull(this);">$dropping</span></a> </div> +<div id="item-delete-selected-end"></div> {{ endif }} diff --git a/view/theme/dispy/dark/_base.less b/view/theme/dispy/dark/_base.less index 000cdbd5a..d1051a989 100644 --- a/view/theme/dispy/dark/_base.less +++ b/view/theme/dispy/dark/_base.less @@ -17,6 +17,7 @@ @import "../css/reset"; //* backgrounds */ +@lt_bg_colour: lighten(@bg_colour, 10%); @dk_bg_colour: #1d1f1d; @bg_colour: #2e2f2e; @bg_alt_colour: #2e302e; @@ -24,8 +25,9 @@ @menu_bg_colour: #555753; //* font colour, aka color: */ -@lt_main_colour: #ffff99; +@lt_main_colour: lighten(@main_colour, 10%); @main_colour: #eeeecc; +@dk_main_colour: darken(@main_colour, 20%); @main_alt_colour: #eeeeee; // darken(@main_alt_colour, 13%) > #cdcdcd // darken(@main_alt_colour, 13.5%) > #cccccc @@ -56,9 +58,6 @@ @info: #1353b1; @alert: #ff0000; -@lt_main_colour: lighten(@bg_colour, 10%); -@dk_main_colour: darken(@bg_colour, 10%); - //* links */ @link_colour: #88a9d2; @dk_link_colour: darken(@link_colour, 10%); @@ -137,7 +136,19 @@ -webkit-text-overflow: @t; text-overflow: @t; } - +.lin_gradient(@x1: left, @x2: right, @y1: top, @y2: bottom, @c1: @bg_colour, @c2: @dk_bg_colour) { + // w3c + background: linear-gradient(@x1 @y2, @c1, @c2); + // webkit + // -webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*) + background: -webkit-gradient(linear, @x1 @y1, @x2 @y2, from(@c1), to(@c2)); + // mozilla + // -moz-linear-gradient([<point> || <angle>,]? <stop>, <stop> [, <stop>]) + background: -moz-linear-gradient(@x1 @y2, @c1, @c2); + // opera + //background: -o-linear-gradient([<point> || <angle>,]? <stop>, <stop> [, <stop>]); + background: -o-linear-gradient(@x1, @c1, @c2); +} //* pre wrap */ .wrap () { white-space: pre-wrap; diff --git a/view/theme/dispy/dark/style.css b/view/theme/dispy/dark/style.css index 029722c3a..82118275a 100644 --- a/view/theme/dispy/dark/style.css +++ b/view/theme/dispy/dark/style.css @@ -20,7 +20,7 @@ tr:nth-child(even){background-color:#474947;} :focus{outline:none;} a:focus{outline:invert, dashed, thin;} [disabled="disabled"]{background:#4e4f4e;color:#ddddbb;} -ins,mark{background-color:#2e302e;color:#474947;} +ins,mark{background-color:#2e302e;color:#fbfbf2;} ins{text-decoration:none;} mark{font-style:italic;font-weight:bold;} pre,code,kbd,samp,.wall-item-body code{font-family:monospace, monospace;_font-family:monospace;font-size:1em;} @@ -58,7 +58,7 @@ h6{font-size:xx-small;} #articlemain{width:100%;height:100%;margin:0 auto;} .button{color:#eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding:5px;cursor:pointer;}.button a{color:#eeeecc;font-weight:bold;} #profile-listing-desc a{color:#eeeecc;font-weight:bold;} -[class$="-desc"],[id$="-desc"]{color:#eeeecc;background:#2e2f2e;border:3px ridge #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:3px 10px 7px 0;padding:5px;font-weight:bold;font-size:smaller;} +[class$="-desc"],[id$="-desc"]{color:#eeeecc;background:#2e2f2e;border:2px outset #d4d580;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:3px 10px 7px 0;padding:5px;font-weight:bold;font-size:smaller;} #item-delete-selected-desc{float:left;margin-right:5px;}#item-delete-selected-desc:hover{text-decoration:underline;} .intro-approve-as-friend-desc{margin-top:10px;} .intro-desc{margin-bottom:20px;font-weight:bold;} @@ -103,7 +103,7 @@ div.jGrowl div.info{background:#1353b1 url("../../../images/icons/48/info.png") nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAQAAABuvaSwAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAUJcAAFCXAZtv64UAAAHuSURBVCjPbZPbTlNBFIYHLixXRIhEQGNRMUopJAJyAyZ4Z2l8B+XwEBqKtjwOp8oDIAJKIJFUjdFIQCUYrRytdyb0459ht8wG9rrYs9b618y/TsYEH4ZK4qRYYIdDybZOI7TKakIfVhrJ8J2i5IBNyV93/kaaBuv3oV3MgwCTPKGHPkkPA0xRUMBrOgN4AP0o6BseEpF2m3es0qJTFQneyvMhgDsC9tZprnEcGuOPeMcDLUpW3jlLxlDBmJTFY6gLvsVv8tyh9G7U3Z6mwtCuJAoiECSh/w1+8otmTjLqF2KDNsNzRY1bruV0o6rFFtc9S5USh5RRWvAYv4xX9dYPS8ur1oBQC4Y99m2uHriRNda5ErLdU1l3jCI2xdJ3XOYLX6kP2W6K2OF54Et84jN154F31d6ukKOG92pSbcjWLRrbRhVGLTZeOtXqX46LoQSHhJo3jOo3ESrdBQbljIRKNyXUiKHNNSXhTdbZiUzyT/WJ23Zn3BBFy+2u4ZHc1eV2N7EkxAvbbqMRmZOSlbE0g/uajRgl6Iy8r1wpnaFTQ4ji+8XOEsuxYmdDWpJleXJ0+BPdoduL4p5Vavd5IOllmJfiWmSWu6d3pV4jteFWqaAGbLkdKSqtUXXUnN3DSvF8phfy/JfkxfOp9sVb2COz+hY/T0qkwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMS0wOS0xNlQwOTozOTowMCswMjowMC9Oi90AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTEtMDktMTZUMDk6Mzk6MDArMDI6MDBeEzNhAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==");} .show{display:block;} #notifications{width:170px;height:20px;font-size:small;top:-19px;left:4px;position:absolute;} -#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#1d1f1d;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:300px;height:60px;} +#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#1d1f1d;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:270px;height:60px;} #nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;} .floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(dark/icons.png) -190px -60px no-repeat;} .search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#1d1f1d;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} @@ -111,7 +111,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #search-text{border:1px solid #eeeeee;margin:5px 0;} #mini-search-text{font-size:8pt;height:14px;width:10em;margin:5px;} #scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;} -#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;} +#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:80%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;} #user-menu-label{font-size:small;padding:3px 20px 9px 5px;height:10px;} .nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(dark/notifications.png) 0 0 no-repeat;color:#111111;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;} .nav-ajax-update.show,.nav-ajax-left.show{visibility:visible;} @@ -133,7 +133,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;} #sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;} #sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #eeeecc;} -#asidemain{float:left;font-size:small;margin:20px 0 20px 35px;width:25%;display:inline;} +#asidemain{float:left;font-size:small;margin:1em;width:25%;display:inline;} #asideright,#asideleft{display:none;} .vcard .fn{font-size:1.5em;font-weight:bold;border-bottom:1px solid #638ec4;padding-bottom:3px;} .vcard #profile-photo-wrapper{margin:20px 0;background-color:#555753;padding:5px;width:175px;height:175px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;} @@ -187,7 +187,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #jot-title-display{font-weight:bold;} .jothidden{display:none;} #jot-preview-content{background-color:#2e3436;color:#eeeecc;border:1px solid #2e2f2e;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0px #111111;-o-box-shadow:5px 0 10px 0px #111111;-webkit-box-shadow:5px 0 10px 0px #111111;-ms-box-shadow:5px 0 10px 0px #111111;box-shadow:5px 0 10px 0px #111111;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;-o-border-radius:0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;-moz-border-radius:0px 0px 0px 0px;-ms-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;} -#sectionmain{margin:20px;font-size:0.8em;min-width:475px;width:67%;float:left;display:inline;} +#sectionmain{margin:1em;font-size:0.8em;min-width:475px;width:69%;float:left;display:inline;} .tabs{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:10px 0;}.tabs li{display:inline;font-size:smaller;} .tab{border:1px solid #638ec4;padding:4px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.tab:active,.tab:hover{background:#2e3436;color:#eeeecc;border:1px solid #638ec4;} .tab a{border:0;text-decoration:none;} @@ -203,7 +203,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm [id^="tread-wrapper"],[class^="tread-wrapper"]{margin:1.2em 0 0 0;padding:0px;} .wall-item-photo-menu{display:none;} .wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(dark/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;width:90px;height:20px;top:85px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;} -.wall-item-info{float:left;width:8em;position:relative;} +.wall-item-info{float:left;width:7em;position:relative;} .wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} [class^="wall-item-tools"] *{}[class^="wall-item-tools"] *>*{} .wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;} @@ -223,14 +223,16 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm .wall-item-arrowphoto-wrapper{position:absolute;left:35px;top:80px;z-index:10002;} .wall-item-photo-menu{min-width:92px;font-size:0.75em;border:2px solid #555753;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-o-border-radius:0 5px 5px 5px;-webkit-border-radius:0 5px 5px 5px;-moz-border-radius:0 5px 5px 5px;-ms-border-radius:0 5px 5px 5px;border-radius:0 5px 5px 5px;}.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 6px;color:#eeeeee;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeee;} #item-delete-selected{overflow:auto;width:100%;} -#connect-services-header,#connect-services,#extra-help-header,#extra-help,#postit-header,#postit{margin:5px 0 0 0;} +#connect-services-header,#extra-help-header{margin:1.5em 0 0 0;} +#connect-services,#extra-help{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:1em 0 0 0;}#connect-services li,#extra-help li{display:inline;} .ccollapse-wrapper{font-size:0.9em;margin-left:5em;} .hide-comments-outer{font-size:small;} -.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} +.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-info{width:5em;} +.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} .wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:50px;top:45px;background-position:35px center;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:4,5em;top:4em;background-position:35px center;} .wall-item-outside-wrapper.comment .wall-item-author{margin-left:0.2em;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:50px;top:60px;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:4.5em;top:5.5em;} .comment-wwedit-wrapper{border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:5px;} .comment-edit-wrapper{border-top:1px #aaa solid;} [class^="comment-edit-bb"]{margin:0px;padding:0px;list-style:none;list-style-position:inside;display:none;margin:-40px 0 5px 60px;width:75%;}[class^="comment-edit-bb"]>li{display:inline-block;margin:0 10px 0 0;visibility:none;} diff --git a/view/theme/dispy/dark/style.less b/view/theme/dispy/dark/style.less index fb0fbc6df..0617aaced 100644 --- a/view/theme/dispy/dark/style.less +++ b/view/theme/dispy/dark/style.less @@ -315,7 +315,7 @@ h6 { [id$="-desc"] { color: @main_colour; background: @bg_colour; - .borders(3px, ridge, @main_colour); + .borders(2px, outset, @dk_main_colour); .rounded_corners; // .box_shadow(3px, 3px, 5px); margin: 3px 10px 7px 0; @@ -639,7 +639,7 @@ nav #nav-notifications-linkmenu { color: transparent; .rounded_corners; z-index: 100; - .box(300px, 60px); + .box(270px, 60px); } #nav-buttons { clear: both; @@ -702,7 +702,7 @@ nav #nav-notifications-linkmenu { #user-menu { .box_shadow(5px, 0, 10px, 0); display: block; - width: 75%; + width: 80%; margin: 3px 0 0 0; position: relative; .rounded_corners; @@ -872,7 +872,7 @@ nav #nav-notifications-linkmenu { #asidemain { float: left; font-size: small; - margin: 20px 0 20px 35px; + margin: 1em; width: 25%; display: inline; } @@ -1229,10 +1229,10 @@ nav #nav-notifications-linkmenu { * section */ #sectionmain { - margin: 20px; + margin: 1em; font-size: 0.8em; min-width: 475px; - width: 67%; + width: 69%; float: left; display: inline; } @@ -1348,7 +1348,7 @@ nav #nav-notifications-linkmenu { } .wall-item-info { float: left; - width: 8em; + width: 7em; position: relative; } .wall-item-photo-wrapper { @@ -1501,12 +1501,16 @@ nav #nav-notifications-linkmenu { width: 100%; } #connect-services-header, +#extra-help-header { + margin: 1.5em 0 0 0; +} #connect-services, -#extra-help-header, -#extra-help, -#postit-header, -#postit { - margin: 5px 0 0 0; +#extra-help { + .list_reset; + margin: 1em 0 0 0; + li { + display: inline; + } } @@ -1522,6 +1526,9 @@ nav #nav-notifications-linkmenu { } .wall-item-outside-wrapper.comment { margin-left: 5em; + .wall-item-info { + width: 5em; + } .wall-item-photo { width: 40px !important; height: 40px !important; @@ -1530,16 +1537,16 @@ nav #nav-notifications-linkmenu { .box(40px, 40px); } .wall-item-photo-menu-button { - width: 50px; - top: 45px; + width: 4,5em; + top: 4em; background-position: 35px center; } .wall-item-author { margin-left: 0.2em; } .wall-item-photo-menu { - min-width: 50px; - top: 60px; + min-width: 4.5em; + top: 5.5em; } } .comment-wwedit-wrapper { diff --git a/view/theme/dispy/dark/theme.php b/view/theme/dispy/dark/theme.php index e156b6a7d..f73a12765 100644 --- a/view/theme/dispy/dark/theme.php +++ b/view/theme/dispy/dark/theme.php @@ -3,7 +3,6 @@ /* * Name: Dispy Dark * Description: Dispy Dark: Dark, Spartan, Sleek, and Functional - * Version: 1.2.1 * Author: Simon <http://simon.kisikew.org/> * Maintainer: Simon <http://simon.kisikew.org/> * Screenshot: <a href="screenshot.jpg">Screenshot</a> @@ -13,7 +12,6 @@ $a = get_app(); $a->theme_info = array( 'family' => 'dispy', 'name' => 'dark', - 'version' => '1.2.1' ); function dispy_dark_init(&$a) { diff --git a/view/theme/dispy/light/_base.less b/view/theme/dispy/light/_base.less index 3046c1bac..c605dc702 100644 --- a/view/theme/dispy/light/_base.less +++ b/view/theme/dispy/light/_base.less @@ -24,8 +24,9 @@ @menu_bg_colour: #555753; //* font colour, aka color: */ -@lt_main_colour: #ffff99; +@lt_main_colour: lighten(@bg_colour, 10%); @main_colour: #111; +@dk_main_colour: darken(@bg_colour, 10%); @main_alt_colour: #999999; // darken(@main_alt_colour, 6.5%) > #888888 // //#9eabb0 @@ -55,9 +56,6 @@ @info: #364e59; @alert: #ff0000; -@lt_main_colour: lighten(@bg_colour, 10%); -@dk_main_colour: darken(@bg_colour, 10%); - //* links */ // yes our link colour is "friendica blue" ;) @link_colour: @friendica_blue; @@ -137,7 +135,19 @@ -webkit-text-overflow: @t; text-overflow: @t; } - +.lin_gradient(@x1: left, @x2: right, @y1: top, @y2: bottom, @c1: @bg_colour, @c2: @dk_bg_colour) { + // w3c + background: linear-gradient(@x1 @y2, @c1, @c2); + // webkit + // -webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*) + background: -webkit-gradient(linear, @x1 @y1, @x2 @y2, from(@c1), to(@c2)); + // mozilla + // -moz-linear-gradient([<point> || <angle>,]? <stop>, <stop> [, <stop>]) + background: -moz-linear-gradient(@x1 @y2, @c1, @c2); + // opera + //background: -o-linear-gradient([<point> || <angle>,]? <stop>, <stop> [, <stop>]); + background: -o-linear-gradient(@x1, @c1, @c2); +} //* pre wrap */ .wrap () { white-space: pre-wrap; diff --git a/view/theme/dispy/light/style.css b/view/theme/dispy/light/style.css index c9f7ef95a..e56696eab 100644 --- a/view/theme/dispy/light/style.css +++ b/view/theme/dispy/light/style.css @@ -58,7 +58,7 @@ h6{font-size:xx-small;} #articlemain{width:100%;height:100%;margin:0 auto;} .button{color:#111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding:5px;cursor:pointer;}.button a{color:#111111;font-weight:bold;} #profile-listing-desc a{color:#eeeeec;font-weight:bold;} -[class$="-desc"],[id$="-desc"]{color:#eeeeec;background:#2e3436;border:3px ridge #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:3px 10px 7px 0;padding:5px;font-weight:bold;font-size:smaller;} +[class$="-desc"],[id$="-desc"]{color:#eeeeec;background:#2e3436;border:2px outset #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:3px 10px 7px 0;padding:5px;font-weight:bold;font-size:smaller;} #item-delete-selected-desc{float:left;margin-right:5px;}#item-delete-selected-desc:hover{text-decoration:underline;} .intro-approve-as-friend-desc{margin-top:10px;} .intro-desc{margin-bottom:20px;font-weight:bold;} @@ -103,7 +103,7 @@ div.jGrowl div.info{background:#364e59 url("../../../images/icons/48/info.png") nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAQAAABuvaSwAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAUJcAAFCXAZtv64UAAAHuSURBVCjPbZPbTlNBFIYHLixXRIhEQGNRMUopJAJyAyZ4Z2l8B+XwEBqKtjwOp8oDIAJKIJFUjdFIQCUYrRytdyb0459ht8wG9rrYs9b618y/TsYEH4ZK4qRYYIdDybZOI7TKakIfVhrJ8J2i5IBNyV93/kaaBuv3oV3MgwCTPKGHPkkPA0xRUMBrOgN4AP0o6BseEpF2m3es0qJTFQneyvMhgDsC9tZprnEcGuOPeMcDLUpW3jlLxlDBmJTFY6gLvsVv8tyh9G7U3Z6mwtCuJAoiECSh/w1+8otmTjLqF2KDNsNzRY1bruV0o6rFFtc9S5USh5RRWvAYv4xX9dYPS8ur1oBQC4Y99m2uHriRNda5ErLdU1l3jCI2xdJ3XOYLX6kP2W6K2OF54Et84jN154F31d6ukKOG92pSbcjWLRrbRhVGLTZeOtXqX46LoQSHhJo3jOo3ESrdBQbljIRKNyXUiKHNNSXhTdbZiUzyT/WJ23Zn3BBFy+2u4ZHc1eV2N7EkxAvbbqMRmZOSlbE0g/uajRgl6Iy8r1wpnaFTQ4ji+8XOEsuxYmdDWpJleXJ0+BPdoduL4p5Vavd5IOllmJfiWmSWu6d3pV4jteFWqaAGbLkdKSqtUXXUnN3DSvF8phfy/JfkxfOp9sVb2COz+hY/T0qkwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMS0wOS0xNlQwOTozOTowMCswMjowMC9Oi90AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTEtMDktMTZUMDk6Mzk6MDArMDI6MDBeEzNhAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==");} .show{display:block;} #notifications{width:170px;height:20px;font-size:small;top:-19px;left:4px;position:absolute;} -#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#2e3436;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:300px;height:60px;} +#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#2e3436;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:270px;height:60px;} #nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;} .floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(light/icons.png) -190px -60px no-repeat;} .search-box{display:inline-block;margin:5px;position:fixed;right:0px;bottom:0px;z-index:100;background:#2e3436;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} @@ -111,7 +111,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #search-text{border:1px solid #999999;margin:5px 0;} #mini-search-text{font-size:8pt;height:14px;width:10em;margin:5px;} #scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;} -#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;} +#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:80%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;outline:0 none;} #user-menu-label{font-size:small;padding:3px 20px 9px 5px;height:10px;} .nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(light/notifications.png) 0 0 no-repeat;color:#111111;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;} .nav-ajax-update.show,.nav-ajax-left.show{visibility:visible;} @@ -133,7 +133,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;} #sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;} #sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #eeeeec;} -#asidemain{float:left;font-size:small;margin:20px 0 20px 35px;width:25%;display:inline;} +#asidemain{float:left;font-size:small;margin:1em;width:25%;display:inline;} #asideright,#asideleft{display:none;} .vcard .fn{font-size:1.5em;font-weight:bold;border-bottom:1px solid #284d7d;padding-bottom:3px;} .vcard #profile-photo-wrapper{margin:20px 0;background-color:#555753;padding:5px;width:175px;height:175px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;} @@ -187,7 +187,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm #jot-title-display{font-weight:bold;} .jothidden{display:none;} #jot-preview-content{background-color:#f2f2c3;color:#111111;border:1px solid #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0px #111111;-o-box-shadow:5px 0 10px 0px #111111;-webkit-box-shadow:5px 0 10px 0px #111111;-ms-box-shadow:5px 0 10px 0px #111111;box-shadow:5px 0 10px 0px #111111;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;-o-border-radius:0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;-moz-border-radius:0px 0px 0px 0px;-ms-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;} -#sectionmain{margin:20px;font-size:0.8em;min-width:475px;width:67%;float:left;display:inline;} +#sectionmain{margin:1em;font-size:0.8em;min-width:475px;width:69%;float:left;display:inline;} .tabs{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:10px 0;}.tabs li{display:inline;font-size:smaller;} .tab{border:1px solid #284d7d;padding:4px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.tab:active,.tab:hover{background:#f2f2c3;color:#111111;border:1px solid #284d7d;} .tab a{border:0;text-decoration:none;} @@ -203,7 +203,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm [id^="tread-wrapper"],[class^="tread-wrapper"]{margin:1.2em 0 0 0;padding:0px;} .wall-item-photo-menu{display:none;} .wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(light/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;width:90px;height:20px;top:85px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;} -.wall-item-info{float:left;width:8em;position:relative;} +.wall-item-info{float:left;width:7em;position:relative;} .wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} [class^="wall-item-tools"] *{}[class^="wall-item-tools"] *>*{} .wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 0.75s ease-in-out;-moz-transition:all 0.75s ease-in-out;-o-transition:all 0.75s ease-in-out;-ms-transition:all 0.75s ease-in-out;transition:all 0.75s ease-in-out;} @@ -223,14 +223,16 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm .wall-item-arrowphoto-wrapper{position:absolute;left:35px;top:80px;z-index:10002;} .wall-item-photo-menu{min-width:92px;font-size:0.75em;border:2px solid #555753;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-o-border-radius:0 5px 5px 5px;-webkit-border-radius:0 5px 5px 5px;-moz-border-radius:0 5px 5px 5px;-ms-border-radius:0 5px 5px 5px;border-radius:0 5px 5px 5px;}.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 6px;color:#eeeeec;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeec;} #item-delete-selected{overflow:auto;width:100%;} -#connect-services-header,#connect-services,#extra-help-header,#extra-help,#postit-header,#postit{margin:5px 0 0 0;} +#connect-services-header,#extra-help-header{margin:1.5em 0 0 0;} +#connect-services,#extra-help{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:1em 0 0 0;}#connect-services li,#extra-help li{display:inline;} .ccollapse-wrapper{font-size:0.9em;margin-left:5em;} .hide-comments-outer{font-size:small;} -.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} +.wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-info{width:5em;} +.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} .wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:50px;top:45px;background-position:35px center;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:4,5em;top:4em;background-position:35px center;} .wall-item-outside-wrapper.comment .wall-item-author{margin-left:0.2em;} -.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:50px;top:60px;} +.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:4.5em;top:5.5em;} .comment-wwedit-wrapper{border:1px solid #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:5px;} .comment-edit-wrapper{border-top:1px #aaa solid;} [class^="comment-edit-bb"]{margin:0px;padding:0px;list-style:none;list-style-position:inside;display:none;margin:-40px 0 5px 60px;width:75%;}[class^="comment-edit-bb"]>li{display:inline-block;margin:0 10px 0 0;visibility:none;} diff --git a/view/theme/dispy/light/style.less b/view/theme/dispy/light/style.less index 045dadba5..72b3069a6 100644 --- a/view/theme/dispy/light/style.less +++ b/view/theme/dispy/light/style.less @@ -316,7 +316,7 @@ h6 { [id$="-desc"] { color: @bg_colour; background: @dk_bg_colour; - .borders(3px, ridge, @main_colour); + .borders(2px, outset, @main_colour); .rounded_corners; // .box_shadow(3px, 3px, 5px); margin: 3px 10px 7px 0; @@ -640,7 +640,7 @@ nav #nav-notifications-linkmenu { color: transparent; .rounded_corners; z-index: 100; - .box(300px, 60px); + .box(270px, 60px); } #nav-buttons { clear: both; @@ -703,7 +703,7 @@ nav #nav-notifications-linkmenu { #user-menu { .box_shadow(5px, 0, 10px, 0); display: block; - width: 75%; + width: 80%; margin: 3px 0 0 0; position: relative; .rounded_corners; @@ -873,7 +873,7 @@ nav #nav-notifications-linkmenu { #asidemain { float: left; font-size: small; - margin: 20px 0 20px 35px; + margin: 1em; width: 25%; display: inline; } @@ -1230,10 +1230,10 @@ nav #nav-notifications-linkmenu { * section */ #sectionmain { - margin: 20px; + margin: 1em; font-size: 0.8em; min-width: 475px; - width: 67%; + width: 69%; float: left; display: inline; } @@ -1349,7 +1349,7 @@ nav #nav-notifications-linkmenu { } .wall-item-info { float: left; - width: 8em; + width: 7em; position: relative; } .wall-item-photo-wrapper { @@ -1502,12 +1502,16 @@ nav #nav-notifications-linkmenu { width: 100%; } #connect-services-header, +#extra-help-header { + margin: 1.5em 0 0 0; +} #connect-services, -#extra-help-header, -#extra-help, -#postit-header, -#postit { - margin: 5px 0 0 0; +#extra-help { + .list_reset; + margin: 1em 0 0 0; + li { + display: inline; + } } @@ -1523,6 +1527,9 @@ nav #nav-notifications-linkmenu { } .wall-item-outside-wrapper.comment { margin-left: 5em; + .wall-item-info { + width: 5em; + } .wall-item-photo { width: 40px !important; height: 40px !important; @@ -1531,16 +1538,16 @@ nav #nav-notifications-linkmenu { .box(40px, 40px); } .wall-item-photo-menu-button { - width: 50px; - top: 45px; + width: 4,5em; + top: 4em; background-position: 35px center; } .wall-item-author { margin-left: 0.2em; } .wall-item-photo-menu { - min-width: 50px; - top: 60px; + min-width: 4.5em; + top: 5.5em; } } .comment-wwedit-wrapper { diff --git a/view/theme/dispy/light/theme.php b/view/theme/dispy/light/theme.php index df3cca042..94a699b70 100644 --- a/view/theme/dispy/light/theme.php +++ b/view/theme/dispy/light/theme.php @@ -3,7 +3,6 @@ /* * Name: Dispy Light * Description: Dispy Light: Light, Spartan, Sleek, and Functional - * Version: 1.2.1 * Author: Simon <http://simon.kisikew.org/> * Maintainer: Simon <http://simon.kisikew.org/> * Screenshot: <a href="screenshot.jpg">Screenshot</a> @@ -13,7 +12,6 @@ $a = get_app(); $a->theme_info = array( 'family' => 'dispy', 'name' => 'light', - 'version' => '1.2.1' ); function dispy_light_init(&$a) { diff --git a/view/theme/dispy/style.php b/view/theme/dispy/style.php index f666e2768..375651425 100644 --- a/view/theme/dispy/style.php +++ b/view/theme/dispy/style.php @@ -13,238 +13,94 @@ $colour = get_pconfig(local_user(), "dispy", "colour"); } - if ($line_height === false) { $line_height = $site_line_height; } - if ($line_height === false) { $line_height = "1.2"; } - if ($dispy_font_size === false) { $dispy_font_size = $site_dispy_font_size; } - if ($dispy_font_size === false) { $dispy_font_size = "12"; } - if ($colour === false) { $colour = $site_colour; } - if ($colour === false) { $colour = "light"; } + if ($line_height === false) { + $line_height = $site_line_height; + } + if ($line_height === false) { + $line_height = "1.2"; + } + if ($dispy_font_size === false) { + $dispy_font_size = $site_dispy_font_size; + } + if ($dispy_font_size === false) { + $dispy_font_size = "12"; + } + if ($colour === false) { + $colour = $site_colour; + } + if ($colour === false) { + $colour = "light"; + } if($colour == "light") { if (file_exists("$THEMEPATH/light/style.css")) { echo file_get_contents("$THEMEPATH/light/style.css"); } - if($dispy_font_size == "16") { - echo " - .wall-item-container .wall-item-content { - font-size: 16px; - } - .wall-item-photo-container .wall-item-content { - font-size: 16px; - }"; - } - if($dispy_font_size == "15") { - echo " - .wall-item-container .wall-item-content { - font-size: 15px; - } - .wall-item-photo-container .wall-item-content { - font-size: 15px; - }"; - } - if($dispy_font_size == "14") { - echo " - .wall-item-container .wall-item-content { - font-size: 14px; - } - .wall-item-photo-container .wall-item-content { - font-size: 14px; - }"; - } - if($dispy_font_size == "13.5") { - echo " - .wall-item-container .wall-item-content { - font-size: 13.5px; - } - .wall-item-photo-container .wall-item-content { - font-size: 13.5px; - }"; - } - if($dispy_font_size == "13") { - echo " - .wall-item-container .wall-item-content { - font-size: 13px; - } - .wall-item-photo-container .wall-item-content { - font-size: 13px; - }"; - } - if($dispy_font_size == "12.5") { - echo " - .wall-item-container .wall-item-content { - font-size: 12.5px; - } - .wall-item-photo-container .wall-item-content { - font-size: 12.5px; - }"; - } - if($dispy_font_size == "12") { - echo " - .wall-item-container .wall-item-content { - font-size: 12px; - } - .wall-item-photo-container .wall-item-content { - font-size: 12px; - }"; - } - if($line_height == "1.5") { - echo " - .wall-item-container .wall-item-content { - line-height: 1.5; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.5; - }"; - } - if($line_height == "1.4") { - echo " - .wall-item-container .wall-item-content { - line-height: 1.4; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.4; - }"; - } - if($line_height == "1.3") { - echo " - .wall-item-container .wall-item-content { - line-height: 1.3; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.3; - }"; - } - if($line_height == "1.2") { - echo " - .wall-item-container .wall-item-content { - line-height: 1.2; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.2; - }"; - } - if($line_height == "1.1") { - echo " - .wall-item-container .wall-item-content { - line-height: 1.1; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.1; - }"; - } } if($colour == "dark") { if (file_exists("$THEMEPATH/dark/style.css")) { echo file_get_contents("$THEMEPATH/dark/style.css"); } - if($dispy_font_size == "16") { - echo " - .wall-item-container .wall-item-content { - font-size: 16px; - } - .wall-item-photo-container .wall-item-content { - font-size: 16px; - }"; - } - if($dispy_font_size == "15") { - echo " - .wall-item-container .wall-item-content { - font-size: 15px; - } - .wall-item-photo-container .wall-item-content { - font-size: 15px; - }"; - } - if($dispy_font_size == "14") { - echo " - .wall-item-container .wall-item-content { - font-size: 14px; - } - .wall-item-photo-container .wall-item-content { - font-size: 14px; - }"; - } - if($dispy_font_size == "13.5") { - echo " - .wall-item-container .wall-item-content { - font-size: 13.5px; - } - .wall-item-photo-container .wall-item-content { - font-size: 13.5px; - }"; - } - if($dispy_font_size == "13") { - echo " - .wall-item-container .wall-item-content { - font-size: 13px; - } - .wall-item-photo-container .wall-item-content { - font-size: 13px; - }"; - } - if($dispy_font_size == "12.5") { - echo " - .wall-item-container .wall-item-content { - font-size: 12.5px; - } - .wall-item-photo-container .wall-item-content { - font-size: 12.5px; - }"; - } - if($dispy_font_size == "12") { - echo " - .wall-item-container .wall-item-content { - font-size: 12px; - } - .wall-item-photo-container .wall-item-content { - font-size: 12px; - }"; - } - if($line_height == "1.5") { - echo " - .wall-item-container .wall-item-content { - line-height: 1.5; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.5; - }"; - } - if($line_height == "1.4"){ - echo " - .wall-item-container .wall-item-content { - line-height: 1.4; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.4; - }"; - } - if($line_height == "1.3") { - echo " - .wall-item-container .wall-item-content { - line-height: 1.3; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.3; - }"; - } - if($line_height == "1.2") { - echo " - .wall-item-container .wall-item-content { - line-height: 1.2; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.2; - }"; - } - if($line_height == "1.1") { - echo " - .wall-item-container .wall-item-content { - line-height: 1.1; - } - .wall-item-photo-container .wall-item-content { - line-height: 1.1; - }"; - } - } + } + if($dispy_font_size == "16") { + echo ".wall-item-content { + font-size: 16px; + }"; + } + if($dispy_font_size == "15") { + echo ".wall-item-content { + font-size: 15px; + }"; + } + if($dispy_font_size == "14") { + echo ".wall-item-content { + font-size: 14px; + }"; + } + if($dispy_font_size == "13.5") { + echo ".wall-item-content { + font-size: 13.5px; + }"; + } + if($dispy_font_size == "13") { + echo ".wall-item-content { + font-size: 13px; + }"; + } + if($dispy_font_size == "12.5") { + echo ".wall-item-content { + font-size: 12.5px; + }"; + } + if($dispy_font_size == "12") { + echo ".wall-item-content { + font-size: 12px; + }"; + } + if($line_height == "1.5") { + echo ".wall-item-content { + line-height: 1.5; + }"; + } + if($line_height == "1.4") { + echo ".wall-item-content { + line-height: 1.4; + }"; + } + if($line_height == "1.3") { + echo ".wall-item-content { + line-height: 1.3; + }"; + } + if($line_height == "1.2") { + echo ".wall-item-content { + line-height: 1.2; + }"; + } + if($line_height == "1.1") { + echo ".wall-item-content { + line-height: 1.1; + }"; + } diff --git a/view/theme/dispy/theme.php b/view/theme/dispy/theme.php index deedc86f7..2d423a928 100644 --- a/view/theme/dispy/theme.php +++ b/view/theme/dispy/theme.php @@ -20,7 +20,7 @@ $a = get_app(); $a->theme_info = array( 'family' => 'dispy', - 'version' => '1.2' + 'version' => '1.2.2' ); function dispy_init(&$a) { diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index 0abf128a3..5854ccc02 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -80,6 +80,7 @@ blockquote { .heart { color: #FF0000; font-size: 100%; + margin-right: 5px; } @@ -338,6 +339,15 @@ div.wall-item-content-wrapper.shiny { font-weight: bold; } +.settings-widget .selected { + padding: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + border: 1px solid #CCCCCC; + background: #F8F8F8; + font-weight: bold; +} + .fakelink:hover { color: #3465a4; text-decoration: underline; @@ -707,7 +717,17 @@ input#dfrn-url { #settings-community { float: left; } - +#settings-notifications label { + margin-left: 20px; +} +#settings-notify-desc, #settings-activity-desc { + font-weight: bold; + margin-bottom: 15px; +} +#settings-pagetype-desc { + color: #666666; + margin-bottom: 15px; +} #profile-in-dir-yes-label, #profile-in-dir-no-label, @@ -809,8 +829,15 @@ input#dfrn-url { clear: both; } +.settings-widget ul { + list-style-type: none; + padding: 0px; +} - +.settings-widget li { + margin-left: 24px; + margin-bottom: 8px; +} #gender-select, #marital-select, #sexual-select { diff --git a/view/theme/slackr/events_reminder.tpl b/view/theme/slackr/events_reminder.tpl index fc13fa68b..99407fc3e 100644 --- a/view/theme/slackr/events_reminder.tpl +++ b/view/theme/slackr/events_reminder.tpl @@ -26,7 +26,7 @@ center: '', right: '' }, - timeFormat: 'H(:mm)', + timeFormat: 'HH(:mm)', defaultView: 'basicWeek', height: 50, eventClick: function(calEvent, jsEvent, view) { diff --git a/view/theme/slackr/style.css b/view/theme/slackr/style.css index 82ba795cd..39da7bb6c 100644 --- a/view/theme/slackr/style.css +++ b/view/theme/slackr/style.css @@ -43,7 +43,7 @@ nav #site-location { #profile-jot-text_parent, .mceLayout { border-radius: 3px; -moz-border-radius: 3px; - box-shadow: 3px 3px 10px 0 #000000; + box-shadow: 4px 4px 3px 0 #444444; } #profile-jot-text:hover { @@ -66,24 +66,34 @@ nav #site-location { .wall-item-photo, .photo, .contact-block-img, .my-comment-photo { border-radius: 3px; -moz-border-radius: 3px; - box-shadow: 3px 3px 10px 0 #000000; + box-shadow: 4px 4px 3px 0 #444444; } #sidebar-page-list img { border-radius: 3px; -moz-border-radius: 3px; - box-shadow: 3px 3px 10px -2px #000000; + box-shadow: 4px 4px 3px 0 #444444; } .contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .fc, .profile-jot-text, .group-selected, .nets-selected, .fileas-selected, #profile-jot-submit, .categories-selected { border-radius: 3px; -moz-border-radius: 3px; - box-shadow: 3px 3px 10px 0 #000000; + box-shadow: 4px 4px 3px 0 #444444; +} +.settings-widget .selected { + border-radius: 3px; + -moz-border-radius: 3px; + box-shadow: 4px 4px 3px 0 #444444; +} + +.photo { + border: 1px solid #AAAAAA; } .photo-top-photo, .photo-album-photo { padding: 10px; max-width: 300px; + border: 1px solid #888888; } .rotleft1 { |