Merge branch 'master' of https://github.com/friendica/friendica into threaded_items

Conflicts:
	include/conversation.php
This commit is contained in:
Domovoy 2012-09-10 09:19:08 +02:00
commit bb68461c6d
123 changed files with 9903 additions and 2946 deletions

2
.gitignore vendored
View File

@ -21,3 +21,5 @@ report/
.buildpath
.externalToolBuilders
.settings
view/theme/smoothly

View File

@ -15,6 +15,16 @@ Deny from all
# Also place auth information into REMOTE_USER for sites running
# in CGI mode.
# If you have troubles or use VirtualDocumentRoot
# uncomment this and set it to the path where your friendica installation is
# i.e.:
# Friendica url: http://some.example.com
# RewriteBase /
# Friendica url: http://some.example.com/friendica
# RewriteBase /friendica/
#
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]

View File

@ -11,7 +11,7 @@ require_once('include/cache.php');
require_once('library/Mobile_Detect/Mobile_Detect.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '3.0.1449' );
define ( 'FRIENDICA_VERSION', '3.0.1461' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1154 );
@ -472,6 +472,7 @@ if(! class_exists('App')) {
$this->argc = count($this->argv);
if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) {
$this->module = str_replace(".", "_", $this->argv[0]);
$this->module = str_replace("-", "_", $this->module);
}
else {
$this->argc = 1;
@ -479,16 +480,6 @@ if(! class_exists('App')) {
$this->module = 'home';
}
/**
* Special handling for the webfinger/lrdd host XRD file
*/
if($this->cmd === '.well-known/host-meta') {
$this->argc = 1;
$this->argv = array('hostxrd');
$this->module = 'hostxrd';
}
/**
* See if there is any page number information, and initialise
* pagination
@ -1034,11 +1025,29 @@ if(! function_exists('get_max_import_size')) {
if(! function_exists('profile_load')) {
function profile_load(&$a, $nickname, $profile = 0) {
if(remote_user()) {
$user = q("select uid from user where nickname = '%s' limit 1",
dbesc($nickname)
);
if(! ($user && count($user))) {
logger('profile error: ' . $a->query_string, LOGGER_DEBUG);
notice( t('Requested account is not available.') . EOL );
$a->error = 404;
return;
}
if(remote_user() && count($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $user[0]['uid']) {
$r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
intval($_SESSION['visitor_id']));
intval($visitor['cid'])
);
if(count($r))
$profile = $r[0]['profile-id'];
break;
}
}
}
$r = null;
@ -1079,9 +1088,12 @@ if(! function_exists('profile_load')) {
$a->profile = $r[0];
$a->profile['mobile-theme'] = get_pconfig($profile_uid, 'system', 'mobile_theme');
$a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
$_SESSION['theme'] = $a->profile['theme'];
$_SESSION['mobile-theme'] = $a->profile['mobile-theme'];
/**
* load/reload current theme info
@ -1153,8 +1165,14 @@ if(! function_exists('profile_sidebar')) {
// don't show connect link to authenticated visitors either
if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid']))
$connect = False;
if(remote_user() && count($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $profile['uid']) {
$connect = false;
break;
}
}
}
if(get_my_url() && $profile['unkmail'])
$wallmessage = t('Message');
@ -1477,7 +1495,7 @@ if(! function_exists('proc_run')) {
$cmdline = implode($args," ");
if(get_config('system','proc_windows'))
proc_close(proc_open('start /b ' . $cmdline,array(),$foo));
proc_close(proc_open('cmd /c start /b ' . $cmdline,array(),$foo));
else
proc_close(proc_open($cmdline." &",array(),$foo));
}
@ -1495,6 +1513,12 @@ if(! function_exists('current_theme')) {
if($is_mobile) {
$system_theme = ((isset($a->config['system']['mobile-theme'])) ? $a->config['system']['mobile-theme'] : '');
$theme_name = ((isset($_SESSION) && x($_SESSION,'mobile-theme')) ? $_SESSION['mobile-theme'] : $system_theme);
if($theme_name === '---') {
// user has selected to have the mobile theme be the same as the normal one
$system_theme = '';
$theme_name = '';
}
}
if(!$is_mobile || ($system_theme === '' && $theme_name === '')) {
$system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');

View File

@ -295,7 +295,11 @@ class Photo {
if( (! function_exists('exif_read_data')) || ($this->getType() !== 'image/jpeg') )
return;
$exif = exif_read_data($filename);
$exif = @exif_read_data($filename);
if(! $exif)
return;
$ort = $exif['Orientation'];
switch($ort)

View File

@ -563,9 +563,10 @@ function probe_url($url, $mode = PROBE_NORMAL) {
else
$poll = $tapi . '?screen_name=' . $tid;
$profile = 'http://twitter.com/#!/' . $tid;
$vcard['photo'] = 'https://api.twitter.com/1/users/profile_image/' . $tid;
//$vcard['photo'] = 'https://api.twitter.com/1/users/profile_image/' . $tid;
$vcard['photo'] = 'https://api.twitter.com/1/users/profile_image?screen_name=' . $tid . '&size=bigger';
$vcard['nick'] = $tid;
$vcard['fn'] = $tid . '@twitter';
$vcard['fn'] = $tid;
}
if($lastfm) {

View File

@ -10,14 +10,13 @@ function nuke_session() {
unset($_SESSION['administrator']);
unset($_SESSION['cid']);
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
unset($_SESSION['page_flags']);
unset($_SESSION['submanage']);
unset($_SESSION['my_url']);
unset($_SESSION['my_address']);
unset($_SESSION['addr']);
unset($_SESSION['return_url']);
unset($_SESSION['theme']);
unset($_SESSION['page_flags']);
}

View File

@ -68,7 +68,7 @@ function get_config($family, $key, $instore = false) {
);
if(count($ret)) {
// manage array value
$val = (preg_match("|^a:[0-9]+:{.*}$|", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$a->config[$family][$key] = $val;
return $val;
}
@ -162,7 +162,7 @@ function get_pconfig($uid,$family, $key, $instore = false) {
);
if(count($ret)) {
$val = (preg_match("|^a:[0-9]+:{.*}$|", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$val = (preg_match("|^a:[0-9]+:{.*}$|s", $ret[0]['v'])?unserialize( $ret[0]['v']):$ret[0]['v']);
$a->config[$uid][$family][$key] = $val;
return $val;
}

View File

@ -142,9 +142,16 @@ function common_friends_visitor_widget($profile_uid) {
$cid = $zcid = 0;
if(can_write_wall($a,$profile_uid))
$cid = remote_user();
else {
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $profile_uid) {
$cid = $visitor['cid'];
break;
}
}
}
if(! $cid) {
if(get_my_url()) {
$r = q("select id from contact where nurl = '%s' and uid = %d limit 1",
dbesc(normalise_link(get_my_url())),

View File

@ -346,7 +346,7 @@ function count_descendants($item) {
* Recursively prepare a thread for HTML
*/
function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $profile_owner, $alike, $dlike, $thread_level=1) {
function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $profile_owner, $alike, $dlike, $previewing, $thread_level=1) {
$result = array();
$wall_template = 'wall_thread.tpl';
@ -394,12 +394,34 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
$thumb = $item['thumb'];
$indent = '';
$osparkle = '';
$visiting = false;
$lastcollapsed = false;
$firstcollapsed = false;
$total_children += count_descendants($item);
$toplevelpost = (($item['id'] == $item['parent']) ? true : false);
if($item['uid'] == local_user())
$dropping = true;
elseif(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['cid'] == $item['contact-id']) {
$dropping = true;
$visiting = true;
break;
}
}
}
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
// This will allow us to comment on wall-to-wall items owned by our friends
// and community forums even if somebody else wrote the post.
if($visiting && $mode == 'profile')
$item_writeable = true;
$show_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false);
$lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid'])
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
@ -411,8 +433,6 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
$edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit"));
else
$edpost = false;
if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user()))
$dropping = true;
$drop = array(
'dropping' => $dropping,
@ -651,7 +671,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
$item_result['children'] = array();
if(count($item['children'])) {
$item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner, $alike, $dlike, ($thread_level + 1));
$item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner, $alike, $dlike, $previewing, ($thread_level + 1));
}
$item_result['private'] = $item['private'];
$item_result['toplevel'] = ($toplevelpost ? 'toplevel_item' : '');

View File

@ -78,7 +78,7 @@ class dba {
$this->error = '';
if ($a->config["system"]["db_log"] != "")
if(x($a->config,'system') && x($a->config['system'],'db_log'))
$stamp1 = microtime(true);
if($this->mysqli)
@ -86,7 +86,7 @@ class dba {
else
$result = @mysql_query($sql,$this->db);
if ($a->config["system"]["db_log"] != "") {
if(x($a->config,'system') && x($a->config['system'],'db_log')) {
$stamp2 = microtime(true);
$duration = round($stamp2-$stamp1, 3);
if ($duration > $a->config["system"]["db_loglimit"]) {

View File

@ -328,8 +328,9 @@ function delivery_run($argv, $argc){
dbesc($nickname)
);
if(count($x)) {
if($owner['page-flags'] == PAGE_COMMUNITY && ! $x[0]['writable']) {
if($x && count($x)) {
$write_flag = ((($x[0]['rel']) && ($x[0]['rel'] != CONTACT_IS_SHARING)) ? true : false);
if((($owner['page-flags'] == PAGE_COMMUNITY) || ($write_flag)) && (! $x[0]['writable'])) {
q("update contact set writable = 1 where id = %d limit 1",
intval($x[0]['id'])
);

View File

@ -2122,8 +2122,11 @@ function local_delivery($importer,$data) {
$rawtags = $feed->get_feed_tags( NAMESPACE_DFRN, 'owner');
if(! $rawtags)
$rawtags = $feed->get_feed_tags( SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
// Fallback should not be needed here. If it isn't DFRN it won't have DFRN updated tags
// if(! $rawtags)
// $rawtags = $feed->get_feed_tags( SIMPLEPIE_NAMESPACE_ATOM_10, 'author');
if($rawtags) {
$elems = $rawtags[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_10];
if($elems['name'][0]['attribs'][NAMESPACE_DFRN]['updated']) {
@ -3712,9 +3715,21 @@ function drop_item($id,$interactive = true) {
$owner = $item['uid'];
$cid = 0;
// check if logged in user is either the author or owner of this item
if((local_user() == $item['uid']) || (remote_user() == $item['contact-id']) || (! $interactive)) {
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $item['uid'] && $visitor['cid'] == $item['contact-id']) {
$cid = $visitor['cid'];
break;
}
}
}
if((local_user() == $item['uid']) || ($cid) || (! $interactive)) {
logger('delete item: ' . $item['id'], LOGGER_DEBUG);
// delete the item

View File

@ -295,7 +295,7 @@ function notifier_run($argv, $argc){
// a delivery fork. private groups (forum_mode == 2) do not uplink
if((intval($parent['forum_mode']) == 1) && (! $top_level) && ($cmd !== 'uplink')) {
proc_run('php','include/notifier','uplink',$item_id);
proc_run('php','include/notifier.php','uplink',$item_id);
}
$conversants = array();
@ -580,9 +580,9 @@ function notifier_run($argv, $argc){
dbesc($nickname)
);
if(count($x)) {
if($owner['page-flags'] == PAGE_COMMUNITY && ! $x[0]['writable']) {
if($x && count($x)) {
$write_flag = ((($x[0]['rel']) && ($x[0]['rel'] != CONTACT_IS_SHARING)) ? true : false);
if((($owner['page-flags'] == PAGE_COMMUNITY) || ($write_flag)) && (! $x[0]['writable'])) {
q("update contact set writable = 1 where id = %d limit 1",
intval($x[0]['id'])
);

View File

@ -145,6 +145,7 @@ class FKOAuth1 extends OAuthServer {
}
$_SESSION['uid'] = $record['uid'];
$_SESSION['theme'] = $record['theme'];
$_SESSION['mobile-theme'] = get_pconfig($record['uid'], 'system', 'mobile_theme');
$_SESSION['authenticated'] = 1;
$_SESSION['page_flags'] = $record['page-flags'];
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $record['nickname'];

View File

@ -9,6 +9,9 @@ function uninstall_plugin($plugin){
dbesc($plugin)
);
// define THISPLUGIN, make life easy to plugin devs :-)
define("THISPLUGIN", 'addon/' . $plugin . '/' . $plugin . '.php');
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_uninstall')) {
$func = $plugin . '_uninstall';
@ -18,9 +21,11 @@ function uninstall_plugin($plugin){
if (! function_exists('install_plugin')){
function install_plugin($plugin) {
// silently fail if plugin was removed
// define THISPLUGIN, make life easy to plugin devs :-)
define("THISPLUGIN", 'addon/' . $plugin . '/' . $plugin . '.php');
if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php'))
return false;
logger("Addons: installing " . $plugin);
@ -78,6 +83,9 @@ function reload_plugins() {
$fname = 'addon/' . $pl . '/' . $pl . '.php';
// define THISPLUGIN, make life easy to plugin devs :-)
define("THISPLUGIN", $fname);
if(file_exists($fname)) {
$t = @filemtime($fname);
foreach($installed as $i) {
@ -163,6 +171,8 @@ function call_hooks($name, &$data = null) {
if((is_array($a->hooks)) && (array_key_exists($name,$a->hooks))) {
foreach($a->hooks[$name] as $hook) {
// define THISPLUGIN, make life easy to plugin devs :-)
define("THISPLUGIN", $hook[0]);
@include_once($hook[0]);
if(function_exists($hook[1])) {
$func = $hook[1];

View File

@ -6,6 +6,7 @@ function authenticate_success($user_record, $login_initial = false, $interactive
$_SESSION['uid'] = $user_record['uid'];
$_SESSION['theme'] = $user_record['theme'];
$_SESSION['mobile-theme'] = get_pconfig($user_record['uid'], 'system', 'mobile_theme');
$_SESSION['authenticated'] = 1;
$_SESSION['page_flags'] = $user_record['page-flags'];
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $user_record['nickname'];
@ -120,12 +121,26 @@ function can_write_wall(&$a,$owner) {
elseif($verified === 1)
return false;
else {
$cid = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $visitor) {
if($visitor['uid'] == $owner) {
$cid = $visitor['cid'];
break;
}
}
}
if(! $cid)
return false;
$r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `user`.`uid` = `contact`.`uid`
WHERE `contact`.`uid` = %d AND `contact`.`id` = %d AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND `user`.`blockwall` = 0 AND `readonly` = 0 AND ( `contact`.`rel` IN ( %d , %d ) OR `user`.`page-flags` = %d ) LIMIT 1",
intval($owner),
intval(remote_user()),
intval($cid),
intval(CONTACT_IS_SHARING),
intval(CONTACT_IS_FRIEND),
intval(PAGE_COMMUNITY)

View File

@ -1005,7 +1005,7 @@ function prepare_body($item,$attach = false) {
}
$title = ((strlen(trim($mtch[4]))) ? escape_tags(trim($mtch[4])) : escape_tags($mtch[1]));
$title .= ' ' . $mtch[2] . ' ' . t('bytes');
if((local_user() == $item['uid']) && $item['contact-id'] != $a->contact['id'])
if((local_user() == $item['uid']) && ($item['contact-id'] != $a->contact['id']) && ($item['network'] == NETWORK_DFRN))
$the_url = $a->get_baseurl() . '/redir/' . $item['contact-id'] . '?f=1&url=' . $mtch[1];
else
$the_url = $mtch[1];

View File

@ -17,7 +17,7 @@ var gArCountryInfo;
var gArStateInfo;
// NOTE:
// Some editors may exhibit problems viewing 2803 characters...
var sCountryString = "|Afghanistan|Albania|Algeria|American Samoa|Angola|Anguilla|Antartica|Antigua and Barbuda|Argentina|Armenia|Aruba|Ashmore and Cartier Island|Australia|Austria|Azerbaijan|Bahamas|Bahrain|Bangladesh|Barbados|Belarus|Belgium|Belize|Benin|Bermuda|Bhutan|Bolivia|Bosnia and Herzegovina|Botswana|Brazil|British Virgin Islands|Brunei|Bulgaria|Burkina Faso|Burma|Burundi|Cambodia|Cameroon|Canada|Cape Verde|Cayman Islands|Central African Republic|Chad|Chile|China|Christmas Island|Clipperton Island|Cocos (Keeling) Islands|Colombia|Comoros|Congo, Democratic Republic of the|Congo, Republic of the|Cook Islands|Costa Rica|Cote d'Ivoire|Croatia|Cuba|Cyprus|Czech Republic|Denmark|Djibouti|Dominica|Dominican Republic|Ecuador|Egypt|El Salvador|Equatorial Guinea|Eritrea|Estonia|Ethiopia|Europa Island|Falkland Islands (Islas Malvinas)|Faroe Islands|Fiji|Finland|France|French Guiana|French Polynesia|French Southern and Antarctic Lands|Gabon|Gambia, The|Gaza Strip|Georgia|Germany|Ghana|Gibraltar|Glorioso Islands|Greece|Greenland|Grenada|Guadeloupe|Guam|Guatemala|Guernsey|Guinea|Guinea-Bissau|Guyana|Haiti|Heard Island and McDonald Islands|Holy See (Vatican City)|Honduras|Hong Kong|Howland Island|Hungary|Iceland|India|Indonesia|Iran|Iraq|Ireland|Ireland, Northern|Israel|Italy|Jamaica|Jan Mayen|Japan|Jarvis Island|Jersey|Johnston Atoll|Jordan|Juan de Nova Island|Kazakhstan|Kenya|Kiribati|Korea, North|Korea, South|Kuwait|Kyrgyzstan|Laos|Latvia|Lebanon|Lesotho|Liberia|Libya|Liechtenstein|Lithuania|Luxembourg|Macau|Macedonia, Former Yugoslav Republic of|Madagascar|Malawi|Malaysia|Maldives|Mali|Malta|Man, Isle of|Marshall Islands|Martinique|Mauritania|Mauritius|Mayotte|Mexico|Micronesia, Federated States of|Midway Islands|Moldova|Monaco|Mongolia|Montserrat|Morocco|Mozambique|Namibia|Nauru|Nepal|Netherlands|Netherlands Antilles|New Caledonia|New Zealand|Nicaragua|Niger|Nigeria|Niue|Norfolk Island|Northern Mariana Islands|Norway|Oman|Pakistan|Palau|Panama|Papua New Guinea|Paraguay|Peru|Philippines|Pitcaim Islands|Poland|Portugal|Puerto Rico|Qatar|Reunion|Romainia|Russia|Rwanda|Saint Helena|Saint Kitts and Nevis|Saint Lucia|Saint Pierre and Miquelon|Saint Vincent and the Grenadines|Samoa|San Marino|Sao Tome and Principe|Saudi Arabia|Scotland|Senegal|Seychelles|Sierra Leone|Singapore|Slovakia|Slovenia|Solomon Islands|Somalia|South Africa|South Georgia and South Sandwich Islands|Spain|Spratly Islands|Sri Lanka|Sudan|Suriname|Svalbard|Swaziland|Sweden|Switzerland|Syria|Taiwan|Tajikistan|Tanzania|Thailand|Tobago|Toga|Tokelau|Tonga|Trinidad|Tunisia|Turkey|Turkmenistan|Tuvalu|Uganda|Ukraine|United Arab Emirates|United Kingdom|Uruguay|USA|Uzbekistan|Vanuatu|Venezuela|Vietnam|Virgin Islands|Wales|Wallis and Futuna|West Bank|Western Sahara|Yemen|Yugoslavia|Zambia|Zimbabwe|Friendicaland"
var sCountryString = "|Afghanistan|Albania|Algeria|American Samoa|Angola|Anguilla|Antartica|Antigua and Barbuda|Argentina|Armenia|Aruba|Ashmore and Cartier Island|Australia|Austria|Azerbaijan|Bahamas|Bahrain|Bangladesh|Barbados|Belarus|Belgium|Belize|Benin|Bermuda|Bhutan|Bolivia|Bosnia and Herzegovina|Botswana|Brazil|British Virgin Islands|Brunei|Bulgaria|Burkina Faso|Burma|Burundi|Cambodia|Cameroon|Canada|Cape Verde|Cayman Islands|Central African Republic|Chad|Chile|China|Christmas Island|Clipperton Island|Cocos (Keeling) Islands|Colombia|Comoros|Congo, Democratic Republic of the|Congo, Republic of the|Cook Islands|Costa Rica|Cote d'Ivoire|Croatia|Cuba|Cyprus|Czech Republic|Denmark|Djibouti|Dominica|Dominican Republic|Ecuador|Egypt|El Salvador|Equatorial Guinea|Eritrea|Estonia|Ethiopia|Europa Island|Falkland Islands (Islas Malvinas)|Faroe Islands|Fiji|Finland|France|French Guiana|French Polynesia|French Southern and Antarctic Lands|Gabon|Gambia, The|Gaza Strip|Georgia|Germany|Ghana|Gibraltar|Glorioso Islands|Greece|Greenland|Grenada|Guadeloupe|Guam|Guatemala|Guernsey|Guinea|Guinea-Bissau|Guyana|Haiti|Heard Island and McDonald Islands|Holy See (Vatican City)|Honduras|Hong Kong|Howland Island|Hungary|Iceland|India|Indonesia|Iran|Iraq|Ireland|Ireland, Northern|Israel|Italy|Jamaica|Jan Mayen|Japan|Jarvis Island|Jersey|Johnston Atoll|Jordan|Juan de Nova Island|Kazakhstan|Kenya|Kiribati|Korea, North|Korea, South|Kuwait|Kyrgyzstan|Laos|Latvia|Lebanon|Lesotho|Liberia|Libya|Liechtenstein|Lithuania|Luxembourg|Macau|Macedonia, Former Yugoslav Republic of|Madagascar|Malawi|Malaysia|Maldives|Mali|Malta|Man, Isle of|Marshall Islands|Martinique|Mauritania|Mauritius|Mayotte|Mexico|Micronesia, Federated States of|Midway Islands|Moldova|Monaco|Mongolia|Montserrat|Morocco|Mozambique|Namibia|Nauru|Nepal|Netherlands|Netherlands Antilles|New Caledonia|New Zealand|Nicaragua|Niger|Nigeria|Niue|Norfolk Island|Northern Mariana Islands|Norway|Oman|Pakistan|Palau|Panama|Papua New Guinea|Paraguay|Peru|Philippines|Pitcaim Islands|Poland|Portugal|Puerto Rico|Qatar|Reunion|Romania|Russia|Rwanda|Saint Helena|Saint Kitts and Nevis|Saint Lucia|Saint Pierre and Miquelon|Saint Vincent and the Grenadines|Samoa|San Marino|Sao Tome and Principe|Saudi Arabia|Scotland|Senegal|Seychelles|Sierra Leone|Singapore|Slovakia|Slovenia|Solomon Islands|Somalia|South Africa|South Georgia and South Sandwich Islands|Spain|Spratly Islands|Sri Lanka|Sudan|Suriname|Svalbard|Swaziland|Sweden|Switzerland|Syria|Taiwan|Tajikistan|Tanzania|Thailand|Tobago|Toga|Tokelau|Tonga|Trinidad|Tunisia|Turkey|Turkmenistan|Tuvalu|Uganda|Ukraine|United Arab Emirates|United Kingdom|Uruguay|USA|Uzbekistan|Vanuatu|Venezuela|Vietnam|Virgin Islands|Wales|Wallis and Futuna|West Bank|Western Sahara|Yemen|Yugoslavia|Zambia|Zimbabwe|Friendicaland"
var aStates = new Array();
aStates[0]="";

14
mod/_well_known.php Normal file
View File

@ -0,0 +1,14 @@
<?php
require_once("hostxrd.php");
function _well_known_init(&$a){
if ($a->argc > 1) {
switch($a->argv[1]) {
case "host-meta":
hostxrd_init($a);
break;
}
}
http_status_exit(404);
killme();
}

View File

@ -399,15 +399,17 @@ function admin_page_site(&$a) {
/* Installed themes */
$theme_choices = array();
$theme_choices_mobile = array();
$theme_choices_mobile["---"] = t("Don't apply a special theme for mobile devices.");
$theme_choices_mobile["---"] = t("No special theme for mobile devices");
$files = glob('view/theme/*');
if($files) {
foreach($files as $file) {
$f = basename($file);
$theme_name = ((file_exists($file . '/experimental')) ? sprintf("%s - \x28Experimental\x29", $f) : $f);
$theme_choices[$f] = $theme_name;
if (file_exists($file . '/mobile')) {
$theme_choices_mobile[$f] = $theme_name;
}
else {
$theme_choices[$f] = $theme_name;
}
}
}

View File

@ -1,8 +1,10 @@
<?php
function community_init(&$a) {
if(! local_user())
if(! local_user()) {
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
}
}

View File

@ -28,28 +28,35 @@ function contacts_init(&$a) {
if($contact_id) {
$a->data['contact'] = $r[0];
$o .= '<div class="vcard">';
$o .= '<div class="fn">' . $a->data['contact']['name'] . '</div>';
$o .= '<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="' . $a->data['contact']['photo'] . '" alt="' . $a->data['contact']['name'] . '" /></div>';
$o .= '</div>';
$a->page['aside'] .= $o;
$vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array(
'$name' => $a->data['contact']['name'],
'$photo' => $a->data['contact']['photo']
));
$follow_widget = '';
}
else {
$vcard_widget = '';
$follow_widget = follow_widget();
}
else
$a->page['aside'] .= follow_widget();
$a->page['aside'] .= group_side('contacts','group',false,0,$contact_id);
$groups_widget .= group_side('contacts','group',false,0,$contact_id);
$findpeople_widget .= findpeople_widget();
$networks_widget .= networks_widget('contacts',$_GET['nets']);
$a->page['aside'] .= replace_macros(get_markup_template("contacts-widget-sidebar.tpl"),array(
'$vcard_widget' => $vcard_widget,
'$follow_widget' => $follow_widget,
'$groups_widget' => $groups_widget,
'$findpeople_widget' => $findpeople_widget,
'$networks_widget' => $networks_widget
));
$a->page['aside'] .= findpeople_widget();
$a->page['aside'] .= networks_widget('contacts',$_GET['nets']);
$base = $a->get_baseurl();
$tpl = get_markup_template("contacts-head.tpl");
$a->page['htmlhead'] .= replace_macros($tpl,array(
'$baseurl' => $a->get_baseurl(true),
'$base' => $base
));
$tpl = get_markup_template("contacts-end.tpl");
$a->page['end'] .= replace_macros($tpl,array(
'$baseurl' => $a->get_baseurl(true),

View File

@ -87,6 +87,11 @@ function dfrn_poll_init(&$a) {
if((int) $xml->status == 1) {
$_SESSION['authenticated'] = 1;
if(! x($_SESSION,'remote'))
$_SESSION['remote'] = array();
$_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']);
$_SESSION['visitor_id'] = $r[0]['id'];
$_SESSION['visitor_home'] = $r[0]['url'];
$_SESSION['visitor_handle'] = $r[0]['addr'];
@ -516,6 +521,9 @@ function dfrn_poll_content(&$a) {
if(((int) $xml->status == 0) && ($xml->challenge == $hash) && ($xml->sec == $sec)) {
$_SESSION['authenticated'] = 1;
if(! x($_SESSION,'remote'))
$_SESSION['remote'] = array();
$_SESSION['remote'][] = array('cid' => $r[0]['id'],'uid' => $r[0]['uid'],'url' => $r[0]['url']);
$_SESSION['visitor_id'] = $r[0]['id'];
$_SESSION['visitor_home'] = $r[0]['url'];
$_SESSION['visitor_visiting'] = $r[0]['uid'];

View File

@ -756,9 +756,11 @@ function dfrn_request_content(&$a) {
*/
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
if(! get_config('system','local_block')) {
notice( t('Public access denied.') . EOL);
return;
}
}
/**

View File

@ -9,8 +9,10 @@ function directory_init(&$a) {
$a->page['aside'] .= findpeople_widget();
}
else
else {
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
}
}

View File

@ -35,8 +35,18 @@ function display_content(&$a) {
$contact = null;
$remote_contact = false;
if(remote_user()) {
$contact_id = $_SESSION['visitor_id'];
$contact_id = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $a->profile['uid']) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$groups = init_groups_visitor($contact_id);
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($contact_id),

View File

@ -22,6 +22,8 @@ function home_content(&$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
if(x($_SESSION,'mobile-theme'))
unset($_SESSION['mobile-theme']);
$o .= '<h1>' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '</h1>';
if(file_exists('home.html'))

View File

@ -466,7 +466,6 @@ function load_database_rem($v, $i){
function load_database($db) {
$str = file_get_contents('database.sql');
// $str = array_reduce(explode("\n", $str),"load_database_rem","");
$arr = explode(';',$str);
$errors = false;
foreach($arr as $a) {
@ -488,7 +487,7 @@ function what_next() {
."<p>".t('IMPORTANT: You will need to [manually] setup a scheduled task for the poller.')
.t('Please see the file "INSTALL.txt".')
."</p><p>"
.t("Go to your new Firendica node <a href='$baseurl/register'>registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.")
.t("Go to your new Friendica node <a href='$baseurl/register'>registration page</a> and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel.")
."</p>";
}

View File

@ -306,6 +306,7 @@ function item_post(&$a) {
$author = null;
$self = false;
$contact_id = 0;
if((local_user()) && (local_user() == $profile_uid)) {
$self = true;
@ -314,10 +315,20 @@ function item_post(&$a) {
);
}
elseif(remote_user()) {
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $profile_uid) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
intval(remote_user())
intval($contact_id)
);
}
}
if(count($r)) {
$author = $r[0];
@ -608,7 +619,7 @@ function item_post(&$a) {
if($preview) {
require_once('include/conversation.php');
$o = conversation($a,array(array_merge($contact_record,$datarray)),'search', false);
$o = conversation($a,array(array_merge($contact_record,$datarray)),'search', false, true);
logger('preview: ' . $o);
echo json_encode(array('preview' => $o));
killme();

View File

@ -3,6 +3,9 @@
function login_content(&$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
if(x($_SESSION,'mobile-theme'))
unset($_SESSION['mobile-theme']);
if(local_user())
goaway(z_root());
return login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true);

View File

@ -63,6 +63,7 @@ function manage_post(&$a) {
unset($_SESSION['administrator']);
unset($_SESSION['cid']);
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
unset($_SESSION['page_flags']);
unset($_SESSION['return_url']);
if(x($_SESSION,'submanage'))

View File

@ -36,6 +36,9 @@ function completeurl($url, $scheme) {
if ($schemearr["port"] != "")
$complete .= ":".$schemearr["port"];
if(strpos($urlarr['path'],'/') !== 0)
$complete .= '/';
$complete .= $urlarr["path"];
if ($urlarr["query"] != "")
@ -157,9 +160,9 @@ function parseurl_getsiteinfo($url) {
$attr[$attribute->name] = $attribute->value;
$src = completeurl($attr["src"], $url);
$photodata = getimagesize($src);
$photodata = @getimagesize($src);
if (($photodata[0] > 150) and ($photodata[1] > 150)) {
if (($photodata) && ($photodata[0] > 150) and ($photodata[1] > 150)) {
if ($photodata[0] > 300) {
$photodata[1] = round($photodata[1] * (300 / $photodata[0]));
$photodata[0] = 300;
@ -179,9 +182,9 @@ function parseurl_getsiteinfo($url) {
unset($siteinfo["image"]);
$photodata = getimagesize($src);
$photodata = @getimagesize($src);
if (($photodata[0] > 10) and ($photodata[1] > 10))
if (($photodata) && ($photodata[0] > 10) and ($photodata[1] > 10))
$siteinfo["images"][] = array("src"=>$src,
"width"=>$photodata[0],
"height"=>$photodata[1]);

View File

@ -101,13 +101,25 @@ function photos_post(&$a) {
$can_post = true;
else {
if($community_page && remote_user()) {
$cid = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $page_owner_uid) {
$cid = $v['cid'];
break;
}
}
}
if($cid) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($cid),
intval($page_owner_uid)
);
if(count($r)) {
$can_post = true;
$visitor = remote_user();
$visitor = $cid;
}
}
}
}
@ -871,6 +883,7 @@ function photos_content(&$a) {
$visitor = 0;
$contact = null;
$remote_contact = false;
$contact_id = 0;
$owner_uid = $a->data['user']['uid'];
@ -880,15 +893,26 @@ function photos_content(&$a) {
$can_post = true;
else {
if($community_page && remote_user()) {
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $owner_uid) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($contact_id),
intval($owner_uid)
);
if(count($r)) {
$can_post = true;
$contact = $r[0];
$remote_contact = true;
$visitor = remote_user();
$visitor = $cid;
}
}
}
}
@ -896,10 +920,19 @@ function photos_content(&$a) {
// perhaps they're visiting - but not a community page, so they wouldn't have write access
if(remote_user() && (! $visitor)) {
$contact_id = $_SESSION['visitor_id'];
$contact_id = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $owner_uid) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$groups = init_groups_visitor($contact_id);
$r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($contact_id),
intval($owner_uid)
);
if(count($r)) {
@ -907,6 +940,7 @@ function photos_content(&$a) {
$remote_contact = true;
}
}
}
if(! $remote_contact) {
if(local_user()) {
@ -1020,8 +1054,13 @@ function photos_content(&$a) {
$a->set_pager_itemspage(20);
}
if($_GET['order'] === 'posted')
$order = 'ASC';
else
$order = 'DESC';
$r = q("SELECT `resource-id`, `id`, `filename`, type, max(`scale`) AS `scale`, `desc` FROM `photo` WHERE `uid` = %d AND `album` = '%s'
AND `scale` <= 4 $sql_extra GROUP BY `resource-id` ORDER BY `created` DESC LIMIT %d , %d",
AND `scale` <= 4 $sql_extra GROUP BY `resource-id` ORDER BY `created` $order LIMIT %d , %d",
intval($owner_uid),
dbesc($album),
intval($a->pager['start']),
@ -1055,10 +1094,17 @@ function photos_content(&$a) {
}
}
if($_GET['order'] === 'posted')
$o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '" >' . t('Show Newest First') . '</a></div>';
else
$o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($album) . '?f=&order=posted" >' . t('Show Oldest First') . '</a></div>';
if($can_post) {
$o .= '<div class="photos-upload-link" ><a href="' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/upload/' . bin2hex($album) . '" >' . t('Upload New Photos') . '</a></div>';
}
$tpl = get_markup_template('photo_album.tpl');
if(count($r))
$twist = 'rotright';
@ -1073,7 +1119,8 @@ function photos_content(&$a) {
$o .= replace_macros($tpl,array(
'$id' => $rr['id'],
'$twist' => ' ' . $twist . rand(2,4),
'$photolink' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $rr['resource-id'],
'$photolink' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $rr['resource-id']
. (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''),
'$phototitle' => t('View Photo'),
'$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] . '.' .$ext,
'$imgalt' => template_escape($rr['filename']),
@ -1118,8 +1165,14 @@ function photos_content(&$a) {
$prevlink = '';
$nextlink = '';
if($_GET['order'] === 'posted')
$order = 'ASC';
else
$order = 'DESC';
$prvnxt = q("SELECT `resource-id` FROM `photo` WHERE `album` = '%s' AND `uid` = %d AND `scale` = 0
$sql_extra ORDER BY `created` DESC ",
$sql_extra ORDER BY `created` $order ",
dbesc($ph[0]['album']),
intval($owner_uid)
);
@ -1137,8 +1190,8 @@ function photos_content(&$a) {
}
}
$edit_suffix = ((($cmd === 'edit') && ($can_post)) ? '/edit' : '');
$prevlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$prv]['resource-id'] . $edit_suffix;
$nextlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$nxt]['resource-id'] . $edit_suffix;
$prevlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$prv]['resource-id'] . $edit_suffix . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
$nextlink = $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $prvnxt[$nxt]['resource-id'] . $edit_suffix . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
}
@ -1422,7 +1475,7 @@ function photos_content(&$a) {
$drop = '';
if(($item['contact-id'] == remote_user()) || ($item['uid'] == local_user()))
if(($item['contact-id'] == $contact_id) || ($item['uid'] == local_user()))
$drop = replace_macros(get_markup_template('photo_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete')));

View File

@ -116,8 +116,18 @@ function profile_content(&$a, $update = 0) {
$contact = null;
$remote_contact = false;
if(remote_user()) {
$contact_id = $_SESSION['visitor_id'];
$contact_id = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $a->profile['profile_uid']) {
$contact_id = $v['cid'];
break;
}
}
}
if($contact_id) {
$groups = init_groups_visitor($contact_id);
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($contact_id),

View File

@ -193,6 +193,8 @@ function register_content(&$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
if(x($_SESSION,'mobile-theme'))
unset($_SESSION['mobile-theme']);
$username = ((x($_POST,'username')) ? $_POST['username'] : ((x($_GET,'username')) ? $_GET['username'] : ''));

View File

@ -50,8 +50,10 @@ function search_init(&$a) {
$a->page['aside'] .= search_saved_searches();
}
else
else {
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);
}

View File

@ -236,17 +236,22 @@ function settings_post(&$a) {
check_form_security_token_redirectOnErr('/settings/display', 'settings_display');
$theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : $a->user['theme']);
$mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : '');
$nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0);
$browser_update = ((x($_POST,'browser_update')) ? intval($_POST['browser_update']) : 0);
$browser_update = $browser_update * 1000;
if($browser_update < 10000)
$browser_update = 40000;
$browser_update = 10000;
$itemspage_network = ((x($_POST,'itemspage_network')) ? intval($_POST['itemspage_network']) : 40);
if($itemspage_network > 100)
$itemspage_network = 40;
$itemspage_network = 100;
if($mobile_theme !== '') {
set_pconfig(local_user(),'system','mobile_theme',$mobile_theme);
}
set_pconfig(local_user(),'system','update_interval', $browser_update);
set_pconfig(local_user(),'system','itemspage_network', $itemspage_network);
set_pconfig(local_user(),'system','no_smilies',$nosmile);
@ -497,10 +502,11 @@ function settings_post(&$a) {
require_once('include/profile_update.php');
profile_change();
$_SESSION['theme'] = $theme;
//$_SESSION['theme'] = $theme;
if($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) {
// FIXME - set to un-verified, blocked and redirect to logout
// Why? Are we verifying people or email addresses?
}
@ -704,6 +710,9 @@ function settings_content(&$a) {
$default_theme = get_config('system','theme');
if(! $default_theme)
$default_theme = 'default';
$default_mobile_theme = get_config('system','mobile-theme');
if(! $mobile_default_theme)
$mobile_default_theme = 'none';
$allowed_themes_str = get_config('system','allowed_themes');
$allowed_themes_raw = explode(',',$allowed_themes_str);
@ -715,19 +724,27 @@ function settings_content(&$a) {
$themes = array();
$mobile_themes = array("---" => t('No special theme for mobile devices'));
$files = glob('view/theme/*');
if($allowed_themes) {
foreach($allowed_themes as $th) {
$f = $th;
$is_experimental = file_exists('view/theme/' . $th . '/experimental');
$unsupported = file_exists('view/theme/' . $th . '/unsupported');
$is_mobile = file_exists('view/theme/' . $th . '/mobile');
if (!$is_experimental or ($is_experimental && (get_config('experimentals','exp_themes')==1 or get_config('experimentals','exp_themes')===false))){
$theme_name = (($is_experimental) ? sprintf("%s - \x28Experimental\x29", $f) : $f);
if($is_mobile) {
$mobile_themes[$f]=$theme_name;
}
else {
$themes[$f]=$theme_name;
}
}
}
}
$theme_selected = (!x($_SESSION,'theme')? $default_theme : $_SESSION['theme']);
$mobile_theme_selected = (!x($_SESSION,'mobile-theme')? $default_mobile_theme : $_SESSION['mobile-theme']);
$browser_update = intval(get_pconfig(local_user(), 'system','update_interval'));
$browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds
@ -753,7 +770,8 @@ function settings_content(&$a) {
'$baseurl' => $a->get_baseurl(true),
'$uid' => local_user(),
'$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes),
'$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes, true),
'$mobile_theme' => array('mobile_theme', t('Mobile Theme:'), $mobile_theme_selected, '', $mobile_themes, false),
'$ajaxint' => array('browser_update', t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')),
'$itemspage_network' => array('itemspage_network', t("Number of items to display per page:"), $itemspage_network, t('Maximum of 100 items')),
'$nosmile' => array('nosmile', t("Don't show emoticons"), $nosmile, ''),

View File

@ -47,17 +47,9 @@ function tagger_content(&$a) {
if(local_user() != $owner_uid)
return;
if(remote_user()) {
$r = q("select * from contact where id = %d AND `uid` = %d limit 1",
intval(remote_user()),
intval($item['uid'])
);
}
else {
$r = q("select * from contact where self = 1 and uid = %d limit 1",
intval(local_user())
);
}
if(count($r))
$contact = $r[0];
else {

View File

@ -29,17 +29,28 @@ function wall_attach_post(&$a) {
$can_post = true;
else {
if($community_page && remote_user()) {
$cid = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $page_owner_uid) {
$cid = $v['cid'];
break;
}
}
}
if($cid) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($cid),
intval($page_owner_uid)
);
if(count($r)) {
$can_post = true;
$visitor = remote_user();
$visitor = $cid;
}
}
}
}
if(! $can_post) {
notice( t('Permission denied.') . EOL );
killme();

View File

@ -37,14 +37,25 @@ function wall_upload_post(&$a) {
$can_post = true;
else {
if($community_page && remote_user()) {
$cid = 0;
if(is_array($_SESSION['remote'])) {
foreach($_SESSION['remote'] as $v) {
if($v['uid'] == $page_owner_uid) {
$cid = $v['cid'];
break;
}
}
}
if($cid) {
$r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1",
intval(remote_user()),
intval($cid),
intval($page_owner_uid)
);
if(count($r)) {
$can_post = true;
$visitor = remote_user();
$default_cid = $visitor;
$visitor = $cid;
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
$vcard_widget
$follow_widget
$groups_widget
$findpeople_widget
$networks_widget

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
<?php
function string_plural_select_de($n){
return ($n != 1);
return ($n != 1);;
}
;
$a->strings["Post successful."] = "Beitrag erfolgreich veröffentlicht.";
@ -252,8 +252,8 @@ $a->strings["UTC time: %s"] = "UTC Zeit: %s";
$a->strings["Current timezone: %s"] = "Aktuelle Zeitzone: %s";
$a->strings["Converted localtime: %s"] = "Umgerechnete lokale Zeit: %s";
$a->strings["Please select your timezone:"] = "Bitte wähle deine Zeitzone.";
$a->strings["Poke/Prod"] = "";
$a->strings["poke, prod or do other things to somebody"] = "";
$a->strings["Poke/Prod"] = "Anstupsen etc.";
$a->strings["poke, prod or do other things to somebody"] = "Stupse Leute an oder mache anderes mit ihnen";
$a->strings["Recipient"] = "Empfänger";
$a->strings["Choose what you wish to do to recipient"] = "Was willst du mit dem Empfänger machen:";
$a->strings["Make this post private"] = "Diesen Beitrag privat machen";
@ -486,11 +486,13 @@ $a->strings["Action after import:"] = "Aktion nach Import:";
$a->strings["Mark as seen"] = "Als gelesen markieren";
$a->strings["Move to folder"] = "In einen Ordner verschieben";
$a->strings["Move to folder:"] = "In diesen Ordner verschieben:";
$a->strings["No special theme for mobile devices"] = "Kein spezielles Theme für mobile Geräte verwenden.";
$a->strings["Display Settings"] = "Anzeige-Einstellungen";
$a->strings["Display Theme:"] = "Theme:";
$a->strings["Mobile Theme:"] = "Mobiles Theme";
$a->strings["Update browser every xx seconds"] = "Browser alle xx Sekunden aktualisieren";
$a->strings["Minimum of 10 seconds, no maximum"] = "Minimal 10 Sekunden, kein Maximum";
$a->strings["Number of items to display on the network page:"] = "Zahl der Beiträge, die pro Netzwerkseite angezeigt werden sollen: ";
$a->strings["Number of items to display per page:"] = "Zahl der Beiträge, die pro Netzwerkseite angezeigt werden sollen: ";
$a->strings["Maximum of 100 items"] = "Maximal 100 Beiträge";
$a->strings["Don't show emoticons"] = "Keine Smilies anzeigen";
$a->strings["Normal Account Page"] = "Normales Konto";
@ -555,7 +557,7 @@ $a->strings["Someone writes a followup comment"] = " jemand auch einen Kommen
$a->strings["You receive a private message"] = " du eine private Nachricht erhältst";
$a->strings["You receive a friend suggestion"] = " du eine Empfehlung erhältst";
$a->strings["You are tagged in a post"] = " du in einem Beitrag erwähnt wirst";
$a->strings["You are poked/prodded/etc. in a post"] = "";
$a->strings["You are poked/prodded/etc. in a post"] = " du von jemandem angestupst oder sonstwie behandelt wirst";
$a->strings["Advanced Account/Page Type Settings"] = "Erweiterte Konto-/Seitentyp-Einstellungen";
$a->strings["Change the behaviour of this account for special situations"] = "Verhalten dieses Kontos in bestimmten Situationen:";
$a->strings["Manage Identities and/or Pages"] = "Verwalte Identitäten und/oder Seiten";
@ -602,19 +604,38 @@ $a->strings["Your message:"] = "Deine Nachricht:";
$a->strings["Welcome to Friendica"] = "Willkommen bei Friendica";
$a->strings["New Member Checklist"] = "Checkliste für neue Mitglieder";
$a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Wir möchten dir einige Tipps und Links anbieten, die dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt für dich an Deiner Pinnwand für zwei Wochen nach dem Registrierungsdatum sichtbar und wird dann verschwinden.";
$a->strings["Getting Started"] = "Einstieg";
$a->strings["Friendica Walk-Through"] = "Friendica Rundgang";
$a->strings["On your <em>Quick Start</em> page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "Auf der <em>Quick Start</em> Seite findest du eine kurze Einleitung in die einzelnen Funktionen deines Profils und die Netzwerk-Reiter, wo du interessante Foren findest und neue Kontakte knüpfst.";
$a->strings["Go to Your Settings"] = "Gehe zu deinen Einstellungen";
$a->strings["On your <em>Settings</em> page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Ändere bitte unter <em>Einstellungen</em> dein Passwort. Außerdem merke dir deine Identifikationsadresse. Diese sieht aus wie eine E-Mail-Adresse und wird benötigt, um Freundschaften mit anderen im Friendica Netzwerk zu schliessen.";
$a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Überprüfe die restlichen Einstellungen, insbesondere die Einstellungen zur Privatsphäre. Wenn du dein Profil nicht veröffentlichst, ist das als wenn du deine Telefonnummer nicht ins Telefonbuch einträgst. Im Allgemeinen solltest du es veröffentlichen - außer all deine Freunde und potentiellen Freunde wissen genau, wie sie dich finden können.";
$a->strings["Profile"] = "Profil";
$a->strings["Upload Profile Photo"] = "Profilbild hochladen";
$a->strings["Upload a profile photo if you have not done so already. Studies have shown that people with real photos of themselves are ten times more likely to make friends than people who do not."] = "Lade ein Profilbild hoch falls du es noch nicht getan hast. Studien haben gezeigt, dass es zehnmal wahrscheinlicher ist neue Freunde zu finden, wenn du ein Bild von dir selbst verwendest, als wenn du dies nicht tust.";
$a->strings["Edit Your Profile"] = "Editiere dein Profil";
$a->strings["Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Editiere dein <strong>Standard</strong> Profil nach deinen Vorlieben. Überprüfe die Einstellungen zum Verbergen deiner Freundesliste vor unbekannten Betrachtern des Profils.";
$a->strings["Profile Keywords"] = "Profil Schlüsselbegriffe";
$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Trage ein paar öffentliche Stichwörter in dein Standardprofil ein, die deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die deine Interessen teilen und können dir dann Kontakte vorschlagen.";
$a->strings["Connecting"] = "Verbindungen knüpfen";
$a->strings["Facebook"] = "Facebook";
$a->strings["Authorise the Facebook Connector if you currently have a Facebook account and we will (optionally) import all your Facebook friends and conversations."] = "Richte die Verbindung zu Facebook ein, wenn du im Augenblick ein Facebook-Konto hast, und (optional) deine Facebook-Freunde und -Unterhaltungen importieren willst.";
$a->strings["<em>If</em> this is your own personal server, installing the Facebook addon may ease your transition to the free social web."] = "<em>Wenn</em> dies dein privater Server ist, könnte die Installation des Facebook Connectors deinen Umzug ins freie soziale Netz angenehmer gestalten.";
$a->strings["Importing Emails"] = "Emails Importieren";
$a->strings["Enter your email access information on your Connector Settings page if you wish to import and interact with friends or mailing lists from your email INBOX"] = "Gib deine E-Mail-Zugangsinformationen auf der Connector-Einstellungsseite ein, falls du E-Mails aus deinem Posteingang importieren und mit Freunden und Mailinglisten interagieren willlst.";
$a->strings["Edit your <strong>default</strong> profile to your liking. Review the settings for hiding your list of friends and hiding the profile from unknown visitors."] = "Editiere dein <strong>Standard</strong> Profil nach deinen Vorlieben. Überprüfe die Einstellungen zum Verbergen deiner Freundesliste vor unbekannten Betrachtern des Profils.";
$a->strings["Set some public keywords for your default profile which describe your interests. We may be able to find other people with similar interests and suggest friendships."] = "Trage ein paar öffentliche Stichwörter in dein Standardprofil ein, die deine Interessen beschreiben. Eventuell sind wir in der Lage Leute zu finden, die deine Interessen teilen und können dir dann Kontakte vorschlagen.";
$a->strings["Go to Your Contacts Page"] = "Gehe zu deiner Kontakt-Seite";
$a->strings["Your Contacts page is your gateway to managing friendships and connecting with friends on other networks. Typically you enter their address or site URL in the <em>Add New Contact</em> dialog."] = "Die Kontakte-Seite ist die Einstiegsseite, von der aus du Kontakte verwalten und dich mit Freunden in anderen Netzwerken verbinden kannst. Normalerweise gibst du dazu einfach ihre Adresse oder die URL der Seite im Kasten <em>Neuen Kontakt hinzufügen</em> ein.";
$a->strings["Go to Your Site's Directory"] = "Gehe zum Verzeichnis deiner Friendica Instanz";
$a->strings["The Directory page lets you find other people in this network or other federated sites. Look for a <em>Connect</em> or <em>Follow</em> link on their profile page. Provide your own Identity Address if requested."] = "Über die Verzeichnisseite kannst du andere Personen auf diesem Server oder anderen verknüpften Seiten finden. Halte nach einem <em>Verbinden</em> oder <em>Folgen</em> Link auf deren Profilseiten Ausschau und gib deine eigene Profiladresse an, falls du danach gefragt wirst.";
$a->strings["Finding New People"] = "Neue Leute kennenlernen";
$a->strings["On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours."] = "Im seitlichen Bedienfeld der Kontakteseite gibt es diverse Werkzeuge, um neue Freunde zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Freunde vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden.";
$a->strings["Groups"] = "Gruppen";
$a->strings["Group Your Contacts"] = "Gruppiere deine Kontakte";
$a->strings["Once you have made some friends, organize them into private conversation groups from the sidebar of your Contacts page and then you can interact with each group privately on your Network page."] = "Sobald du einige Freunde gefunden hast, organisiere sie in Gruppen zur privaten Kommunikation im Seitenmenü der Kontakte-Seite. Du kannst dann mit jeder dieser Gruppen von der Netzwerkseite aus privat interagieren.";
$a->strings["Why Aren't My Posts Public?"] = "Warum sind meine Beiträge nicht öffentlich?";
$a->strings["Friendica respects your privacy. By default, your posts will only show up to people you've added as friends. For more information, see the help section from the link above."] = "Friendica respektiert deine Privatsphäre. Mit der Grundeinstellung werden deine Beiträge ausschließlich deinen Kontakten angezeigt. Für weitere Informationen diesbezüglich lies dir bitte den entsprechenden Abschnitt in der Hilfe unter dem obigen Link durch.";
$a->strings["Getting Help"] = "Hilfe bekommen";
$a->strings["Go to the Help Section"] = "Zum Hilfe Abschnitt gehen";
$a->strings["Our <strong>help</strong> pages may be consulted for detail on other program features and resources."] = "Unsere <strong>Hilfe</strong> Seiten können herangezogen werden, um weitere Einzelheiten zu andern Programm Features zu erhalten.";
$a->strings["Item not available."] = "Beitrag nicht verfügbar.";
$a->strings["Item was not found."] = "Beitrag konnte nicht gefunden werden.";
@ -632,7 +653,6 @@ $a->strings["Members"] = "Mitglieder";
$a->strings["Click on a contact to add or remove."] = "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen";
$a->strings["Invalid profile identifier."] = "Ungültiger Profil-Bezeichner";
$a->strings["Profile Visibility Editor"] = "Editor für die Profil-Sichtbarkeit";
$a->strings["Profile"] = "Profil";
$a->strings["Visible To"] = "Sichtbar für";
$a->strings["All Contacts (with secure profile access)"] = "Alle Kontakte (mit gesichertem Profilzugriff)";
$a->strings["No contacts."] = "Keine Kontakte.";
@ -684,7 +704,6 @@ $a->strings["Shift-reload the page or clear browser cache if the new photo does
$a->strings["Unable to process image"] = "Bild konnte nicht verarbeitet werden";
$a->strings["Image exceeds size limit of %d"] = "Bildgröße überschreitet das Limit von %d";
$a->strings["Upload File:"] = "Datei hochladen:";
$a->strings["Upload Profile Photo"] = "Profilbild hochladen";
$a->strings["Upload"] = "Hochladen";
$a->strings["skip this step"] = "diesen Schritt überspringen";
$a->strings["select a photo from your photo albums"] = "wähle ein Foto von deinen Fotoalben";
@ -740,7 +759,6 @@ $a->strings["Pending registrations"] = "Anstehende Anmeldungen";
$a->strings["Version"] = "Version";
$a->strings["Active plugins"] = "Aktive Plugins";
$a->strings["Site settings updated."] = "Seiteneinstellungen aktualisiert.";
$a->strings["Don't apply a special theme for mobile devices."] = "Kein spezielles Theme für mobile Geräte verwenden.";
$a->strings["Closed"] = "Geschlossen";
$a->strings["Requires approval"] = "Bedarf der Zustimmung";
$a->strings["Open"] = "Offen";
@ -761,6 +779,10 @@ $a->strings["SSL link policy"] = "Regeln für SSL Links";
$a->strings["Determines whether generated links should be forced to use SSL"] = "Bestimmt, ob generierte Links SSL verwenden müssen";
$a->strings["Maximum image size"] = "Maximale Größe von Bildern";
$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximale Upload-Größe von Bildern in Bytes. Standard ist 0, d.h. ohne Limit.";
$a->strings["Maximum image length"] = "Maximale Länge von Bildern";
$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Maximale Länge in Pixeln der längsten Seite eines hoch geladenen Bildes. Grundeinstellung ist -1 was keine Einschränkung bedeutet.";
$a->strings["JPEG image quality"] = "Qualität des JPEG Bildes";
$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Hoch geladene JPEG Bilder werden mit dieser Qualität [0-100] gespeichert. Grundeinstellung ist 100, kein Qualitätsverlust.";
$a->strings["Register policy"] = "Registrierungsmethode";
$a->strings["Register text"] = "Registrierungstext";
$a->strings["Will be displayed prominently on the registration page."] = "Wird gut sichtbar auf der Registrierungsseite angezeigt.";
@ -778,6 +800,8 @@ $a->strings["Global directory update URL"] = "URL für Updates beim weltweiten V
$a->strings["URL to update the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL für Update des globalen Verzeichnisses. Wenn nichts eingetragen ist, bleibt das globale Verzeichnis unerreichbar.";
$a->strings["Allow threaded items"] = "Erlaube Threads in Diskussionen";
$a->strings["Allow infinite level threading for items on this site."] = "Erlaube ein unendliches Level für Threads auf dieser Seite.";
$a->strings["No default permissions for new users"] = "Keine Standard-Zugriffsrechte für Beiträge neuer Nutzer";
$a->strings["New users will have no private permissions set for their posts by default, making their posts public until they change it."] = "Neue Benutzer werden keine Voreinstellungen für die Zugriffrechte haben, so dass ihre Beiträge öffentlich sind, bis sie es ändern.";
$a->strings["Block multiple registrations"] = "Unterbinde Mehrfachregistrierung";
$a->strings["Disallow users to register additional accounts for use as pages."] = "Benutzern nicht erlauben, weitere Konten als zusätzliche Profile anzulegen.";
$a->strings["OpenID support"] = "OpenID Unterstützung";
@ -974,7 +998,7 @@ $a->strings["Add"] = "Hinzufügen";
$a->strings["No entries."] = "Keine Einträge";
$a->strings["Source (bbcode) text:"] = "Quelle (bbcode) Text:";
$a->strings["Source (Diaspora) text to convert to BBcode:"] = "Eingabe (Diaspora) Nach BBCode zu konvertierender Text:";
$a->strings["Source input: "] = "";
$a->strings["Source input: "] = "Originaltext:";
$a->strings["bb2html: "] = "bb2html: ";
$a->strings["bb2html2bb: "] = "bb2html2bb: ";
$a->strings["bb2md: "] = "bb2md: ";
@ -1055,7 +1079,6 @@ $a->strings["Do not import your Facebook profile wall conversations"] = "Faceboo
$a->strings["If you choose to link conversations and leave both of these boxes unchecked, your Facebook profile wall will be merged with your profile wall on this website and your privacy settings on this website will be used to determine who may see the conversations."] = "Wenn du Facebook-Konversationen importierst und diese beiden Häkchen nicht setzt, wird deine Facebook-Pinnwand mit der Pinnwand hier auf dieser Webseite vereinigt. Die Privatsphäre-Einstellungen für deine Pinnwand auf dieser Webseite geben dann an, wer die Konversationen sehen kann.";
$a->strings["Comma separated applications to ignore"] = "Kommaseparierte Anwendungen, die ignoriert werden sollen";
$a->strings["Problems with Facebook Real-Time Updates"] = "Probleme mit Facebook Echtzeit-Updates";
$a->strings["Facebook"] = "Facebook";
$a->strings["Facebook Connector Settings"] = "Facebook-Verbindungseinstellungen";
$a->strings["Facebook API Key"] = "Facebook API Schlüssel";
$a->strings["Error: it appears that you have specified the App-ID and -Secret in your .htconfig.php file. As long as they are specified there, they cannot be set using this form.<br><br>"] = "Fehler: du scheinst die App-ID und das App-Geheimnis in deiner .htconfig.php Datei angegeben zu haben. Solange sie dort festgelegt werden kannst du dieses Formular hier nicht verwenden.<br><br>";
@ -1103,43 +1126,43 @@ $a->strings["Generate new key"] = "Neuen Schlüssel erstellen";
$a->strings["Widgets key"] = "Widgets Schlüssel";
$a->strings["Widgets available"] = "Verfügbare Widgets";
$a->strings["Connect on Friendica!"] = "In Friendica verbinden!";
$a->strings["bitchslap"] = "";
$a->strings["bitchslapped"] = "";
$a->strings["shag"] = "";
$a->strings["shagged"] = "";
$a->strings["do something obscenely biological to"] = "";
$a->strings["did something obscenely biological to"] = "";
$a->strings["point out the new poke feature to"] = "";
$a->strings["pointed out the new poke feature to"] = "";
$a->strings["declare undying love for"] = "";
$a->strings["declared undying love for"] = "";
$a->strings["set fire to"] = "";
$a->strings["patent"] = "";
$a->strings["patented"] = "";
$a->strings["stroke beard"] = "";
$a->strings["stroked their beard at"] = "";
$a->strings["bemoan the declining standards of modern secondary and tertiary education to"] = "";
$a->strings["bemoans the declining standards of modern secondary and tertiary education to"] = "";
$a->strings["hug"] = "";
$a->strings["hugged"] = "";
$a->strings["kiss"] = "";
$a->strings["kissed"] = "";
$a->strings["raise eyebrows at"] = "";
$a->strings["raised their eyebrows at"] = "";
$a->strings["insult"] = "";
$a->strings["insulted"] = "";
$a->strings["praise"] = "";
$a->strings["praised"] = "";
$a->strings["be dubious of"] = "";
$a->strings["was dubious of"] = "";
$a->strings["eat"] = "";
$a->strings["ate"] = "";
$a->strings["giggle and fawn at"] = "";
$a->strings["giggled and fawned at"] = "";
$a->strings["doubt"] = "anzeigen/verbergen";
$a->strings["doubted"] = "";
$a->strings["glare"] = "";
$a->strings["glared at"] = "";
$a->strings["bitchslap"] = "abwatschen";
$a->strings["bitchslapped"] = "watschte";
$a->strings["shag"] = "poppen";
$a->strings["shagged"] = "poppte";
$a->strings["do something obscenely biological to"] = "mit ihm/ihr etwas obszönes Körperliches machen";
$a->strings["did something obscenely biological to"] = "machte etwas obszönes Körperliches mit";
$a->strings["point out the new poke feature to"] = "die neue Anstups-Funktion zeigen";
$a->strings["pointed out the new poke feature to"] = "zeigte die neue Anstups-Funktion";
$a->strings["declare undying love for"] = "unterbliche Liebe verkünden";
$a->strings["declared undying love for"] = "verkündete unsterbliche Liebe für";
$a->strings["set fire to"] = "entflammt";
$a->strings["patent"] = "patentieren";
$a->strings["patented"] = "patentierte";
$a->strings["stroke beard"] = "sich den Bart kratzen";
$a->strings["stroked their beard at"] = "kratzte sich den Bart in Richtung";
$a->strings["bemoan the declining standards of modern secondary and tertiary education to"] = "sich über die sinkenden Standards der Schul- und Hochschulbildung beklagen";
$a->strings["bemoans the declining standards of modern secondary and tertiary education to"] = "beklagte sich über die sinkenden Standards der Schul- und Hochschulbildung bei";
$a->strings["hug"] = "umarmen";
$a->strings["hugged"] = "umarmte";
$a->strings["kiss"] = "küssen";
$a->strings["kissed"] = "küsste";
$a->strings["raise eyebrows at"] = "Augenbrauen hochziehen";
$a->strings["raised their eyebrows at"] = "zog die Augenbrauen hoch in Richtung";
$a->strings["insult"] = "beleidigen";
$a->strings["insulted"] = "beleidigte";
$a->strings["praise"] = "preisen";
$a->strings["praised"] = "pries";
$a->strings["be dubious of"] = "ungewiss sein";
$a->strings["was dubious of"] = "war ungewiss über";
$a->strings["eat"] = "essen";
$a->strings["ate"] = "";
$a->strings["giggle and fawn at"] = "kichern und einschleimen";
$a->strings["giggled and fawned at"] = "kicherte und schleimte sich ein bei";
$a->strings["doubt"] = "bezweifeln";
$a->strings["doubted"] = "bezweifelte";
$a->strings["glare"] = "zornig anstarren";
$a->strings["glared at"] = "starrte zornig auf";
$a->strings["YourLS Settings"] = "YourLS Einstellungen";
$a->strings["URL: http://"] = "URL: http://";
$a->strings["Username:"] = "Nutzername:";
@ -1176,7 +1199,7 @@ $a->strings["Latest photos"] = "Neueste Fotos";
$a->strings["Latest likes"] = "Neueste Favoriten";
$a->strings["event"] = "Veranstaltung";
$a->strings["No access"] = "Kein Zugriff";
$a->strings["Could not open component for editing"] = "";
$a->strings["Could not open component for editing"] = "Kalender-Editierfunktion konnte nicht geöffnet werden";
$a->strings["Go back to the calendar"] = "Zurück zum Kalender";
$a->strings["Event data"] = "Veranstaltungsdetails";
$a->strings["Calendar"] = "Kalender";
@ -1395,8 +1418,8 @@ $a->strings["A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target
$a->strings["Default zoom"] = "Standard Zoom";
$a->strings["The default zoom level. (1:world, 18:highest)"] = "Standard Zoomlevel (1: Welt; 18: höchstes)";
$a->strings["Editplain settings updated."] = "Editplain Einstellungen aktualisiert";
$a->strings["Group Text"] = "";
$a->strings["Use a text only (non-image) group selector in the \"group edit\" menu"] = "";
$a->strings["Group Text"] = "Gruppen als Text";
$a->strings["Use a text only (non-image) group selector in the \"group edit\" menu"] = "Beim Bearbeiten von Gruppen Text statt Bilder anzeigen";
$a->strings["Could NOT install Libravatar successfully.<br>It requires PHP >= 5.3"] = "Kann Libravatar NICHT erfolgreich installieren.<br>PHP >=5.3 wird benötigt";
$a->strings["generic profile image"] = "allgemeines Profilbild";
$a->strings["random geometric pattern"] = "zufällig erzeugtes geometrisches Muster";
@ -1480,7 +1503,7 @@ $a->strings["Gnot settings updated."] = "Gnot Einstellungen aktualisiert.";
$a->strings["Gnot Settings"] = "Gnot Einstellungen";
$a->strings["Allows threading of email comment notifications on Gmail and anonymising the subject line."] = "Erlaubt das Veröffentlichen von E-Mail Kommentar Benachrichtigungen bei Gmail mit anonymisiertem Betreff";
$a->strings["Enable this plugin/addon?"] = "Dieses Plugin/Addon aktivieren?";
$a->strings["[Friendica:Notify] Comment to conversation #%d"] = "[Friendica Meldung] Kommentar zum Beitrag #%d";
$a->strings["[Friendica:Notify] Comment to conversation #%d"] = "[Friendica-Meldung] Kommentar zum Beitrag #%d";
$a->strings["Post to Wordpress"] = "Bei WordPress veröffentlichen";
$a->strings["WordPress Post Settings"] = "WordPress-Beitragseinstellungen";
$a->strings["Enable WordPress Post Plugin"] = "WordPress-Plugin aktivieren.";
@ -1681,18 +1704,18 @@ $a->strings["%d Contact"] = array(
0 => "%d Kontakt",
1 => "%d Kontakte",
);
$a->strings["poke"] = "";
$a->strings["poked"] = "";
$a->strings["ping"] = "";
$a->strings["pinged"] = "";
$a->strings["prod"] = "";
$a->strings["prodded"] = "";
$a->strings["slap"] = "";
$a->strings["slapped"] = "";
$a->strings["finger"] = "";
$a->strings["fingered"] = "";
$a->strings["rebuff"] = "";
$a->strings["rebuffed"] = "";
$a->strings["poke"] = "anstupsen";
$a->strings["poked"] = "stupste";
$a->strings["ping"] = "anpingen";
$a->strings["pinged"] = "pingte";
$a->strings["prod"] = "knuffen";
$a->strings["prodded"] = "knuffte";
$a->strings["slap"] = "ohrfeigen";
$a->strings["slapped"] = "ohrfeigte";
$a->strings["finger"] = "befummeln";
$a->strings["fingered"] = "befummelte";
$a->strings["rebuff"] = "eine Abfuhr erteilen";
$a->strings["rebuffed"] = "abfuhrerteilte";
$a->strings["happy"] = "glücklich";
$a->strings["sad"] = "traurig";
$a->strings["mellow"] = "sanft";
@ -1746,7 +1769,6 @@ $a->strings["A deleted group with this name was revived. Existing item permissio
$a->strings["Default privacy group for new contacts"] = "Voreingestellte Gruppe für neue Kontakte";
$a->strings["Everybody"] = "Alle Kontakte";
$a->strings["edit"] = "bearbeiten";
$a->strings["Groups"] = "Gruppen";
$a->strings["Edit group"] = "Gruppe bearbeiten";
$a->strings["Create a new group"] = "Neue Gruppe erstellen";
$a->strings["Contacts not in any group"] = "Kontakte in keiner Gruppe";
@ -1824,7 +1846,7 @@ $a->strings["Friendica Notification"] = "Friendica-Benachrichtigung";
$a->strings["Thank You,"] = "Danke,";
$a->strings["%s Administrator"] = "der Administrator von %s";
$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica Meldung] Neue Nachricht erhalten von %s";
$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica-Meldung] Neue Nachricht erhalten von %s";
$a->strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s hat dir eine neue private Nachricht auf %2\$s geschickt.";
$a->strings["%1\$s sent you %2\$s."] = "%1\$s schickte dir %2\$s.";
$a->strings["a private message"] = "eine private Nachricht";
@ -1832,27 +1854,27 @@ $a->strings["Please visit %s to view and/or reply to your private messages."] =
$a->strings["%1\$s commented on [url=%2\$s]a %3\$s[/url]"] = "%1\$s kommentierte [url=%2\$s]a %3\$s[/url]";
$a->strings["%1\$s commented on [url=%2\$s]%3\$s's %4\$s[/url]"] = "%1\$s kommentierte [url=%2\$s]%3\$ss %4\$s[/url]";
$a->strings["%1\$s commented on [url=%2\$s]your %3\$s[/url]"] = "%1\$s kommentierte [url=%2\$s]deinen %3\$s[/url]";
$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Friendica Meldung] Kommentar zum Beitrag #%1\$d von %2\$s";
$a->strings["[Friendica:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Friendica-Meldung] Kommentar zum Beitrag #%1\$d von %2\$s";
$a->strings["%s commented on an item/conversation you have been following."] = "%s hat einen Beitrag kommentiert, dem du folgst.";
$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren.";
$a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica Meldung] %s hat auf deine Pinnwand geschrieben";
$a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica-Meldung] %s hat auf deine Pinnwand geschrieben";
$a->strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s schrieb auf %2\$s auf deine Pinnwand";
$a->strings["%1\$s posted to [url=%2\$s]your wall[/url]"] = "%1\$s hat etwas auf [url=%2\$s]deiner Pinnwand[/url] gepostet";
$a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica Meldung] %s hat dich erwähnt";
$a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica-Meldung] %s hat dich erwähnt";
$a->strings["%1\$s tagged you at %2\$s"] = "%1\$s erwähnte dich auf %2\$s";
$a->strings["%1\$s [url=%2\$s]tagged you[/url]."] = "%1\$s [url=%2\$s]erwähnte dich[/url].";
$a->strings["[Friendica:Notify] %1\$s poked you"] = "";
$a->strings["%1\$s poked you at %2\$s"] = "";
$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "";
$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica Meldung] %s markierte deinen Beitrag";
$a->strings["[Friendica:Notify] %1\$s poked you"] = "[Friendica-Meldung] %1\$s hat dich angestupst";
$a->strings["%1\$s poked you at %2\$s"] = "%1\$s hat dich auf %2\$s angestupst";
$a->strings["%1\$s [url=%2\$s]poked you[/url]."] = "%1\$s [url=%2\$s]hat dich angestupst[/url].";
$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica-Meldung] %s hat deinen Beitrag getaggt";
$a->strings["%1\$s tagged your post at %2\$s"] = "%1\$s erwähnte deinen Beitrag auf %2\$s";
$a->strings["%1\$s tagged [url=%2\$s]your post[/url]"] = "%1\$s erwähnte [url=%2\$s]Deinen Beitrag[/url]";
$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica Meldung] Kontaktanfrage erhalten";
$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica-Meldung] Kontaktanfrage erhalten";
$a->strings["You've received an introduction from '%1\$s' at %2\$s"] = "Du hast eine Kontaktanfrage von '%1\$s' auf %2\$s erhalten";
$a->strings["You've received [url=%1\$s]an introduction[/url] from %2\$s."] = "Du hast eine [url=%1\$s]Kontaktanfrage[/url] von %2\$s erhalten.";
$a->strings["You may visit their profile at %s"] = "Hier kannst du das Profil betrachten: %s";
$a->strings["Please visit %s to approve or reject the introduction."] = "Bitte besuche %s, um die Kontaktanfrage anzunehmen oder abzulehnen.";
$a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica Meldung] Kontaktvorschlag erhalten";
$a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica-Meldung] Kontaktvorschlag erhalten";
$a->strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Du hast einen Freunde-Vorschlag von '%1\$s' auf %2\$s erhalten";
$a->strings["You've received [url=%1\$s]a friend suggestion[/url] for %2\$s from %3\$s."] = "Du hast einen [url=%1\$s]Freunde-Vorschlag[/url] %2\$s von %3\$s erhalten.";
$a->strings["Name:"] = "Name:";
@ -1894,14 +1916,14 @@ $a->strings["Please upload a profile photo."] = "Bitte lade ein Profilbild hoch.
$a->strings["Welcome back "] = "Willkommen zurück ";
$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Das Sicherheitsmerkmal war nicht korrekt. Das passiert meistens wenn das Formular vor dem Absenden zu lange geöffnet war (länger als 3 Stunden).";
$a->strings["stopped following"] = "wird nicht mehr gefolgt";
$a->strings["Poke"] = "";
$a->strings["Poke"] = "Anstupsen";
$a->strings["View Status"] = "Pinnwand anschauen";
$a->strings["View Profile"] = "Profil anschauen";
$a->strings["View Photos"] = "Bilder anschauen";
$a->strings["Network Posts"] = "Netzwerkbeiträge";
$a->strings["Edit Contact"] = "Kontakt bearbeiten";
$a->strings["Send PM"] = "Private Nachricht senden";
$a->strings["%1\$s poked %2\$s"] = "";
$a->strings["%1\$s poked %2\$s"] = "%1\$s hat %2\$s angestupst";
$a->strings["post/item"] = "Nachricht/Beitrag";
$a->strings["%1\$s marked %2\$s's %3\$s as favorite"] = "%1\$s hat %2\$s\\s %3\$s als Favorit markiert";
$a->strings["Delete Selected Items"] = "Lösche die markierten Beiträge";
@ -1940,6 +1962,7 @@ $a->strings["Nickname or Email address: "] = "Spitzname oder E-Mail-Adresse: ";
$a->strings["Password: "] = "Passwort: ";
$a->strings["Or login using OpenID: "] = "Oder melde dich mit deiner OpenID an: ";
$a->strings["Forgot your password?"] = "Passwort vergessen?";
$a->strings["Requested account is not available."] = "Das angefragte Profil ist nicht vorhanden.";
$a->strings["Edit profile"] = "Profil bearbeiten";
$a->strings["Message"] = "Nachricht";
$a->strings["g A l F d"] = "l, d. F G \\U\\h\\r";

View File

@ -1,7 +1,7 @@
<script>$(function(){ previewTheme($("#id_$field.0")[0]); });</script>
<div class='field select'>
<label for='id_$field.0'>$field.1</label>
<select name='$field.0' id='id_$field.0' onchange="previewTheme(this);" >
<select name='$field.0' id='id_$field.0' {{ if $field.5 }}onchange="previewTheme(this);"{{ endif }} >
{{ for $field.4 as $opt=>$val }}<option value="$opt" {{ if $opt==$field.2 }}selected="selected"{{ endif }}>$val</option>{{ endfor }}
</select>
<span class='field_help'>$field.3</span>

View File

@ -4,6 +4,7 @@
<input type='hidden' name='form_security_token' value='$form_security_token'>
{{inc field_themeselect.tpl with $field=$theme }}{{endinc}}
{{inc field_themeselect.tpl with $field=$mobile_theme }}{{endinc}}
{{inc field_input.tpl with $field=$ajaxint }}{{endinc}}
{{inc field_input.tpl with $field=$itemspage_network }}{{endinc}}
{{inc field_checkbox.tpl with $field=$nosmile}}{{endinc}}

View File

@ -11,6 +11,11 @@
<div id="contact-edit-drop-link-end"></div>
<div class="vcard">
<div class="fn">$name</div>
<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="$photo" alt="$name" /></div>
</div>
<div id="contact-edit-nav-wrapper" >
<div id="contact-edit-links">

View File

@ -0,0 +1,2 @@
$follow_widget

View File

@ -24,16 +24,17 @@
<?php } else { ?>
<div class='main-container'>
<div class='main-content-container'>
<aside><?php if(x($page,'aside')) echo $page['aside']; ?></aside>
<!-- <div class='main-content-container'>-->
<div class='section-wrapper'>
<?php if( ($a->module === 'settings') && x($page,'aside')) echo $page['aside']; ?>
<section><?php if(x($page,'content')) echo $page['content']; ?>
<div id="page-footer"></div>
</section>
</div>
<right_aside><?php if(x($page,'right_aside')) echo $page['right_aside']; ?></right_aside>
<?php if( ($a->module === 'contacts') && x($page,'aside')) echo $page['aside']; ?>
<footer><?php if(x($page,'footer')) echo $page['footer']; ?></footer>
</div>
<!-- </div>-->
</div>
<?php } ?>
<?php if(x($page,'end')) echo $page['end']; ?>

View File

@ -1,7 +1,7 @@
<div class='field select'>
<label for='id_$field.0'>$field.1</label>
<select name='$field.0' id='id_$field.0' onchange="previewTheme(this);" >
<select name='$field.0' id='id_$field.0' {{ if $field.5 }}onchange="previewTheme(this);"{{ endif }} >
{{ for $field.4 as $opt=>$val }}<option value="$opt" {{ if $opt==$field.2 }}selected="selected"{{ endif }}>$val</option>{{ endfor }}
</select>
<span class='field_help'>$field.3</span>

View File

@ -0,0 +1,11 @@
<div class="widget{{ if $class }} $class{{ endif }}">
<!-- {{if $title}}<h3>$title</h3>{{endif}}-->
{{if $desc}}<div class="desc">$desc</div>{{endif}}
<ul class="tabs">
{{ for $items as $item }}
<li class="tool"><a href="$item.url" class="tab {{ if $item.selected }}selected{{ endif }}">$item.label</a></li>
{{ endfor }}
</ul>
</div>

View File

@ -684,7 +684,7 @@ Array.prototype.remove = function(item) {
function previewTheme(elm) {
theme = $j(elm).val();
$j.getJSON('pretheme?f=&theme=' + theme,function(data) {
$j('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><div id="theme-version">' + data.version + '</div><div id="theme-credits">' + data.credits + '</div><a href="' + data.img + '"><img src="' + data.img + '" width="320" height="240" alt="' + theme + '" /></a>');
$j('#theme-preview').html('<div id="theme-desc">' + data.desc + '</div><div id="theme-version">' + data.version + '</div><div id="theme-credits">' + data.credits + '</div>');
});
}

File diff suppressed because one or more lines are too long

View File

@ -8,7 +8,7 @@
<!-- <a id="system-menu-link" class="nav-link" href="#system-menu" title="Menu">Menu</a>-->
<div class="nav-button-container">
<!-- <a class="system-menu-link nav-link" href="#system-menu" title="Menu">-->
<img rel="#system-menu-list" class="nav-link" src="/view/theme/frost-mobile/images/menu.png">
<img rel="#system-menu-list" class="nav-link" src="$baseurl/view/theme/frost-mobile/images/menu.png">
<!-- </a>-->
<ul id="system-menu-list" class="nav-menu-list">
{{ if $nav.login }}
@ -57,7 +57,7 @@
<!-- <a id="nav-notifications-linkmenu" class="nav-link" href="$nav.notifications.0" rel="#nav-notifications-menu" title="$nav.notifications.1">$nav.notifications.1</a>-->
<div class="nav-button-container">
<!-- <a id="nav-notifications-linkmenu" class="nav-link" href="$nav.notifications.0" rel="#nav-notifications-menu" title="$nav.notifications.1">-->
<img rel="#nav-notifications-menu" class="nav-link" src="/view/theme/frost-mobile/images/notifications.png">
<img rel="#nav-notifications-menu" class="nav-link" src="$baseurl/view/theme/frost-mobile/images/notifications.png">
<!-- </a>-->
<span id="notify-update" class="nav-ajax-left"></span>
<ul id="nav-notifications-menu" class="notifications-menu-popup">
@ -71,7 +71,7 @@
<!-- <a id="contacts-menu-link" class="nav-link" href="#contacts-menu" title="Contacts">Contacts</a>-->
<div class="nav-button-container">
<!-- <a class="contacts-menu-link nav-link" href="#contacts-menu" title="Contacts">-->
<img rel="#contacts-menu-list" class="nav-link" src="/view/theme/frost-mobile/images/contacts.png">
<img rel="#contacts-menu-list" class="nav-link" src="$baseurl/view/theme/frost-mobile/images/contacts.png">
<!--</a>-->
{{ if $nav.introductions }}
<span id="intro-update" class="nav-ajax-left"></span>
@ -95,7 +95,7 @@
<!-- <a id="nav-messages-link" class="nav-link $nav.messages.2 $sel.messages nav-load-page-link" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>-->
<div class="nav-button-container">
<a id="nav-messages-link" class="$nav.messages.2 $sel.messages nav-load-page-link" href="$nav.messages.0" title="$nav.messages.3" >
<img src="/view/theme/frost-mobile/images/message.png" class="nav-link">
<img src="$baseurl/view/theme/frost-mobile/images/message.png" class="nav-link">
</a>
<span id="mail-update" class="nav-ajax-left"></span>
</div>
@ -104,7 +104,7 @@
<!-- <a id="network-menu-link" class="nav-link" href="#network-menu" title="Network">Network</a>-->
<div class="nav-button-container">
<!-- <a class="network-menu-link nav-link" href="#network-menu" title="Network">-->
<img rel="#network-menu-list" class="nav-link" src="/view/theme/frost-mobile/images/network.png">
<img rel="#network-menu-list" class="nav-link" src="$baseurl/view/theme/frost-mobile/images/network.png">
<!-- </a>-->
{{ if $nav.network }}
<span id="net-update" class="nav-ajax-left"></span>

View File

@ -54,7 +54,7 @@ img { border :0px; }
background: url(login-bg.gif) no-repeat;
background-position: 0 50%;
padding-left: 18px;
width: 252px;
width: 212px;
margin-left: 20px;
}
.openid:hover {
@ -288,9 +288,8 @@ div.main-container {
/* aside */
aside {
/* display: block;*/
display: none;
/*aside {
display: block;
min-height: 112px;
width: 250px;
@ -299,9 +298,7 @@ aside {
margin: 1em 0px 0px 0px;
position: absolute;
/* float:left;*/
}
}*/
#dfrn-request-link {
display: block;
@ -409,7 +406,15 @@ footer {
}
#theme-preview {
margin: 15px 0 15px 150px;
margin: 15px 0 15px 15px;
}
#theme-version {
display: block;
font-weight: bold;
}
#theme-credits {
margin-top: 15px;
margin-bottom: 15px;
}
/* from default */
@ -486,11 +491,11 @@ footer {
}
.settings-widget .selected {
padding: 3px;
/* -moz-border-radius: 3px;*/
/* padding: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
border: 1px solid #CCCCCC;
border: 1px solid #CCCCCC;*/
background: #F8F8F8;
font-weight: bold;
}
@ -1017,7 +1022,11 @@ input#dfrn-url {
margin-bottom: 20px;
}
.settings-widget ul {
#id_theme,
#id_mobile_theme {
width: 280px;
}
/*.settings-widget ul {
list-style-type: none;
padding: 0px;
}
@ -1025,7 +1034,7 @@ input#dfrn-url {
.settings-widget li {
margin-left: 24px;
margin-bottom: 8px;
}
}*/
#gender-select, #marital-select, #sexual-select {
@ -1037,6 +1046,11 @@ input#dfrn-url {
float: left;
}
#contacts-search-submit {
font-size: 18px;
padding: 5px 10px;
}
#contacts-display-wrapper {
padding-left: 35px;
}
@ -1053,7 +1067,7 @@ input#dfrn-url {
padding-left: 15px;
padding-right: 15px;
width: 95px;
height: 170px;
height: 200px;
}
#contacts-search-end {
margin-bottom: 10px;
@ -2408,7 +2422,9 @@ a.mail-list-link {
margin-top: 5px;
}
#side-follow-submit, #side-peoplefind-submit {
margin-top: 15px;
font-size: 18px;
padding: 5px 10px;
margin: 10px 0px 10px 10px;
}
#side-match-link {
@ -2421,7 +2437,7 @@ aside input[type='text'] {
.widget {
border: 1px solid #DDDDDD;
padding: 8px;
padding: 18px;
margin-top: 5px;
/* -moz-border-radius:5px;*/
-webkit-border-radius:5px;
@ -3336,7 +3352,7 @@ aside input[type='text'] {
margin-bottom: 10px;
padding-bottom: 10px;
overflow: auto;
width: 100%
/* width: 100%*/
}
.field label {
@ -3347,9 +3363,13 @@ aside input[type='text'] {
.field input,
.field textarea {
width: 270px;
width: 230px;
margin-left: 20px;
}
.field input[type=checkbox],
.field input[type=radio] {
width: auto;
}
.field textarea { height: 100px; }
.field_help {
display: block;

View File

@ -4,7 +4,7 @@
* Name: Frost--mobile version
* Description: Like frosted glass
* Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0).
* Version: Version 0.2.10
* Version: Version 0.2.11
* Author: Zach P <techcity@f.shmuz.in>
* Maintainer: Zach P <techcity@f.shmuz.in>
*/

View File

@ -1,7 +1,7 @@
<div class='field select'>
<label for='id_$field.0'>$field.1</label>
<select name='$field.0' id='id_$field.0' onchange="previewTheme(this);" >
<select name='$field.0' id='id_$field.0' {{ if $field.5 }}onchange="previewTheme(this);"{{ endif }} >
{{ for $field.4 as $opt=>$val }}<option value="$opt" {{ if $opt==$field.2 }}selected="selected"{{ endif }}>$val</option>{{ endfor }}
</select>
<span class='field_help'>$field.3</span>

View File

@ -375,6 +375,14 @@ div.wall-item-content-wrapper.shiny {
#theme-preview {
margin: 15px 0 15px 150px;
}
#theme-version {
display: block;
font-weight: bold;
}
#theme-credits {
margin-top: 15px;
margin-bottom: 15px;
}
/* from default */
#jot-perms-icon,
@ -3167,6 +3175,10 @@ aside input[type='text'] {
.field textarea {
width: 400px;
}
.field input[type=checkbox],
.field input[type=radio] {
width: auto;
}
.field textarea { height: 100px; }
.field_help {
display: block;
@ -3823,11 +3835,4 @@ ul.notifications-menu-popup {
width: 130px;
}
#theme-version {
display: block;
font-weight: bold;
}
#theme-credits {
margin-top: 15px;
margin-bottom: 15px;
}

View File

@ -4,7 +4,7 @@
* Name: Frost
* Description: Like frosted glass
* Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0).
* Version: Version 0.2.8
* Version: Version 0.2.9
* Author: Zach P <techcity@f.shmuz.in>
* Maintainer: Zach P <techcity@f.shmuz.in>
*/

View File

@ -1,6 +1,6 @@
<a name="$item.id" ></a>
<!--<div class="wall-item-outside-wrapper $item.indent$item.previewing" id="wall-item-outside-wrapper-$item.id" >-->
<div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-content-wrapper $item.indent $item.previewing" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info" id="wall-item-info-$item.id">
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id"
onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"

View File

@ -7,7 +7,7 @@
<div id="tread-wrapper-$item.id" class="tread-wrapper $item.toplevel">
<a name="$item.id" ></a>
<!--<div class="wall-item-outside-wrapper $item.indent$item.previewing" id="wall-item-outside-wrapper-$item.id" >-->
<div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-content-wrapper $item.indent $item.previewing" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info" id="wall-item-info-$item.id">
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id"
onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"

View File

@ -1,6 +1,6 @@
<a name="$item.id" ></a>
<!--<div class="wall-item-outside-wrapper $item.indent$item.previewing wallwall" id="wall-item-outside-wrapper-$item.id" >-->
<div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-content-wrapper $item.indent $item.previewing wallwall" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info wallwall" id="wall-item-info-$item.id">
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
<a href="$item.owner_url" target="redir" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">

View File

@ -7,7 +7,7 @@
<div id="tread-wrapper-$item.id" class="tread-wrapper $item.toplevel">
<a name="$item.id" ></a>
<!--<div class="wall-item-outside-wrapper $item.indent$item.previewing wallwall" id="wall-item-outside-wrapper-$item.id" >-->
<div class="wall-item-content-wrapper $item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-content-wrapper $item.indent $item.previewing wallwall" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info wallwall" id="wall-item-info-$item.id">
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
<a href="$item.owner_url" target="redir" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">

View File

@ -80,6 +80,9 @@
@ItemColor: @Grey5;
@ItemColorDimmed: @Grey3;
@BlockquoteBackgroundColor: #FFFFFF;
@BlockquoteBorderColor: #e6e6e6;
@CommentBoxEmptyColor: @Grey3;
@CommentBoxEmptyBorderColor: @Grey3;
@CommentBoxFullColor: @Grey5;

View File

@ -387,6 +387,12 @@ a:hover {
color: #005c94;
text-decoration: underline;
}
blockquote {
background: #ffffff;
padding: 1em;
margin-left: 1em;
border-left: 1em solid #e6e6e6;
}
code {
font-family: Courier, monospace;
white-space: pre;
@ -398,6 +404,9 @@ code {
padding: 10px;
margin-top: 20px;
}
textarea {
font-size: 20px;
}
#panel {
position: absolute;
width: 10em;
@ -1063,7 +1072,7 @@ section {
padding: 0.3em;
}
.wall-item-comment-wrapper .comment-edit-text-full {
font-size: 14px;
font-size: 20px;
height: 4em;
color: #2d2d2d;
border: 1px solid #2d2d2d;
@ -1155,6 +1164,9 @@ section {
.children .hide-comments-outer {
margin-left: 60px;
}
.children .wwto {
display: none;
}
.children .comment-edit-preview {
width: 660px;
}
@ -1303,6 +1315,9 @@ span[id^="showmore-wrap"] {
border: 1px solid #999999;
padding: 0.3em;
}
#jot .profile-jot-text:focus {
font-size: 20px;
}
#jot #jot-tools {
margin: 0px;
padding: 0px;
@ -2113,28 +2128,3 @@ footer {
.videobb:hover {
background-position: -112px -16px;
}
.attachtype {
display: block;
width: 20px;
height: 23px;
float: left;
background-image: url('../../../images/content-types.png');
}
.body-attach {
margin-top: 10px;
}
.type-video {
background-position: 0px 0px;
}
.type-image {
background-position: -20px 0px;
}
.type-audio {
background-position: -40px 0px;
}
.type-text {
background-position: -60px 0px;
}
.type-unkn {
background-position: -80px 0px;
}

View File

@ -78,6 +78,9 @@
@ThreadBottomBorderColor: @Grey2;
@ShinyBorderColor: @Green4;
@BlockquoteBackgroundColor: #FFFFFF;
@BlockquoteBorderColor: #e6e6e6;
@CommentBoxEmptyColor: @Grey3;
@CommentBoxEmptyBorderColor: @Grey3;
@CommentBoxFullColor: @Grey5;

View File

@ -387,6 +387,12 @@ a:hover {
color: #009100;
text-decoration: underline;
}
blockquote {
background: #ffffff;
padding: 1em;
margin-left: 1em;
border-left: 1em solid #e6e6e6;
}
code {
font-family: Courier, monospace;
white-space: pre;
@ -398,6 +404,9 @@ code {
padding: 10px;
margin-top: 20px;
}
textarea {
font-size: 20px;
}
#panel {
position: absolute;
width: 10em;
@ -1063,7 +1072,7 @@ section {
padding: 0.3em;
}
.wall-item-comment-wrapper .comment-edit-text-full {
font-size: 14px;
font-size: 20px;
height: 4em;
color: #2d2d2d;
border: 1px solid #2d2d2d;
@ -1155,6 +1164,9 @@ section {
.children .hide-comments-outer {
margin-left: 60px;
}
.children .wwto {
display: none;
}
.children .comment-edit-preview {
width: 660px;
}
@ -1303,6 +1315,9 @@ span[id^="showmore-wrap"] {
border: 1px solid #999999;
padding: 0.3em;
}
#jot .profile-jot-text:focus {
font-size: 20px;
}
#jot #jot-tools {
margin: 0px;
padding: 0px;
@ -2113,28 +2128,3 @@ footer {
.videobb:hover {
background-position: -112px -16px;
}
.attachtype {
display: block;
width: 20px;
height: 23px;
float: left;
background-image: url('../../../images/content-types.png');
}
.body-attach {
margin-top: 10px;
}
.type-video {
background-position: 0px 0px;
}
.type-image {
background-position: -20px 0px;
}
.type-audio {
background-position: -40px 0px;
}
.type-text {
background-position: -60px 0px;
}
.type-unkn {
background-position: -80px 0px;
}

View File

@ -51,6 +51,14 @@ a:hover {color: @LinkHover; text-decoration: underline; }
.fakelink { color: @Link; text-decoration: none; cursor:pointer; }
.fakelink:hover { color: @LinkHover; text-decoration: underline; }
blockquote {
background:@BlockquoteBackgroundColor;
padding: 1em;
margin-left: 1em;
border-left: 1em solid @BlockquoteBorderColor;
}
code {
font-family: Courier, monospace;
white-space: pre;
@ -63,6 +71,9 @@ code {
margin-top: 20px;
}
textarea { font-size: 20px; }
#panel {
position: absolute;
width: 10em;
@ -531,7 +542,7 @@ section {
padding:0.3em;
}
.comment-edit-text-full {
font-size: 14px;
font-size: 20px;
height: 4em;
color: @CommentBoxFullColor;
border: 1px solid @CommentBoxFullBorderColor;
@ -603,11 +614,14 @@ section {
}
.wwto .contact-photo { width: 25px; height: 25px; }
/* threaded comments */
.children {
margin-top: 1em;
.hide-comments-outer { margin-left:60px; }
.wwto { display: none; }
.comment-edit-preview { width: 660px;
.wall-item-container { width: 610px; }
}
@ -730,6 +744,8 @@ span[id^="showmore-wrap"] {
color: @CommentBoxEmptyColor;
border: 1px solid @CommentBoxEmptyBorderColor;
padding:0.3em;
&:focus { font-size: 20px; }
}
#jot-tools {
@ -1434,18 +1450,4 @@ footer { height: 100px; display: table-row; }
.videobb { background-position: -112px 0px; }
.videobb:hover { background-position: -112px -16px; }
.attachtype {
display: block; width: 20px; height: 23px;
float: left;
background-image: url('../../../images/content-types.png');
}
.body-attach {
margin-top: 10px;
}
.type-video { background-position: 0px 0px; }
.type-image { background-position: -20px 0px; }
.type-audio { background-position: -40px 0px; }
.type-text { background-position: -60px 0px; }
.type-unkn { background-position: -80px 0px; }

View File

@ -1,6 +1,6 @@
{{ for $threads as $item }}
<div id="tread-wrapper-$item.id" class="tread-wrapper {{ if $item.threaded }}threaded{{ endif }}">
<div id="tread-wrapper-$item.id" class="tread-wrapper {{ if $item.threaded }}threaded{{ endif }} $item.toplevel">
{{ if $item.type == tag }}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,66 @@
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
{{ if $threaded }}
<span id="hide-commentbox-$id" class="hide-commentbox fakelink" onclick="showHideCommentBox($id);">$comment</span>
<form class="comment-edit-form" style="display: none;" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
{{ else }}
<form class="comment-edit-form" style="display: block;" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
{{ endif }}
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="parent" value="$parent" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="jsreload" value="$jsreload" />
<input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
<div class="comment-edit-photo" id="comment-edit-photo-$id" >
<a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>
</div>
<div class="comment-edit-photo-end"></div>
<ul class="comment-edit-bb-$id">
<li><a class="editicon boldbb shadow"
style="cursor: pointer;" title="$edbold"
onclick="insertFormatting('$comment','b', $id);"></a></li>
<li><a class="editicon italicbb shadow"
style="cursor: pointer;" title="$editalic"
onclick="insertFormatting('$comment','i', $id);"></a></li>
<li><a class="editicon underlinebb shadow"
style="cursor: pointer;" title="$eduline"
onclick="insertFormatting('$comment','u', $id);"></a></li>
<li><a class="editicon quotebb shadow"
style="cursor: pointer;" title="$edquote"
onclick="insertFormatting('$comment','quote', $id);"></a></li>
<li><a class="editicon codebb shadow"
style="cursor: pointer;" title="$edcode"
onclick="insertFormatting('$comment','code', $id);"></a></li>
<li><a class="editicon imagebb shadow"
style="cursor: pointer;" title="$edimg"
onclick="insertFormatting('$comment','img', $id);"></a></li>
<li><a class="editicon urlbb shadow"
style="cursor: pointer;" title="$edurl"
onclick="insertFormatting('$comment','url', $id);"></a></li>
<li><a class="editicon videobb shadow"
style="cursor: pointer;" title="$edvideo"
onclick="insertFormatting('$comment','video', $id);"></a></li>
</ul>
<div class="comment-edit-bb-end"></div>
<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);cmtBbOpen($id);" onBlur="commentClose(this,$id);" >$comment</textarea>
{{ if $qcomment }}
<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
<option value=""></option>
{{ for $qcomment as $qc }}
<option value="$qc">$qc</option>
{{ endfor }}
</select>
{{ endif }}
<div class="comment-edit-text-end"></div>
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
<input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
<span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
<div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
</div>
<div class="comment-edit-end"></div>
</form>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

View File

@ -0,0 +1,24 @@
<div class="contact-entry-wrapper" id="contact-entry-wrapper-$contact.id" >
<div class="contact-entry-photo-wrapper" >
<div class="contact-entry-photo mframe" id="contact-entry-photo-$contact.id"
onmouseover="if (typeof t$contact.id != 'undefined') clearTimeout(t$contact.id); openMenu('contact-photo-menu-button-$contact.id')"
onmouseout="t$contact.id=setTimeout('closeMenu(\'contact-photo-menu-button-$contact.id\'); closeMenu(\'contact-photo-menu-$contact.id\');',200)" >
<a href="$contact.url" title="$contact.img_hover" /><img src="$contact.thumb" $contact.sparkle alt="$contact.name" /></a>
{{ if $contact.photo_menu }}
<span onclick="openClose('contact-photo-menu-$contact.id');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-$contact.id">menu</span>
<div class="contact-photo-menu" id="contact-photo-menu-$contact.id">
<ul>
$contact.photo_menu
</ul>
</div>
{{ endif }}
</div>
</div>
<div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-$contact.id" >$contact.name</div>
<div class="contact-entry-end" ></div>
</div>

BIN
view/theme/smoothly/dot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 B

View File

@ -0,0 +1,8 @@
<div class="group-delete-wrapper" id="group-delete-wrapper-$id" >
<a href="group/drop/$id"
onclick="return confirmDelete();"
title="$delete"
id="group-delete-icon-$id"
class="drophide group-delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" >Delete Group</a>
</div>
<div class="group-delete-end"></div>

View File

@ -0,0 +1,16 @@
<h2>$title</h2>
<div id="group-edit-wrapper" >
<form action="group/$gid" id="group-edit-form" method="post" >
<div id="group-edit-name-wrapper" >
<label id="group-edit-name-label" for="group-edit-name" >$gname</label>
<input type="text" id="group-edit-name" name="groupname" value="$name" />
<input type="submit" name="submit" value="$submit">
$drop
</div>
<div id="group-edit-name-end"></div>
<div id="group-edit-desc">$desc</div>
<div id="group-edit-select-end" ></div>
</form>
</div>

View File

@ -0,0 +1,28 @@
<div class="widget" id="group-sidebar">
<h3>$title</h3>
<div id="sidebar-group-list">
<ul id="sidebar-group-ul">
{{ for $groups as $group }}
<li class="sidebar-group-li">
{{ if $group.cid }}
<input type="checkbox"
class="{{ if $group.selected }}ticked{{ else }}unticked {{ endif }} action"
onclick="contactgroupChangeMember('$group.id','$group.cid');return true;"
{{ if $group.ismember }}checked="checked"{{ endif }}
/>
{{ endif }}
{{ if $group.edit }}
<a class="groupsideedit" href="$group.edit.href"><span class="icon small-pencil"></span></a>
{{ endif }}
<a class="sidebar-group-element {{ if $group.selected }}group-selected{{ endif }}" href="$group.href">$group.text</a>
</li>
{{ endfor }}
</ul>
</div>
<div id="sidebar-new-group">
<a href="group/new">$createtext</a>
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 911 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -0,0 +1,359 @@
<script language="javascript" type="text/javascript" src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
var editor=false;
var textlen = 0;
var plaintext = '$editselect';
function initEditor(cb) {
if (editor==false) {
$("#profile-jot-text-loading").show();
if(plaintext == 'none') {
$("#profile-jot-text-loading").hide();
$("#profile-jot-text").css({ 'height': 200, 'color': '#000' });
$(".jothidden").show();
editor = true;
$("a#jot-perms-icon").fancybox({
'transitionIn' : 'elastic',
'transitionOut' : 'elastic'
});
$("#profile-jot-submit-wrapper").show();
{{ if $newpost }}
$("#profile-upload-wrapper").show();
$("#profile-attach-wrapper").show();
$("#profile-link-wrapper").show();
$("#profile-video-wrapper").show();
$("#profile-audio-wrapper").show();
$("#profile-location-wrapper").show();
$("#profile-nolocation-wrapper").show();
$("#profile-title-wrapper").show();
$("#profile-jot-plugin-wrapper").show();
$("#jot-preview-link").show();
{{ endif }}
if (typeof cb!="undefined") cb();
return;
}
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: /(profile-jot-text|prvmail-text)/,
plugins : "bbcode,paste,fullscreen,autoresize",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code,fullscreen",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code",
//theme_advanced_resizing : true,
//theme_advanced_statusbar_location : "bottom",
paste_text_sticky : true,
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
theme_advanced_path : false,
setup : function(ed) {
cPopup = null;
ed.onKeyDown.add(function(ed,e) {
if(cPopup !== null)
cPopup.onkey(e);
});
ed.onKeyUp.add(function(ed, e) {
var txt = tinyMCE.activeEditor.getContent();
match = txt.match(/@([^ \n]+)$/);
if(match!==null) {
if(cPopup === null) {
cPopup = new ACPopup(this,baseurl+"/acl");
}
if(cPopup.ready && match[1]!==cPopup.searchText) cPopup.search(match[1]);
if(! cPopup.ready) cPopup = null;
}
else {
if(cPopup !== null) { cPopup.close(); cPopup = null; }
}
textlen = txt.length;
if(textlen != 0 && $('#jot-perms-icon').is('.unlock')) {
$('#profile-jot-desc').html(ispublic);
}
else {
$('#profile-jot-desc').html('&nbsp;');
}
//Character count
if(textlen <= 140) {
$('#character-counter').removeClass('red');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('grey');
}
if((textlen > 140) && (textlen <= 420)) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('red');
$('#character-counter').addClass('orange');
}
if(textlen > 420) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('red');
}
$('#character-counter').text(textlen);
});
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
$("#profile-jot-text-loading").hide();
$(".jothidden").show();
$("#profile-jot-submit-wrapper").show();
{{ if $newpost }}
$("#profile-upload-wrapper").show();
$("#profile-attach-wrapper").show();
$("#profile-link-wrapper").show();
$("#profile-video-wrapper").show();
$("#profile-audio-wrapper").show();
$("#profile-location-wrapper").show();
$("#profile-nolocation-wrapper").show();
$("#profile-title-wrapper").show();
$("#profile-jot-plugin-wrapper").show();
$("#jot-preview-link").show();
{{ endif }}
$("#character-counter").show();
if (typeof cb!="undefined") cb();
});
}
});
editor = true;
// setup acl popup
$("a#jot-perms-icon").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none'
});
} else {
if (typeof cb!="undefined") cb();
}
} // initEditor
</script>
<script type="text/javascript" src="js/ajaxupload.js" ></script>
<script>
var ispublic = '$ispublic';
$(document).ready(function() {
/* enable tinymce on focus */
$("#profile-jot-text").focus(function(){
if (editor) return;
$(this).val("");
initEditor();
});
var uploader = new window.AjaxUpload(
'wall-image-upload',
{ action: 'wall_upload/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
addeditortext(response);
$('#profile-rotator').hide();
}
}
);
var file_uploader = new window.AjaxUpload(
'wall-file-upload',
{ action: 'wall_attach/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
addeditortext(response);
$('#profile-rotator').hide();
}
}
);
$('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() {
var selstr;
$('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() {
selstr = $(this).text();
$('#jot-perms-icon').removeClass('unlock').addClass('lock');
$('#jot-public').hide();
$('.profile-jot-net input').attr('disabled', 'disabled');
});
if(selstr == null) {
$('#jot-perms-icon').removeClass('lock').addClass('unlock');
$('#jot-public').show();
$('.profile-jot-net input').attr('disabled', false);
}
}).trigger('change');
});
function deleteCheckedItems() {
var checkedstr = '';
$('.item-select').each( function() {
if($(this).is(':checked')) {
if(checkedstr.length != 0) {
checkedstr = checkedstr + ',' + $(this).val();
}
else {
checkedstr = $(this).val();
}
}
});
$.post('item', { dropitems: checkedstr }, function(data) {
window.location.reload();
});
}
function jotGetLink() {
reply = prompt("$linkurl");
if(reply && reply.length) {
reply = bin2hex(reply);
$('#profile-rotator').show();
$.get('parse_url?binurl=' + reply, function(data) {
addeditortext(data);
$('#profile-rotator').hide();
});
}
}
function jotVideoURL() {
reply = prompt("$vidurl");
if(reply && reply.length) {
addeditortext('[video]' + reply + '[/video]');
}
}
function jotAudioURL() {
reply = prompt("$audurl");
if(reply && reply.length) {
addeditortext('[audio]' + reply + '[/audio]');
}
}
function jotGetLocation() {
reply = prompt("$whereareu", $('#jot-location').val());
if(reply && reply.length) {
$('#jot-location').val(reply);
}
}
function jotTitle() {
reply = prompt("$title", $('#jot-title').val());
if(reply && reply.length) {
$('#jot-title').val(reply);
}
}
function jotShare(id) {
$('#like-rotator-' + id).show();
$.get('share/' + id, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
$('#like-rotator-' + id).hide();
$(window).scrollTop(0);
});
});
}
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
if(linkFound)
event.preventDefault();
}
function linkdrop(event) {
var reply = event.dataTransfer.getData("text/uri-list");
event.target.textContent = reply;
event.preventDefault();
if(reply && reply.length) {
reply = bin2hex(reply);
$('#profile-rotator').show();
$.get('parse_url?binurl=' + reply, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
$('#profile-rotator').hide();
});
});
}
}
function itemTag(id) {
reply = prompt("$term");
if(reply && reply.length) {
reply = reply.replace('#','');
if(reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('tagger/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
}
}
}
function itemFiler(id) {
var bordercolor = $("input").css("border-color");
$.get('filer/', function(data){
$.fancybox(data);
$("#id_term").keypress(function(){
$(this).css("border-color",bordercolor);
})
$("#select_term").change(function(){
$("#id_term").css("border-color",bordercolor);
})
$("#filer_save").click(function(e){
e.preventDefault();
reply = $("#id_term").val();
if(reply && reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('filer/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
$.fancybox.close();
} else {
$("#id_term").css("border-color","#FF0000");
}
return false;
});
});
}
function jotClearLocation() {
$('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide();
}
function addeditortext(data) {
if(plaintext == 'none') {
var currentText = $("#profile-jot-text").val();
$("#profile-jot-text").val(currentText + data);
}
else
tinyMCE.execCommand('mceInsertRawHTML',false,data);
}
$geotag
</script>

View File

@ -0,0 +1,74 @@
<div id="profile-jot-wrapper" >
<div id="profile-jot-banner-wrapper">
<div id="profile-jot-desc" >&nbsp;</div>
<div id="character-counter" class="grey" style="display: none;">0</div>
</div>
<div id="profile-jot-banner-end"></div>
<form id="profile-jot-form" action="$action" method="post" >
<input type="hidden" name="type" value="$ptyp" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="location" id="jot-location" value="$defloc" />
<input type="hidden" name="coord" id="jot-coord" value="" />
<input type="hidden" name="post_id" value="$post_id" />
<input type="hidden" name="preview" id="jot-preview" value="0" />
<div id="jot-title-wrap"><input name="title" id="jot-title" type="text" placeholder="$placeholdertitle" value="$title" class="jothidden" style="display:none"></div>
<div id="jot-category-wrap"><input name="category" id="jot-category" type="text" placeholder="$placeholdercategory" value="$category" class="jothidden" style="display:none" /></div>
<div id="jot-text-wrap">
<img id="profile-jot-text-loading" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
<textarea rows="5" cols="88" class="profile-jot-text" id="profile-jot-text" name="body" >{{ if $content }}$content{{ else }}$share{{ endif }}</textarea>
</div>
<div id="profile-upload-wrapper" class="jot-tool" style="display: none;" >
<div id="wall-image-upload-div" ><a onclick="return false;" id="wall-image-upload" class="icon border camera" title="$upload"></a></div>
</div>
<div id="profile-attach-wrapper" class="jot-tool" style="display: none;" >
<div id="wall-file-upload-div" ><a href="#" onclick="return false;" id="wall-file-upload" class="icon border attach" title="$attach"></a></div>
</div>
<div id="profile-link-wrapper" class="jot-tool" style="display: none;" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" >
<a href="#" id="profile-link" class="icon border link" title="$weblink" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;"></a>
</div>
<div id="profile-video-wrapper" class="jot-tool" style="display: none;" >
<a href="#" id="profile-video" class="icon border video" title="$video" onclick="jotVideoURL(); return false;"></a>
</div>
<div id="profile-audio-wrapper" class="jot-tool" style="display: none;" >
<a href="#" id="profile-audio" class="icon border audio" title="$audio" onclick="jotAudioURL(); return false;"></a>
</div>
<div id="profile-location-wrapper" class="jot-tool" style="display: none;" >
<a href="#" id="profile-location" class="icon border globe" title="$setloc" onclick="jotGetLocation(); return false;"></a>
</div>
<div id="profile-nolocation-wrapper" class="jot-tool" style="display: none;" >
<a href="#" id="profile-nolocation" class="icon border noglobe" title="$noloc" onclick="jotClearLocation(); return false;"></a>
</div>
<span onclick="preview_post();" id="jot-preview-link" class="fakelink" style="display: none;" >$preview</span>
<div id="profile-jot-submit-wrapper" style="display:none;padding-left: 400px;">
<input type="submit" id="profile-jot-submit" name="submit" value="$share" />
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" >
<a href="#profile-jot-acl-wrapper" id="jot-perms-icon" class="icon $lockstate sharePerms" title="$permset"></a>$bang</div>
</div>
<div id="profile-jot-plugin-wrapper" style="display: none;">
$jotplugins
</div>
<div id="profile-jot-tools-end"></div>
<div id="jot-preview-content" style="display:none;"></div>
<div style="display: none;">
<div id="profile-jot-acl-wrapper" style="width:auto;height:auto;overflow:auto;">
$acl
<hr style="clear:both"/>
<div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle" />
<div id="profile-jot-email-end"></div>
$jotnets
</div>
</div>
<div id="profile-jot-end"></div>
</form>
</div>
{{ if $content }}<script>initEditor();</script>{{ endif }}

View File

@ -0,0 +1,10 @@
<div id="lang-select-icon" class="icon s22 language" title="$title" onclick="openClose('language-selector');" ></div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{ for $langs.0 as $v=>$l }}
<option value="$v" {{if $v==$langs.1}}selected="selected"{{endif}}>$l</option>
{{ endfor }}
</select>
</form>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

View File

@ -0,0 +1,43 @@
<div class="login-form">
<form action="$dest_url" method="post" >
<input type="hidden" name="auth-params" value="login" />
<div id="login_standard">
<img style="float:left; margin-right:20px" src="/images/friendica-128.png" title="friendica">
{{ inc field_input.tpl with $field=$lname }}{{ endinc }}
{{ inc field_password.tpl with $field=$lpassword }}{{ endinc }}
</div>
{{ if $openid }}
<br />
<div id="login_openid">
{{ inc field_openid.tpl with $field=$lopenid }}{{ endinc }}
</div>
{{ endif }}
<!-- <br />
<div class="login-extra-links">
By signing in you agree to the latest <a href="tos.html" title="$tostitle" id="terms-of-service-link" >$toslink</a> and <a href="privacy.html" title="$privacytitle" id="privacy-link" >$privacylink</a>
</div>
-->
<br />
<div id="login-submit-wrapper" >
<input type="submit" name="submit" id="login-submit-button" value="$login" />
</div>
<br /><br />
<div class="login-extra-links">
{{ if $register }} <a href="register" title="$register.title" id="register-link">$register.desc</a><br />
{{ endif }} <a href="lostpass" title="$lostpass" id="lost-password-link" >$lostlink</a>
</div>
{{ for $hiddens as $k=>$v }}
<input type="hidden" name="$k" value="$v" />
{{ endfor }}
</form>
</div>
<script type="text/javascript">window.loginName = "$lname.0";</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

View File

@ -0,0 +1,3 @@
<h3>$messages</h3>
$tab_content

View File

@ -0,0 +1,13 @@
<div class="profile-match-wrapper">
<div class="profile-match-photo">
<a href="$url">
<img src="$photo" alt="$name" />
</a>
</div>
<span><a href="$url">$name</a>$inttxt<br />$tags</span>
<div class="profile-match-break"></div>
{{ if $connlnk }}
<div class="profile-match-connect"><a href="$connlnk" title="$conntxt">$conntxt</a></div>
{{ endif }}
<div class="profile-match-end"></div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

View File

@ -0,0 +1,61 @@
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
<form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="parent" value="$parent" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="jsreload" value="$jsreload" />
<input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
<div class="comment-edit-photo" id="comment-edit-photo-$id" >
<a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>
</div>
<div class="comment-edit-photo-end"></div>
<div id="mod-cmnt-wrap-$id" class="mod-cmnt-wrap" style="display:none">
<div id="mod-cmnt-name-lbl-$id" class="mod-cmnt-name-lbl">$lbl_modname</div>
<input type="text" id="mod-cmnt-name-$id" class="mod-cmnt-name" name="mod-cmnt-name" value="$modname" />
<div id="mod-cmnt-email-lbl-$id" class="mod-cmnt-email-lbl">$lbl_modemail</div>
<input type="text" id="mod-cmnt-email-$id" class="mod-cmnt-email" name="mod-cmnt-email" value="$modemail" />
<div id="mod-cmnt-url-lbl-$id" class="mod-cmnt-url-lbl">$lbl_modurl</div>
<input type="text" id="mod-cmnt-url-$id" class="mod-cmnt-url" name="mod-cmnt-url" value="$modurl" />
</div>
<ul class="comment-edit-bb-$id">
<li><a class="editicon boldbb shadow"
style="cursor: pointer;" title="$edbold"
onclick="insertFormatting('$comment','b', $id);"></a></li>
<li><a class="editicon italicbb shadow"
style="cursor: pointer;" title="$editalic"
onclick="insertFormatting('$comment','i', $id);"></a></li>
<li><a class="editicon underlinebb shadow"
style="cursor: pointer;" title="$eduline"
onclick="insertFormatting('$comment','u', $id);"></a></li>
<li><a class="editicon quotebb shadow"
style="cursor: pointer;" title="$edquote"
onclick="insertFormatting('$comment','quote', $id);"></a></li>
<li><a class="editicon codebb shadow"
style="cursor: pointer;" title="$edcode"
onclick="insertFormatting('$comment','code', $id);"></a></li>
<li><a class="editicon imagebb shadow"
style="cursor: pointer;" title="$edimg"
onclick="insertFormatting('$comment','img', $id);"></a></li>
<li><a class="editicon urlbb shadow"
style="cursor: pointer;" title="$edurl"
onclick="insertFormatting('$comment','url', $id);"></a></li>
<li><a class="editicon videobb shadow"
style="cursor: pointer;" title="$edvideo"
onclick="insertFormatting('$comment','video', $id);"></a></li>
</ul>
<div class="comment-edit-bb-end"></div>
<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);cmtBbOpen($id);" onBlur="commentClose(this,$id);" >$comment</textarea>
<div class="comment-edit-text-end"></div>
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
<input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
<span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
<div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
</div>
<div class="comment-edit-end"></div>
</form>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

View File

@ -0,0 +1,66 @@
<nav>
$langselector
<span id="banner">$banner</span>
<div id="notifications">
{{ if $nav.network }}<a id="net-update" class="nav-ajax-update" href="$nav.network.0" title="$nav.network.1"></a>{{ endif }}
{{ if $nav.home }}<a id="home-update" class="nav-ajax-update" href="$nav.home.0" title="$nav.home.1"></a>{{ endif }}
<!-- {{ if $nav.notifications }}<a id="intro-update" class="nav-ajax-update" href="$nav.notifications.0" title="$nav.notifications.1"></a>{{ endif }} -->
{{ if $nav.introductions }}<a id="intro-update" class="nav-ajax-update" href="$nav.introductions.0" title="$nav.introductions.1"></a>{{ endif }}
{{ if $nav.messages }}<a id="mail-update" class="nav-ajax-update" href="$nav.messages.0" title="$nav.messages.1"></a>{{ endif }}
{{ if $nav.notifications }}<a rel="#nav-notifications-menu" id="notify-update" class="nav-ajax-update" href="$nav.notifications.0" title="$nav.notifications.1"></a>{{ endif }}
<ul id="nav-notifications-menu" class="menu-popup">
<li id="nav-notifications-mark-all"><a href="#" onclick="notifyMarkAll(); return false;">$nav.notifications.mark.1</a></li>
<li id="nav-notifications-see-all"><a href="$nav.notifications.all.0">$nav.notifications.all.1</a></li>
<li class="empty">$emptynotifications</li>
</ul>
</div>
<div id="user-menu" >
<a id="user-menu-label" onclick="openClose('user-menu-popup'); return false" href="$nav.home.0">$sitelocation</a>
<ul id="user-menu-popup"
onmouseover="if (typeof tmenu != 'undefined') clearTimeout(tmenu); openMenu('user-menu-popup')"
onmouseout="tmenu=setTimeout('closeMenu(\'user-menu-popup\');',200)">
{{ if $nav.register }}<li><a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0">$nav.register.1</a></li>{{ endif }}
{{ if $nav.home }}<li><a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0">$nav.home.1</a></li>{{ endif }}
{{ if $nav.network }}<li><a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0">$nav.network.1</a></li>{{ endif }}
{{ if $nav.community }}
<li><a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0">$nav.community.1</a></li>
{{ endif }}
<li><a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0">$nav.search.1</a></li>
<li><a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0">$nav.directory.1</a></li>
{{ if $nav.apps }}<li><a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0">$nav.apps.1</a></li>{{ endif }}
{{ if $nav.notifications }}<li><a id="nav-notify-link" class="nav-commlink nav-sep $nav.notifications.2" href="$nav.notifications.0">$nav.notifications.1</a></li>{{ endif }}
{{ if $nav.messages }}<li><a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0">$nav.messages.1</a></li>{{ endif }}
{{ if $nav.contacts }}<li><a id="nav-contacts-link" class="nav-commlink $nav.contacts.2" href="$nav.contacts.0">$nav.contacts.1</a></li>{{ endif }}
{{ if $nav.profiles }}<li><a id="nav-profiles-link" class="nav-commlink nav-sep $nav.profiles.2" href="$nav.profiles.0">$nav.profiles.1</a></li>{{ endif }}
{{ if $nav.settings }}<li><a id="nav-settings-link" class="nav-commlink $nav.settings.2" href="$nav.settings.0">$nav.settings.1</a></li>{{ endif }}
{{ if $nav.manage }}<li><a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0">$nav.manage.1</a></li>{{ endif }}
{{ if $nav.admin }}<li><a id="nav-admin-link" class="nav-commlink $nav.admin.2" href="$nav.admin.0">$nav.admin.1</a></li>{{ endif }}
{{ if $nav.help }}<li><a id="nav-help-link" class="nav-link $nav.help.2" href="$nav.help.0">$nav.help.1</a></li>{{ endif }}
{{ if $nav.login }}<li><a id="nav-login-link" class="nav-link $nav.login.2" href="$nav.login.0">$nav.login.1</a></li> {{ endif }}
{{ if $nav.logout }}<li><a id="nav-logout-link" class="nav-commlink nav-sep $nav.logout.2" href="$nav.logout.0">$nav.logout.1</a></li> {{ endif }}
</ul>
</div>
</nav>
<ul id="nav-notifications-template" style="display:none;" rel="template">
<li class="{4}"><a href="{0}"><img src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
</ul>

View File

@ -0,0 +1,10 @@
<div id="nets-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<a href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a>
<ul class="nets-ul">
{{ for $nets as $net }}
<li><a href="$base?nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
{{ endfor }}
</ul>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1,8 @@
<div class="photo-album-image-wrapper" id="photo-album-image-wrapper-$id">
<a href="$photolink" class="photo-album-photo-link" id="photo-album-photo-link-$id" title="$phototitle">
<img src="$imgsrc" alt="$imgalt" title="$phototitle" class="photo-album-photo lframe resize" id="photo-album-photo-$id" />
</div>
<p class='caption'>$desc</p>
</a>
</div>
<div class="photo-album-image-wrapper-end"></div>

Some files were not shown because too many files have changed in this diff Show More