diff options
author | Simon L'nu <simon.lnu@gmail.com> | 2012-06-08 23:58:46 -0400 |
---|---|---|
committer | Simon L'nu <simon.lnu@gmail.com> | 2012-06-08 23:58:46 -0400 |
commit | 62e9047b8d1b7f3272213a6407db34c9cd1a2cbb (patch) | |
tree | ba25995ec05d1df8632731f0da341736d47ce526 | |
parent | 5bb4a5912b09f6c37e8543a6ff78949a2b5b8cd5 (diff) | |
parent | ea4515aca9318429a0b859eb8b45584b382928b3 (diff) | |
download | volse-hubzilla-62e9047b8d1b7f3272213a6407db34c9cd1a2cbb.tar.gz volse-hubzilla-62e9047b8d1b7f3272213a6407db34c9cd1a2cbb.tar.bz2 volse-hubzilla-62e9047b8d1b7f3272213a6407db34c9cd1a2cbb.zip |
Merge remote-tracking branch 'remotes/upstream/master'
* remotes/upstream/master: (21 commits)
more logging on pubsub callbacks
provide ability to autofriend ostatus accounts
ostatus hub subscription issues
better events-reminder theming
png support for embedded private photos
rev update
png support: update database.sql, fix some typos, fix tinymce image browser
Add support for PNG images with alpha
fix a random profile error message
events: fix select events query select events that starts before display start date and/or ends after display end date.
more logging on subscribe_to_hub
admin page untranslated strings, remove empty list element for update
A few corrections in German translations.
rev update
set minchars to 2 for PM lookups too
set minchars to 2 for contacts search
contacts search autocomplete
add email probe logging, limit typo check to main addon files and skip additional support files
rev update
named anchors on display page
...
37 files changed, 937 insertions, 466 deletions
@@ -9,9 +9,9 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1363' ); +define ( 'FRIENDICA_VERSION', '3.0.1367' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1148 ); +define ( 'DB_UPDATE_VERSION', 1149 ); define ( 'EOL', "<br />\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); @@ -28,6 +28,11 @@ define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); */ define ( 'JPEG_QUALITY', 100 ); +/** + * $a->config['system']['png_quality'] from 0 (uncompressed) to 9 + */ +define ( 'PNG_QUALITY', 8 ); + /** * Not yet used diff --git a/database.sql b/database.sql index c1d1b27e4..53dc0c5b2 100644 --- a/database.sql +++ b/database.sql @@ -745,6 +745,7 @@ CREATE TABLE IF NOT EXISTS `photo` ( `desc` text NOT NULL, `album` char(255) NOT NULL, `filename` char(255) NOT NULL, + `type` CHAR(128) NOT NULL DEFAULT 'image/jpeg', `height` smallint(6) NOT NULL, `width` smallint(6) NOT NULL, `data` mediumblob NOT NULL, diff --git a/include/Photo.php b/include/Photo.php index fce559999..f769a70a6 100644 --- a/include/Photo.php +++ b/include/Photo.php @@ -7,14 +7,34 @@ class Photo { private $width; private $height; private $valid; + private $type; + private $types; + + /** + * supported mimetypes and corresponding file extensions + */ + static function supportedTypes() { + $t = array(); + $t['image/jpeg'] ='jpg'; + if (imagetypes() & IMG_PNG) $t['image/png'] = 'png'; + return $t; + } + + public function __construct($data, $type="image/jpeg") { - public function __construct($data) { + $this->types = $this->supportedTypes(); + if (!array_key_exists($type,$this->types)){ + $type='image/jpeg'; + } $this->valid = false; + $this->type = $type; $this->image = @imagecreatefromstring($data); if($this->image !== FALSE) { $this->width = imagesx($this->image); $this->height = imagesy($this->image); $this->valid = true; + imagealphablending($this->image, false); + imagesavealpha($this->image, true); } } @@ -38,6 +58,13 @@ class Photo { public function getImage() { return $this->image; } + + public function getType() { + return $this->type; + } + public function getExt() { + return $this->types[$this->type]; + } public function scaleImage($max) { @@ -78,6 +105,9 @@ class Photo { $dest = imagecreatetruecolor( $dest_width, $dest_height ); + imagealphablending($dest, false); + imagesavealpha($dest, true); + if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height); if($this->image) imagedestroy($this->image); @@ -134,6 +164,9 @@ class Photo { $dest = imagecreatetruecolor( $dest_width, $dest_height ); + imagealphablending($dest, false); + imagesavealpha($dest, true); + if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height); if($this->image) imagedestroy($this->image); @@ -148,6 +181,9 @@ class Photo { public function scaleImageSquare($dim) { $dest = imagecreatetruecolor( $dim, $dim ); + imagealphablending($dest, false); + imagesavealpha($dest, true); + if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height); if($this->image) imagedestroy($this->image); @@ -159,6 +195,9 @@ class Photo { public function cropImage($max,$x,$y,$w,$h) { $dest = imagecreatetruecolor( $max, $max ); + imagealphablending($dest, false); + imagesavealpha($dest, true); + if ($this->type=='image/png') imagefill($dest, 0, 0, imagecolorallocatealpha($dest, 0, 0, 0, 127)); // fill with alpha imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h); if($this->image) imagedestroy($this->image); @@ -168,20 +207,38 @@ class Photo { } public function saveImage($path) { - $quality = get_config('system','jpeg_quality'); - if((! $quality) || ($quality > 100)) - $quality = JPEG_QUALITY; - imagejpeg($this->image,$path,$quality); + switch($this->type){ + case "image/png": + $quality = get_config('system','png_quality'); + if((! $quality) || ($quality > 9)) + $quality = PNG_QUALITY; + imagepng($this->image, $path, $quality); + break; + default: + $quality = get_config('system','jpeg_quality'); + if((! $quality) || ($quality > 100)) + $quality = JPEG_QUALITY; + imagejpeg($this->image,$path,$quality); + } + } public function imageString() { ob_start(); - - $quality = get_config('system','jpeg_quality'); - if((! $quality) || ($quality > 100)) - $quality = JPEG_QUALITY; - - imagejpeg($this->image,NULL,$quality); + switch($this->type){ + case "image/png": + $quality = get_config('system','png_quality'); + if((! $quality) || ($quality > 9)) + $quality = PNG_QUALITY; + imagepng($this->image,NULL, $quality); + break; + default: + $quality = get_config('system','jpeg_quality'); + if((! $quality) || ($quality > 100)) + $quality = JPEG_QUALITY; + + imagejpeg($this->image,NULL,$quality); + } $s = ob_get_contents(); ob_end_clean(); return $s; @@ -200,8 +257,8 @@ class Photo { $guid = get_guid(); $r = q("INSERT INTO `photo` - ( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` ) - VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )", + ( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, type, `album`, `height`, `width`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` ) + VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, '%s', '%s', '%s', '%s' )", intval($uid), intval($cid), dbesc($guid), @@ -209,6 +266,7 @@ class Photo { dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc(basename($filename)), + dbesc($this->type), dbesc($album), intval($this->height), intval($this->width), @@ -230,6 +288,40 @@ class Photo { }} +/** + * Guess image mimetype from filename or from Content-Type header + * + * @arg $filename string Image filename + * @arg $fromcurl boolean Check Content-Type header from curl request + */ +function guess_image_type($filename, $fromcurl=false) { + logger('Photo: guess_image_type: '.$filename . ($fromcurl?' from curl headers':''), LOGGER_DEBUG); + $type = null; + if ($fromcurl) { + $a = get_app(); + $headers=array(); + $h = explode("\n",$a->get_curl_headers()); + foreach ($h as $l) { + list($k,$v) = array_map("trim", explode(":", trim($l), 2)); + $headers[$k] = $v; + } + if (array_key_exists('Content-Type', $headers)) + $type = $headers['Content-Type']; + } + if (is_null($type)){ + $ext = pathinfo($filename, PATHINFO_EXTENSION); + $types = Photo::supportedTypes(); + $type = "image/jpeg"; + foreach ($types as $m=>$e){ + if ($ext==$e) $type = $m; + } + + } + logger('Photo: guess_image_type: type='.$type, LOGGER_DEBUG); + return $type; + +} + function import_profile_photo($photo,$uid,$cid) { $a = get_app(); @@ -238,7 +330,12 @@ function import_profile_photo($photo,$uid,$cid) { $filename = basename($photo); $img_str = fetch_url($photo,true); - $img = new Photo($img_str); + + // guess mimetype from headers or filename + $type = guess_image_type($photo,true); + + + $img = new Photo($img_str, $type); if($img->is_valid()) { $img->scaleImageSquare(175); @@ -266,9 +363,9 @@ function import_profile_photo($photo,$uid,$cid) { - $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.jpg'; - $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.jpg'; - $micro = $a->get_baseurl() . '/photo/' . $hash . '-6.jpg'; + $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt(); + $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt(); + $micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt(); } else $photo_failure = true; diff --git a/include/Scrape.php b/include/Scrape.php index 227252600..ca8f6e83a 100644 --- a/include/Scrape.php +++ b/include/Scrape.php @@ -435,10 +435,13 @@ function probe_url($url, $mode = PROBE_NORMAL) { $password = ''; openssl_private_decrypt(hex2bin($r[0]['pass']),$password,$x[0]['prvkey']); $mbox = email_connect($mailbox,$r[0]['user'],$password); + if(! $mbox) + logger('probe_url: email_connect failed.'); unset($password); } if($mbox) { $msgs = email_poll($mbox,$orig_url); + logger('probe_url: searching ' . $orig_url . ', ' . count($msgs) . ' messages found.', LOGGER_DEBUG); if(count($msgs)) { $addr = $orig_url; $network = NETWORK_MAIL; diff --git a/include/api.php b/include/api.php index 5c17b35f5..9925b5766 100644 --- a/include/api.php +++ b/include/api.php @@ -898,7 +898,7 @@ // params $id = intval($a->argv[3]); - logger('API: api_statuses_repeat: '.$id); + logger('API: api_statuses_repeat: '.$id); //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); @@ -915,13 +915,15 @@ intval($id) ); - $_REQUEST['body'] = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8')."[url=".$r[0]['reply_url']."]".$r[0]['reply_author']."[/url] \n".$r[0]['body']; - $_REQUEST['profile_uid'] = local_user(); - $_REQUEST['type'] = 'wall'; - $_REQUEST['api_source'] = true; + if ($r[0]['body'] != "") { + $_REQUEST['body'] = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8')."[url=".$r[0]['reply_url']."]".$r[0]['reply_author']."[/url] \n".$r[0]['body']; + $_REQUEST['profile_uid'] = local_user(); + $_REQUEST['type'] = 'wall'; + $_REQUEST['api_source'] = true; - require_once('mod/item.php'); - item_post($a); + require_once('mod/item.php'); + item_post($a); + } if ($type == 'xml') $ok = "true"; @@ -943,7 +945,7 @@ // params $id = intval($a->argv[3]); - logger('API: api_statuses_destroy: '.$id); + logger('API: api_statuses_destroy: '.$id); require_once('include/items.php'); drop_item($id, false); diff --git a/include/follow.php b/include/follow.php index d92d7577d..22288a0da 100644 --- a/include/follow.php +++ b/include/follow.php @@ -94,6 +94,9 @@ function new_contact($uid,$url,$interactive = false) { } $writeable = ((($ret['network'] === NETWORK_OSTATUS) && ($ret['notify'])) ? 1 : 0); + + $subhub = (($ret['network'] === NETWORK_OSTATUS) ? true : false); + $hidden = (($ret['network'] === NETWORK_MAIL) ? 1 : 0); if($ret['network'] === NETWORK_MAIL) { @@ -116,8 +119,9 @@ function new_contact($uid,$url,$interactive = false) { if(count($r)) { // update contact if($r[0]['rel'] == CONTACT_IS_FOLLOWER || ($network === NETWORK_DIASPORA && $r[0]['rel'] == CONTACT_IS_SHARING)) { - q("UPDATE `contact` SET `rel` = %d , `readonly` = 0 WHERE `id` = %d AND `uid` = %d LIMIT 1", + q("UPDATE `contact` SET `rel` = %d , `subhub` = %d, `readonly` = 0 WHERE `id` = %d AND `uid` = %d LIMIT 1", intval(CONTACT_IS_FRIEND), + intval($subhub), intval($r[0]['id']), intval($uid) ); @@ -131,8 +135,8 @@ function new_contact($uid,$url,$interactive = false) { // create contact record $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `photo`, `network`, `pubkey`, `rel`, `priority`, - `writable`, `hidden`, `blocked`, `readonly`, `pending` ) - VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0, 0, 0 ) ", + `writable`, `hidden`, `blocked`, `readonly`, `pending`, `subhub` ) + VALUES ( %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, 0, 0, 0, %d ) ", intval($uid), dbesc(datetime_convert()), dbesc($ret['url']), @@ -151,7 +155,8 @@ function new_contact($uid,$url,$interactive = false) { intval($new_relation), intval($ret['priority']), intval($writeable), - intval($hidden) + intval($hidden), + intval($subhub) ); } diff --git a/include/items.php b/include/items.php index 4513db1db..ccc11d5be 100755 --- a/include/items.php +++ b/include/items.php @@ -1304,6 +1304,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0) $birthday = ''; $hubs = $feed->get_links('hub'); + logger('consume_feed: hubs: ' . print_r($hubs,true), LOGGER_DATA); if(count($hubs)) $hub = implode(',', $hubs); @@ -1346,7 +1347,11 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0) } $img_str = fetch_url($photo_url,true); - $img = new Photo($img_str); + // guess mimetype from headers or filename + $type = guess_image_type($photo_url,true); + + + $img = new Photo($img_str, $type); if($img->is_valid()) { if($have_photo) { q("DELETE FROM `photo` WHERE `resource-id` = '%s' AND `contact-id` = %d AND `uid` = %d", @@ -1372,9 +1377,9 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0) q("UPDATE `contact` SET `avatar-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1", dbesc(datetime_convert()), - dbesc($a->get_baseurl() . '/photo/' . $hash . '-4.jpg'), - dbesc($a->get_baseurl() . '/photo/' . $hash . '-5.jpg'), - dbesc($a->get_baseurl() . '/photo/' . $hash . '-6.jpg'), + dbesc($a->get_baseurl() . '/photo/' . $hash . '-4.'.$img->getExt()), + dbesc($a->get_baseurl() . '/photo/' . $hash . '-5.'.$img->getExt()), + dbesc($a->get_baseurl() . '/photo/' . $hash . '-6.'.$img->getExt()), intval($contact['uid']), intval($contact['id']) ); @@ -2777,6 +2782,8 @@ function lose_sharer($importer,$contact,$datarray,$item) { function subscribe_to_hub($url,$importer,$contact,$hubmode = 'subscribe') { + $a = get_app(); + if(is_array($importer)) { $r = q("SELECT `nickname` FROM `user` WHERE `uid` = %d LIMIT 1", intval($importer['uid']) @@ -2807,7 +2814,10 @@ function subscribe_to_hub($url,$importer,$contact,$hubmode = 'subscribe') { ); } - post_url($url,$params); + post_url($url,$params); + + logger('subscribe_to_hub: returns: ' . $a->get_curl_code(), LOGGER_DEBUG); + return; } @@ -2943,7 +2953,7 @@ function fix_private_photos($s,$uid, $item = null, $cid = 0) { if(stristr($image , $site . '/photo/')) { $replace = false; $i = basename($image); - $i = str_replace('.jpg','',$i); + $i = str_replace(array('.jpg','.png'),array('',''),$i); $x = strpos($i,'-'); if($x) { $res = substr($i,$x+1); @@ -2985,7 +2995,7 @@ function fix_private_photos($s,$uid, $item = null, $cid = 0) { } if($replace) { logger('fix_private_photos: replacing photo', LOGGER_DEBUG); - $s = str_replace($image, 'data:image/jpg;base64,' . base64_encode($r[0]['data']), $s); + $s = str_replace($image, 'data:' . $r[0]['type'] . ';base64,' . base64_encode($r[0]['data']), $s); logger('fix_private_photos: replaced: ' . $s, LOGGER_DATA); } } diff --git a/include/network.php b/include/network.php index eeb2460d1..446413cd8 100644 --- a/include/network.php +++ b/include/network.php @@ -807,8 +807,11 @@ function scale_external_images($s,$include_link = true) { if(stristr($mtch[1],$hostname)) continue; $i = fetch_url($mtch[1]); + // guess mimetype from headers or filename + $type = guess_image_type($mtch[1],true); + if($i) { - $ph = new Photo($i); + $ph = new Photo($i, $type); if($ph->is_valid()) { $orig_width = $ph->getWidth(); $orig_height = $ph->getHeight(); diff --git a/include/oembed.php b/include/oembed.php index 1f45d2814..e2504b7eb 100644..100755 --- a/include/oembed.php +++ b/include/oembed.php @@ -65,7 +65,8 @@ function oembed_fetch_url($embedurl){ } function oembed_format_object($j){ - $embedurl = $j->embedurl; + $a = get_app(); + $embedurl = $j->embedurl; $jhtml = oembed_iframe($j->embedurl,(isset($j->width) ? $j->width : null), (isset($j->height) ? $j->height : null) ); $ret="<span class='oembed ".$j->type."'>"; switch ($j->type) { @@ -78,6 +79,7 @@ function oembed_format_object($j){ $th=120; $tw = $th*$tr; $tpl=get_markup_template('oembed_video.tpl'); $ret.=replace_macros($tpl, array( + '$baseurl' => $a->get_baseurl(), '$embedurl'=>$embedurl, '$escapedhtml'=>base64_encode($jhtml), '$tw'=>$tw, diff --git a/include/onepoll.php b/include/onepoll.php index a64922aa3..ba7d5ebaf 100644 --- a/include/onepoll.php +++ b/include/onepoll.php @@ -477,6 +477,9 @@ function onepoll_run($argv, $argc){ if($contact['network'] === NETWORK_DFRN || $contact['blocked'] || $contact['readonly']) $hubmode = 'unsubscribe'; + if($contact['network'] === NETWORK_OSTATUS && (! $contact['hub-verify'])) + $hub_update = true; + if((strlen($hub)) && ($hub_update) && ($contact['rel'] != CONTACT_IS_FOLLOWER)) { logger('poller: hub ' . $hubmode . ' : ' . $hub . ' contact name : ' . $contact['name'] . ' local user : ' . $importer['name']); $hubs = explode(',', $hub); diff --git a/include/user.php b/include/user.php index af43a2b52..2477438bf 100644 --- a/include/user.php +++ b/include/user.php @@ -284,7 +284,11 @@ function create_user($arr) { $filename = basename($photo); $img_str = fetch_url($photo,true); - $img = new Photo($img_str); + // guess mimetype from headers or filename + $type = guess_image_type($photo,true); + + + $img = new Photo($img_str, $type); if($img->is_valid()) { $img->scaleImageSquare(175); @@ -324,4 +328,4 @@ function create_user($arr) { $result['user'] = $u; return $result; -}
\ No newline at end of file +} diff --git a/mod/acl.php b/mod/acl.php index 1e8898ab6..f3e46efa5 100644 --- a/mod/acl.php +++ b/mod/acl.php @@ -1,5 +1,6 @@ <?php /* ACL selector json backend */ + require_once("include/acl_selectors.php"); function acl_init(&$a){ @@ -16,7 +17,8 @@ function acl_init(&$a){ // For use with jquery.autocomplete for private mail completion if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) { - $type = 'm'; + if(! $type) + $type = 'm'; $search = $_REQUEST['query']; } @@ -62,6 +64,18 @@ function acl_init(&$a){ ); $contact_count = (int)$r[0]['c']; + } + elseif ($type == 'a') { + + // autocomplete for Contacts + + $r = q("SELECT COUNT(`id`) AS c FROM `contact` + WHERE `uid` = %d AND `self` = 0 + AND `pending` = 0 $sql_extra2" , + intval(local_user()) + ); + $contact_count = (int)$r[0]['c']; + } else { $contact_count = 0; } @@ -120,11 +134,19 @@ function acl_init(&$a){ dbesc(NETWORK_DIASPORA) ); } + elseif($type == 'a') { + $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` + WHERE `uid` = %d AND `pending` = 0 + $sql_extra2 + ORDER BY `name` ASC ", + intval(local_user()) + ); + } else $r = array(); - if($type == 'm') { + if($type == 'm' || $type == 'a') { $x = array(); $x['query'] = $search; $x['photos'] = array(); diff --git a/mod/admin.php b/mod/admin.php index 6b1a53a30..56f88a489 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -117,6 +117,9 @@ function admin_content(&$a) { $t = get_markup_template("admin_aside.tpl"); $a->page['aside'] .= replace_macros( $t, array( '$admin' => $aside, + '$admtxt' => t('Admin'), + '$plugadmtxt' => t('Plugin Features'), + '$logtxt' => t('Logs'), '$h_pending' => t('User registrations waiting for confirmation'), '$admurl'=> $a->get_baseurl(true)."/admin/" )); diff --git a/mod/contacts.php b/mod/contacts.php index 769239fe0..a3e3f409b 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -43,6 +43,26 @@ function contacts_init(&$a) { $a->page['aside'] .= findpeople_widget(); $a->page['aside'] .= networks_widget('contacts',$_GET['nets']); + $base = $a->get_baseurl(); + + $a->page['htmlhead'] .= '<script src="' . $a->get_baseurl(true) . '/library/jquery_ac/friendica.complete.js" ></script>'; + $a->page['htmlhead'] .= <<< EOT + +<script>$(document).ready(function() { + var a; + a = $("#contacts-search").autocomplete({ + serviceUrl: '$base/acl', + minChars: 2, + width: 350, + }); + a.setOptions({ params: { type: 'a' }}); + +}); + +</script> +EOT; + + } function contacts_post(&$a) { diff --git a/mod/events.php b/mod/events.php index 069046ff9..2a6fb692e 100644..100755 --- a/mod/events.php +++ b/mod/events.php @@ -230,8 +230,8 @@ function events_content(&$a) { $r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`, `item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event` LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` WHERE `event`.`uid` = %d - AND (( `adjust` = 0 AND `start` >= '%s' AND `start` <= '%s' ) - OR ( `adjust` = 1 AND `start` >= '%s' AND `start` <= '%s' )) ", + AND (( `adjust` = 0 AND `finish` >= '%s' AND `start` <= '%s' ) + OR ( `adjust` = 1 AND `finish` >= '%s' AND `start` <= '%s' )) ", intval(local_user()), dbesc($start), dbesc($finish), diff --git a/mod/fbrowser.php b/mod/fbrowser.php index 66ff9252e..3f034226e 100644 --- a/mod/fbrowser.php +++ b/mod/fbrowser.php @@ -4,7 +4,9 @@ * @subpackage FileBrowser * @author Fabio Comuni <fabrixxm@kirgroup.com> */ - + +require_once('include/Photo.php'); + /** * @param App $a */ @@ -43,14 +45,22 @@ function fbrowser_content($a){ $path[]=array($a->get_baseurl()."/fbrowser/image/".$a->argv[2]."/", $album); } - $r = q("SELECT `resource-id`, `id`, `filename`, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `desc` + $r = q("SELECT `resource-id`, `id`, `filename`, type, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `desc` FROM `photo` WHERE `uid` = %d $sql_extra GROUP BY `resource-id` $sql_extra2", intval(local_user()) ); - - function files1($rr){ global $a; return array( $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['hiq'] . '.jpg', template_escape($rr['filename']), $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['loq'] . '.jpg'); } + function files1($rr){ + global $a; + $types = Photo::supportedTypes(); + $ext = $types[$rr['type']]; + return array( + $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['hiq'] . '.' .$ext, + template_escape($rr['filename']), + $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['loq'] . '.'. $ext + ); + } $files = array_map("files1", $r); $tpl = get_markup_template("filebrowser.tpl"); diff --git a/mod/message.php b/mod/message.php index fb2241985..d5bb3dfe4 100644 --- a/mod/message.php +++ b/mod/message.php @@ -25,6 +25,7 @@ function message_init(&$a) { var a; a = $("#recip").autocomplete({ serviceUrl: '$base/acl', + minChars: 2, width: 350, onSelect: function(value,data) { $("#recip-complete").val(data); diff --git a/mod/msearch.php b/mod/msearch.php index 94def7d89..89de5b705 100644 --- a/mod/msearch.php +++ b/mod/msearch.php @@ -28,7 +28,7 @@ function msearch_post(&$a) { $results[] = array( 'name' => $rr['name'], 'url' => $a->get_baseurl() . '/profile/' . $rr['nickname'], - 'photo' => $a->get_baseurl() . '/photo/avatar/' . $rr['uid'] . 'jpg', + 'photo' => $a->get_baseurl() . '/photo/avatar/' . $rr['uid'] . '.jpg', 'tags' => str_replace(array(',',' '),array(' ',' '),$rr['pub_keywords']) ); } diff --git a/mod/parse_url.php b/mod/parse_url.php index 27dac4d5d..cdf2223a8 100644 --- a/mod/parse_url.php +++ b/mod/parse_url.php @@ -215,8 +215,11 @@ function parse_url_content(&$a) { $i = fetch_url($image); if($i) { + // guess mimetype from headers or filename + $type = guess_image_type($image,true); + require_once('include/Photo.php'); - $ph = new Photo($i); + $ph = new Photo($i, $type); if($ph->is_valid()) { if($ph->getWidth() > 300 || $ph->getHeight() > 300) { $ph->scaleImage(300); diff --git a/mod/photo.php b/mod/photo.php index 3cd8250a9..dee483d83 100644 --- a/mod/photo.php +++ b/mod/photo.php @@ -1,6 +1,7 @@ <?php require_once('include/security.php'); +require_once('include/Photo.php'); function photo_init(&$a) { @@ -75,7 +76,7 @@ function photo_init(&$a) { break; } - $uid = str_replace('.jpg', '', $person); + $uid = str_replace(array('.jpg','.png'),array('',''), $person); $r = q("SELECT * FROM `photo` WHERE `scale` = %d AND `uid` = %d AND `profile` = 1 LIMIT 1", intval($resolution), @@ -83,9 +84,11 @@ function photo_init(&$a) { ); if(count($r)) { $data = $r[0]['data']; + $mimetype = $r[0]['type']; } if(! isset($data)) { $data = file_get_contents($default); + $mimetype = 'image/jpeg'; } } else { @@ -95,7 +98,9 @@ function photo_init(&$a) { */ $resolution = 0; - $photo = str_replace('.jpg','',$photo); + foreach( Photo::supportedTypes() as $m=>$e){ + $photo = str_replace(".$e",'',$photo); + } if(substr($photo,-2,1) == '-') { $resolution = intval(substr($photo,-1,1)); @@ -119,6 +124,7 @@ function photo_init(&$a) { if(count($r)) { $data = $r[0]['data']; + $mimetype = $r[0]['type']; } else { @@ -136,6 +142,7 @@ function photo_init(&$a) { ); if(count($r)) { $data = file_get_contents('images/nosign.jpg'); + $mimetype = 'image/jpeg'; $prvcachecontrol = true; } } @@ -148,12 +155,15 @@ function photo_init(&$a) { case 4: $data = file_get_contents('images/person-175.jpg'); + $mimetype = 'image/jpeg'; break; case 5: $data = file_get_contents('images/person-80.jpg'); + $mimetype = 'image/jpeg'; break; case 6: $data = file_get_contents('images/person-48.jpg'); + $mimetype = 'image/jpeg'; break; default: killme(); @@ -164,11 +174,11 @@ function photo_init(&$a) { } if(isset($customres) && $customres > 0 && $customres < 500) { - require_once('include/Photo.php'); - $ph = new Photo($data); + $ph = new Photo($data, $mimetype); if($ph->is_valid()) { $ph->scaleImageSquare($customres); $data = $ph->imageString(); + $mimetype = $ph->getType(); } } @@ -181,7 +191,7 @@ function photo_init(&$a) { header_remove('pragma'); } - header("Content-type: image/jpeg"); + header("Content-type: ".$mimetype); if($prvcachecontrol) { diff --git a/mod/photos.php b/mod/photos.php index 3ce6f9934..efeab8fa3 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -5,6 +5,7 @@ require_once('include/acl_selectors.php'); require_once('include/bbcode.php'); require_once('include/security.php'); + function photos_init(&$a) { @@ -105,6 +106,8 @@ function photos_post(&$a) { logger('mod_photos: REQUEST ' . print_r($_REQUEST,true), LOGGER_DATA); logger('mod_photos: FILES ' . print_r($_FILES,true), LOGGER_DATA); + $phototypes = Photo::supportedTypes(); + $can_post = false; $visitor = 0; @@ -311,7 +314,7 @@ function photos_post(&$a) { intval($page_owner_uid) ); if(count($r)) { - $ph = new Photo($r[0]['data']); + $ph = new Photo($r[0]['data'], $r[0]['type']); if($ph->is_valid()) { $ph->rotate(270); @@ -362,6 +365,7 @@ function photos_post(&$a) { intval($page_owner_uid) ); if(count($p)) { + $ext = $phototypes[$p[0]['type']]; $r = q("UPDATE `photo` SET `desc` = '%s', `album` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource-id` = '%s' AND `uid` = %d", dbesc($desc), dbesc($albname), @@ -386,7 +390,7 @@ function photos_post(&$a) { $title = ''; $uri = item_new_uri($a->get_hostname(),$page_owner_uid); - + $arr = array(); $arr['uid'] = $page_owner_uid; @@ -412,7 +416,7 @@ function photos_post(&$a) { $arr['origin'] = 1; $arr['body'] = '[url=' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $p[0]['resource-id'] . ']' - . '[img]' . $a->get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.jpg' . '[/img]' + . '[img]' . $a->get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.'. $ext . '[/img]' . '[/url]'; $item_id = item_store($arr); @@ -581,17 +585,17 @@ function photos_post(&$a) { $arr['inform'] = $tagged[2]; $arr['origin'] = 1; $arr['body'] = '[url=' . $tagged[1] . ']' . $tagged[0] . '[/url]' . ' ' . t('was tagged in a') . ' ' . '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . t('photo') . '[/url]' . ' ' . t('by') . ' ' . '[url=' . $owner_record['url'] . ']' . $owner_record['name'] . '[/url]' ; - $arr['body'] .= "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . '[img]' . $a->get_baseurl() . "/photo/" . $p[0]['resource-id'] . '-' . $best . '.jpg' . '[/img][/url]' . "\n" ; + $arr['body'] .= "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . '[img]' . $a->get_baseurl() . "/photo/" . $p[0]['resource-id'] . '-' . $best . '.' . $ext . '[/img][/url]' . "\n" ; $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $tagged[0] . '</title><id>' . $tagged[1] . '/' . $tagged[0] . '</id>'; $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $tagged[1] . '" />' . "\n"); if($tagged[3]) - $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $tagged[3]['photo'] . '" />' . "\n"); + $arr['object'] .= xmlify('<link rel="photo" type="'.$p[0]['type'].'" href="' . $tagged[3]['photo'] . '" />' . "\n"); $arr['object'] .= '</link></object>' . "\n"; $arr['target'] = '<target><type>' . ACTIVITY_OBJ_PHOTO . '</type><title>' . $p[0]['desc'] . '</title><id>' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . '</id>'; - $arr['target'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . '" />' . "\n" . '<link rel="preview" type="image/jpeg" href="' . $a->get_baseurl() . "/photo/" . $p[0]['resource-id'] . '-' . $best . '.jpg' . '" />') . '</link></target>'; + $arr['target'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $p[0]['resource-id'] . '" />' . "\n" . '<link rel="preview" type="'.$p[0]['type'].'" href="' . $a->get_baseurl() . "/photo/" . $p[0]['resource-id'] . '-' . $best . '.' . $ext . '" />') . '</link></target>'; $item_id = item_store($arr); if($item_id) { @@ -662,7 +666,7 @@ function photos_post(&$a) { $str_group_deny = perms2str(((is_array($_REQUEST['group_deny'])) ? $_REQUEST['group_deny'] : explode(',',$_REQUEST['group_deny']))); $str_contact_deny = perms2str(((is_array($_REQUEST['contact_deny'])) ? $_REQUEST['contact_deny'] : explode(',',$_REQUEST['contact_deny']))); - $ret = array('src' => '', 'filename' => '', 'filesize' => 0); + $ret = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => ''); call_hooks('photo_post_file',$ret); @@ -670,15 +674,17 @@ function photos_post(&$a) { $src = $ret['src']; $filename = $ret['filename']; $filesize = $ret['filesize']; + $type = $ret['type']; } else { $src = $_FILES['userfile']['tmp_name']; $filename = basename($_FILES['userfile']['name']); $filesize = intval($_FILES['userfile']['size']); + $type = $_FILES['userfile']['type']; } + if ($type=="") $type=guess_image_type($filename); - - logger('photos: upload: received file: ' . $filename . ' as ' . $src . ' ' . $filesize . ' bytes', LOGGER_DEBUG); + logger('photos: upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG); $maximagesize = get_config('system','maximagesize'); @@ -701,7 +707,7 @@ function photos_post(&$a) { logger('mod/photos.php: photos_post(): loading the contents of ' . $src , LOGGER_DEBUG); $imagedata = @file_get_contents($src); - $ph = new Photo($imagedata); + $ph = new Photo($imagedata, $type); if(! $ph->is_valid()) { logger('mod/photos.php: photos_post(): unable to process image' , LOGGER_DEBUG); @@ -771,7 +777,7 @@ function photos_post(&$a) { $arr['origin'] = 1; $arr['body'] = '[url=' . $a->get_baseurl() . '/photos/' . $owner_record['nickname'] . '/image/' . $photo_hash . ']' - . '[img]' . $a->get_baseurl() . "/photo/{$photo_hash}-{$smallest}.jpg" . '[/img]' + . '[img]' . $a->get_baseurl() . "/photo/{$photo_hash}-{$smallest}.".$ph->getExt() . '[/img]' . '[/url]'; $item_id = item_store($arr); @@ -814,8 +820,8 @@ function photos_content(&$a) { notice( t('Public access denied.') . EOL); return; } - - + + require_once('include/bbcode.php'); require_once('include/security.php'); require_once('include/conversation.php'); @@ -825,6 +831,8 @@ function photos_content(&$a) { return; } + $phototypes = Photo::supportedTypes(); + $_SESSION['photo_return'] = $a->cmd; // @@ -991,7 +999,7 @@ function photos_content(&$a) { $a->set_pager_itemspage(20); } - $r = q("SELECT `resource-id`, `id`, `filename`, max(`scale`) AS `scale`, `desc` FROM `photo` WHERE `uid` = %d AND `album` = '%s' + $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", intval($owner_uid), dbesc($album), @@ -1038,13 +1046,15 @@ function photos_content(&$a) { $twist = 'rotleft'; else $twist = 'rotright'; + + $ext = $phototypes[$rr['type']]; $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'], '$phototitle' => t('View Photo'), - '$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] . '.jpg', + '$imgsrc' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] . '.' .$ext, '$imgalt' => template_escape($rr['filename']), '$desc'=> template_escape($rr['desc']) )); @@ -1158,9 +1168,9 @@ function photos_content(&$a) { $prevlink = array($prevlink, '<div class="icon prev"></div>') ; $photo = array( - 'href' => $a->get_baseurl() . '/photo/' . $hires['resource-id'] . '-' . $hires['scale'] . '.jpg', + 'href' => $a->get_baseurl() . '/photo/' . $hires['resource-id'] . '-' . $hires['scale'] . '.' . $phototypes[$hires['type']], 'title'=> t('View Full Size'), - 'src' => $a->get_baseurl() . '/photo/' . $lores['resource-id'] . '-' . $lores['scale'] . '.jpg' . '?f=&_u=' . datetime_convert('','','','ymdhis') + 'src' => $a->get_baseurl() . '/photo/' . $lores['resource-id'] . '-' . $lores['scale'] . '.' . $phototypes[$lores['type']] . '?f=&_u=' . datetime_convert('','','','ymdhis') ); if($nextlink) @@ -1449,7 +1459,7 @@ function photos_content(&$a) { $a->set_pager_itemspage(20); } - $r = q("SELECT `resource-id`, `id`, `filename`, `album`, max(`scale`) AS `scale` FROM `photo` + $r = q("SELECT `resource-id`, `id`, `filename`, type, `album`, max(`scale`) AS `scale` FROM `photo` WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' $sql_extra GROUP BY `resource-id` ORDER BY `created` DESC LIMIT %d , %d", intval($a->data['user']['uid']), @@ -1469,13 +1479,14 @@ function photos_content(&$a) { $twist = 'rotleft'; else $twist = 'rotright'; - + $ext = $phototypes[$rr['type']]; + $photos[] = array( 'id' => $rr['id'], 'twist' => ' ' . $twist . rand(2,4), 'link' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $rr['resource-id'], 'title' => t('View Photo'), - 'src' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . ((($rr['scale']) == 6) ? 4 : $rr['scale']) . '.jpg', + 'src' => $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . ((($rr['scale']) == 6) ? 4 : $rr['scale']) . '.' . $ext, 'alt' => template_escape($rr['filename']), 'album' => array( 'link' => $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/album/' . bin2hex($rr['album']), diff --git a/mod/profile_photo.php b/mod/profile_photo.php index ace8dadd4..e44707f9b 100644 --- a/mod/profile_photo.php +++ b/mod/profile_photo.php @@ -53,7 +53,7 @@ function profile_photo_post(&$a) { $base_image = $r[0]; - $im = new Photo($base_image['data']); + $im = new Photo($base_image['data'], $base_image['type']); if($im->is_valid()) { $im->cropImage(175,$srcX,$srcY,$srcW,$srcH); @@ -108,7 +108,9 @@ function profile_photo_post(&$a) { $src = $_FILES['userfile']['tmp_name']; $filename = basename($_FILES['userfile']['name']); $filesize = intval($_FILES['userfile']['size']); - + $filetype = $_FILES['userfile']['type']; + if ($filetype=="") $filetype=guess_image_type($filename); + $maximagesize = get_config('system','maximagesize'); if(($maximagesize) && ($filesize > $maximagesize)) { @@ -118,7 +120,7 @@ function profile_photo_post(&$a) { } $imagedata = @file_get_contents($src); - $ph = new Photo($imagedata); + $ph = new Photo($imagedata, $filetype); if(! $ph->is_valid()) { notice( t('Unable to process image.') . EOL ); @@ -193,7 +195,7 @@ function profile_photo_content(&$a) { goaway($a->get_baseurl() . '/profiles'); return; // NOTREACHED } - $ph = new Photo($r[0]['data']); + $ph = new Photo($r[0]['data'], $r[0]['type']); profile_photo_crop_ui_head($a, $ph); // go ahead as we have jus uploaded a new photo to crop } @@ -214,7 +216,7 @@ function profile_photo_content(&$a) { return $o; } else { - $filename = $a->config['imagecrop'] . '-' . $a->config['imagecrop_resolution'] . '.jpg'; + $filename = $a->config['imagecrop'] . '-' . $a->config['imagecrop_resolution'] . '.'.$a->config['imagecrop_ext']; $resolution = $a->config['imagecrop_resolution']; $tpl = get_markup_template("cropbody.tpl"); $o .= replace_macros($tpl,array( @@ -268,6 +270,7 @@ function profile_photo_crop_ui_head(&$a, $ph){ $a->config['imagecrop'] = $hash; $a->config['imagecrop_resolution'] = $smallest; + $a->config['imagecrop_ext'] = $ph->getExt(); $a->page['htmlhead'] .= get_markup_template("crophead.tpl"); return; }} diff --git a/mod/pubsub.php b/mod/pubsub.php index 93d50ef90..64fbda289 100644 --- a/mod/pubsub.php +++ b/mod/pubsub.php @@ -47,22 +47,30 @@ function pubsub_init(&$a) { $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 LIMIT 1", dbesc($nick) ); - if(! count($r)) + if(! count($r)) { + logger('pubsub: local account not found: ' . $nick); hub_return(false, ''); + } $owner = $r[0]; $sql_extra = ((strlen($hub_verify)) ? sprintf(" AND `hub-verify` = '%s' ", dbesc($hub_verify)) : ''); - $r = q("SELECT * FROM `contact` WHERE `poll` = '%s' AND `id` = %d AND `uid` = %d + $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d AND `blocked` = 0 AND `pending` = 0 $sql_extra LIMIT 1", - dbesc($hub_topic), intval($contact_id), intval($owner['uid']) ); - if(! count($r)) + if(! count($r)) { + logger('pubsub: contact not found.'); hub_return(false, ''); + } + + if(! link_compare($hub_topic,$r[0]['poll'])) { + logger('pubsub: hub topic ' . $hub_topic . ' != ' . $r[0]['poll']); + // should abort but let's humour them. + } $contact = $r[0]; diff --git a/mod/salmon.php b/mod/salmon.php index 6172d17a1..1e16f9d14 100644 --- a/mod/salmon.php +++ b/mod/salmon.php @@ -170,14 +170,28 @@ function salmon_post(&$a) { * */ - $r = q("SELECT * FROM `contact` WHERE `network` = 'stat' AND ( `url` = '%s' OR `alias` = '%s') + $r = q("SELECT * FROM `contact` WHERE `network` = '%s' AND ( `url` = '%s' OR `alias` = '%s' ) AND `uid` = %d LIMIT 1", + dbesc(NETWORK_OSTATUS), dbesc($author_link), dbesc($author_link), intval($importer['uid']) ); if(! count($r)) { logger('mod-salmon: Author unknown to us.'); + if(get_pconfig($importer['uid'],'system','ostatus_autofriend')) { + require_once('include/follow.php'); + $result = new_contact($importer['uid'],$author_link); + if($result['success']) { + $r = q("SELECT * FROM `contact` WHERE `network` = '%s' AND ( `url` = '%s' OR `alias` = '%s' ) + AND `uid` = %d LIMIT 1", + dbesc(NETWORK_OSTATUS), + dbesc($author_link), + dbesc($author_link), + intval($importer['uid']) + ); + } + } } // is this a follower? Or have we ignored the person? diff --git a/mod/wall_upload.php b/mod/wall_upload.php index fa66561e8..4b81f8d1c 100644 --- a/mod/wall_upload.php +++ b/mod/wall_upload.php @@ -57,17 +57,20 @@ function wall_upload_post(&$a) { if(! x($_FILES,'userfile') && ! x($_FILES,'media')) killme(); - if(x($_FILES,'userfile')) { - $src = $_FILES['userfile']['tmp_name']; - $filename = basename($_FILES['userfile']['name']); - $filesize = intval($_FILES['userfile']['size']); - } - elseif(x($_FILES,'media')) { - $src = $_FILES['media']['tmp_name']; - $filename = basename($_FILES['media']['name']); - $filesize = intval($_FILES['media']['size']); - } - + if(x($_FILES,'userfile')) { + $src = $_FILES['userfile']['tmp_name']; + $filename = basename($_FILES['userfile']['name']); + $filesize = intval($_FILES['userfile']['size']); + $filetype = $_FILES['userfile']['type']; + } + elseif(x($_FILES,'media')) { + $src = $_FILES['media']['tmp_name']; + $filename = basename($_FILES['media']['name']); + $filesize = intval($_FILES['media']['size']); + $filetype = $_FILES['media']['type']; + } + + if ($filetype=="") $filetype=guess_image_type($filename); $maximagesize = get_config('system','maximagesize'); if(($maximagesize) && ($filesize > $maximagesize)) { @@ -77,7 +80,7 @@ function wall_upload_post(&$a) { } $imagedata = @file_get_contents($src); - $ph = new Photo($imagedata); + $ph = new Photo($imagedata, $filetype); if(! $ph->is_valid()) { echo ( t('Unable to process image.') . EOL); @@ -123,19 +126,19 @@ function wall_upload_post(&$a) { /* mod Waitman Gobble NO WARRANTY */ //if we get the signal then return the image url info in BBCODE, otherwise this outputs the info and bails (for the ajax image uploader on wall post) - if ($_REQUEST['hush']!='yeah') { + if ($_REQUEST['hush']!='yeah') { /*existing code*/ if(local_user() && intval(get_pconfig(local_user(),'system','plaintext'))) - echo "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg[/img][/url]\n\n"; + echo "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]\n\n"; else - echo '<br /><br /><a href="' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '" ><img src="' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg\" alt=\"$basename\" /></a><br /><br />"; + echo '<br /><br /><a href="' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '" ><img src="' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."\" alt=\"$basename\" /></a><br /><br />"; /*existing code*/ } else { - $m = '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg[/img][/url]"; + $m = '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.".$ph->getExt()."[/img][/url]"; return($m); - } + } /* mod Waitman Gobble NO WARRANTY */ killme(); diff --git a/update.php b/update.php index 35a6771b0..0f7bf664d 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ <?php -define( 'UPDATE_VERSION' , 1148 ); +define( 'UPDATE_VERSION' , 1149 ); /** * @@ -1283,3 +1283,9 @@ function update_1147() { return UPDATE_SUCCESS ; } +function update_1148() { + $r = q("ALTER TABLE photo ADD type CHAR(128) NOT NULL DEFAULT 'image/jpeg' AFTER filename"); + if (!$r) + return UPDATE_FAILED; + return UPDATE_SUCCESS; +} diff --git a/util/messages.po b/util/messages.po index 43368ced0..96df551dd 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1363\n" +"Project-Id-Version: 3.0.1367\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-06-03 10:00-0700\n" +"POT-Creation-Date: 2012-06-07 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -38,7 +38,7 @@ msgstr "" #: ../../mod/fsuggest.php:78 ../../mod/events.php:138 ../../mod/api.php:26 #: ../../mod/api.php:31 ../../mod/photos.php:130 ../../mod/photos.php:920 #: ../../mod/editpost.php:10 ../../mod/install.php:151 -#: ../../mod/notifications.php:66 ../../mod/contacts.php:125 +#: ../../mod/notifications.php:66 ../../mod/contacts.php:145 #: ../../mod/settings.php:106 ../../mod/settings.php:537 #: ../../mod/settings.php:542 ../../mod/manage.php:86 ../../mod/network.php:6 #: ../../mod/notes.php:20 ../../mod/wallmessage.php:9 @@ -48,14 +48,15 @@ msgstr "" #: ../../mod/register.php:38 ../../mod/regmod.php:116 ../../mod/item.php:124 #: ../../mod/item.php:140 ../../mod/profile_photo.php:19 #: ../../mod/profile_photo.php:139 ../../mod/profile_photo.php:150 -#: ../../mod/profile_photo.php:163 ../../mod/message.php:44 -#: ../../mod/message.php:96 ../../mod/allfriends.php:9 +#: ../../mod/profile_photo.php:163 ../../mod/message.php:45 +#: ../../mod/message.php:97 ../../mod/allfriends.php:9 #: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53 #: ../../mod/follow.php:9 ../../mod/display.php:138 ../../mod/profiles.php:7 #: ../../mod/profiles.php:385 ../../mod/delegate.php:6 #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81 #: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:503 -#: ../../include/items.php:3297 ../../index.php:306 +#: ../../addon/dav/layout.fnk.php:387 ../../include/items.php:3337 +#: ../../index.php:306 msgid "Permission denied." msgstr "" @@ -85,7 +86,7 @@ msgid "Return to contact editor" msgstr "" #: ../../mod/crepair.php:148 ../../mod/settings.php:557 -#: ../../mod/settings.php:583 ../../mod/admin.php:656 ../../mod/admin.php:665 +#: ../../mod/settings.php:583 ../../mod/admin.php:659 ../../mod/admin.php:668 msgid "Name" msgstr "" @@ -126,12 +127,12 @@ msgstr "" #: ../../mod/photos.php:1256 ../../mod/photos.php:1296 #: ../../mod/photos.php:1336 ../../mod/photos.php:1367 #: ../../mod/install.php:246 ../../mod/install.php:284 -#: ../../mod/localtime.php:45 ../../mod/contacts.php:322 +#: ../../mod/localtime.php:45 ../../mod/contacts.php:342 #: ../../mod/settings.php:555 ../../mod/settings.php:701 #: ../../mod/settings.php:762 ../../mod/settings.php:969 -#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:417 -#: ../../mod/admin.php:653 ../../mod/admin.php:789 ../../mod/admin.php:988 -#: ../../mod/admin.php:1075 ../../mod/profiles.php:554 +#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/message.php:216 +#: ../../mod/admin.php:420 ../../mod/admin.php:656 ../../mod/admin.php:792 +#: ../../mod/admin.php:991 ../../mod/admin.php:1078 ../../mod/profiles.php:554 #: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:605 #: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93 #: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158 @@ -142,8 +143,9 @@ msgstr "" #: ../../addon/impressum/impressum.php:82 ../../addon/blockem/blockem.php:57 #: ../../addon/qcomment/qcomment.php:61 #: ../../addon/openstreetmap/openstreetmap.php:70 -#: ../../addon/mathjax/mathjax.php:42 ../../addon/editplain/editplain.php:84 -#: ../../addon/blackout/blackout.php:98 ../../addon/gravatar/gravatar.php:86 +#: ../../addon/libertree/libertree.php:90 ../../addon/mathjax/mathjax.php:42 +#: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:98 +#: ../../addon/gravatar/gravatar.php:86 #: ../../addon/pageheader/pageheader.php:55 ../../addon/ijpost/ijpost.php:93 #: ../../addon/jappixmini/jappixmini.php:302 #: ../../addon/statusnet/statusnet.php:278 @@ -153,7 +155,7 @@ msgstr "" #: ../../addon/statusnet/statusnet.php:353 #: ../../addon/statusnet/statusnet.php:561 ../../addon/tumblr/tumblr.php:90 #: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88 -#: ../../addon/wppost/wppost.php:109 ../../addon/showmore/showmore.php:48 +#: ../../addon/wppost/wppost.php:110 ../../addon/showmore/showmore.php:48 #: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180 #: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:381 #: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102 @@ -170,7 +172,8 @@ msgstr "" msgid "Help:" msgstr "" -#: ../../mod/help.php:34 ../../include/nav.php:86 +#: ../../mod/help.php:34 ../../addon/dav/layout.fnk.php:112 +#: ../../include/nav.php:86 msgid "Help" msgstr "" @@ -229,11 +232,12 @@ msgstr "" msgid "Create New Event" msgstr "" -#: ../../mod/events.php:326 +#: ../../mod/events.php:326 ../../addon/dav/layout.fnk.php:147 msgid "Previous" msgstr "" #: ../../mod/events.php:327 ../../mod/install.php:205 +#: ../../addon/dav/layout.fnk.php:150 msgid "Next" msgstr "" @@ -399,10 +403,10 @@ msgstr "" msgid "was tagged in a" msgstr "" -#: ../../mod/photos.php:583 ../../mod/like.php:127 ../../mod/tagger.php:70 +#: ../../mod/photos.php:583 ../../mod/like.php:185 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 #: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1316 -#: ../../include/diaspora.php:1662 ../../include/conversation.php:53 +#: ../../include/diaspora.php:1671 ../../include/conversation.php:53 #: ../../include/conversation.php:126 msgid "photo" msgstr "" @@ -540,8 +544,8 @@ msgid "Share" msgstr "" #: ../../mod/photos.php:1277 ../../mod/editpost.php:104 -#: ../../mod/wallmessage.php:145 ../../mod/message.php:214 -#: ../../mod/message.php:408 ../../include/conversation.php:371 +#: ../../mod/wallmessage.php:145 ../../mod/message.php:215 +#: ../../mod/message.php:410 ../../include/conversation.php:371 #: ../../include/conversation.php:731 ../../include/conversation.php:1008 msgid "Please wait" msgstr "" @@ -563,7 +567,7 @@ msgid "Preview" msgstr "" #: ../../mod/photos.php:1394 ../../mod/settings.php:618 -#: ../../mod/settings.php:699 ../../mod/group.php:168 ../../mod/admin.php:660 +#: ../../mod/settings.php:699 ../../mod/group.php:168 ../../mod/admin.php:663 #: ../../include/conversation.php:328 ../../include/conversation.php:609 msgid "Delete" msgstr "" @@ -639,7 +643,7 @@ msgid "Edit" msgstr "" #: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143 -#: ../../mod/message.php:212 ../../mod/message.php:406 +#: ../../mod/message.php:213 ../../mod/message.php:408 #: ../../include/conversation.php:990 msgid "Upload photo" msgstr "" @@ -649,7 +653,7 @@ msgid "Attach file" msgstr "" #: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144 -#: ../../mod/message.php:213 ../../mod/message.php:407 +#: ../../mod/message.php:214 ../../mod/message.php:409 #: ../../include/conversation.php:994 msgid "Insert web link" msgstr "" @@ -779,7 +783,7 @@ msgstr "" msgid "Disallowed profile URL." msgstr "" -#: ../../mod/dfrn_request.php:555 ../../mod/contacts.php:102 +#: ../../mod/dfrn_request.php:555 ../../mod/contacts.php:122 msgid "Failed to update contact record." msgstr "" @@ -1218,8 +1222,8 @@ msgid "Discard" msgstr "" #: ../../mod/notifications.php:51 ../../mod/notifications.php:160 -#: ../../mod/notifications.php:206 ../../mod/contacts.php:296 -#: ../../mod/contacts.php:348 +#: ../../mod/notifications.php:206 ../../mod/contacts.php:316 +#: ../../mod/contacts.php:368 msgid "Ignore" msgstr "" @@ -1244,7 +1248,7 @@ msgstr "" msgid "Introductions" msgstr "" -#: ../../mod/notifications.php:100 ../../mod/message.php:104 +#: ../../mod/notifications.php:100 ../../mod/message.php:105 #: ../../include/nav.php:128 msgid "Messages" msgstr "" @@ -1271,7 +1275,7 @@ msgid "suggested by %s" msgstr "" #: ../../mod/notifications.php:153 ../../mod/notifications.php:200 -#: ../../mod/contacts.php:354 +#: ../../mod/contacts.php:374 msgid "Hide this contact from others" msgstr "" @@ -1284,7 +1288,7 @@ msgid "if applicable" msgstr "" #: ../../mod/notifications.php:157 ../../mod/notifications.php:204 -#: ../../mod/admin.php:658 +#: ../../mod/admin.php:661 msgid "Approve" msgstr "" @@ -1393,303 +1397,303 @@ msgstr "" msgid "Home Notifications" msgstr "" -#: ../../mod/contacts.php:63 ../../mod/contacts.php:143 +#: ../../mod/contacts.php:83 ../../mod/contacts.php:163 msgid "Could not access contact record." msgstr "" -#: ../../mod/contacts.php:77 +#: ../../mod/contacts.php:97 msgid "Could not locate selected profile." msgstr "" -#: ../../mod/contacts.php:100 +#: ../../mod/contacts.php:120 msgid "Contact updated." msgstr "" -#: ../../mod/contacts.php:165 +#: ../../mod/contacts.php:185 msgid "Contact has been blocked" msgstr "" -#: ../../mod/contacts.php:165 +#: ../../mod/contacts.php:185 msgid "Contact has been unblocked" msgstr "" -#: ../../mod/contacts.php:179 +#: ../../mod/contacts.php:199 msgid "Contact has been ignored" msgstr "" -#: ../../mod/contacts.php:179 +#: ../../mod/contacts.php:199 msgid "Contact has been unignored" msgstr "" -#: ../../mod/contacts.php:195 +#: ../../mod/contacts.php:215 msgid "Contact has been archived" msgstr "" -#: ../../mod/contacts.php:195 +#: ../../mod/contacts.php:215 msgid "Contact has been unarchived" msgstr "" -#: ../../mod/contacts.php:208 +#: ../../mod/contacts.php:228 msgid "Contact has been removed." msgstr "" -#: ../../mod/contacts.php:238 +#: ../../mod/contacts.php:258 #, php-format msgid "You are mutual friends with %s" msgstr "" -#: ../../mod/contacts.php:242 +#: ../../mod/contacts.php:262 #, php-format msgid "You are sharing with %s" msgstr "" -#: ../../mod/contacts.php:247 +#: ../../mod/contacts.php:267 #, php-format msgid "%s is sharing with you" msgstr "" -#: ../../mod/contacts.php:264 +#: ../../mod/contacts.php:284 msgid "Private communications are not available for this contact." msgstr "" -#: ../../mod/contacts.php:267 +#: ../../mod/contacts.php:287 msgid "Never" msgstr "" -#: ../../mod/contacts.php:271 +#: ../../mod/contacts.php:291 msgid "(Update was successful)" msgstr "" -#: ../../mod/contacts.php:271 +#: ../../mod/contacts.php:291 msgid "(Update was not successful)" msgstr "" -#: ../../mod/contacts.php:273 +#: ../../mod/contacts.php:293 msgid "Suggest friends" msgstr "" -#: ../../mod/contacts.php:277 +#: ../../mod/contacts.php:297 #, php-format msgid "Network type: %s" msgstr "" -#: ../../mod/contacts.php:280 ../../include/contact_widgets.php:183 +#: ../../mod/contacts.php:300 ../../include/contact_widgets.php:183 #, php-format msgid "%d contact in common" msgid_plural "%d contacts in common" msgstr[0] "" msgstr[1] "" -#: ../../mod/contacts.php:285 +#: ../../mod/contacts.php:305 msgid "View all contacts" msgstr "" -#: ../../mod/contacts.php:290 ../../mod/contacts.php:347 -#: ../../mod/admin.php:662 +#: ../../mod/contacts.php:310 ../../mod/contacts.php:367 +#: ../../mod/admin.php:665 msgid "Unblock" msgstr "" -#: ../../mod/contacts.php:290 ../../mod/contacts.php:347 -#: ../../mod/admin.php:661 +#: ../../mod/contacts.php:310 ../../mod/contacts.php:367 +#: ../../mod/admin.php:664 msgid "Block" msgstr "" -#: ../../mod/contacts.php:293 +#: ../../mod/contacts.php:313 msgid "Toggle Blocked status" msgstr "" -#: ../../mod/contacts.php:296 ../../mod/contacts.php:348 +#: ../../mod/contacts.php:316 ../../mod/contacts.php:368 msgid "Unignore" msgstr "" -#: ../../mod/contacts.php:299 +#: ../../mod/contacts.php:319 msgid "Toggle Ignored status" msgstr "" -#: ../../mod/contacts.php:303 +#: ../../mod/contacts.php:323 msgid "Unarchive" msgstr "" -#: ../../mod/contacts.php:303 +#: ../../mod/contacts.php:323 msgid "Archive" msgstr "" -#: ../../mod/contacts.php:306 +#: ../../mod/contacts.php:326 msgid "Toggle Archive status" msgstr "" -#: ../../mod/contacts.php:309 +#: ../../mod/contacts.php:329 msgid "Repair" msgstr "" -#: ../../mod/contacts.php:312 +#: ../../mod/contacts.php:332 msgid "Advanced Contact Settings" msgstr "" -#: ../../mod/contacts.php:320 +#: ../../mod/contacts.php:340 msgid "Contact Editor" msgstr "" -#: ../../mod/contacts.php:323 +#: ../../mod/contacts.php:343 msgid "Profile Visibility" msgstr "" -#: ../../mod/contacts.php:324 +#: ../../mod/contacts.php:344 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "" -#: ../../mod/contacts.php:325 +#: ../../mod/contacts.php:345 msgid "Contact Information / Notes" msgstr "" -#: ../../mod/contacts.php:326 +#: ../../mod/contacts.php:346 msgid "Edit contact notes" msgstr "" -#: ../../mod/contacts.php:331 ../../mod/contacts.php:522 +#: ../../mod/contacts.php:351 ../../mod/contacts.php:542 #: ../../mod/viewcontacts.php:62 ../../mod/nogroup.php:40 #, php-format msgid "Visit %s's profile [%s]" msgstr "" -#: ../../mod/contacts.php:332 +#: ../../mod/contacts.php:352 msgid "Block/Unblock contact" msgstr "" -#: ../../mod/contacts.php:333 +#: ../../mod/contacts.php:353 msgid "Ignore contact" msgstr "" -#: ../../mod/contacts.php:334 +#: ../../mod/contacts.php:354 msgid "Repair URL settings" msgstr "" -#: ../../mod/contacts.php:335 +#: ../../mod/contacts.php:355 msgid "View conversations" msgstr "" -#: ../../mod/contacts.php:337 +#: ../../mod/contacts.php:357 msgid "Delete contact" msgstr "" -#: ../../mod/contacts.php:341 +#: ../../mod/contacts.php:361 msgid "Last update:" msgstr "" -#: ../../mod/contacts.php:342 +#: ../../mod/contacts.php:362 msgid "Update public posts" msgstr "" -#: ../../mod/contacts.php:344 ../../mod/admin.php:1133 +#: ../../mod/contacts.php:364 ../../mod/admin.php:1136 msgid "Update now" msgstr "" -#: ../../mod/contacts.php:351 +#: ../../mod/contacts.php:371 msgid "Currently blocked" msgstr "" -#: ../../mod/contacts.php:352 +#: ../../mod/contacts.php:372 msgid "Currently ignored" msgstr "" -#: ../../mod/contacts.php:353 +#: ../../mod/contacts.php:373 msgid "Currently archived" msgstr "" -#: ../../mod/contacts.php:354 +#: ../../mod/contacts.php:374 msgid "" "Replies/likes to your public posts <strong>may</strong> still be visible" msgstr "" -#: ../../mod/contacts.php:407 +#: ../../mod/contacts.php:427 msgid "Suggestions" msgstr "" -#: ../../mod/contacts.php:410 +#: ../../mod/contacts.php:430 msgid "Suggest potential friends" msgstr "" -#: ../../mod/contacts.php:413 ../../mod/group.php:191 +#: ../../mod/contacts.php:433 ../../mod/group.php:191 msgid "All Contacts" msgstr "" -#: ../../mod/contacts.php:416 +#: ../../mod/contacts.php:436 msgid "Show all contacts" msgstr "" -#: ../../mod/contacts.php:419 +#: ../../mod/contacts.php:439 msgid "Unblocked" msgstr "" -#: ../../mod/contacts.php:422 +#: ../../mod/contacts.php:442 msgid "Only show unblocked contacts" msgstr "" -#: ../../mod/contacts.php:426 +#: ../../mod/contacts.php:446 msgid "Blocked" msgstr "" -#: ../../mod/contacts.php:429 +#: ../../mod/contacts.php:449 msgid "Only show blocked contacts" msgstr "" -#: ../../mod/contacts.php:433 +#: ../../mod/contacts.php:453 msgid "Ignored" msgstr "" -#: ../../mod/contacts.php:436 +#: ../../mod/contacts.php:456 msgid "Only show ignored contacts" msgstr "" -#: ../../mod/contacts.php:440 +#: ../../mod/contacts.php:460 msgid "Archived" msgstr "" -#: ../../mod/contacts.php:443 +#: ../../mod/contacts.php:463 msgid "Only show archived contacts" msgstr "" -#: ../../mod/contacts.php:447 +#: ../../mod/contacts.php:467 msgid "Hidden" msgstr "" -#: ../../mod/contacts.php:450 +#: ../../mod/contacts.php:470 msgid "Only show hidden contacts" msgstr "" -#: ../../mod/contacts.php:498 +#: ../../mod/contacts.php:518 msgid "Mutual Friendship" msgstr "" -#: ../../mod/contacts.php:502 +#: ../../mod/contacts.php:522 msgid "is a fan of yours" msgstr "" -#: ../../mod/contacts.php:506 +#: ../../mod/contacts.php:526 msgid "you are a fan of" msgstr "" -#: ../../mod/contacts.php:523 ../../mod/nogroup.php:41 +#: ../../mod/contacts.php:543 ../../mod/nogroup.php:41 msgid "Edit contact" msgstr "" -#: ../../mod/contacts.php:544 ../../view/theme/diabook/theme.php:129 +#: ../../mod/contacts.php:564 ../../view/theme/diabook/theme.php:129 #: ../../include/nav.php:139 msgid "Contacts" msgstr "" -#: ../../mod/contacts.php:548 +#: ../../mod/contacts.php:568 msgid "Search your contacts" msgstr "" -#: ../../mod/contacts.php:549 ../../mod/directory.php:57 +#: ../../mod/contacts.php:569 ../../mod/directory.php:57 msgid "Finding: " msgstr "" -#: ../../mod/contacts.php:550 ../../mod/directory.php:59 +#: ../../mod/contacts.php:570 ../../mod/directory.php:59 #: ../../include/contact_widgets.php:33 msgid "Find" msgstr "" @@ -1796,8 +1800,9 @@ msgstr "" msgid "Remove account" msgstr "" -#: ../../mod/settings.php:89 ../../mod/admin.php:748 ../../mod/admin.php:953 -#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:643 +#: ../../mod/settings.php:89 ../../mod/admin.php:751 ../../mod/admin.php:956 +#: ../../addon/dav/layout.fnk.php:112 ../../addon/mathjax/mathjax.php:36 +#: ../../view/theme/diabook/theme.php:643 #: ../../view/theme/diabook/theme.php:773 ../../include/nav.php:137 msgid "Settings" msgstr "" @@ -2404,8 +2409,8 @@ msgstr "" #: ../../mod/notes.php:63 ../../mod/filer.php:30 #: ../../addon/facebook/facebook.php:756 -#: ../../addon/privacy_image_cache/privacy_image_cache.php:150 -#: ../../include/text.php:652 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:178 +#: ../../addon/dav/layout.fnk.php:418 ../../include/text.php:652 msgid "Save" msgstr "" @@ -2414,7 +2419,7 @@ msgstr "" msgid "Number of daily wall messages for %s exceeded. Message failed." msgstr "" -#: ../../mod/wallmessage.php:56 ../../mod/message.php:65 +#: ../../mod/wallmessage.php:56 ../../mod/message.php:66 msgid "No recipient selected." msgstr "" @@ -2422,15 +2427,15 @@ msgstr "" msgid "Unable to check your home location." msgstr "" -#: ../../mod/wallmessage.php:62 ../../mod/message.php:72 +#: ../../mod/wallmessage.php:62 ../../mod/message.php:73 msgid "Message could not be sent." msgstr "" -#: ../../mod/wallmessage.php:65 ../../mod/message.php:75 +#: ../../mod/wallmessage.php:65 ../../mod/message.php:76 msgid "Message collection failure." msgstr "" -#: ../../mod/wallmessage.php:68 ../../mod/message.php:78 +#: ../../mod/wallmessage.php:68 ../../mod/message.php:79 msgid "Message sent." msgstr "" @@ -2438,12 +2443,12 @@ msgstr "" msgid "No recipient." msgstr "" -#: ../../mod/wallmessage.php:124 ../../mod/message.php:171 +#: ../../mod/wallmessage.php:124 ../../mod/message.php:172 #: ../../include/conversation.php:943 msgid "Please enter a link URL:" msgstr "" -#: ../../mod/wallmessage.php:131 ../../mod/message.php:199 +#: ../../mod/wallmessage.php:131 ../../mod/message.php:200 msgid "Send Private Message" msgstr "" @@ -2454,18 +2459,18 @@ msgid "" "your site allow private mail from unknown senders." msgstr "" -#: ../../mod/wallmessage.php:133 ../../mod/message.php:200 -#: ../../mod/message.php:397 +#: ../../mod/wallmessage.php:133 ../../mod/message.php:201 +#: ../../mod/message.php:399 msgid "To:" msgstr "" -#: ../../mod/wallmessage.php:134 ../../mod/message.php:205 -#: ../../mod/message.php:399 +#: ../../mod/wallmessage.php:134 ../../mod/message.php:206 +#: ../../mod/message.php:401 msgid "Subject:" msgstr "" -#: ../../mod/wallmessage.php:140 ../../mod/message.php:209 -#: ../../mod/message.php:402 ../../mod/invite.php:113 +#: ../../mod/wallmessage.php:140 ../../mod/message.php:210 +#: ../../mod/message.php:404 ../../mod/invite.php:113 msgid "Your message:" msgstr "" @@ -2730,7 +2735,7 @@ msgstr "" msgid "Your invitation ID: " msgstr "" -#: ../../mod/register.php:255 ../../mod/admin.php:418 +#: ../../mod/register.php:255 ../../mod/admin.php:421 msgid "Registration" msgstr "" @@ -2761,33 +2766,33 @@ msgstr "" msgid "People Search" msgstr "" -#: ../../mod/like.php:127 ../../mod/tagger.php:70 +#: ../../mod/like.php:185 ../../mod/like.php:259 ../../mod/tagger.php:70 #: ../../addon/facebook/facebook.php:1572 #: ../../addon/communityhome/communityhome.php:158 #: ../../addon/communityhome/communityhome.php:167 #: ../../view/theme/diabook/theme.php:565 -#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1662 +#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1671 #: ../../include/conversation.php:48 ../../include/conversation.php:57 #: ../../include/conversation.php:121 ../../include/conversation.php:130 msgid "status" msgstr "" -#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1576 +#: ../../mod/like.php:202 ../../addon/facebook/facebook.php:1576 #: ../../addon/communityhome/communityhome.php:172 -#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1678 +#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1687 #: ../../include/conversation.php:65 #, php-format msgid "%1$s likes %2$s's %3$s" msgstr "" -#: ../../mod/like.php:146 ../../include/conversation.php:68 +#: ../../mod/like.php:204 ../../include/conversation.php:68 #, php-format msgid "%1$s doesn't like %2$s's %3$s" msgstr "" -#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:156 -#: ../../mod/admin.php:697 ../../mod/admin.php:896 ../../mod/display.php:37 -#: ../../mod/display.php:142 ../../include/items.php:3179 +#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:159 +#: ../../mod/admin.php:700 ../../mod/admin.php:899 ../../mod/display.php:37 +#: ../../mod/display.php:142 ../../include/items.php:3184 msgid "Item not found." msgstr "" @@ -2940,67 +2945,67 @@ msgstr "" msgid "New Message" msgstr "" -#: ../../mod/message.php:69 +#: ../../mod/message.php:70 msgid "Unable to locate contact information." msgstr "" -#: ../../mod/message.php:119 +#: ../../mod/message.php:120 msgid "Message deleted." msgstr "" -#: ../../mod/message.php:149 +#: ../../mod/message.php:150 msgid "Conversation removed." msgstr "" -#: ../../mod/message.php:245 +#: ../../mod/message.php:247 msgid "No messages." msgstr "" -#: ../../mod/message.php:252 +#: ../../mod/message.php:254 #, php-format msgid "Unknown sender - %s" msgstr "" -#: ../../mod/message.php:255 +#: ../../mod/message.php:257 #, php-format msgid "You and %s" msgstr "" -#: ../../mod/message.php:258 +#: ../../mod/message.php:260 #, php-format msgid "%s and You" msgstr "" -#: ../../mod/message.php:268 ../../mod/message.php:390 +#: ../../mod/message.php:270 ../../mod/message.php:392 msgid "Delete conversation" msgstr "" -#: ../../mod/message.php:271 +#: ../../mod/message.php:273 msgid "D, d M Y - g:i A" msgstr "" -#: ../../mod/message.php:273 +#: ../../mod/message.php:275 #, php-format msgid "%d message" msgid_plural "%d messages" msgstr[0] "" msgstr[1] "" -#: ../../mod/message.php:308 +#: ../../mod/message.php:310 msgid "Message not available." msgstr "" -#: ../../mod/message.php:373 +#: ../../mod/message.php:375 msgid "Delete message" msgstr "" -#: ../../mod/message.php:392 +#: ../../mod/message.php:394 msgid "" "No secure communications available. You <strong>may</strong> be able to " "respond from the sender's profile page." msgstr "" -#: ../../mod/message.php:396 +#: ../../mod/message.php:398 msgid "Send Reply" msgstr "" @@ -3017,19 +3022,19 @@ msgstr "" msgid "Theme settings updated." msgstr "" -#: ../../mod/admin.php:96 ../../mod/admin.php:416 +#: ../../mod/admin.php:96 ../../mod/admin.php:419 msgid "Site" msgstr "" -#: ../../mod/admin.php:97 ../../mod/admin.php:652 ../../mod/admin.php:664 +#: ../../mod/admin.php:97 ../../mod/admin.php:655 ../../mod/admin.php:667 msgid "Users" msgstr "" -#: ../../mod/admin.php:98 ../../mod/admin.php:746 ../../mod/admin.php:788 +#: ../../mod/admin.php:98 ../../mod/admin.php:749 ../../mod/admin.php:791 msgid "Plugins" msgstr "" -#: ../../mod/admin.php:99 ../../mod/admin.php:951 ../../mod/admin.php:987 +#: ../../mod/admin.php:99 ../../mod/admin.php:954 ../../mod/admin.php:990 msgid "Themes" msgstr "" @@ -3037,557 +3042,565 @@ msgstr "" msgid "DB updates" msgstr "" -#: ../../mod/admin.php:115 ../../mod/admin.php:1074 +#: ../../mod/admin.php:115 ../../mod/admin.php:122 ../../mod/admin.php:1077 msgid "Logs" msgstr "" -#: ../../mod/admin.php:120 +#: ../../mod/admin.php:120 ../../include/nav.php:146 +msgid "Admin" +msgstr "" + +#: ../../mod/admin.php:121 +msgid "Plugin Features" +msgstr "" + +#: ../../mod/admin.php:123 msgid "User registrations waiting for confirmation" msgstr "" -#: ../../mod/admin.php:180 ../../mod/admin.php:634 +#: ../../mod/admin.php:183 ../../mod/admin.php:637 msgid "Normal Account" msgstr "" -#: ../../mod/admin.php:181 ../../mod/admin.php:635 +#: ../../mod/admin.php:184 ../../mod/admin.php:638 msgid "Soapbox Account" msgstr "" -#: ../../mod/admin.php:182 ../../mod/admin.php:636 +#: ../../mod/admin.php:185 ../../mod/admin.php:639 msgid "Community/Celebrity Account" msgstr "" -#: ../../mod/admin.php:183 ../../mod/admin.php:637 +#: ../../mod/admin.php:186 ../../mod/admin.php:640 msgid "Automatic Friend Account" msgstr "" -#: ../../mod/admin.php:202 +#: ../../mod/admin.php:205 msgid "Message queues" msgstr "" -#: ../../mod/admin.php:207 ../../mod/admin.php:415 ../../mod/admin.php:651 -#: ../../mod/admin.php:745 ../../mod/admin.php:787 ../../mod/admin.php:950 -#: ../../mod/admin.php:986 ../../mod/admin.php:1073 +#: ../../mod/admin.php:210 ../../mod/admin.php:418 ../../mod/admin.php:654 +#: ../../mod/admin.php:748 ../../mod/admin.php:790 ../../mod/admin.php:953 +#: ../../mod/admin.php:989 ../../mod/admin.php:1076 msgid "Administration" msgstr "" -#: ../../mod/admin.php:208 +#: ../../mod/admin.php:211 msgid "Summary" msgstr "" -#: ../../mod/admin.php:210 +#: ../../mod/admin.php:213 msgid "Registered users" msgstr "" -#: ../../mod/admin.php:212 +#: ../../mod/admin.php:215 msgid "Pending registrations" msgstr "" -#: ../../mod/admin.php:213 +#: ../../mod/admin.php:216 msgid "Version" msgstr "" -#: ../../mod/admin.php:215 +#: ../../mod/admin.php:218 msgid "Active plugins" msgstr "" -#: ../../mod/admin.php:354 +#: ../../mod/admin.php:357 msgid "Site settings updated." msgstr "" -#: ../../mod/admin.php:402 +#: ../../mod/admin.php:405 msgid "Closed" msgstr "" -#: ../../mod/admin.php:403 +#: ../../mod/admin.php:406 msgid "Requires approval" msgstr "" -#: ../../mod/admin.php:404 +#: ../../mod/admin.php:407 msgid "Open" msgstr "" -#: ../../mod/admin.php:408 +#: ../../mod/admin.php:411 msgid "No SSL policy, links will track page SSL state" msgstr "" -#: ../../mod/admin.php:409 +#: ../../mod/admin.php:412 msgid "Force all links to use SSL" msgstr "" -#: ../../mod/admin.php:410 +#: ../../mod/admin.php:413 msgid "Self-signed certificate, use SSL for local links only (discouraged)" msgstr "" -#: ../../mod/admin.php:419 +#: ../../mod/admin.php:422 msgid "File upload" msgstr "" -#: ../../mod/admin.php:420 +#: ../../mod/admin.php:423 msgid "Policies" msgstr "" -#: ../../mod/admin.php:421 +#: ../../mod/admin.php:424 msgid "Advanced" msgstr "" -#: ../../mod/admin.php:425 ../../addon/statusnet/statusnet.php:552 +#: ../../mod/admin.php:428 ../../addon/statusnet/statusnet.php:552 msgid "Site name" msgstr "" -#: ../../mod/admin.php:426 +#: ../../mod/admin.php:429 msgid "Banner/Logo" msgstr "" -#: ../../mod/admin.php:427 +#: ../../mod/admin.php:430 msgid "System language" msgstr "" -#: ../../mod/admin.php:428 +#: ../../mod/admin.php:431 msgid "System theme" msgstr "" -#: ../../mod/admin.php:428 +#: ../../mod/admin.php:431 msgid "" "Default system theme - may be over-ridden by user profiles - <a href='#' " "id='cnftheme'>change theme settings</a>" msgstr "" -#: ../../mod/admin.php:429 +#: ../../mod/admin.php:432 msgid "SSL link policy" msgstr "" -#: ../../mod/admin.php:429 +#: ../../mod/admin.php:432 msgid "Determines whether generated links should be forced to use SSL" msgstr "" -#: ../../mod/admin.php:430 +#: ../../mod/admin.php:433 msgid "Maximum image size" msgstr "" -#: ../../mod/admin.php:430 +#: ../../mod/admin.php:433 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "" -#: ../../mod/admin.php:432 +#: ../../mod/admin.php:435 msgid "Register policy" msgstr "" -#: ../../mod/admin.php:433 +#: ../../mod/admin.php:436 msgid "Register text" msgstr "" -#: ../../mod/admin.php:433 +#: ../../mod/admin.php:436 msgid "Will be displayed prominently on the registration page." msgstr "" -#: ../../mod/admin.php:434 +#: ../../mod/admin.php:437 msgid "Accounts abandoned after x days" msgstr "" -#: ../../mod/admin.php:434 +#: ../../mod/admin.php:437 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "" -#: ../../mod/admin.php:435 +#: ../../mod/admin.php:438 msgid "Allowed friend domains" msgstr "" -#: ../../mod/admin.php:435 +#: ../../mod/admin.php:438 msgid "" "Comma separated list of domains which are allowed to establish friendships " "with this site. Wildcards are accepted. Empty to allow any domains" msgstr "" -#: ../../mod/admin.php:436 +#: ../../mod/admin.php:439 msgid "Allowed email domains" msgstr "" -#: ../../mod/admin.php:436 +#: ../../mod/admin.php:439 msgid "" "Comma separated list of domains which are allowed in email addresses for " "registrations to this site. Wildcards are accepted. Empty to allow any " "domains" msgstr "" -#: ../../mod/admin.php:437 +#: ../../mod/admin.php:440 msgid "Block public" msgstr "" -#: ../../mod/admin.php:437 +#: ../../mod/admin.php:440 msgid "" "Check to block public access to all otherwise public personal pages on this " "site unless you are currently logged in." msgstr "" -#: ../../mod/admin.php:438 +#: ../../mod/admin.php:441 msgid "Force publish" msgstr "" -#: ../../mod/admin.php:438 +#: ../../mod/admin.php:441 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "" -#: ../../mod/admin.php:439 +#: ../../mod/admin.php:442 msgid "Global directory update URL" msgstr "" -#: ../../mod/admin.php:439 +#: ../../mod/admin.php:442 msgid "" "URL to update the global directory. If this is not set, the global directory " "is completely unavailable to the application." msgstr "" -#: ../../mod/admin.php:441 +#: ../../mod/admin.php:444 msgid "Block multiple registrations" msgstr "" -#: ../../mod/admin.php:441 +#: ../../mod/admin.php:444 msgid "Disallow users to register additional accounts for use as pages." msgstr "" -#: ../../mod/admin.php:442 +#: ../../mod/admin.php:445 msgid "OpenID support" msgstr "" -#: ../../mod/admin.php:442 +#: ../../mod/admin.php:445 msgid "OpenID support for registration and logins." msgstr "" -#: ../../mod/admin.php:443 +#: ../../mod/admin.php:446 msgid "Fullname check" msgstr "" -#: ../../mod/admin.php:443 +#: ../../mod/admin.php:446 msgid "" "Force users to register with a space between firstname and lastname in Full " "name, as an antispam measure" msgstr "" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:447 msgid "UTF-8 Regular expressions" msgstr "" -#: ../../mod/admin.php:444 +#: ../../mod/admin.php:447 msgid "Use PHP UTF8 regular expressions" msgstr "" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:448 msgid "Show Community Page" msgstr "" -#: ../../mod/admin.php:445 +#: ../../mod/admin.php:448 msgid "" "Display a Community page showing all recent public postings on this site." msgstr "" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:449 msgid "Enable OStatus support" msgstr "" -#: ../../mod/admin.php:446 +#: ../../mod/admin.php:449 msgid "" "Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All " "communications in OStatus are public, so privacy warnings will be " "occasionally displayed." msgstr "" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:450 msgid "Enable Diaspora support" msgstr "" -#: ../../mod/admin.php:447 +#: ../../mod/admin.php:450 msgid "Provide built-in Diaspora network compatibility." msgstr "" -#: ../../mod/admin.php:448 +#: ../../mod/admin.php:451 msgid "Only allow Friendica contacts" msgstr "" -#: ../../mod/admin.php:448 +#: ../../mod/admin.php:451 msgid "" "All contacts must use Friendica protocols. All other built-in communication " "protocols disabled." msgstr "" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:452 msgid "Verify SSL" msgstr "" -#: ../../mod/admin.php:449 +#: ../../mod/admin.php:452 msgid "" "If you wish, you can turn on strict certificate checking. This will mean you " "cannot connect (at all) to self-signed SSL sites." msgstr "" -#: ../../mod/admin.php:450 +#: ../../mod/admin.php:453 msgid "Proxy user" msgstr "" -#: ../../mod/admin.php:451 +#: ../../mod/admin.php:454 msgid "Proxy URL" msgstr "" -#: ../../mod/admin.php:452 +#: ../../mod/admin.php:455 msgid "Network timeout" msgstr "" -#: ../../mod/admin.php:452 +#: ../../mod/admin.php:455 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:456 msgid "Delivery interval" msgstr "" -#: ../../mod/admin.php:453 +#: ../../mod/admin.php:456 msgid "" "Delay background delivery processes by this many seconds to reduce system " "load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 " "for large dedicated servers." msgstr "" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:457 msgid "Poll interval" msgstr "" -#: ../../mod/admin.php:454 +#: ../../mod/admin.php:457 msgid "" "Delay background polling processes by this many seconds to reduce system " "load. If 0, use delivery interval." msgstr "" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:458 msgid "Maximum Load Average" msgstr "" -#: ../../mod/admin.php:455 +#: ../../mod/admin.php:458 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "" -#: ../../mod/admin.php:469 +#: ../../mod/admin.php:472 msgid "Update has been marked successful" msgstr "" -#: ../../mod/admin.php:479 +#: ../../mod/admin.php:482 #, php-format msgid "Executing %s failed. Check system logs." msgstr "" -#: ../../mod/admin.php:482 +#: ../../mod/admin.php:485 #, php-format msgid "Update %s was successfully applied." msgstr "" -#: ../../mod/admin.php:486 +#: ../../mod/admin.php:489 #, php-format msgid "Update %s did not return a status. Unknown if it succeeded." msgstr "" -#: ../../mod/admin.php:489 +#: ../../mod/admin.php:492 #, php-format msgid "Update function %s could not be found." msgstr "" -#: ../../mod/admin.php:504 +#: ../../mod/admin.php:507 msgid "No failed updates." msgstr "" -#: ../../mod/admin.php:508 +#: ../../mod/admin.php:511 msgid "Failed Updates" msgstr "" -#: ../../mod/admin.php:509 +#: ../../mod/admin.php:512 msgid "" "This does not include updates prior to 1139, which did not return a status." msgstr "" -#: ../../mod/admin.php:510 +#: ../../mod/admin.php:513 msgid "Mark success (if update was manually applied)" msgstr "" -#: ../../mod/admin.php:511 +#: ../../mod/admin.php:514 msgid "Attempt to execute this update step automatically" msgstr "" -#: ../../mod/admin.php:536 +#: ../../mod/admin.php:539 #, php-format msgid "%s user blocked/unblocked" msgid_plural "%s users blocked/unblocked" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:543 +#: ../../mod/admin.php:546 #, php-format msgid "%s user deleted" msgid_plural "%s users deleted" msgstr[0] "" msgstr[1] "" -#: ../../mod/admin.php:582 +#: ../../mod/admin.php:585 #, php-format msgid "User '%s' deleted" msgstr "" -#: ../../mod/admin.php:590 +#: ../../mod/admin.php:593 #, php-format msgid "User '%s' unblocked" msgstr "" -#: ../../mod/admin.php:590 +#: ../../mod/admin.php:593 #, php-format msgid "User '%s' blocked" msgstr "" -#: ../../mod/admin.php:654 +#: ../../mod/admin.php:657 msgid "select all" msgstr "" -#: ../../mod/admin.php:655 +#: ../../mod/admin.php:658 msgid "User registrations waiting for confirm" msgstr "" -#: ../../mod/admin.php:656 +#: ../../mod/admin.php:659 msgid "Request date" msgstr "" -#: ../../mod/admin.php:656 ../../mod/admin.php:665 +#: ../../mod/admin.php:659 ../../mod/admin.php:668 #: ../../include/contact_selectors.php:79 msgid "Email" msgstr "" -#: ../../mod/admin.php:657 +#: ../../mod/admin.php:660 msgid "No registrations." msgstr "" -#: ../../mod/admin.php:659 +#: ../../mod/admin.php:662 msgid "Deny" msgstr "" -#: ../../mod/admin.php:665 +#: ../../mod/admin.php:668 msgid "Register date" msgstr "" -#: ../../mod/admin.php:665 +#: ../../mod/admin.php:668 msgid "Last login" msgstr "" -#: ../../mod/admin.php:665 +#: ../../mod/admin.php:668 msgid "Last item" msgstr "" -#: ../../mod/admin.php:665 +#: ../../mod/admin.php:668 msgid "Account" msgstr "" -#: ../../mod/admin.php:667 +#: ../../mod/admin.php:670 msgid "" "Selected users will be deleted!\\n\\nEverything these users had posted on " "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:668 +#: ../../mod/admin.php:671 msgid "" "The user {0} will be deleted!\\n\\nEverything this user has posted on this " "site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../mod/admin.php:709 +#: ../../mod/admin.php:712 #, php-format msgid "Plugin %s disabled." msgstr "" -#: ../../mod/admin.php:713 +#: ../../mod/admin.php:716 #, php-format msgid "Plugin %s enabled." msgstr "" -#: ../../mod/admin.php:723 ../../mod/admin.php:921 +#: ../../mod/admin.php:726 ../../mod/admin.php:924 msgid "Disable" msgstr "" -#: ../../mod/admin.php:725 ../../mod/admin.php:923 +#: ../../mod/admin.php:728 ../../mod/admin.php:926 msgid "Enable" msgstr "" -#: ../../mod/admin.php:747 ../../mod/admin.php:952 +#: ../../mod/admin.php:750 ../../mod/admin.php:955 msgid "Toggle" msgstr "" -#: ../../mod/admin.php:755 ../../mod/admin.php:962 +#: ../../mod/admin.php:758 ../../mod/admin.php:965 msgid "Author: " msgstr "" -#: ../../mod/admin.php:756 ../../mod/admin.php:963 +#: ../../mod/admin.php:759 ../../mod/admin.php:966 msgid "Maintainer: " msgstr "" -#: ../../mod/admin.php:885 +#: ../../mod/admin.php:888 msgid "No themes found." msgstr "" -#: ../../mod/admin.php:944 +#: ../../mod/admin.php:947 msgid "Screenshot" msgstr "" -#: ../../mod/admin.php:992 +#: ../../mod/admin.php:995 msgid "[Experimental]" msgstr "" -#: ../../mod/admin.php:993 +#: ../../mod/admin.php:996 msgid "[Unsupported]" msgstr "" -#: ../../mod/admin.php:1020 +#: ../../mod/admin.php:1023 msgid "Log settings updated." msgstr "" -#: ../../mod/admin.php:1076 +#: ../../mod/admin.php:1079 msgid "Clear" msgstr "" -#: ../../mod/admin.php:1082 +#: ../../mod/admin.php:1085 msgid "Debugging" msgstr "" -#: ../../mod/admin.php:1083 +#: ../../mod/admin.php:1086 msgid "Log file" msgstr "" -#: ../../mod/admin.php:1083 +#: ../../mod/admin.php:1086 msgid "" "Must be writable by web server. Relative to your Friendica top-level " "directory." msgstr "" -#: ../../mod/admin.php:1084 +#: ../../mod/admin.php:1087 msgid "Log level" msgstr "" -#: ../../mod/admin.php:1134 +#: ../../mod/admin.php:1137 msgid "Close" msgstr "" -#: ../../mod/admin.php:1140 +#: ../../mod/admin.php:1143 msgid "FTP Host" msgstr "" -#: ../../mod/admin.php:1141 +#: ../../mod/admin.php:1144 msgid "FTP Path" msgstr "" -#: ../../mod/admin.php:1142 +#: ../../mod/admin.php:1145 msgid "FTP User" msgstr "" -#: ../../mod/admin.php:1143 +#: ../../mod/admin.php:1146 msgid "FTP Password" msgstr "" @@ -4188,7 +4201,7 @@ msgstr "" msgid "Unable to set contact photo." msgstr "" -#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:507 +#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:510 #: ../../include/conversation.php:101 #, php-format msgid "%1$s is now friends with %2$s" @@ -4407,7 +4420,7 @@ msgstr "" msgid "Activate Real-Time Updates" msgstr "" -#: ../../addon/facebook/facebook.php:785 +#: ../../addon/facebook/facebook.php:785 ../../addon/dav/layout.fnk.php:394 msgid "The new values have been saved." msgstr "" @@ -4447,23 +4460,23 @@ msgid "" "connection again, you have to %3$sre-authenticate the Facebook-connector%4$s." msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:147 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:175 msgid "Lifetime of the cache (in hours)" msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:152 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:180 msgid "Cache Statistics" msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:155 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:183 msgid "Number of items" msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:157 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:185 msgid "Size of the cache" msgstr "" -#: ../../addon/privacy_image_cache/privacy_image_cache.php:159 +#: ../../addon/privacy_image_cache/privacy_image_cache.php:187 msgid "Delete the whole cache" msgstr "" @@ -4639,6 +4652,185 @@ msgstr "" msgid "event" msgstr "" +#: ../../addon/dav/common/wdcal_configuration.php:126 +msgid "U.S. Time Format (mm/dd/YYYY)" +msgstr "" + +#: ../../addon/dav/common/wdcal_configuration.php:205 +msgid "German Time Format (dd.mm.YYYY)" +msgstr "" + +#: ../../addon/dav/common/calendar.fnk.php:507 +#: ../../addon/dav/common/calendar.fnk.php:576 +#: ../../addon/dav/common/calendar.fnk.php:603 +#: ../../addon/dav/layout.fnk.php:266 +msgid "No access" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:116 +msgid "Today" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:132 +msgid "Week" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:139 +msgid "Month" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:144 +msgid "Reload" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:155 +msgid "Date" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:193 ../../addon/dav/layout.fnk.php:237 +msgid "Error" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:259 +msgid "Not found" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:326 ../../addon/dav/layout.fnk.php:399 +msgid "Go back to the calendar" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:346 +msgid "Description" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:349 +msgid "Notification" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:358 +msgid "Minutes" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:361 +msgid "Hours" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:364 +msgid "Days" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:365 +msgid "before" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:401 +msgid "Calendar Settings" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:407 +msgid "Date format" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:416 +msgid "Time zone" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:421 +msgid "Limitations" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:425 +msgid "Warning" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:429 +msgid "Synchronization (iPhone, Thunderbird Lightning, Android, ...)" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:436 +msgid "Synchronizing this calendar with the iPhone" +msgstr "" + +#: ../../addon/dav/layout.fnk.php:447 +msgid "Synchronizing your Friendica-Contacts with the iPhone" +msgstr "" + +#: ../../addon/dav/dav_carddav_backend_friendica_community.inc.php:37 +msgid "Friendica-Contacts" +msgstr "" + +#: ../../addon/dav/dav_carddav_backend_friendica_community.inc.php:38 +msgid "Your Friendica-Contacts" +msgstr "" + +#: ../../addon/dav/main.php:229 +msgid "Calendar" +msgstr "" + +#: ../../addon/dav/main.php:232 +msgid "Extended calendar with CalDAV-support" +msgstr "" + +#: ../../addon/dav/main.php:248 +msgid "The database tables have been installed." +msgstr "" + +#: ../../addon/dav/main.php:249 +msgid "An error occurred during the installation." +msgstr "" + +#: ../../addon/dav/main.php:265 +msgid "No system-wide settings yet." +msgstr "" + +#: ../../addon/dav/main.php:268 +msgid "Database status" +msgstr "" + +#: ../../addon/dav/main.php:271 +msgid "Installed" +msgstr "" + +#: ../../addon/dav/main.php:274 +msgid "Upgrade needed" +msgstr "" + +#: ../../addon/dav/main.php:274 +msgid "Upgrade" +msgstr "" + +#: ../../addon/dav/main.php:277 +msgid "Not installed" +msgstr "" + +#: ../../addon/dav/main.php:277 +msgid "Install" +msgstr "" + +#: ../../addon/dav/main.php:282 +msgid "Troubleshooting" +msgstr "" + +#: ../../addon/dav/main.php:283 +msgid "Manual creation of the database tables:" +msgstr "" + +#: ../../addon/dav/main.php:284 +msgid "Show SQL-statements" +msgstr "" + +#: ../../addon/dav/calendar.friendica.fnk.php:128 +msgid "Private Calendar" +msgstr "" + +#: ../../addon/dav/calendar.friendica.fnk.php:135 +msgid "Friendica Events: Mine" +msgstr "" + +#: ../../addon/dav/calendar.friendica.fnk.php:138 +msgid "Friendica Events: Contacts" +msgstr "" + #: ../../addon/uhremotestorage/uhremotestorage.php:84 #, php-format msgid "" @@ -4785,8 +4977,8 @@ msgstr "" msgid "Post to Drupal by default" msgstr "" -#: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:198 -#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:192 +#: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:199 +#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:189 msgid "Post from Friendica" msgstr "" @@ -5019,6 +5211,30 @@ msgstr "" msgid "The default zoom level. (1:world, 18:highest)" msgstr "" +#: ../../addon/libertree/libertree.php:36 +msgid "Post to libertree" +msgstr "" + +#: ../../addon/libertree/libertree.php:67 +msgid "libertree Post Settings" +msgstr "" + +#: ../../addon/libertree/libertree.php:69 +msgid "Enable Libertree Post Plugin" +msgstr "" + +#: ../../addon/libertree/libertree.php:74 +msgid "Libertree API token" +msgstr "" + +#: ../../addon/libertree/libertree.php:79 +msgid "Libertree site URL" +msgstr "" + +#: ../../addon/libertree/libertree.php:84 +msgid "Post to Libertree by default" +msgstr "" + #: ../../addon/mathjax/mathjax.php:37 msgid "" "The MathJax addon renders mathematical formulae written using the LaTeX " @@ -5270,6 +5486,10 @@ msgstr "" msgid "API URL" msgstr "" +#: ../../addon/infiniteimprobabilitydrive/infiniteimprobabilitydrive.php:19 +msgid "Infinite Improbability Drive" +msgstr "" + #: ../../addon/tumblr/tumblr.php:36 msgid "Post to Tumblr" msgstr "" @@ -5357,11 +5577,11 @@ msgstr "" msgid "Post to WordPress by default" msgstr "" -#: ../../addon/wppost/wppost.php:102 +#: ../../addon/wppost/wppost.php:103 msgid "Provide a backlink to the Friendica post" msgstr "" -#: ../../addon/wppost/wppost.php:204 +#: ../../addon/wppost/wppost.php:205 msgid "Read the original post and comment stream on Friendica" msgstr "" @@ -6177,12 +6397,12 @@ msgstr "" msgid "Finishes:" msgstr "" -#: ../../include/delivery.php:455 ../../include/notifier.php:677 +#: ../../include/delivery.php:456 ../../include/notifier.php:678 msgid "(no subject)" msgstr "" -#: ../../include/delivery.php:462 ../../include/enotify.php:26 -#: ../../include/notifier.php:684 +#: ../../include/delivery.php:463 ../../include/enotify.php:26 +#: ../../include/notifier.php:685 msgid "noreply" msgstr "" @@ -6337,19 +6557,14 @@ msgstr "" msgid "Item filed" msgstr "" -#: ../../include/diaspora.php:590 +#: ../../include/diaspora.php:593 msgid "Sharing notification from Diaspora network" msgstr "" -#: ../../include/diaspora.php:1977 +#: ../../include/diaspora.php:2037 msgid "Attachments:" msgstr "" -#: ../../include/diaspora.php:2168 -#, php-format -msgid "[Relayed] Comment authored by %s from network %s" -msgstr "" - #: ../../include/network.php:824 msgid "view full size" msgstr "" @@ -6498,10 +6713,6 @@ msgid "Manage/edit friends and contacts" msgstr "" #: ../../include/nav.php:146 -msgid "Admin" -msgstr "" - -#: ../../include/nav.php:146 msgid "Site setup and configuration" msgstr "" diff --git a/util/typo.php b/util/typo.php index 7c275f3ca..bb2fc67c9 100644 --- a/util/typo.php +++ b/util/typo.php @@ -30,11 +30,10 @@ $dirs = glob('addon/*'); foreach($dirs as $dir) { - $files = glob($dir . '/*.php'); + $addon = basename($dir); + $files = glob($dir . '/' . $addon . '.php'); foreach($files as $file) { echo $file . "\n"; - if(stristr($file,'jappixmini/proxy.php')) - continue; include_once($file); } } diff --git a/view/admin_aside.tpl b/view/admin_aside.tpl index f25a1eb4b..ca1f4985c 100644 --- a/view/admin_aside.tpl +++ b/view/admin_aside.tpl @@ -10,7 +10,7 @@ }); }); </script> -<h4><a href="$admurl">Admin</a></h4> +<h4><a href="$admurl">$admtxt</a></h4> <ul class='admin linklist'> <li class='admin link button $admin.site.2'><a href='$admin.site.0'>$admin.site.1</a></li> <li class='admin link button $admin.users.2'><a href='$admin.users.0'>$admin.users.1</a><span id='pending-update' title='$h_pending'></span></li> @@ -19,13 +19,15 @@ <li class='admin link button $admin.dbsync.2'><a href='$admin.dbsync.0'>$admin.dbsync.1</a></li> </ul> +{{ if $admin.update }} <ul class='admin linklist'> <li class='admin link button $admin.update.2'><a href='$admin.update.0'>$admin.update.1</a></li> <li class='admin link button $admin.update.2'><a href='https://kakste.com/profile/inthegit'>Important Changes</a></li> </ul> +{{ endif }} -{{ if $admin.plugins_admin }}<h4>Plugins</h4>{{ endif }} +{{ if $admin.plugins_admin }}<h4>$plugadmtxt</h4>{{ endif }} <ul class='admin linklist'> {{ for $admin.plugins_admin as $l }} <li class='admin link button $l.2'><a href='$l.0'>$l.1</a></li> @@ -33,7 +35,7 @@ </ul> -<h4>Logs</h4> +<h4>$logtxt</h4> <ul class='admin linklist'> <li class='admin link button $admin.logs.2'><a href='$admin.logs.0'>$admin.logs.1</a></li> </ul> diff --git a/view/de/messages.po b/view/de/messages.po index 91abdc227..b784e615e 100644 --- a/view/de/messages.po +++ b/view/de/messages.po @@ -19,8 +19,8 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: http://bugs.friendica.com/\n" -"POT-Creation-Date: 2012-06-03 10:00-0700\n" -"PO-Revision-Date: 2012-06-05 08:08+0000\n" +"POT-Creation-Date: 2012-06-05 10:00-0700\n" +"PO-Revision-Date: 2012-06-06 23:32+0000\n" "Last-Translator: zottel <transifex@zottel.net>\n" "Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n" "MIME-Version: 1.0\n" @@ -67,7 +67,7 @@ msgstr "Konnte den Kontakt nicht aktualisieren." #: ../../mod/profiles.php:385 ../../mod/delegate.php:6 #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81 #: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:503 -#: ../../include/items.php:3297 ../../index.php:306 +#: ../../include/items.php:3332 ../../index.php:306 msgid "Permission denied." msgstr "Zugriff verweigert." @@ -141,9 +141,9 @@ msgstr "Neues Foto von dieser URL" #: ../../mod/localtime.php:45 ../../mod/contacts.php:322 #: ../../mod/settings.php:555 ../../mod/settings.php:701 #: ../../mod/settings.php:762 ../../mod/settings.php:969 -#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/admin.php:417 -#: ../../mod/admin.php:653 ../../mod/admin.php:789 ../../mod/admin.php:988 -#: ../../mod/admin.php:1075 ../../mod/profiles.php:554 +#: ../../mod/manage.php:109 ../../mod/group.php:85 ../../mod/message.php:215 +#: ../../mod/admin.php:417 ../../mod/admin.php:653 ../../mod/admin.php:789 +#: ../../mod/admin.php:988 ../../mod/admin.php:1075 ../../mod/profiles.php:554 #: ../../mod/invite.php:119 ../../addon/facebook/facebook.php:605 #: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:93 #: ../../addon/nsfw/nsfw.php:57 ../../addon/planets/planets.php:158 @@ -411,10 +411,10 @@ msgstr "Foto löschen" msgid "was tagged in a" msgstr "wurde getaggt in einem" -#: ../../mod/photos.php:583 ../../mod/like.php:127 ../../mod/tagger.php:70 +#: ../../mod/photos.php:583 ../../mod/like.php:185 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 #: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1316 -#: ../../include/diaspora.php:1662 ../../include/conversation.php:53 +#: ../../include/diaspora.php:1671 ../../include/conversation.php:53 #: ../../include/conversation.php:126 msgid "photo" msgstr "Foto" @@ -554,7 +554,7 @@ msgstr "Teilen" #: ../../mod/photos.php:1277 ../../mod/editpost.php:104 #: ../../mod/wallmessage.php:145 ../../mod/message.php:214 -#: ../../mod/message.php:408 ../../include/conversation.php:371 +#: ../../mod/message.php:409 ../../include/conversation.php:371 #: ../../include/conversation.php:731 ../../include/conversation.php:1008 msgid "Please wait" msgstr "Bitte warten" @@ -652,7 +652,7 @@ msgid "Edit" msgstr "Bearbeiten" #: ../../mod/editpost.php:96 ../../mod/wallmessage.php:143 -#: ../../mod/message.php:212 ../../mod/message.php:406 +#: ../../mod/message.php:212 ../../mod/message.php:407 #: ../../include/conversation.php:990 msgid "Upload photo" msgstr "Foto hochladen" @@ -662,7 +662,7 @@ msgid "Attach file" msgstr "Datei anhängen" #: ../../mod/editpost.php:98 ../../mod/wallmessage.php:144 -#: ../../mod/message.php:213 ../../mod/message.php:407 +#: ../../mod/message.php:213 ../../mod/message.php:408 #: ../../include/conversation.php:994 msgid "Insert web link" msgstr "einen Link einfügen" @@ -2141,7 +2141,7 @@ msgstr "Die Adresse deines Profils lautet:" #: ../../mod/settings.php:953 msgid "Automatically expire posts after this many days:" -msgstr "Beiträge verfallen automatisch nach dieser Anzahl von Tagen" +msgstr "Beiträge verfallen automatisch nach dieser Anzahl von Tagen:" #: ../../mod/settings.php:953 msgid "If empty, posts will not expire. Expired posts will be deleted" @@ -2173,7 +2173,7 @@ msgstr "Fotos verfallen lassen:" #: ../../mod/settings.php:960 msgid "Only expire posts by others:" -msgstr "Nur Beiträge anderer verfallen" +msgstr "Nur Beiträge anderer verfallen:" #: ../../mod/settings.php:967 msgid "Account Settings" @@ -2217,7 +2217,7 @@ msgstr "Standardstandort:" #: ../../mod/settings.php:986 msgid "Use Browser Location:" -msgstr "Verwende den Standort des Browsers:" +msgstr "Standort des Browsers verwenden:" #: ../../mod/settings.php:989 msgid "Security and Privacy Settings" @@ -2470,17 +2470,17 @@ msgid "" msgstr "Wenn du möchtest, dass %s dir antworten kann, überprüfe deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern." #: ../../mod/wallmessage.php:133 ../../mod/message.php:200 -#: ../../mod/message.php:397 +#: ../../mod/message.php:398 msgid "To:" msgstr "An:" #: ../../mod/wallmessage.php:134 ../../mod/message.php:205 -#: ../../mod/message.php:399 +#: ../../mod/message.php:400 msgid "Subject:" msgstr "Betreff:" #: ../../mod/wallmessage.php:140 ../../mod/message.php:209 -#: ../../mod/message.php:402 ../../mod/invite.php:113 +#: ../../mod/message.php:403 ../../mod/invite.php:113 msgid "Your message:" msgstr "Deine Nachricht:" @@ -2776,26 +2776,26 @@ msgstr "Registrieren" msgid "People Search" msgstr "Personen Suche" -#: ../../mod/like.php:127 ../../mod/tagger.php:70 +#: ../../mod/like.php:185 ../../mod/like.php:259 ../../mod/tagger.php:70 #: ../../addon/facebook/facebook.php:1572 #: ../../addon/communityhome/communityhome.php:158 #: ../../addon/communityhome/communityhome.php:167 #: ../../view/theme/diabook/theme.php:565 -#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1662 +#: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1671 #: ../../include/conversation.php:48 ../../include/conversation.php:57 #: ../../include/conversation.php:121 ../../include/conversation.php:130 msgid "status" msgstr "Status" -#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1576 +#: ../../mod/like.php:202 ../../addon/facebook/facebook.php:1576 #: ../../addon/communityhome/communityhome.php:172 -#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1678 +#: ../../view/theme/diabook/theme.php:579 ../../include/diaspora.php:1687 #: ../../include/conversation.php:65 #, php-format msgid "%1$s likes %2$s's %3$s" msgstr "%1$s mag %2$ss %3$s" -#: ../../mod/like.php:146 ../../include/conversation.php:68 +#: ../../mod/like.php:204 ../../include/conversation.php:68 #, php-format msgid "%1$s doesn't like %2$s's %3$s" msgstr "%1$s mag %2$ss %3$s nicht" @@ -2968,55 +2968,55 @@ msgstr "Nachricht gelöscht." msgid "Conversation removed." msgstr "Unterhaltung gelöscht." -#: ../../mod/message.php:245 +#: ../../mod/message.php:246 msgid "No messages." msgstr "Keine Nachrichten." -#: ../../mod/message.php:252 +#: ../../mod/message.php:253 #, php-format msgid "Unknown sender - %s" msgstr "'Unbekannter Absender - %s" -#: ../../mod/message.php:255 +#: ../../mod/message.php:256 #, php-format msgid "You and %s" msgstr "Du und %s" -#: ../../mod/message.php:258 +#: ../../mod/message.php:259 #, php-format msgid "%s and You" msgstr "%s und Du" -#: ../../mod/message.php:268 ../../mod/message.php:390 +#: ../../mod/message.php:269 ../../mod/message.php:391 msgid "Delete conversation" msgstr "Unterhaltung löschen" -#: ../../mod/message.php:271 +#: ../../mod/message.php:272 msgid "D, d M Y - g:i A" msgstr "D, d. M Y - g:i A" -#: ../../mod/message.php:273 +#: ../../mod/message.php:274 #, php-format msgid "%d message" msgid_plural "%d messages" msgstr[0] "%d Nachricht" msgstr[1] "%d Nachrichten" -#: ../../mod/message.php:308 +#: ../../mod/message.php:309 msgid "Message not available." msgstr "Nachricht nicht verfügbar." -#: ../../mod/message.php:373 +#: ../../mod/message.php:374 msgid "Delete message" msgstr "Nachricht löschen" -#: ../../mod/message.php:392 +#: ../../mod/message.php:393 msgid "" "No secure communications available. You <strong>may</strong> be able to " "respond from the sender's profile page." msgstr "Sichere Kommunikation ist nicht verfügbar. <strong>Eventuell</strong> kannst du auf der Profilseite des Absenders antworten." -#: ../../mod/message.php:396 +#: ../../mod/message.php:397 msgid "Send Reply" msgstr "Antwort senden" @@ -3858,7 +3858,7 @@ msgstr "Adresse:" #: ../../mod/profiles.php:565 msgid "Locality/City:" -msgstr "Wohnort/Stadt:" +msgstr "Wohnort:" #: ../../mod/profiles.php:566 msgid "Postal/Zip Code:" @@ -3898,7 +3898,7 @@ msgstr "Adresse der Homepage:" #: ../../mod/profiles.php:575 ../../include/profile_advanced.php:50 msgid "Hometown:" -msgstr "Wohnort:" +msgstr "Heimatort:" #: ../../mod/profiles.php:576 ../../include/profile_advanced.php:54 msgid "Political Views:" @@ -4204,7 +4204,7 @@ msgstr "Kontaktanfrage schlug fehl oder wurde zurück gezogen." msgid "Unable to set contact photo." msgstr "Konnte das Bild des Kontakts nicht speichern." -#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:507 +#: ../../mod/dfrn_confirm.php:477 ../../include/diaspora.php:510 #: ../../include/conversation.php:101 #, php-format msgid "%1$s is now friends with %2$s" @@ -6186,12 +6186,12 @@ msgstr "Beginnt:" msgid "Finishes:" msgstr "Endet:" -#: ../../include/delivery.php:455 ../../include/notifier.php:677 +#: ../../include/delivery.php:456 ../../include/notifier.php:678 msgid "(no subject)" msgstr "(kein Betreff)" -#: ../../include/delivery.php:462 ../../include/enotify.php:26 -#: ../../include/notifier.php:684 +#: ../../include/delivery.php:463 ../../include/enotify.php:26 +#: ../../include/notifier.php:685 msgid "noreply" msgstr "noreply" @@ -6346,19 +6346,14 @@ msgstr "Beitrag" msgid "Item filed" msgstr "Beitrag abgelegt" -#: ../../include/diaspora.php:590 +#: ../../include/diaspora.php:593 msgid "Sharing notification from Diaspora network" msgstr "Freigabe-Benachrichtigung von Diaspora" -#: ../../include/diaspora.php:1977 +#: ../../include/diaspora.php:2037 msgid "Attachments:" msgstr "Anhänge:" -#: ../../include/diaspora.php:2168 -#, php-format -msgid "[Relayed] Comment authored by %s from network %s" -msgstr "[Weitergeleitet] Kommentar von %s aus dem %s Netzwerk" - #: ../../include/network.php:824 msgid "view full size" msgstr "Volle Größe anzeigen" @@ -7111,7 +7106,7 @@ msgstr "mag ich nicht" #: ../../include/conversation.php:557 msgid "Share this" -msgstr "Teile dieses" +msgstr "Weitersagen" #: ../../include/conversation.php:557 msgid "share" diff --git a/view/de/strings.php b/view/de/strings.php index b49df0e80..f3d1f23a7 100644 --- a/view/de/strings.php +++ b/view/de/strings.php @@ -472,7 +472,7 @@ $a->strings["Permit unknown people to send you private mail?"] = "Dürfen dir Un $a->strings["Profile is <strong>not published</strong>."] = "Profil ist <strong>nicht veröffentlicht</strong>."; $a->strings["or"] = "oder"; $a->strings["Your Identity Address is"] = "Die Adresse deines Profils lautet:"; -$a->strings["Automatically expire posts after this many days:"] = "Beiträge verfallen automatisch nach dieser Anzahl von Tagen"; +$a->strings["Automatically expire posts after this many days:"] = "Beiträge verfallen automatisch nach dieser Anzahl von Tagen:"; $a->strings["If empty, posts will not expire. Expired posts will be deleted"] = "Wenn leer verfallen Beiträge nie automatisch. Verfallene Beiträge werden gelöscht."; $a->strings["Advanced expiration settings"] = "Erweiterte Verfallseinstellungen"; $a->strings["Advanced Expiration"] = "Erweitertes Verfallen"; @@ -480,7 +480,7 @@ $a->strings["Expire posts:"] = "Beiträge verfallen lassen:"; $a->strings["Expire personal notes:"] = "Persönliche Notizen verfallen lassen:"; $a->strings["Expire starred posts:"] = "Markierte Beiträge verfallen lassen:"; $a->strings["Expire photos:"] = "Fotos verfallen lassen:"; -$a->strings["Only expire posts by others:"] = "Nur Beiträge anderer verfallen"; +$a->strings["Only expire posts by others:"] = "Nur Beiträge anderer verfallen:"; $a->strings["Account Settings"] = "Kontoeinstellungen"; $a->strings["Password Settings"] = "Passwort-Einstellungen"; $a->strings["New Password:"] = "Neues Passwort:"; @@ -491,7 +491,7 @@ $a->strings["Full Name:"] = "Kompletter Name:"; $a->strings["Email Address:"] = "E-Mail-Adresse:"; $a->strings["Your Timezone:"] = "Deine Zeitzone:"; $a->strings["Default Post Location:"] = "Standardstandort:"; -$a->strings["Use Browser Location:"] = "Verwende den Standort des Browsers:"; +$a->strings["Use Browser Location:"] = "Standort des Browsers verwenden:"; $a->strings["Security and Privacy Settings"] = "Sicherheits- und Privatsphäre-Einstellungen"; $a->strings["Maximum Friend Requests/Day:"] = "Maximale Anzahl von Freundschaftsanfragen/Tag:"; $a->strings["(to prevent spam abuse)"] = "(um SPAM zu vermeiden)"; @@ -866,7 +866,7 @@ $a->strings["Title/Description:"] = "Titel/Beschreibung:"; $a->strings["Your Gender:"] = "Dein Geschlecht:"; $a->strings["Birthday (%s):"] = "Geburtstag (%s):"; $a->strings["Street Address:"] = "Adresse:"; -$a->strings["Locality/City:"] = "Wohnort/Stadt:"; +$a->strings["Locality/City:"] = "Wohnort:"; $a->strings["Postal/Zip Code:"] = "Postleitzahl:"; $a->strings["Country:"] = "Land:"; $a->strings["Region/State:"] = "Region/Bundesstaat:"; @@ -876,7 +876,7 @@ $a->strings["Examples: cathy123, Cathy Williams, cathy@example.com"] = "Beispiel $a->strings["Since [date]:"] = "Seit [Datum]:"; $a->strings["Sexual Preference:"] = "Sexuelle Vorlieben:"; $a->strings["Homepage URL:"] = "Adresse der Homepage:"; -$a->strings["Hometown:"] = "Wohnort:"; +$a->strings["Hometown:"] = "Heimatort:"; $a->strings["Political Views:"] = "Politische Ansichten:"; $a->strings["Religious Views:"] = "Religiöse Ansichten:"; $a->strings["Public Keywords:"] = "Öffentliche Schlüsselwörter:"; @@ -1442,7 +1442,6 @@ $a->strings["post"] = "Beitrag"; $a->strings["Item filed"] = "Beitrag abgelegt"; $a->strings["Sharing notification from Diaspora network"] = "Freigabe-Benachrichtigung von Diaspora"; $a->strings["Attachments:"] = "Anhänge:"; -$a->strings["[Relayed] Comment authored by %s from network %s"] = "[Weitergeleitet] Kommentar von %s aus dem %s Netzwerk"; $a->strings["view full size"] = "Volle Größe anzeigen"; $a->strings["Embedded content"] = "Eingebetteter Inhalt"; $a->strings["Embedding disabled"] = "Einbettungen deaktiviert"; @@ -1621,7 +1620,7 @@ $a->strings["%d comment"] = array( ); $a->strings["like"] = "mag ich"; $a->strings["dislike"] = "mag ich nicht"; -$a->strings["Share this"] = "Teile dieses"; +$a->strings["Share this"] = "Weitersagen"; $a->strings["share"] = "Teilen"; $a->strings["Bold"] = "Fett"; $a->strings["Italic"] = "Kursiv"; diff --git a/view/oembed_video.tpl b/view/oembed_video.tpl index 5824d8d4e..d3a9a9311 100644..100755 --- a/view/oembed_video.tpl +++ b/view/oembed_video.tpl @@ -1,4 +1,4 @@ <a href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); return false;' style='float:left; margin: 1em; position: relative;'> <img width='$tw' height='$th' src='$turl' > - <div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div> + <div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url($baseurl/images/icons/48/play.png) no-repeat center center;'></div> </a> diff --git a/view/search_item.tpl b/view/search_item.tpl index bfad1b7b7..22314d88a 100644 --- a/view/search_item.tpl +++ b/view/search_item.tpl @@ -1,3 +1,4 @@ +<a name="$item.id" /> <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-info" id="wall-item-info-$item.id"> diff --git a/view/theme/slackr/events_reminder.tpl b/view/theme/slackr/events_reminder.tpl index 99407fc3e..bd1a57d18 100644 --- a/view/theme/slackr/events_reminder.tpl +++ b/view/theme/slackr/events_reminder.tpl @@ -35,5 +35,5 @@ }); }); </script> -<div id="events-reminder"></div> +<div id="events-reminder" class="$classtoday"></div> <br> diff --git a/view/theme/slackr/style.css b/view/theme/slackr/style.css index 39da7bb6c..aa4d4b800 100644 --- a/view/theme/slackr/style.css +++ b/view/theme/slackr/style.css @@ -13,6 +13,10 @@ background: none; } +.widget { +/* box-shadow: 4px 4px 3px 0 #444444; */ +} + .comment-edit-text-empty, .comment-edit-text-full { border: none; border-left: 1px solid #EEE; @@ -50,14 +54,23 @@ nav #site-location { color: #000000; } -.fc { +#events-reminder { + border-radius: 3px; + -moz-border-radius: 3px; opacity: 0.3; filter:alpha(opacity=30); } -.fc:hover { +#events-reminder.birthday-today, #events-reminder.event-today { + opacity: 1.0; + filter:alpha(opacity=100); + box-shadow: 4px 4px 3px 0 #444444; +} + +#events-reminder:hover { opacity: 1.0; filter:alpha(opacity=100); + box-shadow: 4px 4px 3px 0 #444444; } .fc-event-skin { @@ -75,7 +88,7 @@ nav #site-location { box-shadow: 4px 4px 3px 0 #444444; } -.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .fc, .profile-jot-text, .group-selected, .nets-selected, .fileas-selected, #profile-jot-submit, .categories-selected { +.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img, .photo-album-photo, .photo-top-photo, .profile-jot-text, .group-selected, .nets-selected, .fileas-selected, #profile-jot-submit, .categories-selected { border-radius: 3px; -moz-border-radius: 3px; box-shadow: 4px 4px 3px 0 #444444; diff --git a/view/wall_item.tpl b/view/wall_item.tpl index 9d1dd7d70..a3a79598e 100644 --- a/view/wall_item.tpl +++ b/view/wall_item.tpl @@ -1,3 +1,4 @@ +<a name="$item.id" /> <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-info" id="wall-item-info-$item.id"> diff --git a/view/wallwall_item.tpl b/view/wallwall_item.tpl index bad5680c7..1044f7ae4 100644 --- a/view/wallwall_item.tpl +++ b/view/wallwall_item.tpl @@ -1,3 +1,4 @@ +<a name="$item.id" /> <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-info wallwall" id="wall-item-info-$item.id"> |