aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kostikov <max@kostikov.co>2021-01-20 13:15:40 +0100
committerMax Kostikov <max@kostikov.co>2021-01-20 13:15:40 +0100
commit9612a69a6448331ae3296503e97ef6ce204d9be1 (patch)
treeafae1ea1fa8c63db4c23836e0ebfe57b56b808ec
parent308e94ea799b7851287fbc7635480ac13bfe3c61 (diff)
parent08264f8d11d349bbda92233d984ad52c16c6b2d6 (diff)
downloadvolse-hubzilla-9612a69a6448331ae3296503e97ef6ce204d9be1.tar.gz
volse-hubzilla-9612a69a6448331ae3296503e97ef6ce204d9be1.tar.bz2
volse-hubzilla-9612a69a6448331ae3296503e97ef6ce204d9be1.zip
Merge branch 'dev' into 'dev'
Dev sync See merge request kostikov/core!1
-rw-r--r--CHANGELOG67
-rw-r--r--SBOM.md27
-rw-r--r--Zotlabs/Access/AccessList.php3
-rw-r--r--Zotlabs/Access/PermissionLimits.php15
-rw-r--r--Zotlabs/Access/PermissionRoles.php10
-rw-r--r--Zotlabs/Access/Permissions.php89
-rw-r--r--Zotlabs/Daemon/Addon.php7
-rw-r--r--Zotlabs/Daemon/Cache_embeds.php1
-rw-r--r--Zotlabs/Daemon/Checksites.php23
-rw-r--r--Zotlabs/Daemon/Cron.php125
-rw-r--r--Zotlabs/Daemon/Cron_daily.php40
-rw-r--r--Zotlabs/Daemon/Cron_weekly.php21
-rw-r--r--Zotlabs/Daemon/CurlAuth.php24
-rw-r--r--Zotlabs/Daemon/Deliver.php16
-rw-r--r--Zotlabs/Daemon/Deliver_hooks.php11
-rw-r--r--Zotlabs/Daemon/Directory.php40
-rw-r--r--Zotlabs/Daemon/Expire.php35
-rw-r--r--Zotlabs/Daemon/Externals.php53
-rw-r--r--Zotlabs/Daemon/Gprobe.php14
-rwxr-xr-xZotlabs/Daemon/Importdoc.php14
-rw-r--r--Zotlabs/Daemon/Importfile.php23
-rw-r--r--Zotlabs/Daemon/Master.php37
-rw-r--r--Zotlabs/Daemon/Notifier.php414
-rw-r--r--Zotlabs/Daemon/Onedirsync.php23
-rw-r--r--Zotlabs/Daemon/Onepoll.php109
-rw-r--r--Zotlabs/Daemon/Poller.php145
-rw-r--r--Zotlabs/Daemon/Queue.php23
-rw-r--r--Zotlabs/Daemon/Thumbnail.php46
-rw-r--r--Zotlabs/Lib/Apps.php2
-rw-r--r--Zotlabs/Lib/Enotify.php66
-rw-r--r--Zotlabs/Lib/JSalmon.php10
-rw-r--r--Zotlabs/Lib/Libzot.php10
-rw-r--r--Zotlabs/Lib/Libzotdir.php45
-rw-r--r--Zotlabs/Lib/NativeWiki.php16
-rw-r--r--Zotlabs/Lib/NativeWikiPage.php11
-rw-r--r--Zotlabs/Lib/Queue.php10
-rw-r--r--Zotlabs/Lib/Share.php2
-rw-r--r--Zotlabs/Lib/ThreadItem.php48
-rw-r--r--Zotlabs/Lib/Verify.php8
-rw-r--r--Zotlabs/Module/Acl.php171
-rw-r--r--Zotlabs/Module/Attach.php78
-rw-r--r--Zotlabs/Module/Cal.php12
-rw-r--r--Zotlabs/Module/Cdav.php4
-rw-r--r--Zotlabs/Module/Channel.php54
-rw-r--r--Zotlabs/Module/Channel_calendar.php417
-rw-r--r--Zotlabs/Module/Chanview.php2
-rw-r--r--Zotlabs/Module/Cloud.php2
-rw-r--r--Zotlabs/Module/Connections.php5
-rw-r--r--Zotlabs/Module/Connedit.php290
-rw-r--r--Zotlabs/Module/Dav.php4
-rw-r--r--Zotlabs/Module/Directory.php194
-rw-r--r--Zotlabs/Module/Dirsearch.php4
-rw-r--r--Zotlabs/Module/Display.php84
-rw-r--r--Zotlabs/Module/Embedphotos.php3
-rw-r--r--Zotlabs/Module/File_upload.php2
-rw-r--r--Zotlabs/Module/Getfile.php40
-rw-r--r--Zotlabs/Module/Item.php4
-rw-r--r--Zotlabs/Module/Like.php595
-rw-r--r--Zotlabs/Module/Network.php245
-rw-r--r--Zotlabs/Module/Notifications.php8
-rw-r--r--Zotlabs/Module/Owa.php2
-rw-r--r--Zotlabs/Module/Photo.php9
-rw-r--r--Zotlabs/Module/Photos.php609
-rw-r--r--Zotlabs/Module/Profile.php2
-rw-r--r--Zotlabs/Module/Profiles.php250
-rw-r--r--Zotlabs/Module/Pubsites.php27
-rw-r--r--Zotlabs/Module/Regver.php2
-rw-r--r--Zotlabs/Module/Sse_bs.php30
-rw-r--r--Zotlabs/Module/Zfinger.php8
-rw-r--r--Zotlabs/Storage/Browser.php47
-rw-r--r--Zotlabs/Web/HTTPSig.php2
-rw-r--r--Zotlabs/Widget/Dirsort.php4
-rw-r--r--Zotlabs/Zot6/Finger.php4
-rw-r--r--Zotlabs/Zot6/Zot6Handler.php12
-rw-r--r--app/mail.apd6
-rw-r--r--app/mail.pngbin4875 -> 0 bytes
-rwxr-xr-xboot.php20
-rw-r--r--composer.json5
-rw-r--r--include/attach.php10
-rw-r--r--include/bbcode.php4
-rw-r--r--include/bookmarks.php14
-rw-r--r--include/cdav.php4
-rw-r--r--include/channel.php2
-rw-r--r--include/connections.php8
-rw-r--r--include/conversation.php110
-rw-r--r--include/dir_fns.php31
-rw-r--r--include/help.php2
-rw-r--r--include/html2plain.php4
-rw-r--r--include/import.php4
-rwxr-xr-xinclude/items.php53
-rw-r--r--include/js_strings.php9
-rw-r--r--include/network.php12
-rw-r--r--include/photo/photo_driver.php4
-rw-r--r--include/security.php242
-rw-r--r--include/text.php2
-rw-r--r--library/ASNValue.class.php4
-rwxr-xr-xutil/connect4
-rw-r--r--util/hmessages.po1773
-rw-r--r--vendor/composer/autoload_classmap.php15
-rw-r--r--vendor/composer/autoload_psr4.php1
-rw-r--r--vendor/composer/autoload_static.php20
-rw-r--r--vendor/lukasreschke/id3parser/src/getID3/getID3.php (renamed from vendor/lukasreschke/id3parser/src/getID3/getid3.php)0
-rw-r--r--view/es-es/hmessages.po5288
-rw-r--r--view/es-es/hstrings.php299
-rw-r--r--view/js/main.js15
-rw-r--r--view/js/mod_cloud.js6
-rwxr-xr-xview/tpl/build_query.tpl6
-rw-r--r--view/tpl/cloud_actionspanel.tpl2
-rw-r--r--view/tpl/cloud_directory.tpl138
-rw-r--r--view/tpl/cloud_header.tpl2
-rwxr-xr-xview/tpl/js_strings.tpl9
111 files changed, 6599 insertions, 6438 deletions
diff --git a/CHANGELOG b/CHANGELOG
index f68251aa8..0c54ababf 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,70 @@
+Hubzilla 5.2.1 (2021-01-16)
+ - Fix attach_upgrade() to catch all broken entries in attach
+ - Fix collect_recipients() public policy filter for zot6
+ - Fix leaking of duplicate tasks in queueworker addon_common
+
+
+Hubzilla 5.2 (2021-01-13)
+ - Use libzotdir for directory
+ - Streamline usage of channel url for keyId
+ - Basic work on PHP8 compatibility
+ - Improve performance for forum post edit action
+ - Improve File App tiles view
+ - Update es strings
+ - Update ru strings
+ - Implement directory download via zip files in Files App
+ - Implement bulk file download via zip files in Files App
+ - Deprecate ! and !! forum tags - use direct messages to post to forums
+ - Do not show forums where we do not have permission to post in ACL selector
+ - Implement lockview for Files App
+ - Implement file and directory rename functionality Files App
+ - Implement file and directory copy functionality in Files App
+ - Implement file and directory move functionality in Files App
+ - Implement categories for files and directories in Files App
+ - Implement drag and drop move action for files and directories in Files App
+ - Implement bulk file actions for move, copy, categories and permissions
+ - Implement a files categories widget
+ - Implement a breadcrumb view for file paths
+ - Rewrite xchan_vcard template
+ - Update composer libs
+
+ Bugfixes
+ - Fix direct messages by forum channel turned into group item
+ - Fix ID3Parser composer autoload
+ - Fix issue where directory_fallback_servers were not accessible from static function
+ - Fix missing constant defenition for HUBLOC_OFFLINE
+ - Fix sync_directories() including known dead sites
+ - Fix undefined variable in poller preventing Onedirsync from running
+ - Fix w2w posts not editable/deletable from local server
+ - Fix issue where categories were not saved on forum wall posts
+ - Fix no channel_id provided for contact_remove() in reply_purge()
+ - Fix typo in notifier command
+ - Fix profile title/description allowed more than 191 characters
+
+
+ Addons
+ - Queueworker: cleanup whitespace
+ - Queueworker: add some tweaks to prevent deadlocks for postgresql
+ - Flashcards: compatibility for the changes in the Files App
+ - Openstreemap: fix hostname parsing from URL
+ - Openstreemap: fix content security policy
+ - Pubcrawl: fix peertube video display
+ - Pubcrawl: deliver updates to anyone owning the item
+
+
+Hubzilla 5.0.8 (2020-12-30)
+ - Fix single quotes not escaped in the notifications title (issue 1503)
+ - Return zot6 xchans for random_profile()
+ - Return zot6 entries in dirsearch
+ - Fix comment sync issue
+ - Fix duplicate entries in contact autocomplete
+ - Fix issue where direct message notifications where not displayed for wall items
+ - Do not revalidate cached photos
+ - Implement imagemagic resource consumption limiting
+ - Specify key in mod owa
+ - Fix issue where array was passed to get_key()
+
+
Hubzilla 5.0.7 (2020-12-21)
- Fix CardDAV addressbook ID
- Use Zot6 for CardDAV and CalDAV sync between clones
diff --git a/SBOM.md b/SBOM.md
index e54b4d4ac..a26faad58 100644
--- a/SBOM.md
+++ b/SBOM.md
@@ -3,27 +3,28 @@
|Name|Version|License|Source|
|----|-------|-------|------|
|blueimp/jquery-file-upload|10.31.0.0|MIT|https://github.com/vkhramtsov/jQuery-File-Upload.git|
+|brick/math|0.9.1.0|MIT|https://github.com/brick/math.git|
|bshaffer/oauth2-server-php|1.11.1.0|MIT|https://github.com/bshaffer/oauth2-server-php.git|
-|commerceguys/intl|1.0.5.0|MIT|https://github.com/commerceguys/intl.git|
+|commerceguys/intl|1.0.7.0|MIT|https://github.com/commerceguys/intl.git|
|desandro/imagesloaded|4.1.4.0|MIT|https://github.com/desandro/imagesloaded.git|
|ezyang/htmlpurifier|4.13.0.0|LGPL-2.1-or-later|https://github.com/ezyang/htmlpurifier.git|
|league/html-to-markdown|4.10.0.0|MIT|https://github.com/thephpleague/html-to-markdown.git|
|lukasreschke/id3parser|0.0.3.0|GPL|https://github.com/LukasReschke/ID3Parser.git|
|michelf/php-markdown|1.9.0.0|BSD-3-Clause|https://github.com/michelf/php-markdown.git|
-|paragonie/random_compat|9.99.99.0|MIT|https://github.com/paragonie/random_compat.git|
-|pear/text_languagedetect|1.0.0.0|BSD-2-Clause|https://github.com/pear/Text_LanguageDetect.git|
+|pear/text_languagedetect|1.0.1.0|BSD-2-Clause|https://github.com/pear/Text_LanguageDetect.git|
|psr/log|1.1.3.0|MIT|https://github.com/php-fig/log.git|
-|ramsey/uuid|3.9.3.0|MIT|https://github.com/ramsey/uuid.git|
-|sabre/dav|4.1.1.0|BSD-3-Clause|https://github.com/sabre-io/dav.git|
-|sabre/event|5.1.0.0|BSD-3-Clause|https://github.com/sabre-io/event.git|
-|sabre/http|5.1.0.0|BSD-3-Clause|https://github.com/sabre-io/http.git|
-|sabre/uri|2.2.0.0|BSD-3-Clause|https://github.com/sabre-io/uri.git|
-|sabre/vobject|4.3.1.0|BSD-3-Clause|https://github.com/sabre-io/vobject.git|
-|sabre/xml|2.2.1.0|BSD-3-Clause|https://github.com/sabre-io/xml.git|
-|simplepie/simplepie|1.5.5.0|BSD-3-Clause|https://github.com/simplepie/simplepie.git|
+|ramsey/collection|1.1.1.0|MIT|https://github.com/ramsey/collection.git|
+|ramsey/uuid|4.1.1.0|MIT|https://github.com/ramsey/uuid.git|
+|sabre/dav|4.1.3.0|BSD-3-Clause|https://github.com/sabre-io/dav.git|
+|sabre/event|5.1.2.0|BSD-3-Clause|https://github.com/sabre-io/event.git|
+|sabre/http|5.1.1.0|BSD-3-Clause|https://github.com/sabre-io/http.git|
+|sabre/uri|2.2.1.0|BSD-3-Clause|https://github.com/sabre-io/uri.git|
+|sabre/vobject|4.3.3.0|BSD-3-Clause|https://github.com/sabre-io/vobject.git|
+|sabre/xml|2.2.3.0|BSD-3-Clause|https://github.com/sabre-io/xml.git|
+|simplepie/simplepie|1.5.6.0|BSD-3-Clause|https://github.com/simplepie/simplepie.git|
|smarty/smarty|3.1.36.0|LGPL-3.0|https://github.com/smarty-php/smarty.git|
-|symfony/polyfill-ctype|1.13.1.0|MIT|https://github.com/symfony/polyfill-ctype.git|
-|twbs/bootstrap|4.5.2.0|MIT|https://github.com/twbs/bootstrap.git|
+|symfony/polyfill-ctype|1.20.0.0|MIT|https://github.com/symfony/polyfill-ctype.git|
+|twbs/bootstrap|4.5.3.0|MIT|https://github.com/twbs/bootstrap.git|
|fullcalendar/fullcalendar|4.4.2.0|MIT|https://github.com/fullcalendar/fullcalendar.git|
|miromannino/Justified-Gallery|3.8.1.0|MIT|https://github.com/miromannino/Justified-Gallery.git|
|fengyuanchen/cropperjs|1.5.7.0|MIT|https://github.com/fengyuanchen/cropperjs.git|
diff --git a/Zotlabs/Access/AccessList.php b/Zotlabs/Access/AccessList.php
index 7cf7b5587..af6c4b7a6 100644
--- a/Zotlabs/Access/AccessList.php
+++ b/Zotlabs/Access/AccessList.php
@@ -54,7 +54,7 @@ class AccessList {
* * \e string \b channel_deny_gid => string of denied gids
*/
function __construct($channel) {
- if($channel) {
+ if ($channel) {
$this->allow_cid = $channel['channel_allow_cid'];
$this->allow_gid = $channel['channel_allow_gid'];
$this->deny_cid = $channel['channel_deny_cid'];
@@ -99,7 +99,6 @@ class AccessList {
$this->allow_gid = $arr['allow_gid'];
$this->deny_cid = $arr['deny_cid'];
$this->deny_gid = $arr['deny_gid'];
-
$this->explicit = $explicit;
}
diff --git a/Zotlabs/Access/PermissionLimits.php b/Zotlabs/Access/PermissionLimits.php
index c11dc95e6..fb5fe6133 100644
--- a/Zotlabs/Access/PermissionLimits.php
+++ b/Zotlabs/Access/PermissionLimits.php
@@ -2,6 +2,7 @@
namespace Zotlabs\Access;
+use App;
use Zotlabs\Lib\PConfig;
/**
@@ -39,10 +40,10 @@ class PermissionLimits {
*/
static public function Std_Limits() {
$limits = [];
- $perms = Permissions::Perms();
+ $perms = Permissions::Perms();
- foreach($perms as $k => $v) {
- if(strstr($k, 'view'))
+ foreach ($perms as $k => $v) {
+ if (strstr($k, 'view'))
$limits[$k] = PERMS_PUBLIC;
else
$limits[$k] = PERMS_SPECIFIC;
@@ -77,14 +78,14 @@ class PermissionLimits {
* * \b array with all permission limits, if $perm is not set
*/
static public function Get($channel_id, $perm = '') {
- if($perm) {
+ if ($perm) {
return intval(PConfig::Get($channel_id, 'perm_limits', $perm));
}
PConfig::Load($channel_id);
- if(array_key_exists($channel_id, \App::$config)
- && array_key_exists('perm_limits', \App::$config[$channel_id]))
- return \App::$config[$channel_id]['perm_limits'];
+ if (array_key_exists($channel_id, App::$config)
+ && array_key_exists('perm_limits', App::$config[$channel_id]))
+ return App::$config[$channel_id]['perm_limits'];
return false;
}
diff --git a/Zotlabs/Access/PermissionRoles.php b/Zotlabs/Access/PermissionRoles.php
index 82df0c34b..2bcce4eb4 100644
--- a/Zotlabs/Access/PermissionRoles.php
+++ b/Zotlabs/Access/PermissionRoles.php
@@ -218,13 +218,13 @@ class PermissionRoles {
// set permissionlimits for this permission here, for example:
// if($perm === 'mynewperm')
- // \Zotlabs\Access\PermissionLimits::Set($uid,$perm,1);
+ // PermissionLimits::Set($uid,$perm,1);
if($perm === 'view_wiki')
- \Zotlabs\Access\PermissionLimits::Set($uid, $perm, PERMS_PUBLIC);
+ PermissionLimits::Set($uid, $perm, PERMS_PUBLIC);
if($perm === 'write_wiki')
- \Zotlabs\Access\PermissionLimits::Set($uid, $perm, PERMS_SPECIFIC);
+ PermissionLimits::Set($uid, $perm, PERMS_SPECIFIC);
// set autoperms here if applicable
@@ -262,11 +262,11 @@ class PermissionRoles {
case 'view_wiki':
set_abconfig($uid,$ab['abook_xchan'],'my_perms',$perm,
intval(get_abconfig($uid,$ab['abook_xchan'],'my_perms','view_pages')));
-
+ break;
case 'write_wiki':
set_abconfig($uid,$ab['abook_xchan'],'my_perms',$perm,
intval(get_abconfig($uid,$ab['abook_xchan'],'my_perms','write_pages')));
-
+ break;
default:
break;
}
diff --git a/Zotlabs/Access/Permissions.php b/Zotlabs/Access/Permissions.php
index 35016ed57..df5472cc3 100644
--- a/Zotlabs/Access/Permissions.php
+++ b/Zotlabs/Access/Permissions.php
@@ -75,7 +75,7 @@ class Permissions {
$x = [
'permissions' => $perms,
- 'filter' => $filter
+ 'filter' => $filter
];
/**
* @hooks permissions_list
@@ -84,7 +84,7 @@ class Permissions {
*/
call_hooks('permissions_list', $x);
- return($x['permissions']);
+ return ($x['permissions']);
}
/**
@@ -96,10 +96,10 @@ class Permissions {
*/
static public function BlockedAnonPerms() {
- $res = [];
+ $res = [];
$perms = PermissionLimits::Std_limits();
- foreach($perms as $perm => $limit) {
- if($limit != PERMS_PUBLIC) {
+ foreach ($perms as $perm => $limit) {
+ if ($limit != PERMS_PUBLIC) {
$res[] = $perm;
}
}
@@ -111,7 +111,7 @@ class Permissions {
*/
call_hooks('write_perms', $x);
- return($x['permissions']);
+ return ($x['permissions']);
}
/**
@@ -120,20 +120,20 @@ class Permissions {
* Converts [ 0 => 'view_stream', ... ]
* to [ 'view_stream' => 1 ] for any permissions in $arr;
* Undeclared permissions which exist in Perms() are added and set to 0.
- *
+ *
* @param array $arr
* @return array
*/
static public function FilledPerms($arr) {
- if(is_null($arr)) {
+ if (is_null($arr)) {
btlogger('FilledPerms: null');
$arr = [];
}
$everything = self::Perms();
- $ret = [];
- foreach($everything as $k => $v) {
- if(in_array($k, $arr))
+ $ret = [];
+ foreach ($everything as $k => $v) {
+ if (in_array($k, $arr))
$ret[$k] = 1;
else
$ret[$k] = 0;
@@ -155,9 +155,9 @@ class Permissions {
*/
static public function OPerms($arr) {
$ret = [];
- if($arr) {
- foreach($arr as $k => $v) {
- $ret[] = [ 'name' => $k, 'value' => $v ];
+ if ($arr) {
+ foreach ($arr as $k => $v) {
+ $ret[] = ['name' => $k, 'value' => $v];
}
}
return $ret;
@@ -170,15 +170,16 @@ class Permissions {
* @return boolean|array
*/
static public function FilledAutoperms($channel_id) {
- if(! intval(get_pconfig($channel_id,'system','autoperms')))
+ if (!intval(get_pconfig($channel_id, 'system', 'autoperms')))
return false;
$arr = [];
+
$r = q("select * from pconfig where uid = %d and cat = 'autoperms'",
intval($channel_id)
);
- if($r) {
- foreach($r as $rr) {
+ if ($r) {
+ foreach ($r as $rr) {
$arr[$rr['k']] = intval($rr['v']);
}
}
@@ -193,11 +194,11 @@ class Permissions {
* @return boolean true if all perms from $p1 exist also in $p2
*/
static public function PermsCompare($p1, $p2) {
- foreach($p1 as $k => $v) {
- if(! array_key_exists($k, $p2))
+ foreach ($p1 as $k => $v) {
+ if (!array_key_exists($k, $p2))
return false;
- if($p1[$k] != $p2[$k])
+ if ($p1[$k] != $p2[$k])
return false;
}
@@ -214,18 +215,18 @@ class Permissions {
*/
static public function connect_perms($channel_id) {
- $my_perms = [];
- $permcat = null;
+ $my_perms = [];
+ $permcat = null;
$automatic = 0;
// If a default permcat exists, use that
- $pc = ((feature_enabled($channel_id,'permcats')) ? get_pconfig($channel_id,'system','default_permcat') : 'default');
- if(! in_array($pc, [ '','default' ])) {
- $pcp = new Zlib\Permcat($channel_id);
+ $pc = ((feature_enabled($channel_id, 'permcats')) ? get_pconfig($channel_id, 'system', 'default_permcat') : 'default');
+ if (!in_array($pc, ['', 'default'])) {
+ $pcp = new Zlib\Permcat($channel_id);
$permcat = $pcp->fetch($pc);
- if($permcat && $permcat['perms']) {
- foreach($permcat['perms'] as $p) {
+ if ($permcat && $permcat['perms']) {
+ foreach ($permcat['perms'] as $p) {
$my_perms[$p['name']] = $p['value'];
}
}
@@ -235,15 +236,15 @@ class Permissions {
// and if there was no permcat or a default permcat, set the perms
// from the role
- $role = get_pconfig($channel_id,'system','permissions_role');
- if($role) {
+ $role = get_pconfig($channel_id, 'system', 'permissions_role');
+ if ($role) {
$xx = PermissionRoles::role_perms($role);
- if($xx['perms_auto'])
+ if ($xx['perms_auto'])
$automatic = 1;
- if((! $my_perms) && ($xx['perms_connect'])) {
+ if ((!$my_perms) && ($xx['perms_connect'])) {
$default_perms = $xx['perms_connect'];
- $my_perms = Permissions::FilledPerms($default_perms);
+ $my_perms = Permissions::FilledPerms($default_perms);
}
}
@@ -251,11 +252,11 @@ class Permissions {
// it is likely a custom permissions role. First see if there are any
// automatic permissions.
- if(! $my_perms) {
+ if (!$my_perms) {
$m = Permissions::FilledAutoperms($channel_id);
- if($m) {
+ if ($m) {
$automatic = 1;
- $my_perms = $m;
+ $my_perms = $m;
}
}
@@ -263,35 +264,35 @@ class Permissions {
// custom perms but they are not automatic. They will be stored in abconfig with
// the channel's channel_hash (the 'self' connection).
- if(! $my_perms) {
+ if (!$my_perms) {
$r = q("select channel_hash from channel where channel_id = %d",
intval($channel_id)
);
- if($r) {
+ if ($r) {
$x = q("select * from abconfig where chan = %d and xchan = '%s' and cat = 'my_perms'",
intval($channel_id),
dbesc($r[0]['channel_hash'])
);
- if($x) {
- foreach($x as $xv) {
+ if ($x) {
+ foreach ($x as $xv) {
$my_perms[$xv['k']] = intval($xv['v']);
}
}
}
}
- return ( [ 'perms' => $my_perms, 'automatic' => $automatic ] );
+ return (['perms' => $my_perms, 'automatic' => $automatic]);
}
static public function serialise($p) {
$n = [];
- if($p) {
- foreach($p as $k => $v) {
- if(intval($v)) {
+ if ($p) {
+ foreach ($p as $k => $v) {
+ if (intval($v)) {
$n[] = $k;
}
}
}
- return implode(',',$n);
+ return implode(',', $n);
}
}
diff --git a/Zotlabs/Daemon/Addon.php b/Zotlabs/Daemon/Addon.php
index c2889e596..c6778750d 100644
--- a/Zotlabs/Daemon/Addon.php
+++ b/Zotlabs/Daemon/Addon.php
@@ -2,13 +2,12 @@
namespace Zotlabs\Daemon;
-require_once('include/zot.php');
-
class Addon {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
- call_hooks('daemon_addon',$argv);
+ call_hooks('daemon_addon', $argv);
}
+
}
diff --git a/Zotlabs/Daemon/Cache_embeds.php b/Zotlabs/Daemon/Cache_embeds.php
index 08088abd6..9e5b8d2bb 100644
--- a/Zotlabs/Daemon/Cache_embeds.php
+++ b/Zotlabs/Daemon/Cache_embeds.php
@@ -2,7 +2,6 @@
namespace Zotlabs\Daemon;
-
class Cache_embeds {
static public function run($argc,$argv) {
diff --git a/Zotlabs/Daemon/Checksites.php b/Zotlabs/Daemon/Checksites.php
index 3bcfdd7cf..7227e96e4 100644
--- a/Zotlabs/Daemon/Checksites.php
+++ b/Zotlabs/Daemon/Checksites.php
@@ -6,34 +6,35 @@ require_once('include/hubloc.php');
class Checksites {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
logger('checksites: start');
-
- if(($argc > 1) && ($argv[1]))
+
+ if (($argc > 1) && ($argv[1]))
$site_id = $argv[1];
- if($site_id)
+ if ($site_id)
$sql_options = " and site_url = '" . dbesc($argv[1]) . "' ";
- $days = intval(get_config('system','sitecheckdays'));
- if($days < 1)
+ $days = intval(get_config('system', 'sitecheckdays'));
+ if ($days < 1)
$days = 30;
$r = q("select * from site where site_dead = 0 and site_update < %s - INTERVAL %s and site_type = %d $sql_options ",
- db_utcnow(), db_quoteinterval($days . ' DAY'),
+ db_utcnow(),
+ db_quoteinterval($days . ' DAY'),
intval(SITE_TYPE_ZOT)
);
- if(! $r)
+ if (!$r)
return;
- foreach($r as $rr) {
- if(! strcasecmp($rr['site_url'],z_root()))
+ foreach ($r as $rr) {
+ if (!strcasecmp($rr['site_url'], z_root()))
continue;
$x = ping_site($rr['site_url']);
- if($x['success']) {
+ if ($x['success']) {
logger('checksites: ' . $rr['site_url']);
q("update site set site_update = '%s' where site_url = '%s' ",
dbesc(datetime_convert()),
diff --git a/Zotlabs/Daemon/Cron.php b/Zotlabs/Daemon/Cron.php
index 703d6ce08..e8fa3244f 100644
--- a/Zotlabs/Daemon/Cron.php
+++ b/Zotlabs/Daemon/Cron.php
@@ -6,14 +6,14 @@ use Zotlabs\Lib\Libsync;
class Cron {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
- $maxsysload = intval(get_config('system','maxloadavg'));
- if($maxsysload < 1)
+ $maxsysload = intval(get_config('system', 'maxloadavg'));
+ if ($maxsysload < 1)
$maxsysload = 50;
- if(function_exists('sys_getloadavg')) {
+ if (function_exists('sys_getloadavg')) {
$load = sys_getloadavg();
- if(intval($load[0]) > $maxsysload) {
+ if (intval($load[0]) > $maxsysload) {
logger('system: load ' . $load . ' too high. Cron deferred to next scheduled run.');
return;
}
@@ -21,17 +21,18 @@ class Cron {
// Check for a lockfile. If it exists, but is over an hour old, it's stale. Ignore it.
$lockfile = 'store/[data]/cron';
- if((file_exists($lockfile)) && (filemtime($lockfile) > (time() - 3600))
- && (! get_config('system','override_cron_lockfile'))) {
+ if ((file_exists($lockfile)) && (filemtime($lockfile) > (time() - 3600))
+ && (!get_config('system', 'override_cron_lockfile'))) {
logger("cron: Already running");
return;
}
-
+
// Create a lockfile. Needs two vars, but $x doesn't need to contain anything.
+ $x = '';
file_put_contents($lockfile, $x);
logger('cron: start');
-
+
// run queue delivery process in the background
Master::Summon(array('Queue'));
@@ -46,7 +47,7 @@ class Cron {
db_utcnow(),
db_quoteinterval('3 MINUTE')
);
-
+
// expire any expired mail
q("delete from mail where expires > '%s' and expires < %s ",
@@ -54,19 +55,23 @@ class Cron {
db_utcnow()
);
+ $interval = get_config('system', 'delivery_interval', 3);
+
// expire any expired items
$r = q("select id,item_wall from item where expires > '2001-01-01 00:00:00' and expires < %s
and item_deleted = 0 ",
db_utcnow()
);
- if($r) {
+ if ($r) {
require_once('include/items.php');
- foreach($r as $rr) {
- drop_item($rr['id'],false,(($rr['item_wall']) ? DROPITEM_PHASE1 : DROPITEM_NORMAL));
- if($rr['item_wall']) {
+ foreach ($r as $rr) {
+ drop_item($rr['id'], false, (($rr['item_wall']) ? DROPITEM_PHASE1 : DROPITEM_NORMAL));
+ if ($rr['item_wall']) {
// The notifier isn't normally invoked unless item_drop is interactive.
- Master::Summon( [ 'Notifier', 'drop', $rr['id'] ] );
+ Master::Summon(['Notifier', 'drop', $rr['id']]);
+ if ($interval)
+ @time_sleep_until(microtime(true) + (float)$interval);
}
}
}
@@ -78,9 +83,9 @@ class Cron {
dbesc(NULL_DATE),
db_utcnow()
);
- if($r) {
+ if ($r) {
require_once('include/security.php');
- foreach($r as $rr) {
+ foreach ($r as $rr) {
atoken_delete($rr['atoken_id']);
}
}
@@ -90,33 +95,33 @@ class Cron {
// or dead entries.
$r = q("select channel_id from channel where channel_dirdate < %s - INTERVAL %s and channel_removed = 0",
- db_utcnow(),
+ db_utcnow(),
db_quoteinterval('30 DAY')
);
- if($r) {
- foreach($r as $rr) {
- Master::Summon(array('Directory',$rr['channel_id'],'force'));
- if($interval)
- @time_sleep_until(microtime(true) + (float) $interval);
+ if ($r) {
+ foreach ($r as $rr) {
+ Master::Summon(array('Directory', $rr['channel_id'], 'force'));
+ if ($interval)
+ @time_sleep_until(microtime(true) + (float)$interval);
}
}
-
+
// Clean expired photos from cache
-
+
$r = q("SELECT DISTINCT xchan, content FROM photo WHERE photo_usage = %d AND expires < %s - INTERVAL %s",
intval(PHOTO_CACHE),
db_utcnow(),
- db_quoteinterval(get_config('system','active_expire_days', '30') . ' DAY')
+ db_quoteinterval(get_config('system', 'active_expire_days', '30') . ' DAY')
);
- if($r) {
+ if ($r) {
q("DELETE FROM photo WHERE photo_usage = %d AND expires < %s - INTERVAL %s",
intval(PHOTO_CACHE),
db_utcnow(),
- db_quoteinterval(get_config('system','active_expire_days', '30') . ' DAY')
+ db_quoteinterval(get_config('system', 'active_expire_days', '30') . ' DAY')
);
- foreach($r as $rr) {
+ foreach ($r as $rr) {
$file = dbunescbin($rr['content']);
- if(is_file($file)) {
+ if (is_file($file)) {
@unlink($file);
@rmdir(dirname($file));
logger('info: deleted cached photo file ' . $file, LOGGER_DEBUG);
@@ -130,27 +135,29 @@ class Cron {
$r = q("select id from item where item_delayed = 1 and created <= %s and created > '%s' ",
db_utcnow(),
- dbesc(datetime_convert('UTC','UTC','now - 2 days'))
+ dbesc(datetime_convert('UTC', 'UTC', 'now - 2 days'))
);
- if($r) {
- foreach($r as $rr) {
+ if ($r) {
+ foreach ($r as $rr) {
$x = q("update item set item_delayed = 0 where id = %d",
intval($rr['id'])
);
- if($x) {
+ if ($x) {
$z = q("select * from item where id = %d",
- intval($message_id)
+ intval($rr['id'])
);
- if($z) {
+ if ($z) {
xchan_query($z);
$sync_item = fetch_post_tags($z);
Libsync::build_sync_packet($sync_item[0]['uid'],
- [
- 'item' => [ encode_item($sync_item[0],true) ]
+ [
+ 'item' => [encode_item($sync_item[0], true)]
]
);
}
- Master::Summon(array('Notifier','wall-new',$rr['id']));
+ Master::Summon(array('Notifier', 'wall-new', $rr['id']));
+ if ($interval)
+ @time_sleep_until(microtime(true) + (float)$interval);
}
}
}
@@ -163,27 +170,27 @@ class Cron {
require_once('include/attach.php');
attach_upgrade();
- $abandon_days = intval(get_config('system','account_abandon_days'));
- if($abandon_days < 1)
+ $abandon_days = intval(get_config('system', 'account_abandon_days'));
+ if ($abandon_days < 1)
$abandon_days = 0;
-
+
// once daily run birthday_updates and then expire in background
// FIXME: add birthday updates, both locally and for xprof for use
// by directory servers
- $d1 = intval(get_config('system','last_expire_day'));
- $d2 = intval(datetime_convert('UTC','UTC','now','d'));
+ $d1 = intval(get_config('system', 'last_expire_day'));
+ $d2 = intval(datetime_convert('UTC', 'UTC', 'now', 'd'));
// Allow somebody to staggger daily activities if they have more than one site on their server,
// or if it happens at an inconvenient (busy) hour.
- $h1 = intval(get_config('system','cron_hour'));
- $h2 = intval(datetime_convert('UTC','UTC','now','G'));
+ $h1 = intval(get_config('system', 'cron_hour'));
+ $h2 = intval(datetime_convert('UTC', 'UTC', 'now', 'G'));
- if(($d2 != $d1) && ($h1 == $h2)) {
+ if (($d2 != $d1) && ($h1 == $h2)) {
Master::Summon(array('Cron_daily'));
}
@@ -192,14 +199,14 @@ class Cron {
$r = q("select xchan_photo_l, xchan_hash from xchan where xchan_photo_l != '' and xchan_photo_m = ''
and xchan_photo_date < %s - INTERVAL %s",
- db_utcnow(),
+ db_utcnow(),
db_quoteinterval('1 DAY')
);
- if($r) {
+ if ($r) {
require_once('include/photo/photo_driver.php');
- foreach($r as $rr) {
+ foreach ($r as $rr) {
$photos = import_xchan_photo($rr['xchan_photo_l'], $rr['xchan_hash'], false, true);
- $x = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s'
+ $x = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s'
where xchan_hash = '%s'",
dbesc($photos[0]),
dbesc($photos[1]),
@@ -213,18 +220,18 @@ class Cron {
// pull in some public posts
- $disable_discover_tab = get_config('system','disable_discover_tab') || get_config('system','disable_discover_tab') === false;
- if(! $disable_discover_tab)
+ $disable_discover_tab = get_config('system', 'disable_discover_tab') || get_config('system', 'disable_discover_tab') === false;
+ if (!$disable_discover_tab)
Master::Summon(array('Externals'));
$generation = 0;
- $restart = false;
+ $restart = false;
- if(($argc > 1) && ($argv[1] == 'restart')) {
- $restart = true;
+ if (($argc > 1) && ($argv[1] == 'restart')) {
+ $restart = true;
$generation = intval($argv[2]);
- if(! $generation)
+ if (!$generation)
return;
}
@@ -234,10 +241,10 @@ class Cron {
// TODO check to see if there are any cronhooks before wasting a process
- if(! $restart)
+ if (!$restart)
Master::Summon(array('Cronhooks'));
- set_config('system','lastcron',datetime_convert());
+ set_config('system', 'lastcron', datetime_convert());
//All done - clear the lockfile
@unlink($lockfile);
diff --git a/Zotlabs/Daemon/Cron_daily.php b/Zotlabs/Daemon/Cron_daily.php
index 07533cc6e..1983c68e6 100644
--- a/Zotlabs/Daemon/Cron_daily.php
+++ b/Zotlabs/Daemon/Cron_daily.php
@@ -2,9 +2,11 @@
namespace Zotlabs\Daemon;
+use Zotlabs\Lib\Libzotdir;
+
class Cron_daily {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
logger('cron_daily: start');
@@ -13,15 +15,12 @@ class Cron_daily {
*
*/
-
- require_once('include/dir_fns.php');
- check_upstream_directory();
-
+ Libzotdir::check_upstream_directory();
// Fire off the Cron_weekly process if it's the correct day.
-
- $d3 = intval(datetime_convert('UTC','UTC','now','N'));
- if($d3 == 7) {
+
+ $d3 = intval(datetime_convert('UTC', 'UTC', 'now', 'N'));
+ if ($d3 == 7) {
Master::Summon(array('Cron_weekly'));
}
@@ -52,8 +51,8 @@ class Cron_daily {
// Clean up emdedded content cache
q("DELETE FROM cache WHERE updated < %s - INTERVAL %s",
- db_utcnow(),
- db_quoteinterval(get_config('system','active_expire_days', '30') . ' DAY')
+ db_utcnow(),
+ db_quoteinterval(get_config('system', 'active_expire_days', '30') . ' DAY')
);
//update statistics in config
@@ -67,8 +66,8 @@ class Cron_daily {
// expire old delivery reports
- $keep_reports = intval(get_config('system','expire_delivery_reports'));
- if($keep_reports === 0)
+ $keep_reports = intval(get_config('system', 'expire_delivery_reports'));
+ if ($keep_reports === 0)
$keep_reports = 10;
q("delete from dreport where dreport_time < %s - INTERVAL %s",
@@ -80,18 +79,16 @@ class Cron_daily {
downgrade_accounts();
// If this is a directory server, request a sync with an upstream
- // directory at least once a day, up to once every poll interval.
+ // directory at least once a day, up to once every poll interval.
// Pull remote changes and push local changes.
- // potential issue: how do we keep from creating an endless update loop?
+ // potential issue: how do we keep from creating an endless update loop?
- $dirmode = get_config('system','directory_mode');
+ $dirmode = get_config('system', 'directory_mode');
- if($dirmode == DIRECTORY_MODE_SECONDARY || $dirmode == DIRECTORY_MODE_PRIMARY) {
- require_once('include/dir_fns.php');
- sync_directories($dirmode);
+ if ($dirmode == DIRECTORY_MODE_SECONDARY || $dirmode == DIRECTORY_MODE_PRIMARY) {
+ Libzotdir::sync_directories($dirmode);
}
-
Master::Summon(array('Expire'));
Master::Summon(array('Cli_suggest'));
@@ -99,9 +96,10 @@ class Cron_daily {
z6_discover();
- call_hooks('cron_daily',datetime_convert());
+ $date = datetime_convert();
+ call_hooks('cron_daily', $date);
- set_config('system','last_expire_day',intval(datetime_convert('UTC','UTC','now','d')));
+ set_config('system', 'last_expire_day', intval(datetime_convert('UTC', 'UTC', 'now', 'd')));
/**
* End Cron Daily
diff --git a/Zotlabs/Daemon/Cron_weekly.php b/Zotlabs/Daemon/Cron_weekly.php
index d44400767..407aa40ef 100644
--- a/Zotlabs/Daemon/Cron_weekly.php
+++ b/Zotlabs/Daemon/Cron_weekly.php
@@ -4,21 +4,22 @@ namespace Zotlabs\Daemon;
class Cron_weekly {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
/**
* Cron Weekly
- *
+ *
* Actions in the following block are executed once per day only on Sunday (once per week).
*
*/
- call_hooks('cron_weekly',datetime_convert());
+ $date = datetime_convert();
+ call_hooks('cron_weekly', $date);
z_check_cert();
prune_hub_reinstalls();
-
+
mark_orphan_hubsxchans();
// Find channels that were removed in the last three weeks, but
@@ -31,8 +32,8 @@ class Cron_weekly {
db_utcnow(), db_quoteinterval('21 DAY'),
db_utcnow(), db_quoteinterval('10 DAY')
);
- if($r) {
- foreach($r as $rv) {
+ if ($r) {
+ foreach ($r as $rv) {
channel_remove_final($rv['channel_id']);
}
}
@@ -43,14 +44,14 @@ class Cron_weekly {
db_utcnow(), db_quoteinterval('14 DAY')
);
- $dirmode = intval(get_config('system','directory_mode'));
- if($dirmode === DIRECTORY_MODE_SECONDARY || $dirmode === DIRECTORY_MODE_PRIMARY) {
- logger('regdir: ' . print_r(z_fetch_url(get_directory_primary() . '/regdir?f=&url=' . urlencode(z_root()) . '&realm=' . urlencode(get_directory_realm())),true));
+ $dirmode = intval(get_config('system', 'directory_mode'));
+ if ($dirmode === DIRECTORY_MODE_SECONDARY || $dirmode === DIRECTORY_MODE_PRIMARY) {
+ logger('regdir: ' . print_r(z_fetch_url(get_directory_primary() . '/regdir?f=&url=' . urlencode(z_root()) . '&realm=' . urlencode(get_directory_realm())), true));
}
// Check for dead sites
Master::Summon(array('Checksites'));
-
+
// update searchable doc indexes
Master::Summon(array('Importdoc'));
diff --git a/Zotlabs/Daemon/CurlAuth.php b/Zotlabs/Daemon/CurlAuth.php
index de41382e3..2396da9aa 100644
--- a/Zotlabs/Daemon/CurlAuth.php
+++ b/Zotlabs/Daemon/CurlAuth.php
@@ -2,6 +2,8 @@
namespace Zotlabs\Daemon;
+use App;
+
// generate a curl compatible cookie file with an authenticated session for the given channel_id.
// If this file is then used with curl and the destination url is sent through zid() or manually
// manipulated to add a zid, it should allow curl to provide zot magic-auth across domains.
@@ -10,15 +12,15 @@ namespace Zotlabs\Daemon;
class CurlAuth {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
- if($argc != 2)
+ if ($argc != 2)
return;
- \App::$session->start();
+ App::$session->start();
$_SESSION['authenticated'] = 1;
- $_SESSION['uid'] = $argv[1];
+ $_SESSION['uid'] = $argv[1];
$x = session_id();
@@ -29,14 +31,14 @@ class CurlAuth {
$output = '';
- if($e) {
+ if ($e) {
$lines = file($f);
- if($lines) {
- foreach($lines as $line) {
- if(strlen($line) > 0 && $line[0] != '#' && substr_count($line, "\t") == 6) {
+ if ($lines) {
+ foreach ($lines as $line) {
+ if (strlen($line) > 0 && $line[0] != '#' && substr_count($line, "\t") == 6) {
$tokens = explode("\t", $line);
$tokens = array_map('trim', $tokens);
- if($tokens[4] > time()) {
+ if ($tokens[4] > time()) {
$output .= $line . "\n";
}
}
@@ -46,9 +48,9 @@ class CurlAuth {
}
}
$t = time() + (24 * 3600);
- file_put_contents($f, $output . 'HttpOnly_' . \App::get_hostname() . "\tFALSE\t/\tTRUE\t$t\tPHPSESSID\t" . $x, (($e) ? FILE_APPEND : 0));
+ file_put_contents($f, $output . 'HttpOnly_' . App::get_hostname() . "\tFALSE\t/\tTRUE\t$t\tPHPSESSID\t" . $x, (($e) ? FILE_APPEND : 0));
- file_put_contents($c,$x);
+ file_put_contents($c, $x);
return;
}
diff --git a/Zotlabs/Daemon/Deliver.php b/Zotlabs/Daemon/Deliver.php
index c853af6a8..f8149ee69 100644
--- a/Zotlabs/Daemon/Deliver.php
+++ b/Zotlabs/Daemon/Deliver.php
@@ -5,25 +5,25 @@ namespace Zotlabs\Daemon;
require_once('include/queue_fn.php');
class Deliver {
-
- static public function run($argc,$argv) {
- if($argc < 2)
+ static public function run($argc, $argv) {
+
+ if ($argc < 2)
return;
- logger('deliver: invoked: ' . print_r($argv,true), LOGGER_DATA);
+ logger('deliver: invoked: ' . print_r($argv, true), LOGGER_DATA);
- for($x = 1; $x < $argc; $x ++) {
+ for ($x = 1; $x < $argc; $x++) {
- if(! $argv[$x])
+ if (!$argv[$x])
continue;
$r = q("select * from outq where outq_hash = '%s'",
dbesc($argv[$x])
);
- if($r) {
- queue_deliver($r[0],true);
+ if ($r) {
+ queue_deliver($r[0], true);
}
}
diff --git a/Zotlabs/Daemon/Deliver_hooks.php b/Zotlabs/Daemon/Deliver_hooks.php
index e8b5acef0..4d3ce4e1d 100644
--- a/Zotlabs/Daemon/Deliver_hooks.php
+++ b/Zotlabs/Daemon/Deliver_hooks.php
@@ -2,21 +2,18 @@
namespace Zotlabs\Daemon;
-require_once('include/zot.php');
-
class Deliver_hooks {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
- if($argc < 2)
+ if ($argc < 2)
return;
-
$r = q("select * from item where id = '%d'",
intval($argv[1])
);
- if($r)
- call_hooks('notifier_normal',$r[0]);
+ if ($r)
+ call_hooks('notifier_normal', $r[0]);
}
}
diff --git a/Zotlabs/Daemon/Directory.php b/Zotlabs/Daemon/Directory.php
index ab58432de..1f307b273 100644
--- a/Zotlabs/Daemon/Directory.php
+++ b/Zotlabs/Daemon/Directory.php
@@ -8,40 +8,40 @@ use Zotlabs\Lib\Queue;
class Directory {
- static public function run($argc,$argv){
+ static public function run($argc, $argv) {
- if($argc < 2)
+ if ($argc < 2)
return;
- $force = false;
+ $force = false;
$pushall = true;
- if($argc > 2) {
- if($argv[2] === 'force')
+ if ($argc > 2) {
+ if ($argv[2] === 'force')
$force = true;
- if($argv[2] === 'nopush')
+ if ($argv[2] === 'nopush')
$pushall = false;
- }
+ }
logger('directory update', LOGGER_DEBUG);
- $dirmode = get_config('system','directory_mode');
- if($dirmode === false)
+ $dirmode = get_config('system', 'directory_mode');
+ if ($dirmode === false)
$dirmode = DIRECTORY_MODE_NORMAL;
$x = q("select * from channel where channel_id = %d limit 1",
intval($argv[1])
);
- if(! $x)
+ if (!$x)
return;
$channel = $x[0];
- if($dirmode != DIRECTORY_MODE_NORMAL) {
+ if ($dirmode != DIRECTORY_MODE_NORMAL) {
// this is an in-memory update and we don't need to send a network packet.
- Libzotdir::local_dir_update($argv[1],$force);
+ Libzotdir::local_dir_update($argv[1], $force);
q("update channel set channel_dirdate = '%s' where channel_id = %d",
dbesc(datetime_convert()),
@@ -49,8 +49,8 @@ class Directory {
);
// Now update all the connections
- if($pushall)
- Master::Summon(array('Notifier','refresh_all',$channel['channel_id']));
+ if ($pushall)
+ Master::Summon(array('Notifier', 'refresh_all', $channel['channel_id']));
return;
}
@@ -63,14 +63,12 @@ class Directory {
// ensure the upstream directory is updated
-
- $packet = Libzot::build_packet($channel,(($force) ? 'force_refresh' : 'refresh'));
- $z = Libzot::zot($url,$packet,$channel);
-
+ $packet = Libzot::build_packet($channel, (($force) ? 'force_refresh' : 'refresh'));
+ $z = Libzot::zot($url, $packet, $channel);
// re-queue if unsuccessful
- if(! $z['success']) {
+ if (!$z['success']) {
/** @FIXME we aren't updating channel_dirdate if we have to queue
* the directory packet. That means we'll try again on the next poll run.
@@ -95,8 +93,8 @@ class Directory {
}
// Now update all the connections
- if($pushall)
- Master::Summon(array('Notifier','refresh_all',$channel['channel_id']));
+ if ($pushall)
+ Master::Summon(array('Notifier', 'refresh_all', $channel['channel_id']));
}
}
diff --git a/Zotlabs/Daemon/Expire.php b/Zotlabs/Daemon/Expire.php
index a688d6f97..8ca92b6c5 100644
--- a/Zotlabs/Daemon/Expire.php
+++ b/Zotlabs/Daemon/Expire.php
@@ -5,23 +5,24 @@ namespace Zotlabs\Daemon;
class Expire {
- static public function run($argc,$argv){
+ static public function run($argc, $argv) {
cli_startup();
-
+
$pid = get_config('expire', 'procid', false);
if ($pid && (function_exists('posix_kill') ? posix_kill($pid, 0) : true)) {
- logger('Expire: procedure already run with pid ' . $pid, LOGGER_DEBUG);
- return;
+ logger('Expire: procedure already run with pid ' . $pid, LOGGER_DEBUG);
+ return;
}
-
+
$pid = getmypid();
set_config('expire', 'procid', $pid);
// perform final cleanup on previously delete items
$r = q("select id from item where item_deleted = 1 and item_pending_remove = 0 and changed < %s - INTERVAL %s",
- db_utcnow(), db_quoteinterval('10 DAY')
+ db_utcnow(),
+ db_quoteinterval('10 DAY')
);
if ($r) {
foreach ($r as $rr) {
@@ -32,23 +33,22 @@ class Expire {
// physically remove anything that has been deleted for more than two months
/** @FIXME - this is a wretchedly inefficient query */
- $r = q("delete from item where item_pending_remove = 1 and changed < %s - INTERVAL %s",
- db_utcnow(), db_quoteinterval('36 DAY')
+ q("delete from item where item_pending_remove = 1 and changed < %s - INTERVAL %s",
+ db_utcnow(),
+ db_quoteinterval('36 DAY')
);
- /** @FIXME make this optional as it could have a performance impact on large sites */
-
if (intval(get_config('system', 'optimize_items')))
q("optimize table item");
logger('expire: start with pid ' . $pid, LOGGER_DEBUG);
- $site_expire = intval(get_config('system', 'default_expire_days'));
- $commented_days = intval(get_config('system','active_expire_days'));
+ $site_expire = intval(get_config('system', 'default_expire_days'));
+ $commented_days = intval(get_config('system', 'active_expire_days'));
logger('site_expire: ' . $site_expire);
- $r = q("SELECT channel_id, channel_system, channel_address, channel_expire_days from channel where true");
+ $r = dbq("SELECT channel_id, channel_system, channel_address, channel_expire_days from channel where true");
if ($r) {
foreach ($r as $rr) {
@@ -64,11 +64,12 @@ class Expire {
$channel_expire = $service_class_expire;
else
$channel_expire = $site_expire;
-
+
if (intval($channel_expire) && (intval($channel_expire) < intval($rr['channel_expire_days'])) ||
intval($rr['channel_expire_days'] == 0)) {
$expire_days = $channel_expire;
- } else {
+ }
+ else {
$expire_days = $rr['channel_expire_days'];
}
@@ -93,13 +94,13 @@ class Expire {
}
logger('Expire: sys interval: ' . $expire_days, LOGGER_DEBUG);
-
+
if ($expire_days)
item_expire($x['channel_id'], $expire_days, $commented_days);
logger('Expire: sys: done', LOGGER_DEBUG);
}
-
+
del_config('expire', 'procid');
}
}
diff --git a/Zotlabs/Daemon/Externals.php b/Zotlabs/Daemon/Externals.php
index a9988a509..b657f9de4 100644
--- a/Zotlabs/Daemon/Externals.php
+++ b/Zotlabs/Daemon/Externals.php
@@ -8,23 +8,22 @@ require_once('include/channel.php');
class Externals {
- static public function run($argc,$argv){
+ static public function run($argc, $argv) {
- $total = 0;
+ $total = 0;
$attempts = 0;
logger('externals: startup', LOGGER_DEBUG);
// pull in some public posts
+ while ($total == 0 && $attempts < 3) {
+ $arr = ['url' => ''];
+ call_hooks('externals_url_select', $arr);
- while($total == 0 && $attempts < 3) {
- $arr = array('url' => '');
- call_hooks('externals_url_select',$arr);
-
- if($arr['url']) {
+ if ($arr['url']) {
$url = $arr['url'];
- }
+ }
else {
$randfunc = db_getfunc('RAND');
@@ -35,36 +34,36 @@ class Externals {
intval(DIRECTORY_MODE_STANDALONE),
intval(SITE_TYPE_ZOT)
);
- if($r)
+ if ($r)
$url = $r[0]['site_url'];
}
$blacklisted = false;
- if(! check_siteallowed($url)) {
+ if (!check_siteallowed($url)) {
logger('blacklisted site: ' . $url);
$blacklisted = true;
}
- $attempts ++;
+ $attempts++;
// make sure we can eventually break out if somebody blacklists all known sites
- if($blacklisted) {
- if($attempts > 20)
+ if ($blacklisted) {
+ if ($attempts > 20)
break;
- $attempts --;
+ $attempts--;
continue;
}
- if($url) {
- if($r[0]['site_pull'] > NULL_DATE)
- $mindate = urlencode(datetime_convert('','',$r[0]['site_pull'] . ' - 1 day'));
+ if ($url) {
+ if ($r[0]['site_pull'] > NULL_DATE)
+ $mindate = urlencode(datetime_convert('', '', $r[0]['site_pull'] . ' - 1 day'));
else {
- $days = get_config('externals','since_days');
- if($days === false)
+ $days = get_config('externals', 'since_days');
+ if ($days === false)
$days = 15;
- $mindate = urlencode(datetime_convert('','','now - ' . intval($days) . ' days'));
+ $mindate = urlencode(datetime_convert('', '', 'now - ' . intval($days) . ' days'));
}
$feedurl = $url . '/zotfeed?f=&mindate=' . $mindate;
@@ -72,22 +71,22 @@ class Externals {
logger('externals: pulling public content from ' . $feedurl, LOGGER_DEBUG);
$x = z_fetch_url($feedurl);
- if(($x) && ($x['success'])) {
+ if (($x) && ($x['success'])) {
q("update site set site_pull = '%s' where site_url = '%s'",
dbesc(datetime_convert()),
dbesc($url)
);
- $j = json_decode($x['body'],true);
- if($j['success'] && $j['messages']) {
+ $j = json_decode($x['body'], true);
+ if ($j['success'] && $j['messages']) {
$sys = get_sys_channel();
- foreach($j['messages'] as $message) {
+ foreach ($j['messages'] as $message) {
// on these posts, clear any route info.
$message['route'] = '';
- $results = process_delivery(array('hash' => 'undefined'), get_item_elements($message),
- array(array('hash' => $sys['xchan_hash'])), false, true);
- $total ++;
+ process_delivery(['hash' => 'undefined'], get_item_elements($message),
+ [['hash' => $sys['xchan_hash']]], false, true);
+ $total++;
}
logger('externals: import_public_posts: ' . $total . ' messages imported', LOGGER_DEBUG);
}
diff --git a/Zotlabs/Daemon/Gprobe.php b/Zotlabs/Daemon/Gprobe.php
index 9e74eb8b5..29efcf475 100644
--- a/Zotlabs/Daemon/Gprobe.php
+++ b/Zotlabs/Daemon/Gprobe.php
@@ -9,27 +9,27 @@ use Zotlabs\Lib\Zotfinger;
// performs zot_finger on $argv[1], which is a hex_encoded webbie/reddress
class Gprobe {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
- if($argc != 2)
+ if ($argc != 2)
return;
$url = hex2bin($argv[1]);
- if(! strpos($url,'@'))
+ if (!strpos($url, '@'))
return;
$r = q("select * from hubloc where hubloc_addr = '%s' and hubloc_network = 'zot6' limit 1",
dbesc($url)
);
- if(! $r) {
+ if (!$r) {
$href = Webfinger::zot_url(punify($url));
- if($href) {
+ if ($href) {
$zf = Zotfinger::exec($href, null);
}
- if(is_array($zf) && array_path_exists('signature/signer',$zf) && $zf['signature']['signer'] === $href && intval($zf['signature']['header_valid'])) {
- $xc = Libzot::import_xchan($zf['data']);
+ if (is_array($zf) && array_path_exists('signature/signer', $zf) && $zf['signature']['signer'] === $href && intval($zf['signature']['header_valid'])) {
+ Libzot::import_xchan($zf['data']);
}
}
diff --git a/Zotlabs/Daemon/Importdoc.php b/Zotlabs/Daemon/Importdoc.php
index 0ca589e4a..9e818e2b3 100755
--- a/Zotlabs/Daemon/Importdoc.php
+++ b/Zotlabs/Daemon/Importdoc.php
@@ -5,7 +5,7 @@ namespace Zotlabs\Daemon;
class Importdoc {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
require_once('include/help.php');
@@ -16,20 +16,20 @@ class Importdoc {
static public function update_docs_dir($s) {
$f = basename($s);
$d = dirname($s);
- if($s === 'doc/html')
+ if ($s === 'doc/html')
return;
$files = glob("$d/$f");
- if($files) {
- foreach($files as $fi) {
- if($fi === 'doc/html') {
+ if ($files) {
+ foreach ($files as $fi) {
+ if ($fi === 'doc/html') {
continue;
}
- if(is_dir($fi)) {
+ if (is_dir($fi)) {
self::update_docs_dir("$fi/*");
}
else {
// don't update media content
- if(strpos(z_mime_content_type($fi),'text') === 0) {
+ if (strpos(z_mime_content_type($fi), 'text') === 0) {
store_doc_file($fi);
}
}
diff --git a/Zotlabs/Daemon/Importfile.php b/Zotlabs/Daemon/Importfile.php
index 749949679..299fb1ee5 100644
--- a/Zotlabs/Daemon/Importfile.php
+++ b/Zotlabs/Daemon/Importfile.php
@@ -6,22 +6,21 @@ use Zotlabs\Lib\Libsync;
class Importfile {
- static public function run($argc,$argv){
+ static public function run($argc, $argv) {
- logger('Importfile: ' . print_r($argv,true));
+ logger('Importfile: ' . print_r($argv, true));
- if($argc < 3)
+ if ($argc < 3)
return;
$channel = channelx_by_n($argv[1]);
- if(! $channel)
+ if (!$channel)
return;
$srcfile = $argv[2];
$folder = (($argc > 3) ? $argv[3] : '');
$dstname = (($argc > 4) ? $argv[4] : '');
-
- $hash = random_string();
+ $hash = random_string();
$arr = [
'src' => $srcfile,
@@ -35,15 +34,15 @@ class Importfile {
'replace' => true
];
- if($folder)
+ if ($folder)
$arr['folder'] = $folder;
- attach_store($channel,$channel['channel_hash'],'import',$arr);
+ attach_store($channel, $channel['channel_hash'], 'import', $arr);
+
+ $sync = attach_export_data($channel, $hash);
+ if ($sync)
+ Libsync::build_sync_packet($channel['channel_id'], ['file' => [$sync]]);
- $sync = attach_export_data($channel,$hash);
- if($sync)
- Libsync::build_sync_packet($channel['channel_id'],array('file' => array($sync)));
-
return;
}
}
diff --git a/Zotlabs/Daemon/Master.php b/Zotlabs/Daemon/Master.php
index 8c3a7e570..6fa656be5 100644
--- a/Zotlabs/Daemon/Master.php
+++ b/Zotlabs/Daemon/Master.php
@@ -2,58 +2,57 @@
namespace Zotlabs\Daemon;
-if(array_search( __file__ , get_included_files()) === 0) {
+if (array_search(__file__, get_included_files()) === 0) {
require_once('include/cli_startup.php');
array_shift($argv);
$argc = count($argv);
- if($argc)
- Master::Release($argc,$argv);
+ if ($argc)
+ Master::Release($argc, $argv);
return;
}
-
class Master {
static public function Summon($arr) {
$hookinfo = [
- 'argv'=>$arr
+ 'argv' => $arr
];
- call_hooks ('daemon_master_summon',$hookinfo);
+ call_hooks('daemon_master_summon', $hookinfo);
- $arr = $hookinfo['argv'];
+ $arr = $hookinfo['argv'];
$argc = count($arr);
- if ((!is_array($arr) || (count($arr) < 1))) {
- logger("Summon handled by hook.",LOGGER_DEBUG);
+ if ((!is_array($arr) || ($argc < 1))) {
+ logger("Summon handled by hook.", LOGGER_DEBUG);
return;
}
- $phpbin = get_config('system','phpbin','php');
- proc_run($phpbin,'Zotlabs/Daemon/Master.php',$arr);
+ $phpbin = get_config('system', 'phpbin', 'php');
+ proc_run($phpbin, 'Zotlabs/Daemon/Master.php', $arr);
}
- static public function Release($argc,$argv) {
+ static public function Release($argc, $argv) {
cli_startup();
$hookinfo = [
- 'argv'=>$argv
+ 'argv' => $argv
];
- call_hooks ('daemon_master_release',$hookinfo);
+ call_hooks('daemon_master_release', $hookinfo);
$argv = $hookinfo['argv'];
$argc = count($argv);
- if ((!is_array($argv) || (count($argv) < 1))) {
- logger("Release handled by hook.",LOGGER_DEBUG);
+ if ((!is_array($argv) || ($argc < 1))) {
+ logger("Release handled by hook.", LOGGER_DEBUG);
return;
}
- logger('Master: release: ' . json_encode($argv), LOGGER_ALL,LOG_DEBUG);
- $cls = '\\Zotlabs\\Daemon\\' . $argv[0];
- $cls::run($argc,$argv);
+ logger('Master: release: ' . json_encode($argv), LOGGER_ALL, LOG_DEBUG);
+ $cls = '\\Zotlabs\\Daemon\\' . $argv[0];
+ $cls::run($argc, $argv);
}
}
diff --git a/Zotlabs/Daemon/Notifier.php b/Zotlabs/Daemon/Notifier.php
index 18fc57118..78e116d68 100644
--- a/Zotlabs/Daemon/Notifier.php
+++ b/Zotlabs/Daemon/Notifier.php
@@ -14,7 +14,6 @@ require_once('include/items.php');
require_once('include/bbcode.php');
-
/*
* This file was at one time responsible for doing all deliveries, but this caused
* big problems on shared hosting systems, where the process might get killed by the
@@ -81,198 +80,198 @@ require_once('include/bbcode.php');
*/
-
class Notifier {
- static public function run($argc,$argv){
+ static public function run($argc, $argv) {
- if($argc < 3)
+ if ($argc < 3)
return;
- logger('notifier: invoked: ' . print_r($argv,true), LOGGER_DEBUG);
+ logger('notifier: invoked: ' . print_r($argv, true), LOGGER_DEBUG);
$cmd = $argv[1];
$item_id = $argv[2];
- if(! $item_id)
+ if (!$item_id)
return;
$sys = get_sys_channel();
- $deliveries = array();
+ $deliveries = [];
- $request = false;
- $mail = false;
- $top_level = false;
- $location = false;
- $recipients = array();
- $url_recipients = array();
- $normal_mode = true;
- $packet_type = 'undefined';
+ $request = false;
+ $mail = false;
+ $location = false;
+ $recipients = [];
+ $normal_mode = true;
+ $packet_type = 'undefined';
- if($cmd === 'mail' || $cmd === 'single_mail') {
+ if ($cmd === 'mail' || $cmd === 'single_mail') {
$normal_mode = false;
- $mail = true;
- $private = true;
- $message = q("SELECT * FROM mail WHERE id = %d LIMIT 1",
- intval($item_id)
+ $mail = true;
+ $private = true;
+ $message = q("SELECT * FROM mail WHERE id = %d LIMIT 1",
+ intval($item_id)
);
- if(! $message) {
+ if (!$message) {
return;
}
xchan_mail_query($message[0]);
- $uid = $message[0]['channel_id'];
+ $uid = $message[0]['channel_id'];
$recipients[] = $message[0]['from_xchan']; // include clones
$recipients[] = $message[0]['to_xchan'];
- $item = $message[0];
-
+ $item = $message[0];
$encoded_item = encode_mail($item);
$s = q("select * from channel where channel_id = %d limit 1",
- intval($item['channel_id'])
+ intval($uid)
);
- if($s)
+ if ($s)
$channel = $s[0];
}
- elseif($cmd === 'request') {
- $channel_id = $item_id;
- $xchan = $argv[3];
+ elseif ($cmd === 'request') {
+ $channel_id = $item_id;
+ $xchan = $argv[3];
$request_message_id = $argv[4];
$s = q("select * from channel where channel_id = %d limit 1",
intval($channel_id)
);
- if($s)
+ if ($s)
$channel = $s[0];
- $private = true;
+ $private = true;
$recipients[] = $xchan;
- $packet_type = 'request';
- $normal_mode = false;
+ $packet_type = 'request';
+ $normal_mode = false;
}
- elseif($cmd === 'keychange') {
+ elseif ($cmd === 'keychange') {
$channel = channelx_by_n($item_id);
- $r = q("select abook_xchan from abook where abook_channel = %d",
+
+ $r = q("select abook_xchan from abook where abook_channel = %d",
intval($item_id)
);
- if($r) {
- foreach($r as $rr) {
+ if ($r) {
+ foreach ($r as $rr) {
$recipients[] = $rr['abook_xchan'];
}
}
- $private = false;
+ $private = false;
$packet_type = 'keychange';
$normal_mode = false;
}
- elseif(in_array($cmd, [ 'permission_update', 'permission_reject', 'permission_accept', 'permission_create' ])) {
+ elseif (in_array($cmd, ['permission_update', 'permission_reject', 'permission_accept', 'permission_create'])) {
// Get the (single) recipient
$r = q("select * from abook left join xchan on abook_xchan = xchan_hash where abook_id = %d and abook_self = 0",
intval($item_id)
);
- if($r) {
+ if ($r) {
$uid = $r[0]['abook_channel'];
// Get the sender
$channel = channelx_by_n($uid);
- if($channel) {
- $perm_update = array('sender' => $channel, 'recipient' => $r[0], 'success' => false, 'deliveries' => '');
-
- if($cmd === 'permission_create')
- call_hooks('permissions_create',$perm_update);
- elseif($cmd === 'permission_accept')
- call_hooks('permissions_accept',$perm_update);
- elseif($cmd === 'permission_reject')
- call_hooks('permissions_reject',$perm_update);
+ if ($channel) {
+ $perm_update = ['sender' => $channel, 'recipient' => $r[0], 'success' => false, 'deliveries' => ''];
+
+ if ($cmd === 'permission_create')
+ call_hooks('permissions_create', $perm_update);
+ elseif ($cmd === 'permission_accept')
+ call_hooks('permissions_accept', $perm_update);
+ elseif ($cmd === 'permission_reject')
+ call_hooks('permissions_reject', $perm_update);
else
- call_hooks('permissions_update',$perm_update);
+ call_hooks('permissions_update', $perm_update);
- if($perm_update['success']) {
- if($perm_update['deliveries']) {
+ if ($perm_update['success']) {
+ if ($perm_update['deliveries']) {
$deliveries[] = $perm_update['deliveries'];
do_delivery($deliveries);
}
return;
}
else {
- $recipients[] = $r[0]['abook_xchan'];
- $private = false;
- $packet_type = 'refresh';
- $packet_recips = array(array('guid' => $r[0]['xchan_guid'],'guid_sig' => $r[0]['xchan_guid_sig'],'hash' => $r[0]['xchan_hash']));
+ $recipients[] = $r[0]['abook_xchan'];
+ $private = false;
+ $packet_type = 'refresh';
+ $packet_recips = [['guid' => $r[0]['xchan_guid'], 'guid_sig' => $r[0]['xchan_guid_sig'], 'hash' => $r[0]['xchan_hash']]];
}
}
}
}
- elseif($cmd === 'refresh_all') {
+ elseif ($cmd === 'refresh_all') {
logger('notifier: refresh_all: ' . $item_id);
- $uid = $item_id;
+ $uid = $item_id;
$channel = channelx_by_n($item_id);
- $r = q("select abook_xchan from abook where abook_channel = %d",
- intval($item_id)
+
+ $r = q("select abook_xchan from abook where abook_channel = %d",
+ intval($uid)
);
- if($r) {
- foreach($r as $rr) {
+ if ($r) {
+ foreach ($r as $rr) {
$recipients[] = $rr['abook_xchan'];
}
}
- $private = false;
+ $private = false;
$packet_type = 'refresh';
}
- elseif($cmd === 'location') {
+ elseif ($cmd === 'location') {
logger('notifier: location: ' . $item_id);
$s = q("select * from channel where channel_id = %d limit 1",
intval($item_id)
);
- if($s)
+ if ($s)
$channel = $s[0];
- $uid = $item_id;
- $recipients = array();
- $r = q("select abook_xchan from abook where abook_channel = %d",
- intval($item_id)
+
+ $uid = $item_id;
+ $recipients = [];
+
+ $r = q("select abook_xchan from abook where abook_channel = %d",
+ intval($uid)
);
- if($r) {
- foreach($r as $rr) {
+ if ($r) {
+ foreach ($r as $rr) {
$recipients[] = $rr['abook_xchan'];
}
}
- $encoded_item = array('locations' => Libzot::encode_locations($channel),'type' => 'location', 'encoding' => 'zot');
- $target_item = array('aid' => $channel['channel_account_id'],'uid' => $channel['channel_id']);
- $private = false;
- $packet_type = 'location';
- $location = true;
+ $encoded_item = ['locations' => Libzot::encode_locations($channel), 'type' => 'location', 'encoding' => 'zot'];
+ $target_item = ['aid' => $channel['channel_account_id'], 'uid' => $channel['channel_id']];
+ $private = false;
+ $packet_type = 'location';
+ $location = true;
}
- elseif($cmd === 'purge') {
+ elseif ($cmd === 'purge') {
$xchan = $argv[3];
logger('notifier: purge: ' . $item_id . ' => ' . $xchan);
- if (! $xchan) {
+ if (!$xchan) {
return;
}
- $channel = channelx_by_n($item_id);
- $recipients[] = $xchan;
- $private = true;
- $packet_type = 'purge';
+ $channel = channelx_by_n($item_id);
+ $recipients[] = $xchan;
+ $private = true;
+ $packet_type = 'purge';
$packet_recips[] = ['hash' => $xchan];
}
- elseif($cmd === 'purge_all') {
+ elseif ($cmd === 'purge_all') {
logger('notifier: purge_all: ' . $item_id);
$channel = channelx_by_n($item_id);
$recipients = [];
- $r = q("select abook_xchan from abook where abook_channel = %d and abook_self = 0",
+ $r = q("select abook_xchan from abook where abook_channel = %d and abook_self = 0",
intval($item_id)
);
- if (! $r) {
+ if (!$r) {
return;
}
foreach ($r as $rr) {
- $recipients[] = $rr['abook_xchan'];
+ $recipients[] = $rr['abook_xchan'];
$packet_recips[] = ['hash' => $rr['abook_xchan']];
}
- $private = false;
+ $private = false;
$packet_type = 'purge';
@@ -287,7 +286,7 @@ class Notifier {
intval($item_id)
);
- if(! $r)
+ if (!$r)
return;
xchan_query($r);
@@ -296,25 +295,22 @@ class Notifier {
$target_item = $r[0];
- if(in_array($target_item['author']['xchan_network'], ['rss', 'anon'])) {
+ if (in_array($target_item['author']['xchan_network'], ['rss', 'anon'])) {
logger('notifier: target item author is not a fetchable actor', LOGGER_DEBUG);
return;
}
- $deleted_item = false;
-
- if(intval($target_item['item_deleted'])) {
+ if (intval($target_item['item_deleted'])) {
logger('notifier: target item ITEM_DELETED', LOGGER_DEBUG);
- $deleted_item = true;
}
- if(! in_array(intval($target_item['item_type']), [ ITEM_TYPE_POST ] )) {
- $hookinfo=[
- 'targetitem'=>$target_item,
- 'deliver'=>false
+ if (!in_array(intval($target_item['item_type']), [ITEM_TYPE_POST])) {
+ $hookinfo = [
+ 'targetitem' => $target_item,
+ 'deliver' => false
];
if (intval($target_item['item_type'] == ITEM_TYPE_CUSTOM)) {
- call_hooks('customitem_deliver',$hookinfo);
+ call_hooks('customitem_deliver', $hookinfo);
}
if (!$hookinfo['deliver']) {
@@ -328,14 +324,14 @@ class Notifier {
// Check for non published items, but allow an exclusion for transmitting hidden file activities
- if(intval($target_item['item_unpublished']) || intval($target_item['item_delayed']) ||
+ if (intval($target_item['item_unpublished']) || intval($target_item['item_delayed']) ||
intval($target_item['item_blocked']) ||
- ( intval($target_item['item_hidden']) && ($target_item['obj_type'] !== ACTIVITY_OBJ_FILE))) {
+ (intval($target_item['item_hidden']) && ($target_item['obj_type'] !== ACTIVITY_OBJ_FILE))) {
logger('notifier: target item not published, so not forwardable', LOGGER_DEBUG);
return;
}
- if(strpos($target_item['postopts'],'nodeliver') !== false) {
+ if (strpos($target_item['postopts'], 'nodeliver') !== false) {
logger('notifier: target item is undeliverable', LOGGER_DEBUG);
return;
}
@@ -343,17 +339,17 @@ class Notifier {
$s = q("select * from channel left join xchan on channel_hash = xchan_hash where channel_id = %d limit 1",
intval($target_item['uid'])
);
- if($s)
+ if ($s)
$channel = $s[0];
- if($channel['channel_hash'] !== $target_item['author_xchan'] && $channel['channel_hash'] !== $target_item['owner_xchan']) {
+ if ($channel['channel_hash'] !== $target_item['author_xchan'] && $channel['channel_hash'] !== $target_item['owner_xchan']) {
logger("notifier: Sending channel {$channel['channel_hash']} is not owner {$target_item['owner_xchan']} or author {$target_item['author_xchan']}", LOGGER_NORMAL, LOG_WARNING);
return;
}
- if($target_item['mid'] === $target_item['parent_mid']) {
- $parent_item = $target_item;
+ if ($target_item['mid'] === $target_item['parent_mid']) {
+ $parent_item = $target_item;
$top_level_post = true;
}
else {
@@ -362,10 +358,10 @@ class Notifier {
intval($target_item['parent'])
);
- if(! $r)
+ if (!$r)
return;
- if(strpos($r[0]['postopts'],'nodeliver') !== false) {
+ if (strpos($r[0]['postopts'], 'nodeliver') !== false) {
logger('notifier: target item is undeliverable', LOGGER_DEBUG, LOG_NOTICE);
return;
}
@@ -373,34 +369,34 @@ class Notifier {
xchan_query($r);
$r = fetch_post_tags($r);
- $parent_item = $r[0];
+ $parent_item = $r[0];
$top_level_post = false;
}
// avoid looping of discover items 12/4/2014
- if($sys && $parent_item['uid'] == $sys['channel_id'])
+ if ($sys && $parent_item['uid'] == $sys['channel_id'])
return;
$encoded_item = encode_item($target_item);
// Re-use existing signature unless the activity type changed to a Tombstone, which won't verify.
- $m = ((intval($target_item['item_deleted'])) ? '' : get_iconfig($target_item,'activitystreams','signed_data'));
+ $m = ((intval($target_item['item_deleted'])) ? '' : get_iconfig($target_item, 'activitystreams', 'signed_data'));
- if($m) {
- $activity = json_decode($m,true);
+ if ($m) {
+ $activity = json_decode($m, true);
}
else {
$activity = array_merge(['@context' => [
ACTIVITYSTREAMS_JSONLD_REV,
'https://w3id.org/security/v1',
z_root() . ZOT_APSCHEMA_REV
- ]], Activity::encode_activity($target_item)
+ ]], Activity::encode_activity($target_item)
);
}
- logger('target_item: ' . print_r($target_item,true), LOGGER_DEBUG);
- logger('encoded: ' . print_r($activity,true), LOGGER_DEBUG);
+ logger('target_item: ' . print_r($target_item, true), LOGGER_DEBUG);
+ logger('encoded: ' . print_r($activity, true), LOGGER_DEBUG);
// Send comments to the owner to re-deliver to everybody in the conversation
// We only do this if the item in question originated on this site. This prevents looping.
@@ -411,9 +407,7 @@ class Notifier {
// flag on comments for an extended period. So we'll also call comment_local_origin() which looks at
// the hostname in the message_id and provides a second (fallback) opinion.
- $relay_to_owner = (((! $top_level_post) && (intval($target_item['item_origin'])) && comment_local_origin($target_item)) ? true : false);
-
-
+ $relay_to_owner = (((!$top_level_post) && (intval($target_item['item_origin'])) && comment_local_origin($target_item)) ? true : false);
$uplink = false;
@@ -425,54 +419,46 @@ class Notifier {
// tag_deliver'd post which needs to be sent back to the original author
- if(($cmd === 'uplink') && intval($parent_item['item_uplink']) && (! $top_level_post)) {
+ if (($cmd === 'uplink') && intval($parent_item['item_uplink']) && (!$top_level_post)) {
logger('notifier: uplink');
$uplink = true;
}
- if(($relay_to_owner || $uplink) && ($cmd !== 'relay')) {
+ if (($relay_to_owner || $uplink) && ($cmd !== 'relay')) {
logger('notifier: followup relay', LOGGER_DEBUG);
- $recipients = array(($uplink) ? $parent_item['source_xchan'] : $parent_item['owner_xchan']);
- $private = true;
- if(! $encoded_item['flags'])
- $encoded_item['flags'] = array();
+ $recipients = [($uplink) ? $parent_item['source_xchan'] : $parent_item['owner_xchan']];
+ $private = true;
+ if (!$encoded_item['flags'])
+ $encoded_item['flags'] = [];
$encoded_item['flags'][] = 'relay';
- $upstream = true;
+ $upstream = true;
}
else {
logger('notifier: normal distribution', LOGGER_DEBUG);
- if($cmd === 'relay')
+ if ($cmd === 'relay')
logger('notifier: owner relay');
$upstream = false;
// if our parent is a tag_delivery recipient, uplink to the original author causing
// a delivery fork.
- if(($parent_item) && intval($parent_item['item_uplink']) && (! $top_level_post) && ($cmd !== 'uplink')) {
+ if (($parent_item) && intval($parent_item['item_uplink']) && (!$top_level_post) && ($cmd !== 'uplink')) {
// don't uplink a relayed post to the relay owner
- if($parent_item['source_xchan'] !== $parent_item['owner_xchan']) {
+ if ($parent_item['source_xchan'] !== $parent_item['owner_xchan']) {
logger('notifier: uplinking this item');
- Master::Summon(array('Notifier','uplink',$item_id));
+ Master::Summon(['Notifier', 'uplink', $item_id]);
}
}
- $private = false;
- $recipients = collect_recipients($parent_item,$private);
-
+ $private = false;
+ $recipients = collect_recipients($parent_item, $private);
if ($top_level_post) {
// remove clones who will receive the post via sync
- $recipients = array_diff($recipients, [ $target_item['owner_xchan'] ]);
+ $recipients = array_diff($recipients, [$target_item['owner_xchan']]);
}
// FIXME add any additional recipients such as mentions, etc.
- // don't send deletions onward for other people's stuff
- // TODO verify this is needed - copied logic from same place in old code
-
- if(intval($target_item['item_deleted']) && (! intval($target_item['item_wall']))) {
- logger('notifier: ignoring delete notification for non-wall item', LOGGER_NORMAL, LOG_NOTICE);
- return;
- }
}
}
@@ -481,32 +467,31 @@ class Notifier {
// Generic delivery section, we have an encoded item and recipients
// Now start the delivery process
- $x = $encoded_item;
+ $x = $encoded_item;
$x['title'] = 'private';
- $x['body'] = 'private';
- logger('notifier: encoded item: ' . print_r($x,true), LOGGER_DATA, LOG_DEBUG);
+ $x['body'] = 'private';
+ logger('notifier: encoded item: ' . print_r($x, true), LOGGER_DATA, LOG_DEBUG);
//logger('notifier: encoded activity: ' . print_r($activity,true), LOGGER_DATA, LOG_DEBUG);
stringify_array_elms($recipients);
- if(! $recipients) {
+ if (!$recipients) {
logger('no recipients');
return;
}
// logger('notifier: recipients: ' . print_r($recipients,true), LOGGER_NORMAL, LOG_DEBUG);
- $env_recips = (($private) ? array() : null);
+ $env_recips = (($private) ? [] : null);
- $details = q("select xchan_hash, xchan_network, xchan_addr, xchan_guid, xchan_guid_sig from xchan where xchan_hash in (" . protect_sprintf(implode(',',$recipients)) . ")");
+ $details = q("select xchan_hash, xchan_network, xchan_addr, xchan_guid, xchan_guid_sig from xchan where xchan_hash in (" . protect_sprintf(implode(',', $recipients)) . ")");
- $recip_list = array();
-
- if($details) {
- foreach($details as $d) {
+ $recip_list = [];
+ if ($details) {
+ foreach ($details as $d) {
$recip_list[] = $d['xchan_addr'] . ' (' . $d['xchan_hash'] . ')';
- if($private) {
+ if ($private) {
$env_recips[] = [
'guid' => $d['xchan_guid'],
'guid_sig' => $d['xchan_guid_sig'],
@@ -542,8 +527,8 @@ class Notifier {
];
call_hooks('notifier_process', $narr);
- if($narr['queued']) {
- foreach($narr['queued'] as $pq)
+ if ($narr['queued']) {
+ foreach ($narr['queued'] as $pq)
$deliveries[] = $pq;
}
@@ -553,26 +538,26 @@ class Notifier {
$env_recips = $narr['env_recips'];
$packet_recips = $narr['packet_recips'];
- if(($private) && (! $env_recips)) {
+ if (($private) && (!$env_recips)) {
// shouldn't happen
- logger('notifier: private message with no envelope recipients.' . print_r($argv,true), LOGGER_NORMAL, LOG_NOTICE);
+ logger('notifier: private message with no envelope recipients.' . print_r($argv, true), LOGGER_NORMAL, LOG_NOTICE);
}
- logger('notifier: recipients (may be delivered to more if public): ' . print_r($recip_list,true), LOGGER_DEBUG);
+ logger('notifier: recipients (may be delivered to more if public): ' . print_r($recip_list, true), LOGGER_DEBUG);
// Now we have collected recipients (except for external mentions, FIXME)
// Let's reduce this to a set of hubs; checking that the site is not dead.
$hubs = q("select hubloc.*, site.site_crypto, site.site_flags, site.site_version, site.site_project, site.site_dead from hubloc left join site on site_url = hubloc_url
- where hubloc_hash in (" . protect_sprintf(implode(',',$recipients)) . ")
+ where hubloc_hash in (" . protect_sprintf(implode(',', $recipients)) . ")
and hubloc_error = 0 and hubloc_deleted = 0"
);
// public posts won't make it to the local public stream unless there's a recipient on this site.
// This code block sees if it's a public post and localhost is missing, and if so adds an entry for the local sys channel to the $hubs list
- if (! $private) {
+ if (!$private) {
$found_localhost = false;
if ($hubs) {
foreach ($hubs as $h) {
@@ -582,7 +567,7 @@ class Notifier {
}
}
}
- if (! $found_localhost) {
+ if (!$found_localhost) {
$localhub = q("select hubloc.*, site.site_crypto, site.site_flags, site.site_version, site.site_project, site.site_dead from hubloc
left join site on site_url = hubloc_url where hubloc_id_url = '%s' and hubloc_error = 0 and hubloc_deleted = 0",
dbesc(z_root() . '/channel/sys')
@@ -593,7 +578,7 @@ class Notifier {
}
}
- if(! $hubs) {
+ if (!$hubs) {
logger('notifier: no hubs', LOGGER_NORMAL, LOG_NOTICE);
return;
}
@@ -612,17 +597,17 @@ class Notifier {
$hub_env = []; // per-hub envelope so we don't broadcast the entire envelope to all
$dead = []; // known dead hubs - report them as undeliverable
- foreach($hubs as $hub) {
+ foreach ($hubs as $hub) {
if (intval($hub['site_dead'])) {
$dead[] = $hub;
continue;
}
- if($env_recips) {
- foreach($env_recips as $er) {
- if($hub['hubloc_hash'] === $er['hash']) {
- if(! array_key_exists($hub['hubloc_host'] . $hub['hubloc_sitekey'], $hub_env)) {
+ if ($env_recips) {
+ foreach ($env_recips as $er) {
+ if ($hub['hubloc_hash'] === $er['hash']) {
+ if (!array_key_exists($hub['hubloc_host'] . $hub['hubloc_sitekey'], $hub_env)) {
$hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']] = [];
}
$hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']][] = $er;
@@ -631,36 +616,36 @@ class Notifier {
}
- if($hub['hubloc_network'] == 'zot') {
- if(! in_array($hub['hubloc_sitekey'],$keys)) {
+ if ($hub['hubloc_network'] == 'zot') {
+ if (!in_array($hub['hubloc_sitekey'], $keys)) {
$hublist[] = $hub['hubloc_host'] . ' ' . $hub['hubloc_network'];
$dhubs[] = $hub;
$keys[] = $hub['hubloc_sitekey'];
}
}
else {
- if(! in_array($hub['hubloc_url'],$urls)) {
- if($hub['hubloc_url'] === z_root()) {
+ if (!in_array($hub['hubloc_url'], $urls)) {
+ if ($hub['hubloc_url'] === z_root()) {
//deliver to local hub first
array_unshift($hublist, $hub['hubloc_host'] . ' ' . $hub['hubloc_network']);
array_unshift($dhubs, $hub);
}
else {
$hublist[] = $hub['hubloc_host'] . ' ' . $hub['hubloc_network'];
- $dhubs[] = $hub;
+ $dhubs[] = $hub;
}
$urls[] = $hub['hubloc_url'];
}
}
}
- logger('notifier: will notify/deliver to these hubs: ' . print_r($hublist,true), LOGGER_DEBUG, LOG_DEBUG);
+ logger('notifier: will notify/deliver to these hubs: ' . print_r($hublist, true), LOGGER_DEBUG, LOG_DEBUG);
- foreach($dhubs as $hub) {
+ foreach ($dhubs as $hub) {
- logger('notifier_hub: ' . $hub['hubloc_url'],LOGGER_DEBUG);
+ logger('notifier_hub: ' . $hub['hubloc_url'], LOGGER_DEBUG);
- if(! in_array($hub['hubloc_network'], [ 'zot','zot6' ])) {
+ if (!in_array($hub['hubloc_network'], ['zot', 'zot6'])) {
$narr = [
'channel' => $channel,
'upstream' => $upstream,
@@ -687,9 +672,9 @@ class Notifier {
];
- call_hooks('notifier_hub',$narr);
- if($narr['queued']) {
- foreach($narr['queued'] as $pq)
+ call_hooks('notifier_hub', $narr);
+ if ($narr['queued']) {
+ foreach ($narr['queued'] as $pq)
$deliveries[] = $pq;
}
continue;
@@ -705,11 +690,11 @@ class Notifier {
// will invoke a delivery to those connections which are connected to just that
// hub instance.
- if($cmd === 'single_mail' || $cmd === 'single_activity') {
+ if ($cmd === 'single_mail' || $cmd === 'single_activity') {
continue;
}
- if(! in_array($hub['hubloc_network'], [ 'zot','zot6' ])) {
+ if (!in_array($hub['hubloc_network'], ['zot', 'zot6'])) {
continue;
}
@@ -717,31 +702,31 @@ class Notifier {
// in the loop. The signature verification step can't handle dashes in the
// hashes.
- $hash = random_string(48);
+ $hash = random_string(48);
$packet = null;
$pmsg = '';
- if($packet_type === 'refresh' || $packet_type === 'purge') {
- if($hub['hubloc_network'] === 'zot6') {
- $packet = Libzot::build_packet($channel, $packet_type, ids_to_array($packet_recips,'hash'));
+ if ($packet_type === 'refresh' || $packet_type === 'purge') {
+ if ($hub['hubloc_network'] === 'zot6') {
+ $packet = Libzot::build_packet($channel, $packet_type, ids_to_array($packet_recips, 'hash'));
}
else {
- $packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null));
+ $packet = zot_build_packet($channel, $packet_type, (($packet_recips) ? $packet_recips : null));
}
}
- if($packet_type === 'keychange' && $hub['hubloc_network'] === 'zot') {
- $pmsg = get_pconfig($channel['channel_id'],'system','keychange');
- $packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null));
+ if ($packet_type === 'keychange' && $hub['hubloc_network'] === 'zot') {
+ $pmsg = get_pconfig($channel['channel_id'], 'system', 'keychange');
+ $packet = zot_build_packet($channel, $packet_type, (($packet_recips) ? $packet_recips : null));
}
- elseif($packet_type === 'request' && $hub['hubloc_network'] === 'zot') {
- $env = (($hub_env && $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']]) ? $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']] : '');
- $packet = zot_build_packet($channel,$packet_type,$env,$hub['hubloc_sitekey'],$hub['site_crypto'],
- $hash, array('message_id' => $request_message_id)
+ elseif ($packet_type === 'request' && $hub['hubloc_network'] === 'zot') {
+ $env = (($hub_env && $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']]) ? $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']] : '');
+ $packet = zot_build_packet($channel, $packet_type, $env, $hub['hubloc_sitekey'], $hub['site_crypto'],
+ $hash, ['message_id' => $request_message_id]
);
}
- if($packet) {
+ if ($packet) {
Queue::insert(
[
'hash' => $hash,
@@ -757,11 +742,10 @@ class Notifier {
else {
$env = (($hub_env && $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']]) ? $hub_env[$hub['hubloc_host'] . $hub['hubloc_sitekey']] : '');
-
- if($hub['hubloc_network'] === 'zot6') {
+ if ($hub['hubloc_network'] === 'zot6') {
$zenv = [];
- if($env) {
- foreach($env as $e) {
+ if ($env) {
+ foreach ($env as $e) {
$zenv[] = $e['hash'];
}
}
@@ -774,11 +758,11 @@ class Notifier {
// For public reshares, some comments to the reshare on the zot fork will not make it to zot6
// due to these different message models. This cannot be prevented at this time.
- if($packet_type === 'activity' && $activity['type'] === 'Announce' && intval($target_item['item_private'])) {
+ if ($packet_type === 'activity' && $activity['type'] === 'Announce' && intval($target_item['item_private'])) {
continue;
}
- $packet = Libzot::build_packet($channel,$packet_type,$zenv,$activity,'activitystreams',(($private) ? $hub['hubloc_sitekey'] : null),$hub['site_crypto']);
+ $packet = Libzot::build_packet($channel, $packet_type, $zenv, $activity, 'activitystreams', (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto']);
}
else {
// currently zot6 delivery is only performed on normal items and not sync items or mail or anything else
@@ -786,28 +770,28 @@ class Notifier {
// with before switching to zot6 as the primary zot6 handler checks for the existence of a message delivery report
// to trigger dequeue'ing
- $z6 = (($encoded_item && $encoded_item['type'] === 'activity' && (! array_key_exists('allow_cid',$encoded_item))) ? true : false);
- if($z6) {
- $packet = zot6_build_packet($channel,'notify',$env, json_encode($encoded_item), (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash);
+ $z6 = (($encoded_item && $encoded_item['type'] === 'activity' && (!array_key_exists('allow_cid', $encoded_item))) ? true : false);
+ if ($z6) {
+ $packet = zot6_build_packet($channel, 'notify', $env, json_encode($encoded_item), (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'], $hash);
}
else {
- $packet = zot_build_packet($channel,'notify',$env, (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash);
+ $packet = zot_build_packet($channel, 'notify', $env, (($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'], $hash);
}
}
// remove this after most hubs have updated to version 5.0
- if(stripos($hub['site_project'], 'hubzilla') !== false && version_compare($hub['site_version'], '4.7.3', '<=')) {
- if($encoded_item['type'] === 'mail') {
- $encoded_item['from']['network'] = 'zot';
+ if (stripos($hub['site_project'], 'hubzilla') !== false && version_compare($hub['site_version'], '4.7.3', '<=')) {
+ if ($encoded_item['type'] === 'mail') {
+ $encoded_item['from']['network'] = 'zot';
$encoded_item['from']['guid_sig'] = str_replace('sha256.', '', $encoded_item['from']['guid_sig']);
}
else {
- $encoded_item['owner']['network'] = 'zot';
+ $encoded_item['owner']['network'] = 'zot';
$encoded_item['owner']['guid_sig'] = str_replace('sha256.', '', $encoded_item['owner']['guid_sig']);
- if(strpos($encoded_item['author']['url'], z_root()) === 0) {
- $encoded_item['author']['network'] = 'zot';
+ if (strpos($encoded_item['author']['url'], z_root()) === 0) {
+ $encoded_item['author']['network'] = 'zot';
$encoded_item['author']['guid_sig'] = str_replace('sha256.', '', $encoded_item['author']['guid_sig']);
}
}
@@ -826,7 +810,7 @@ class Notifier {
);
// only create delivery reports for normal undeleted items
- if(is_array($target_item) && array_key_exists('postopts',$target_item) && (! $target_item['item_deleted']) && (! get_config('system','disable_dreport'))) {
+ if (is_array($target_item) && array_key_exists('postopts', $target_item) && (!$target_item['item_deleted']) && (!get_config('system', 'disable_dreport'))) {
q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_result, dreport_time, dreport_xchan, dreport_queue ) values ( '%s','%s','%s','%s','%s','%s','%s' ) ",
dbesc($target_item['mid']),
dbesc($hub['hubloc_host']),
@@ -842,21 +826,21 @@ class Notifier {
$deliveries[] = $hash;
}
- if($normal_mode) {
+ if ($normal_mode) {
$x = q("select * from hook where hook = 'notifier_normal'");
- if($x) {
- Master::Summon( [ 'Deliver_hooks', $target_item['id'] ] );
+ if ($x) {
+ Master::Summon(['Deliver_hooks', $target_item['id']]);
}
}
- if($deliveries)
+ if ($deliveries)
do_delivery($deliveries);
logger('notifier: basic loop complete.', LOGGER_DEBUG);
if ($dead) {
foreach ($dead as $deceased) {
- if (is_array($target_item) && (! $target_item['item_deleted']) && (! get_config('system','disable_dreport'))) {
+ if (is_array($target_item) && (!$target_item['item_deleted']) && (!get_config('system', 'disable_dreport'))) {
q("insert into dreport ( dreport_mid, dreport_site, dreport_recip, dreport_name, dreport_result, dreport_time, dreport_xchan, dreport_queue )
values ( '%s', '%s','%s','%s','%s','%s','%s','%s' ) ",
dbesc($target_item['mid']),
@@ -872,7 +856,7 @@ class Notifier {
}
}
- call_hooks('notifier_end',$target_item);
+ call_hooks('notifier_end', $target_item);
logger('notifer: complete.');
return;
diff --git a/Zotlabs/Daemon/Onedirsync.php b/Zotlabs/Daemon/Onedirsync.php
index 2ad76761d..f29fbe5b8 100644
--- a/Zotlabs/Daemon/Onedirsync.php
+++ b/Zotlabs/Daemon/Onedirsync.php
@@ -3,6 +3,7 @@
namespace Zotlabs\Daemon;
use Zotlabs\Lib\Libzot;
+use Zotlabs\Lib\Libzotdir;
require_once('include/zot.php');
require_once('include/dir_fns.php');
@@ -10,14 +11,14 @@ require_once('include/dir_fns.php');
class Onedirsync {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
logger('onedirsync: start ' . intval($argv[1]));
- if(($argc > 1) && (intval($argv[1])))
+ if (($argc > 1) && (intval($argv[1])))
$update_id = intval($argv[1]);
- if(! $update_id) {
+ if (!$update_id) {
logger('onedirsync: no update');
return;
}
@@ -26,9 +27,9 @@ class Onedirsync {
intval($update_id)
);
- if(! $r)
+ if (!$r)
return;
- if(($r[0]['ud_flags'] & UPDATE_FLAGS_UPDATED) || (! $r[0]['ud_addr']))
+ if (($r[0]['ud_flags'] & UPDATE_FLAGS_UPDATED) || (!$r[0]['ud_addr']))
return;
// Have we probed this channel more recently than the other directory server
@@ -40,8 +41,8 @@ class Onedirsync {
dbesc($r[0]['ud_date']),
intval(UPDATE_FLAGS_UPDATED)
);
- if($x) {
- $y = q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and ( ud_flags & %d ) = 0 and ud_date != '%s'",
+ if ($x) {
+ q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and ( ud_flags & %d ) = 0 and ud_date != '%s'",
intval(UPDATE_FLAGS_UPDATED),
dbesc($r[0]['ud_addr']),
intval(UPDATE_FLAGS_UPDATED),
@@ -58,8 +59,8 @@ class Onedirsync {
$h = Libzot::zot_record_preferred($h);
- if(($h) && ($h['hubloc_status'] & HUBLOC_OFFLINE)) {
- $y = q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and ( ud_flags & %d ) = 0 ",
+ if (($h) && ($h['hubloc_status'] & HUBLOC_OFFLINE)) {
+ q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and ( ud_flags & %d ) = 0 ",
intval(UPDATE_FLAGS_UPDATED),
dbesc($r[0]['ud_addr']),
intval(UPDATE_FLAGS_UPDATED)
@@ -71,10 +72,10 @@ class Onedirsync {
// we might have to pull this out some day, but for now update_directory_entry()
// runs zot_finger() and is kind of zot specific
- if($h && ! in_array($h['hubloc_network'], ['zot6', 'zot']))
+ if ($h && !in_array($h['hubloc_network'], ['zot6', 'zot']))
return;
- update_directory_entry($r[0]);
+ Libzotdir::update_directory_entry($r[0]);
return;
}
diff --git a/Zotlabs/Daemon/Onepoll.php b/Zotlabs/Daemon/Onepoll.php
index 93a5412b0..0228f10fb 100644
--- a/Zotlabs/Daemon/Onepoll.php
+++ b/Zotlabs/Daemon/Onepoll.php
@@ -2,6 +2,7 @@
namespace Zotlabs\Daemon;
+use App;
use Zotlabs\Lib\Libzot;
require_once('include/zot.php');
@@ -10,20 +11,18 @@ require_once('include/socgraph.php');
class Onepoll {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
logger('onepoll: start');
-
- if(($argc > 1) && (intval($argv[1])))
+
+ if (($argc > 1) && (intval($argv[1])))
$contact_id = intval($argv[1]);
- if(! $contact_id) {
+ if (!$contact_id) {
logger('onepoll: no contact');
return;
}
- $d = datetime_convert();
-
$contacts = q("SELECT abook.*, xchan.*, account.*
FROM abook LEFT JOIN account on abook_account = account_id left join xchan on xchan_hash = abook_xchan
where abook_id = %d
@@ -32,38 +31,36 @@ class Onepoll {
intval($contact_id),
intval(ACCOUNT_OK),
intval(ACCOUNT_UNVERIFIED)
- );
+ );
- if(! $contacts) {
+ if (!$contacts) {
logger('onepoll: abook_id not found: ' . $contact_id);
return;
}
$contact = $contacts[0];
- $t = $contact['abook_updated'];
-
$importer_uid = $contact['abook_channel'];
-
+
$r = q("SELECT * from channel left join xchan on channel_hash = xchan_hash where channel_id = %d limit 1",
intval($importer_uid)
);
- if(! $r)
+ if (!$r)
return;
$importer = $r[0];
logger("onepoll: poll: ({$contact['id']}) IMPORTER: {$importer['xchan_name']}, CONTACT: {$contact['xchan_name']}");
- $last_update = ((($contact['abook_updated'] === $contact['abook_created']) || ($contact['abook_updated'] <= NULL_DATE))
- ? datetime_convert('UTC','UTC','now - 7 days')
- : datetime_convert('UTC','UTC',$contact['abook_updated'] . ' - 2 days')
+ $last_update = ((($contact['abook_updated'] === $contact['abook_created']) || ($contact['abook_updated'] <= NULL_DATE))
+ ? datetime_convert('UTC', 'UTC', 'now - 7 days')
+ : datetime_convert('UTC', 'UTC', $contact['abook_updated'] . ' - 2 days')
);
- if($contact['xchan_network'] === 'rss') {
+ if ($contact['xchan_network'] === 'rss') {
logger('onepoll: processing feed ' . $contact['xchan_name'], LOGGER_DEBUG);
- $alive = handle_feed($importer['channel_id'],$contact_id,$contact['xchan_hash']);
+ $alive = handle_feed($importer['channel_id'], $contact_id, $contact['xchan_hash']);
if ($alive) {
q("update abook set abook_connected = '%s' where abook_id = %d",
dbesc(datetime_convert()),
@@ -72,22 +69,22 @@ class Onepoll {
}
return;
}
-
- if(! in_array($contact['xchan_network'],['zot','zot6']))
+
+ if (!in_array($contact['xchan_network'], ['zot', 'zot6']))
return;
// update permissions
- if($contact['xchan_network'] === 'zot6')
- $x = Libzot::refresh($contact,$importer);
+ if ($contact['xchan_network'] === 'zot6')
+ $x = Libzot::refresh($contact, $importer);
- if($contact['xchan_network'] === 'zot')
- $x = zot_refresh($contact,$importer);
+ if ($contact['xchan_network'] === 'zot')
+ $x = zot_refresh($contact, $importer);
$responded = false;
$updated = datetime_convert();
$connected = datetime_convert();
- if(! $x) {
+ if (!$x) {
// mark for death by not updating abook_connected, this is caught in include/poller.php
q("update abook set abook_updated = '%s' where abook_id = %d",
dbesc($updated),
@@ -103,38 +100,38 @@ class Onepoll {
$responded = true;
}
- if(! $responded)
+ if (!$responded)
return;
- if($contact['xchan_connurl']) {
+ if ($contact['xchan_connurl']) {
$fetch_feed = true;
- $x = null;
+ $x = null;
// They haven't given us permission to see their stream
- $can_view_stream = intval(get_abconfig($importer_uid,$contact['abook_xchan'],'their_perms','view_stream'));
+ $can_view_stream = intval(get_abconfig($importer_uid, $contact['abook_xchan'], 'their_perms', 'view_stream'));
- if(! $can_view_stream)
+ if (!$can_view_stream)
$fetch_feed = false;
// we haven't given them permission to send us their stream
- $can_send_stream = intval(get_abconfig($importer_uid,$contact['abook_xchan'],'my_perms','send_stream'));
-
- if(! $can_send_stream)
+ $can_send_stream = intval(get_abconfig($importer_uid, $contact['abook_xchan'], 'my_perms', 'send_stream'));
+
+ if (!$can_send_stream)
$fetch_feed = false;
- if($fetch_feed) {
+ if ($fetch_feed) {
- if(strpos($contact['xchan_connurl'],z_root()) === 0) {
+ if (strpos($contact['xchan_connurl'], z_root()) === 0) {
// local channel - save a network fetch
$c = channelx_by_hash($contact['xchan_hash']);
- if($c) {
- $x = [
- 'success' => true,
- 'body' => json_encode( [
- 'success' => true,
- 'messages' => zot_feed($c['channel_id'], $importer['xchan_hash'], [ 'mindate' => $last_update ])
+ if ($c) {
+ $x = [
+ 'success' => true,
+ 'body' => json_encode([
+ 'success' => true,
+ 'messages' => zot_feed($c['channel_id'], $importer['xchan_hash'], ['mindate' => $last_update])
])
];
}
@@ -142,43 +139,43 @@ class Onepoll {
else {
// remote fetch
- $feedurl = str_replace('/poco/','/zotfeed/',$contact['xchan_connurl']);
- $feedurl .= '?f=&mindate=' . urlencode($last_update) . '&zid=' . $importer['channel_address'] . '@' . \App::get_hostname();
+ $feedurl = str_replace('/poco/', '/zotfeed/', $contact['xchan_connurl']);
+ $feedurl .= '?f=&mindate=' . urlencode($last_update) . '&zid=' . $importer['channel_address'] . '@' . App::get_hostname();
$recurse = 0;
- $x = z_fetch_url($feedurl, false, $recurse, [ 'session' => true ]);
+ $x = z_fetch_url($feedurl, false, $recurse, ['session' => true]);
}
- logger('feed_update: ' . print_r($x,true), LOGGER_DATA);
+ logger('feed_update: ' . print_r($x, true), LOGGER_DATA);
}
- if(($x) && ($x['success'])) {
+ if (($x) && ($x['success'])) {
$total = 0;
logger('onepoll: feed update ' . $contact['xchan_name'] . ' ' . $feedurl);
- $j = json_decode($x['body'],true);
- if($j['success'] && $j['messages']) {
- foreach($j['messages'] as $message) {
- $results = process_delivery(array('hash' => $contact['xchan_hash']), get_item_elements($message),
- array(array('hash' => $importer['xchan_hash'])), false);
- logger('onepoll: feed_update: process_delivery: ' . print_r($results,true), LOGGER_DATA);
- $total ++;
+ $j = json_decode($x['body'], true);
+ if ($j['success'] && $j['messages']) {
+ foreach ($j['messages'] as $message) {
+ $results = process_delivery(['hash' => $contact['xchan_hash']], get_item_elements($message),
+ [['hash' => $importer['xchan_hash']]], false);
+ logger('onepoll: feed_update: process_delivery: ' . print_r($results, true), LOGGER_DATA);
+ $total++;
}
logger("onepoll: $total messages processed");
}
}
}
-
+
// update the poco details for this connection
- if($contact['xchan_connurl']) {
+ if ($contact['xchan_connurl']) {
$r = q("SELECT xlink_id from xlink
where xlink_xchan = '%s' and xlink_updated > %s - INTERVAL %s and xlink_static = 0 limit 1",
intval($contact['xchan_hash']),
db_utcnow(), db_quoteinterval('1 DAY')
);
- if(! $r) {
- poco_load($contact['xchan_hash'],$contact['xchan_connurl']);
+ if (!$r) {
+ poco_load($contact['xchan_hash'], $contact['xchan_connurl']);
}
}
diff --git a/Zotlabs/Daemon/Poller.php b/Zotlabs/Daemon/Poller.php
index ebc0584ba..8cbdfab0d 100644
--- a/Zotlabs/Daemon/Poller.php
+++ b/Zotlabs/Daemon/Poller.php
@@ -4,73 +4,67 @@ namespace Zotlabs\Daemon;
class Poller {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
- $maxsysload = intval(get_config('system','maxloadavg'));
- if($maxsysload < 1)
+ $maxsysload = intval(get_config('system', 'maxloadavg'));
+ if ($maxsysload < 1)
$maxsysload = 50;
- if(function_exists('sys_getloadavg')) {
+ if (function_exists('sys_getloadavg')) {
$load = sys_getloadavg();
- if(intval($load[0]) > $maxsysload) {
+ if (intval($load[0]) > $maxsysload) {
logger('system: load ' . $load . ' too high. Poller deferred to next scheduled run.');
return;
}
}
- $interval = intval(get_config('system','poll_interval'));
- if(! $interval)
- $interval = ((get_config('system','delivery_interval') === false) ? 3 : intval(get_config('system','delivery_interval')));
+ $interval = intval(get_config('system', 'poll_interval'));
+ if (!$interval)
+ $interval = ((get_config('system', 'delivery_interval') === false) ? 3 : intval(get_config('system', 'delivery_interval')));
// Check for a lockfile. If it exists, but is over an hour old, it's stale. Ignore it.
$lockfile = 'store/[data]/poller';
- if((file_exists($lockfile)) && (filemtime($lockfile) > (time() - 3600))
- && (! get_config('system','override_poll_lockfile'))) {
+ if ((file_exists($lockfile)) && (filemtime($lockfile) > (time() - 3600))
+ && (!get_config('system', 'override_poll_lockfile'))) {
logger("poller: Already running");
return;
}
-
+
// Create a lockfile. Needs two vars, but $x doesn't need to contain anything.
+ $x = '';
file_put_contents($lockfile, $x);
logger('poller: start');
-
- $manual_id = 0;
- $generation = 0;
- $force = false;
- $restart = false;
+ $manual_id = 0;
+ $force = false;
- if(($argc > 1) && ($argv[1] == 'force'))
+ if (($argc > 1) && ($argv[1] == 'force'))
$force = true;
- if(($argc > 1) && ($argv[1] == 'restart')) {
- $restart = true;
+ if (($argc > 1) && ($argv[1] == 'restart')) {
$generation = intval($argv[2]);
- if(! $generation)
+ if (!$generation)
return;
}
- if(($argc > 1) && intval($argv[1])) {
+ if (($argc > 1) && intval($argv[1])) {
$manual_id = intval($argv[1]);
$force = true;
}
-
$sql_extra = (($manual_id) ? " AND abook_id = " . intval($manual_id) . " " : "");
reload_plugins();
- $d = datetime_convert();
-
// Only poll from those with suitable relationships
- $abandon_sql = (($abandon_days)
- ? sprintf(" AND account_lastlog > %s - INTERVAL %s ", db_utcnow(), db_quoteinterval(intval($abandon_days).' DAY'))
- : ''
+ $abandon_sql = (($abandon_days)
+ ? sprintf(" AND account_lastlog > %s - INTERVAL %s ", db_utcnow(), db_quoteinterval(intval($abandon_days) . ' DAY'))
+ : ''
);
$randfunc = db_getfunc('RAND');
-
+
$contacts = q("SELECT abook.abook_updated, abook.abook_connected, abook.abook_feed,
abook.abook_channel, abook.abook_id, abook.abook_archived, abook.abook_pending,
abook.abook_ignored, abook.abook_blocked,
@@ -85,118 +79,117 @@ class Poller {
intval(ACCOUNT_UNVERIFIED) // FIXME
);
- if($contacts) {
+ if ($contacts) {
+ foreach ($contacts as $contact) {
- foreach($contacts as $contact) {
-
- $update = false;
+ $update = false;
$t = $contact['abook_updated'];
$c = $contact['abook_connected'];
- if(intval($contact['abook_feed'])) {
- $min = service_class_fetch($contact['abook_channel'],'minimum_feedcheck_minutes');
- if(! $min)
- $min = intval(get_config('system','minimum_feedcheck_minutes'));
- if(! $min)
+ if (intval($contact['abook_feed'])) {
+ $min = service_class_fetch($contact['abook_channel'], 'minimum_feedcheck_minutes');
+ if (!$min)
+ $min = intval(get_config('system', 'minimum_feedcheck_minutes'));
+ if (!$min)
$min = 60;
- $x = datetime_convert('UTC','UTC',"now - $min minutes");
- if($c < $x) {
- Master::Summon(array('Onepoll',$contact['abook_id']));
- if($interval)
- @time_sleep_until(microtime(true) + (float) $interval);
+ $x = datetime_convert('UTC', 'UTC', "now - $min minutes");
+ if ($c < $x) {
+ Master::Summon(['Onepoll', $contact['abook_id']]);
+ if ($interval)
+ @time_sleep_until(microtime(true) + (float)$interval);
}
continue;
}
- if(! in_array($contact['xchan_network'],['zot','zot6']))
+ if (!in_array($contact['xchan_network'], ['zot', 'zot6']))
continue;
- if($c == $t) {
- if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))
+ if ($c == $t) {
+ if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 day"))
$update = true;
}
else {
-
+
// if we've never connected with them, start the mark for death countdown from now
-
- if($c <= NULL_DATE) {
- $r = q("update abook set abook_connected = '%s' where abook_id = %d",
+
+ if ($c <= NULL_DATE) {
+ q("update abook set abook_connected = '%s' where abook_id = %d",
dbesc(datetime_convert()),
intval($contact['abook_id'])
);
- $c = datetime_convert();
+ $c = datetime_convert();
$update = true;
}
// He's dead, Jim
- if(strcmp(datetime_convert('UTC','UTC', 'now'),datetime_convert('UTC','UTC', $c . " + 30 day")) > 0) {
- $r = q("update abook set abook_archived = 1 where abook_id = %d",
+ if (strcmp(datetime_convert('UTC', 'UTC', 'now'), datetime_convert('UTC', 'UTC', $c . " + 30 day")) > 0) {
+ q("update abook set abook_archived = 1 where abook_id = %d",
intval($contact['abook_id'])
);
- $update = false;
continue;
}
- if(intval($contact['abook_archived'])) {
- $update = false;
+ if (intval($contact['abook_archived'])) {
continue;
}
// might be dead, so maybe don't poll quite so often
-
+
// recently deceased, so keep up the regular schedule for 3 days
-
- if((strcmp(datetime_convert('UTC','UTC', 'now'),datetime_convert('UTC','UTC', $c . " + 3 day")) > 0)
- && (strcmp(datetime_convert('UTC','UTC', 'now'),datetime_convert('UTC','UTC', $t . " + 1 day")) > 0))
+
+ if ((strcmp(datetime_convert('UTC', 'UTC', 'now'), datetime_convert('UTC', 'UTC', $c . " + 3 day")) > 0)
+ && (strcmp(datetime_convert('UTC', 'UTC', 'now'), datetime_convert('UTC', 'UTC', $t . " + 1 day")) > 0))
$update = true;
// After that back off and put them on a morphine drip
- if(strcmp(datetime_convert('UTC','UTC', 'now'),datetime_convert('UTC','UTC', $t . " + 2 day")) > 0) {
+ if (strcmp(datetime_convert('UTC', 'UTC', 'now'), datetime_convert('UTC', 'UTC', $t . " + 2 day")) > 0) {
$update = true;
}
}
- if(intval($contact['abook_pending']) || intval($contact['abook_archived']) || intval($contact['abook_ignored']) || intval($contact['abook_blocked']))
+ if (intval($contact['abook_pending']) || intval($contact['abook_archived']) || intval($contact['abook_ignored']) || intval($contact['abook_blocked']))
continue;
- if((! $update) && (! $force))
- continue;
+ if ((!$update) && (!$force))
+ continue;
- Master::Summon(array('Onepoll',$contact['abook_id']));
- if($interval)
- @time_sleep_until(microtime(true) + (float) $interval);
+ Master::Summon(['Onepoll', $contact['abook_id']]);
+ if ($interval)
+ @time_sleep_until(microtime(true) + (float)$interval);
}
}
- if($dirmode == DIRECTORY_MODE_SECONDARY || $dirmode == DIRECTORY_MODE_PRIMARY) {
+ $dirmode = intval(get_config('system', 'directory_mode'));
+
+ if ($dirmode == DIRECTORY_MODE_SECONDARY || $dirmode == DIRECTORY_MODE_PRIMARY) {
$r = q("SELECT u.ud_addr, u.ud_id, u.ud_last FROM updates AS u INNER JOIN (SELECT ud_addr, max(ud_id) AS ud_id FROM updates WHERE ( ud_flags & %d ) = 0 AND ud_addr != '' AND ( ud_last <= '%s' OR ud_last > %s - INTERVAL %s ) GROUP BY ud_addr) AS s ON s.ud_id = u.ud_id ",
intval(UPDATE_FLAGS_UPDATED),
dbesc(NULL_DATE),
db_utcnow(), db_quoteinterval('7 DAY')
);
- if($r) {
- foreach($r as $rr) {
+ if ($r) {
+ foreach ($r as $rr) {
// If they didn't respond when we attempted before, back off to once a day
// After 7 days we won't bother anymore
- if($rr['ud_last'] > NULL_DATE)
- if($rr['ud_last'] > datetime_convert('UTC','UTC', 'now - 1 day'))
+ if ($rr['ud_last'] > NULL_DATE)
+ if ($rr['ud_last'] > datetime_convert('UTC', 'UTC', 'now - 1 day'))
continue;
- Master::Summon(array('Onedirsync',$rr['ud_id']));
- if($interval)
- @time_sleep_until(microtime(true) + (float) $interval);
+ Master::Summon(['Onedirsync', $rr['ud_id']]);
+ if ($interval)
+ @time_sleep_until(microtime(true) + (float)$interval);
}
}
- }
+ }
- set_config('system','lastpoll',datetime_convert());
+ set_config('system', 'lastpoll', datetime_convert());
//All done - clear the lockfile
diff --git a/Zotlabs/Daemon/Queue.php b/Zotlabs/Daemon/Queue.php
index 814148404..36bdcfe81 100644
--- a/Zotlabs/Daemon/Queue.php
+++ b/Zotlabs/Daemon/Queue.php
@@ -7,12 +7,12 @@ require_once('include/zot.php');
class Queue {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
require_once('include/items.php');
require_once('include/bbcode.php');
- if($argc > 1)
+ if ($argc > 1)
$queue_id = $argv[1];
else
$queue_id = EMPTY_STR;
@@ -25,10 +25,9 @@ class Queue {
$r = q("select outq_posturl from outq where outq_created < %s - INTERVAL %s",
db_utcnow(), db_quoteinterval('3 DAY')
);
- if($r) {
- foreach($r as $rr) {
- $site_url = '';
- $h = parse_url($rr['outq_posturl']);
+ if ($r) {
+ foreach ($r as $rr) {
+ $h = parse_url($rr['outq_posturl']);
$desturl = $h['scheme'] . '://' . $h['host'] . (($h['port']) ? ':' . $h['port'] : '');
q("update site set site_dead = 1 where site_dead = 0 and site_url = '%s' and site_update < %s - INTERVAL %s",
dbesc($desturl),
@@ -37,11 +36,11 @@ class Queue {
}
}
- $r = q("DELETE FROM outq WHERE outq_created < %s - INTERVAL %s",
+ q("DELETE FROM outq WHERE outq_created < %s - INTERVAL %s",
db_utcnow(), db_quoteinterval('3 DAY')
);
- if($queue_id) {
+ if ($queue_id) {
$r = q("SELECT * FROM outq WHERE outq_hash = '%s' LIMIT 1",
dbesc($queue_id)
);
@@ -54,7 +53,7 @@ class Queue {
// so that we don't start off a thousand deliveries for a couple of dead hubs.
// The zot driver will deliver everything destined for a single hub once contact is made (*if* contact is made).
// Other drivers will have to do something different here and may need their own query.
-
+
// Note: this requires some tweaking as new posts to long dead hubs once a day will keep them in the
// "every 15 minutes" category. We probably need to prioritise them when inserted into the queue
// or just prior to this query based on recent and long-term delivery history. If we have good reason to believe
@@ -67,7 +66,7 @@ class Queue {
db_utcnow()
);
while ($r) {
- foreach($r as $rv) {
+ foreach ($r as $rv) {
queue_deliver($rv);
}
$r = q("SELECT *,$sqlrandfunc as rn FROM outq WHERE outq_delivered = 0 and outq_scheduled < %s order by rn limit 1",
@@ -75,10 +74,10 @@ class Queue {
);
}
}
- if(! $r)
+ if (!$r)
return;
- foreach($r as $rv) {
+ foreach ($r as $rv) {
queue_deliver($rv);
}
}
diff --git a/Zotlabs/Daemon/Thumbnail.php b/Zotlabs/Daemon/Thumbnail.php
index e1f17c304..72034b870 100644
--- a/Zotlabs/Daemon/Thumbnail.php
+++ b/Zotlabs/Daemon/Thumbnail.php
@@ -5,30 +5,30 @@ namespace Zotlabs\Daemon;
class Thumbnail {
- static public function run($argc,$argv) {
+ static public function run($argc, $argv) {
- if(! $argc == 2)
+ if (!$argc == 2)
return;
$c = q("select * from attach where hash = '%s' ",
dbesc($argv[1])
);
- if(! $c)
+ if (!$c)
return;
$attach = $c[0];
- $preview_style = intval(get_config('system','thumbnail_security',0));
- $preview_width = intval(get_config('system','thumbnail_width',300));
- $preview_height = intval(get_config('system','thumbnail_height',300));
+ $preview_style = intval(get_config('system', 'thumbnail_security', 0));
+ $preview_width = intval(get_config('system', 'thumbnail_width', 300));
+ $preview_height = intval(get_config('system', 'thumbnail_height', 300));
$p = [
'attach' => $attach,
'preview_style' => $preview_style,
'preview_width' => $preview_width,
'preview_height' => $preview_height,
- 'thumbnail' => null
+ 'thumbnail' => null
];
/**
@@ -40,39 +40,39 @@ class Thumbnail {
* * \e string \b thumbnail
*/
- call_hooks('thumbnail',$p);
- if($p['thumbnail']) {
+ call_hooks('thumbnail', $p);
+ if ($p['thumbnail']) {
return;
}
$default_controller = null;
-
+
$files = glob('Zotlabs/Thumbs/*.php');
- if($files) {
- foreach($files as $f) {
- $clsname = '\\Zotlabs\\Thumbs\\' . ucfirst(basename($f,'.php'));
- if(class_exists($clsname)) {
+ if ($files) {
+ foreach ($files as $f) {
+ $clsname = '\\Zotlabs\\Thumbs\\' . ucfirst(basename($f, '.php'));
+ if (class_exists($clsname)) {
$x = new $clsname();
- if(method_exists($x,'Match')) {
+ if (method_exists($x, 'Match')) {
$matched = $x->Match($attach['filetype']);
- if($matched) {
- $x->Thumb($attach,$preview_style,$preview_width,$preview_height);
+ if ($matched) {
+ $x->Thumb($attach, $preview_style, $preview_width, $preview_height);
}
}
- if(method_exists($x,'MatchDefault')) {
- $default_matched = $x->MatchDefault(substr($attach['filetype'],0,strpos($attach['filetype'],'/')));
- if($default_matched) {
+ if (method_exists($x, 'MatchDefault')) {
+ $default_matched = $x->MatchDefault(substr($attach['filetype'], 0, strpos($attach['filetype'], '/')));
+ if ($default_matched) {
$default_controller = $x;
}
}
}
}
}
- if(($default_controller)
- && ((! file_exists(dbunescbin($attach['content']) . '.thumb'))
+ if (($default_controller)
+ && ((!file_exists(dbunescbin($attach['content']) . '.thumb'))
|| (filectime(dbunescbin($attach['content']) . 'thumb') < (time() - 60)))) {
- $default_controller->Thumb($attach,$preview_style,$preview_width,$preview_height);
+ $default_controller->Thumb($attach, $preview_style, $preview_width, $preview_height);
}
}
}
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php
index 7b980b8d3..05b2ba177 100644
--- a/Zotlabs/Lib/Apps.php
+++ b/Zotlabs/Lib/Apps.php
@@ -524,7 +524,7 @@ class Apps {
}
elseif(remote_channel()) {
$observer = \App::get_observer();
- if($observer && $observer['xchan_network'] === 'zot') {
+ if($observer && in_array($observer['xchan_network'], ['zot6', 'zot'])) {
// some folks might have xchan_url redirected offsite, use the connurl
$x = parse_url($observer['xchan_connurl']);
if($x) {
diff --git a/Zotlabs/Lib/Enotify.php b/Zotlabs/Lib/Enotify.php
index c78325ee3..3a24cd349 100644
--- a/Zotlabs/Lib/Enotify.php
+++ b/Zotlabs/Lib/Enotify.php
@@ -64,7 +64,7 @@ class Enotify {
$sitename = get_config('system','sitename');
$site_admin = sprintf( t('%s Administrator'), $sitename);
$opt_out1 = sprintf( t('This email was sent by %1$s at %2$s.'), t('$Projectname'), \App::get_hostname());
- $opt_out2 = sprintf( t('To stop receiving these messages, please adjust your Notification Settings at %s'), z_root() . '/settings');
+ $opt_out2 = sprintf( t('To stop receiving these messages, please adjust your Notification Settings at %s'), z_root() . '/settings');
$hopt_out2 = sprintf( t('To stop receiving these messages, please adjust your %s.'), '<a href="' . z_root() . '/settings' . '">' . t('Notification Settings') . '</a>');
$sender_name = $product;
$hostname = \App::get_hostname();
@@ -80,7 +80,7 @@ class Enotify {
$sender_email = get_config('system','from_email');
if(! $sender_email)
$sender_email = 'Administrator' . '@' . $hostname;
-
+
$sender_name = get_config('system','from_email_name');
if(! $sender_name)
$sender_name = \Zotlabs\Lib\System::get_site_name();
@@ -108,7 +108,7 @@ class Enotify {
logger('notification invoked for an old item which may have been refetched.',LOGGER_DEBUG,LOG_INFO);
return;
}
- }
+ }
else {
$title = $body = '';
}
@@ -181,7 +181,7 @@ class Enotify {
pop_lang();
return;
}
-
+
// if it's a post figure out who's post it is.
@@ -219,7 +219,7 @@ class Enotify {
$itemlink,
$p[0]['author']['xchan_name'],
$item_post_type);
-
+
// "your post"
if($p[0]['owner']['xchan_name'] == $p[0]['author']['xchan_name'] && intval($p[0]['item_wall']))
$dest_str = sprintf(t('%1$s %2$s [zrl=%3$s]your %4$s[/zrl]'),
@@ -230,15 +230,15 @@ class Enotify {
// Some mail softwares relies on subject field for threading.
// So, we cannot have different subjects for notifications of the same thread.
- // Before this we have the name of the replier on the subject rendering
+ // Before this we have the name of the replier on the subject rendering
// differents subjects for messages on the same thread.
if($moderated)
$subject = sprintf( t('[$Projectname:Notify] Moderated Comment to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
else
$subject = sprintf( t('[$Projectname:Notify] Comment to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
- $preamble = sprintf( t('%1$s commented on an item/conversation you have been following.'), $sender['xchan_name']);
- $epreamble = $dest_str;
+ $preamble = sprintf( t('%1$s commented on an item/conversation you have been following.'), $sender['xchan_name']);
+ $epreamble = $dest_str;
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -247,7 +247,7 @@ class Enotify {
$tsitelink .= "\n\n" . sprintf( t('Please visit %s to approve or reject this comment.'), z_root() . '/moderate' );
$hsitelink .= "<br><br>" . sprintf( t('Please visit %s to approve or reject this comment.'), '<a href="' . z_root() . '/moderate">' . z_root() . '/moderate</a>' );
}
-
+
}
if ($params['type'] == NOTIFY_LIKE) {
@@ -278,7 +278,7 @@ class Enotify {
pop_lang();
return;
}
-
+
// if it's a post figure out who's post it is.
@@ -314,12 +314,12 @@ class Enotify {
// Some mail softwares relies on subject field for threading.
// So, we cannot have different subjects for notifications of the same thread.
- // Before this we have the name of the replier on the subject rendering
+ // Before this we have the name of the replier on the subject rendering
// differents subjects for messages on the same thread.
$subject = sprintf( t('[$Projectname:Notify] Like received to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
- $preamble = sprintf( t('%1$s liked an item/conversation you created.'), $sender['xchan_name']);
- $epreamble = $dest_str;
+ $preamble = sprintf( t('%1$s liked an item/conversation you created.'), $sender['xchan_name']);
+ $epreamble = $dest_str;
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -335,7 +335,7 @@ class Enotify {
$epreamble = sprintf( t('%1$s posted to [zrl=%2$s]your wall[/zrl]') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
- $params['link']);
+ $params['link']);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -355,12 +355,12 @@ class Enotify {
pop_lang();
return;
}
-
+
$subject = sprintf( t('[$Projectname:Notify] %s tagged you') , $sender['xchan_name']);
$preamble = sprintf( t('%1$s tagged you at %2$s') , $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s [zrl=%2$s]tagged you[/zrl].') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
- $params['link']);
+ $params['link']);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -373,7 +373,7 @@ class Enotify {
$preamble = sprintf( t('%1$s poked you at %2$s') , $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s [zrl=%2$s]poked you[/zrl].') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
- $params['link']);
+ $params['link']);
$subject = str_replace('poked', t($params['activity']), $subject);
$preamble = str_replace('poked', t($params['activity']), $preamble);
@@ -390,7 +390,7 @@ class Enotify {
$preamble = sprintf( t('%1$s tagged your post at %2$s'),$sender['xchan_name'], $sitename);
$epreamble = sprintf( t('%1$s tagged [zrl=%2$s]your post[/zrl]') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
- $itemlink);
+ $itemlink);
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
@@ -400,10 +400,10 @@ class Enotify {
if ($params['type'] == NOTIFY_INTRO) {
$subject = sprintf( t('[$Projectname:Notify] Introduction received'));
- $preamble = sprintf( t('You\'ve received an new connection request from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
+ $preamble = sprintf( t('You\'ve received an new connection request from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('You\'ve received [zrl=%1$s]a new connection request[/zrl] from %2$s.'),
$siteurl . '/connections/ifpending',
- '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
$body = sprintf( t('You may visit their profile at %s'),$sender['xchan_url']);
$sitelink = t('Please visit %s to approve or reject the connection request.');
@@ -414,11 +414,11 @@ class Enotify {
if ($params['type'] == NOTIFY_SUGGEST) {
$subject = sprintf( t('[$Projectname:Notify] Friend suggestion received'));
- $preamble = sprintf( t('You\'ve received a friend suggestion from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
+ $preamble = sprintf( t('You\'ve received a friend suggestion from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
$epreamble = sprintf( t('You\'ve received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s.'),
$itemlink,
'[zrl=' . $params['item']['url'] . ']' . $params['item']['name'] . '[/zrl]',
- '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
+ '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
$body = t('Name:') . ' ' . $params['item']['name'] . "\n";
$body .= t('Photo:') . ' ' . $params['item']['photo'] . "\n";
@@ -462,7 +462,7 @@ class Enotify {
$sitelink = $h['sitelink'];
$tsitelink = $h['tsitelink'];
$hsitelink = $h['hsitelink'];
- $itemlink = $h['itemlink'];
+ $itemlink = $h['itemlink'];
require_once('include/html2bbcode.php');
@@ -510,7 +510,7 @@ class Enotify {
// Mark some notifications as seen right away
// Note! The notification have to be created, because they are used to send emails
// So easiest solution to hide them from Notices is to mark them as seen right away.
- // Another option would be to not add them to the DB, and change how emails are handled
+ // Another option would be to not add them to the DB, and change how emails are handled
// (probably would be better that way)
if (!$always_show_in_notices) {
@@ -555,7 +555,7 @@ class Enotify {
// wretched hack, but we don't want to duplicate all the preamble variations and we also don't want to screw up a translation
if ((\App::$language === 'en' || (! \App::$language)) && strpos($msg,', '))
- $msg = substr($msg,strpos($msg,', ')+1);
+ $msg = substr($msg,strpos($msg,', ')+1);
$datarray['id'] = $notify_id;
$datarray['msg'] = $msg;
@@ -587,12 +587,12 @@ class Enotify {
$htmlversion = bbcode(stripslashes(str_replace(array("\\r","\\n"), array("","<br />\n"),$body)));
- // use $_SESSION['zid_override'] to force zid() to use
+ // use $_SESSION['zid_override'] to force zid() to use
// the recipient address instead of the current observer
$_SESSION['zid_override'] = channel_reddress($recip);
$_SESSION['zrl_override'] = z_root() . '/channel/' . $recip['channel_address'];
-
+
$textversion = zidify_links($textversion);
$htmlversion = zidify_links($htmlversion);
@@ -754,7 +754,7 @@ class Enotify {
return $params['result'];
}
- $fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8');
+ $fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8');
$messageSubject = email_header_encode(html_entity_decode($params['messageSubject'],ENT_QUOTES,'UTF-8'),'UTF-8');
// generate a mime boundary
@@ -767,8 +767,8 @@ class Enotify {
$messageHeader =
$params['additionalMailHeader'] .
"From: $fromName <{$params['fromEmail']}>" . PHP_EOL .
- "Reply-To: $fromName <{$params['replyTo']}>" . PHP_EOL .
- "MIME-Version: 1.0" . PHP_EOL .
+ "Reply-To: $fromName <{$params['replyTo']}>" . PHP_EOL .
+ "MIME-Version: 1.0" . PHP_EOL .
"Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
// assemble the final multipart message body with the text and html types included
@@ -782,7 +782,7 @@ class Enotify {
$textBody . PHP_EOL .
"--" . $mimeBoundary . PHP_EOL . // text/html section
"Content-Type: text/html; charset=UTF-8" . PHP_EOL .
- "Content-Transfer-Encoding: base64" . PHP_EOL . PHP_EOL .
+ "Content-Transfer-Encoding: base64" . PHP_EOL . PHP_EOL .
$htmlBody . PHP_EOL .
"--" . $mimeBoundary . "--" . PHP_EOL; // message ending
@@ -803,7 +803,7 @@ class Enotify {
require_once('include/conversation.php');
- // Call localize_item to get a one line status for activities.
+ // Call localize_item to get a one line status for activities.
// This should set $item['localized'] to indicate we have a brief summary.
// and perhaps $item['shortlocalized'] for an even briefer summary
@@ -860,7 +860,7 @@ class Enotify {
//'b64mid' => ((in_array($item['verb'], [ACTIVITY_LIKE, ACTIVITY_DISLIKE])) ? 'b64.' . base64url_encode($item['thr_parent']) : 'b64.' . base64url_encode($item['mid'])),
'thread_top' => (($item['item_thread_top']) ? true : false),
'message' => bbcode(escape_tags($itemem_text)),
- 'body' => htmlentities(html2plain(bbcode($item['body']), 75, true), ENT_COMPAT, 'UTF-8', false),
+ 'body' => htmlentities(html2plain(bbcode($item['body']), 75, true), ENT_QUOTES, 'UTF-8', false),
// these are for the superblock addon
'hash' => $item[$who]['xchan_hash'],
'uid' => $item['uid'],
diff --git a/Zotlabs/Lib/JSalmon.php b/Zotlabs/Lib/JSalmon.php
index 48a4e649b..7f63cf914 100644
--- a/Zotlabs/Lib/JSalmon.php
+++ b/Zotlabs/Lib/JSalmon.php
@@ -40,15 +40,15 @@ class JSalmon {
$ret = [ 'results' => [] ];
if(! is_array($x)) {
- return $false;
+ return false;
}
if(! ( array_key_exists('signed',$x) && $x['signed'])) {
- return $false;
+ return false;
}
- $signed_data = preg_replace('/\s+/','',$x['data']) . '.'
- . base64url_encode($x['data_type'],true) . '.'
- . base64url_encode($x['encoding'],true) . '.'
+ $signed_data = preg_replace('/\s+/','',$x['data']) . '.'
+ . base64url_encode($x['data_type'],true) . '.'
+ . base64url_encode($x['encoding'],true) . '.'
. base64url_encode($x['alg'],true);
$key = HTTPSig::get_key(EMPTY_STR,'zot6',base64url_decode($x['sigs']['key_id']));
diff --git a/Zotlabs/Lib/Libzot.php b/Zotlabs/Lib/Libzot.php
index 972ebe0e9..cde4c0145 100644
--- a/Zotlabs/Lib/Libzot.php
+++ b/Zotlabs/Lib/Libzot.php
@@ -87,7 +87,7 @@ class Libzot {
* packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'keychange', 'force_refresh', 'notify', 'auth_check'
* @param array $recipients
* envelope recipients, array of portable_id's; empty for public posts
- * @param string $msg
+ * @param array $msg
* optional message
* @param string $encoding
* optional encoding, default 'activitystreams'
@@ -98,7 +98,7 @@ class Libzot {
* optional comma separated list of encryption methods @ref best_algorithm()
* @returns string json encoded zot packet
*/
- static function build_packet($channel, $type = 'activity', $recipients = null, $msg = '', $encoding = 'activitystreams', $remote_key = null, $methods = '') {
+ static function build_packet($channel, $type = 'activity', $recipients = null, $msg = [], $encoding = 'activitystreams', $remote_key = null, $methods = '') {
$sig_method = get_config('system','signature_algorithm','sha256');
@@ -189,7 +189,7 @@ class Libzot {
* @see z_post_url()
*
* @param string $url
- * @param array $data
+ * @param string $data
* @param array $channel (required if using zot6 delivery)
* @param array $crypto (required if encrypted httpsig, requires hubloc_sitekey and site_crypto elements)
* @return array see z_post_url() for returned data format
@@ -237,7 +237,7 @@ class Libzot {
*
* @param array $them => xchan structure of sender
* @param array $channel => local channel structure of target recipient, required for "friending" operations
- * @param array $force (optional) default false
+ * @param boolean $force (optional) default false
*
* @return boolean
* * \b true if successful
@@ -421,7 +421,7 @@ class Libzot {
if($new_connection) {
if(! Permissions::PermsCompare($new_perms,$previous_perms))
- Master::Summon([ 'Notifier', 'permissions_create', $new_connection[0]['abook_id'] ]);
+ Master::Summon([ 'Notifier', 'permission_create', $new_connection[0]['abook_id'] ]);
Enotify::submit(
[
'type' => NOTIFY_INTRO,
diff --git a/Zotlabs/Lib/Libzotdir.php b/Zotlabs/Lib/Libzotdir.php
index b02516a98..d4c5398ee 100644
--- a/Zotlabs/Lib/Libzotdir.php
+++ b/Zotlabs/Lib/Libzotdir.php
@@ -19,7 +19,6 @@ class Libzotdir {
*/
static function find_upstream_directory($dirmode) {
- global $DIRECTORY_FALLBACK_SERVERS;
$preferred = get_config('system','directory_server');
@@ -31,7 +30,7 @@ class Libzotdir {
);
if(($r) && ($r[0]['site_flags'] & DIRECTORY_MODE_STANDALONE)) {
$preferred = '';
- }
+ }
}
@@ -42,19 +41,21 @@ class Libzotdir {
* from our list of directory servers. However, if we're a directory
* server ourself, point at the local instance
* We will then set this value so this should only ever happen once.
- * Ideally there will be an admin setting to change to a different
+ * Ideally there will be an admin setting to change to a different
* directory server if you don't like our choice or if circumstances change.
*/
+ $directory_fallback_servers = get_directory_fallback_servers();
+
$dirmode = intval(get_config('system','directory_mode'));
if ($dirmode == DIRECTORY_MODE_NORMAL) {
- $toss = mt_rand(0,count($DIRECTORY_FALLBACK_SERVERS));
- $preferred = $DIRECTORY_FALLBACK_SERVERS[$toss];
+ $toss = mt_rand(0,count($directory_fallback_servers));
+ $preferred = $directory_fallback_servers[$toss];
if(! $preferred) {
$preferred = DIRECTORY_FALLBACK_MASTER;
}
set_config('system','directory_server',$preferred);
- }
+ }
else {
set_config('system','directory_server',z_root());
}
@@ -108,7 +109,7 @@ class Libzotdir {
$ret = get_config('directory', $setting);
- // 'safemode' is the default if there is no observer or no established preference.
+ // 'safemode' is the default if there is no observer or no established preference.
if($setting === 'safemode' && $ret === false)
$ret = 1;
@@ -175,8 +176,8 @@ class Libzotdir {
*
* Checks the directory mode of this hub to see if it is some form of directory server. If it is,
* get the directory realm of this hub. Fetch a list of all other directory servers in this realm and request
- * a directory sync packet. This will contain both directory updates and new ratings. Store these all in the DB.
- * In the case of updates, we will query each of them asynchronously from a poller task. Ratings are stored
+ * a directory sync packet. This will contain both directory updates and new ratings. Store these all in the DB.
+ * In the case of updates, we will query each of them asynchronously from a poller task. Ratings are stored
* directly if the rater's signature matches.
*
* @param int $dirmode;
@@ -188,16 +189,17 @@ class Libzotdir {
return;
$realm = get_directory_realm();
+
if ($realm == DIRECTORY_REALM) {
- $r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_type = %d and ( site_realm = '%s' or site_realm = '') ",
+ $r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_type = %d and ( site_realm = '%s' or site_realm = '') and site_dead = 0",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
intval(SITE_TYPE_ZOT),
dbesc($realm)
);
- }
+ }
else {
- $r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_realm like '%s' and site_type = %d ",
+ $r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_realm like '%s' and site_type = %d and site_dead = 0",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
dbesc(protect_sprintf('%' . $realm . '%')),
@@ -205,6 +207,8 @@ class Libzotdir {
);
}
+
+
// If there are no directory servers, setup the fallback master
/** @FIXME What to do if we're in a different realm? */
@@ -214,14 +218,14 @@ class Libzotdir {
[
'site_url' => DIRECTORY_FALLBACK_MASTER,
'site_flags' => DIRECTORY_MODE_PRIMARY,
- 'site_update' => NULL_DATE,
+ 'site_update' => NULL_DATE,
'site_directory' => DIRECTORY_FALLBACK_MASTER . '/dirsearch',
'site_realm' => DIRECTORY_REALM,
'site_valid' => 1,
]
);
- $r = q("select * from site where site_flags in (%d, %d) and site_url != '%s' and site_type = %d ",
+ $r = q("select * from site where site_flags in (%d, %d) and site_url != '%s' and site_type = %d and site_dead = 0",
intval(DIRECTORY_MODE_PRIMARY),
intval(DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
@@ -245,7 +249,6 @@ class Libzotdir {
$syncdate = (($rr['site_sync'] <= NULL_DATE) ? datetime_convert('UTC','UTC','now - 2 days') : $rr['site_sync']);
$x = z_fetch_url($rr['site_directory'] . '?f=&sync=' . urlencode($syncdate) . (($token) ? '&t=' . $token : ''));
-
if (! $x['success'])
continue;
@@ -273,7 +276,7 @@ class Libzotdir {
$ud_flags |= UPDATE_FLAGS_DELETED;
if (is_array($t['flags']) && in_array('forced',$t['flags']))
$ud_flags |= UPDATE_FLAGS_FORCED;
-
+
$z = q("insert into updates ( ud_hash, ud_guid, ud_date, ud_flags, ud_addr )
values ( '%s', '%s', '%s', %d, '%s' ) ",
dbesc($t['hash']),
@@ -338,7 +341,7 @@ class Libzotdir {
static function local_dir_update($uid, $force) {
-
+
logger('local_dir_update: uid: ' . $uid, LOGGER_DEBUG);
$p = q("select channel.channel_hash, channel_address, channel_timezone, channel_portable_id, profile.* from profile left join channel on channel_id = uid where uid = %d and is_default = 1",
@@ -354,7 +357,7 @@ class Libzotdir {
$profile['description'] = $p[0]['pdesc'];
$profile['birthday'] = $p[0]['dob'];
- if ($age = age($p[0]['dob'],$p[0]['channel_timezone'],''))
+ if ($age = age($p[0]['dob'],$p[0]['channel_timezone'],''))
$profile['age'] = $age;
$profile['gender'] = $p[0]['gender'];
@@ -415,7 +418,7 @@ class Libzotdir {
dbesc($legacy_hash)
);
}
-
+
}
$ud_hash = random_string() . '@' . \App::get_hostname();
@@ -446,7 +449,7 @@ class Libzotdir {
$arr['xprof_hash'] = $hash;
$arr['xprof_dob'] = (($profile['birthday'] === '0000-00-00') ? $profile['birthday'] : datetime_convert('','',$profile['birthday'],'Y-m-d')); // !!!! check this for 0000 year
$arr['xprof_age'] = (($profile['age']) ? intval($profile['age']) : 0);
- $arr['xprof_desc'] = (($profile['description']) ? htmlspecialchars($profile['description'], ENT_COMPAT,'UTF-8',false) : '');
+ $arr['xprof_desc'] = (($profile['description']) ? htmlspecialchars($profile['description'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_gender'] = (($profile['gender']) ? htmlspecialchars($profile['gender'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_marital'] = (($profile['marital']) ? htmlspecialchars($profile['marital'], ENT_COMPAT,'UTF-8',false) : '');
$arr['xprof_sexual'] = (($profile['sexual']) ? htmlspecialchars($profile['sexual'], ENT_COMPAT,'UTF-8',false) : '');
@@ -641,7 +644,7 @@ class Libzotdir {
dbesc(datetime_convert()),
intval($flags),
dbesc($addr)
- );
+ );
}
else {
q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and not (ud_flags & %d)>0 ",
diff --git a/Zotlabs/Lib/NativeWiki.php b/Zotlabs/Lib/NativeWiki.php
index 3ec032075..c3032d02c 100644
--- a/Zotlabs/Lib/NativeWiki.php
+++ b/Zotlabs/Lib/NativeWiki.php
@@ -9,7 +9,7 @@ define ( 'NWIKI_ITEM_RESOURCE_TYPE', 'nwiki' );
class NativeWiki {
- static public function listwikis($channel, $observer_hash) {
+ public static function listwikis($channel, $observer_hash) {
$sql_extra = item_permissions_sql($channel['channel_id'], $observer_hash);
$wikis = q("SELECT * FROM item
@@ -40,7 +40,7 @@ class NativeWiki {
}
- function create_wiki($channel, $observer_hash, $wiki, $acl) {
+ public static function create_wiki($channel, $observer_hash, $wiki, $acl) {
$resource_id = new_uuid();
$uuid = new_uuid();
@@ -101,7 +101,7 @@ class NativeWiki {
}
}
- function update_wiki($channel_id, $observer_hash, $arr, $acl) {
+ public static function update_wiki($channel_id, $observer_hash, $arr, $acl) {
$w = self::get_wiki($channel_id, $observer_hash, $arr['resource_id']);
$item = $w['wiki'];
@@ -156,7 +156,7 @@ class NativeWiki {
}
}
- static public function sync_a_wiki_item($uid,$id,$resource_id) {
+ public static function sync_a_wiki_item($uid,$id,$resource_id) {
$r = q("SELECT * from item WHERE uid = %d AND ( id = %d OR ( resource_type = '%s' and resource_id = '%s' )) ",
@@ -185,7 +185,7 @@ class NativeWiki {
}
}
- function delete_wiki($channel_id,$observer_hash,$resource_id) {
+ public static function delete_wiki($channel_id,$observer_hash,$resource_id) {
$w = self::get_wiki($channel_id,$observer_hash,$resource_id);
$item = $w['wiki'];
@@ -202,7 +202,7 @@ class NativeWiki {
}
- static public function get_wiki($channel_id, $observer_hash, $resource_id) {
+ public static function get_wiki($channel_id, $observer_hash, $resource_id) {
$sql_extra = item_permissions_sql($channel_id,$observer_hash);
@@ -236,7 +236,7 @@ class NativeWiki {
}
- static public function exists_by_name($uid, $urlName) {
+ public static function exists_by_name($uid, $urlName) {
$sql_extra = item_permissions_sql($uid);
@@ -258,7 +258,7 @@ class NativeWiki {
}
- static public function get_permissions($resource_id, $owner_id, $observer_hash) {
+ public static function get_permissions($resource_id, $owner_id, $observer_hash) {
// TODO: For now, only the owner can edit
$sql_extra = item_permissions_sql($owner_id, $observer_hash);
diff --git a/Zotlabs/Lib/NativeWikiPage.php b/Zotlabs/Lib/NativeWikiPage.php
index d84cc50a8..71f193b70 100644
--- a/Zotlabs/Lib/NativeWikiPage.php
+++ b/Zotlabs/Lib/NativeWikiPage.php
@@ -163,7 +163,7 @@ class NativeWikiPage {
return [ 'success' => true, 'page' => $page ];
}
- return [ 'success' => false, 'item_id' => $c['item_id'], 'message' => t('Page not found') ];
+ return [ 'success' => false, 'message' => t('Page not found') ];
}
@@ -339,7 +339,6 @@ class NativeWikiPage {
}
static public function save_page($arr) {
-
$pageUrlName = ((array_key_exists('pageUrlName',$arr)) ? $arr['pageUrlName'] : '');
$content = ((array_key_exists('content',$arr)) ? $arr['content'] : '');
$resource_id = ((array_key_exists('resource_id',$arr)) ? $arr['resource_id'] : '');
@@ -385,7 +384,7 @@ class NativeWikiPage {
$ret = item_store($item, false, false);
if($ret['item_id'])
- return array('message' => '', 'item_id' => $ret['item_id'], 'filename' => $filename, 'success' => true);
+ return array('message' => '', 'item_id' => $ret['item_id'], 'filename' => $pageUrlName, 'success' => true);
else
return array('message' => t('Page update failed.'), 'success' => false);
}
@@ -432,12 +431,12 @@ class NativeWikiPage {
$channel_id = ((array_key_exists('channel_id',$arr)) ? $arr['channel_id'] : 0);
if (! $commitHash) {
- return array('content' => $content, 'message' => 'No commit was provided', 'success' => false);
+ return array('message' => 'No commit was provided', 'success' => false);
}
$w = Zlib\NativeWiki::get_wiki($channel_id, $observer_hash, $resource_id);
if (!$w['wiki']) {
- return array('content' => $content, 'message' => 'Error reading wiki', 'success' => false);
+ return array('message' => 'Error reading wiki', 'success' => false);
}
$x = $arr;
@@ -451,7 +450,7 @@ class NativeWikiPage {
$content = $loaded['body'];
return [ 'content' => $content, 'success' => true ];
}
- return [ 'content' => $content, 'success' => false ];
+ return [ 'success' => false ];
}
}
diff --git a/Zotlabs/Lib/Queue.php b/Zotlabs/Lib/Queue.php
index 6acc58bc5..779719d8b 100644
--- a/Zotlabs/Lib/Queue.php
+++ b/Zotlabs/Lib/Queue.php
@@ -2,9 +2,6 @@
namespace Zotlabs\Lib;
-use Zotlabs\Lib\Libzot;
-
-
class Queue {
static function update($id, $add_priority = 0) {
@@ -39,7 +36,7 @@ class Queue {
// queue item is less than 12 hours old, we'll schedule for fifteen
// minutes.
- $r = q("UPDATE outq SET outq_scheduled = '%s' WHERE outq_posturl = '%s'",
+ q("UPDATE outq SET outq_scheduled = '%s' WHERE outq_posturl = '%s'",
dbesc(datetime_convert('UTC','UTC','now + 5 days')),
dbesc($x[0]['outq_posturl'])
);
@@ -88,7 +85,7 @@ class Queue {
static function set_delivered($id,$channel = 0) {
logger('queue: set delivered ' . $id,LOGGER_DEBUG);
- $sql_extra = (($channel_id) ? " and outq_channel = " . intval($channel_id) . " " : '');
+ $sql_extra = (($channel['channel_id']) ? " and outq_channel = " . intval($channel['channel_id']) . " " : '');
// Set the next scheduled run date so far in the future that it will be expired
// long before it ever makes it back into the delivery chain.
@@ -230,11 +227,10 @@ class Queue {
logger('deliver: dest: ' . $outq['outq_posturl'], LOGGER_DEBUG);
-
if($outq['outq_posturl'] === z_root() . '/zot') {
// local delivery
$zot = new \Zotlabs\Zot6\Receiver(new \Zotlabs\Zot6\Zot6Handler(),$outq['outq_notify']);
- $result = $zot->run(true);
+ $result = $zot->run();
logger('returned_json: ' . json_encode($result,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES), LOGGER_DATA);
logger('deliver: local zot delivery succeeded to ' . $outq['outq_posturl']);
Libzot::process_response($outq['outq_posturl'],[ 'success' => true, 'body' => json_encode($result) ], $outq);
diff --git a/Zotlabs/Lib/Share.php b/Zotlabs/Lib/Share.php
index d34c0eaba..b4cd5a194 100644
--- a/Zotlabs/Lib/Share.php
+++ b/Zotlabs/Lib/Share.php
@@ -2,8 +2,6 @@
namespace Zotlabs\Lib;
-use Zotlabs\Lib\Activity;
-
class Share {
private $item = null;
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php
index 024502d2a..b7eecbd94 100644
--- a/Zotlabs/Lib/ThreadItem.php
+++ b/Zotlabs/Lib/ThreadItem.php
@@ -35,7 +35,7 @@ class ThreadItem {
public function __construct($data) {
-
+
$this->data = $data;
$this->toplevel = ($this->get_id() == $this->get_data_value('parent'));
$this->threaded = get_config('system','thread_allow');
@@ -98,7 +98,7 @@ class ThreadItem {
$conv = $this->get_conversation();
$observer = $conv->get_observer();
- $lock = (((intval($item['item_private'])) || (($item['uid'] == local_channel()) && (strlen($item['allow_cid']) || strlen($item['allow_gid'])
+ $lock = (((intval($item['item_private'])) || (($item['uid'] == local_channel()) && (strlen($item['allow_cid']) || strlen($item['allow_gid'])
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
? t('Private Message')
: false);
@@ -151,9 +151,9 @@ class ThreadItem {
if($observer && $observer['xchan_hash']
- && ($observer['xchan_hash'] == $this->get_data_value('author_xchan')
- || $observer['xchan_hash'] == $this->get_data_value('owner_xchan')
- || $observer['xchan_hash'] == $this->get_data_value('source_xchan')
+ && ($observer['xchan_hash'] == $this->get_data_value('author_xchan')
+ || $observer['xchan_hash'] == $this->get_data_value('owner_xchan')
+ || $observer['xchan_hash'] == $this->get_data_value('source_xchan')
|| $this->get_data_value('uid') == local_channel()))
$dropping = true;
@@ -169,15 +169,15 @@ class ThreadItem {
'dropping' => $dropping,
'delete' => t('Delete'),
);
- }
+ }
elseif(is_site_admin()) {
$drop = [ 'dropping' => true, 'delete' => t('Admin Delete') ];
}
// FIXME
- if($observer_is_pageowner) {
+ if($observer_is_pageowner) {
$multidrop = array(
- 'select' => t('Select'),
+ 'select' => t('Select'),
);
}
@@ -223,7 +223,7 @@ class ThreadItem {
if(! feature_enabled($conv->get_profile_owner(),'dislike'))
unset($conv_responses['dislike']);
-
+
$responses = get_responses($conv_responses,$response_verbs,$this,$item);
$my_responses = [];
@@ -254,7 +254,7 @@ class ThreadItem {
}
$showlike = ((x($conv_responses['like'],$item['mid'])) ? format_like($conv_responses['like'][$item['mid']],$conv_responses['like'][$item['mid'] . '-l'],'like',$item['mid']) : '');
- $showdislike = ((x($conv_responses['dislike'],$item['mid']) && feature_enabled($conv->get_profile_owner(),'dislike'))
+ $showdislike = ((x($conv_responses['dislike'],$item['mid']) && feature_enabled($conv->get_profile_owner(),'dislike'))
? format_like($conv_responses['dislike'][$item['mid']],$conv_responses['dislike'][$item['mid'] . '-l'],'dislike',$item['mid']) : '');
/*
@@ -264,7 +264,7 @@ class ThreadItem {
*/
$this->check_wall_to_wall();
-
+
if($this->is_toplevel()) {
// FIXME check this permission
if(($conv->get_profile_owner() == local_channel()) && (! array_key_exists('real_uid',$item))) {
@@ -275,7 +275,7 @@ class ThreadItem {
);
}
- }
+ }
else {
$is_comment = true;
}
@@ -349,7 +349,7 @@ class ThreadItem {
// $viewthread (below) is only valid in list mode. If this is a channel page, build the thread viewing link
// since we can't depend on llink or plink pointing to the right local location.
-
+
$owner_address = substr($item['owner']['xchan_addr'],0,strpos($item['owner']['xchan_addr'],'@'));
$viewthread = $item['llink'];
if($conv->get_mode() === 'channel')
@@ -357,7 +357,7 @@ class ThreadItem {
$comment_count_txt = sprintf( tt('%d comment','%d comments',$total_children),$total_children );
$list_unseen_txt = (($unseen_comments) ? sprintf( t('%d unseen'),$unseen_comments) : '');
-
+
$children = $this->get_children();
$has_tags = (($body['tags'] || $body['categories'] || $body['mentions'] || $body['attachments'] || $body['folders']) ? true : false);
@@ -386,7 +386,7 @@ class ThreadItem {
$tmp_item = array(
'template' => $this->get_template(),
'mode' => $mode,
- 'item_type' => intval($item['item_type']),
+ 'item_type' => intval($item['item_type']),
//'type' => implode("",array_slice(explode("/",$item['verb']),-1)),
'body' => $body['html'],
'tags' => $body['tags'],
@@ -518,8 +518,8 @@ class ThreadItem {
// needed for scroll to comment from notification but needs more work
// as we do not want to open all comments unless there is actually an #item_xx anchor
-// and the url fragment is not sent to the server.
-// if(in_array(\App::$module,['display','update_display']))
+// and the url fragment is not sent to the server.
+// if(in_array(\App::$module,['display','update_display']))
// $visible_comments = 99999;
if(($this->get_display_mode() === 'normal') && ($nb_children > 0)) {
@@ -539,7 +539,7 @@ class ThreadItem {
}
}
}
-
+
$result['private'] = $item['item_private'];
$result['toplevel'] = ($this->is_toplevel() ? 'toplevel_item' : '');
@@ -554,7 +554,7 @@ class ThreadItem {
return $result;
}
-
+
public function get_id() {
return $this->get_data_value('id');
}
@@ -609,7 +609,7 @@ class ThreadItem {
if(activity_match($item->get_data_value('verb'),ACTIVITY_LIKE) || activity_match($item->get_data_value('verb'),ACTIVITY_DISLIKE)) {
return false;
}
-
+
$item->set_parent($this);
$this->children[] = $item;
return end($this->children);
@@ -683,7 +683,7 @@ class ThreadItem {
*/
public function set_conversation($conv) {
$previous_mode = ($this->conversation ? $this->conversation->get_mode() : '');
-
+
$this->conversation = $conv;
// Set it on our children too
@@ -792,7 +792,7 @@ class ThreadItem {
if(!$this->is_toplevel() && !get_config('system','thread_allow')) {
return '';
}
-
+
$comment_box = '';
$conv = $this->get_conversation();
@@ -808,7 +808,7 @@ class ThreadItem {
$arr = array('comment_buttons' => '','id' => $this->get_id());
call_hooks('comment_buttons',$arr);
$comment_buttons = $arr['comment_buttons'];
-
+
$comment_box = replace_macros($template,array(
'$return_path' => '',
'$threaded' => $this->is_threaded(),
@@ -865,7 +865,7 @@ class ThreadItem {
if($conv->get_mode() === 'channel')
return;
-
+
if($this->is_toplevel() && ($this->get_data_value('author_xchan') != $this->get_data_value('owner_xchan'))) {
$this->owner_url = chanlink_hash($this->data['owner']['xchan_hash']);
$this->owner_photo = $this->data['owner']['xchan_photo_m'];
diff --git a/Zotlabs/Lib/Verify.php b/Zotlabs/Lib/Verify.php
index 8703e29e6..f8dc8f8d4 100644
--- a/Zotlabs/Lib/Verify.php
+++ b/Zotlabs/Lib/Verify.php
@@ -5,7 +5,7 @@ namespace Zotlabs\Lib;
class Verify {
- function create($type,$channel_id,$token,$meta) {
+ public static function create($type,$channel_id,$token,$meta) {
return q("insert into verify ( vtype, channel, token, meta, created ) values ( '%s', %d, '%s', '%s', '%s' )",
dbesc($type),
intval($channel_id),
@@ -15,7 +15,7 @@ class Verify {
);
}
- function match($type,$channel_id,$token,$meta) {
+ public static function match($type,$channel_id,$token,$meta) {
$r = q("select id from verify where vtype = '%s' and channel = %d and token = '%s' and meta = '%s' limit 1",
dbesc($type),
intval($channel_id),
@@ -31,7 +31,7 @@ class Verify {
return false;
}
- function get_meta($type,$channel_id,$token) {
+ public static function get_meta($type,$channel_id,$token) {
$r = q("select id, meta from verify where vtype = '%s' and channel = %d and token = '%s' limit 1",
dbesc($type),
intval($channel_id),
@@ -52,7 +52,7 @@ class Verify {
* @param string $type Verify type
* @param string $interval SQL compatible time interval
*/
- function purge($type, $interval) {
+ public static function purge($type, $interval) {
q("delete from verify where vtype = '%s' and created < %s - INTERVAL %s",
dbesc($type),
db_utcnow(),
diff --git a/Zotlabs/Module/Acl.php b/Zotlabs/Module/Acl.php
index e0206bd43..fb95b0504 100644
--- a/Zotlabs/Module/Acl.php
+++ b/Zotlabs/Module/Acl.php
@@ -2,6 +2,8 @@
namespace Zotlabs\Module;
+use Zotlabs\Lib\Libzotdir;
+
require_once 'include/acl_selectors.php';
require_once 'include/group.php';
@@ -46,20 +48,20 @@ class Acl extends \Zotlabs\Web\Controller {
// 'a' => autocomplete connections (mod_connections, mod_poke, mod_sources, mod_photos)
// 'x' => nav search bar autocomplete (match any xchan)
// $_REQUEST['query'] contains autocomplete search text.
-
- // List of channels whose connections to also suggest,
+
+ // List of channels whose connections to also suggest,
// e.g. currently viewed channel or channels mentioned in a post
$extra_channels = (x($_REQUEST,'extra_channels') ? $_REQUEST['extra_channels'] : array());
-
+
// The different autocomplete libraries use different names for the search text
// parameter. Internally we'll use $search to represent the search text no matter
- // what request variable it was attached to.
-
+ // what request variable it was attached to.
+
if(array_key_exists('query',$_REQUEST)) {
$search = $_REQUEST['query'];
}
-
+
if( (! local_channel()) && (! in_array($type, [ 'x', 'c', 'f' ])))
killme();
@@ -68,7 +70,7 @@ class Acl extends \Zotlabs\Web\Controller {
if(in_array($type, [ 'm', 'a', 'c', 'f' ])) {
// These queries require permission checking. We'll create a simple array of xchan_hash for those with
- // the requisite permissions which we can check against.
+ // the requisite permissions which we can check against.
$x = q("select xchan from abconfig where chan = %d and cat = 'their_perms' and k = '%s' and v = '1'",
intval(local_channel()),
@@ -85,34 +87,34 @@ class Acl extends \Zotlabs\Web\Controller {
$sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc(punify($search)) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") ";
$sql_extra2_xchan = "AND ( xchan_name LIKE " . protect_sprintf( "'" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'" . dbesc(punify($search)) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") ";
- // This horrible mess is needed because position also returns 0 if nothing is found.
+ // This horrible mess is needed because position also returns 0 if nothing is found.
// Would be MUCH easier if it instead returned a very large value
- // Otherwise we could just
+ // Otherwise we could just
// order by LEAST(POSITION($search IN xchan_name),POSITION($search IN xchan_addr)).
- $order_extra2 = "CASE WHEN xchan_name LIKE "
- . protect_sprintf( "'%" . dbesc($search) . "%'" )
- . " then POSITION('" . protect_sprintf(dbesc($search))
+ $order_extra2 = "CASE WHEN xchan_name LIKE "
+ . protect_sprintf( "'%" . dbesc($search) . "%'" )
+ . " then POSITION('" . protect_sprintf(dbesc($search))
. "' IN xchan_name) else position('" . protect_sprintf(dbesc(punify($search))) . "' IN xchan_addr) end, ";
$sql_extra3 = "AND ( xchan_addr like " . protect_sprintf( "'%" . dbesc(punify($search)) . "%'" ) . " OR xchan_name like " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ) ";
-
+
}
else {
$sql_extra = $sql_extra2 = $sql_extra3 = "";
}
-
-
+
+
$groups = array();
$contacts = array();
-
+
if($type == '' || $type == 'g') {
// virtual groups based on private profile viewing ability
$r = q("select id, profile_guid, profile_name from profile where is_default = 0 and uid = %d",
intval(local_channel())
- );
+ );
if($r) {
foreach($r as $rv) {
$groups[] = array(
@@ -130,19 +132,19 @@ class Acl extends \Zotlabs\Web\Controller {
// Normal privacy groups
$r = q("SELECT pgrp.id, pgrp.hash, pgrp.gname
- FROM pgrp, pgrp_member
- WHERE pgrp.deleted = 0 AND pgrp.uid = %d
+ FROM pgrp, pgrp_member
+ WHERE pgrp.deleted = 0 AND pgrp.uid = %d
AND pgrp_member.gid = pgrp.id
$sql_extra
GROUP BY pgrp.id
- ORDER BY pgrp.gname
+ ORDER BY pgrp.gname
LIMIT %d OFFSET %d",
intval(local_channel()),
intval($count),
intval($start)
);
- if($r) {
+ if($r) {
foreach($r as $g){
// logger('acl: group: ' . $g['gname'] . ' members: ' . group_get_members_xchan($g['id']));
$groups[] = array(
@@ -157,10 +159,10 @@ class Acl extends \Zotlabs\Web\Controller {
}
}
}
-
+
if($type == '' || $type == 'c' || $type === 'f') {
- $extra_channels_sql = '';
+ $extra_channels_sql = '';
// Only include channels who allow the observer to view their connections
if($extra_channels) {
@@ -172,7 +174,7 @@ class Acl extends \Zotlabs\Web\Controller {
}
}
}
-
+
// Getting info from the abook is better for local users because it contains info about permissions
if(local_channel()) {
if($extra_channels_sql != '')
@@ -199,7 +201,7 @@ class Acl extends \Zotlabs\Web\Controller {
$r2 = array();
foreach($r1 as $rr) {
$x = atoken_xchan($rr);
- $r2[] = [
+ $r2[] = [
'id' => 'a' . $rr['atoken_id'] ,
'hash' => $x['xchan_hash'],
'name' => $x['xchan_name'],
@@ -211,12 +213,12 @@ class Acl extends \Zotlabs\Web\Controller {
'abook_self' => 0
];
}
- }
+ }
// add connections
-
- $r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms, xchan_pubforum, abook_flags, abook_self
- FROM abook left join xchan on abook_xchan = xchan_hash
+
+ $r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_network as net, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms, xchan_pubforum, abook_flags, abook_self
+ FROM abook left join xchan on abook_xchan = xchan_hash
WHERE (abook_channel = %d $extra_channels_sql) AND abook_blocked = 0 and abook_pending = 0 and xchan_deleted = 0 $sql_extra2 order by $order_extra2 xchan_name asc" ,
intval(local_channel())
);
@@ -225,28 +227,28 @@ class Acl extends \Zotlabs\Web\Controller {
}
else { // Visitors
- $r = q("SELECT xchan_hash as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags, 0 as abook_self
+ $r = q("SELECT xchan_hash as id, xchan_hash as hash, xchan_name as name, xchan_network as net, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags, 0 as abook_self
FROM xchan left join xlink on xlink_link = xchan_hash
WHERE xlink_xchan = '%s' AND xchan_deleted = 0 $sql_extra2_xchan order by $order_extra2 xchan_name asc" ,
dbesc(get_observer_hash())
);
-
+
// Find contacts of extra channels
// This is probably more complicated than it needs to be
if($extra_channels_sql) {
// Build a list of hashes that we got previously so we don't get them again
$known_hashes = array("'".get_observer_hash()."'");
if($r)
- foreach($r as $rr)
+ foreach($r as $rr)
$known_hashes[] = "'".$rr['hash']."'";
$known_hashes_sql = 'AND xchan_hash not in ('.join(',',$known_hashes).')';
-
- $r2 = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms, abook_flags, abook_self
- FROM abook left join xchan on abook_xchan = xchan_hash
+
+ $r2 = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_network as net, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms, abook_flags, abook_self
+ FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel IN ($extra_channels_sql) $known_hashes_sql AND abook_blocked = 0 and abook_pending = 0 and abook_hidden = 0 and xchan_deleted = 0 $sql_extra2 order by $order_extra2 xchan_name asc");
if($r2)
$r = array_merge($r,$r2);
-
+
// Sort accoring to match position, then alphabetically. This could be avoided if the above two SQL queries could be combined into one, and the sorting could be done on the SQl server (like in the case of a local user)
$matchpos = function($x) use($search) {
$namepos = strpos($x['name'],$search);
@@ -269,22 +271,22 @@ class Acl extends \Zotlabs\Web\Controller {
}
}
if((count($r) < 100) && $type == 'c') {
- $r2 = q("SELECT substr(xchan_hash,1,18) as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags, 0 as abook_self
- FROM xchan
+ $r2 = q("SELECT substr(xchan_hash,1,18) as id, xchan_hash as hash, xchan_name as name, xchan_network as net, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags, 0 as abook_self
+ FROM xchan
WHERE xchan_deleted = 0 and not xchan_network in ('rss','anon','unknown') $sql_extra2_xchan order by $order_extra2 xchan_name asc"
);
if($r2) {
$r = array_merge($r,$r2);
$r = unique_multidim_array($r,'hash');
- }
+ }
}
}
elseif($type == 'm') {
$r = array();
- $z = q("SELECT xchan_hash as hash, xchan_name as name, xchan_addr as nick, xchan_photo_s as micro, xchan_url as url
+ $z = q("SELECT xchan_hash as hash, xchan_name as name, xchan_network as net, xchan_addr as nick, xchan_photo_s as micro, xchan_url as url
FROM abook left join xchan on abook_xchan = xchan_hash
- WHERE abook_channel = %d
+ WHERE abook_channel = %d
and xchan_deleted = 0
and xchan_network IN ('zot', 'diaspora', 'friendica-over-diaspora')
$sql_extra3
@@ -298,18 +300,18 @@ class Acl extends \Zotlabs\Web\Controller {
}
}
}
-
+
}
elseif($type == 'a') {
-
- $r = q("SELECT abook_id as id, xchan_name as name, xchan_hash as hash, xchan_addr as nick, xchan_photo_s as micro, xchan_network as network, xchan_url as url, xchan_addr as attag , abook_their_perms FROM abook left join xchan on abook_xchan = xchan_hash
+
+ $r = q("SELECT abook_id as id, xchan_name as name, xchan_network as net, xchan_hash as hash, xchan_addr as nick, xchan_photo_s as micro, xchan_url as url, xchan_addr as attag , abook_their_perms FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d
and xchan_deleted = 0
$sql_extra3
ORDER BY xchan_name ASC ",
intval(local_channel())
);
-
+
}
elseif($type == 'x') {
$r = $this->navbar_complete($a);
@@ -323,7 +325,7 @@ class Acl extends \Zotlabs\Web\Controller {
);
}
}
-
+
$o = array(
'start' => $start,
'count' => $count,
@@ -334,27 +336,34 @@ class Acl extends \Zotlabs\Web\Controller {
}
else
$r = array();
-
+
if($r) {
+ $i = count($contacts);
+ $x = [];
foreach($r as $g) {
-
- if(in_array($g['network'],['rss','anon','unknown']) && ($type != 'a'))
+
+ if(in_array($g['net'],['rss','anon','unknown']) && ($type != 'a'))
continue;
$g['hash'] = urlencode($g['hash']);
-
+
if(! $g['nick']) {
$g['nick'] = $g['url'];
}
+ $clink = ($g['nick']) ? $g['nick'] : $g['url'];
+ $lkey = md5($clink);
+ if (! array_key_exists($lkey, $x))
+ $x[$lkey] = $i;
+
if(in_array($g['hash'],$permitted) && $type === 'f' && (! $noforums)) {
- $contacts[] = array(
+ $contacts[$i] = array(
"type" => "c",
"photo" => "images/twopeople.png",
"name" => $g['name'],
"id" => urlencode($g['id']),
"xid" => $g['hash'],
- "link" => (($g['nick']) ? $g['nick'] : $g['url']),
+ "link" => $clink,
"nick" => substr($g['nick'],0,strpos($g['nick'],'@')),
"self" => (intval($g['abook_self']) ? 'abook-self' : ''),
"taggable" => 'taggable',
@@ -362,24 +371,28 @@ class Acl extends \Zotlabs\Web\Controller {
);
}
if($type !== 'f') {
- $contacts[] = array(
- "type" => "c",
- "photo" => $g['micro'],
- "name" => $g['name'],
- "id" => urlencode($g['id']),
- "xid" => $g['hash'],
- "link" => (($g['nick']) ? $g['nick'] : $g['url']),
- "nick" => ((strpos($g['nick'],'@')) ? substr($g['nick'],0,strpos($g['nick'],'@')) : $g['nick']),
- "self" => (intval($g['abook_self']) ? 'abook-self' : ''),
- "taggable" => '',
- "label" => '',
- );
+ if (! array_key_exists($x[$lkey], $contacts) || ($contacts[$x[$lkey]]['net'] !== 'zot6' && ($g['net'] == 'zot6' || $g['net'] == 'zot'))) {
+ $contacts[$x[$lkey]] = array(
+ "type" => "c",
+ "photo" => $g['micro'],
+ "name" => $g['name'],
+ "id" => urlencode($g['id']),
+ "xid" => $g['hash'],
+ "link" => $clink,
+ "nick" => ((strpos($g['nick'],'@')) ? substr($g['nick'],0,strpos($g['nick'],'@')) : $g['nick']),
+ "self" => (intval($g['abook_self']) ? 'abook-self' : ''),
+ "taggable" => '',
+ "label" => '',
+ "net" => $g['net']
+ );
+ }
}
- }
+ $i++;
+ }
}
-
+
$items = array_merge($groups, $contacts);
-
+
$o = array(
'start' => $start,
'count' => $count,
@@ -393,50 +406,50 @@ class Acl extends \Zotlabs\Web\Controller {
function navbar_complete(&$a) {
-
+
// logger('navbar_complete');
-
+
if(observer_prohibited()) {
return;
}
-
+
$dirmode = intval(get_config('system','directory_mode'));
$search = ((x($_REQUEST,'search')) ? htmlentities($_REQUEST['search'],ENT_COMPAT,'UTF-8',false) : '');
if(! $search || mb_strlen($search) < 2)
return array();
-
+
$star = false;
$address = false;
-
+
if(substr($search,0,1) === '@')
$search = substr($search,1);
-
+
if(substr($search,0,1) === '*') {
$star = true;
$search = substr($search,1);
}
-
+
if(strpos($search,'@') !== false) {
$address = true;
}
-
+
if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
$url = z_root() . '/dirsearch';
}
-
+
if(! $url) {
require_once("include/dir_fns.php");
- $directory = find_upstream_directory($dirmode);
+ $directory = Libzotdir::find_upstream_directory($dirmode);
$url = $directory['url'] . '/dirsearch';
}
$token = get_config('system','realm_token');
-
+
$count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100);
if($url) {
$query = $url . '?f=' . (($token) ? '&t=' . urlencode($token) : '');
$query .= '&name=' . urlencode($search) . "&limit=$count" . (($address) ? '&address=' . urlencode(punify($search)) : '');
-
+
$x = z_fetch_url($query);
if($x['success']) {
$t = 0;
diff --git a/Zotlabs/Module/Attach.php b/Zotlabs/Module/Attach.php
index 0bf7689be..5f5779b51 100644
--- a/Zotlabs/Module/Attach.php
+++ b/Zotlabs/Module/Attach.php
@@ -1,4 +1,5 @@
<?php
+
namespace Zotlabs\Module;
use ZipArchive;
@@ -12,25 +13,24 @@ class Attach extends Controller {
function post() {
- $attach_ids = ((x($_REQUEST, 'attach_ids')) ? $_REQUEST['attach_ids'] : []);
+ $attach_ids = ((x($_REQUEST, 'attach_ids')) ? $_REQUEST['attach_ids'] : []);
$attach_path = ((x($_REQUEST, 'attach_path')) ? $_REQUEST['attach_path'] : '');
+ $channel_id = ((x($_REQUEST, 'channel_id')) ? intval($_REQUEST['channel_id']) : 0);
+ $channel = channelx_by_n($channel_id);
- $channel_id = ((x($_REQUEST, 'channel_id')) ? intval($_REQUEST['channel_id']) : 0);
- $channel = channelx_by_n($channel_id);
-
- if (! $channel) {
+ if (!$channel) {
notice(t('Channel not found.') . EOL);
return;
}
- $strip_str = '/cloud/' . $channel['channel_address'] . '/';
- $count = strlen($strip_str);
+ $strip_str = '/cloud/' . $channel['channel_address'] . '/';
+ $count = strlen($strip_str);
$attach_path = substr($attach_path, $count);
if ($attach_ids) {
$zip_dir = 'store/[data]/' . $channel['channel_address'] . '/tmp';
- if (! is_dir($zip_dir))
+ if (!is_dir($zip_dir))
mkdir($zip_dir, STORAGE_DEFAULT_PERMISSIONS, true);
$token = random_string(32);
@@ -48,14 +48,14 @@ class Attach extends Controller {
$meta = [
'zip_filename' => $zip_filename,
- 'zip_path' => $zip_path
+ 'zip_path' => $zip_path
];
Verify::create('zip_token', 0, $token, json_encode($meta));
json_return_and_die([
'success' => true,
- 'token' => $token
+ 'token' => $token
]);
}
@@ -64,25 +64,29 @@ class Attach extends Controller {
function get() {
- if(argc() < 2) {
- notice( t('Item not available.') . EOL);
+ if (argc() < 2) {
+ notice(t('Item not available.') . EOL);
return;
}
- if(argv(1) === 'download') {
+ $token = ((x($_REQUEST, 'token')) ? $_REQUEST['token'] : '');
- $token = ((x($_REQUEST, 'token')) ? $_REQUEST['token'] : '');
+ if (argv(1) === 'download') {
$meta = Verify::get_meta('zip_token', 0, $token);
+
+ if (!$meta)
+ killme();
+
$meta = json_decode($meta, true);
header('Content-Type: application/zip');
- header('Content-Disposition: attachment; filename="'. $meta['zip_filename'] . '"');
+ header('Content-Disposition: attachment; filename="' . $meta['zip_filename'] . '"');
header('Content-Length: ' . filesize($meta['zip_path']));
$istream = fopen($meta['zip_path'], 'rb');
$ostream = fopen('php://output', 'wb');
- if($istream && $ostream) {
- pipe_streams($istream,$ostream);
+ if ($istream && $ostream) {
+ pipe_streams($istream, $ostream);
fclose($istream);
fclose($ostream);
}
@@ -91,10 +95,10 @@ class Attach extends Controller {
killme();
}
- $r = attach_by_hash(argv(1),get_observer_hash(),((argc() > 2) ? intval(argv(2)) : 0));
+ $r = attach_by_hash(argv(1), get_observer_hash(), ((argc() > 2) ? intval(argv(2)) : 0));
- if(! $r['success']) {
- notice( $r['message'] . EOL);
+ if (!$r['success']) {
+ notice($r['message'] . EOL);
return;
}
@@ -102,28 +106,28 @@ class Attach extends Controller {
intval($r['data']['uid'])
);
- if(! $c)
+ if (!$c)
return;
- $unsafe_types = array('text/html','text/css','application/javascript');
+ $unsafe_types = array('text/html', 'text/css', 'application/javascript');
- if(in_array($r['data']['filetype'],$unsafe_types) && (! channel_codeallowed($r['data']['uid']))) {
- header('Content-Type: text/plain');
+ if (in_array($r['data']['filetype'], $unsafe_types) && (!channel_codeallowed($r['data']['uid']))) {
+ header('Content-Type: text/plain');
}
else {
header('Content-Type: ' . $r['data']['filetype']);
}
header('Content-Disposition: attachment; filename="' . $r['data']['filename'] . '"');
- if(intval($r['data']['os_storage'])) {
+ if (intval($r['data']['os_storage'])) {
$fname = $r['data']['content'];
- if(strpos($fname,'store') !== false)
- $istream = fopen($fname,'rb');
+ if (strpos($fname, 'store') !== false)
+ $istream = fopen($fname, 'rb');
else
- $istream = fopen('store/' . $c[0]['channel_address'] . '/' . $fname,'rb');
- $ostream = fopen('php://output','wb');
- if($istream && $ostream) {
- pipe_streams($istream,$ostream);
+ $istream = fopen('store/' . $c[0]['channel_address'] . '/' . $fname, 'rb');
+ $ostream = fopen('php://output', 'wb');
+ if ($istream && $ostream) {
+ pipe_streams($istream, $ostream);
fclose($istream);
fclose($ostream);
}
@@ -137,14 +141,14 @@ class Attach extends Controller {
public function zip_archive_handler($zip, $attach_ids, $attach_path, $pass = 1) {
$observer_hash = get_observer_hash();
- $single = ((count($attach_ids) == 1) ? true : false);
+ $single = ((count($attach_ids) == 1) ? true : false);
$download_name = 'download.zip';
- foreach($attach_ids as $attach_id) {
+ foreach ($attach_ids as $attach_id) {
$r = attach_by_id($attach_id, $observer_hash);
- if (! $r['success']) {
+ if (!$r['success']) {
continue;
}
@@ -155,8 +159,8 @@ class Attach extends Controller {
if ($attach_path) {
$strip_str = $attach_path . '/';
- $count = strlen($strip_str);
- $zip_path = substr($r['data']['display_path'], $count);
+ $count = strlen($strip_str);
+ $zip_path = substr($r['data']['display_path'], $count);
}
if ($r['data']['is_dir']) {
@@ -172,6 +176,8 @@ class Attach extends Controller {
else {
$file_path = $r['data']['content'];
$zip->addFile($file_path, $zip_path);
+ // compressing can be ressource intensive - just store the data
+ $zip->setCompressionName($zip_path, ZipArchive::CM_STORE);
}
}
diff --git a/Zotlabs/Module/Cal.php b/Zotlabs/Module/Cal.php
index 07bee38bd..65dba927b 100644
--- a/Zotlabs/Module/Cal.php
+++ b/Zotlabs/Module/Cal.php
@@ -37,8 +37,6 @@ class Cal extends Controller {
$observer = App::get_observer();
App::$data['observer'] = $observer;
- $observer_xchan = (($observer) ? $observer['xchan_hash'] : '');
-
head_set_icon(App::$data['channel']['xchan_photo_s']);
App::$page['htmlhead'] .= "<script> var profile_uid = " . ((App::$data['channel']) ? App::$data['channel']['channel_id'] : 0) . "; </script>" ;
@@ -159,10 +157,10 @@ class Cal extends Controller {
'timezone' => $tz,
'start'=> $start,
'end' => $end,
- 'drop' => $drop,
+ 'drop' => false,
'allDay' => (($rr['adjust']) ? 0 : 1),
'title' => html_entity_decode($rr['summary'], ENT_COMPAT, 'UTF-8'),
- 'editable' => $edit ? true : false,
+ 'editable' => false,
'item' => $rr,
'plink' => [$rr['plink'], t('Link to source')],
'description' => html_entity_decode($rr['description'], ENT_COMPAT, 'UTF-8'),
@@ -205,9 +203,9 @@ class Cal extends Controller {
'$prev' => t('Previous'),
'$next' => t('Next'),
'$today' => t('Today'),
- '$title' => $title,
- '$dtstart' => $dtstart,
- '$dtend' => $dtend,
+ '$title' => '',
+ '$dtstart' => '',
+ '$dtend' => '',
'$nick' => $nick
]);
diff --git a/Zotlabs/Module/Cdav.php b/Zotlabs/Module/Cdav.php
index f7e43e436..fe697a526 100644
--- a/Zotlabs/Module/Cdav.php
+++ b/Zotlabs/Module/Cdav.php
@@ -50,7 +50,7 @@ class Cdav extends Controller {
if($sigblock) {
$keyId = str_replace('acct:','',$sigblock['keyId']);
if($keyId) {
- $r = q("select * from hubloc where hubloc_addr = '%s'",
+ $r = q("select * from hubloc where hubloc_id_url = '%s'",
dbesc($keyId)
);
if($r) {
@@ -284,7 +284,7 @@ class Cdav extends Controller {
$server->addPlugin(new \Sabre\CardDAV\VCFExportPlugin());
// And off we go!
- $server->exec();
+ $server->start();
killme();
diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php
index 7ff394750..fe7341e52 100644
--- a/Zotlabs/Module/Channel.php
+++ b/Zotlabs/Module/Channel.php
@@ -25,7 +25,7 @@ class Channel extends Controller {
function init() {
- if(in_array(substr($_GET['search'],0,1),[ '@', '!', '?']))
+ if(in_array(substr($_GET['search'],0,1),[ '@', '!', '?']))
goaway('search' . '?f=&search=' . $_GET['search']);
$which = null;
@@ -56,10 +56,10 @@ class Channel extends Controller {
http_status_exit(404, 'Not found');
}
- // handle zot6 channel discovery
+ // handle zot6 channel discovery
if(Libzot::is_zot_request()) {
-
+
$sigdata = HTTPSig::verify(file_get_contents('php://input'), EMPTY_STR, 'zot6');
if($sigdata && $sigdata['signer'] && $sigdata['header_valid']) {
@@ -76,8 +76,8 @@ class Channel extends Controller {
$data = json_encode(Libzot::zotinfo([ 'address' => $channel['channel_address'] ]));
}
- $headers = [
- 'Content-Type' => 'application/x-zot+json',
+ $headers = [
+ 'Content-Type' => 'application/x-zot+json',
'Digest' => HTTPSig::generate_digest_header($data),
'(request-target)' => strtolower($_SERVER['REQUEST_METHOD']) . ' ' . $_SERVER['REQUEST_URI']
];
@@ -93,15 +93,15 @@ class Channel extends Controller {
$profile = argv(1);
}
- head_add_link( [
- 'rel' => 'alternate',
+ head_add_link( [
+ 'rel' => 'alternate',
'type' => 'application/atom+xml',
'title' => t('Posts and comments'),
'href' => z_root() . '/feed/' . $which
]);
- head_add_link( [
- 'rel' => 'alternate',
+ head_add_link( [
+ 'rel' => 'alternate',
'type' => 'application/atom+xml',
'title' => t('Only posts'),
'href' => z_root() . '/feed/' . $which . '?f=&top=1'
@@ -111,18 +111,18 @@ class Channel extends Controller {
// Run profile_load() here to make sure the theme is set before
// we start loading content
profile_load($which,$profile);
-
+
// Add Opengraph markup
$mid = ((x($_REQUEST,'mid')) ? $_REQUEST['mid'] : '');
if(strpos($mid,'b64.') === 0)
$mid = @base64url_decode(substr($mid,4));
-
+
if($mid)
$r = q("SELECT * FROM item WHERE mid = '%s' AND uid = %d AND item_private = 0 LIMIT 1",
dbesc($mid),
intval($channel['channel_id'])
);
-
+
opengraph_add_meta($r ? $r[0] : [], $channel);
}
@@ -233,7 +233,7 @@ class Channel extends Controller {
/**
* Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups
*/
-
+
$item_normal = " and item.item_hidden = 0 and item.item_type = 0 and item.item_deleted = 0
and item.item_unpublished = 0 and item.item_pending_remove = 0
and item.item_blocked = 0 ";
@@ -266,7 +266,7 @@ class Channel extends Controller {
}
}
- head_add_link([
+ head_add_link([
'rel' => 'alternate',
'type' => 'application/json+oembed',
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . App::$query_string),
@@ -333,12 +333,12 @@ class Channel extends Controller {
}
}
else {
- $r = q("SELECT DISTINCT item.parent AS item_id, $ordering FROM item
+ $r = q("SELECT DISTINCT item.parent AS item_id, $ordering FROM item
left join abook on ( item.author_xchan = abook.abook_xchan $abook_uids )
WHERE true and item.uid = %d $item_normal
AND (abook.abook_blocked = 0 or abook.abook_flags is null)
AND item.item_wall = 1 AND item.item_thread_top = 1
- $sql_extra $sql_extra2
+ $sql_extra $sql_extra2
ORDER BY $ordering DESC, item_id $pager_sql ",
intval(App::$profile['profile_uid'])
);
@@ -375,6 +375,15 @@ class Channel extends Controller {
$items = array();
}
+ // Add pinned content
+ if(! x($_REQUEST,'mid') && ! $search) {
+ $pinned = new \Zotlabs\Widget\Pinned;
+ $r = $pinned->widget(intval(App::$profile['profile_uid']), [ITEM_TYPE_POST]);
+ $o .= $r['html'];
+ }
+
+ $mode = (($search) ? 'search' : 'channel');
+
if((! $update) && (! $load)) {
if($decoded)
@@ -421,20 +430,11 @@ class Channel extends Controller {
'$net' => '',
'$dend' => $datequery,
'$dbegin' => $datequery2,
- '$conv_mode' => 'channel'
+ '$conv_mode' => 'channel',
+ '$page_mode' => $page_mode
));
-
}
- // Add pinned content
- if(! x($_REQUEST,'mid') && ! $search) {
- $pinned = new \Zotlabs\Widget\Pinned;
- $r = $pinned->widget(intval(App::$profile['profile_uid']), [ITEM_TYPE_POST]);
- $o .= $r['html'];
- }
-
- $mode = (($search) ? 'search' : 'channel');
-
if($update) {
$o .= conversation($items,$mode,$update,$page_mode);
}
diff --git a/Zotlabs/Module/Channel_calendar.php b/Zotlabs/Module/Channel_calendar.php
index ae4afb2f3..ac1545644 100644
--- a/Zotlabs/Module/Channel_calendar.php
+++ b/Zotlabs/Module/Channel_calendar.php
@@ -1,7 +1,12 @@
<?php
+
namespace Zotlabs\Module;
+use App;
+use Zotlabs\Web\Controller;
use Zotlabs\Lib\Libsync;
+use Zotlabs\Access\AccessList;
+use Zotlabs\Daemon\Master;
require_once('include/conversation.php');
require_once('include/bbcode.php');
@@ -10,37 +15,37 @@ require_once('include/event.php');
require_once('include/items.php');
require_once('include/html2plain.php');
-class Channel_calendar extends \Zotlabs\Web\Controller {
+class Channel_calendar extends Controller {
function post() {
-
- logger('post: ' . print_r($_REQUEST,true), LOGGER_DATA);
-
- if(! local_channel())
- return;
- $event_id = ((x($_POST,'event_id')) ? intval($_POST['event_id']) : 0);
- $event_hash = ((x($_POST,'event_hash')) ? $_POST['event_hash'] : '');
-
- $xchan = ((x($_POST,'xchan')) ? dbesc($_POST['xchan']) : '');
+ logger('post: ' . print_r($_REQUEST, true), LOGGER_DATA);
+
$uid = local_channel();
+ if (!$uid)
+ return;
+
+ $event_id = ((x($_POST, 'event_id')) ? intval($_POST['event_id']) : 0);
+
+ $xchan = ((x($_POST, 'xchan')) ? dbesc($_POST['xchan']) : '');
+
// only allow editing your own events.
- if(($xchan) && ($xchan !== get_observer_hash()))
+ if (($xchan) && ($xchan !== get_observer_hash()))
return;
$categories = escape_tags(trim($_POST['categories']));
-
+
// allday events have adjust = 0, normal events have adjust = 1
$adjust = intval($_POST['adjust']);
- $start = datetime_convert((($adjust) ? $tz : 'UTC'), 'UTC', escape_tags($_REQUEST['dtstart']));
- $finish = datetime_convert((($adjust) ? $tz : 'UTC'), 'UTC', escape_tags($_REQUEST['dtend']));
+ $timezone = ((x($_POST, 'timezone_select')) ? escape_tags(trim($_POST['timezone_select'])) : '');
+ $tz = (($timezone) ? $timezone : date_default_timezone_get());
- $timezone = ((x($_POST,'timezone_select')) ? escape_tags(trim($_POST['timezone_select'])) : '');
- $tz = (($timezone) ? $timezone : date_default_timezone_get());
+ $start = datetime_convert((($adjust) ? $tz : 'UTC'), 'UTC', escape_tags($_REQUEST['dtstart']));
+ $finish = datetime_convert((($adjust) ? $tz : 'UTC'), 'UTC', escape_tags($_REQUEST['dtend']));
- if(! $adjust)
+ if (!$adjust)
$tz = 'UTC';
$summary = escape_tags(trim($_POST['summary']));
@@ -52,88 +57,86 @@ class Channel_calendar extends \Zotlabs\Web\Controller {
// It won't hurt anything, but somebody will file a bug report
// and we'll waste a bunch of time responding to it. Time that
// could've been spent doing something else.
-
- if(strcmp($finish,$start) < 0 && !$nofinish) {
- notice( t('Event can not end before it has started.') . EOL);
- if(intval($_REQUEST['preview'])) {
- echo( t('Unable to generate preview.'));
+
+ if (strcmp($finish, $start) < 0) {
+ notice(t('Event can not end before it has started.') . EOL);
+ if (intval($_REQUEST['preview'])) {
+ echo(t('Unable to generate preview.'));
}
killme();
}
-
- if((! $summary) || (! $start)) {
- notice( t('Event title and start time are required.') . EOL);
- if(intval($_REQUEST['preview'])) {
- echo( t('Unable to generate preview.'));
+
+ if ((!$summary) || (!$start)) {
+ notice(t('Event title and start time are required.') . EOL);
+ if (intval($_REQUEST['preview'])) {
+ echo(t('Unable to generate preview.'));
}
killme();
}
- $channel = \App::get_channel();
-
- $acl = new \Zotlabs\Access\AccessList(false);
-
- if($event_id) {
+ $acl = new AccessList([]);
+
+ if ($event_id) {
$x = q("select * from event where id = %d and uid = %d limit 1",
intval($event_id),
- intval(local_channel())
+ intval($uid)
);
- if(! $x) {
- notice( t('Event not found.') . EOL);
- if(intval($_REQUEST['preview'])) {
- echo( t('Unable to generate preview.'));
+ if (!$x) {
+ notice(t('Event not found.') . EOL);
+ if (intval($_REQUEST['preview'])) {
+ echo(t('Unable to generate preview.'));
killme();
}
return;
}
-
+
$acl->set($x[0]);
-
+
$created = $x[0]['created'];
- $edited = datetime_convert();
+ $edited = datetime_convert();
}
else {
$created = $edited = datetime_convert();
$acl->set_from_array($_POST);
}
-
+
$post_tags = array();
- $channel = \App::get_channel();
- $ac = $acl->get();
+ $channel = App::get_channel();
+ $ac = $acl->get();
$str_contact_allow = $ac['allow_cid'];
$str_group_allow = $ac['allow_gid'];
- $str_contact_deny = $ac['deny_cid'];
- $str_group_deny = $ac['deny_gid'];
+ $str_contact_deny = $ac['deny_cid'];
+ $str_group_deny = $ac['deny_gid'];
$private = $acl->is_private();
require_once('include/text.php');
- $results = linkify_tags($desc, local_channel());
+ $results = linkify_tags($desc, $uid);
- if($results) {
+ if ($results) {
// Set permissions based on tag replacements
- set_linkified_perms($results, $str_contact_allow, $str_group_allow, local_channel(), false, $private);
+ set_linkified_perms($results, $str_contact_allow, $str_group_allow, $uid, false, $private);
- foreach($results as $result) {
+ foreach ($results as $result) {
$success = $result['success'];
- if($success['replaced']) {
+ if ($success['replaced']) {
$post_tags[] = array(
- 'uid' => local_channel(),
+ 'uid' => $uid,
'ttype' => $success['termtype'],
'otype' => TERM_OBJ_POST,
'term' => $success['term'],
'url' => $success['url']
- );
+ );
}
}
}
- if(strlen($categories)) {
- $cats = explode(',',$categories);
- foreach($cats as $cat) {
+ if (strlen($categories)) {
+ $cats = explode(',', $categories);
+ foreach ($cats as $cat) {
$post_tags[] = array(
- 'uid' => local_channel(),
+ 'uid' => $uid,
'ttype' => TERM_CATEGORY,
'otype' => TERM_OBJ_POST,
'term' => trim($cat),
@@ -141,175 +144,170 @@ class Channel_calendar extends \Zotlabs\Web\Controller {
);
}
}
-
- $datarray = array();
- $datarray['dtstart'] = $start;
- $datarray['dtend'] = $finish;
- $datarray['summary'] = $summary;
+
+ $datarray = array();
+ $datarray['dtstart'] = $start;
+ $datarray['dtend'] = $finish;
+ $datarray['summary'] = $summary;
$datarray['description'] = $desc;
- $datarray['location'] = $location;
- $datarray['etype'] = $type;
- $datarray['adjust'] = $adjust;
- $datarray['nofinish'] = 0;
- $datarray['uid'] = local_channel();
- $datarray['account'] = get_account_id();
+ $datarray['location'] = $location;
+ $datarray['etype'] = $type;
+ $datarray['adjust'] = $adjust;
+ $datarray['nofinish'] = 0;
+ $datarray['uid'] = $uid;
+ $datarray['account'] = get_account_id();
$datarray['event_xchan'] = $channel['channel_hash'];
- $datarray['allow_cid'] = $str_contact_allow;
- $datarray['allow_gid'] = $str_group_allow;
- $datarray['deny_cid'] = $str_contact_deny;
- $datarray['deny_gid'] = $str_group_deny;
- $datarray['private'] = intval($private);
- $datarray['id'] = $event_id;
- $datarray['created'] = $created;
- $datarray['edited'] = $edited;
- $datarray['timezone'] = $tz;
-
-
- if(intval($_REQUEST['preview'])) {
+ $datarray['allow_cid'] = $str_contact_allow;
+ $datarray['allow_gid'] = $str_group_allow;
+ $datarray['deny_cid'] = $str_contact_deny;
+ $datarray['deny_gid'] = $str_group_deny;
+ $datarray['private'] = intval($private);
+ $datarray['id'] = $event_id;
+ $datarray['created'] = $created;
+ $datarray['edited'] = $edited;
+ $datarray['timezone'] = $tz;
+
+
+ if (intval($_REQUEST['preview'])) {
$html = format_event_html($datarray);
echo $html;
killme();
}
-
+
$event = event_store_event($datarray);
-
- if($post_tags)
+
+ if ($post_tags)
$datarray['term'] = $post_tags;
-
- $item_id = event_store_item($datarray,$event);
-
- if($item_id) {
+
+ $item_id = event_store_item($datarray, $event);
+
+ if ($item_id) {
$r = q("select * from item where id = %d",
intval($item_id)
);
- if($r) {
+ if ($r) {
xchan_query($r);
$sync_item = fetch_post_tags($r);
- $z = q("select * from event where event_hash = '%s' and uid = %d limit 1",
+ $z = q("select * from event where event_hash = '%s' and uid = %d limit 1",
dbesc($r[0]['resource_id']),
intval($channel['channel_id'])
);
- if($z) {
- Libsync::build_sync_packet($channel['channel_id'],array('event_item' => array(encode_item($sync_item[0],true)),'event' => $z));
+ if ($z) {
+ Libsync::build_sync_packet($channel['channel_id'], array('event_item' => array(encode_item($sync_item[0], true)), 'event' => $z));
}
}
}
-
- \Zotlabs\Daemon\Master::Summon(array('Notifier','event',$item_id));
+
+ Master::Summon(array('Notifier', 'event', $item_id));
killme();
-
+
}
-
-
-
+
+
function get() {
-
- if(argc() > 2 && argv(1) == 'ical') {
+
+ if (argc() > 2 && argv(1) == 'ical') {
$event_id = argv(2);
-
+
require_once('include/security.php');
$sql_extra = permissions_sql(local_channel());
-
+
$r = q("select * from event where event_hash = '%s' $sql_extra limit 1",
dbesc($event_id)
);
- if($r) {
+ if ($r) {
header('Content-type: text/calendar');
- header('content-disposition: attachment; filename="' . t('event') . '-' . $event_id . '.ics"' );
+ header('content-disposition: attachment; filename="' . t('event') . '-' . $event_id . '.ics"');
echo ical_wrapper($r);
killme();
}
else {
- notice( t('Event not found.') . EOL );
+ notice(t('Event not found.') . EOL);
return;
}
}
-
- if(! local_channel()) {
- notice( t('Permission denied.') . EOL);
+
+ if (!local_channel()) {
+ notice(t('Permission denied.') . EOL);
return;
}
- if((argc() > 2) && (argv(1) === 'ignore') && intval(argv(2))) {
- $r = q("update event set dismissed = 1 where id = %d and uid = %d",
+ if ((argc() > 2) && (argv(1) === 'ignore') && intval(argv(2))) {
+ q("update event set dismissed = 1 where id = %d and uid = %d",
intval(argv(2)),
intval(local_channel())
);
}
-
- if((argc() > 2) && (argv(1) === 'unignore') && intval(argv(2))) {
- $r = q("update event set dismissed = 0 where id = %d and uid = %d",
+
+ if ((argc() > 2) && (argv(1) === 'unignore') && intval(argv(2))) {
+ q("update event set dismissed = 0 where id = %d and uid = %d",
intval(argv(2)),
intval(local_channel())
);
}
- $channel = \App::get_channel();
-
- $mode = 'view';
- $export = false;
- $ignored = ((x($_REQUEST,'ignored')) ? " and dismissed = " . intval($_REQUEST['ignored']) . " " : '');
+ $mode = 'view';
+ $export = false;
+ $ignored = ((x($_REQUEST, 'ignored')) ? " and dismissed = " . intval($_REQUEST['ignored']) . " " : '');
- if(argc() > 1) {
- if(argc() > 2 && argv(1) === 'add') {
- $mode = 'add';
+ if (argc() > 1) {
+ if (argc() > 2 && argv(1) === 'add') {
+ $mode = 'add';
$item_id = intval(argv(2));
}
- if(argc() > 2 && argv(1) === 'drop') {
- $mode = 'drop';
+ if (argc() > 2 && argv(1) === 'drop') {
+ $mode = 'drop';
$event_id = argv(2);
}
- if(argc() <= 2 && argv(1) === 'export') {
+ if (argc() <= 2 && argv(1) === 'export') {
$export = true;
}
- if(argc() > 2 && intval(argv(1)) && intval(argv(2))) {
+ if (argc() > 2 && intval(argv(1)) && intval(argv(2))) {
$mode = 'view';
}
- if(argc() <= 2) {
- $mode = 'view';
+ if (argc() <= 2) {
+ $mode = 'view';
$event_id = argv(1);
}
}
-
- if($mode === 'add') {
- event_addtocal($item_id,local_channel());
+
+ if ($mode === 'add') {
+ event_addtocal($item_id, local_channel());
killme();
}
-
- if($mode == 'view') {
-
+
+ if ($mode == 'view') {
+
/* edit/create form */
- if($event_id) {
- $r = q("SELECT * FROM event WHERE event_hash = '%s' AND uid = %d LIMIT 1",
+ if ($event_id) {
+ q("SELECT * FROM event WHERE event_hash = '%s' AND uid = %d LIMIT 1",
dbesc($event_id),
intval(local_channel())
);
- if(count($r))
- $orig_event = $r[0];
}
-
- $channel = \App::get_channel();
- if (argv(1) === 'json'){
- if (x($_GET,'start')) $start = $_GET['start'];
- if (x($_GET,'end')) $finish = $_GET['end'];
+ $channel = App::get_channel();
+
+ if (argv(1) === 'json') {
+ if (x($_GET, 'start')) $start = $_GET['start'];
+ if (x($_GET, 'end')) $finish = $_GET['end'];
}
-
- $start = datetime_convert('UTC','UTC',$start);
- $finish = datetime_convert('UTC','UTC',$finish);
- $adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start);
+
+ $start = datetime_convert('UTC', 'UTC', $start);
+ $finish = datetime_convert('UTC', 'UTC', $finish);
+ $adjust_start = datetime_convert('UTC', date_default_timezone_get(), $start);
$adjust_finish = datetime_convert('UTC', date_default_timezone_get(), $finish);
- if (x($_GET,'id')){
- $r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan, item.id as item_id
+ if (x($_GET, 'id')) {
+ $r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan, item.id as item_id
from event left join item on item.resource_id = event.event_hash
where item.resource_type = 'event' and event.uid = %d and event.id = %d limit 1",
intval(local_channel()),
intval($_GET['id'])
);
}
- elseif($export) {
+ elseif ($export) {
$r = q("SELECT event.*, item.id as item_id
from event left join item on item.resource_id = event.event_hash
where event.uid = %d and event.dtstart > '%s' and event.dtend > event.dtstart",
@@ -335,104 +333,105 @@ class Channel_calendar extends \Zotlabs\Web\Controller {
dbesc($adjust_finish)
);
}
-
- if($r && ! $export) {
+
+ if ($r && !$export) {
xchan_query($r);
- $r = fetch_post_tags($r,true);
+ $r = fetch_post_tags($r, true);
$r = sort_by_date($r);
}
$events = [];
- if($r) {
-
- foreach($r as $rr) {
+ if ($r) {
+
+ foreach ($r as $rr) {
$start = (($rr['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $rr['dtstart'], 'c') : datetime_convert('UTC', 'UTC', $rr['dtstart'], 'c'));
- if ($rr['nofinish']){
+ if ($rr['nofinish']) {
$end = null;
- } else {
+ }
+ else {
$end = (($rr['adjust']) ? datetime_convert('UTC', date_default_timezone_get(), $rr['dtend'], 'c') : datetime_convert('UTC', 'UTC', $rr['dtend'], 'c'));
}
- $catsenabled = feature_enabled(local_channel(),'categories');
- $categories = '';
- if($catsenabled){
- if($rr['term']) {
+ $catsenabled = feature_enabled(local_channel(), 'categories');
+ $categories = '';
+ if ($catsenabled) {
+ if ($rr['term']) {
$cats = get_terms_oftype($rr['term'], TERM_CATEGORY);
foreach ($cats as $cat) {
- if(strlen($categories))
+ if (strlen($categories))
$categories .= ', ';
$categories .= $cat['term'];
}
}
}
- $edit = ((local_channel() && $rr['author_xchan'] == get_observer_hash()) ? array(z_root().'/events/'.$rr['event_hash'].'?expandform=1',t('Edit event'),'','') : false);
-
- $drop = array(z_root().'/events/drop/'.$rr['event_hash'],t('Delete event'),'','');
-
+ $edit = ((local_channel() && $rr['author_xchan'] == get_observer_hash()) ? array(z_root() . '/events/' . $rr['event_hash'] . '?expandform=1', t('Edit event'), '', '') : false);
+
+ $drop = array(z_root() . '/events/drop/' . $rr['event_hash'], t('Delete event'), '', '');
+
$tz = get_iconfig($rr, 'event', 'timezone');
- if(! $tz)
+ if (!$tz)
$tz = 'UTC';
$events[] = array(
'calendar_id' => 'channel_calendar',
- 'rw' => true,
- 'id'=>$rr['id'],
- 'uri' => $rr['event_hash'],
- 'timezone' => $tz,
- 'start'=> $start,
- 'end' => $end,
- 'drop' => $drop,
- 'allDay' => (($rr['adjust']) ? 0 : 1),
- 'title' => html_entity_decode($rr['summary'], ENT_COMPAT, 'UTF-8'),
- 'editable' => $edit ? true : false,
- 'item' => $rr,
- 'plink' => [$rr['plink'], t('Link to source')],
+ 'rw' => true,
+ 'id' => $rr['id'],
+ 'uri' => $rr['event_hash'],
+ 'timezone' => $tz,
+ 'start' => $start,
+ 'end' => $end,
+ 'drop' => $drop,
+ 'allDay' => (($rr['adjust']) ? 0 : 1),
+ 'title' => html_entity_decode($rr['summary'], ENT_COMPAT, 'UTF-8'),
+ 'editable' => $edit ? true : false,
+ 'item' => $rr,
+ 'plink' => [$rr['plink'], t('Link to source')],
'description' => html_entity_decode($rr['description'], ENT_COMPAT, 'UTF-8'),
- 'location' => html_entity_decode($rr['location'], ENT_COMPAT, 'UTF-8'),
- 'allow_cid' => expand_acl($rr['allow_cid']),
- 'allow_gid' => expand_acl($rr['allow_gid']),
- 'deny_cid' => expand_acl($rr['deny_cid']),
- 'deny_gid' => expand_acl($rr['deny_gid']),
- 'categories' => $categories
+ 'location' => html_entity_decode($rr['location'], ENT_COMPAT, 'UTF-8'),
+ 'allow_cid' => expand_acl($rr['allow_cid']),
+ 'allow_gid' => expand_acl($rr['allow_gid']),
+ 'deny_cid' => expand_acl($rr['deny_cid']),
+ 'deny_gid' => expand_acl($rr['deny_gid']),
+ 'categories' => $categories
);
}
}
-
- if($export) {
+
+ if ($export) {
header('Content-type: text/calendar');
- header('content-disposition: attachment; filename="' . t('calendar') . '-' . $channel['channel_address'] . '.ics"' );
+ header('content-disposition: attachment; filename="' . t('calendar') . '-' . $channel['channel_address'] . '.ics"');
echo ical_wrapper($r);
killme();
}
- if (\App::$argv[1] === 'json'){
+ if (App::$argv[1] === 'json') {
json_return_and_die($events);
}
}
-
- if($mode === 'drop' && $event_id) {
+
+ if ($mode === 'drop' && $event_id) {
$r = q("SELECT * FROM event WHERE event_hash = '%s' AND uid = %d LIMIT 1",
dbesc($event_id),
intval(local_channel())
);
-
+
$sync_event = $r[0];
-
- if($r) {
+
+ if ($r) {
$r = q("delete from event where event_hash = '%s' and uid = %d",
dbesc($event_id),
intval(local_channel())
);
- if($r) {
+ if ($r) {
$sync_event['event_deleted'] = 1;
- Libsync::build_sync_packet(0,array('event' => array($sync_event)));
+ Libsync::build_sync_packet(0, array('event' => array($sync_event)));
$i = q("select * from item where resource_type = 'event' and resource_id = '%s' and uid = %d",
dbesc($event_id),
@@ -441,11 +440,11 @@ class Channel_calendar extends \Zotlabs\Web\Controller {
if ($i) {
- $can_delete = false;
+ $can_delete = false;
$local_delete = true;
$ob_hash = get_observer_hash();
- if($ob_hash && ($ob_hash === $i[0]['author_xchan'] || $ob_hash === $i[0]['owner_xchan'] || $ob_hash === $i[0]['source_xchan'])) {
+ if ($ob_hash && ($ob_hash === $i[0]['author_xchan'] || $ob_hash === $i[0]['owner_xchan'] || $ob_hash === $i[0]['source_xchan'])) {
$can_delete = true;
}
@@ -453,49 +452,49 @@ class Channel_calendar extends \Zotlabs\Web\Controller {
// If the item originated on this site+channel the deletion will propagate downstream.
// Otherwise just the local copy is removed.
- if(is_site_admin()) {
+ if (is_site_admin()) {
$local_delete = true;
- if(intval($i[0]['item_origin']))
+ if (intval($i[0]['item_origin']))
$can_delete = true;
}
- if($can_delete || $local_delete) {
+ if ($can_delete || $local_delete) {
// if this is a different page type or it's just a local delete
// but not by the item author or owner, do a simple deletion
- $complex = false;
+ $complex = false;
- if(intval($i[0]['item_type']) || ($local_delete && (! $can_delete))) {
+ if (intval($i[0]['item_type']) || ($local_delete && (!$can_delete))) {
drop_item($i[0]['id']);
}
else {
// complex deletion that needs to propagate and be performed in phases
- drop_item($i[0]['id'],true,DROPITEM_PHASE1);
+ drop_item($i[0]['id'], true, DROPITEM_PHASE1);
$complex = true;
}
$ii = q("select * from item where id = %d",
intval($i[0]['id'])
);
- if($ii) {
+ if ($ii) {
xchan_query($ii);
$sync_item = fetch_post_tags($ii);
- Libsync::build_sync_packet($i[0]['uid'],array('item' => array(encode_item($sync_item[0],true))));
+ Libsync::build_sync_packet($i[0]['uid'], array('item' => array(encode_item($sync_item[0], true))));
}
- if($complex) {
- tag_deliver($i[0]['uid'],$i[0]['id']);
+ if ($complex) {
+ tag_deliver($i[0]['uid'], $i[0]['id']);
}
}
}
killme();
}
- notice( t('Failed to remove event' ) . EOL);
+ notice(t('Failed to remove event') . EOL);
killme();
}
}
-
+
}
-
+
}
diff --git a/Zotlabs/Module/Chanview.php b/Zotlabs/Module/Chanview.php
index 12e1891d4..8ae4841b4 100644
--- a/Zotlabs/Module/Chanview.php
+++ b/Zotlabs/Module/Chanview.php
@@ -70,7 +70,7 @@ class Chanview extends \Zotlabs\Web\Controller {
$zf = Zotfinger::exec($_REQUEST['url'], null);
if(array_path_exists('signature/signer',$zf) && $zf['signature']['signer'] === $_REQUEST['url'] && intval($zf['signature']['header_valid'])) {
- Libzot::import_xchan($j);
+ Libzot::import_xchan($zf['data']);
$r = q("select * from xchan where xchan_url = '%s'",
dbesc($_REQUEST['url'])
);
diff --git a/Zotlabs/Module/Cloud.php b/Zotlabs/Module/Cloud.php
index 39ae0f92f..3d1b97980 100644
--- a/Zotlabs/Module/Cloud.php
+++ b/Zotlabs/Module/Cloud.php
@@ -105,7 +105,7 @@ class Cloud extends Controller {
// All we need to do now, is to fire up the server
- $server->exec();
+ $server->start();
if($browser->build_page)
construct_page();
diff --git a/Zotlabs/Module/Connections.php b/Zotlabs/Module/Connections.php
index 7dc301623..5025f4e22 100644
--- a/Zotlabs/Module/Connections.php
+++ b/Zotlabs/Module/Connections.php
@@ -109,6 +109,7 @@ class Connections extends \Zotlabs\Web\Controller {
case 'all':
$head = t('All');
+ break;
default:
$search_flags = " and abook_blocked = 0 and abook_ignored = 0 and abook_hidden = 0 and abook_archived = 0 and abook_not_here = 0 ";
$active = true;
@@ -238,7 +239,7 @@ class Connections extends \Zotlabs\Web\Controller {
}
$r = q("SELECT COUNT(abook.abook_id) AS total FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
- where abook_channel = %d and abook_self = 0 and xchan_deleted = 0 and xchan_orphan = 0 $sql_extra $sql_extra2 ",
+ where abook_channel = %d and abook_self = 0 and xchan_deleted = 0 and xchan_orphan = 0 $sql_extra ",
intval(local_channel())
);
if($r) {
@@ -247,7 +248,7 @@ class Connections extends \Zotlabs\Web\Controller {
}
$r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
- WHERE abook_channel = %d and abook_self = 0 and xchan_deleted = 0 and xchan_orphan = 0 $sql_extra $sql_extra2 ORDER BY $sql_order LIMIT %d OFFSET %d ",
+ WHERE abook_channel = %d and abook_self = 0 and xchan_deleted = 0 and xchan_orphan = 0 $sql_extra ORDER BY $sql_order LIMIT %d OFFSET %d ",
intval(local_channel()),
intval(App::$pager['itemspage']),
intval(App::$pager['start'])
diff --git a/Zotlabs/Module/Connedit.php b/Zotlabs/Module/Connedit.php
index becf8460d..582563451 100644
--- a/Zotlabs/Module/Connedit.php
+++ b/Zotlabs/Module/Connedit.php
@@ -32,10 +32,10 @@ class Connedit extends Controller {
*/
function init() {
-
+
if(! local_channel())
return;
-
+
if((argc() >= 2) && intval(argv(1))) {
$r = q("SELECT abook.*, xchan.*
FROM abook left join xchan on abook_xchan = xchan_hash
@@ -47,54 +47,54 @@ class Connedit extends Controller {
App::$poi = array_shift($r);
}
}
-
+
$channel = App::get_channel();
if($channel)
head_set_icon($channel['xchan_photo_s']);
-
+
}
-
+
/* @brief Evaluate posted values and set changes
*
*/
-
+
function post() {
-
+
if(! local_channel())
return;
-
+
$contact_id = intval(argv(1));
if(! $contact_id)
return;
-
+
$channel = App::get_channel();
-
+
// TODO if configured for hassle-free permissions, we'll post the form with ajax as soon as the
// connection enable is toggled to a special autopost url and set permissions immediately, leaving
// the other form elements alone pending a manual submit of the form. The downside is that there
// will be a window of opportunity when the permissions have been set but before you've had a chance
// to review and possibly restrict them. The upside is we won't have to warn you that your connection
// can't do anything until you save the bloody form.
-
+
$autopost = (((argc() > 2) && (argv(2) === 'auto')) ? true : false);
-
+
$orig_record = q("SELECT * FROM abook WHERE abook_id = %d AND abook_channel = %d LIMIT 1",
intval($contact_id),
intval(local_channel())
);
-
+
if(! $orig_record) {
notice( t('Could not access contact record.') . EOL);
goaway(z_root() . '/connections');
return; // NOTREACHED
}
-
+
call_hooks('contact_edit_post', $_POST);
-
+
$vc = get_abconfig(local_channel(),$orig_record['abook_xchan'],'system','vcard');
- $vcard = (($vc) ? \Sabre\VObject\Reader::read($vc) : null);
+ $vcard = (($vc) ? \Sabre\VObject\Reader::read($vc) : null);
$serialised_vcard = update_vcard($_REQUEST,$vcard);
if($serialised_vcard)
set_abconfig(local_channel(),$orig_record[0]['abook_xchan'],'system','vcard',$serialised_vcard);
@@ -107,8 +107,8 @@ class Connedit extends Controller {
$autoperms = null;
$is_self = false;
}
-
-
+
+
$profile_id = ((array_key_exists('profile_assign',$_POST)) ? $_POST['profile_assign'] : $orig_record[0]['abook_profile']);
if($profile_id) {
@@ -121,17 +121,17 @@ class Connedit extends Controller {
return;
}
}
-
+
$abook_incl = ((array_key_exists('abook_incl',$_POST)) ? escape_tags($_POST['abook_incl']) : $orig_record[0]['abook_incl']);
$abook_excl = ((array_key_exists('abook_excl',$_POST)) ? escape_tags($_POST['abook_excl']) : $orig_record[0]['abook_excl']);
$hidden = intval($_POST['hidden']);
-
+
$priority = intval($_POST['poll']);
if($priority > 5 || $priority < 0)
$priority = 0;
-
+
if(! array_key_exists('closeness',$_POST)) {
$_POST['closeness'] = 80;
}
@@ -139,15 +139,15 @@ class Connedit extends Controller {
if($closeness < 0 || $closeness > 99) {
$closeness = 80;
}
-
+
$rating = intval($_POST['rating']);
if($rating < (-10))
$rating = (-10);
if($rating > 10)
$rating = 10;
-
+
$rating_text = trim(escape_tags($_REQUEST['rating_text']));
-
+
$all_perms = Permissions::Perms();
if($all_perms) {
@@ -168,27 +168,27 @@ class Connedit extends Controller {
}
}
- if(! is_null($autoperms))
+ if(! is_null($autoperms))
set_pconfig($channel['channel_id'],'system','autoperms',$autoperms);
-
+
$new_friend = false;
-
+
// only store a record and notify the directory if the rating changed
if(! $is_self) {
-
+
$signed = $orig_record[0]['abook_xchan'] . '.' . $rating . '.' . $rating_text;
$sig = base64url_encode(rsa_sign($signed,$channel['channel_prvkey']));
$rated = ((intval($rating) || strlen($rating_text)) ? true : false);
-
+
$record = 0;
-
+
$z = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' and xlink_static = 1 limit 1",
dbesc($channel['channel_hash']),
dbesc($orig_record[0]['abook_xchan'])
);
-
+
if($z) {
if(($z[0]['xlink_rating'] != $rating) || ($z[0]['xlink_rating_text'] != $rating_text)) {
$record = $z[0]['xlink_id'];
@@ -223,18 +223,18 @@ class Connedit extends Controller {
Master::Summon(array('Ratenotif','rating',$record));
}
}
-
+
if(($_REQUEST['pending']) && intval($orig_record[0]['abook_pending'])) {
$new_friend = true;
-
+
// @fixme it won't be common, but when you accept a new connection request
// the permissions will now be that of your permissions role and ignore
// any you may have set manually on the form. We'll probably see a bug if somebody
// tries to set the permissions *and* approve the connection in the same
// request. The workaround is to approve the connection, then go back and
// adjust permissions as desired.
-
+
$p = Permissions::connect_perms(local_channel());
$my_perms = $p['perms'];
if($my_perms) {
@@ -247,7 +247,7 @@ class Connedit extends Controller {
$abook_pending = (($new_friend) ? 0 : $orig_record[0]['abook_pending']);
-
+
$r = q("UPDATE abook SET abook_profile = '%s', abook_closeness = %d, abook_pending = %d,
abook_incl = '%s', abook_excl = '%s'
where abook_id = %d AND abook_channel = %d",
@@ -259,7 +259,7 @@ class Connedit extends Controller {
intval($contact_id),
intval(local_channel())
);
-
+
if($r)
info( t('Connection updated.') . EOL);
else
@@ -267,16 +267,16 @@ class Connedit extends Controller {
if(! intval(App::$poi['abook_self'])) {
if($new_friend) {
- Master::Summon( [ 'Notifier', 'permission_accept', $contact_id ] );
+ Master::Summon( [ 'Notifier', 'permission_accept', $contact_id ] );
}
- Master::Summon( [
- 'Notifier',
- (($new_friend) ? 'permission_create' : 'permission_update'),
- $contact_id
+ Master::Summon( [
+ 'Notifier',
+ (($new_friend) ? 'permission_create' : 'permission_update'),
+ $contact_id
]);
}
-
+
if($new_friend) {
$default_group = $channel['channel_default_group'];
if($default_group) {
@@ -285,11 +285,11 @@ class Connedit extends Controller {
if($g)
group_add_member(local_channel(),'',App::$poi['abook_xchan'],$g['id']);
}
-
+
// Check if settings permit ("post new friend activity" is allowed, and
// friends in general or this friend in particular aren't hidden)
// and send out a new friend activity
-
+
$pr = q("select * from profile where uid = %d and is_default = 1 and hide_friends = 0",
intval($channel['channel_id'])
);
@@ -305,23 +305,23 @@ class Connedit extends Controller {
$xarr['deny_cid'] = $channel['channel_deny_cid'];
$xarr['deny_gid'] = $channel['channel_deny_gid'];
$xarr['item_private'] = (($xarr['allow_cid']||$xarr['allow_gid']||$xarr['deny_cid']||$xarr['deny_gid']) ? 1 : 0);
-
+
$xarr['body'] = '[zrl=' . $channel['xchan_url'] . ']' . $channel['xchan_name'] . '[/zrl]' . ' ' . t('is now connected to') . ' ' . '[zrl=' . App::$poi['xchan_url'] . ']' . App::$poi['xchan_name'] . '[/zrl]';
-
+
$xarr['body'] .= "\n\n\n" . '[zrl=' . App::$poi['xchan_url'] . '][zmg=80x80]' . App::$poi['xchan_photo_m'] . '[/zmg][/zrl]';
-
+
post_activity_item($xarr);
-
+
}
-
-
+
+
// pull in a bit of content if there is any to pull in
Master::Summon(array('Onepoll',$contact_id));
-
+
}
-
+
// Refresh the structure in memory with the new data
-
+
$r = q("SELECT abook.*, xchan.*
FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d and abook_id = %d LIMIT 1",
@@ -331,34 +331,34 @@ class Connedit extends Controller {
if($r) {
App::$poi = $r[0];
}
-
+
if($new_friend) {
$arr = array('channel_id' => local_channel(), 'abook' => App::$poi);
call_hooks('accept_follow', $arr);
}
-
+
$this->connedit_clone($a);
-
+
if(($_REQUEST['pending']) && (!$_REQUEST['done']))
goaway(z_root() . '/connections/ifpending');
-
+
return;
-
+
}
-
+
/* @brief Clone connection
*
*
*/
-
+
function connedit_clone(&$a) {
-
+
if(! App::$poi)
return;
-
-
+
+
$channel = App::get_channel();
-
+
$r = q("SELECT abook.*, xchan.*
FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d and abook_id = %d LIMIT 1",
@@ -368,40 +368,40 @@ class Connedit extends Controller {
if($r) {
App::$poi = array_shift($r);
}
-
+
$clone = App::$poi;
-
+
unset($clone['abook_id']);
unset($clone['abook_account']);
unset($clone['abook_channel']);
-
+
$abconfig = load_abconfig($channel['channel_id'],$clone['abook_xchan']);
if($abconfig)
$clone['abconfig'] = $abconfig;
-
+
Libsync::build_sync_packet(0 /* use the current local_channel */, array('abook' => array($clone)));
}
-
+
/* @brief Generate content of connection edit page
*
*
*/
-
+
function get() {
-
+
$sort_type = 0;
$o = '';
-
+
if(! local_channel()) {
notice( t('Permission denied.') . EOL);
return login();
}
-
+
$section = ((array_key_exists('section',$_REQUEST)) ? $_REQUEST['section'] : '');
$channel = App::get_channel();
-
+
$yes_no = array(t('No'),t('Yes'));
-
+
$connect_perms = Permissions::connect_perms(local_channel());
$o .= "<script>function connectDefaultShare() {
@@ -415,13 +415,13 @@ class Connedit extends Controller {
}
}
$o .= " }\n</script>\n";
-
+
if(argc() == 3) {
-
+
$contact_id = intval(argv(1));
if(! $contact_id)
return;
-
+
$cmd = argv(2);
$orig_record = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash
@@ -429,17 +429,17 @@ class Connedit extends Controller {
intval($contact_id),
intval(local_channel())
);
-
+
if(! count($orig_record)) {
notice( t('Could not access address book record.') . EOL);
goaway(z_root() . '/connections');
}
-
+
if($cmd === 'update') {
// pull feed and consume it, which should subscribe to the hub.
Master::Summon(array('Poller',$contact_id));
goaway(z_root() . '/connedit/' . $contact_id);
-
+
}
if($cmd === 'fetchvc') {
@@ -474,7 +474,7 @@ class Connedit extends Controller {
dbesc($orig_record[0]['xchan_hash'])
);
$cmd = 'refresh';
- }
+ }
if($cmd === 'refresh') {
if($orig_record[0]['xchan_network'] === 'zot') {
@@ -486,13 +486,13 @@ class Connedit extends Controller {
notice( t('Refresh failed - channel is currently unavailable.') );
}
else {
-
+
// if you are on a different network we'll force a refresh of the connection basic info
Master::Summon(array('Notifier','permission_update',$contact_id));
}
goaway(z_root() . '/connedit/' . $contact_id);
}
-
+
if($cmd === 'block') {
if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_BLOCKED)) {
$this->connedit_clone($a);
@@ -501,7 +501,7 @@ class Connedit extends Controller {
notice(t('Unable to set address book parameters.') . EOL);
goaway(z_root() . '/connedit/' . $contact_id);
}
-
+
if($cmd === 'ignore') {
if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_IGNORED)) {
$this->connedit_clone($a);
@@ -510,7 +510,7 @@ class Connedit extends Controller {
notice(t('Unable to set address book parameters.') . EOL);
goaway(z_root() . '/connedit/' . $contact_id);
}
-
+
if($cmd === 'archive') {
if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_ARCHIVED)) {
$this->connedit_clone($a);
@@ -519,7 +519,7 @@ class Connedit extends Controller {
notice(t('Unable to set address book parameters.') . EOL);
goaway(z_root() . '/connedit/' . $contact_id);
}
-
+
if($cmd === 'hide') {
if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_HIDDEN)) {
$this->connedit_clone($a);
@@ -528,10 +528,10 @@ class Connedit extends Controller {
notice(t('Unable to set address book parameters.') . EOL);
goaway(z_root() . '/connedit/' . $contact_id);
}
-
+
// We'll prevent somebody from unapproving an already approved contact.
// Though maybe somebody will want this eventually (??)
-
+
if($cmd === 'approve') {
if(intval($orig_record[0]['abook_pending'])) {
if(abook_toggle_flag($orig_record[0],ABOOK_FLAG_PENDING)) {
@@ -542,10 +542,10 @@ class Connedit extends Controller {
}
goaway(z_root() . '/connedit/' . $contact_id);
}
-
-
+
+
if($cmd === 'drop') {
-
+
contact_remove(local_channel(), $orig_record[0]['abook_id']);
Master::Summon( [ 'Notifier', 'purge', local_channel(), $orig_record[0]['xchan_hash'] ] );
@@ -556,17 +556,17 @@ class Connedit extends Controller {
'entry_deleted' => true))
)
);
-
+
info( t('Connection has been removed.') . EOL );
if(x($_SESSION,'return_url'))
goaway(z_root() . '/' . $_SESSION['return_url']);
goaway(z_root() . '/contacts');
-
+
}
}
-
+
if(App::$poi) {
-
+
$abook_prev = 0;
$abook_next = 0;
@@ -595,14 +595,14 @@ class Connedit extends Controller {
}
$tools = array(
-
+
'view' => array(
'label' => t('View Profile'),
'url' => chanlink_cid($contact['abook_id']),
'sel' => '',
'title' => sprintf( t('View %s\'s profile'), $contact['xchan_name']),
),
-
+
'refresh' => array(
'label' => t('Refresh Permissions'),
'url' => z_root() . '/connedit/' . $contact['abook_id'] . '/refresh',
@@ -616,14 +616,14 @@ class Connedit extends Controller {
'sel' => '',
'title' => t('Fetch updated photo'),
),
-
+
'recent' => array(
'label' => t('Recent Activity'),
'url' => z_root() . '/network/?f=&cid=' . $contact['abook_id'],
'sel' => '',
'title' => t('View recent posts and comments'),
),
-
+
'block' => array(
'label' => (intval($contact['abook_blocked']) ? t('Unblock') : t('Block')),
'url' => z_root() . '/connedit/' . $contact['abook_id'] . '/block',
@@ -631,7 +631,7 @@ class Connedit extends Controller {
'title' => t('Block (or Unblock) all communications with this connection'),
'info' => (intval($contact['abook_blocked']) ? t('This connection is blocked!') : ''),
),
-
+
'ignore' => array(
'label' => (intval($contact['abook_ignored']) ? t('Unignore') : t('Ignore')),
'url' => z_root() . '/connedit/' . $contact['abook_id'] . '/ignore',
@@ -639,7 +639,7 @@ class Connedit extends Controller {
'title' => t('Ignore (or Unignore) all inbound communications from this connection'),
'info' => (intval($contact['abook_ignored']) ? t('This connection is ignored!') : ''),
),
-
+
'archive' => array(
'label' => (intval($contact['abook_archived']) ? t('Unarchive') : t('Archive')),
'url' => z_root() . '/connedit/' . $contact['abook_id'] . '/archive',
@@ -647,7 +647,7 @@ class Connedit extends Controller {
'title' => t('Archive (or Unarchive) this connection - mark channel dead but keep content'),
'info' => (intval($contact['abook_archived']) ? t('This connection is archived!') : ''),
),
-
+
'hide' => array(
'label' => (intval($contact['abook_hidden']) ? t('Unhide') : t('Hide')),
'url' => z_root() . '/connedit/' . $contact['abook_id'] . '/hide',
@@ -655,18 +655,18 @@ class Connedit extends Controller {
'title' => t('Hide or Unhide this connection from your other connections'),
'info' => (intval($contact['abook_hidden']) ? t('This connection is hidden!') : ''),
),
-
+
'delete' => array(
'label' => t('Delete'),
'url' => z_root() . '/connedit/' . $contact['abook_id'] . '/drop',
'sel' => '',
'title' => t('Delete this connection'),
),
-
+
);
- if($contact['xchan_network'] === 'zot') {
+ if(in_array($contact['xchan_network'], ['zot6', 'zot'])) {
$tools['fetchvc'] = [
'label' => t('Fetch Vcard'),
'url' => z_root() . '/connedit/' . $contact['abook_id'] . '/fetchvc',
@@ -684,24 +684,24 @@ class Connedit extends Controller {
'sel' => '',
'title' => t('Open Individual Permissions section by default'),
];
-
+
$self = false;
-
+
if(intval($contact['abook_self'])) {
$self = true;
$abook_prev = $abook_next = 0;
}
-
+
$vc = get_abconfig(local_channel(),$contact['abook_xchan'],'system','vcard');
- $vctmp = (($vc) ? \Sabre\VObject\Reader::read($vc) : null);
+ $vctmp = (($vc) ? \Sabre\VObject\Reader::read($vc) : null);
$vcard = (($vctmp) ? get_vcard_array($vctmp,$contact['abook_id']) : [] );
if(! $vcard)
$vcard['fn'] = $contact['xchan_name'];
$tpl = get_markup_template("abook_edit.tpl");
-
+
if(Apps::system_app_installed(local_channel(),'Affinity Tool')) {
$sections['affinity'] = [
@@ -710,7 +710,7 @@ class Connedit extends Controller {
'sel' => '',
'title' => t('Open Set Affinity section by default'),
];
-
+
$labels = [
t('Me'),
t('Family'),
@@ -720,7 +720,7 @@ class Connedit extends Controller {
];
call_hooks('affinity_labels',$labels);
$label_str = '';
-
+
if($labels) {
foreach($labels as $l) {
if($label_str) {
@@ -731,11 +731,11 @@ class Connedit extends Controller {
$label_str .= "'" . $l . "'";
}
}
-
+
$slider_tpl = get_markup_template('contact_slider.tpl');
-
+
$slideval = intval($contact['abook_closeness']);
-
+
$slide = replace_macros($slider_tpl,array(
'$min' => 1,
'$val' => $slideval,
@@ -751,22 +751,22 @@ class Connedit extends Controller {
'title' => t('Open Custom Filter section by default'),
];
}
-
+
$rating_val = 0;
$rating_text = '';
-
+
$xl = q("select * from xlink where xlink_xchan = '%s' and xlink_link = '%s' and xlink_static = 1",
dbesc($channel['channel_hash']),
dbesc($contact['xchan_hash'])
);
-
+
if($xl) {
$rating_val = intval($xl[0]['xlink_rating']);
$rating_text = $xl[0]['xlink_rating_text'];
}
-
+
$rating_enabled = get_config('system','rating_enabled');
-
+
if($rating_enabled) {
$rating = replace_macros(get_markup_template('rating_slider.tpl'),array(
'$min' => -10,
@@ -776,28 +776,28 @@ class Connedit extends Controller {
else {
$rating = false;
}
-
-
+
+
$perms = array();
$channel = App::get_channel();
-
+
$global_perms = Permissions::Perms();
$existing = get_all_perms(local_channel(),$contact['abook_xchan'],false);
-
+
$unapproved = array('pending', t('Approve this connection'), '', t('Accept connection to allow communication'), array(t('No'),('Yes')));
-
+
$multiprofs = ((feature_enabled(local_channel(),'multi_profiles')) ? true : false);
-
+
if($slide && !$multiprofs)
$affinity = t('Set Affinity');
-
+
if(!$slide && $multiprofs)
$affinity = t('Set Profile');
-
+
if($slide && $multiprofs)
$affinity = t('Set Affinity & Profile');
-
+
$theirs = q("select * from abconfig where chan = %d and xchan = '%s' and cat = 'their_perms'",
intval(local_channel()),
dbesc($contact['abook_xchan'])
@@ -812,20 +812,20 @@ class Connedit extends Controller {
foreach($global_perms as $k => $v) {
$thisperm = get_abconfig(local_channel(),$contact['abook_xchan'],'my_perms',$k);
//fixme
-
+
$checkinherited = PermissionLimits::Get(local_channel(),$k);
-
+
// For auto permissions (when $self is true) we don't want to look at existing
// permissions because they are enabled for the channel owner
if((! $self) && ($existing[$k]))
$thisperm = "1";
-
-
+
+
$perms[] = array('perms_' . $k, $v, ((array_key_exists($k,$their_perms)) ? intval($their_perms[$k]) : ''),$thisperm, 1, (($checkinherited & PERMS_SPECIFIC) ? '' : '1'), '', $checkinherited);
}
-
+
$pcat = new Permcat(local_channel());
$pcatlist = $pcat->listing();
$permcats = [];
@@ -838,23 +838,23 @@ class Connedit extends Controller {
$locstr = locations_by_netid($contact['xchan_hash']);
if(! $locstr)
$locstr = unpunify($contact['xchan_url']);
-
+
$clone_warn = '';
$clonable = (in_array($contact['xchan_network'],['zot', 'zot6', 'rss']) ? true : false);
if(! $clonable) {
$clone_warn = '<strong>';
- $clone_warn .= ((intval($contact['abook_not_here']))
+ $clone_warn .= ((intval($contact['abook_not_here']))
? t('This connection is unreachable from this location.')
: t('This connection may be unreachable from other channel locations.')
);
$clone_warn .= '</strong><br>' . t('Location independence is not supported by their network.');
}
-
+
if(intval($contact['abook_not_here']) && $unclonable)
$not_here = t('This connection is unreachable from this location. Location independence is not supported by their network.');
-
+
$o .= replace_macros($tpl, [
'$header' => (($self) ? t('Connection Default Permissions') : sprintf( t('Connection: %s'),$contact['xchan_name'])),
'$autoperms' => array('autoperms',t('Apply these permissions automatically'), ((get_pconfig(local_channel(),'system','autoperms')) ? 1 : 0), t('Connection requests will be approved without your interaction'), $yes_no),
@@ -910,7 +910,7 @@ class Connedit extends Controller {
'$name' => $contact['xchan_name'],
'$abook_prev' => $abook_prev,
'$abook_next' => $abook_next,
- '$vcard_label' => t('Details'),
+ '$vcard_label' => t('Details'),
'$displayname' => $displayname,
'$name_label' => t('Name'),
'$org_label' => t('Organisation'),
@@ -939,13 +939,13 @@ class Connedit extends Controller {
'$zip_code' => t('ZIP Code'),
'$country' => t('Country')
]);
-
+
$arr = array('contact' => $contact,'output' => $o);
-
+
call_hooks('contact_edit', $arr);
-
+
return $arr['output'];
-
- }
+
+ }
}
}
diff --git a/Zotlabs/Module/Dav.php b/Zotlabs/Module/Dav.php
index 949b89950..96fe2c898 100644
--- a/Zotlabs/Module/Dav.php
+++ b/Zotlabs/Module/Dav.php
@@ -51,7 +51,7 @@ class Dav extends \Zotlabs\Web\Controller {
if($sigblock) {
$keyId = str_replace('acct:','',$sigblock['keyId']);
if($keyId) {
- $r = q("select * from hubloc where hubloc_addr = '%s'",
+ $r = q("select * from hubloc where hubloc_id_url = '%s'",
dbesc($keyId)
);
if($r) {
@@ -124,7 +124,7 @@ class Dav extends \Zotlabs\Web\Controller {
// $server->addPlugin(new \Zotlabs\Storage\QuotaPlugin($auth));
// All we need to do now, is to fire up the server
- $server->exec();
+ $server->start();
killme();
}
diff --git a/Zotlabs/Module/Directory.php b/Zotlabs/Module/Directory.php
index e1bf0f6cf..7295f3099 100644
--- a/Zotlabs/Module/Directory.php
+++ b/Zotlabs/Module/Directory.php
@@ -4,6 +4,8 @@ namespace Zotlabs\Module;
use App;
use Zotlabs\Web\Controller;
+use Zotlabs\Lib\Libzotdir;
+
require_once('include/socgraph.php');
require_once('include/dir_fns.php');
@@ -15,7 +17,7 @@ class Directory extends Controller {
function init() {
App::set_pager_itemspage(30);
-
+
if(local_channel() && x($_GET,'ignore')) {
q("insert into xign ( uid, xchan ) values ( %d, '%s' ) ",
intval(local_channel()),
@@ -26,12 +28,12 @@ class Directory extends Controller {
if(local_channel())
App::$profile_uid = local_channel();
-
+
$observer = get_observer_hash();
$global_changed = false;
$safe_changed = false;
$pubforums_changed = false;
-
+
if(array_key_exists('global',$_REQUEST)) {
$globaldir = intval($_REQUEST['global']);
$global_changed = true;
@@ -41,7 +43,7 @@ class Directory extends Controller {
if($observer)
set_xconfig($observer,'directory','globaldir',$globaldir);
}
-
+
if(array_key_exists('safe',$_REQUEST)) {
$safemode = intval($_REQUEST['safe']);
$safe_changed = true;
@@ -51,8 +53,8 @@ class Directory extends Controller {
if($observer)
set_xconfig($observer,'directory','safemode',$safemode);
}
-
-
+
+
if(array_key_exists('pubforums',$_REQUEST)) {
$pubforums = intval($_REQUEST['pubforums']);
$pubforums_changed = true;
@@ -64,52 +66,52 @@ class Directory extends Controller {
}
}
-
+
function get() {
-
+
if(observer_prohibited()) {
notice( t('Public access denied.') . EOL);
return;
}
-
+
if(get_config('system','block_public_directory',false) && (! get_observer_hash())) {
notice( t('Public access denied.') . EOL);
return;
}
-
+
$observer = get_observer_hash();
-
- $globaldir = get_directory_setting($observer, 'globaldir');
+
+ $globaldir = Libzotdir::get_directory_setting($observer, 'globaldir');
// override your personal global search pref if we're doing a navbar search of the directory
if(intval($_REQUEST['navsearch']))
$globaldir = 1;
-
- $safe_mode = get_directory_setting($observer, 'safemode');
-
- $pubforums = get_directory_setting($observer, 'pubforums');
-
+
+ $safe_mode = Libzotdir::get_directory_setting($observer, 'safemode');
+
+ $pubforums = Libzotdir::get_directory_setting($observer, 'pubforums');
+
$o = '';
nav_set_selected('Directory');
-
+
if(x($_POST,'search'))
$search = notags(trim($_POST['search']));
else
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
-
-
+
+
if(strpos($search,'=') && local_channel() && feature_enabled(local_channel(), 'advanced_dirsearch'))
$advanced = $search;
-
+
$keywords = (($_GET['keywords']) ? $_GET['keywords'] : '');
-
+
// Suggest channels if no search terms or keywords are given
$suggest = (local_channel() && x($_REQUEST,'suggest')) ? $_REQUEST['suggest'] : '';
-
+
if($suggest) {
// the directory options have no effect in suggestion mode
-
+
$globaldir = 1;
$safe_mode = 1;
$type = 0;
@@ -120,7 +122,7 @@ class Directory extends Controller {
notice( t('No default suggestions were found.') . EOL);
return;
}
-
+
// Remember in which order the suggestions were
$addresses = array();
$common = array();
@@ -129,7 +131,7 @@ class Directory extends Controller {
$common[$rr['xchan_addr']] = ((intval($rr['total']) > 0) ? intval($rr['total']) - 1 : 0);
$addresses[$rr['xchan_addr']] = $index++;
}
-
+
// Build query to get info about suggested people
$advanced = '';
foreach(array_keys($addresses) as $address) {
@@ -137,13 +139,13 @@ class Directory extends Controller {
}
// Remove last space in the advanced query
$advanced = rtrim($advanced);
-
+
}
-
+
$tpl = get_markup_template('directory_header.tpl');
-
+
$dirmode = intval(get_config('system','directory_mode'));
-
+
$directory_admin = false;
if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
@@ -154,19 +156,19 @@ class Directory extends Controller {
}
if(! $url) {
- $directory = find_upstream_directory($dirmode);
+ $directory = Libzotdir::find_upstream_directory($dirmode);
if((! $directory) || (! array_key_exists('url',$directory)) || (! $directory['url']))
logger('CRITICAL: No directory server URL');
$url = $directory['url'] . '/dirsearch';
}
-
+
$token = get_config('system','realm_token');
-
-
+
+
logger('mod_directory: URL = ' . $url, LOGGER_DEBUG);
-
+
$contacts = array();
-
+
if(local_channel()) {
$x = q("select abook_xchan from abook where abook_channel = %d",
intval(local_channel())
@@ -176,24 +178,24 @@ class Directory extends Controller {
$contacts[] = $xx['abook_xchan'];
}
}
-
+
if($url) {
-
+
$numtags = get_config('system','directorytags');
-
+
$kw = ((intval($numtags) > 0) ? intval($numtags) : 50);
-
+
if(get_config('system','disable_directory_keywords'))
$kw = 0;
-
+
$query = $url . '?f=&kw=' . $kw . (($safe_mode != 1) ? '&safe=' . $safe_mode : '');
-
+
if($token)
$query .= '&t=' . $token;
-
+
if(! $globaldir)
$query .= '&hub=' . App::get_hostname();
-
+
if($search)
$query .= '&name=' . urlencode($search) . '&keywords=' . urlencode($search);
if(strpos($search,'@'))
@@ -204,29 +206,29 @@ class Directory extends Controller {
$query .= '&query=' . urlencode($advanced);
if(! is_null($pubforums))
$query .= '&pubforums=' . intval($pubforums);
-
+
$directory_sort_order = get_config('system','directory_sort_order');
if(! $directory_sort_order)
$directory_sort_order = 'date';
-
+
$sort_order = ((x($_REQUEST,'order')) ? $_REQUEST['order'] : $directory_sort_order);
-
+
if($sort_order)
$query .= '&order=' . urlencode($sort_order);
-
+
if(App::$pager['page'] != 1)
$query .= '&p=' . App::$pager['page'];
-
+
logger('mod_directory: query: ' . $query);
-
+
$x = z_fetch_url($query);
logger('directory: return from upstream: ' . print_r($x,true), LOGGER_DATA);
-
+
if($x['success']) {
$t = 0;
$j = json_decode($x['body'],true);
if($j) {
-
+
if($j['results']) {
$results = $j['results'];
@@ -235,23 +237,23 @@ class Directory extends Controller {
}
$entries = array();
-
+
$photo = 'thumb';
-
+
foreach($results as $rr) {
-
+
$profile_link = chanlink_url($rr['url']);
-
+
$pdesc = (($rr['description']) ? $rr['description'] . '<br />' : '');
- $connect_link = ((local_channel()) ? z_root() . '/follow?f=&url=' . urlencode($rr['address']) : '');
-
+ $connect_link = ((local_channel()) ? z_root() . '/follow?f=&url=' . urlencode($rr['address']) : '');
+
// Checking status is disabled ATM until someone checks the performance impact more carefully
//$online = remote_online_status($rr['address']);
$online = '';
-
+
if(in_array($rr['hash'],$contacts))
$connect_link = '';
-
+
$location = '';
if(strlen($rr['locale']))
$location .= $rr['locale'];
@@ -265,53 +267,53 @@ class Directory extends Controller {
$location .= ', ';
$location .= $rr['country'];
}
-
+
$age = '';
if(strlen($rr['birthday'])) {
if(($years = age($rr['birthday'],'UTC','')) > 0)
$age = $years;
}
-
+
$page_type = '';
-
+
$rating_enabled = get_config('system','rating_enabled');
if($rr['total_ratings'] && $rating_enabled)
$total_ratings = sprintf( tt("%d rating", "%d ratings", $rr['total_ratings']), $rr['total_ratings']);
else
$total_ratings = '';
-
+
$profile = $rr;
-
+
if ((x($profile,'locale') == 1)
|| (x($profile,'region') == 1)
|| (x($profile,'postcode') == 1)
|| (x($profile,'country') == 1))
-
+
$gender = ((x($profile,'gender') == 1) ? t('Gender: ') . $profile['gender']: False);
-
+
$marital = ((x($profile,'marital') == 1) ? t('Status: ') . $profile['marital']: False);
-
+
$homepage = ((x($profile,'homepage') == 1) ? t('Homepage: ') : False);
- $homepageurl = ((x($profile,'homepage') == 1) ? html2plain($profile['homepage']) : '');
-
+ $homepageurl = ((x($profile,'homepage') == 1) ? html2plain($profile['homepage']) : '');
+
$hometown = ((x($profile,'hometown') == 1) ? html2plain($profile['hometown']) : False);
-
+
$about = ((x($profile,'about') == 1) ? zidify_links(bbcode($profile['about'], ['tryoembed' => false])) : False);
if ($about && $safe_mode) {
$about = html2plain($about);
}
-
+
$keywords = ((x($profile,'keywords')) ? $profile['keywords'] : '');
-
+
$out = '';
-
+
if($keywords) {
$keywords = str_replace(',',' ', $keywords);
$keywords = str_replace(' ',' ', $keywords);
$karr = explode(' ', $keywords);
-
+
if($karr) {
if(local_channel()) {
$r = q("select keywords from profile where uid = %d and is_default = 1 limit 1",
@@ -332,9 +334,9 @@ class Directory extends Controller {
$out .= '<a href="' . z_root() . '/directory/f=&keywords=' . urlencode($k) .'">' . $k . '</a>';
}
}
-
+
}
-
+
$entry = array(
'id' => ++$t,
'profile_link' => $profile_link,
@@ -366,7 +368,7 @@ class Directory extends Controller {
'about' => $about,
'about_label' => t('About:'),
'conn_label' => t('Connect'),
- 'forum_label' => t('Public Forum:'),
+ 'forum_label' => t('Public Forum:'),
'connect' => $connect_link,
'online' => $online,
'kw' => (($out) ? t('Keywords: ') : ''),
@@ -378,36 +380,36 @@ class Directory extends Controller {
'common_count' => intval($common[$rr['address']]),
'safe' => $safe_mode
);
-
+
$arr = array('contact' => $rr, 'entry' => $entry);
-
+
call_hooks('directory_item', $arr);
-
+
unset($profile);
unset($location);
-
+
if(! $arr['entry']) {
continue;
- }
-
+ }
+
if($sort_order == '' && $suggest) {
$entries[$addresses[$rr['address']]] = $arr['entry']; // Use the same indexes as originally to get the best suggestion first
}
-
+
else {
$entries[] = $arr['entry'];
}
}
-
+
ksort($entries); // Sort array by key so that foreach-constructs work as expected
-
+
if($j['keywords']) {
App::$data['directory_keywords'] = $j['keywords'];
}
-
+
logger('mod_directory: entries: ' . print_r($entries,true), LOGGER_DATA);
-
-
+
+
if($_REQUEST['aj']) {
if($entries) {
$o = replace_macros(get_markup_template('directajax.tpl'),array(
@@ -422,9 +424,9 @@ class Directory extends Controller {
}
else {
$maxheight = 94;
-
+
$dirtitle = (($globaldir) ? t('Global Directory') : t('Local Directory'));
-
+
$o .= "<script> var page_query = '" . escape_tags(urlencode($_GET['q'])) . "'; var extra_args = '" . extra_query_args() . "' ; divmore_height = " . intval($maxheight) . "; </script>";
$o .= replace_macros($tpl, array(
'$search' => $search,
@@ -442,10 +444,10 @@ class Directory extends Controller {
'$reversedate' => t('Oldest to Newest'),
'$suggest' => $suggest ? '&suggest=1' : ''
));
-
-
+
+
}
-
+
}
else {
if($_REQUEST['aj']) {
@@ -463,7 +465,7 @@ class Directory extends Controller {
}
return $o;
}
-
+
static public function reorder_results($results,$suggests) {
if(! $suggests)
diff --git a/Zotlabs/Module/Dirsearch.php b/Zotlabs/Module/Dirsearch.php
index c15b13a90..804d7af5c 100644
--- a/Zotlabs/Module/Dirsearch.php
+++ b/Zotlabs/Module/Dirsearch.php
@@ -192,7 +192,7 @@ class Dirsearch extends Controller {
else {
$qlimit = " LIMIT " . intval($perpage) . " OFFSET " . intval($startrec);
if($return_total) {
- $r = q("SELECT COUNT(xchan_hash) AS total FROM xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and xchan_network = 'zot' and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0 $safesql ");
+ $r = q("SELECT COUNT(xchan_hash) AS total FROM xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and xchan_network = 'zot6' and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0 $safesql ");
if($r) {
$ret['total_items'] = $r[0]['total'];
}
@@ -261,7 +261,7 @@ class Dirsearch extends Controller {
else {
$r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash
- where ( $logic $sql_extra ) $hub_query and xchan_network = 'zot' and xchan_system = 0 and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0
+ where ( $logic $sql_extra ) $hub_query and xchan_network = 'zot6' and xchan_system = 0 and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0
$safesql $order $qlimit "
);
diff --git a/Zotlabs/Module/Display.php b/Zotlabs/Module/Display.php
index 81ac0f7b8..04aeb6d5c 100644
--- a/Zotlabs/Module/Display.php
+++ b/Zotlabs/Module/Display.php
@@ -19,21 +19,21 @@ class Display extends \Zotlabs\Web\Controller {
if(argc() > 1) {
$module_format = substr(argv(1),strrpos(argv(1),'.') + 1);
if(! in_array($module_format,['atom','zot','json']))
- $module_format = 'html';
+ $module_format = 'html';
}
if(observer_prohibited()) {
notice( t('Public access denied.') . EOL);
return;
}
-
+
if(argc() > 1) {
$item_hash = argv(1);
if($module_format !== 'html') {
$item_hash = substr($item_hash,0,strrpos($item_hash,'.'));
}
}
-
+
if($_REQUEST['mid'])
$item_hash = $_REQUEST['mid'];
@@ -42,19 +42,19 @@ class Display extends \Zotlabs\Web\Controller {
notice( t('Item not found.') . EOL);
return;
}
-
+
$observer_is_owner = false;
if(local_channel() && (! $update)) {
-
+
$channel = \App::get_channel();
$channel_acl = array(
- 'allow_cid' => $channel['channel_allow_cid'],
- 'allow_gid' => $channel['channel_allow_gid'],
- 'deny_cid' => $channel['channel_deny_cid'],
+ 'allow_cid' => $channel['channel_allow_cid'],
+ 'allow_gid' => $channel['channel_allow_gid'],
+ 'deny_cid' => $channel['channel_deny_cid'],
'deny_gid' => $channel['channel_deny_gid']
- );
+ );
$x = array(
'is_owner' => true,
@@ -62,7 +62,7 @@ class Display extends \Zotlabs\Web\Controller {
'default_location' => $channel['channel_location'],
'nickname' => $channel['channel_address'],
'lockstate' => (($group || $cid || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
- 'acl' => populate_acl($channel_acl,true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'),
+ 'acl' => populate_acl($channel_acl,true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'),
'permissions' => $channel_acl,
'bang' => '',
'visitor' => true,
@@ -75,21 +75,21 @@ class Display extends \Zotlabs\Web\Controller {
'jotnets' => true,
'reset' => t('Reset form')
);
-
+
$o = '<div id="jot-popup">';
$o .= status_editor($a,$x,false,'Display');
$o .= '</div>';
}
-
+
// This page can be viewed by anybody so the query could be complicated
// First we'll see if there is a copy of the item which is owned by us - if we're logged in locally.
- // If that fails (or we aren't logged in locally),
+ // If that fails (or we aren't logged in locally),
// query an item in which the observer (if logged in remotely) has cid or gid rights
- // and if that fails, look for a copy of the post that has no privacy restrictions.
+ // and if that fails, look for a copy of the post that has no privacy restrictions.
// If we find the post, but we don't find a copy that we're allowed to look at, this fact needs to be reported.
-
+
// find a copy of the item somewhere
-
+
$target_item = null;
if(strpos($item_hash,'b64.') === 0)
@@ -100,7 +100,7 @@ class Display extends \Zotlabs\Web\Controller {
$r = q("select id, uid, mid, parent, parent_mid, thr_parent, verb, item_type, item_deleted, author_xchan, item_blocked from item where mid like '%s' limit 1",
dbesc($item_hash . '%')
);
-
+
if($r) {
$target_item = $r[0];
}
@@ -117,14 +117,14 @@ class Display extends \Zotlabs\Web\Controller {
if($target_item['item_blocked'] == ITEM_MODERATED) {
goaway(z_root() . '/moderate/' . $target_item['id']);
}
-
+
$r = null;
-
+
if($target_item['item_type'] == ITEM_TYPE_WEBPAGE) {
$x = q("select * from channel where channel_id = %d limit 1",
intval($target_item['uid'])
);
- $y = q("select * from iconfig left join item on iconfig.iid = item.id
+ $y = q("select * from iconfig left join item on iconfig.iid = item.id
where item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'WEBPAGE' and item.id = %d limit 1",
intval($target_item['uid']),
intval($target_item['parent'])
@@ -141,7 +141,7 @@ class Display extends \Zotlabs\Web\Controller {
$x = q("select * from channel where channel_id = %d limit 1",
intval($target_item['uid'])
);
- $y = q("select * from iconfig left join item on iconfig.iid = item.id
+ $y = q("select * from iconfig left join item on iconfig.iid = item.id
where item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'ARTICLE' and item.id = %d limit 1",
intval($target_item['uid']),
intval($target_item['parent'])
@@ -160,7 +160,7 @@ class Display extends \Zotlabs\Web\Controller {
intval($target_item['uid'])
);
- $y = q("select * from iconfig left join item on iconfig.iid = item.id
+ $y = q("select * from iconfig left join item on iconfig.iid = item.id
where item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'CARD' and item.id = %d limit 1",
intval($target_item['uid']),
intval($target_item['parent'])
@@ -179,7 +179,7 @@ class Display extends \Zotlabs\Web\Controller {
notice( t('Page not found.') . EOL);
return '';
}
-
+
$simple_update = '';
if($update && $_SESSION['loadtime'])
$simple_update = " AND (( item_unseen = 1 AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) OR item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) ";
@@ -191,14 +191,14 @@ class Display extends \Zotlabs\Web\Controller {
//$mid = ((($target_item['verb'] == ACTIVITY_LIKE) || ($target_item['verb'] == ACTIVITY_DISLIKE)) ? $target_item['thr_parent'] : $target_item['mid']);
$mid = $target_item['mid'];
- // if we got a decoded hash we must encode it again before handing to javascript
+ // if we got a decoded hash we must encode it again before handing to javascript
if($decoded)
$mid = 'b64.' . base64url_encode($mid);
$o .= '<div id="live-display"></div>' . "\r\n";
$o .= "<script> var profile_uid = " . ((intval(local_channel())) ? local_channel() : (-1))
. "; var netargs = '?f='; var profile_page = " . \App::$pager['page'] . "; </script>\r\n";
-
+
\App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
'$baseurl' => z_root(),
'$pgtype' => 'display',
@@ -230,7 +230,7 @@ class Display extends \Zotlabs\Web\Controller {
'$mid' => (($mid) ? urlencode($mid) : '')
));
- head_add_link([
+ head_add_link([
'rel' => 'alternate',
'type' => 'application/json+oembed',
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$query_string),
@@ -270,8 +270,8 @@ class Display extends \Zotlabs\Web\Controller {
$r = q("SELECT item.id as item_id from item
WHERE mid = '%s'
- AND (((( item.allow_cid = '' AND item.allow_gid = '' AND item.deny_cid = ''
- AND item.deny_gid = '' AND item_private = 0 )
+ AND (((( item.allow_cid = '' AND item.allow_gid = '' AND item.deny_cid = ''
+ AND item.deny_gid = '' AND item_private = 0 )
and uid in ( " . stream_perms_api_uids(($observer_hash) ? (PERMS_NETWORK|PERMS_PUBLIC) : PERMS_PUBLIC) . " ))
OR uid = %d )
$sql_extra )
@@ -282,7 +282,7 @@ class Display extends \Zotlabs\Web\Controller {
);
}
}
-
+
elseif($update && !$load) {
$r = null;
@@ -307,8 +307,8 @@ class Display extends \Zotlabs\Web\Controller {
$sysid = 0;
$r = q("SELECT item.parent AS item_id from item
WHERE parent_mid = '%s'
- AND (((( item.allow_cid = '' AND item.allow_gid = '' AND item.deny_cid = ''
- AND item.deny_gid = '' AND item_private = 0 )
+ AND (((( item.allow_cid = '' AND item.allow_gid = '' AND item.deny_cid = ''
+ AND item.deny_gid = '' AND item_private = 0 )
and uid in ( " . stream_perms_api_uids(($observer_hash) ? (PERMS_NETWORK|PERMS_PUBLIC) : PERMS_PUBLIC) . " ))
OR uid = %d )
$sql_extra )
@@ -320,7 +320,7 @@ class Display extends \Zotlabs\Web\Controller {
);
}
}
-
+
else {
$r = array();
}
@@ -328,7 +328,7 @@ class Display extends \Zotlabs\Web\Controller {
if($r) {
$parents_str = ids_to_querystr($r,'item_id');
if($parents_str) {
- $items = q("SELECT item.*, item.id AS item_id
+ $items = q("SELECT item.*, item.id AS item_id
FROM item
WHERE parent in ( %s ) $item_normal ",
dbesc($parents_str)
@@ -341,10 +341,10 @@ class Display extends \Zotlabs\Web\Controller {
else {
$items = array();
}
-
+
switch($module_format) {
-
+
case 'html':
if ($update) {
@@ -363,7 +363,7 @@ class Display extends \Zotlabs\Web\Controller {
\App::$page['title'] = (($items[0]['title']) ? $items[0]['title'] . " - " . \App::$page['title'] : \App::$page['title']);
$o .= conversation($items, 'display', $update, 'client');
- }
+ }
break;
@@ -380,7 +380,7 @@ class Display extends \Zotlabs\Web\Controller {
'$owner' => '',
'$profile_page' => xmlify(z_root() . '/display/' . $target_item['mid']),
));
-
+
$x = [ 'xml' => $atom, 'channel' => $channel, 'observer_hash' => $observer_hash, 'params' => $params ];
call_hooks('atom_feed_top',$x);
@@ -406,13 +406,13 @@ class Display extends \Zotlabs\Web\Controller {
header('Content-type: application/atom+xml');
echo $atom;
killme();
-
+
}
$o .= '<div id="content-complete"></div>';
if((($update && $load) || $noscript_content) && (! $items)) {
-
+
$r = q("SELECT id, item_deleted FROM item WHERE mid = '%s' LIMIT 1",
dbesc($item_hash)
);
@@ -421,14 +421,14 @@ class Display extends \Zotlabs\Web\Controller {
if(intval($r[0]['item_deleted'])) {
notice( t('Item has been removed.') . EOL );
}
- else {
- notice( t('Permission denied.') . EOL );
+ else {
+ notice( t('Permission denied.') . EOL );
}
}
else {
notice( t('Item not found.') . EOL );
}
-
+
}
$_SESSION['loadtime'] = datetime_convert();
diff --git a/Zotlabs/Module/Embedphotos.php b/Zotlabs/Module/Embedphotos.php
index 9b0884197..ed5b24724 100644
--- a/Zotlabs/Module/Embedphotos.php
+++ b/Zotlabs/Module/Embedphotos.php
@@ -40,7 +40,8 @@ class Embedphotos extends \Zotlabs\Web\Controller {
if (!$href) {
json_return_and_die(array('errormsg' => 'Error retrieving link ' . $href, 'status' => false));
}
- $resource_id = array_pop(explode('/', $href));
+ $arr = explode('/', $href);
+ $resource_id = array_pop($arr);
$x = self::photolink($resource_id);
if($x)
json_return_and_die(array('status' => true, 'photolink' => $x, 'resource_id' => $resource_id));
diff --git a/Zotlabs/Module/File_upload.php b/Zotlabs/Module/File_upload.php
index 6794dceee..e18067e20 100644
--- a/Zotlabs/Module/File_upload.php
+++ b/Zotlabs/Module/File_upload.php
@@ -64,7 +64,7 @@ class File_upload extends \Zotlabs\Web\Controller {
if($x['partial']) {
header('Range: bytes=0-' . (($x['length']) ? $x['length'] - 1 : 0));
- json_return_and_die($result);
+ json_return_and_die($x);
}
else {
header('Range: bytes=0-' . (($x['size']) ? $x['size'] - 1 : 0));
diff --git a/Zotlabs/Module/Getfile.php b/Zotlabs/Module/Getfile.php
index 17d1c84b8..20cc23ac0 100644
--- a/Zotlabs/Module/Getfile.php
+++ b/Zotlabs/Module/Getfile.php
@@ -6,20 +6,20 @@ use Zotlabs\Lib\Libzot;
/**
* module: getfile
- *
+ *
* used for synchronising files and photos across clones
- *
+ *
* The site initiating the file operation will send a sync packet to known clones.
* They will respond by building the DB structures they require, then will provide a
* post request to this site to grab the file data. This is sent as a stream direct to
* disk at the other end, avoiding memory issues.
*
* Since magic-auth cannot easily be used by the CURL process at the other end,
- * we will require a signed request which includes a timestamp. This should not be
- * used without SSL and is potentially vulnerable to replay if an attacker decrypts
+ * we will require a signed request which includes a timestamp. This should not be
+ * used without SSL and is potentially vulnerable to replay if an attacker decrypts
* the SSL traffic fast enough. The amount of time slop is configurable but defaults
* to 3 minutes.
- *
+ *
*/
@@ -54,13 +54,13 @@ class Getfile extends \Zotlabs\Web\Controller {
$keyId = $sigblock['keyId'];
if($keyId) {
- $r = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash
- where hubloc_addr = '%s'",
+ $r = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash
+ where hubloc_id_url = '%s'",
dbesc(str_replace('acct:','',$keyId))
);
if($r) {
$hubloc = Libzot::zot_record_preferred($r);
- $verified = HTTPSig::verify('',$hubloc['xchan_pubkey']);
+ $verified = HTTPSig::verify('',$hubloc['xchan_pubkey']);
if($verified && $verified['header_signed'] && $verified['header_valid'] && $hash == $hubloc['hubloc_hash']) {
$header_verified = true;
}
@@ -74,15 +74,15 @@ class Getfile extends \Zotlabs\Web\Controller {
logger('post: ' . print_r($_POST,true),LOGGER_DEBUG,LOG_INFO);
if($header_verified) {
logger('HTTPSig verified');
- }
-
+ }
+
$channel = channelx_by_hash($hash);
if((! $channel) || (! $time) || (! $sig)) {
logger('error: missing info');
killme();
}
-
+
if(isset($_POST['resolution']))
$resolution = intval($_POST['resolution']);
elseif(substr($resource,-2,1) == '-') {
@@ -91,21 +91,21 @@ class Getfile extends \Zotlabs\Web\Controller {
}
else {
$resolution = (-1);
- }
+ }
$slop = intval(get_pconfig($channel['channel_id'],'system','getfile_time_slop'));
if($slop < 1)
$slop = 3;
-
+
$d1 = datetime_convert('UTC','UTC',"now + $slop minutes");
- $d2 = datetime_convert('UTC','UTC',"now - $slop minutes");
-
+ $d2 = datetime_convert('UTC','UTC',"now - $slop minutes");
+
if(! $header_verified) {
if(($time > $d1) || ($time < $d2)) {
logger('time outside allowable range');
killme();
}
-
+
if(! rsa_verify($hash . '.' . $time,base64url_decode($sig),$channel['channel_pubkey'])) {
logger('verify failed.');
killme();
@@ -137,20 +137,20 @@ class Getfile extends \Zotlabs\Web\Controller {
else {
echo dbunescbin($r[0]['content']);
}
- }
+ }
killme();
}
$r = attach_by_hash($resource,$channel['channel_hash'],$revision);
-
+
if(! $r['success']) {
logger('attach_by_hash failed: ' . $r['message']);
notice( $r['message'] . EOL);
return;
}
-
+
$unsafe_types = array('text/html','text/css','application/javascript');
-
+
if(in_array($r['data']['filetype'],$unsafe_types) && (! channel_codeallowed($channel['channel_id']))) {
header('Content-type: text/plain');
}
diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php
index 9a120dac1..83424a50d 100644
--- a/Zotlabs/Module/Item.php
+++ b/Zotlabs/Module/Item.php
@@ -976,7 +976,7 @@ class Item extends Controller {
$item_unseen = ((local_channel() != $profile_uid) ? 1 : 0);
- $item_wall = (($post_type === 'wall' || $post_type === 'wall-comment') ? 1 : 0);
+ $item_wall = (($_REQUEST['type'] === 'wall' || $_REQUEST['type'] === 'wall-comment') ? 1 : 0);
$item_origin = (($origin) ? 1 : 0);
$item_consensus = (($consensus) ? 1 : 0);
$item_nocomment = (($nocomment) ? 1 : 0);
@@ -1337,7 +1337,7 @@ class Item extends Controller {
killme();
}
- if(($parent == $post_id) || ($datarray['item_private'] == 1)) {
+ if($parent || $datarray['item_private'] == 1) {
$r = q("select * from item where id = %d",
intval($post_id)
);
diff --git a/Zotlabs/Module/Like.php b/Zotlabs/Module/Like.php
index bb5c6db7a..e3fe4a954 100644
--- a/Zotlabs/Module/Like.php
+++ b/Zotlabs/Module/Like.php
@@ -1,37 +1,42 @@
<?php
+
namespace Zotlabs\Module;
+use App;
use Zotlabs\Lib\Activity;
use Zotlabs\Lib\Libsync;
+use Zotlabs\Web\Controller;
+use Zotlabs\Daemon\Master;
+
require_once('include/security.php');
require_once('include/bbcode.php');
require_once('include/items.php');
require_once('include/conversation.php');
-class Like extends \Zotlabs\Web\Controller {
+class Like extends Controller {
private function reaction_to_activity($reaction) {
$acts = [
- 'like' => ACTIVITY_LIKE ,
- 'dislike' => ACTIVITY_DISLIKE ,
- 'agree' => ACTIVITY_AGREE ,
- 'disagree' => ACTIVITY_DISAGREE ,
- 'abstain' => ACTIVITY_ABSTAIN ,
- 'attendyes' => ACTIVITY_ATTEND ,
- 'attendno' => ACTIVITY_ATTENDNO ,
- 'attendmaybe' => ACTIVITY_ATTENDMAYBE
+ 'like' => ACTIVITY_LIKE,
+ 'dislike' => ACTIVITY_DISLIKE,
+ 'agree' => ACTIVITY_AGREE,
+ 'disagree' => ACTIVITY_DISAGREE,
+ 'abstain' => ACTIVITY_ABSTAIN,
+ 'attendyes' => ACTIVITY_ATTEND,
+ 'attendno' => ACTIVITY_ATTENDNO,
+ 'attendmaybe' => ACTIVITY_ATTENDMAYBE
];
// unlike (etc.) reactions are an undo of positive reactions, rather than a negative action.
// The activity is the same in undo actions and will have the same activity mapping
- if(substr($reaction,0,2) === 'un') {
- $reaction = substr($reaction,2);
+ if (substr($reaction, 0, 2) === 'un') {
+ $reaction = substr($reaction, 2);
}
- if(array_key_exists($reaction,$acts)) {
+ if (array_key_exists($reaction, $acts)) {
return $acts[$reaction];
}
@@ -41,117 +46,124 @@ class Like extends \Zotlabs\Web\Controller {
private function like_response($arr) {
- if($arr['conv_mode'] === 'channel') {
+ $page_mode = (($arr['item']['item_thread_top'] && $_REQUEST['page_mode']) ? $_REQUEST['page_mode'] : 'r_preview');
+ $conv_mode = (($_REQUEST['conv_mode']) ? $_REQUEST['conv_mode'] : 'network');
+
+ if ($conv_mode === 'channel') {
$parts = explode('@', $arr['owner_xchan']['xchan_addr']);
profile_load($parts[0]);
}
-
$item_normal = item_normal();
- $activities = q("SELECT item.*, item.id AS item_id FROM item
- WHERE uid = %d $item_normal
- AND thr_parent = '%s'
- AND verb IN ('%s', '%s', '%s', '%s', '%s')",
- intval($arr['item']['uid']),
- dbesc($arr['item']['mid']),
- dbesc(ACTIVITY_LIKE),
- dbesc(ACTIVITY_DISLIKE),
- dbesc(ACTIVITY_ATTEND),
- dbesc(ACTIVITY_ATTENDNO),
- dbesc(ACTIVITY_ATTENDMAYBE)
- );
-
- xchan_query($activities,true);
-
- $convitems[] = $arr['item'];
- $convitems = array_merge($convitems, $activities);
-
- $convitems = fetch_post_tags($convitems,true);
+ if ($page_mode === 'list') {
+ $items = q("SELECT item.*, item.id AS item_id FROM item
+ WHERE uid = %d $item_normal
+ AND parent = %d",
+ intval($arr['item']['uid']),
+ intval($arr['item']['parent'])
+ );
+ xchan_query($items, true);
+ $items = fetch_post_tags($items, true);
+ $items = conv_sort($items, 'commented');
+ }
+ else {
+ $activities = q("SELECT item.*, item.id AS item_id FROM item
+ WHERE uid = %d $item_normal
+ AND thr_parent = '%s'
+ AND verb IN ('%s', '%s', '%s', '%s', '%s')",
+ intval($arr['item']['uid']),
+ dbesc($arr['item']['mid']),
+ dbesc(ACTIVITY_LIKE),
+ dbesc(ACTIVITY_DISLIKE),
+ dbesc(ACTIVITY_ATTEND),
+ dbesc(ACTIVITY_ATTENDNO),
+ dbesc(ACTIVITY_ATTENDMAYBE)
+ );
+ xchan_query($activities, true);
+ $items = array_merge([$arr['item']], $activities);
+ $items = fetch_post_tags($items, true);
+ }
$ret = [
'success' => 1,
'orig_id' => $arr['orig_item_id'], //this is required for pubstream items where $item_id != $item['id']
- 'id' => $arr['item']['id'],
- 'html' => conversation($convitems, $arr['conv_mode'], true, 'r_preview'),
+ 'id' => $arr['item']['id'],
+ 'html' => conversation($items, $conv_mode, true, $page_mode),
];
-
return $ret;
}
public function get() {
-
- $o = EMPTY_STR;
+ $o = EMPTY_STR;
$sys_channel = get_sys_channel();
- $sys_channel_id = (($sys_channel) ? $sys_channel['channel_id'] : 0);
-
- $observer = \App::get_observer();
+ $observer = App::get_observer();
$interactive = $_REQUEST['interactive'];
- if((! $observer) || ($interactive)) {
+
+ if ((!$observer) || ($interactive)) {
$o .= '<h1>' . t('Like/Dislike') . '</h1>';
$o .= EOL . EOL;
-
- if(! $observer) {
- $_SESSION['return_url'] = \App::$query_string;
+
+ if (!$observer) {
+ $_SESSION['return_url'] = App::$query_string;
+
$o .= t('This action is restricted to members.') . EOL;
$o .= t('Please <a href="rmagic">login with your $Projectname ID</a> or <a href="register">register as a new $Projectname member</a> to continue.') . EOL;
return $o;
}
}
-
+
$verb = notags(trim($_GET['verb']));
- $mode = (($_GET['conv_mode'] === 'channel') ? 'channel' : 'network');
- if(! $verb)
+ if (!$verb)
$verb = 'like';
-
+
$activity = $this->reaction_to_activity($verb);
- if(! $activity) {
- return EMPTY_STR;
+ if (!$activity) {
+ return EMPTY_STR;
}
$is_rsvp = false;
- if (in_array($activity, [ ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE ])) {
+ if (in_array($activity, [ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE])) {
$is_rsvp = true;
}
-
$extended_like = false;
- $object = $target = null;
- $post_type = EMPTY_STR;
- $objtype = EMPTY_STR;
-
- if(argc() == 3) {
-
- if(! $observer)
+ $object = $target = null;
+ $post_type = EMPTY_STR;
+ $objtype = EMPTY_STR;
+
+ if (argc() == 3) {
+
+ if (!$observer)
killme();
-
+
$extended_like = true;
- $obj_type = argv(1);
- $obj_id = argv(2);
- $public = true;
-
- if($obj_type == 'profile') {
+ $obj_type = argv(1);
+ $obj_id = argv(2);
+ $public = true;
+
+ if ($obj_type == 'profile') {
$r = q("select * from profile where profile_guid = '%s' limit 1",
dbesc(argv(2))
);
- if(! $r)
- killme();
+ if (!$r)
+ killme();
$owner_uid = $r[0]['uid'];
- if($r[0]['is_default'])
+ if ($r[0]['is_default'])
$public = true;
- if(! $public) {
+ if (!$public) {
$d = q("select abook_xchan from abook where abook_profile = '%s' and abook_channel = %d",
dbesc($r[0]['profile_guid']),
intval($owner_uid)
);
- if(! $d) {
+ if (!$d) {
// forgery - illegal
- if($interactive) {
- notice( t('Invalid request.') . EOL);
+ if ($interactive) {
+ notice(t('Invalid request.') . EOL);
return $o;
}
killme();
@@ -159,122 +171,122 @@ class Like extends \Zotlabs\Web\Controller {
// $d now contains a list of those who can see this profile - only send the status notification
// to them.
$allow_cid = $allow_gid = $deny_cid = $deny_gid = '';
- foreach($d as $dd) {
+ foreach ($d as $dd) {
$allow_cid .= '<' . $dd['abook_xchan'] . '>';
}
}
$post_type = t('channel');
- $objtype = ACTIVITY_OBJ_PROFILE;
-
+ $objtype = ACTIVITY_OBJ_PROFILE;
+
$profile = $r[0];
}
- elseif($obj_type == 'thing') {
-
+ elseif ($obj_type == 'thing') {
+
$r = q("select * from obj where obj_type = %d and obj_obj = '%s' limit 1",
- intval(TERM_OBJ_THING),
- dbesc(argv(2))
- );
-
- if(! $r) {
- if($interactive) {
- notice( t('Invalid request.') . EOL);
+ intval(TERM_OBJ_THING),
+ dbesc(argv(2))
+ );
+
+ if (!$r) {
+ if ($interactive) {
+ notice(t('Invalid request.') . EOL);
return $o;
}
- killme();
+ killme();
}
-
+
$owner_uid = $r[0]['obj_channel'];
-
+
$allow_cid = $r[0]['allow_cid'];
$allow_gid = $r[0]['allow_gid'];
- $deny_cid = $r[0]['deny_cid'];
- $deny_gid = $r[0]['deny_gid'];
- if($allow_cid || $allow_gid || $deny_cid || $deny_gid)
+ $deny_cid = $r[0]['deny_cid'];
+ $deny_gid = $r[0]['deny_gid'];
+ if ($allow_cid || $allow_gid || $deny_cid || $deny_gid)
$public = false;
-
+
$post_type = t('thing');
- $objtype = ACTIVITY_OBJ_PROFILE;
- $tgttype = ACTIVITY_OBJ_THING;
-
+ $objtype = ACTIVITY_OBJ_PROFILE;
+ $tgttype = ACTIVITY_OBJ_THING;
+
$links = array();
- $links[] = array('rel' => 'alternate', 'type' => 'text/html',
- 'href' => z_root() . '/thing/' . $r[0]['obj_obj']);
- if($r[0]['imgurl'])
+ $links[] = array('rel' => 'alternate', 'type' => 'text/html',
+ 'href' => z_root() . '/thing/' . $r[0]['obj_obj']);
+ if ($r[0]['imgurl'])
$links[] = array('rel' => 'photo', 'href' => $r[0]['obj_imgurl']);
-
+
$target = json_encode(array(
'type' => $tgttype,
'title' => $r[0]['obj_term'],
'id' => z_root() . '/thing/' . $r[0]['obj_obj'],
'link' => $links
));
-
+
$plink = '[zrl=' . z_root() . '/thing/' . $r[0]['obj_obj'] . ']' . $r[0]['obj_term'] . '[/zrl]';
-
+
}
-
- if(! ($owner_uid && $r)) {
- if($interactive) {
- notice( t('Invalid request.') . EOL);
+
+ if (!($owner_uid && $r)) {
+ if ($interactive) {
+ notice(t('Invalid request.') . EOL);
return $o;
}
killme();
}
-
+
// The resultant activity is going to be a wall-to-wall post, so make sure this is allowed
-
- $perms = get_all_perms($owner_uid,$observer['xchan_hash']);
-
- if(! ($perms['post_like'] && $perms['view_profile'])) {
- if($interactive) {
- notice( t('Permission denied.') . EOL);
+
+ $perms = get_all_perms($owner_uid, $observer['xchan_hash']);
+
+ if (!($perms['post_like'] && $perms['view_profile'])) {
+ if ($interactive) {
+ notice(t('Permission denied.') . EOL);
return $o;
}
killme();
}
-
+
$ch = q("select * from channel left join xchan on channel_hash = xchan_hash where channel_id = %d limit 1",
intval($owner_uid)
);
- if(! $ch) {
- if($interactive) {
- notice( t('Channel unavailable.') . EOL);
+ if (!$ch) {
+ if ($interactive) {
+ notice(t('Channel unavailable.') . EOL);
return $o;
}
killme();
}
-
- if(! $plink)
+
+ if (!$plink)
$plink = '[zrl=' . z_root() . '/profile/' . $ch[0]['channel_address'] . ']' . $post_type . '[/zrl]';
-
- $object = json_encode(Activity::fetch_profile([ 'id' => channel_url($ch[0]) ]));
+
+ $object = json_encode(Activity::fetch_profile(['id' => channel_url($ch[0])]));
// second like of the same thing is "undo" for the first like
-
+
$z = q("select * from likes where channel_id = %d and liker = '%s' and verb = '%s' and target_type = '%s' and target_id = '%s' limit 1",
intval($ch[0]['channel_id']),
dbesc($observer['xchan_hash']),
dbesc($activity),
- dbesc(($tgttype)?$tgttype:$objtype),
+ dbesc(($tgttype) ? $tgttype : $objtype),
dbesc($obj_id)
);
-
- if($z) {
+
+ if ($z) {
$z[0]['deleted'] = 1;
- Libsync::build_sync_packet($ch[0]['channel_id'],array('likes' => $z));
-
+ Libsync::build_sync_packet($ch[0]['channel_id'], array('likes' => $z));
+
q("delete from likes where id = %d",
intval($z[0]['id'])
);
- if($z[0]['i_mid']) {
+ if ($z[0]['i_mid']) {
$r = q("select id from item where mid = '%s' and uid = %d limit 1",
dbesc($z[0]['i_mid']),
intval($ch[0]['channel_id'])
);
- if($r)
- drop_item($r[0]['id'],false);
- if($interactive) {
- notice( t('Previous action reversed.') . EOL);
+ if ($r)
+ drop_item($r[0]['id'], false);
+ if ($interactive) {
+ notice(t('Previous action reversed.') . EOL);
return $o;
}
}
@@ -283,19 +295,19 @@ class Like extends \Zotlabs\Web\Controller {
}
else {
- if(! $observer)
+ if (!$observer)
killme();
-
+
// this is used to like an item or comment
-
+
$item_id = ((argc() == 2) ? notags(trim(argv(1))) : 0);
-
+
logger('like: verb ' . $verb . ' item ' . $item_id, LOGGER_DEBUG);
-
+
// get the item. Allow linked photos (which are normally hidden) to be liked
- $r = q("SELECT * FROM item WHERE id = %d
- and item_type in (0,6,7) and item_deleted = 0 and item_unpublished = 0
+ $r = q("SELECT * FROM item WHERE id = %d
+ and item_type in (0,6,7) and item_deleted = 0 and item_unpublished = 0
and item_delayed = 0 and item_pending_remove = 0 and item_blocked = 0 LIMIT 1",
intval($item_id)
);
@@ -304,32 +316,30 @@ class Like extends \Zotlabs\Web\Controller {
// create a copy of the parent in your stream. If not the conversation
// parent, copy that as well.
- if($r) {
- if($r[0]['uid'] === $sys_channel['channel_id'] && local_channel()) {
- $r = [ copy_of_pubitem(\App::get_channel(), $r[0]['mid']) ];
+ if ($r) {
+ if ($r[0]['uid'] === $sys_channel['channel_id'] && local_channel()) {
+ $r = [copy_of_pubitem(App::get_channel(), $r[0]['mid'])];
}
}
- if(! $item_id || (! $r)) {
+ if (!$item_id || (!$r)) {
logger('like: no item ' . $item_id);
killme();
}
- xchan_query($r,true);
-
- $item = $r[0];
+ xchan_query($r, true);
+ $item = $r[0];
$owner_uid = $r[0]['uid'];
$owner_aid = $r[0]['aid'];
- $can_comment = false;
- if((array_key_exists('owner',$item)) && intval($item['owner']['abook_self']))
- $can_comment = perm_is_allowed($item['uid'],$observer['xchan_hash'],'post_comments');
- else
- $can_comment = can_comment_on_post($observer['xchan_hash'],$item);
+ if ((array_key_exists('owner', $item)) && intval($item['owner']['abook_self']))
+ $can_comment = perm_is_allowed($item['uid'], $observer['xchan_hash'], 'post_comments');
+ else
+ $can_comment = can_comment_on_post($observer['xchan_hash'], $item);
- if(! $can_comment) {
- notice( t('Permission denied') . EOL);
+ if (!$can_comment) {
+ notice(t('Permission denied') . EOL);
killme();
}
@@ -337,7 +347,7 @@ class Like extends \Zotlabs\Web\Controller {
dbesc($item['owner_xchan'])
);
- if($r)
+ if ($r)
$thread_owner = $r[0];
else
killme();
@@ -345,223 +355,207 @@ class Like extends \Zotlabs\Web\Controller {
$r = q("select * from xchan where xchan_hash = '%s' limit 1",
dbesc($item['author_xchan'])
);
- if($r)
+ if ($r)
$item_author = $r[0];
else
killme();
- $verbs = " '".dbesc($activity)."' ";
-
- $multi_undo = false;
-
+ $verbs = " '" . dbesc($activity) . "' ";
+
+ $multi_undo = false;
+
// event participation and consensus items are essentially radio toggles. If you make a subsequent choice,
- // we need to eradicate your first choice.
-
- if($activity === ACTIVITY_ATTEND || $activity === ACTIVITY_ATTENDNO || $activity === ACTIVITY_ATTENDMAYBE) {
- $verbs = " '" . dbesc(ACTIVITY_ATTEND) . "','" . dbesc(ACTIVITY_ATTENDNO) . "','" . dbesc(ACTIVITY_ATTENDMAYBE) . "' ";
+ // we need to eradicate your first choice.
+
+ if ($activity === ACTIVITY_ATTEND || $activity === ACTIVITY_ATTENDNO || $activity === ACTIVITY_ATTENDMAYBE) {
+ $verbs = " '" . dbesc(ACTIVITY_ATTEND) . "','" . dbesc(ACTIVITY_ATTENDNO) . "','" . dbesc(ACTIVITY_ATTENDMAYBE) . "' ";
$multi_undo = 1;
}
- if($activity === ACTIVITY_AGREE || $activity === ACTIVITY_DISAGREE || $activity === ACTIVITY_ABSTAIN) {
- $verbs = " '" . dbesc(ACTIVITY_AGREE) . "','" . dbesc(ACTIVITY_DISAGREE) . "','" . dbesc(ACTIVITY_ABSTAIN) . "' ";
+ if ($activity === ACTIVITY_AGREE || $activity === ACTIVITY_DISAGREE || $activity === ACTIVITY_ABSTAIN) {
+ $verbs = " '" . dbesc(ACTIVITY_AGREE) . "','" . dbesc(ACTIVITY_DISAGREE) . "','" . dbesc(ACTIVITY_ABSTAIN) . "' ";
$multi_undo = true;
}
-
+
$item_normal = item_normal();
-
+
$r = q("SELECT id, parent, uid, verb FROM item WHERE verb in ( $verbs ) $item_normal
AND author_xchan = '%s' AND thr_parent = '%s' and uid = %d ",
dbesc($observer['xchan_hash']),
dbesc($item['mid']),
intval($owner_uid)
);
-
- if($r) {
+
+ if ($r) {
// already liked it. Drop that item.
require_once('include/items.php');
- foreach($r as $rr) {
- drop_item($rr['id'],false,DROPITEM_PHASE1);
+ foreach ($r as $rr) {
+ drop_item($rr['id'], false, DROPITEM_PHASE1);
// set the changed timestamp on the parent so we'll see the update without a page reload
- $z = q("update item set changed = '%s' where id = %d and uid = %d",
+ q("update item set changed = '%s' where id = %d and uid = %d",
dbesc(datetime_convert()),
intval($rr['parent']),
intval($rr['uid'])
);
- // Prior activity was a duplicate of the one we're submitting, just undo it;
+ // Prior activity was a duplicate of the one we're submitting, just undo it;
// don't fall through and create another
- if(activity_match($rr['verb'],$activity))
+ if (activity_match($rr['verb'], $activity))
$multi_undo = false;
-
+
// drop_item was not done interactively, so we need to invoke the notifier
// in order to push the changes to connections
- \Zotlabs\Daemon\Master::Summon(array('Notifier','drop',$rr['id']));
+ Master::Summon(array('Notifier', 'drop', $rr['id']));
-
}
-
- if($interactive)
+
+ if ($interactive)
return;
-
- if(! $multi_undo) {
+
+ if (!$multi_undo) {
$ret = self::like_response([
- 'item' => $item,
- 'orig_item_id' => $item_id,
- 'owner_xchan' => $thread_owner,
- 'conv_mode' => $mode
+ 'item' => $item,
+ 'orig_item_id' => $item_id,
+ 'owner_xchan' => $thread_owner
]);
json_return_and_die($ret);
}
-
-
}
}
-
+
$uuid = item_message_id();
-
+
$arr = array();
-
- $arr['uuid'] = $uuid;
- $arr['mid'] = z_root() . (($is_rsvp) ? '/activity/' : '/item/') . $uuid;
- if($extended_like) {
+ $arr['uuid'] = $uuid;
+ $arr['mid'] = z_root() . (($is_rsvp) ? '/activity/' : '/item/') . $uuid;
+
+ if ($extended_like) {
$arr['item_thread_top'] = 1;
- $arr['item_origin'] = 1;
- $arr['item_wall'] = 1;
+ $arr['item_origin'] = 1;
+ $arr['item_wall'] = 1;
}
else {
$post_type = (($item['resource_type'] === 'photo') ? t('photo') : t('status'));
- if($item['obj_type'] === ACTIVITY_OBJ_EVENT)
+ if ($item['obj_type'] === ACTIVITY_OBJ_EVENT)
$post_type = t('event');
-
- $links = array(array('rel' => 'alternate','type' => 'text/html', 'href' => $item['plink']));
- $objtype = (($item['resource_type'] === 'photo') ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
- if($objtype === ACTIVITY_OBJ_NOTE && (! intval($item['item_thread_top'])))
+ $objtype = (($item['resource_type'] === 'photo') ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE);
+
+ if ($objtype === ACTIVITY_OBJ_NOTE && (!intval($item['item_thread_top'])))
$objtype = ACTIVITY_OBJ_COMMENT;
-
- $body = $item['body'];
-
- $object = json_encode(Activity::fetch_item( [ 'id' => $item['mid'] ]));
+ $object = json_encode(Activity::fetch_item(['id' => $item['mid']]));
+
+ if (!intval($item['item_thread_top']))
+ $post_type = 'comment';
- if(! intval($item['item_thread_top']))
- $post_type = 'comment';
-
- $arr['item_origin'] = 1;
+ $arr['item_origin'] = 1;
$arr['item_notshown'] = 1;
- $arr['item_type'] = $item['item_type'];
-
- if(intval($item['item_wall']))
+ $arr['item_type'] = $item['item_type'];
+
+ if (intval($item['item_wall']))
$arr['item_wall'] = 1;
-
+
// if this was a linked photo and was hidden, unhide it.
-
- if(intval($item['item_hidden'])) {
+
+ if (intval($item['item_hidden'])) {
$r = q("update item set item_hidden = 0 where id = %d",
intval($item['id'])
);
- }
-
+ }
+
}
-
- if($verb === 'like')
+
+ if ($verb === 'like')
$bodyverb = t('%1$s likes %2$s\'s %3$s');
- if($verb === 'dislike')
+ if ($verb === 'dislike')
$bodyverb = t('%1$s doesn\'t like %2$s\'s %3$s');
- if($verb === 'agree')
+ if ($verb === 'agree')
$bodyverb = t('%1$s agrees with %2$s\'s %3$s');
- if($verb === 'disagree')
+ if ($verb === 'disagree')
$bodyverb = t('%1$s doesn\'t agree with %2$s\'s %3$s');
- if($verb === 'abstain')
+ if ($verb === 'abstain')
$bodyverb = t('%1$s abstains from a decision on %2$s\'s %3$s');
- if($verb === 'attendyes')
+ if ($verb === 'attendyes')
$bodyverb = t('%1$s is attending %2$s\'s %3$s');
- if($verb === 'attendno')
+ if ($verb === 'attendno')
$bodyverb = t('%1$s is not attending %2$s\'s %3$s');
- if($verb === 'attendmaybe')
+ if ($verb === 'attendmaybe')
$bodyverb = t('%1$s may attend %2$s\'s %3$s');
-
- if(! isset($bodyverb))
- killme();
-
-
-
- if($extended_like) {
- $ulink = '[zrl=' . $ch[0]['xchan_url'] . '][bdi]' . $ch[0]['xchan_name'] . '[/bdi][/zrl]';
- $alink = '[zrl=' . $observer['xchan_url'] . '][bdi]' . $observer['xchan_name'] . '[/bdi][/zrl]';
+
+ if (!isset($bodyverb))
+ killme();
+
+ if ($extended_like) {
+ $ulink = '[zrl=' . $ch[0]['xchan_url'] . '][bdi]' . $ch[0]['xchan_name'] . '[/bdi][/zrl]';
+ $alink = '[zrl=' . $observer['xchan_url'] . '][bdi]' . $observer['xchan_name'] . '[/bdi][/zrl]';
$private = (($public) ? 0 : 1);
}
else {
- $arr['parent'] = $item['id'];
- $arr['thr_parent'] = $item['mid'];
- $ulink = '[zrl=' . $item_author['xchan_url'] . '][bdi]' . $item_author['xchan_name'] . '[/bdi][/zrl]';
- $alink = '[zrl=' . $observer['xchan_url'] . '][bdi]' . $observer['xchan_name'] . '[/bdi][/zrl]';
- $plink = '[zrl=' . z_root() . '/display/' . gen_link_id($item['mid']) . ']' . $post_type . '[/zrl]';
- $allow_cid = $item['allow_cid'];
- $allow_gid = $item['allow_gid'];
- $deny_cid = $item['deny_cid'];
- $deny_gid = $item['deny_gid'];
- $private = $item['private'];
-
+ $arr['parent'] = $item['id'];
+ $arr['thr_parent'] = $item['mid'];
+ $ulink = '[zrl=' . $item_author['xchan_url'] . '][bdi]' . $item_author['xchan_name'] . '[/bdi][/zrl]';
+ $alink = '[zrl=' . $observer['xchan_url'] . '][bdi]' . $observer['xchan_name'] . '[/bdi][/zrl]';
+ $plink = '[zrl=' . z_root() . '/display/' . gen_link_id($item['mid']) . ']' . $post_type . '[/zrl]';
+ $allow_cid = $item['allow_cid'];
+ $allow_gid = $item['allow_gid'];
+ $deny_cid = $item['deny_cid'];
+ $deny_gid = $item['deny_gid'];
+ $private = $item['private'];
+
}
-
-
+
$arr['aid'] = (($extended_like) ? $ch[0]['channel_account_id'] : $owner_aid);
$arr['uid'] = $owner_uid;
-
-
- $arr['item_flags'] = $item_flags;
- $arr['item_wall'] = $item_wall;
+ $arr['item_flags'] = $item['item_flags'];
+ $arr['item_wall'] = $item['item_wall'];
$arr['parent_mid'] = (($extended_like) ? $arr['mid'] : $item['mid']);
$arr['owner_xchan'] = (($extended_like) ? $ch[0]['xchan_hash'] : $thread_owner['xchan_hash']);
$arr['author_xchan'] = $observer['xchan_hash'];
-
-
- $arr['body'] = sprintf( $bodyverb, $alink, $ulink, $plink );
- if($obj_type === 'thing' && $r[0]['imgurl']) {
+ $arr['body'] = sprintf($bodyverb, $alink, $ulink, $plink);
+
+ if ($obj_type === 'thing' && $r[0]['imgurl']) {
$arr['body'] .= "\n\n[zmg=80x80]" . $r[0]['imgurl'] . '[/zmg]';
- }
- if($obj_type === 'profile') {
- if($public) {
- $arr['body'] .= "\n\n" . '[embed]' . z_root() . '/profile/' . $ch[0]['channel_address'] . '[/embed]';
+ }
+ if ($obj_type === 'profile') {
+ if ($public) {
+ $arr['body'] .= "\n\n" . '[embed]' . z_root() . '/profile/' . $ch[0]['channel_address'] . '[/embed]';
}
else
$arr['body'] .= "\n\n[zmg=80x80]" . $profile['thumb'] . '[/zmg]';
- }
-
-
- $arr['verb'] = $activity;
- $arr['obj_type'] = $objtype;
- $arr['obj'] = $object;
-
- if($target) {
- $arr['tgt_type'] = $tgttype;
- $arr['target'] = $target;
}
-
- $arr['allow_cid'] = $allow_cid;
- $arr['allow_gid'] = $allow_gid;
- $arr['deny_cid'] = $deny_cid;
- $arr['deny_gid'] = $deny_gid;
- $arr['item_private'] = $private;
-
- call_hooks('post_local',$arr);
-
- $post = item_store($arr);
+
+ $arr['verb'] = $activity;
+ $arr['obj_type'] = $objtype;
+ $arr['obj'] = $object;
+
+ if ($target) {
+ $arr['tgt_type'] = $tgttype;
+ $arr['target'] = $target;
+ }
+
+ $arr['allow_cid'] = $allow_cid;
+ $arr['allow_gid'] = $allow_gid;
+ $arr['deny_cid'] = $deny_cid;
+ $arr['deny_gid'] = $deny_gid;
+ $arr['item_private'] = $private;
+
+ call_hooks('post_local', $arr);
+
+ $post = item_store($arr);
$post_id = $post['item_id'];
// save the conversation from expiration
- if(local_channel() && array_key_exists('item',$post) && (intval($post['item']['id']) != intval($post['item']['parent'])))
- retain_item($post['item']['parent']);
-
+ if (local_channel() && array_key_exists('item', $post) && (intval($post['item']['id']) != intval($post['item']['parent'])))
+ retain_item($post['item']['parent']);
+
$arr['id'] = $post_id;
-
+
call_hooks('post_local_end', $arr);
-
-
- if($extended_like) {
+
+ if ($extended_like) {
$r = q("insert into likes (channel_id,liker,likee,iid,i_mid,verb,target_type,target_id,target) values (%d,'%s','%s',%d,'%s','%s','%s','%s','%s')",
intval($ch[0]['channel_id']),
dbesc($observer['xchan_hash']),
@@ -569,39 +563,38 @@ class Like extends \Zotlabs\Web\Controller {
intval($post_id),
dbesc($arr['mid']),
dbesc($activity),
- dbesc(($tgttype)? $tgttype : $objtype),
+ dbesc(($tgttype) ? $tgttype : $objtype),
dbesc($obj_id),
- dbesc(($target) ? $target : $object)
+ dbesc(($target) ? $target : $object)
);
$r = q("select * from likes where liker = '%s' and likee = '%s' and i_mid = '%s' and verb = '%s' and target_type = '%s' and target_id = '%s' ",
dbesc($observer['xchan_hash']),
dbesc($ch[0]['channel_hash']),
dbesc($arr['mid']),
dbesc($activity),
- dbesc(($tgttype)? $tgttype : $objtype),
+ dbesc(($tgttype) ? $tgttype : $objtype),
dbesc($obj_id)
);
- if($r)
- Libsync::build_sync_packet($ch[0]['channel_id'],array('likes' => $r));
-
+ if ($r)
+ Libsync::build_sync_packet($ch[0]['channel_id'], array('likes' => $r));
+
}
-
- \Zotlabs\Daemon\Master::Summon(array('Notifier','like',$post_id));
-
- if($interactive) {
- notice( t('Action completed.') . EOL);
+
+ Master::Summon(array('Notifier', 'like', $post_id));
+
+ if ($interactive) {
+ notice(t('Action completed.') . EOL);
$o .= t('Thank you.');
return $o;
}
$ret = self::like_response([
- 'item' => $item,
- 'orig_item_id' => $item_id,
- 'owner_xchan' => $thread_owner,
- 'conv_mode' => $mode
+ 'item' => $item,
+ 'orig_item_id' => $item_id,
+ 'owner_xchan' => $thread_owner
]);
json_return_and_die($ret);
}
-
+
}
diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php
index 4a1692d64..e9edd8de3 100644
--- a/Zotlabs/Module/Network.php
+++ b/Zotlabs/Module/Network.php
@@ -22,42 +22,42 @@ class Network extends \Zotlabs\Web\Controller {
if(in_array(substr($_GET['search'],0,1),[ '@', '!', '?']))
goaway('search' . '?f=&search=' . $_GET['search']);
-
+
if(count($_GET) < 2) {
$network_options = get_pconfig(local_channel(),'system','network_page_default');
if($network_options)
goaway('network' . '?f=&' . $network_options);
}
-
+
$channel = App::get_channel();
App::$profile_uid = local_channel();
head_set_icon($channel['xchan_photo_s']);
-
+
}
-
+
function get($update = 0, $load = false) {
-
+
if(! local_channel()) {
$_SESSION['return_url'] = App::$query_string;
return login(false);
}
-
+
$o = '';
$arr = array('query' => App::$query_string);
-
+
call_hooks('network_content_init', $arr);
-
+
$channel = App::get_channel();
$item_normal = item_normal();
$item_normal_update = item_normal_update();
-
+
$datequery = $datequery2 = '';
-
+
$group = 0;
-
+
$nouveau = false;
-
+
$datequery = ((x($_GET,'dend') && is_a_date_arg($_GET['dend'])) ? notags($_GET['dend']) : '');
$datequery2 = ((x($_GET,'dbegin') && is_a_date_arg($_GET['dbegin'])) ? notags($_GET['dbegin']) : '');
$gid = ((x($_GET,'gid')) ? intval($_GET['gid']) : 0);
@@ -87,13 +87,13 @@ class Network extends \Zotlabs\Web\Controller {
$search = '';
}
}
-
+
if($datequery)
$order = 'post';
-
-
+
+
// filter by collection (e.g. group)
-
+
if($gid) {
$r = q("SELECT * FROM pgrp WHERE id = %d AND uid = %d LIMIT 1",
intval($gid),
@@ -106,12 +106,12 @@ class Network extends \Zotlabs\Web\Controller {
goaway(z_root() . '/network');
// NOTREACHED
}
-
+
$group = $gid;
$group_hash = $r[0]['hash'];
$def_acl = array('allow_gid' => '<' . $r[0]['hash'] . '>');
}
-
+
$default_cmin = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmin',0) : (-1));
$default_cmax = ((Apps::system_app_installed(local_channel(),'Affinity Tool')) ? get_pconfig(local_channel(),'affinity','cmax',99) : (-1));
@@ -127,7 +127,7 @@ class Network extends \Zotlabs\Web\Controller {
$net = ((x($_GET,'net')) ? $_GET['net'] : '');
$pf = ((x($_GET,'pf')) ? $_GET['pf'] : '');
$unseen = ((x($_GET,'unseen')) ? $_GET['unseen'] : '');
-
+
if (Apps::system_app_installed(local_channel(),'Affinity Tool')) {
$affinity_locked = intval(get_pconfig(local_channel(),'affinity','lock',1));
if ($affinity_locked) {
@@ -155,16 +155,16 @@ class Network extends \Zotlabs\Web\Controller {
}
$def_acl = [ 'allow_cid' => '<' . $cid_r[0]['abook_xchan'] . '>', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '' ];
}
-
+
if(! $update) {
-
+
// search terms header
if($search || $hashtags) {
$o .= replace_macros(get_markup_template("section_title.tpl"),array(
'$title' => t('Search Results For:') . ' ' . (($search) ? htmlspecialchars($search, ENT_COMPAT,'UTF-8') : '#' . htmlspecialchars($hashtags, ENT_COMPAT,'UTF-8'))
));
}
-
+
nav_set_selected('Network');
$bang = '!';
@@ -179,14 +179,14 @@ class Network extends \Zotlabs\Web\Controller {
}
$channel_acl = array(
- 'allow_cid' => $channel['channel_allow_cid'],
- 'allow_gid' => $channel['channel_allow_gid'],
- 'deny_cid' => $channel['channel_deny_cid'],
+ 'allow_cid' => $channel['channel_allow_cid'],
+ 'allow_gid' => $channel['channel_allow_gid'],
+ 'deny_cid' => $channel['channel_deny_cid'],
'deny_gid' => $channel['channel_deny_gid']
);
$private_editing = (($group || $cid) ? true : false);
-
+
$x = array(
'is_owner' => true,
'allow_location' => ((intval(get_pconfig($channel['channel_id'],'system','use_browser_location'))) ? '1' : ''),
@@ -204,28 +204,28 @@ class Network extends \Zotlabs\Web\Controller {
'jotnets' => true,
'reset' => t('Reset form')
);
-
+
$status_editor = status_editor($a,$x,false,'Network');
$o .= $status_editor;
}
-
-
+
+
// We don't have to deal with ACL's on this page. You're looking at everything
// that belongs to you, hence you can see all of it. We will filter by group if
// desired.
-
-
+
+
$sql_options = (($star)
? " and item_starred = 1 "
: '');
-
+
$sql_nets = '';
$item_thread_top = ' AND item_thread_top = 1 ';
-
+
$sql_extra = '';
-
+
if($group) {
$contact_str = '';
@@ -241,18 +241,18 @@ class Network extends \Zotlabs\Web\Controller {
}
$item_thread_top = '';
$sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND (( author_xchan IN ( $contact_str ) OR owner_xchan in ( $contact_str )) or allow_gid like '" . protect_sprintf('%<' . dbesc($group_hash) . '>%') . "' ) and id = parent $item_normal ) ";
-
+
$x = group_rec_byhash(local_channel(), $group_hash);
-
+
if($x) {
$title = replace_macros(get_markup_template("section_title.tpl"),array(
'$title' => t('Privacy group: ') . $x['gname']
));
}
-
+
$o = $title;
$o .= $status_editor;
-
+
}
elseif($cid_r) {
$item_thread_top = '';
@@ -324,75 +324,26 @@ class Network extends \Zotlabs\Web\Controller {
}
}
-
+
if(x($category)) {
$sql_extra .= protect_sprintf(term_query('item', $category, TERM_CATEGORY));
}
if(x($hashtags)) {
$sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
}
-
- if(! $update) {
- // The special div is needed for liveUpdate to kick in for this page.
- // We only launch liveUpdate if you aren't filtering in some incompatible
- // way and also you aren't writing a comment (discovered in javascript).
- $maxheight = get_pconfig(local_channel(),'system','network_divmore_height');
- if(! $maxheight)
- $maxheight = 400;
-
-
- $o .= '<div id="live-network"></div>' . "\r\n";
- $o .= "<script> var profile_uid = " . local_channel()
- . "; var profile_page = " . App::$pager['page']
- . "; divmore_height = " . intval($maxheight) . "; </script>\r\n";
-
- App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
- '$baseurl' => z_root(),
- '$pgtype' => 'network',
- '$uid' => ((local_channel()) ? local_channel() : '0'),
- '$gid' => (($gid) ? $gid : '0'),
- '$cid' => (($cid) ? $cid : '0'),
- '$cmin' => (($cmin) ? $cmin : '(-1)'),
- '$cmax' => (($cmax) ? $cmax : '(-1)'),
- '$star' => (($star) ? $star : '0'),
- '$liked' => (($liked) ? $liked : '0'),
- '$conv' => (($conv) ? $conv : '0'),
- '$spam' => (($spam) ? $spam : '0'),
- '$fh' => '0',
- '$dm' => (($dm) ? $dm : '0'),
- '$nouveau' => (($nouveau) ? $nouveau : '0'),
- '$wall' => '0',
- '$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0),
- '$page' => ((App::$pager['page'] != 1) ? App::$pager['page'] : 1),
- '$search' => (($search) ? urlencode($search) : ''),
- '$xchan' => (($xchan) ? urlencode($xchan) : ''),
- '$order' => $order,
- '$file' => (($file) ? urlencode($file) : ''),
- '$cats' => (($category) ? urlencode($category) : ''),
- '$tags' => (($hashtags) ? urlencode($hashtags) : ''),
- '$dend' => $datequery,
- '$mid' => '',
- '$verb' => (($verb) ? urlencode($verb) : ''),
- '$net' => (($net) ? urlencode($net) : ''),
- '$dbegin' => $datequery2,
- '$pf' => (($pf) ? intval($pf) : 0),
- '$unseen' => (($unseen) ? urlencode($unseen) : '')
- ));
- }
-
$sql_extra3 = '';
-
+
if($datequery) {
$sql_extra3 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
}
if($datequery2) {
$sql_extra3 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
}
-
+
$sql_extra2 = (($nouveau) ? '' : " AND item.parent = item.id ");
$sql_extra3 = (($nouveau) ? '' : $sql_extra3);
-
+
if(x($_GET,'search')) {
$search = escape_tags($_GET['search']);
if(strpos($search,'#') === 0) {
@@ -405,7 +356,7 @@ class Network extends \Zotlabs\Web\Controller {
);
}
}
-
+
if ($verb) {
// the presence of a leading dot in the verb determines
@@ -425,7 +376,7 @@ class Network extends \Zotlabs\Web\Controller {
);
}
}
-
+
if(strlen($file)) {
$sql_extra .= term_query('item',$file,TERM_FILE);
}
@@ -433,52 +384,52 @@ class Network extends \Zotlabs\Web\Controller {
if ($dm) {
$sql_extra .= " AND item_private = 2 ";
}
-
+
if($conv) {
$item_thread_top = '';
$sql_extra .= " AND ( author_xchan = '" . dbesc($channel['channel_hash']) . "' OR item_mentionsme = 1 ) ";
}
-
+
if($update && ! $load) {
-
+
// only setup pagination on initial page view
$pager_sql = '';
-
+
}
else {
$itemspage = get_pconfig(local_channel(),'system','itemspage');
App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 10));
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(App::$pager['itemspage']), intval(App::$pager['start']));
}
-
+
// cmin and cmax are both -1 when the affinity tool is disabled
if(($cmin != (-1)) || ($cmax != (-1))) {
-
+
// Not everybody who shows up in the network stream will be in your address book.
// By default those that aren't are assumed to have closeness = 99; but this isn't
// recorded anywhere. So if cmax is 99, we'll open the search up to anybody in
// the stream with a NULL address book entry.
-
+
$sql_nets .= " AND ";
-
+
if($cmax == 99)
$sql_nets .= " ( ";
-
+
$sql_nets .= "( abook.abook_closeness >= " . intval($cmin) . " ";
$sql_nets .= " AND abook.abook_closeness <= " . intval($cmax) . " ) ";
-
+
if($cmax == 99)
$sql_nets .= " OR abook.abook_closeness IS NULL ) ";
-
+
}
- $net_query = (($net) ? " left join xchan on xchan_hash = author_xchan " : '');
+ $net_query = (($net) ? " left join xchan on xchan_hash = author_xchan " : '');
$net_query2 = (($net) ? " and xchan_network = '" . protect_sprintf(dbesc($net)) . "' " : '');
$abook_uids = " and abook.abook_channel = " . local_channel() . " ";
$uids = " and item.uid = " . local_channel() . " ";
-
+
if(feature_enabled(local_channel(), 'network_list_mode'))
$page_mode = 'list';
else
@@ -504,7 +455,7 @@ class Network extends \Zotlabs\Web\Controller {
if($nouveau && $load) {
// "New Item View" - show all items unthreaded in reverse created date order
- $items = q("SELECT item.*, item.id AS item_id, created FROM item
+ $items = q("SELECT item.*, item.id AS item_id, created FROM item
left join abook on ( item.owner_xchan = abook.abook_xchan $abook_uids )
$net_query
WHERE true $uids $item_normal
@@ -517,23 +468,23 @@ class Network extends \Zotlabs\Web\Controller {
$parents_str = ids_to_querystr($items,'item_id');
require_once('include/items.php');
-
+
xchan_query($items);
-
+
$items = fetch_post_tags($items,true);
}
elseif($update) {
-
+
// Normal conversation view
-
+
if($order === 'post')
$ordering = "created";
else
$ordering = "commented";
-
+
if($load) {
// Fetch a page full of parent items for this page
- $r = q("SELECT item.parent AS item_id FROM item
+ $r = q("SELECT item.parent AS item_id FROM item
left join abook on ( item.owner_xchan = abook.abook_xchan $abook_uids )
$net_query
WHERE true $uids $item_thread_top $item_normal
@@ -557,18 +508,18 @@ class Network extends \Zotlabs\Web\Controller {
}
// Then fetch all the children of the parents that are on this page
-
+
if($r) {
-
+
$parents_str = ids_to_querystr($r,'item_id');
-
+
$items = q("SELECT item.*, item.id AS item_id FROM item
WHERE true $uids $item_normal
AND item.parent IN ( %s )
$sql_extra ",
dbesc($parents_str)
);
-
+
xchan_query($items,true);
$items = fetch_post_tags($items,true);
$items = conv_sort($items,$ordering);
@@ -578,20 +529,70 @@ class Network extends \Zotlabs\Web\Controller {
}
}
-
+
$mode = (($nouveau) ? 'network-new' : 'network');
if($search)
$mode = 'search';
-
+
+ if(! $update) {
+ // The special div is needed for liveUpdate to kick in for this page.
+ // We only launch liveUpdate if you aren't filtering in some incompatible
+ // way and also you aren't writing a comment (discovered in javascript).
+
+ $maxheight = get_pconfig(local_channel(),'system','network_divmore_height');
+ if(! $maxheight)
+ $maxheight = 400;
+
+
+ $o .= '<div id="live-network"></div>' . "\r\n";
+ $o .= "<script> var profile_uid = " . local_channel()
+ . "; var profile_page = " . App::$pager['page']
+ . "; divmore_height = " . intval($maxheight) . "; </script>\r\n";
+
+ App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
+ '$baseurl' => z_root(),
+ '$pgtype' => 'network',
+ '$uid' => ((local_channel()) ? local_channel() : '0'),
+ '$gid' => (($gid) ? $gid : '0'),
+ '$cid' => (($cid) ? $cid : '0'),
+ '$cmin' => (($cmin) ? $cmin : '(-1)'),
+ '$cmax' => (($cmax) ? $cmax : '(-1)'),
+ '$star' => (($star) ? $star : '0'),
+ '$liked' => (($liked) ? $liked : '0'),
+ '$conv' => (($conv) ? $conv : '0'),
+ '$spam' => (($spam) ? $spam : '0'),
+ '$fh' => '0',
+ '$dm' => (($dm) ? $dm : '0'),
+ '$nouveau' => (($nouveau) ? $nouveau : '0'),
+ '$wall' => '0',
+ '$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0),
+ '$page' => ((App::$pager['page'] != 1) ? App::$pager['page'] : 1),
+ '$search' => (($search) ? urlencode($search) : ''),
+ '$xchan' => (($xchan) ? urlencode($xchan) : ''),
+ '$order' => $order,
+ '$file' => (($file) ? urlencode($file) : ''),
+ '$cats' => (($category) ? urlencode($category) : ''),
+ '$tags' => (($hashtags) ? urlencode($hashtags) : ''),
+ '$dend' => $datequery,
+ '$mid' => '',
+ '$verb' => (($verb) ? urlencode($verb) : ''),
+ '$net' => (($net) ? urlencode($net) : ''),
+ '$dbegin' => $datequery2,
+ '$pf' => (($pf) ? intval($pf) : 0),
+ '$unseen' => (($unseen) ? urlencode($unseen) : ''),
+ '$page_mode' => $page_mode
+ ));
+ }
+
$o .= conversation($items,$mode,$update,$page_mode);
-
+
if(($items) && (! $update))
$o .= alt_pager(count($items));
$_SESSION['loadtime'] = datetime_convert();
-
+
return $o;
}
-
+
}
diff --git a/Zotlabs/Module/Notifications.php b/Zotlabs/Module/Notifications.php
index 1762ad5f6..55268e0a2 100644
--- a/Zotlabs/Module/Notifications.php
+++ b/Zotlabs/Module/Notifications.php
@@ -19,7 +19,7 @@ class Notifications extends \Zotlabs\Web\Controller {
$r = q("select count(*) as total from notify where uid = %d and seen = 0",
intval(local_channel())
);
- if($r && intval($t[0]['total']) > 49) {
+ if($r && intval($r[0]['total']) > 49) {
$r = q("select * from notify where uid = %d
and seen = 0 order by created desc limit 50",
intval(local_channel())
@@ -32,7 +32,7 @@ class Notifications extends \Zotlabs\Web\Controller {
$r2 = q("select * from notify where uid = %d
and seen = 1 order by created desc limit %d",
intval(local_channel()),
- intval(50 - intval($t[0]['total']))
+ intval(50 - intval($r[0]['total']))
);
$r = array_merge($r1,$r2);
}
@@ -41,7 +41,7 @@ class Notifications extends \Zotlabs\Web\Controller {
$notifications_available = 1;
foreach ($r as $rr) {
$x = strip_tags(bbcode($rr['msg']));
- $notif_content .= replace_macros(get_markup_template('notify.tpl'),array(
+ $notif_content = replace_macros(get_markup_template('notify.tpl'),array(
'$item_link' => z_root().'/notify/view/'. $rr['id'],
'$item_image' => $rr['photo'],
'$item_text' => $x,
@@ -52,7 +52,7 @@ class Notifications extends \Zotlabs\Web\Controller {
}
}
else {
- $notif_content .= t('No more system notifications.');
+ $notif_content = t('No more system notifications.');
}
$o .= replace_macros(get_markup_template('notifications.tpl'),array(
diff --git a/Zotlabs/Module/Owa.php b/Zotlabs/Module/Owa.php
index d6aeb8af5..9a3513f34 100644
--- a/Zotlabs/Module/Owa.php
+++ b/Zotlabs/Module/Owa.php
@@ -39,7 +39,7 @@ class Owa extends Controller {
$found = discover_by_webbie(str_replace('acct:','',$keyId));
if ($found) {
$r = q("SELECT * FROM hubloc LEFT JOIN xchan ON hubloc_hash = xchan_hash
- WHERE OR hubloc_id_url = '%s'",
+ WHERE hubloc_id_url = '%s'",
dbesc($keyId)
);
}
diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php
index 01edda9ae..041bdf5a2 100644
--- a/Zotlabs/Module/Photo.php
+++ b/Zotlabs/Module/Photo.php
@@ -35,7 +35,7 @@ class Photo extends \Zotlabs\Web\Controller {
call_hooks('cache_mode_hook', $cache_mode);
$observer_xchan = get_observer_hash();
- $cachecontrol = '';
+ $cachecontrol = ', no-cache';
if(isset($type)) {
@@ -102,7 +102,7 @@ class Photo extends \Zotlabs\Web\Controller {
$modified = filemtime($default);
}
- $cachecontrol = ', must-revalidate';
+ $cachecontrol .= ', must-revalidate';
}
else {
@@ -147,7 +147,7 @@ class Photo extends \Zotlabs\Web\Controller {
);
if($r) {
$allowed = (-1);
-
+ $filename = $r[0]['filename'];
$u = intval($r[0]['photo_usage']);
if($u) {
$allowed = 1;
@@ -169,6 +169,7 @@ class Photo extends \Zotlabs\Web\Controller {
$url = z_root() . '/sslify/' . $filename . '?f=&url=' . urlencode($url);
goaway($url);
}
+ $cachecontrol = '';
}
}
}
@@ -271,7 +272,7 @@ class Photo extends \Zotlabs\Web\Controller {
// in the event that infrastructure caching is present.
$smaxage = intval($maxage/12);
- header("Cache-Control: no-cache, s-maxage=" . $smaxage . ", max-age=" . $maxage . $cachecontrol);
+ header("Cache-Control: s-maxage=" . $smaxage . ", max-age=" . $maxage . $cachecontrol);
}
diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php
index fa9216c97..099289c03 100644
--- a/Zotlabs/Module/Photos.php
+++ b/Zotlabs/Module/Photos.php
@@ -16,66 +16,66 @@ require_once('include/text.php');
class Photos extends \Zotlabs\Web\Controller {
function init() {
-
+
if(observer_prohibited()) {
return;
}
-
+
if(argc() > 1) {
$nick = argv(1);
-
+
profile_load($nick);
-
+
$channelx = channelx_by_nick($nick);
-
+
if(! $channelx)
return;
-
+
\App::$data['channel'] = $channelx;
-
+
$observer = \App::get_observer();
\App::$data['observer'] = $observer;
-
+
$observer_xchan = (($observer) ? $observer['xchan_hash'] : '');
-
+
head_set_icon(\App::$data['channel']['xchan_photo_s']);
-
+
\App::$page['htmlhead'] .= "<script> var profile_uid = " . ((\App::$data['channel']) ? \App::$data['channel']['channel_id'] : 0) . "; </script>" ;
-
+
}
-
+
return;
}
-
-
-
+
+
+
function post() {
-
+
logger('mod-photos: photos_post: begin' , LOGGER_DEBUG);
-
+
logger('mod_photos: REQUEST ' . print_r($_REQUEST,true), LOGGER_DATA);
logger('mod_photos: FILES ' . print_r($_FILES,true), LOGGER_DATA);
-
+
$ph = photo_factory('');
-
+
$phototypes = $ph->supportedTypes();
-
+
$can_post = false;
-
+
$page_owner_uid = \App::$data['channel']['channel_id'];
-
+
if(perm_is_allowed($page_owner_uid,get_observer_hash(),'write_storage'))
$can_post = true;
-
+
if(! $can_post) {
notice( t('Permission denied.') . EOL );
if(is_ajax())
killme();
return;
}
-
+
$s = abook_self($page_owner_uid);
-
+
if(! $s) {
notice( t('Page owner information could not be retrieved.') . EOL);
logger('mod_photos: post: unable to locate contact record for page owner. uid=' . $page_owner_uid);
@@ -83,30 +83,30 @@ class Photos extends \Zotlabs\Web\Controller {
killme();
return;
}
-
- $owner_record = $s[0];
-
+
+ $owner_record = $s[0];
+
$acl = new \Zotlabs\Access\AccessList(\App::$data['channel']);
-
+
if((argc() > 3) && (argv(2) === 'album')) {
-
+
$album = argv(3);
if(! photos_album_exists($page_owner_uid, get_observer_hash(), $album)) {
notice( t('Album not found.') . EOL);
goaway(z_root() . '/' . $_SESSION['photo_return']);
}
-
-
+
+
/*
* DELETE photo album and all its photos
*/
-
+
if($_REQUEST['dropalbum'] == t('Delete Album')) {
-
-
+
+
$folder_hash = '';
-
+
$r = q("select * from attach where is_dir = 1 and uid = %d and hash = '%s'",
intval($page_owner_uid),
dbesc($album)
@@ -116,13 +116,13 @@ class Photos extends \Zotlabs\Web\Controller {
return;
}
$folder_hash = $r[0]['hash'];
-
-
+
+
$res = array();
$admin_delete = false;
// get the list of photos we are about to delete
-
+
if(remote_channel() && (! local_channel())) {
$str = photos_album_get_db_idstr($page_owner_uid,$album,remote_channel());
}
@@ -139,7 +139,7 @@ class Photos extends \Zotlabs\Web\Controller {
if(! $str) {
goaway(z_root() . '/' . $_SESSION['photo_return']);
}
-
+
$r = q("select id from item where resource_id in ( $str ) and resource_type = 'photo' and uid = %d " . item_normal(),
intval($page_owner_uid)
);
@@ -148,34 +148,34 @@ class Photos extends \Zotlabs\Web\Controller {
attach_delete($page_owner_uid, $i['resource_id'], true );
}
}
-
+
// remove the associated photos in case they weren't attached to an item
-
+
q("delete from photo where resource_id in ( $str ) and uid = %d",
intval($page_owner_uid)
);
-
+
// @FIXME do the same for the linked attach
-
+
if($folder_hash) {
attach_delete($page_owner_uid, $folder_hash, true );
- if(! $admin_delete) {
+ if(! $admin_delete) {
$sync = attach_export_data(\App::$data['channel'],$folder_hash, true);
-
- if($sync)
+
+ if($sync)
Libsync::build_sync_packet($page_owner_uid,array('file' => array($sync)));
}
}
-
+
}
-
+
goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address']);
}
-
+
if((argc() > 2) && (x($_REQUEST,'delete')) && ($_REQUEST['delete'] === t('Delete Photo'))) {
// same as above but remove single photo
-
+
$ob_hash = get_observer_hash();
if(! $ob_hash)
goaway(z_root() . '/' . $_SESSION['photo_return']);
@@ -185,18 +185,18 @@ class Photos extends \Zotlabs\Web\Controller {
intval(local_channel()),
dbesc(argv(2))
);
-
+
if($r) {
attach_delete($page_owner_uid, $r[0]['resource_id'], true );
$sync = attach_export_data(\App::$data['channel'],$r[0]['resource_id'], true);
-
- if($sync)
+
+ if($sync)
Libsync::build_sync_packet($page_owner_uid,array('file' => array($sync)));
}
elseif(is_site_admin()) {
// If the admin deletes a photo, don't sync
attach_delete($page_owner_uid, argv(2), true);
- }
+ }
goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/album/' . $_SESSION['album_return']);
@@ -208,10 +208,10 @@ class Photos extends \Zotlabs\Web\Controller {
intval($page_owner_uid)
);
if(($m) && ($m[0]['folder'] != $_POST['move_to_album'])) {
- attach_move($page_owner_uid,argv(2),$_POST['move_to_album']);
+ attach_move($page_owner_uid,argv(2),$_POST['move_to_album']);
$sync = attach_export_data(\App::$data['channel'], argv(2), false);
- if($sync)
+ if($sync)
Libsync::build_sync_packet($page_owner_uid,array('file' => array($sync)));
if(! ($_POST['desc'] && $_POST['newtag']))
@@ -220,28 +220,28 @@ class Photos extends \Zotlabs\Web\Controller {
}
if((argc() > 2) && ((x($_POST,'desc') !== false) || (x($_POST,'newtag') !== false))) {
-
+
$desc = ((x($_POST,'desc')) ? notags(trim($_POST['desc'])) : '');
$rawtags = ((x($_POST,'newtag')) ? notags(trim($_POST['newtag'])) : '');
$item_id = ((x($_POST,'item_id')) ? intval($_POST['item_id']) : 0);
$is_nsfw = ((x($_POST,'adult')) ? intval($_POST['adult']) : 0);
-
+
$acl->set_from_array($_POST);
$perm = $acl->get();
-
+
$resource_id = argv(2);
-
- if((x($_POST,'rotate') !== false) &&
+
+ if((x($_POST,'rotate') !== false) &&
( (intval($_POST['rotate']) == 1) || (intval($_POST['rotate']) == 2) )) {
logger('rotate');
-
+
$r = q("select * from photo where resource_id = '%s' and uid = %d and imgscale = 0 limit 1",
dbesc($resource_id),
intval($page_owner_uid)
);
if(count($r)) {
-
+
$ph = photo_factory(@file_get_contents(dbunescbin($r[0]['content'])), $r[0]['mimetype']);
if($ph->is_valid()) {
$rotate_deg = ( (intval($_POST['rotate']) == 1) ? 270 : 90 );
@@ -255,12 +255,12 @@ class Photos extends \Zotlabs\Web\Controller {
dbesc($resource_id),
intval($page_owner_uid)
);
-
+
$ph->saveImage(dbunescbin($r[0]['content']));
-
- $arr = [
+
+ $arr = [
'aid' => get_account_id(),
- 'uid' => intval($page_owner_uid),
+ 'uid' => intval($page_owner_uid),
'resource_id' => dbesc($resource_id),
'filename' => $r[0]['filename'],
'imgscale' => 0,
@@ -277,28 +277,31 @@ class Photos extends \Zotlabs\Web\Controller {
unset($arr['os_syspath']);
- if($width > 1024 || $height > 1024)
+ $width = $r[0]['width'];
+ $height = $r[0]['height'];
+
+ if($width > 1024 || $height > 1024)
$ph->scaleImage(1024);
$ph->storeThumbnail($arr, PHOTO_RES_1024);
- if($width > 640 || $height > 640)
+ if($width > 640 || $height > 640)
$ph->scaleImage(640);
$ph->storeThumbnail($arr, PHOTO_RES_640);
- if($width > 320 || $height > 320)
+ if($width > 320 || $height > 320)
$ph->scaleImage(320);
$ph->storeThumbnail($arr, PHOTO_RES_320);
}
}
}
-
+
$p = q("SELECT mimetype, is_nsfw, description, resource_id, imgscale, allow_cid, allow_gid, deny_cid, deny_gid FROM photo WHERE resource_id = '%s' AND uid = %d ORDER BY imgscale DESC",
dbesc($resource_id),
intval($page_owner_uid)
);
if($p) {
$ext = $phototypes[$p[0]['mimetype']];
-
+
$r = q("UPDATE photo SET description = '%s', allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' WHERE resource_id = '%s' AND uid = %d",
dbesc($desc),
dbesc($perm['allow_cid']),
@@ -309,9 +312,7 @@ class Photos extends \Zotlabs\Web\Controller {
intval($page_owner_uid)
);
}
-
- $item_private = (($str_contact_allow || $str_group_allow || $str_contact_deny || $str_group_deny) ? true : false);
-
+
$old_is_nsfw = $p[0]['is_nsfw'];
if($old_is_nsfw != $is_nsfw) {
$r = q("update photo set is_nsfw = %d where resource_id = '%s' and uid = %d",
@@ -320,31 +321,31 @@ class Photos extends \Zotlabs\Web\Controller {
intval($page_owner_uid)
);
}
-
+
/* Don't make the item visible if the only change was the album name */
-
+
$visibility = 0;
if($p[0]['description'] !== $desc || strlen($rawtags))
$visibility = 1;
-
+
if(! $item_id) {
$item_id = photos_create_item(\App::$data['channel'],get_observer_hash(),$p[0],$visibility);
-
+
}
-
+
if($item_id) {
$r = q("SELECT * FROM item WHERE id = %d AND uid = %d LIMIT 1",
intval($item_id),
intval($page_owner_uid)
);
-
+
if($r) {
$old_tag = $r[0]['tag'];
$old_inform = $r[0]['inform'];
}
}
-
-
+
+
// make sure the linked item has the same permissions as the photo regardless of any other changes
$x = q("update item set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', item_private = %d
where id = %d",
@@ -355,7 +356,7 @@ class Photos extends \Zotlabs\Web\Controller {
intval($acl->is_private()),
intval($item_id)
);
-
+
// make sure the attach has the same permissions as the photo regardless of any other changes
$x = q("update attach set allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where hash = '%s' and uid = %d and is_photo = 1",
dbesc($perm['allow_cid']),
@@ -365,46 +366,46 @@ class Photos extends \Zotlabs\Web\Controller {
dbesc($resource_id),
intval($page_owner_uid)
);
-
-
-
+
+
+
if(strlen($rawtags)) {
-
+
$str_tags = '';
$inform = '';
-
+
// if the new tag doesn't have a namespace specifier (@foo or #foo) give it a mention
-
+
$x = substr($rawtags,0,1);
if($x !== '@' && $x !== '#')
$rawtags = '@' . $rawtags;
-
+
require_once('include/text.php');
$profile_uid = \App::$profile['profile_uid'];
-
+
$results = linkify_tags($rawtags, (local_channel()) ? local_channel() : $profile_uid);
-
+
$success = $results['success'];
$post_tags = array();
-
+
foreach($results as $result) {
$success = $result['success'];
if($success['replaced']) {
$post_tags[] = array(
- 'uid' => $profile_uid,
+ 'uid' => $profile_uid,
'ttype' => $success['termtype'],
'otype' => TERM_OBJ_POST,
'term' => $success['term'],
'url' => $success['url']
- );
+ );
}
}
-
+
$r = q("select * from item where id = %d and uid = %d limit 1",
intval($item_id),
intval($page_owner_uid)
);
-
+
if($r) {
$r = fetch_post_tags($r,true);
$datarray = $r[0];
@@ -412,42 +413,42 @@ class Photos extends \Zotlabs\Web\Controller {
if((! array_key_exists('term',$datarray)) || (! is_array($datarray['term'])))
$datarray['term'] = $post_tags;
else
- $datarray['term'] = array_merge($datarray['term'],$post_tags);
+ $datarray['term'] = array_merge($datarray['term'],$post_tags);
}
item_store_update($datarray,$execflag);
}
-
+
}
$sync = attach_export_data(\App::$data['channel'],$resource_id);
-
- if($sync)
+
+ if($sync)
Libsync::build_sync_packet($page_owner_uid,array('file' => array($sync)));
-
+
goaway(z_root() . '/' . $_SESSION['photo_return']);
return; // NOTREACHED
-
-
+
+
}
-
-
+
+
/**
* default post action - upload a photo
*/
-
+
$channel = \App::$data['channel'];
$observer = \App::$data['observer'];
-
+
$_REQUEST['source'] = 'photos';
require_once('include/attach.php');
-
+
if(! local_channel()) {
$_REQUEST['contact_allow'] = expand_acl($channel['channel_allow_cid']);
$_REQUEST['group_allow'] = expand_acl($channel['channel_allow_gid']);
$_REQUEST['contact_deny'] = expand_acl($channel['channel_deny_cid']);
$_REQUEST['group_deny'] = expand_acl($channel['channel_deny_gid']);
}
-
+
$matches = [];
$partial = false;
@@ -467,7 +468,7 @@ class Photos extends \Zotlabs\Web\Controller {
if($x['partial']) {
header('Range: bytes=0-' . (($x['length']) ? $x['length'] - 1 : 0));
- json_return_and_die($result);
+ json_return_and_die($x);
}
else {
header('Range: bytes=0-' . (($x['size']) ? $x['size'] - 1 : 0));
@@ -481,7 +482,7 @@ class Photos extends \Zotlabs\Web\Controller {
];
}
}
- else {
+ else {
if(! array_key_exists('userfile',$_FILES)) {
$_FILES['userfile'] = [
'name' => $_FILES['files']['name'],
@@ -494,53 +495,53 @@ class Photos extends \Zotlabs\Web\Controller {
}
$r = attach_store($channel,get_observer_hash(), '', $_REQUEST);
-
+
if(! $r['success']) {
notice($r['message'] . EOL);
goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address']);
- }
+ }
goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/album/' . $r['data']['folder']);
-
+
}
-
-
-
+
+
+
function get() {
-
+
// URLs:
// photos/name
// photos/name/album/xxxxx (xxxxx is album name)
// photos/name/image/xxxxx
-
-
+
+
if(observer_prohibited()) {
notice( t('Public access denied.') . EOL);
return;
}
-
+
$unsafe = ((array_key_exists('unsafe',$_REQUEST) && $_REQUEST['unsafe']) ? 1 : 0);
-
+
require_once('include/bbcode.php');
require_once('include/security.php');
require_once('include/conversation.php');
-
+
if(! x(\App::$data,'channel')) {
notice( t('No photos selected') . EOL );
return;
}
-
+
$ph = photo_factory('');
$phototypes = $ph->supportedTypes();
-
+
$_SESSION['photo_return'] = \App::$cmd;
-
+
//
- // Parse arguments
+ // Parse arguments
//
-
+
$can_comment = perm_is_allowed(\App::$profile['profile_uid'],get_observer_hash(),'post_comments');
-
+
if(argc() > 3) {
$datatype = argv(2);
$datum = argv(3);
@@ -552,70 +553,70 @@ class Photos extends \Zotlabs\Web\Controller {
else
$datatype = 'summary';
}
-
+
if(argc() > 4)
$cmd = argv(4);
else
$cmd = 'view';
-
+
//
// Setup permissions structures
//
-
+
$can_post = false;
$visitor = 0;
-
-
+
+
$owner_uid = \App::$data['channel']['channel_id'];
$owner_aid = \App::$data['channel']['channel_account_id'];
-
+
$observer = \App::get_observer();
-
+
$can_post = perm_is_allowed($owner_uid,$observer['xchan_hash'],'write_storage');
$can_view = perm_is_allowed($owner_uid,$observer['xchan_hash'],'view_storage');
-
+
if(! $can_view) {
notice( t('Access to this item is restricted.') . EOL);
return;
}
-
+
$sql_item = item_permissions_sql($owner_uid,get_observer_hash());
$sql_extra = permissions_sql($owner_uid,get_observer_hash(),'photo');
$sql_attach = permissions_sql($owner_uid,get_observer_hash(),'attach');
nav_set_selected('Photos');
-
+
$o = '<script src="vendor/blueimp/jquery-file-upload/js/vendor/jquery.ui.widget.js"></script>
<script src="vendor/blueimp/jquery-file-upload/js/jquery.iframe-transport.js"></script>
<script src="vendor/blueimp/jquery-file-upload/js/jquery.fileupload.js"></script>';
- $o .= "<script> var profile_uid = " . \App::$profile['profile_uid']
+ $o .= "<script> var profile_uid = " . \App::$profile['profile_uid']
. "; var netargs = '?f='; var profile_page = " . \App::$pager['page'] . "; </script>\r\n";
-
+
$_is_owner = (local_channel() && (local_channel() == $owner_uid));
-
+
/**
* Display upload form
*/
-
+
if( $can_post) {
-
+
$uploader = '';
-
+
$ret = array('post_url' => z_root() . '/photos/' . \App::$data['channel']['channel_address'],
'addon_text' => $uploader,
'default_upload' => true);
-
+
call_hooks('photo_upload_form',$ret);
-
+
/* Show space usage */
-
+
$r = q("select sum(filesize) as total from photo where aid = %d and imgscale = 0 ",
intval(\App::$data['channel']['channel_account_id'])
);
-
-
+
+
$limit = engr_units_to_bytes(service_class_fetch(\App::$data['channel']['channel_id'],'photo_upload_limit'));
if($limit !== false) {
$usage_message = sprintf( t("%1$.2f MB of %2$.2f MB photo storage used."), $r[0]['total'] / 1024000, $limit / 1024000 );
@@ -623,22 +624,22 @@ class Photos extends \Zotlabs\Web\Controller {
else {
$usage_message = sprintf( t('%1$.2f MB photo storage used.'), $r[0]['total'] / 1024000 );
}
-
+
if($_is_owner) {
$channel = \App::get_channel();
-
+
$acl = new \Zotlabs\Access\AccessList($channel);
$channel_acl = $acl->get();
-
+
$lockstate = (($acl->is_private()) ? 'lock' : 'unlock');
}
-
+
$aclselect = (($_is_owner) ? populate_acl($channel_acl,false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_storage')) : '');
-
+
// this is wrong but is to work around an issue with js_upload wherein it chokes if these variables
- // don't exist. They really should be set to a parseable representation of the channel's default permissions
- // which can be processed by getSelected()
-
+ // don't exist. They really should be set to a parseable representation of the channel's default permissions
+ // which can be processed by getSelected()
+
if(! $aclselect) {
$aclselect = '<input id="group_allow" type="hidden" name="allow_gid[]" value="" /><input id="contact_allow" type="hidden" name="allow_cid[]" value="" /><input id="group_deny" type="hidden" name="deny_gid[]" value="" /><input id="contact_deny" type="hidden" name="deny_cid[]" value="" />';
}
@@ -648,11 +649,11 @@ class Photos extends \Zotlabs\Web\Controller {
if($datum) {
$h = attach_by_hash_nodata($datum,get_observer_hash());
$selname = $h['data']['display_path'];
- }
+ }
+
-
$albums = ((array_key_exists('albums', \App::$data)) ? \App::$data['albums'] : photos_albums_list(\App::$data['channel'],\App::$data['observer']));
-
+
if(! $selname) {
$def_album = get_pconfig(\App::$data['channel']['channel_id'],'system','photo_path');
if($def_album) {
@@ -660,7 +661,7 @@ class Photos extends \Zotlabs\Web\Controller {
$albums['album'][] = array('text' => $selname);
}
}
-
+
$tpl = get_markup_template('photos_upload.tpl');
$upload_form = replace_macros($tpl,array(
'$pagename' => t('Upload Photos'),
@@ -685,22 +686,22 @@ class Photos extends \Zotlabs\Web\Controller {
'$default' => (($ret['default_upload']) ? true : false),
'$uploadurl' => $ret['post_url'],
'$submit' => t('Upload')
-
+
));
-
+
}
-
+
//
// dispatch request
//
-
+
/*
* Display a single photo album
*/
-
+
if($datatype === 'album') {
- head_add_link([
+ head_add_link([
'rel' => 'alternate',
'type' => 'application/json+oembed',
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$query_string),
@@ -710,7 +711,7 @@ class Photos extends \Zotlabs\Web\Controller {
if($x = photos_album_exists($owner_uid, get_observer_hash(), $datum)) {
\App::set_pager_itemspage(30);
$album = $x['display_path'];
- }
+ }
else {
goaway(z_root() . '/photos/' . \App::$data['channel']['channel_address']);
}
@@ -721,7 +722,7 @@ class Photos extends \Zotlabs\Web\Controller {
$order = 'DESC';
$r = q("SELECT p.resource_id, p.id, p.filename, p.mimetype, p.imgscale, p.description, p.created FROM photo p INNER JOIN
- (SELECT resource_id, max(imgscale) imgscale FROM photo left join attach on folder = '%s' and photo.resource_id = attach.hash WHERE attach.uid = %d AND imgscale <= 4 AND photo_usage IN ( %d, %d ) and is_nsfw = %d $sql_extra GROUP BY resource_id) ph
+ (SELECT resource_id, max(imgscale) imgscale FROM photo left join attach on folder = '%s' and photo.resource_id = attach.hash WHERE attach.uid = %d AND imgscale <= 4 AND photo_usage IN ( %d, %d ) and is_nsfw = %d $sql_extra GROUP BY resource_id) ph
ON (p.resource_id = ph.resource_id AND p.imgscale = ph.imgscale)
ORDER BY created $order LIMIT %d OFFSET %d",
dbesc($x['hash']),
@@ -739,9 +740,9 @@ class Photos extends \Zotlabs\Web\Controller {
if($can_post) {
$album_e = $album;
$albums = ((array_key_exists('albums', \App::$data)) ? \App::$data['albums'] : photos_albums_list(\App::$data['channel'],\App::$data['observer']));
-
+
// @fixme - syncronise actions with DAV
-
+
// $edit_tpl = get_markup_template('album_edit.tpl');
// $album_edit = replace_macros($edit_tpl,array(
// '$nametext' => t('Enter a new album name'),
@@ -753,32 +754,32 @@ class Photos extends \Zotlabs\Web\Controller {
// '$submit' => t('Submit'),
// '$dropsubmit' => t('Delete Album')
// ));
-
+
}
-
+
if($_GET['order'] === 'posted')
$order = array(t('Show Newest First'), z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/album/' . $datum);
else
$order = array(t('Show Oldest First'), z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/album/' . $datum . '?f=&order=posted');
-
+
$photos = array();
if(count($r)) {
$twist = 'rotright';
foreach($r as $rr) {
-
+
if($twist == 'rotright')
$twist = 'rotleft';
else
$twist = 'rotright';
-
+
$ext = $phototypes[$rr['mimetype']];
-
+
$imgalt_e = $rr['filename'];
$desc_e = $rr['description'];
-
+
$imagelink = (z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/image/' . $rr['resource_id']
. (($_GET['order'] === 'posted') ? '?f=&order=posted' : ''));
-
+
$photos[] = array(
'id' => $rr['id'],
'twist' => ' ' . $twist . rand(2,4),
@@ -793,7 +794,7 @@ class Photos extends \Zotlabs\Web\Controller {
);
}
}
-
+
if($_REQUEST['aj']) {
if($photos) {
$o = replace_macros(get_markup_template('photosajax.tpl'),array(
@@ -821,71 +822,71 @@ class Photos extends \Zotlabs\Web\Controller {
'$upload_form' => $upload_form,
'$usage' => $usage_message
));
-
+
}
-
+
if((! $photos) && ($_REQUEST['aj'])) {
$o .= '<div id="content-complete"></div>';
echo $o;
killme();
}
-
+
return $o;
-
- }
-
- /**
+
+ }
+
+ /**
* Display one photo
*/
-
+
if($datatype === 'image') {
-
+
\App::$page['htmlhead'] .= "\r\n" . '<link rel="alternate" type="application/json+oembed" href="' . z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$cmd) . '" title="oembed" />' . "\r\n";
-
+
$x = q("select folder from attach where hash = '%s' and uid = %d $sql_attach limit 1",
dbesc($datum),
intval($owner_uid)
);
// fetch image, item containing image, then comments
-
- $ph = q("SELECT id,aid,uid,xchan,resource_id,created,edited,title,description,album,filename,mimetype,height,width,filesize,imgscale,photo_usage,is_nsfw,allow_cid,allow_gid,deny_cid,deny_gid FROM photo WHERE uid = %d AND resource_id = '%s'
+
+ $ph = q("SELECT id,aid,uid,xchan,resource_id,created,edited,title,description,album,filename,mimetype,height,width,filesize,imgscale,photo_usage,is_nsfw,allow_cid,allow_gid,deny_cid,deny_gid FROM photo WHERE uid = %d AND resource_id = '%s'
$sql_extra ORDER BY imgscale ASC ",
intval($owner_uid),
dbesc($datum)
);
-
+
if(! ($ph && $x)) {
-
+
/* Check again - this time without specifying permissions */
-
+
$ph = q("SELECT id FROM photo WHERE uid = %d AND resource_id = '%s' LIMIT 1",
intval($owner_uid),
dbesc($datum)
);
- if($ph)
+ if($ph)
notice( t('Permission denied. Access to this item may be restricted.') . EOL);
else
notice( t('Photo not available') . EOL );
return;
}
-
-
-
+
+
+
$prevlink = '';
$nextlink = '';
-
+
if($_GET['order'] === 'posted')
$order = 'ASC';
else
$order = 'DESC';
-
+
$prvnxt = q("SELECT hash FROM attach WHERE folder = '%s' AND uid = %d AND is_photo = 1
$sql_attach ORDER BY created $order ",
dbesc($x[0]['folder']),
intval($owner_uid)
- );
+ );
if(count($prvnxt)) {
for($z = 0; $z < count($prvnxt); $z++) {
@@ -899,12 +900,12 @@ class Photos extends \Zotlabs\Web\Controller {
break;
}
}
-
+
$prevlink = z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/image/' . $prvnxt[$prv]['hash'] . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
$nextlink = z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/image/' . $prvnxt[$nxt]['hash'] . (($_GET['order'] === 'posted') ? '?f=&order=posted' : '');
}
-
-
+
+
if(count($ph) == 1)
$hires = $lores = $ph[0];
if(count($ph) > 1) {
@@ -917,74 +918,74 @@ class Photos extends \Zotlabs\Web\Controller {
$lores = $ph[1];
}
}
-
+
$album_link = z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/album/' . $x[0]['folder'];
$tools = Null;
$lock = Null;
-
+
if($can_post && ($ph[0]['uid'] == $owner_uid)) {
$tools = array(
'profile'=>array(z_root() . '/profile_photo/use/'.$ph[0]['resource_id'], t('Use as profile photo')),
'cover'=>array(z_root() . '/cover_photo/use/'.$ph[0]['resource_id'], t('Use as cover photo')),
);
}
-
+
// lockstate
$lockstate = ( ( (strlen($ph[0]['allow_cid']) || strlen($ph[0]['allow_gid'])
|| strlen($ph[0]['deny_cid']) || strlen($ph[0]['deny_gid'])) )
? array('lock', t('Private Photo'))
: array('unlock', Null));
-
+
\App::$page['htmlhead'] .= '<script>$(document).keydown(function(event) {' . "\n";
if($prevlink)
\App::$page['htmlhead'] .= 'if(event.ctrlKey && event.keyCode == 37) { event.preventDefault(); window.location.href = \'' . $prevlink . '\'; }' . "\n";
if($nextlink)
\App::$page['htmlhead'] .= 'if(event.ctrlKey && event.keyCode == 39) { event.preventDefault(); window.location.href = \'' . $nextlink . '\'; }' . "\n";
\App::$page['htmlhead'] .= '});</script>';
-
+
if($prevlink)
$prevlink = array($prevlink, t('Previous'));
-
+
$photo = array(
'href' => z_root() . '/photo/' . $hires['resource_id'] . '-' . $hires['imgscale'] . '.' . $phototypes[$hires['mimetype']],
'title'=> t('View Full Size'),
'src' => z_root() . '/photo/' . $lores['resource_id'] . '-' . $lores['imgscale'] . '.' . $phototypes[$lores['mimetype']]
);
-
+
if($nextlink)
$nextlink = array($nextlink, t('Next'));
-
-
+
+
// Do we have an item for this photo?
-
- $linked_items = q("SELECT * FROM item WHERE resource_id = '%s' and resource_type = 'photo'
+
+ $linked_items = q("SELECT * FROM item WHERE resource_id = '%s' and resource_type = 'photo'
$sql_item LIMIT 1",
dbesc($datum)
);
-
+
$map = null;
-
+
if($linked_items) {
-
+
xchan_query($linked_items);
$linked_items = fetch_post_tags($linked_items,true);
-
+
$link_item = $linked_items[0];
$item_normal = item_normal();
-
- $r = q("select * from item where parent_mid = '%s'
+
+ $r = q("select * from item where parent_mid = '%s'
$item_normal and uid = %d $sql_item ",
dbesc($link_item['mid']),
intval($link_item['uid'])
-
+
);
-
+
if($r) {
xchan_query($r);
$r = fetch_post_tags($r,true);
$r = conv_sort($r,'commented');
}
-
+
$tags = array();
if($link_item['term']) {
$cnt = 0;
@@ -997,23 +998,23 @@ class Photos extends \Zotlabs\Web\Controller {
$cnt ++;
}
}
-
+
if((local_channel()) && (local_channel() == $link_item['uid'])) {
q("UPDATE item SET item_unseen = 0 WHERE parent = %d and uid = %d and item_unseen = 1",
intval($link_item['parent']),
intval(local_channel())
);
}
-
+
if($link_item['coord']) {
$map = generate_map($link_item['coord']);
}
}
-
+
// logger('mod_photo: link_item' . print_r($link_item,true));
-
- // FIXME - remove this when we move to conversation module
-
+
+ // FIXME - remove this when we move to conversation module
+
$r = $r[0]['children'];
$edit = null;
@@ -1023,11 +1024,11 @@ class Photos extends \Zotlabs\Web\Controller {
$caption_e = $ph[0]['description'];
$aclselect_e = (($_is_owner) ? populate_acl($ph[0], true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_storage')) : '');
$albums = ((array_key_exists('albums', \App::$data)) ? \App::$data['albums'] : photos_albums_list(\App::$data['channel'],\App::$data['observer']));
-
+
$_SESSION['album_return'] = bin2hex($ph[0]['album']);
$folder_list = attach_folder_select_list($ph[0]['uid']);
-
+
$edit = [
'edit' => t('Edit photo'),
'id' => $link_item['id'],
@@ -1058,17 +1059,17 @@ class Photos extends \Zotlabs\Web\Controller {
'delete' => t('Delete Photo')
];
}
-
+
if(count($linked_items)) {
-
+
$cmnt_tpl = get_markup_template('comment_item.tpl');
$tpl = get_markup_template('photo_item.tpl');
$return_url = \App::$cmd;
-
+
$like_tpl = get_markup_template('like_noshare.tpl');
-
+
$likebuttons = '';
-
+
if($observer && ($can_post || $can_comment)) {
$likebuttons = [
'id' => $link_item['id'],
@@ -1078,12 +1079,12 @@ class Photos extends \Zotlabs\Web\Controller {
'wait' => t('Please wait')
];
}
-
+
$comments = '';
if(! $r) {
if($observer && ($can_post || $can_comment)) {
$commentbox = replace_macros($cmnt_tpl,array(
- '$return_path' => '',
+ '$return_path' => '',
'$mode' => 'photos',
'$jsreload' => $return_url,
'$type' => 'wall-comment',
@@ -1101,28 +1102,28 @@ class Photos extends \Zotlabs\Web\Controller {
));
}
}
-
+
$alike = array();
$dlike = array();
-
+
$like = '';
$dislike = '';
-
+
$conv_responses = array(
'like' => array('title' => t('Likes','title')),'dislike' => array('title' => t('Dislikes','title')),
- 'agree' => array('title' => t('Agree','title')),'disagree' => array('title' => t('Disagree','title')), 'abstain' => array('title' => t('Abstain','title')),
+ 'agree' => array('title' => t('Agree','title')),'disagree' => array('title' => t('Disagree','title')), 'abstain' => array('title' => t('Abstain','title')),
'attendyes' => array('title' => t('Attending','title')), 'attendno' => array('title' => t('Not attending','title')), 'attendmaybe' => array('title' => t('Might attend','title'))
);
-
-
-
-
+
+
+
+
if($r) {
-
+
foreach($r as $item) {
builtin_activity_puller($item, $conv_responses);
}
-
+
$like_count = ((x($alike,$link_item['mid'])) ? $alike[$link_item['mid']] : '');
$like_list = ((x($alike,$link_item['mid'])) ? $alike[$link_item['mid'] . '-l'] : '');
@@ -1133,7 +1134,7 @@ class Photos extends \Zotlabs\Web\Controller {
$like_list_part = '';
}
$like_button_label = tt('Like','Likes',$like_count,'noun');
-
+
//if (feature_enabled($conv->get_profile_owner(),'dislike')) {
$dislike_count = ((x($dlike,$link_item['mid'])) ? $dlike[$link_item['mid']] : '');
$dislike_list = ((x($dlike,$link_item['mid'])) ? $dlike[$link_item['mid'] . '-l'] : '');
@@ -1145,44 +1146,44 @@ class Photos extends \Zotlabs\Web\Controller {
$dislike_list_part = '';
}
//}
-
-
+
+
$like = ((isset($alike[$link_item['mid']])) ? format_like($alike[$link_item['mid']],$alike[$link_item['mid'] . '-l'],'like',$link_item['mid']) : '');
$dislike = ((isset($dlike[$link_item['mid']])) ? format_like($dlike[$link_item['mid']],$dlike[$link_item['mid'] . '-l'],'dislike',$link_item['mid']) : '');
-
+
// display comments
-
+
foreach($r as $item) {
$comment = '';
$template = $tpl;
$sparkle = '';
-
+
if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE))) && ($item['id'] != $item['parent']))
continue;
-
+
$redirect_url = z_root() . '/redir/' . $item['cid'] ;
-
-
+
+
$profile_url = zid($item['author']['xchan_url']);
$sparkle = '';
-
-
+
+
$profile_name = $item['author']['xchan_name'];
$profile_avatar = $item['author']['xchan_photo_m'];
-
+
$profile_link = $profile_url;
-
+
$drop = '';
-
+
if($observer['xchan_hash'] === $item['author_xchan'] || $observer['xchan_hash'] === $item['owner_xchan'])
$drop = replace_macros(get_markup_template('photo_drop.tpl'), array('$id' => $item['id'], '$delete' => t('Delete')));
-
-
+
+
$name_e = $profile_name;
$title_e = $item['title'];
unobscure($item);
$body_e = prepare_text($item['body'],$item['mimetype']);
-
+
$comments .= replace_macros($template,array(
'$id' => $item['id'],
'$mode' => 'photos',
@@ -1197,9 +1198,9 @@ class Photos extends \Zotlabs\Web\Controller {
'$drop' => $drop,
'$comment' => $comment
));
-
+
}
-
+
if($observer && ($can_post || $can_comment)) {
$commentbox = replace_macros($cmnt_tpl,array(
'$return_path' => '',
@@ -1216,20 +1217,20 @@ class Photos extends \Zotlabs\Web\Controller {
'$ww' => ''
));
}
-
+
}
$paginate = paginate($a);
}
-
+
$album_e = array($album_link,$ph[0]['album']);
$like_e = $like;
$dislike_e = $dislike;
-
-
+
+
$response_verbs = array('like');
if(feature_enabled($owner_uid,'dislike'))
$response_verbs[] = 'dislike';
-
+
$responses = get_responses($conv_responses,$response_verbs,'',$link_item);
$hookdata = [
@@ -1238,7 +1239,7 @@ class Photos extends \Zotlabs\Web\Controller {
'nickname' => \App::$data['channel']['channel_address']
];
call_hooks('photo_view_filter', $hookdata);
-
+
$photo_tpl = get_markup_template('photo_view.tpl');
$o .= replace_macros($photo_tpl, array(
'$id' => $ph[0]['id'],
@@ -1255,7 +1256,7 @@ class Photos extends \Zotlabs\Web\Controller {
'$tag_hdr' => t('In This Photo:'),
'$tags' => $tags,
'responses' => $responses,
- '$edit' => $edit,
+ '$edit' => $edit,
'$map' => $map,
'$map_text' => t('Map'),
'$likebuttons' => $likebuttons,
@@ -1277,26 +1278,26 @@ class Photos extends \Zotlabs\Web\Controller {
'$paginate' => $paginate,
'$onclick' => $hookdata['onclick']
));
-
+
\App::$data['photo_html'] = $o;
-
+
return $o;
}
-
+
// Default - show recent photos with upload link (if applicable)
//$o = '';
-
+
\App::$page['htmlhead'] .= "\r\n" . '<link rel="alternate" type="application/json+oembed" href="' . z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$cmd) . '" title="oembed" />' . "\r\n";
-
+
\App::set_pager_itemspage(30);
-
- $r = q("SELECT p.resource_id, p.id, p.filename, p.mimetype, p.album, p.imgscale, p.created, p.display_path
- FROM photo p
- INNER JOIN ( SELECT resource_id, max(imgscale) imgscale FROM photo
- WHERE photo.uid = %d AND photo_usage IN ( %d, %d )
- AND is_nsfw = %d $sql_extra group by resource_id ) ph
- ON (p.resource_id = ph.resource_id and p.imgscale = ph.imgscale)
+
+ $r = q("SELECT p.resource_id, p.id, p.filename, p.mimetype, p.album, p.imgscale, p.created, p.display_path
+ FROM photo p
+ INNER JOIN ( SELECT resource_id, max(imgscale) imgscale FROM photo
+ WHERE photo.uid = %d AND photo_usage IN ( %d, %d )
+ AND is_nsfw = %d $sql_extra group by resource_id ) ph
+ ON (p.resource_id = ph.resource_id and p.imgscale = ph.imgscale)
ORDER by p.created DESC LIMIT %d OFFSET %d",
intval(\App::$data['channel']['channel_id']),
intval(PHOTO_NORMAL),
@@ -1305,9 +1306,9 @@ class Photos extends \Zotlabs\Web\Controller {
intval(\App::$pager['itemspage']),
intval(\App::$pager['start'])
);
-
-
-
+
+
+
$photos = array();
if($r) {
$twist = 'rotright';
@@ -1321,7 +1322,7 @@ class Photos extends \Zotlabs\Web\Controller {
else
$twist = 'rotright';
$ext = $phototypes[$rr['mimetype']];
-
+
$alt_e = $rr['filename'];
$name_e = dirname($rr['display_path']);
@@ -1335,11 +1336,11 @@ class Photos extends \Zotlabs\Web\Controller {
'album' => array(
'name' => $name_e,
),
-
+
);
}
}
-
+
if($_REQUEST['aj']) {
if($photos) {
$o = replace_macros(get_markup_template('photosajax.tpl'),array(
@@ -1355,7 +1356,7 @@ class Photos extends \Zotlabs\Web\Controller {
}
else {
$o .= "<script> var page_query = '" . escape_tags(urlencode($_GET['q'])) . "'; var extra_args = '" . extra_query_args() . "' ; </script>";
- $tpl = get_markup_template('photos_recent.tpl');
+ $tpl = get_markup_template('photos_recent.tpl');
$o .= replace_macros($tpl, array(
'$title' => t('Recent Photos'),
'$album_id' => bin2hex(t('Recent Photos')),
@@ -1365,18 +1366,18 @@ class Photos extends \Zotlabs\Web\Controller {
'$upload_form' => $upload_form,
'$usage' => $usage_message
));
-
+
}
-
+
if((! $photos) && ($_REQUEST['aj'])) {
$o .= '<div id="content-complete"></div>';
echo $o;
killme();
}
-
+
// paginate($a);
return $o;
}
-
-
+
+
}
diff --git a/Zotlabs/Module/Profile.php b/Zotlabs/Module/Profile.php
index 4235f0b97..0373630a9 100644
--- a/Zotlabs/Module/Profile.php
+++ b/Zotlabs/Module/Profile.php
@@ -90,7 +90,7 @@ class Profile extends \Zotlabs\Web\Controller {
if(argc() > 2 && argv(2) === 'vcard') {
header('Content-type: text/vcard');
- header('content-disposition: attachment; filename="' . t('vcard') . '-' . $profile['channel_address'] . '.vcf"' );
+ header('content-disposition: attachment; filename="' . t('vcard') . '-' . \App::$profile['channel_address'] . '.vcf"' );
echo \App::$profile['profile_vcard'];
killme();
}
diff --git a/Zotlabs/Module/Profiles.php b/Zotlabs/Module/Profiles.php
index 9ac0e725e..ca6ab435f 100644
--- a/Zotlabs/Module/Profiles.php
+++ b/Zotlabs/Module/Profiles.php
@@ -12,11 +12,11 @@ class Profiles extends \Zotlabs\Web\Controller {
function init() {
nav_set_selected('Profiles', 'settings/profiles');
-
+
if(! local_channel()) {
return;
}
-
+
if((argc() > 2) && (argv(1) === "drop") && intval(argv(2))) {
$r = q("SELECT * FROM profile WHERE id = %d AND uid = %d AND is_default = 0 LIMIT 1",
intval(argv(2)),
@@ -28,11 +28,11 @@ class Profiles extends \Zotlabs\Web\Controller {
return; // NOTREACHED
}
$profile_guid = $r['profile_guid'];
-
+
check_form_security_token_redirectOnErr('/profiles', 'profile_drop', 't');
-
+
// move every contact using this profile as their default to the user default
-
+
$r = q("UPDATE abook SET abook_profile = (SELECT profile_guid FROM profile WHERE is_default = 1 AND uid = %d LIMIT 1) WHERE abook_profile = '%s' AND abook_channel = %d ",
intval(local_channel()),
dbesc($profile_guid),
@@ -44,34 +44,34 @@ class Profiles extends \Zotlabs\Web\Controller {
);
if($r)
info( t('Profile deleted.') . EOL);
-
- // @fixme this is a much more complicated sync - add any changed abook entries and
+
+ // @fixme this is a much more complicated sync - add any changed abook entries and
// also add deleted flag to profile structure
// profiles_build_sync is just here as a placeholder - it doesn't work at all here
-
+
// profiles_build_sync(local_channel());
-
+
goaway(z_root() . '/profiles');
return; // NOTREACHED
}
-
-
-
-
-
+
+
+
+
+
if((argc() > 1) && (argv(1) === 'new')) {
-
+
// check_form_security_token_redirectOnErr('/profiles', 'profile_new', 't');
-
+
$r0 = q("SELECT id FROM profile WHERE uid = %d",
intval(local_channel()));
$num_profiles = count($r0);
-
+
$name = t('Profile-') . ($num_profiles + 1);
-
+
$r1 = q("SELECT fullname, photo, thumb FROM profile WHERE uid = %d AND is_default = 1 LIMIT 1",
intval(local_channel()));
-
+
$r2 = profile_store_lowlevel(
[
'aid' => intval(get_account_id()),
@@ -83,27 +83,27 @@ class Profiles extends \Zotlabs\Web\Controller {
'thumb' => $r1[0]['thumb']
]
);
-
+
$r3 = q("SELECT id FROM profile WHERE uid = %d AND profile_name = '%s' LIMIT 1",
intval(local_channel()),
dbesc($name)
);
-
+
info( t('New profile created.') . EOL);
if(count($r3) == 1)
goaway(z_root() . '/profiles/' . $r3[0]['id']);
-
+
goaway(z_root() . '/profiles');
- }
-
+ }
+
if((argc() > 2) && (argv(1) === 'clone')) {
-
+
check_form_security_token_redirectOnErr('/profiles', 'profile_clone', 't');
-
+
$r0 = q("SELECT id FROM profile WHERE uid = %d",
intval(local_channel()));
$num_profiles = count($r0);
-
+
$name = t('Profile-') . ($num_profiles + 1);
$r1 = q("SELECT * FROM profile WHERE uid = %d AND id = %d LIMIT 1",
intval(local_channel()),
@@ -116,30 +116,30 @@ class Profiles extends \Zotlabs\Web\Controller {
}
unset($r1[0]['id']);
$r1[0]['is_default'] = 0;
- $r1[0]['publish'] = 0;
+ $r1[0]['publish'] = 0;
$r1[0]['profile_name'] = dbesc($name);
$r1[0]['profile_guid'] = dbesc(random_string());
-
+
create_table_from_array('profile', $r1[0]);
-
+
$r3 = q("SELECT id FROM profile WHERE uid = %d AND profile_name = '%s' LIMIT 1",
intval(local_channel()),
dbesc($name)
);
info( t('New profile created.') . EOL);
-
+
profiles_build_sync(local_channel());
-
+
if(($r3) && (count($r3) == 1))
goaway(z_root() . '/profiles/' . $r3[0]['id']);
-
+
goaway(z_root() . '/profiles');
-
+
return; // NOTREACHED
}
-
+
if((argc() > 2) && (argv(1) === 'export')) {
-
+
$r1 = q("SELECT * FROM profile WHERE uid = %d AND id = %d LIMIT 1",
intval(local_channel()),
intval(argv(2))
@@ -151,7 +151,7 @@ class Profiles extends \Zotlabs\Web\Controller {
}
header('content-type: application/octet_stream');
header('content-disposition: attachment; filename="' . $r1[0]['profile_name'] . '.json"' );
-
+
unset($r1[0]['id']);
unset($r1[0]['aid']);
unset($r1[0]['uid']);
@@ -162,10 +162,10 @@ class Profiles extends \Zotlabs\Web\Controller {
echo json_encode($r1[0]);
killme();
}
-
-
-
-
+
+
+
+
// Run profile_load() here to make sure the theme is set before
// we start loading content
if(((argc() > 1) && (intval(argv(1)))) || !feature_enabled(local_channel(),'multi_profiles')) {
@@ -187,28 +187,28 @@ class Profiles extends \Zotlabs\Web\Controller {
\App::$error = 404;
return;
}
-
+
$chan = \App::get_channel();
-
+
profile_load($chan['channel_address'],$r[0]['id']);
}
}
-
+
function post() {
-
+
if(! local_channel()) {
notice( t('Permission denied.') . EOL);
return;
}
-
+
require_once('include/activities.php');
-
+
$namechanged = false;
-
-
+
+
// import from json export file.
// Only import fields that are allowed on this hub
-
+
if(x($_FILES,'userfile')) {
$src = $_FILES['userfile']['tmp_name'];
$filesize = intval($_FILES['userfile']['size']);
@@ -230,10 +230,10 @@ class Profiles extends \Zotlabs\Web\Controller {
}
}
}
-
+
call_hooks('profile_post', $_POST);
-
-
+
+
if((argc() > 1) && (argv(1) !== "new") && intval(argv(1))) {
$orig = q("SELECT * FROM profile WHERE id = %d AND uid = %d LIMIT 1",
intval(\App::$argv[1]),
@@ -243,26 +243,26 @@ class Profiles extends \Zotlabs\Web\Controller {
notice( t('Profile not found.') . EOL);
return;
}
-
+
check_form_security_token_redirectOnErr('/profiles', 'profile_edit');
-
+
$is_default = (($orig[0]['is_default']) ? 1 : 0);
-
+
$profile_name = notags(trim($_POST['profile_name']));
if(! strlen($profile_name)) {
notice( t('Profile Name is required.') . EOL);
return;
}
-
+
$dob = $_POST['dob'] ? escape_tags(trim($_POST['dob'])) : '0000-00-00'; // FIXME: Needs to be validated?
-
+
$y = substr($dob,0,4);
if((! ctype_digit($y)) || ($y < 1900))
$ignore_year = true;
else
$ignore_year = false;
-
+
if($dob != '0000-00-00') {
if(strpos($dob,'0000-') === 0) {
$ignore_year = true;
@@ -272,12 +272,12 @@ class Profiles extends \Zotlabs\Web\Controller {
if($ignore_year)
$dob = '0000-' . $dob;
}
-
+
$name = escape_tags(trim($_POST['name']));
-
+
if($orig[0]['fullname'] != $name) {
$namechanged = true;
-
+
$v = validate_channelname($name);
if($v) {
notice($v);
@@ -285,7 +285,7 @@ class Profiles extends \Zotlabs\Web\Controller {
$name = $orig[0]['fullname'];
}
}
-
+
$pdesc = escape_tags(trim($_POST['pdesc']));
$gender = escape_tags(trim($_POST['gender']));
$address = escape_tags(trim($_POST['address']));
@@ -301,10 +301,10 @@ class Profiles extends \Zotlabs\Web\Controller {
$hometown = escape_tags(trim($_POST['hometown']));
$politic = escape_tags(trim($_POST['politic']));
$religion = escape_tags(trim($_POST['religion']));
-
+
$likes = fix_mce_lf(escape_tags(trim($_POST['likes'])));
$dislikes = fix_mce_lf(escape_tags(trim($_POST['dislikes'])));
-
+
$about = fix_mce_lf(escape_tags(trim($_POST['about'])));
$interest = fix_mce_lf(escape_tags(trim($_POST['interest'])));
$contact = fix_mce_lf(escape_tags(trim($_POST['contact'])));
@@ -316,11 +316,11 @@ class Profiles extends \Zotlabs\Web\Controller {
$romance = fix_mce_lf(escape_tags(trim($_POST['romance'])));
$work = fix_mce_lf(escape_tags(trim($_POST['work'])));
$education = fix_mce_lf(escape_tags(trim($_POST['education'])));
-
+
$hide_friends = ((intval($_POST['hide_friends'])) ? 1: 0);
-
+
// start fresh and create a new vcard. TODO: preserve the original guid or whatever else needs saving
-// $orig_vcard = (($orig[0]['profile_vcard']) ? \Sabre\VObject\Reader::read($orig[0]['profile_vcard']) : null);
+// $orig_vcard = (($orig[0]['profile_vcard']) ? \Sabre\VObject\Reader::read($orig[0]['profile_vcard']) : null);
$orig_vcard = null;
@@ -347,7 +347,7 @@ class Profiles extends \Zotlabs\Web\Controller {
5 => $postal_code,
6 => $country_name
];
-
+
$profile_vcard = update_vcard($defcard,$orig_vcard);
$orig_vcard = \Sabre\VObject\Reader::read($profile_vcard);
@@ -370,19 +370,19 @@ class Profiles extends \Zotlabs\Web\Controller {
linkify_tags($romance, local_channel());
linkify_tags($work, local_channel());
linkify_tags($education, local_channel());
-
-
+
+
$with = ((x($_POST,'with')) ? escape_tags(trim($_POST['with'])) : '');
-
+
if(! strlen($howlong))
$howlong = NULL_DATE;
else
$howlong = datetime_convert(date_default_timezone_get(),'UTC',$howlong);
-
+
// linkify the relationship target if applicable
-
+
$withchanged = false;
-
+
if(strlen($with)) {
if($with != strip_tags($orig[0]['partner'])) {
$withchanged = true;
@@ -392,7 +392,7 @@ class Profiles extends \Zotlabs\Web\Controller {
$lookup = substr($lookup,1);
$lookup = str_replace('_',' ', $lookup);
$newname = $lookup;
-
+
$r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash WHERE xchan_name = '%s' AND abook_channel = %d LIMIT 1",
dbesc($newname),
intval(local_channel())
@@ -407,8 +407,8 @@ class Profiles extends \Zotlabs\Web\Controller {
$prf = $r[0]['xchan_url'];
$newname = $r[0]['xchan_name'];
}
-
-
+
+
if($prf) {
$with = str_replace($lookup,'<a href="' . $prf . '">' . $newname . '</a>', $with);
if(strpos($with,'@') === 0)
@@ -418,7 +418,7 @@ class Profiles extends \Zotlabs\Web\Controller {
else
$with = $orig[0]['partner'];
}
-
+
$profile_fields_basic = get_profile_fields_basic();
$profile_fields_advanced = get_profile_fields_advanced();
$advanced = ((feature_enabled(local_channel(),'advanced_profiles')) ? true : false);
@@ -426,7 +426,7 @@ class Profiles extends \Zotlabs\Web\Controller {
$fields = $profile_fields_advanced;
else
$fields = $profile_fields_basic;
-
+
$z = q("select * from profdef where true");
if($z) {
foreach($z as $zz) {
@@ -453,7 +453,7 @@ class Profiles extends \Zotlabs\Web\Controller {
}
}
}
-
+
$changes = array();
$value = '';
if($is_default) {
@@ -513,12 +513,12 @@ class Profiles extends \Zotlabs\Web\Controller {
$comma2 = (($region && $country_name) ? ', ' : '');
$value = $locality . $comma1 . $region . $comma2 . $country_name;
}
-
+
profile_activity($changes,$value);
-
- }
-
- $r = q("UPDATE profile
+
+ }
+
+ $r = q("UPDATE profile
SET profile_name = '%s',
fullname = '%s',
pdesc = '%s',
@@ -591,10 +591,10 @@ class Profiles extends \Zotlabs\Web\Controller {
intval(argv(1)),
intval(local_channel())
);
-
+
if($r)
info( t('Profile updated.') . EOL);
-
+
$r = q("select * from profile where id = %d and uid = %d limit 1",
intval(argv(1)),
intval(local_channel())
@@ -603,9 +603,9 @@ class Profiles extends \Zotlabs\Web\Controller {
require_once('include/zot.php');
Libsync::build_sync_packet(local_channel(),array('profile' => $r));
}
-
+
$channel = \App::get_channel();
-
+
if($namechanged && $is_default) {
$r = q("UPDATE xchan SET xchan_name = '%s', xchan_name_date = '%s' WHERE xchan_url = '%s'",
dbesc($name),
@@ -617,7 +617,7 @@ class Profiles extends \Zotlabs\Web\Controller {
dbesc($channel['xchan_hash'])
);
}
-
+
if($is_default) {
// reload the info for the sidebar widget - why does this not work?
profile_load($channel['channel_address']);
@@ -625,24 +625,24 @@ class Profiles extends \Zotlabs\Web\Controller {
}
}
}
-
-
+
+
function get() {
-
+
$o = '';
-
+
$channel = \App::get_channel();
-
+
if(! local_channel()) {
notice( t('Permission denied.') . EOL);
return;
}
-
+
require_once('include/channel.php');
-
+
$profile_fields_basic = get_profile_fields_basic();
$profile_fields_advanced = get_profile_fields_advanced();
-
+
if(((argc() > 1) && (intval(argv(1)))) || !feature_enabled(local_channel(),'multi_profiles')) {
if(feature_enabled(local_channel(),'multi_profiles'))
$id = \App::$argv[1];
@@ -652,7 +652,7 @@ class Profiles extends \Zotlabs\Web\Controller {
);
if($x)
$id = $x[0]['id'];
- }
+ }
$r = q("SELECT * FROM profile WHERE id = %d AND uid = %d LIMIT 1",
intval($id),
intval(local_channel())
@@ -661,20 +661,20 @@ class Profiles extends \Zotlabs\Web\Controller {
notice( t('Profile not found.') . EOL);
return;
}
-
+
$editselect = 'none';
-
+
\App::$page['htmlhead'] .= replace_macros(get_markup_template('profed_head.tpl'), array(
'$baseurl' => z_root(),
'$editselect' => $editselect,
));
-
+
$advanced = ((feature_enabled(local_channel(),'advanced_profiles')) ? true : false);
if($advanced)
$fields = $profile_fields_advanced;
else
$fields = $profile_fields_basic;
-
+
$hide_friends = array(
'hide_friends',
t('Hide your connections list from viewers of this profile'),
@@ -682,36 +682,36 @@ class Profiles extends \Zotlabs\Web\Controller {
'',
array(t('No'),t('Yes'))
);
-
+
$q = q("select * from profdef where true");
if($q) {
$extra_fields = array();
-
+
foreach($q as $qq) {
$mine = q("select v from profext where k = '%s' and hash = '%s' and channel_id = %d limit 1",
- dbesc($qq['field_name']),
+ dbesc($qq['field_name']),
dbesc($r[0]['profile_guid']),
intval(local_channel())
);
-
+
if(array_key_exists($qq['field_name'],$fields)) {
$extra_fields[] = array($qq['field_name'],$qq['field_desc'],(($mine) ? $mine[0]['v'] : ''), $qq['field_help']);
}
}
}
-
+
//logger('extra_fields: ' . print_r($extra_fields,true));
$vc = $r[0]['profile_vcard'];
- $vctmp = (($vc) ? \Sabre\VObject\Reader::read($vc) : null);
+ $vctmp = (($vc) ? \Sabre\VObject\Reader::read($vc) : null);
$vcard = (($vctmp) ? get_vcard_array($vctmp,$r[0]['id']) : [] );
-
+
$f = get_config('system','birthday_input_format');
if(! $f)
$f = 'ymd';
-
+
$is_default = (($r[0]['is_default']) ? 1 : 0);
-
+
$tpl = get_markup_template("profile_edit.tpl");
$o .= replace_macros($tpl,array(
'$multi_profiles' => ((feature_enabled(local_channel(),'multi_profiles')) ? true : false),
@@ -749,7 +749,7 @@ class Profiles extends \Zotlabs\Web\Controller {
'$default' => t('This is your default profile.') . EOL . translate_scope(map_scope(\Zotlabs\Access\PermissionLimits::Get($channel['channel_id'],'view_profile'))),
'$advanced' => $advanced,
'$name' => array('name', t('Your full name'), $r[0]['fullname'], t('Required'), '*'),
- '$pdesc' => array('pdesc', t('Title/Description'), $r[0]['pdesc']),
+ '$pdesc' => array('pdesc', t('Short title/tescription'), $r[0]['pdesc'], t('Maximal 190 characters'), '', 'maxlength="190"'),
'$dob' => dob($r[0]['dob']),
'$hide_friends' => $hide_friends,
'$address' => array('address', t('Street address'), $r[0]['address']),
@@ -802,18 +802,18 @@ class Profiles extends \Zotlabs\Web\Controller {
'$delete' => t('Delete'),
'$cancel' => t('Cancel'),
));
-
+
$arr = array('profile' => $r[0], 'entry' => $o);
call_hooks('profile_edit', $arr);
-
+
return $o;
}
else {
-
+
$r = q("SELECT * FROM profile WHERE uid = %d",
local_channel());
if($r) {
-
+
$tpl = get_markup_template('profile_entry.tpl');
foreach($r as $rr) {
$profiles .= replace_macros($tpl, array(
@@ -821,24 +821,24 @@ class Profiles extends \Zotlabs\Web\Controller {
'$id' => $rr['id'],
'$alt' => t('Profile Image'),
'$profile_name' => $rr['profile_name'],
- '$visible' => (($rr['is_default'])
- ? '<strong>' . translate_scope(map_scope(\Zotlabs\Access\PermissionLimits::Get($channel['channel_id'],'view_profile'))) . '</strong>'
+ '$visible' => (($rr['is_default'])
+ ? '<strong>' . translate_scope(map_scope(\Zotlabs\Access\PermissionLimits::Get($channel['channel_id'],'view_profile'))) . '</strong>'
: '<a href="' . z_root() . '/profperm/' . $rr['id'] . '" />' . t('Edit visibility') . '</a>')
));
}
-
+
$tpl_header = get_markup_template('profile_listing_header.tpl');
$o .= replace_macros($tpl_header,array(
'$header' => t('Edit Profiles'),
'$cr_new' => t('Create New'),
'$cr_new_link' => 'profiles/new?t=' . get_form_security_token("profile_new"),
'$profiles' => $profiles
- ));
-
+ ));
+
}
return $o;
}
-
+
}
-
+
}
diff --git a/Zotlabs/Module/Pubsites.php b/Zotlabs/Module/Pubsites.php
index daec5dde3..4b64d9af6 100644
--- a/Zotlabs/Module/Pubsites.php
+++ b/Zotlabs/Module/Pubsites.php
@@ -1,18 +1,19 @@
<?php
namespace Zotlabs\Module;
+use Zotlabs\Lib\Libzotdir;
class Pubsites extends \Zotlabs\Web\Controller {
function get() {
- require_once('include/dir_fns.php');
+ require_once('include/dir_fns.php');
$dirmode = intval(get_config('system','directory_mode'));
-
+
if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
$url = z_root() . '/dirsearch';
}
if(! $url) {
- $directory = find_upstream_directory($dirmode);
+ $directory = Libzotdir::find_upstream_directory($dirmode);
$url = $directory['url'] . '/dirsearch';
}
$url .= '/sites';
@@ -20,12 +21,12 @@ class Pubsites extends \Zotlabs\Web\Controller {
$rating_enabled = get_config('system','rating_enabled');
$o .= '<div class="generic-content-wrapper">';
-
+
$o .= '<div class="section-title-wrapper"><h2>' . t('Public Hubs') . '</h2></div>';
-
- $o .= '<div class="section-content-tools-wrapper"><div class="descriptive-text">' .
+
+ $o .= '<div class="section-content-tools-wrapper"><div class="descriptive-text">' .
t('The listed hubs allow public registration for the $Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself <strong>may</strong> provide additional details.') . '</div>' . EOL;
-
+
$ret = z_fetch_url($url);
if($ret['success']) {
$j = json_decode($ret['body'],true);
@@ -48,8 +49,8 @@ class Pubsites extends \Zotlabs\Web\Controller {
$host = strtolower(substr($jj['url'],strpos($jj['url'],'://')+3));
$rate_links = ((local_channel()) ? '<td><a href="rate?f=&target=' . $host . '" class="btn-btn-default"><i class="fa fa-check-square-o"></i> ' . t('Rate') . '</a></td>' : '');
$location = '';
- if(!empty($jj['location'])) {
- $location = '<p title="' . t('Location') . '" style="margin: 5px 5px 0 0; text-align: right"><i class="fa fa-globe"></i> ' . $jj['location'] . '</p>';
+ if(!empty($jj['location'])) {
+ $location = '<p title="' . t('Location') . '" style="margin: 5px 5px 0 0; text-align: right"><i class="fa fa-globe"></i> ' . $jj['location'] . '</p>';
}
else {
$location = '<br />&nbsp;';
@@ -61,14 +62,14 @@ class Pubsites extends \Zotlabs\Web\Controller {
$o .= '</tr>';
}
}
-
+
$o .= '</table>';
-
+
$o .= '</div></div>';
-
+
}
}
return $o;
}
-
+
}
diff --git a/Zotlabs/Module/Regver.php b/Zotlabs/Module/Regver.php
index 82b162f56..c45723063 100644
--- a/Zotlabs/Module/Regver.php
+++ b/Zotlabs/Module/Regver.php
@@ -6,8 +6,6 @@ class Regver extends \Zotlabs\Web\Controller {
function get() {
- global $lang;
-
$_SESSION['return_url'] = \App::$cmd;
if(argc() != 3)
diff --git a/Zotlabs/Module/Sse_bs.php b/Zotlabs/Module/Sse_bs.php
index 287c24829..396e07001 100644
--- a/Zotlabs/Module/Sse_bs.php
+++ b/Zotlabs/Module/Sse_bs.php
@@ -123,7 +123,7 @@ class Sse_bs extends Controller {
$mids[] = '\'' . dbesc(@base64url_decode(substr($a,4))) . '\'';
}
- $str = implode($mids, ',');
+ $str = implode(',', $mids);
$x = [ 'channel_id' => self::$uid, 'update' => 'unset' ];
call_hooks('update_unseen',$x);
@@ -162,7 +162,7 @@ class Sse_bs extends Controller {
$item_normal = item_normal();
if ($notifications) {
- $items = q("SELECT * FROM item
+ $items = q("SELECT * FROM item
WHERE uid = %d
AND created <= '%s'
AND item_unseen = 1 AND item_wall = 0 AND item_private IN (0, 1)
@@ -190,7 +190,7 @@ class Sse_bs extends Controller {
}
- $r = q("SELECT count(id) as total FROM item
+ $r = q("SELECT count(id) as total FROM item
WHERE uid = %d and item_unseen = 1 AND item_wall = 0 AND item_private IN (0, 1)
AND obj_type NOT IN ('Document', 'Video', 'Audio', 'Image')
AND author_xchan != '%s'
@@ -231,10 +231,10 @@ class Sse_bs extends Controller {
$item_normal = item_normal();
if ($notifications) {
- $items = q("SELECT * FROM item
+ $items = q("SELECT * FROM item
WHERE uid = %d
AND created <= '%s'
- AND item_unseen = 1 AND item_wall = 0 AND item_private = 2
+ AND item_unseen = 1 AND item_private = 2
AND obj_type NOT IN ('Document', 'Video', 'Audio', 'Image')
AND author_xchan != '%s'
$item_normal
@@ -259,8 +259,8 @@ class Sse_bs extends Controller {
}
- $r = q("SELECT count(id) as total FROM item
- WHERE uid = %d and item_unseen = 1 AND item_wall = 0 AND item_private = 2
+ $r = q("SELECT count(id) as total FROM item
+ WHERE uid = %d and item_unseen = 1 AND item_private = 2
$item_normal
$sql_extra
AND author_xchan != '%s'",
@@ -300,10 +300,10 @@ class Sse_bs extends Controller {
$item_normal = item_normal();
if ($notifications) {
- $items = q("SELECT * FROM item
+ $items = q("SELECT * FROM item
WHERE uid = %d
AND created <= '%s'
- AND item_unseen = 1 AND item_wall = 1
+ AND item_unseen = 1 AND item_wall = 1 AND item_private IN (0, 1)
AND obj_type NOT IN ('Document', 'Video', 'Audio', 'Image')
AND author_xchan != '%s'
$item_normal
@@ -328,8 +328,8 @@ class Sse_bs extends Controller {
}
- $r = q("SELECT count(id) as total FROM item
- WHERE uid = %d and item_unseen = 1 AND item_wall = 1
+ $r = q("SELECT count(id) as total FROM item
+ WHERE uid = %d and item_unseen = 1 AND item_wall = 1 AND item_private IN (0, 1)
$item_normal
$sql_extra
AND author_xchan != '%s'",
@@ -379,7 +379,7 @@ class Sse_bs extends Controller {
$item_normal = item_normal();
if ($notifications) {
- $items = q("SELECT * FROM item
+ $items = q("SELECT * FROM item
WHERE uid = %d
AND created <= '%s'
AND item_unseen = 1
@@ -410,7 +410,7 @@ class Sse_bs extends Controller {
}
- $r = q("SELECT count(id) as total FROM item
+ $r = q("SELECT count(id) as total FROM item
WHERE uid = %d AND item_unseen = 1
AND created > '%s'
$item_normal
@@ -516,7 +516,7 @@ class Sse_bs extends Controller {
$p_str = ids_to_querystr($p, 'parent');
$p_sql = (($p_str) ? "OR parent IN ( $p_str )" : '');
- $r = q("select mid from item
+ $r = q("select mid from item
where uid = %d and ( owner_xchan = '%s' OR author_xchan = '%s' $p_sql ) and item_unseen = 1 $sql_extra $item_normal",
intval(self::$uid),
dbesc($forums[$x]['xchan_hash']),
@@ -577,7 +577,7 @@ class Sse_bs extends Controller {
$item_normal = item_normal();
- $r = q("SELECT * FROM item
+ $r = q("SELECT * FROM item
WHERE verb = '%s'
AND obj_type IN ('Document', 'Video', 'Audio', 'Image')
AND uid = %d
diff --git a/Zotlabs/Module/Zfinger.php b/Zotlabs/Module/Zfinger.php
index 533f0a5db..ce7117ad8 100644
--- a/Zotlabs/Module/Zfinger.php
+++ b/Zotlabs/Module/Zfinger.php
@@ -7,7 +7,7 @@ use Zotlabs\Lib\Libzot;
class Zfinger extends \Zotlabs\Web\Controller {
function init() {
-
+
require_once('include/zot.php');
require_once('include/crypto.php');
@@ -26,7 +26,7 @@ class Zfinger extends \Zotlabs\Web\Controller {
if($chan) {
$headers['Digest'] = HTTPSig::generate_digest_header($ret);
- $h = HTTPSig::create_sig($headers,$chan['channel_prvkey'],'acct:' . channel_reddress($chan));
+ $h = HTTPSig::create_sig($headers,$chan['channel_prvkey'], channel_url($chan));
HTTPSig::set_headers($h);
}
else {
@@ -37,7 +37,7 @@ class Zfinger extends \Zotlabs\Web\Controller {
echo $ret;
killme();
-
+
}
-
+
}
diff --git a/Zotlabs/Storage/Browser.php b/Zotlabs/Storage/Browser.php
index 7b20e9ddb..fdef35210 100644
--- a/Zotlabs/Storage/Browser.php
+++ b/Zotlabs/Storage/Browser.php
@@ -264,7 +264,6 @@ class Browser extends DAV\Browser\Plugin {
$ft['attach_id'] = $id;
$ft['icon'] = $icon;
$ft['photo_icon'] = $photo_icon;
- $ft['is_owner'] = $is_owner;
$ft['is_creator'] = $is_creator;
$ft['rel_path'] = (($data) ? '/cloud/' . $nick .'/' . $data['display_path'] : $href);
$ft['full_path'] = z_root() . (($data) ? '/cloud/' . $nick .'/' . $data['display_path'] : $href);
@@ -295,9 +294,16 @@ class Browser extends DAV\Browser\Plugin {
// create a copy of the list which we can alter for the current resource
$folders = $folder_list;
+
if($data['is_dir']) {
- // can not copy a folder into itself
- unset($folders[$folder_hash]);
+
+ $rm_path = $folders[$folder_hash];
+ // can not copy a folder into itself or own child folders
+ foreach($folders as $k => $v) {
+ if(strpos($v, $rm_path) === 0)
+ unset($folders[$k]);
+ }
+
}
$ft['newfolder'] = ['newfolder_' . $id, t('Select a target location'), $data['folder'], '', $folders];
@@ -325,7 +331,7 @@ class Browser extends DAV\Browser\Plugin {
}
$ft['attach_bbcode'] = $attach_bbcode;
- $link_bbcode = '[zrl]' . $ft['full_path'] . '[/zrl]';
+ $link_bbcode = '[zrl=' . $ft['full_path'] . ']' . $ft['name'] . '[/zrl]';
$ft['link_bbcode'] = $link_bbcode;
$f[] = $ft;
@@ -360,7 +366,7 @@ class Browser extends DAV\Browser\Plugin {
'$upload' => t('Add Files'),
'$is_owner' => $is_owner,
'$is_admin' => is_site_admin(),
- '$admin_delete' => t('Admin Delete'),
+ '$admin_delete_label' => t('Admin Delete'),
'$parentpath' => $parent_path,
'$folder_parent' => $folder_parent,
'$folder' => $parent->folder_hash,
@@ -373,26 +379,36 @@ class Browser extends DAV\Browser\Plugin {
'$size' => t('Size'),
'$lastmod' => t('Last Modified'),
'$parent' => t('parent'),
- '$edit' => t('Submit'),
- '$delete' => t('Delete'),
+ '$submit_label' => t('Submit'),
+ '$cancel_label' => t('Cancel'),
+ '$delete_label' => t('Delete'),
'$channel_id' => $channel_id,
'$cpdesc' => t('Copy/paste this code to attach file to a post'),
'$cpldesc' => t('Copy/paste this URL to link file from a web page'),
-
'$categories' => ['categories', t('Categories')],
'$recurse' => ['recurse', t('Set permissions for all files and sub folders'), 0, '', [t('No'), t('Yes')]],
-
'$newfolder' => ['newfolder', t('Select a target location'), $parent->folder_hash, '', $folder_list],
'$copy' => ['copy', t('Copy to target location'), 0, '', [t('No'), t('Yes')]],
'$return_path' => $path,
-
'$lockstate' => $lockstate,
'$allow_cid' => acl2json($channel_acl['allow_cid']),
'$allow_gid' => acl2json($channel_acl['allow_gid']),
'$deny_cid' => acl2json($channel_acl['deny_cid']),
- '$deny_gid' => acl2json($channel_acl['deny_gid'])
-
-
+ '$deny_gid' => acl2json($channel_acl['deny_gid']),
+ '$is_owner' => $is_owner,
+ '$select_all_label' => t('Select All'),
+ '$bulk_actions_label' => t('Bulk Actions'),
+ '$adjust_permissions_label' => t('Adjust Permissions'),
+ '$move_copy_label' => t('Move or Copy'),
+ '$categories_label' => t('Categories'),
+ '$download_label' => t('Download'),
+ '$info_label' => t('Info'),
+ '$rename_label' => t('Rename'),
+ '$post_label' => t('Post'),
+ '$attach_bbcode_label' => t('Attachment BBcode'),
+ '$embed_bbcode_label' => t('Embed BBcode'),
+ '$link_bbcode_label' => t('Link BBcode'),
+ '$close_label' => t('Close')
));
$a = false;
@@ -491,7 +507,7 @@ class Browser extends DAV\Browser\Plugin {
$breadcrumbs_html = '';
- if($display_path && ! $_REQUEST['cat']){
+ if($display_path && ! $_REQUEST['cat'] && ! $_SESSION['cloud_tiles']){
$breadcrumbs = [];
$folders = explode('/', $display_path);
$folder_hashes = explode('/', $node->os_path);
@@ -534,7 +550,8 @@ class Browser extends DAV\Browser\Plugin {
'$folder' => $node->folder_hash,
'$dragdroptext' => t('Drop files here to immediately upload'),
'$notify' => ['notify', t('Show in your contacts shared folder'), 0, '', [t('No'), t('Yes')]],
- '$breadcrumbs_html' => $breadcrumbs_html
+ '$breadcrumbs_html' => $breadcrumbs_html,
+ '$drop_area_label' => t('You can select files via the upload button or drop them right here or into an existing folder.')
));
}
diff --git a/Zotlabs/Web/HTTPSig.php b/Zotlabs/Web/HTTPSig.php
index 1f6979191..0b3e2bf2e 100644
--- a/Zotlabs/Web/HTTPSig.php
+++ b/Zotlabs/Web/HTTPSig.php
@@ -225,7 +225,7 @@ class HTTPSig {
}
if($keytype === 'zot6') {
- $key = self::get_zotfinger_key($id,$force);
+ $key = self::get_zotfinger_key($id);
if($key) {
return $key;
}
diff --git a/Zotlabs/Widget/Dirsort.php b/Zotlabs/Widget/Dirsort.php
index e75a00e50..2fb38b7df 100644
--- a/Zotlabs/Widget/Dirsort.php
+++ b/Zotlabs/Widget/Dirsort.php
@@ -2,10 +2,10 @@
namespace Zotlabs\Widget;
-require_once('include/dir_fns.php');
+use Zotlabs\Lib\Libzotdir;
class Dirsort {
function widget($arr) {
- return dir_sort_links();
+ return Libzotdir::dir_sort_links();
}
}
diff --git a/Zotlabs/Zot6/Finger.php b/Zotlabs/Zot6/Finger.php
index 22ce4685d..cec3f98ab 100644
--- a/Zotlabs/Zot6/Finger.php
+++ b/Zotlabs/Zot6/Finger.php
@@ -88,7 +88,7 @@ class Finger {
$headers = [];
$headers['X-Zot-Channel'] = $channel['channel_address'] . '@' . \App::get_hostname();
$headers['X-Zot-Nonce'] = random_string();
- $xhead = HTTPSig::create_sig($headers,$channel['channel_prvkey'],'acct:' . channel_reddress($channel));
+ $xhead = HTTPSig::create_sig($headers,$channel['channel_prvkey'], channel_url($channel));
$retries = 0;
@@ -100,7 +100,7 @@ class Finger {
$result = z_post_url('http://' . $host . $rhs,$postvars, $retries, [ 'headers' => $xhead ]);
}
}
- }
+ }
else {
$rhs .= '?f=&address=' . urlencode($address) . '&token=' . self::$token;
diff --git a/Zotlabs/Zot6/Zot6Handler.php b/Zotlabs/Zot6/Zot6Handler.php
index d717b147b..bd321c4b1 100644
--- a/Zotlabs/Zot6/Zot6Handler.php
+++ b/Zotlabs/Zot6/Zot6Handler.php
@@ -226,18 +226,18 @@ class Zot6Handler implements IHandler {
if ($recipients) {
// basically this means "unfriend"
foreach ($recipients as $recip) {
- $r = q("select channel.*,xchan.* from channel
+ $channel = q("select channel.*,xchan.* from channel
left join xchan on channel_hash = xchan_hash
where channel_hash = '%s' limit 1",
dbesc($recip)
);
- if ($r) {
- $r = q("select abook_id from abook where uid = %d and abook_xchan = '%s' limit 1",
- intval($r[0]['channel_id']),
+ if ($channel) {
+ $abook = q("select abook_id from abook where abook_channel = %d and abook_xchan = '%s' limit 1",
+ intval($channel[0]['channel_id']),
dbesc($sender)
);
- if ($r) {
- contact_remove($r[0]['channel_id'],$r[0]['abook_id']);
+ if ($abook) {
+ contact_remove($channel[0]['channel_id'],$abook[0]['abook_id']);
}
}
}
diff --git a/app/mail.apd b/app/mail.apd
deleted file mode 100644
index f94a2b3c7..000000000
--- a/app/mail.apd
+++ /dev/null
@@ -1,6 +0,0 @@
-version: 2
-url: $baseurl/mail/combined
-requires: local_channel
-name: Mail
-photo: icon:envelope
-categories: nav_featured_app, Personal
diff --git a/app/mail.png b/app/mail.png
deleted file mode 100644
index bbd9f8449..000000000
--- a/app/mail.png
+++ /dev/null
Binary files differ
diff --git a/boot.php b/boot.php
index fc3e65e08..cd2704783 100755
--- a/boot.php
+++ b/boot.php
@@ -50,7 +50,7 @@ require_once('include/attach.php');
require_once('include/bbcode.php');
define ( 'PLATFORM_NAME', 'hubzilla' );
-define ( 'STD_VERSION', '5.1.11' );
+define ( 'STD_VERSION', '5.3.1' );
define ( 'ZOT_REVISION', '6.0' );
define ( 'DB_UPDATE_VERSION', 1240 );
@@ -82,11 +82,16 @@ define ( 'DIRECTORY_MODE_STANDALONE', 0x0100); // A detached (off the grid) hub
define ( 'DIRECTORY_REALM', 'RED_GLOBAL');
define ( 'DIRECTORY_FALLBACK_MASTER', 'https://hub.netzgemeinde.eu');
-$DIRECTORY_FALLBACK_SERVERS = array(
- 'https://hub.netzgemeinde.eu',
- 'https://zotsite.net',
- 'https://hub.libranet.de'
-);
+
+function get_directory_fallback_servers() {
+ $ret = [
+ 'https://hub.netzgemeinde.eu',
+ 'https://zotsite.net',
+ 'https://hub.libranet.de'
+ ];
+
+ return $ret;
+}
/**
@@ -355,6 +360,7 @@ define ( 'UPDATE_FLAGS_UPDATED', 0x0001);
define ( 'UPDATE_FLAGS_FORCED', 0x0002);
define ( 'UPDATE_FLAGS_DELETED', 0x1000);
+define ( 'HUBLOC_OFFLINE', 0x0001);
define ( 'DROPITEM_NORMAL', 0);
define ( 'DROPITEM_PHASE1', 1);
@@ -2017,7 +2023,7 @@ function proc_run(){
}
$args = array_map('escapeshellarg',$args);
- $cmdline = implode($args," ");
+ $cmdline = implode(' ', $args);
if(is_windows()) {
$cwd = getcwd();
diff --git a/composer.json b/composer.json
index 5d4baa6dd..d138ccc43 100644
--- a/composer.json
+++ b/composer.json
@@ -23,12 +23,15 @@
"source": "https://framagit.org/hubzilla/core/"
},
"require": {
- "php": ">=5.5",
+ "php": ">=7.3",
"ext-curl": "*",
"ext-gd": "*",
"ext-mbstring": "*",
"ext-xml": "*",
"ext-openssl": "*",
+ "ext-json": "*",
+ "ext-zip": "*",
+ "ext-posix": "*",
"sabre/dav": "^4.0",
"michelf/php-markdown": "^1.7",
"bshaffer/oauth2-server-php": "^1.9",
diff --git a/include/attach.php b/include/attach.php
index b4f697f81..9ba6be109 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -2987,10 +2987,7 @@ function attach_folder_select_list($channel_id) {
if($r) {
foreach($r as $rv) {
- $x = attach_folder_rpaths($r,$rv);
- if($x) {
- $out[$x[0]] = $x[1];
- }
+ $out[$rv['hash']] = $rv['display_path'];
}
}
@@ -3020,7 +3017,7 @@ function attach_folder_rpaths($all_folders,$that_folder) {
if(! $found)
$error = true;
}
- while((! $found) && (! $error) && ($parent_hash != ''));
+ while((! $error) && ($parent_hash != ''));
}
return (($error) ? false : [ $current_hash , $path ]);
@@ -3067,8 +3064,7 @@ function attach_syspaths($channel_id,$attach_hash) {
function attach_upgrade() {
-
- $r = q("select id, uid, hash from attach where os_path = '' and display_path = '' limit 100");
+ $r = q("SELECT id, uid, hash FROM attach WHERE os_path = '' OR display_path = '' LIMIT 100");
if($r) {
foreach($r as $rv) {
$x = attach_syspaths($rv['uid'],$rv['hash']);
diff --git a/include/bbcode.php b/include/bbcode.php
index d79429719..e1a5c7e47 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -966,7 +966,7 @@ function bbtopoll($s) {
$pl['poll_id'] = $match[1];
$pl['poll_question'] = $match[2];
- $match = '';
+ $match = [];
if(preg_match_all("/\[poll\-answer=(.*?)\](.*?)\[\/poll\-answer\]/is",$s,$match,PREG_SET_ORDER)) {
$pl['answer'] = [];
foreach($match as $m) {
@@ -1349,7 +1349,7 @@ function bbcode($Text, $options = []) {
// Check for table of content with params
while(strpos($Text,'[toc') !== false) {
$toc_id = 'toc-' . random_string(10);
- $Text = preg_replace("/\[toc([^\]]+?)\]/ism", '<ul id="' . $toc_id . '" class="toc"$1></ul><script>$("#' . $toc_id . '").toc();</script>', $Text, 1);
+ $Text = preg_replace("/\[toc([^\]]+?)\]/ism", '<ul id="' . $toc_id . '" class="toc" $1></ul><script>$("#' . $toc_id . '").toc();</script>', $Text, 1);
}
// Check for centered text
if (strpos($Text,'[/center]') !== false) {
diff --git a/include/bookmarks.php b/include/bookmarks.php
index 21456c871..145119347 100644
--- a/include/bookmarks.php
+++ b/include/bookmarks.php
@@ -18,7 +18,7 @@ function bookmark_add($channel,$sender,$taxonomy,$private,$opts = null) {
$channel_id = $channel['channel_id'];
if($private)
- $iarr['contact_allow'] = array($channel['channel_hash']);
+ $iarr['contact_allow'] = array($channel['channel_hash']);
$iarr['mitem_link'] = $taxonomy['url'];
$iarr['mitem_desc'] = $taxonomy['term'];
$iarr['mitem_flags'] = (($ischat) ? MENU_ITEM_CHATROOM : 0);
@@ -41,34 +41,34 @@ function bookmark_add($channel,$sender,$taxonomy,$private,$opts = null) {
if(! $menu_id) {
$x = menu_list($arr['menu_channel_id'],$arr['menu_name'],$arr['menu_flags']);
- if($x)
+ if($x)
$menu_id = $x[0]['menu_id'];
- else
+ else
$menu_id = menu_create($arr);
}
if(! $menu_id) {
logger('bookmark_add: unable to create menu ' . $arr['menu_name']);
- return;
+ return;
}
logger('add_bookmark: menu_id ' . $menu_id);
$r = q("select * from menu_item where mitem_link = '%s' and mitem_menu_id = %d and mitem_channel_id = %d limit 1",
dbesc($iarr['mitem_link']),
intval($menu_id),
- intval($channel_id)
+ intval($channel_id)
);
if($r)
logger('add_bookmark: duplicate menu entry', LOGGER_DEBUG);
if(! $r) {
$r = menu_add_item($menu_id,$channel_id,$iarr);
- menu_sync_packet($channel_id,get_observer_hash(),$menu_id);
+ menu_sync_packet($channel_id,get_observer_hash(),$menu_id);
}
return $r;
}
function get_bookmark_link($observer) {
- if((! $observer) || ($observer['xchan_network'] !== 'zot'))
+ if((! $observer) || !in_array($observer['xchan_network'], ['zot6', 'zot']))
return '';
$h = @parse_url($observer['xchan_url']);
diff --git a/include/cdav.php b/include/cdav.php
index ef248a9fe..fcce0ec4a 100644
--- a/include/cdav.php
+++ b/include/cdav.php
@@ -111,7 +111,7 @@ function process_cdav_card($f, &$vcard, $edit = false) {
function import_cdav_card($id, $ext, $table, $column, $objects, $profile, $backend, &$ids, $notice = false) {
$i = 0;
- $newid = (count($ids) ? false : true);
+ $newid = (count($ids) ? false : true);
while ($object = $objects->getNext()) {
@@ -161,7 +161,7 @@ function import_cdav_card($id, $ext, $table, $column, $objects, $profile, $backe
);
}
- if($notice && $exp == 'vcf') {
+ if($notice && $ext == 'vcf') {
notice(
'<strong>' . t('INVALID CARD DISMISSED!') . '</strong>' . EOL .
'<strong>' . t('Name: ') . '</strong>' . (($object->FN) ? $object->FN : t('Unknown')) . EOL .
diff --git a/include/channel.php b/include/channel.php
index d610a0b9a..2d79cd074 100644
--- a/include/channel.php
+++ b/include/channel.php
@@ -651,7 +651,7 @@ function change_channel_keys($channel) {
foreach($h as $hv) {
$hv['hubloc_guid_sig'] = $sig;
$hv['hubloc_hash'] = $hash;
- $hv['hubloc_url_sig'] = base64url_encode(rsa_sign(z_root(),$modifed['channel_prvkey']));
+ $hv['hubloc_url_sig'] = base64url_encode(rsa_sign(z_root(),$modified['channel_prvkey']));
hubloc_store_lowlevel($hv);
}
}
diff --git a/include/connections.php b/include/connections.php
index 100e595d0..87db7faa9 100644
--- a/include/connections.php
+++ b/include/connections.php
@@ -211,8 +211,8 @@ function mark_orphan_hubsxchans() {
if($dirmode == DIRECTORY_MODE_NORMAL)
return;
- $r = q("update hubloc set hubloc_error = 1 where hubloc_error = 0
- and hubloc_network = 'zot' and hubloc_connected < %s - interval %s",
+ $r = q("UPDATE hubloc SET hubloc_error = 1 WHERE hubloc_error = 0
+ AND hubloc_network IN ('zot6', 'zot') AND hubloc_connected < %s - INTERVAL %s",
db_utcnow(), db_quoteinterval('36 day')
);
@@ -357,7 +357,7 @@ function contact_remove($channel_id, $abook_id) {
call_hooks('connection_remove',$x);
- $archive = get_pconfig($channel_id, 'system','archive_removed_contacts');
+ $archive = get_pconfig($channel_id, 'system', 'archive_removed_contacts');
if($archive) {
q("update abook set abook_archived = 1 where abook_id = %d and abook_channel = %d",
intval($abook_id),
@@ -472,7 +472,7 @@ function random_profile() {
$r = q("select xchan_url, xchan_hash from xchan left join hubloc on hubloc_hash = xchan_hash where
xchan_hidden = 0 and xchan_system = 0 and
- xchan_network = 'zot' and xchan_deleted = 0 and
+ xchan_network = 'zot6' and xchan_deleted = 0 and
hubloc_connected > %s - interval %s order by $randfunc limit 1",
db_utcnow(),
db_quoteinterval('30 day')
diff --git a/include/conversation.php b/include/conversation.php
index 6615b04c3..087e8c135 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -90,18 +90,18 @@ function item_redir_and_replace_images($body, $images, $cid) {
function localize_item(&$item){
if (activity_match($item['verb'],ACTIVITY_LIKE) || activity_match($item['verb'],ACTIVITY_DISLIKE)){
-
+
if(! $item['obj'])
return;
if(intval($item['item_thread_top']))
- return;
+ return;
$obj = json_decode($item['obj'],true);
if((! $obj) && ($item['obj'])) {
logger('localize_item: failed to decode object: ' . print_r($item['obj'],true));
}
-
+
if(is_array($obj['author']) && $obj['author']['link'])
$author_link = get_rel_link($obj['author']['link'],'alternate');
elseif(is_array($obj['actor']) && $obj['actor']['url'])
@@ -167,7 +167,7 @@ function localize_item(&$item){
if($author_link && $author_name && $item_url) {
$author = '[zrl=' . chanlink_url($item['author']['xchan_url']) . ']' . $item['author']['xchan_name'] . '[/zrl]';
$objauthor = '[zrl=' . chanlink_url($author_link) . ']' . $author_name . '[/zrl]';
-
+
$plink = '[zrl=' . zid($item_url) . ']' . $post_type . '[/zrl]';
if(activity_match($item['verb'],ACTIVITY_LIKE)) {
@@ -189,7 +189,7 @@ function localize_item(&$item){
$item['shortlocalize'] = sprintf($shortbodyverb, '[bdi]' . $author_name . '[/bdi]', $post_type);
$item['body'] = $item['localize'] = sprintf($bodyverb, '[bdi]' . $author . '[/bdi]', '[bdi]' . $objauthor . '[/bdi]', $plink);
- if($Bphoto != "")
+ if($Bphoto != "")
$item['body'] .= "\n\n\n" . '[zrl=' . chanlink_url($author_link) . '][zmg=80x80]' . $Bphoto . '[/zmg][/zrl]';
}
@@ -201,7 +201,7 @@ function localize_item(&$item){
if (activity_match($item['verb'],ACTIVITY_FRIEND)) {
- if ($item['obj_type'] == "" || $item['obj_type'] !== ACTIVITY_OBJ_PERSON)
+ if ($item['obj_type'] == "" || $item['obj_type'] !== ACTIVITY_OBJ_PERSON)
return;
$Aname = $item['author']['xchan_name'];
@@ -209,7 +209,7 @@ function localize_item(&$item){
$obj= json_decode($item['obj'],true);
-
+
$Blink = $Bphoto = '';
if($obj['link']) {
@@ -282,7 +282,7 @@ function localize_item(&$item){
$Alink = $item['author']['xchan_url'];
$A = '[zrl=' . chanlink_url($Alink) . '][bdi]' . $Aname . '[/bdi][/zrl]';
-
+
$txt = t('%1$s is %2$s','mood');
$item['body'] = sprintf($txt, $A, t($verb));
@@ -295,15 +295,15 @@ function localize_item(&$item){
// (and update to json storage)
if (activity_match($item['verb'],ACTIVITY_TAG)) {
- $r = q("SELECT * from item,contact WHERE
+ $r = q("SELECT * from item,contact WHERE
item.contact-id=contact.id AND item.mid='%s';",
dbesc($item['parent_mid']));
if(count($r)==0) return;
$obj=$r[0];
-
+
$author = '[zrl=' . zid($item['author-link']) . ']' . $item['author-name'] . '[/zrl]';
$objauthor = '[zrl=' . zid($obj['author-link']) . ']' . $obj['author-name'] . '[/zrl]';
-
+
switch($obj['verb']){
case ACTIVITY_POST:
switch ($obj['obj_type']){
@@ -416,7 +416,7 @@ function count_descendants($item) {
* likes (etc.) can apply to other things besides posts. Check if they are post
* children, in which case we handle them specially. Activities which are unrecognised
* as having special meaning and hidden will be treated as posts or comments and visible
- * in the stream.
+ * in the stream.
*
* @param array $item
* @return boolean
@@ -438,14 +438,14 @@ function visible_activity($item) {
}
// We only need edit activities for other federated protocols
- // which do not support edits natively. While this does federate
+ // which do not support edits natively. While this does federate
// edits, it presents a number of issues locally - such as #757 and #758.
// The SQL check for an edit activity would not perform that well so to fix these issues
- // requires an additional item flag (perhaps 'item_edit_activity') that we can add to the
+ // requires an additional item flag (perhaps 'item_edit_activity') that we can add to the
// query for searches and notifications.
- // For now we'll just forget about trying to make edits work on network protocols that
- // don't support them.
+ // For now we'll just forget about trying to make edits work on network protocols that
+ // don't support them.
// if(is_edit_activity($item))
// return false;
@@ -455,7 +455,7 @@ function visible_activity($item) {
/**
* @brief Check if a given activity is an edit activity
- *
+ *
*
* @param array $item
* @return boolean
@@ -463,11 +463,11 @@ function visible_activity($item) {
function is_edit_activity($item) {
- $post_types = [ ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT, basename(ACTIVITY_OBJ_NOTE), basename(ACTIVITY_OBJ_COMMENT)];
+ $post_types = [ ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT, basename(ACTIVITY_OBJ_NOTE), basename(ACTIVITY_OBJ_COMMENT)];
- // In order to share edits with networks which have no concept of editing, we'll create
+ // In order to share edits with networks which have no concept of editing, we'll create
// separate activities to indicate the edit. Our network will not require them, since our
- // edits are automatically applied and the activity indicated.
+ // edits are automatically applied and the activity indicated.
if(($item['verb'] === ACTIVITY_UPDATE) && (in_array($item['obj_type'],$post_types)))
return true;
@@ -678,12 +678,12 @@ function conversation($items, $mode, $update, $page_mode = 'traditional', $prepa
foreach($items as $item) {
- $x = [
- 'mode' => $mode,
- 'item' => $item
+ $x = [
+ 'mode' => $mode,
+ 'item' => $item
];
call_hooks('stream_item',$x);
-
+
if($x['item']['blocked'])
continue;
@@ -699,7 +699,7 @@ function conversation($items, $mode, $update, $page_mode = 'traditional', $prepa
$is_new = false;
if($mode === 'search' || $mode === 'community') {
- if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE)))
+ if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE)))
&& ($item['id'] != $item['parent']))
continue;
}
@@ -726,7 +726,7 @@ function conversation($items, $mode, $update, $page_mode = 'traditional', $prepa
$drop = array(
'pagedropping' => $page_dropping,
'dropping' => $dropping,
- 'select' => t('Select'),
+ 'select' => t('Select'),
'delete' => t('Delete'),
);
@@ -769,7 +769,7 @@ function conversation($items, $mode, $update, $page_mode = 'traditional', $prepa
$tmp_item = array(
'template' => $tpl,
'toplevel' => 'toplevel_item',
- 'item_type' => intval($item['item_type']),
+ 'item_type' => intval($item['item_type']),
'mode' => $mode,
'approve' => t('Approve'),
'delete' => t('Delete'),
@@ -844,7 +844,7 @@ function conversation($items, $mode, $update, $page_mode = 'traditional', $prepa
$conv = new Zotlabs\Lib\ThreadStream($mode, $preview, $uploading, $prepared_item);
- // In the display mode we don't have a profile owner.
+ // In the display mode we don't have a profile owner.
if($mode === 'display' && $items)
$conv->set_profile_owner($items[0]['uid']);
@@ -861,7 +861,7 @@ function conversation($items, $mode, $update, $page_mode = 'traditional', $prepa
$x = [ 'mode' => $mode, 'item' => $item ];
call_hooks('stream_item',$x);
-
+
if($x['item']['blocked'])
continue;
@@ -970,9 +970,9 @@ function best_link_url($item) {
function thread_action_menu($item,$mode = '') {
$menu = [];
-
+
if((local_channel()) && local_channel() == $item['uid']) {
- $menu[] = [
+ $menu[] = [
'menu' => 'view_source',
'title' => t('View Source'),
'icon' => 'code',
@@ -982,7 +982,7 @@ function thread_action_menu($item,$mode = '') {
if(! in_array($mode, [ 'network-new', 'search', 'community'])) {
if($item['parent'] == $item['id'] && (get_observer_hash() != $item['author_xchan'])) {
- $menu[] = [
+ $menu[] = [
'menu' => 'follow_thread',
'title' => t('Follow Thread'),
'icon' => 'plus',
@@ -991,7 +991,7 @@ function thread_action_menu($item,$mode = '') {
];
}
- $menu[] = [
+ $menu[] = [
'menu' => 'unfollow_thread',
'title' => t('Unfollow Thread'),
'icon' => 'minus',
@@ -1018,7 +1018,7 @@ function author_is_pmable($xchan, $abook) {
call_hooks('author_is_pmable',$x);
if($x['result'] !== 'unset')
return $x['result'];
-
+
if($xchan['xchan_network'] === 'zot' && get_observer_hash())
return true;
return false;
@@ -1063,7 +1063,7 @@ function thread_author_menu($item, $mode = '') {
if($contact) {
$poke_link = ((Apps::system_app_installed($local_channel, 'Poke')) ? z_root() . '/poke/?f=&c=' . $contact['abook_id'] : '');
- if (! intval($contact['abook_self']))
+ if (! intval($contact['abook_self']))
$contact_url = z_root() . '/connedit/' . $contact['abook_id'];
$posts_link = z_root() . '/network/?cid=' . $contact['abook_id'];
@@ -1075,7 +1075,7 @@ function thread_author_menu($item, $mode = '') {
$ratings_url = (($rating_enabled) ? z_root() . '/ratings/' . urlencode($item['author_xchan']) : '');
if($profile_link) {
- $menu[] = [
+ $menu[] = [
'menu' => 'view_profile',
'title' => t('View Profile'),
'icon' => 'fw',
@@ -1085,7 +1085,7 @@ function thread_author_menu($item, $mode = '') {
}
if($posts_link) {
- $menu[] = [
+ $menu[] = [
'menu' => 'view_posts',
'title' => t('Recent Activity'),
'icon' => 'fw',
@@ -1095,7 +1095,7 @@ function thread_author_menu($item, $mode = '') {
}
if($follow_url) {
- $menu[] = [
+ $menu[] = [
'menu' => 'follow',
'title' => t('Connect'),
'icon' => 'fw',
@@ -1105,7 +1105,7 @@ function thread_author_menu($item, $mode = '') {
}
if($contact_url) {
- $menu[] = [
+ $menu[] = [
'menu' => 'connedit',
'title' => t('Edit Connection'),
'icon' => 'fw',
@@ -1115,7 +1115,7 @@ function thread_author_menu($item, $mode = '') {
}
if($pm_url) {
- $menu[] = [
+ $menu[] = [
'menu' => 'prv_message',
'title' => t('Message'),
'icon' => 'fw',
@@ -1125,7 +1125,7 @@ function thread_author_menu($item, $mode = '') {
}
if($ratings_url) {
- $menu[] = [
+ $menu[] = [
'menu' => 'ratings',
'title' => t('Ratings'),
'icon' => 'fw',
@@ -1135,7 +1135,7 @@ function thread_author_menu($item, $mode = '') {
}
if($poke_link) {
- $menu[] = [
+ $menu[] = [
'menu' => 'poke',
'title' => t('Poke'),
'icon' => 'fw',
@@ -1209,8 +1209,8 @@ function builtin_activity_puller($item, &$conv_responses) {
if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
$name = (($item['author']['xchan_name']) ? $item['author']['xchan_name'] : t('Unknown'));
- $url = (($item['author_xchan'] && $item['author']['xchan_photo_s'])
- ? '<a class="dropdown-item" href="' . chanlink_hash($item['author_xchan']) . '">' . '<img class="menu-img-1" src="' . zid($item['author']['xchan_photo_s']) . '" alt="' . urlencode($name) . '" /> ' . $name . '</a>'
+ $url = (($item['author_xchan'] && $item['author']['xchan_photo_s'])
+ ? '<a class="dropdown-item" href="' . chanlink_hash($item['author_xchan']) . '">' . '<img class="menu-img-1" src="' . zid($item['author']['xchan_photo_s']) . '" alt="' . urlencode($name) . '" /> ' . $name . '</a>'
: '<a class="dropdown-item" href="#" class="disabled">' . $name . '</a>'
);
@@ -1222,7 +1222,7 @@ function builtin_activity_puller($item, &$conv_responses) {
if($item['obj_type'] === 'Answer')
continue;
- if(! ((isset($conv_responses[$mode][$item['thr_parent'] . '-l']))
+ if(! ((isset($conv_responses[$mode][$item['thr_parent'] . '-l']))
&& (is_array($conv_responses[$mode][$item['thr_parent'] . '-l']))))
$conv_responses[$mode][$item['thr_parent'] . '-l'] = array();
@@ -1297,9 +1297,9 @@ function status_editor($a, $x, $popup = false, $module='') {
}
/**
- * This is our general purpose content editor.
+ * This is our general purpose content editor.
* It was once nicknamed "jot" and you may see references to "jot" littered throughout the code.
- * They are referring to the content editor or components thereof.
+ * They are referring to the content editor or components thereof.
*/
function hz_status_editor($a, $x, $popup = false) {
@@ -1341,7 +1341,7 @@ function hz_status_editor($a, $x, $popup = false) {
$weblink = (($mimetype === 'text/bbcode') ? t('Insert web link') : false);
if(x($x, 'hide_weblink'))
$weblink = false;
-
+
$embedPhotos = t('Embed (existing) photo from your photo albums');
$writefiles = (($mimetype === 'text/bbcode') ? perm_is_allowed($x['profile_uid'], get_observer_hash(), 'write_storage') : false);
@@ -1366,9 +1366,9 @@ function hz_status_editor($a, $x, $popup = false) {
$webpage = ((x($x,'webpage')) ? $x['webpage'] : '');
$reset = ((x($x,'reset')) ? $x['reset'] : '');
-
+
$feature_auto_save_draft = ((feature_enabled($x['profile_uid'], 'auto_save_draft')) ? "true" : "false");
-
+
$tpl = get_markup_template('jot-header.tpl');
$tplmacros = [
@@ -1394,7 +1394,7 @@ function hz_status_editor($a, $x, $popup = false) {
'$reset' => $reset
];
- call_hooks('jot_header_tpl_filter',$tplmacros);
+ call_hooks('jot_header_tpl_filter',$tplmacros);
App::$page['htmlhead'] .= replace_macros($tpl, $tplmacros);
$tpl = get_markup_template('jot.tpl');
@@ -1421,7 +1421,7 @@ function hz_status_editor($a, $x, $popup = false) {
$catsenabled = ((feature_enabled($x['profile_uid'], 'categories') && (! $webpage)) ? 'categories' : '');
// avoid illegal offset errors
- if(! array_key_exists('permissions',$x))
+ if(! array_key_exists('permissions',$x))
$x['permissions'] = [ 'allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '' ];
$jotplugins = '';
@@ -1539,7 +1539,7 @@ function get_item_children($arr, $parent) {
$thr_parent = $item['thr_parent'];
if($thr_parent == '')
$thr_parent = $item['parent_mid'];
-
+
if($thr_parent == $parent['mid']) {
$item['children'] = get_item_children($arr, $item);
$children[] = $item;
@@ -1698,9 +1698,9 @@ function prepare_page($item) {
return replace_macros(get_markup_template($tpl), array(
'$body' => $body['html']
));
-
+
}
-
+
$tpl = get_pconfig($item['uid'], 'system', 'pagetemplate');
if (! $tpl)
$tpl = 'page_display.tpl';
diff --git a/include/dir_fns.php b/include/dir_fns.php
index f477b35dd..88a1bb74f 100644
--- a/include/dir_fns.php
+++ b/include/dir_fns.php
@@ -16,7 +16,6 @@ require_once('include/permissions.php');
* @return array
*/
function find_upstream_directory($dirmode) {
- global $DIRECTORY_FALLBACK_SERVERS;
$preferred = get_config('system','directory_server');
@@ -28,7 +27,7 @@ function find_upstream_directory($dirmode) {
);
if(($r) && ($r[0]['site_flags'] & DIRECTORY_MODE_STANDALONE)) {
$preferred = '';
- }
+ }
}
@@ -39,14 +38,16 @@ function find_upstream_directory($dirmode) {
* from our list of directory servers. However, if we're a directory
* server ourself, point at the local instance
* We will then set this value so this should only ever happen once.
- * Ideally there will be an admin setting to change to a different
+ * Ideally there will be an admin setting to change to a different
* directory server if you don't like our choice or if circumstances change.
*/
+ $directory_fallback_servers = get_directory_fallback_servers();
+
$dirmode = intval(get_config('system','directory_mode'));
if ($dirmode == DIRECTORY_MODE_NORMAL) {
- $toss = mt_rand(0,count($DIRECTORY_FALLBACK_SERVERS));
- $preferred = $DIRECTORY_FALLBACK_SERVERS[$toss];
+ $toss = mt_rand(0,count($directory_fallback_servers));
+ $preferred = $directory_fallback_servers[$toss];
set_config('system','directory_server',$preferred);
} else{
set_config('system','directory_server',z_root());
@@ -94,7 +95,7 @@ function get_directory_setting($observer, $setting) {
$ret = get_config('directory', $setting);
- // 'safemode' is the default if there is no observer or no established preference.
+ // 'safemode' is the default if there is no observer or no established preference.
if($setting == 'safemode' && $ret === false)
$ret = 1;
@@ -152,8 +153,8 @@ function dir_sort_links() {
*
* Checks the directory mode of this hub to see if it is some form of directory server. If it is,
* get the directory realm of this hub. Fetch a list of all other directory servers in this realm and request
- * a directory sync packet. This will contain both directory updates and new ratings. Store these all in the DB.
- * In the case of updates, we will query each of them asynchronously from a poller task. Ratings are stored
+ * a directory sync packet. This will contain both directory updates and new ratings. Store these all in the DB.
+ * In the case of updates, we will query each of them asynchronously from a poller task. Ratings are stored
* directly if the rater's signature matches.
*
* @param int $dirmode;
@@ -189,7 +190,7 @@ function sync_directories($dirmode) {
[
'site_url' => DIRECTORY_FALLBACK_MASTER,
'site_flags' => DIRECTORY_MODE_PRIMARY,
- 'site_update' => NULL_DATE,
+ 'site_update' => NULL_DATE,
'site_directory' => DIRECTORY_FALLBACK_MASTER . '/dirsearch',
'site_realm' => DIRECTORY_REALM,
'site_valid' => 1,
@@ -335,11 +336,11 @@ function update_directory_entry($ud) {
// modify the directory search to only return zot6 entries, and also modify this function
// to *only* fetch the zot6 entries.
// Otherwise we'll be showing duplicates or have a mostly empty directory for a good chunk of
- // the transition period. Directory server load will likely increase "moderately" during this transition.
- // The one month counter begins when the primary directory has upgraded to a release which uses this code.
+ // the transition period. Directory server load will likely increase "moderately" during this transition.
+ // The one month counter begins when the primary directory has upgraded to a release which uses this code.
// Hubzilla channels running traditional zot which have not upgraded can or will be dropped from the directory or
// "not found" at the end of the transition period as the directory will only serve zot6 entries at that time.
-
+
$uri = Webfinger::zot_url($ud['ud_addr']);
if($uri) {
$record = Zotfinger::exec($uri);
@@ -347,8 +348,8 @@ function update_directory_entry($ud) {
// Check the HTTP signature
$hsig = $record['signature'];
- if($hsig && $hsig['signer'] === $url && $hsig['header_valid'] === true && $hsig['content_valid'] === true) {
- $x = \Zotlabs\Lib\Libzot::import_xchan($record['data'], 0, $ud);
+ if($hsig && $hsig['signer'] === $uri && $hsig['header_valid'] === true && $hsig['content_valid'] === true) {
+ $x = Libzot::import_xchan($record['data'], 0, $ud);
if($x['success']) {
$success = true;
}
@@ -394,7 +395,7 @@ function local_dir_update($uid, $force) {
$profile['description'] = $p[0]['pdesc'];
$profile['birthday'] = $p[0]['dob'];
- if ($age = age($p[0]['dob'],$p[0]['channel_timezone'],''))
+ if ($age = age($p[0]['dob'],$p[0]['channel_timezone'],''))
$profile['age'] = $age;
$profile['gender'] = $p[0]['gender'];
diff --git a/include/help.php b/include/help.php
index affe64495..ebf1ccc08 100644
--- a/include/help.php
+++ b/include/help.php
@@ -299,7 +299,7 @@ function load_context_help() {
break;
array_pop($args);
- $path = implode($args,'/');
+ $path = implode('/', $args);
}
return $context_help;
diff --git a/include/html2plain.php b/include/html2plain.php
index 979354079..fde70bd01 100644
--- a/include/html2plain.php
+++ b/include/html2plain.php
@@ -40,7 +40,7 @@ function breaklines($line, $level, $wraplength = 75)
$newlines[] = $line;
- return(implode($newlines, "\n"));
+ return(implode("\n", $newlines));
}
function quotelevel($message, $wraplength = 75)
@@ -73,7 +73,7 @@ function quotelevel($message, $wraplength = 75)
if (!$startquote or ($line != ''))
$newlines[] = breaklines($line, $currlevel, $wraplength);
}
- return(implode($newlines, "\n"));
+ return(implode("\n", $newlines));
}
function collecturls($message) {
diff --git a/include/import.php b/include/import.php
index d02cc1e1f..b512e1f11 100644
--- a/include/import.php
+++ b/include/import.php
@@ -1358,7 +1358,7 @@ function sync_files($channel, $files) {
$headers = [];
$headers['Accept'] = 'application/x-zot+json' ;
$headers['Sigtoken'] = random_string();
- $headers = HTTPSig::create_sig($headers,$channel['channel_prvkey'], 'acct:' . channel_reddress($channel),true,'sha512');
+ $headers = HTTPSig::create_sig($headers, $channel['channel_prvkey'], channel_url($channel), true, 'sha512');
$x = z_post_url($fetch_url,$parr,$redirects,[ 'filep' => $fp, 'headers' => $headers]);
fclose($fp);
@@ -1463,7 +1463,7 @@ function sync_files($channel, $files) {
$headers = [];
$headers['Accept'] = 'application/x-zot+json' ;
$headers['Sigtoken'] = random_string();
- $headers = HTTPSig::create_sig($headers,$channel['channel_prvkey'],'acct:' . channel_reddress($channel),true,'sha512');
+ $headers = HTTPSig::create_sig($headers, $channel['channel_prvkey'], channel_url($channel), true, 'sha512');
$x = z_post_url($fetch_url,$parr,$redirects,[ 'filep' => $fp, 'headers' => $headers]);
fclose($fp);
diff --git a/include/items.php b/include/items.php
index 2426c189f..bfca354d1 100755
--- a/include/items.php
+++ b/include/items.php
@@ -11,6 +11,7 @@ use Zotlabs\Lib\ThreadListener;
use Zotlabs\Lib\IConfig;
use Zotlabs\Lib\Activity;
use Zotlabs\Lib\Libsync;
+use Zotlabs\Lib\Libzot;
use Zotlabs\Access\PermissionLimits;
use Zotlabs\Access\PermissionRoles;
use Zotlabs\Access\AccessList;
@@ -130,7 +131,7 @@ function collect_recipients($item, &$private_envelope,$include_groups = true) {
case 'sit':
case 'any':
case 'con':
- if($rr['xchan_network'] != 'zot')
+ if(!in_array($rr['xchan_network'], ['zot6', 'zot']))
break;
case 'pub':
case '':
@@ -790,8 +791,8 @@ function get_item_elements($x,$allow_code = false) {
dbesc($arr['author_xchan'])
);
if($r) {
- if($r[0]['xchan_pubkey'] && $r[0]['xchan_network'] === 'zot') {
- if(rsa_verify($x['body'],base64url_decode($arr['sig']),$r[0]['xchan_pubkey'])) {
+ if($r[0]['xchan_pubkey'] && $r[0]['xchan_network'] === 'zot6') {
+ if(Libzot::verify($x['body'], $arr['sig'], $r[0]['xchan_pubkey'])) {
$arr['item_verified'] = 1;
}
else {
@@ -2206,6 +2207,7 @@ function item_store_update($arr, $allow_exec = false, $deliver = true) {
return $ret;
}
+
// override the unseen flag with the original
$arr['item_unseen'] = $orig[0]['item_unseen'];
@@ -2672,6 +2674,11 @@ function tag_deliver($uid, $item_id) {
}
if ($is_group && intval($item['item_private']) === 2 && intval($item['item_thread_top'])) {
+
+ // do not turn the groups own direkt messages into group items
+ if($item['item_wall'] && $item['author_xchan'] === $u[0]['channel_hash'])
+ return;
+
// group delivery via DM
if(perm_is_allowed($uid,$item['owner_xchan'],'post_wall') || perm_is_allowed($uid,$item['owner_xchan'],'tag_deliver')) {
logger('group DM delivery for ' . $u[0]['channel_address']);
@@ -2682,6 +2689,12 @@ function tag_deliver($uid, $item_id) {
if ($is_group && intval($item['item_thread_top']) && intval($item['item_wall']) && $item['author_xchan'] !== $item['owner_xchan']) {
+
+ if($item['resource_type'] === 'group_item') {
+ logger('resource_type group_item: already shared');
+ return;
+ }
+
if (strpos($item['body'],'[/share]')) {
logger('W2W post already shared');
return;
@@ -3113,11 +3126,12 @@ function tgroup_check($uid, $item) {
}
}
}
-*/
+
if(! $found) {
logger('tgroup_check: mention was in a reshare or exceeded max_tagged_forums - ignoring');
continue;
}
+*/
return true;
}
@@ -3203,16 +3217,18 @@ function start_delivery_chain($channel, $item, $item_id, $parent, $group = false
$arr = [];
if ($edit) {
+
// process edit or delete action
- $r = q("select * from item where source_xchan = '%s' and body like '%s' and uid = %d limit 1",
- dbesc($item['owner_xchan']),
- dbesc("%message_id='" . $item['mid'] . "'%"),
- intval($channel['channel_id'])
+ $r = q("select * from item where uid = %d and resource_id = '%s' and source_xchan = '%s' and resource_type = 'group_item' limit 1",
+ intval($channel['channel_id']),
+ dbesc($item['mid']),
+ dbesc($item['author_xchan'])
);
+
if ($r) {
if (intval($item['item_deleted'])) {
- drop_item($r[0]['id'],false,DROPITEM_PHASE1);
- Master::Summon([ 'Notifier','drop',$r[0]['id'] ]);
+ drop_item($r[0]['id'], false, DROPITEM_PHASE1);
+ Master::Summon([ 'Notifier', 'drop', $r[0]['id'] ]);
return;
}
$arr['id'] = intval($r[0]['id']);
@@ -3242,6 +3258,9 @@ function start_delivery_chain($channel, $item, $item_id, $parent, $group = false
$arr['item_uplink'] = 0;
$arr['source_xchan'] = $item['owner_xchan'];
+ $arr['resource_id'] = $item['mid'];
+ $arr['resource_type'] = 'group_item';
+
$arr['item_private'] = (($channel['channel_allow_cid'] || $channel['channel_allow_gid']
|| $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 1 : 0);
@@ -3263,12 +3282,13 @@ function start_delivery_chain($channel, $item, $item_id, $parent, $group = false
"' message_id='" . $item['mid'] .
"']";
if($item['title'])
- $bb .= '[b]'.$item['title'].'[/b]'."\r\n";
+ $bb .= '[h3][b]'.$item['title'].'[/b][/h3]'."\r\n";
$bb .= $item['body'];
$bb .= "[/share]";
}
$arr['body'] = $bb;
+ $arr['term'] = $item['term'];
$arr['author_xchan'] = $channel['channel_hash'];
$arr['owner_xchan'] = $channel['channel_hash'];
@@ -3950,10 +3970,10 @@ function drop_item($id,$interactive = true,$stage = DROPITEM_NORMAL) {
);
if($items) {
foreach($items as $i)
- delete_item_lowlevel($i,$stage,$force);
+ delete_item_lowlevel($i, $stage);
}
else
- delete_item_lowlevel($item,$stage,$force);
+ delete_item_lowlevel($item, $stage);
if(! $interactive)
return 1;
@@ -3987,7 +4007,6 @@ function drop_item($id,$interactive = true,$stage = DROPITEM_NORMAL) {
*
* @param array $item
* @param int $stage
- * @param boolean $force
* @return boolean
*/
function delete_item_lowlevel($item, $stage = DROPITEM_NORMAL) {
@@ -4458,7 +4477,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
$sql_extra = " AND item.parent IN ( SELECT parent FROM item WHERE $item_uids and item_thread_top = 1 $sql_options $item_normal ) ";
if($arr['since_id'])
- $sql_extra .= " and item.id > " . $since_id . " ";
+ $sql_extra .= " and item.id > " . intval($arr['since_id']) . " ";
if($arr['cat'])
$sql_extra .= protect_sprintf(term_query('item', $arr['cat'], TERM_CATEGORY));
@@ -4705,7 +4724,7 @@ function webpage_to_namespace($webpage) {
function update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid) {
- if(! $post_id)
+ if(! intval($post_id))
return;
$page_type = webpage_to_namespace($webpage);
@@ -4727,7 +4746,7 @@ function update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remo
// as the entire mid. If it were the post_id the link would be less portable.
IConfig::Set(
- intval($post_id),
+ $post_id,
'system',
$page_type,
($pagetitle) ? $pagetitle : substr($mid,0,16),
diff --git a/include/js_strings.php b/include/js_strings.php
index 6f559f4c4..e06e105fd 100644
--- a/include/js_strings.php
+++ b/include/js_strings.php
@@ -47,10 +47,10 @@ function js_strings() {
'days' => tt('%d days', '%d days', '%d'),
'months' => tt('%d months', '%d months', '%d'),
'years' => tt('%d years', '%d years', '%d'),
-
+
// get plural function code
'plural_func' => tf(),
-
+
'$t01' => ((t('timeago.prefixAgo') == 'timeago.prefixAgo') ? '' : ((t('timeago.prefixAgo') == 'NONE') ? '' : t('timeago.prefixAgo'))),
'$t02' => ((t('timeago.prefixFromNow') == 'timeago.prefixFromNow') ? '' : ((t('timeago.prefixFromNow') == 'NONE') ? '' : t('timeago.prefixFromNow'))),
'$t03' => ((t('timeago.suffixAgo') == 'timeago.suffixAgo') ? 'ago' : ((t('timeago.suffixAgo') == 'NONE') ? '' : t('timeago.suffixAgo'))),
@@ -113,6 +113,9 @@ function js_strings() {
'$month' => t('month','calendar'),
'$week' => t('week','calendar'),
'$day' => t('day','calendar'),
- '$allday' => t('All day','calendar')
+ '$allday' => t('All day','calendar'),
+
+ // mod cloud
+ '$download_info' => t('Please stand by while your download is being prepared.')
));
}
diff --git a/include/network.php b/include/network.php
index bcd66cf85..324a99eba 100644
--- a/include/network.php
+++ b/include/network.php
@@ -714,7 +714,7 @@ function sxml2array ( $xmlObject, $out = array () )
* @brief xml2array() will convert the given XML text to an array in the XML structure.
*
* Link: http://www.bin-co.com/php/scripts/xml2array/
- * Portions significantly re-written by mike@macgirvin.com
+ * Portions significantly re-written by mike@macgirvin.com
* (namespaces, lowercase tags, get_attribute default changed, more...)
*
* Examples: $array = xml2array(file_get_contents('feed.xml'));
@@ -1113,8 +1113,8 @@ function discover_by_webbie($webbie, $protocol = '') {
// Check the HTTP signature
$hsig = $record['signature'];
- if($hsig && ($hsig['signer'] === $url || $hsig['signer'] === $link['href']) && $hsig['header_valid'] === true && $hsig['content_valid'] === true)
- $hsig_valid = true;
+ if($hsig && $hsig['signer'] === $link['href'] && $hsig['header_valid'] === true && $hsig['content_valid'] === true)
+ $hsig_valid = true;
if(! $hsig_valid) {
logger('http signature not valid: ' . print_r($hsig,true));
@@ -1431,7 +1431,7 @@ function scrape_feed($url) {
function do_delivery($deliveries, $force = false) {
// $force is set if a site that wasn't responding suddenly returns to life.
- // Try and shove through everything going to that site while it's responding.
+ // Try and shove through everything going to that site while it's responding.
if(! (is_array($deliveries) && count($deliveries)))
return;
@@ -2069,7 +2069,7 @@ function get_request_string($url) {
* Takes the output of parse_url and builds a URL from it
*
*/
-
+
function unparse_url($parsed_url) {
$scheme = isset($parsed_url['scheme']) ? $parsed_url['scheme'] . '://' : '';
$host = isset($parsed_url['host']) ? $parsed_url['host'] : '';
@@ -2081,4 +2081,4 @@ function unparse_url($parsed_url) {
$query = isset($parsed_url['query']) ? '?' . $parsed_url['query'] : '';
$fragment = isset($parsed_url['fragment']) ? '#' . $parsed_url['fragment'] : '';
return "$scheme$user$pass$host$port$path$query$fragment";
-}
+}
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php
index 52f761b65..f61919eea 100644
--- a/include/photo/photo_driver.php
+++ b/include/photo/photo_driver.php
@@ -38,6 +38,10 @@ function photo_factory($data, $type = null) {
$v = Imagick::getVersion();
preg_match('/ImageMagick ([0-9]+\.[0-9]+\.[0-9]+)/', $v['versionString'], $m);
if(version_compare($m[1], '6.6.7') >= 0) {
+ $limits = get_config('system', 'imagick_limits', false);
+ if ($limits)
+ foreach ($limits as $k => $v)
+ IMagick::setResourceLimit($k, $v);
$ph = new PhotoImagick($data, $type);
} else {
// earlier imagick versions have issues with scaling png's
diff --git a/include/security.php b/include/security.php
index c9df00f1e..40905925f 100644
--- a/include/security.php
+++ b/include/security.php
@@ -19,26 +19,26 @@ function authenticate_success($user_record, $channel = null, $login_initial = fa
$lastlog_updated = false;
- if(x($user_record, 'account_id')) {
+ if (x($user_record, 'account_id')) {
App::$account = $user_record;
$_SESSION['account_id'] = $user_record['account_id'];
$_SESSION['authenticated'] = 1;
- if($channel)
+ if ($channel)
$uid_to_load = $channel['channel_id'];
- if(! $uid_to_load) {
- $uid_to_load = (((x($_SESSION,'uid')) && (intval($_SESSION['uid'])))
+ if (!$uid_to_load) {
+ $uid_to_load = (((x($_SESSION, 'uid')) && (intval($_SESSION['uid'])))
? intval($_SESSION['uid'])
: intval(App::$account['account_default_channel'])
);
}
- if($uid_to_load) {
+ if ($uid_to_load) {
change_channel($uid_to_load);
}
- if($login_initial || $update_lastlog) {
+ if ($login_initial || $update_lastlog) {
q("update account set account_lastlog = '%s' where account_id = %d",
dbesc(datetime_convert()),
intval($_SESSION['account_id'])
@@ -50,24 +50,24 @@ function authenticate_success($user_record, $channel = null, $login_initial = fa
}
- if(($login_initial) && (! $lastlog_updated)) {
+ if (($login_initial) && (!$lastlog_updated)) {
call_hooks('logged_in', $user_record);
// might want to log success here
}
- if($return || x($_SESSION, 'workflow')) {
+ if ($return || x($_SESSION, 'workflow')) {
unset($_SESSION['workflow']);
return;
}
- if((App::$module !== 'home') && x($_SESSION,'login_return_url') && strlen($_SESSION['login_return_url'])) {
+ if ((App::$module !== 'home') && x($_SESSION, 'login_return_url') && strlen($_SESSION['login_return_url'])) {
$return_url = $_SESSION['login_return_url'];
// don't let members get redirected to a raw ajax page update - this can happen
// if DHCP changes the IP address at an unfortunate time and paranoia is turned on
- if(strstr($return_url,'update_'))
+ if (strstr($return_url, 'update_'))
$return_url = '';
unset($_SESSION['login_return_url']);
@@ -76,11 +76,11 @@ function authenticate_success($user_record, $channel = null, $login_initial = fa
/* This account has never created a channel. Send them to new_channel by default */
- if(App::$module === 'login') {
+ if (App::$module === 'login') {
$r = q("select count(channel_id) as total from channel where channel_account_id = %d and channel_removed = 0 ",
intval(App::$account['account_id'])
);
- if(($r) && (! $r[0]['total']))
+ if (($r) && (!$r[0]['total']))
goaway(z_root() . '/new_channel');
}
@@ -88,14 +88,14 @@ function authenticate_success($user_record, $channel = null, $login_initial = fa
}
function atoken_login($atoken) {
- if(! $atoken)
+ if (!$atoken)
return false;
$_SESSION['authenticated'] = 1;
$_SESSION['visitor_id'] = $atoken['xchan_hash'];
$_SESSION['atoken'] = $atoken['atoken_id'];
- \App::set_observer($atoken);
+ App::set_observer($atoken);
return true;
}
@@ -109,14 +109,14 @@ function atoken_login($atoken) {
function atoken_xchan($atoken) {
$c = channelx_by_n($atoken['atoken_uid']);
- if($c) {
+ if ($c) {
return [
'atoken_id' => $atoken['atoken_id'],
- 'xchan_hash' => substr($c['channel_hash'],0,16) . '.' . $atoken['atoken_name'],
+ 'xchan_hash' => substr($c['channel_hash'], 0, 16) . '.' . $atoken['atoken_name'],
'xchan_name' => $atoken['atoken_name'],
- 'xchan_addr' => 'guest:' . $atoken['atoken_name'] . '@' . \App::get_hostname(),
+ 'xchan_addr' => 'guest:' . $atoken['atoken_name'] . '@' . App::get_hostname(),
'xchan_network' => 'unknown',
- 'xchan_url' => z_root() . '/guest/' . substr($c['channel_hash'],0,16) . '.' . $atoken['atoken_name'],
+ 'xchan_url' => z_root() . '/guest/' . substr($c['channel_hash'], 0, 16) . '.' . $atoken['atoken_name'],
'xchan_hidden' => 1,
'xchan_photo_mimetype' => 'image/png',
'xchan_photo_l' => z_root() . '/' . get_default_profile_photo(300),
@@ -133,16 +133,16 @@ function atoken_delete($atoken_id) {
$r = q("select * from atoken where atoken_id = %d",
intval($atoken_id)
);
- if(! $r)
+ if (!$r)
return;
$c = q("select channel_id, channel_hash from channel where channel_id = %d",
intval($r[0]['atoken_uid'])
);
- if(! $c)
+ if (!$c)
return;
- $atoken_xchan = substr($c[0]['channel_hash'],0,16) . '.' . $r[0]['atoken_name'];
+ $atoken_xchan = substr($c[0]['channel_hash'], 0, 16) . '.' . $r[0]['atoken_name'];
q("delete from atoken where atoken_id = %d",
intval($atoken_id)
@@ -168,41 +168,41 @@ function atoken_create_xchan($xchan) {
$r = q("select xchan_hash from xchan where xchan_hash = '%s'",
dbesc($xchan['xchan_hash'])
);
- if($r)
+ if ($r)
return;
$xchan['xchan_guid'] = $xchan['xchan_hash'];
$store = [];
- foreach($xchan as $k => $v) {
- if(strpos($k,'xchan_') === 0) {
+ foreach ($xchan as $k => $v) {
+ if (strpos($k, 'xchan_') === 0) {
$store[$k] = $v;
}
}
-
- $r = xchan_store_lowlevel($store);
+
+ xchan_store_lowlevel($store);
return true;
}
-function atoken_abook($uid,$xchan_hash) {
+function atoken_abook($uid, $xchan_hash) {
- if(substr($xchan_hash,16,1) != '.')
+ if (substr($xchan_hash, 16, 1) != '.')
return false;
$r = q("select channel_hash from channel where channel_id = %d limit 1",
intval($uid)
);
- if(! $r)
+ if (!$r)
return false;
$x = q("select * from atoken where atoken_uid = %d and atoken_name = '%s'",
intval($uid),
- dbesc(substr($xchan_hash,17))
+ dbesc(substr($xchan_hash, 17))
);
- if($x) {
+ if ($x) {
$xchan = atoken_xchan($x[0]);
$xchan['abook_blocked'] = 0;
$xchan['abook_ignored'] = 0;
@@ -215,12 +215,12 @@ function atoken_abook($uid,$xchan_hash) {
function pseudo_abook($xchan) {
- if(! $xchan)
+ if (!$xchan)
return false;
// set abook_pseudo to flag that we aren't really connected.
- $xchan['abook_pseudo'] = 1;
+ $xchan['abook_pseudo'] = 1;
$xchan['abook_blocked'] = 0;
$xchan['abook_ignored'] = 0;
$xchan['abook_pending'] = 0;
@@ -240,7 +240,7 @@ function change_channel($change_channel) {
$ret = false;
- if($change_channel) {
+ if ($change_channel) {
$r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel_id = %d and channel_account_id = %d and channel_removed = 0 limit 1",
intval($change_channel),
@@ -249,7 +249,7 @@ function change_channel($change_channel) {
// It's not there. Is this an administrator, and is this the sys channel?
if (is_developer()) {
- if (! $r) {
+ if (!$r) {
if (is_site_admin()) {
$r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel_id = %d and channel_system = 1 and channel_removed = 0 limit 1",
intval($change_channel)
@@ -258,19 +258,19 @@ function change_channel($change_channel) {
}
}
- if($r) {
+ if ($r) {
$hash = $r[0]['channel_hash'];
$_SESSION['uid'] = intval($r[0]['channel_id']);
App::set_channel($r[0]);
$_SESSION['theme'] = $r[0]['channel_theme'];
- $_SESSION['mobile_theme'] = get_pconfig(local_channel(),'system', 'mobile_theme');
- $_SESSION['cloud_tiles'] = get_pconfig(local_channel(),'system', 'cloud_tiles');
+ $_SESSION['mobile_theme'] = get_pconfig(local_channel(), 'system', 'mobile_theme');
+ $_SESSION['cloud_tiles'] = get_pconfig(local_channel(), 'system', 'cloud_tiles');
date_default_timezone_set($r[0]['channel_timezone']);
// Update the active timestamp at most once a day
- if(substr($r[0]['channel_active'],0,10) !== substr(datetime_convert(),0,10)) {
- $z = q("UPDATE channel SET channel_active = '%s' WHERE channel_id = %d",
+ if (substr($r[0]['channel_active'], 0, 10) !== substr(datetime_convert(), 0, 10)) {
+ q("UPDATE channel SET channel_active = '%s' WHERE channel_id = %d",
dbesc(datetime_convert()),
intval($r[0]['channel_id'])
);
@@ -280,17 +280,17 @@ function change_channel($change_channel) {
$x = q("select * from xchan where xchan_hash = '%s' limit 1",
dbesc($hash)
);
- if($x) {
+ if ($x) {
$_SESSION['my_url'] = $x[0]['xchan_url'];
$_SESSION['my_address'] = channel_reddress($r[0]);
App::set_observer($x[0]);
App::set_perms(get_all_perms(local_channel(), $hash));
}
- if(! is_dir('store/' . $r[0]['channel_address']))
- @os_mkdir('store/' . $r[0]['channel_address'], STORAGE_DEFAULT_PERMISSIONS,true);
+ if (!is_dir('store/' . $r[0]['channel_address']))
+ @os_mkdir('store/' . $r[0]['channel_address'], STORAGE_DEFAULT_PERMISSIONS, true);
- $arr = [ 'channel_id' => $change_channel, 'chanx' => $ret ];
+ $arr = ['channel_id' => $change_channel, 'chanx' => $ret];
call_hooks('change_channel', $arr);
}
@@ -333,18 +333,17 @@ function permissions_sql($owner_id, $remote_observer = null, $table = '') {
if (($local_channel) && ($local_channel == $owner_id)) {
return EMPTY_STR;
}
-
/**
- * Authenticated visitor.
+ * Authenticated visitor.
*/
else {
- $observer = ((! is_null($remote_observer)) ? $remote_observer : get_observer_hash());
+ $observer = ((!is_null($remote_observer)) ? $remote_observer : get_observer_hash());
if ($observer) {
- $sec = get_security_ids($owner_id,$observer);
+ $sec = get_security_ids($owner_id, $observer);
// always allow the channel owner, even if authenticated as a visitor
@@ -354,14 +353,14 @@ function permissions_sql($owner_id, $remote_observer = null, $table = '') {
return EMPTY_STR;
}
}
- }
+ }
if (is_array($sec['allow_cid']) && count($sec['allow_cid'])) {
$ca = [];
foreach ($sec['allow_cid'] as $c) {
$ca[] = '<' . $c . '>';
}
- $cs = implode('|',$ca);
+ $cs = implode('|', $ca);
}
else {
$cs = '<<>>'; // should be impossible to match
@@ -372,7 +371,7 @@ function permissions_sql($owner_id, $remote_observer = null, $table = '') {
foreach ($sec['allow_gid'] as $g) {
$ga[] = '<' . $g . '>';
}
- $gs = implode('|',$ga);
+ $gs = implode('|', $ga);
}
else {
$gs = '<<>>'; // should be impossible to match
@@ -420,39 +419,38 @@ function item_permissions_sql($owner_id, $remote_observer = null) {
* Profile owner - everything is visible
*/
- if(($local_channel) && ($local_channel == $owner_id)) {
+ if (($local_channel) && ($local_channel == $owner_id)) {
$sql = '';
}
-
/**
- * Authenticated visitor.
+ * Authenticated visitor.
*/
else {
- $observer = (($remote_observer) ? $remote_observer : get_observer_hash());
+ $observer = (($remote_observer) ? $remote_observer : get_observer_hash());
- if($observer) {
+ if ($observer) {
- $scope = scopes_sql($owner_id,$observer);
- $sec = get_security_ids($owner_id,$observer);
+ $scope = scopes_sql($owner_id, $observer);
+ $sec = get_security_ids($owner_id, $observer);
// always allow the channel owner, even if authenticated as a visitor
- if($sec['channel_id']) {
- foreach($sec['channel_id'] as $ch) {
- if($observer === $ch) {
+ if ($sec['channel_id']) {
+ foreach ($sec['channel_id'] as $ch) {
+ if ($observer === $ch) {
return EMPTY_STR;
}
}
- }
+ }
if (is_array($sec['allow_cid']) && count($sec['allow_cid'])) {
$ca = [];
foreach ($sec['allow_cid'] as $c) {
$ca[] = '<' . $c . '>';
}
- $cs = implode('|',$ca);
+ $cs = implode('|', $ca);
}
else {
$cs = '<<>>'; // should be impossible to match
@@ -463,7 +461,7 @@ function item_permissions_sql($owner_id, $remote_observer = null) {
foreach ($sec['allow_gid'] as $g) {
$ga[] = '<' . $g . '>';
}
- $gs = implode('|',$ga);
+ $gs = implode('|', $ga);
}
else {
$gs = '<<>>'; // should be impossible to match
@@ -493,21 +491,20 @@ function item_permissions_sql($owner_id, $remote_observer = null) {
*/
-
-function scopes_sql($uid,$observer) {
+function scopes_sql($uid, $observer) {
$str = " and ( public_policy = 'authenticated' ";
- if(! is_foreigner($observer))
+ if (!is_foreigner($observer))
$str .= " or public_policy = 'network: red' ";
- if(local_channel())
+ if (local_channel())
$str .= " or public_policy = 'site: " . App::get_hostname() . "' ";
$ab = q("select * from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
dbesc($observer),
intval($uid)
);
- if(! $ab)
+ if (!$ab)
return $str . " ) ";
- if($ab[0]['abook_pending'])
+ if ($ab[0]['abook_pending'])
$str .= " or public_policy = 'any connections' ";
$str .= " or public_policy = 'contacts' ) ";
return $str;
@@ -526,14 +523,14 @@ function public_permissions_sql($observer_hash) {
if ($observer_hash) {
- $sec = get_security_ids($owner_id,$observer_hash);
+ $sec = get_security_ids($owner_id, $observer_hash);
if (is_array($sec['allow_cid']) && count($sec['allow_cid'])) {
$ca = [];
foreach ($sec['allow_cid'] as $c) {
$ca[] = '<' . $c . '>';
}
- $cs = implode('|',$ca);
+ $cs = implode('|', $ca);
}
else {
$cs = '<<>>'; // should be impossible to match
@@ -544,7 +541,7 @@ function public_permissions_sql($observer_hash) {
foreach ($sec['allow_gid'] as $g) {
$ga[] = '<' . $g . '>';
}
- $gs = implode('|',$ga);
+ $gs = implode('|', $ga);
}
else {
$gs = '<<>>'; // should be impossible to match
@@ -598,7 +595,7 @@ function check_form_security_token($typename = '', $formname = 'form_security_to
$x = explode('.', $hash);
if (time() > (IntVal($x[0]) + $max_livetime) || time() < (IntVal($x[0]) + $min_livetime))
- return false;
+ return false;
$sec_hash = hash('whirlpool', App::$observer['xchan_guid'] . ((local_channel()) ? App::$channel['channel_prvkey'] : '') . session_id() . $x[0] . $typename);
@@ -606,16 +603,19 @@ function check_form_security_token($typename = '', $formname = 'form_security_to
}
function check_form_security_std_err_msg() {
+ /** @noinspection PhpToStringImplementationInspection */
return t('The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it.') . EOL;
}
+
function check_form_security_token_redirectOnErr($err_redirect, $typename = '', $formname = 'form_security_token') {
if (!check_form_security_token($typename, $formname)) {
logger('check_form_security_token failed: user ' . App::$observer['xchan_name'] . ' - form element ' . $typename);
logger('check_form_security_token failed: _REQUEST data: ' . print_r($_REQUEST, true), LOGGER_DATA);
- notice( check_form_security_std_err_msg() );
- goaway(z_root() . $err_redirect );
+ notice(check_form_security_std_err_msg());
+ goaway(z_root() . $err_redirect);
}
}
+
function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'form_security_token') {
if (!check_form_security_token($typename, $formname)) {
logger('check_form_security_token failed: user ' . App::$observer['xchan_name'] . ' - form element ' . $typename);
@@ -636,7 +636,7 @@ function init_groups_visitor($contact_id) {
dbesc($contact_id)
);
- if (! $x) {
+ if (!$x) {
return $groups;
}
@@ -648,8 +648,8 @@ function init_groups_visitor($contact_id) {
dbesc($x[0]['xchan_pubkey'])
);
- if($xchans) {
- $hashes = ids_to_querystr($xchans,'xchan_hash',true);
+ if ($xchans) {
+ $hashes = ids_to_querystr($xchans, 'xchan_hash', true);
}
// private profiles are treated as a virtual group
@@ -672,21 +672,19 @@ function init_groups_visitor($contact_id) {
}
-
-
function get_security_ids($channel_id, $ob_hash) {
- $ret = [
- 'channel_id' => [],
- 'allow_cid' => [],
- 'allow_gid' => []
+ $ret = [
+ 'channel_id' => [],
+ 'allow_cid' => [],
+ 'allow_gid' => []
];
- if($channel_id) {
+ if ($channel_id) {
$ch = q("select channel_hash, channel_portable_id from channel where channel_id = %d",
- intval($channel_id)
+ intval($channel_id)
);
- if($ch) {
+ if ($ch) {
$ret['channel_id'][] = $ch[0]['channel_hash'];
$ret['channel_id'][] = $ch[0]['channel_portable_id'];
}
@@ -709,13 +707,13 @@ function get_security_ids($channel_id, $ob_hash) {
);
if ($xchans) {
- $ret['allow_cid'] = ids_to_array($xchans,'xchan_hash');
- $hashes = ids_to_querystr($xchans,'xchan_hash',true);
+ $ret['allow_cid'] = ids_to_array($xchans, 'xchan_hash');
+ $hashes = ids_to_querystr($xchans, 'xchan_hash', true);
// private profiles are treated as a virtual group
$r = q("SELECT abook_profile from abook where abook_xchan in ( " . protect_sprintf($hashes) . " ) and abook_profile != '' ");
- if($r) {
+ if ($r) {
foreach ($r as $rv) {
$groups[] = 'vp.' . $rv['abook_profile'];
}
@@ -724,7 +722,7 @@ function get_security_ids($channel_id, $ob_hash) {
// physical groups this identity is a member of
$r = q("SELECT hash FROM pgrp left join pgrp_member on pgrp.id = pgrp_member.gid WHERE xchan in ( " . protect_sprintf($hashes) . " ) ");
- if($r) {
+ if ($r) {
foreach ($r as $rv) {
$groups[] = $rv['hash'];
}
@@ -746,39 +744,39 @@ function get_security_ids($channel_id, $ob_hash) {
// will likely be too expensive.
// Returns a string list of comma separated channel_ids suitable for direct inclusion in a SQL query
-function stream_perms_api_uids($perms = NULL, $limit = 0, $rand = 0 ) {
- $perms = is_null($perms) ? (PERMS_SITE|PERMS_NETWORK|PERMS_PUBLIC) : $perms;
+function stream_perms_api_uids($perms = NULL, $limit = 0, $rand = 0) {
+ $perms = is_null($perms) ? (PERMS_SITE | PERMS_NETWORK | PERMS_PUBLIC) : $perms;
$ret = array();
$limit_sql = (($limit) ? " LIMIT " . intval($limit) . " " : '');
$random_sql = (($rand) ? " ORDER BY " . db_getfunc('RAND') . " " : '');
- if(local_channel())
+ if (local_channel())
$ret[] = local_channel();
$x = q("select uid, v from pconfig where cat = 'perm_limits' and k = 'view_stream' ");
- if($x) {
+ if ($x) {
$y = [];
- foreach($x as $xv) {
- if(intval($xv['v']) & $perms) {
+ foreach ($x as $xv) {
+ if (intval($xv['v']) & $perms) {
$y[] = $xv;
}
}
- if($y) {
- $ids = ids_to_querystr($y,'uid');
+ if ($y) {
+ $ids = ids_to_querystr($y, 'uid');
$r = q("select channel_id from channel where channel_id in ( $ids ) and ( channel_pageflags & %d ) = 0 and channel_system = 0 and channel_removed = 0 $random_sql $limit_sql ",
- intval(PAGE_ADULT|PAGE_CENSORED)
+ intval(PAGE_ADULT | PAGE_CENSORED)
);
- if($r) {
- foreach($r as $rr)
- if(! in_array($rr['channel_id'], $ret))
+ if ($r) {
+ foreach ($r as $rr)
+ if (!in_array($rr['channel_id'], $ret))
$ret[] = $rr['channel_id'];
}
}
}
$str = '';
- if($ret) {
- foreach($ret as $rr) {
- if($str)
+ if ($ret) {
+ foreach ($ret as $rr) {
+ if ($str)
$str .= ',';
$str .= intval($rr);
}
@@ -791,39 +789,39 @@ function stream_perms_api_uids($perms = NULL, $limit = 0, $rand = 0 ) {
return $str;
}
-function stream_perms_xchans($perms = NULL ) {
- $perms = is_null($perms) ? (PERMS_SITE|PERMS_NETWORK|PERMS_PUBLIC) : $perms;
+function stream_perms_xchans($perms = NULL) {
+ $perms = is_null($perms) ? (PERMS_SITE | PERMS_NETWORK | PERMS_PUBLIC) : $perms;
$ret = array();
- if(local_channel())
+ if (local_channel())
$ret[] = get_observer_hash();
$x = q("select uid, v from pconfig where cat = 'perm_limits' and k = 'view_stream' ");
- if($x) {
+ if ($x) {
$y = [];
- foreach($x as $xv) {
- if(intval($xv['v']) & $perms) {
+ foreach ($x as $xv) {
+ if (intval($xv['v']) & $perms) {
$y[] = $xv;
}
}
- if($y) {
- $ids = ids_to_querystr($y,'uid');
+ if ($y) {
+ $ids = ids_to_querystr($y, 'uid');
$r = q("select channel_hash from channel where channel_id in ( $ids ) and ( channel_pageflags & %d ) = 0 and channel_system = 0 and channel_removed = 0 ",
- intval(PAGE_ADULT|PAGE_CENSORED)
+ intval(PAGE_ADULT | PAGE_CENSORED)
);
- if($r) {
- foreach($r as $rr)
- if(! in_array($rr['channel_hash'], $ret))
+ if ($r) {
+ foreach ($r as $rr)
+ if (!in_array($rr['channel_hash'], $ret))
$ret[] = $rr['channel_hash'];
}
}
}
$str = '';
- if($ret) {
- foreach($ret as $rr) {
- if($str)
+ if ($ret) {
+ foreach ($ret as $rr) {
+ if ($str)
$str .= ',';
$str .= "'" . dbesc($rr) . "'";
}
diff --git a/include/text.php b/include/text.php
index 76df9e17b..d6b196f1e 100644
--- a/include/text.php
+++ b/include/text.php
@@ -1801,7 +1801,7 @@ function prepare_body(&$item,$attach = false,$opts = false) {
$tags = format_hashtags($item);
- if($item['resource_type'])
+ if($item['resource_type'] == 'photo')
$mentions = format_mentions($item);
$categories = format_categories($item,$writeable);
diff --git a/library/ASNValue.class.php b/library/ASNValue.class.php
index 7a3c5d20e..7c17d10b4 100644
--- a/library/ASNValue.class.php
+++ b/library/ASNValue.class.php
@@ -110,7 +110,7 @@ class ASNValue
function SetIntBuffer($Value)
{
if (strlen($Value) > 1) {
- $firstByte = ord($Value{0});
+ $firstByte = ord($Value[0]);
if ($firstByte & 0x80) { //first bit set
$Value = chr(0x00) . $Value;
}
@@ -122,7 +122,7 @@ class ASNValue
function GetIntBuffer()
{
$result = $this->Value;
- if (ord($result{0}) == 0x00) {
+ if (ord($result[0]) == 0x00) {
$result = substr($result, 1);
}
diff --git a/util/connect b/util/connect
index 7ceda300f..44128d580 100755
--- a/util/connect
+++ b/util/connect
@@ -2,6 +2,7 @@
<?php
use Zotlabs\Lib\Libsync;
+use Zotlabs\Lib\Connect;
// connect utility
@@ -11,7 +12,6 @@ if(! file_exists('include/cli_startup.php')) {
}
require_once('include/cli_startup.php');
-require_once('include/follow.php');
cli_startup();
@@ -33,7 +33,7 @@ cli_startup();
exit(1);
}
- $result = new_contact($c['channel_id'],$argv[2],$c,false,false);
+ $result = Connect::connect($channel, $argv[2]);
if($result['success'] == false) {
echo $result['message'];
diff --git a/util/hmessages.po b/util/hmessages.po
index 5600f9fda..2679119a1 100644
--- a/util/hmessages.po
+++ b/util/hmessages.po
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: 5.1.2\n"
+"Project-Id-Version: 5.2RC\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-10-25 07:30+0000\n"
+"POT-Creation-Date: 2021-01-05 08:42+0000\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"
@@ -21,8 +21,8 @@ msgstr ""
#: ../../addon/cart/submodules/orderoptions.php:335
#: ../../addon/cart/submodules/orderoptions.php:359
#: ../../addon/cart/submodules/orderoptions.php:435
-#: ../../addon/cart/submodules/orderoptions.php:459 ../../include/text.php:3379
-#: ../../Zotlabs/Module/Admin/Site.php:185
+#: ../../addon/cart/submodules/orderoptions.php:459 ../../include/text.php:3381
+#: ../../Zotlabs/Module/Admin/Site.php:191
msgid "Default"
msgstr ""
@@ -79,18 +79,18 @@ msgstr ""
#: ../../Zotlabs/Widget/Wiki_pages.php:99
#: ../../Zotlabs/Widget/Eventstools.php:16 ../../Zotlabs/Module/Tokens.php:188
#: ../../Zotlabs/Module/Import_items.php:129
-#: ../../Zotlabs/Module/Import.php:649 ../../Zotlabs/Module/Setup.php:304
+#: ../../Zotlabs/Module/Import.php:645 ../../Zotlabs/Module/Setup.php:304
#: ../../Zotlabs/Module/Setup.php:344 ../../Zotlabs/Module/Group.php:151
#: ../../Zotlabs/Module/Group.php:167 ../../Zotlabs/Module/Oauth.php:111
#: ../../Zotlabs/Module/Chat.php:209 ../../Zotlabs/Module/Chat.php:248
#: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Mitem.php:259
-#: ../../Zotlabs/Module/Filestorage.php:203
+#: ../../Zotlabs/Module/Filestorage.php:208
#: ../../Zotlabs/Module/Connect.php:107 ../../Zotlabs/Module/Editpost.php:86
#: ../../Zotlabs/Module/Admin/Themes.php:158
#: ../../Zotlabs/Module/Admin/Features.php:66
#: ../../Zotlabs/Module/Admin/Security.php:120
#: ../../Zotlabs/Module/Admin/Accounts.php:168
-#: ../../Zotlabs/Module/Admin/Site.php:287
+#: ../../Zotlabs/Module/Admin/Site.php:293
#: ../../Zotlabs/Module/Admin/Logs.php:84
#: ../../Zotlabs/Module/Admin/Channels.php:147
#: ../../Zotlabs/Module/Admin/Account_edit.php:73
@@ -99,8 +99,8 @@ msgstr ""
#: ../../Zotlabs/Module/Events.php:501 ../../Zotlabs/Module/Permcats.php:129
#: ../../Zotlabs/Module/Mood.php:158 ../../Zotlabs/Module/Appman.php:155
#: ../../Zotlabs/Module/Email_validation.php:40
-#: ../../Zotlabs/Module/Photos.php:1057 ../../Zotlabs/Module/Photos.php:1097
-#: ../../Zotlabs/Module/Photos.php:1215 ../../Zotlabs/Module/Profiles.php:725
+#: ../../Zotlabs/Module/Photos.php:1058 ../../Zotlabs/Module/Photos.php:1098
+#: ../../Zotlabs/Module/Photos.php:1216 ../../Zotlabs/Module/Profiles.php:725
#: ../../Zotlabs/Module/Invite.php:168 ../../Zotlabs/Module/Xchan.php:15
#: ../../Zotlabs/Module/Affinity.php:87 ../../Zotlabs/Module/Rate.php:166
#: ../../Zotlabs/Module/Settings/Network.php:62
@@ -111,7 +111,7 @@ msgstr ""
#: ../../Zotlabs/Module/Settings/Manage.php:43
#: ../../Zotlabs/Module/Settings/Channel_home.php:91
#: ../../Zotlabs/Module/Settings/Calendar.php:42
-#: ../../Zotlabs/Module/Settings/Display.php:190
+#: ../../Zotlabs/Module/Settings/Display.php:188
#: ../../Zotlabs/Module/Settings/Directory.php:42
#: ../../Zotlabs/Module/Settings/Editor.php:42
#: ../../Zotlabs/Module/Settings/Connections.php:42
@@ -121,9 +121,10 @@ msgstr ""
#: ../../Zotlabs/Module/Defperms.php:266 ../../Zotlabs/Module/Pconfig.php:116
#: ../../Zotlabs/Module/Oauth2.php:116 ../../Zotlabs/Module/Thing.php:328
#: ../../Zotlabs/Module/Thing.php:381 ../../Zotlabs/Module/Pdledit.php:108
-#: ../../Zotlabs/Module/Wiki.php:215 ../../Zotlabs/Module/Connedit.php:907
-#: ../../Zotlabs/Module/Locs.php:125 ../../Zotlabs/Module/Sources.php:125
+#: ../../Zotlabs/Module/Wiki.php:215 ../../Zotlabs/Module/Connedit.php:896
+#: ../../Zotlabs/Module/Locs.php:132 ../../Zotlabs/Module/Sources.php:125
#: ../../Zotlabs/Module/Sources.php:162 ../../Zotlabs/Lib/ThreadItem.php:825
+#: ../../Zotlabs/Storage/Browser.php:375
msgid "Submit"
msgstr ""
@@ -175,26 +176,29 @@ msgstr ""
#: ../../addon/libertree/Mod_Libertree.php:59
#: ../../addon/socialauth/Mod_SocialAuth.php:214
#: ../../addon/ljpost/Mod_Ljpost.php:63 ../../addon/ljpost/Mod_Ljpost.php:67
-#: ../../addon/ljpost/Mod_Ljpost.php:71 ../../include/conversation.php:1463
+#: ../../addon/ljpost/Mod_Ljpost.php:71 ../../include/conversation.php:1466
#: ../../include/dir_fns.php:142 ../../include/dir_fns.php:143
-#: ../../include/dir_fns.php:144 ../../Zotlabs/Module/Import.php:638
-#: ../../Zotlabs/Module/Import.php:642 ../../Zotlabs/Module/Import.php:643
+#: ../../include/dir_fns.php:144 ../../Zotlabs/Module/Import.php:634
+#: ../../Zotlabs/Module/Import.php:638 ../../Zotlabs/Module/Import.php:639
#: ../../Zotlabs/Module/Mitem.php:176 ../../Zotlabs/Module/Mitem.php:177
#: ../../Zotlabs/Module/Mitem.php:256 ../../Zotlabs/Module/Mitem.php:257
-#: ../../Zotlabs/Module/Filestorage.php:198
-#: ../../Zotlabs/Module/Filestorage.php:206
-#: ../../Zotlabs/Module/Admin/Site.php:253 ../../Zotlabs/Module/Events.php:478
+#: ../../Zotlabs/Module/Filestorage.php:203
+#: ../../Zotlabs/Module/Filestorage.php:211
+#: ../../Zotlabs/Module/Admin/Site.php:259 ../../Zotlabs/Module/Events.php:478
#: ../../Zotlabs/Module/Events.php:479 ../../Zotlabs/Module/Api.php:99
-#: ../../Zotlabs/Module/Photos.php:672 ../../Zotlabs/Module/Profiles.php:683
+#: ../../Zotlabs/Module/Photos.php:673 ../../Zotlabs/Module/Profiles.php:683
#: ../../Zotlabs/Module/Settings/Channel.php:311
-#: ../../Zotlabs/Module/Settings/Display.php:90
+#: ../../Zotlabs/Module/Settings/Display.php:88
#: ../../Zotlabs/Module/Menu.php:163 ../../Zotlabs/Module/Menu.php:222
#: ../../Zotlabs/Module/Defperms.php:198 ../../Zotlabs/Module/Wiki.php:227
-#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:414
-#: ../../Zotlabs/Module/Connedit.php:799 ../../Zotlabs/Module/Sources.php:124
-#: ../../Zotlabs/Module/Sources.php:159 ../../Zotlabs/Lib/Libzotdir.php:162
-#: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165
-#: ../../Zotlabs/Storage/Browser.php:411 ../../boot.php:1703
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:403
+#: ../../Zotlabs/Module/Connedit.php:788 ../../Zotlabs/Module/Sources.php:124
+#: ../../Zotlabs/Module/Sources.php:159 ../../Zotlabs/Lib/Libzotdir.php:164
+#: ../../Zotlabs/Lib/Libzotdir.php:165 ../../Zotlabs/Lib/Libzotdir.php:167
+#: ../../Zotlabs/Storage/Browser.php:303 ../../Zotlabs/Storage/Browser.php:304
+#: ../../Zotlabs/Storage/Browser.php:305 ../../Zotlabs/Storage/Browser.php:382
+#: ../../Zotlabs/Storage/Browser.php:384 ../../Zotlabs/Storage/Browser.php:545
+#: ../../boot.php:1704
msgid "No"
msgstr ""
@@ -238,26 +242,28 @@ msgstr ""
#: ../../addon/libertree/Mod_Libertree.php:59
#: ../../addon/socialauth/Mod_SocialAuth.php:214
#: ../../addon/ljpost/Mod_Ljpost.php:63 ../../addon/ljpost/Mod_Ljpost.php:67
-#: ../../addon/ljpost/Mod_Ljpost.php:71 ../../include/conversation.php:1463
+#: ../../addon/ljpost/Mod_Ljpost.php:71 ../../include/conversation.php:1466
#: ../../include/dir_fns.php:142 ../../include/dir_fns.php:143
-#: ../../include/dir_fns.php:144 ../../Zotlabs/Module/Import.php:638
-#: ../../Zotlabs/Module/Import.php:642 ../../Zotlabs/Module/Import.php:643
+#: ../../include/dir_fns.php:144 ../../Zotlabs/Module/Import.php:634
+#: ../../Zotlabs/Module/Import.php:638 ../../Zotlabs/Module/Import.php:639
#: ../../Zotlabs/Module/Mitem.php:176 ../../Zotlabs/Module/Mitem.php:177
#: ../../Zotlabs/Module/Mitem.php:256 ../../Zotlabs/Module/Mitem.php:257
-#: ../../Zotlabs/Module/Filestorage.php:198
-#: ../../Zotlabs/Module/Filestorage.php:206
-#: ../../Zotlabs/Module/Admin/Site.php:255 ../../Zotlabs/Module/Events.php:478
+#: ../../Zotlabs/Module/Filestorage.php:203
+#: ../../Zotlabs/Module/Filestorage.php:211
+#: ../../Zotlabs/Module/Admin/Site.php:261 ../../Zotlabs/Module/Events.php:478
#: ../../Zotlabs/Module/Events.php:479 ../../Zotlabs/Module/Api.php:98
-#: ../../Zotlabs/Module/Photos.php:672 ../../Zotlabs/Module/Profiles.php:683
+#: ../../Zotlabs/Module/Photos.php:673 ../../Zotlabs/Module/Profiles.php:683
#: ../../Zotlabs/Module/Settings/Channel.php:311
-#: ../../Zotlabs/Module/Settings/Display.php:90
+#: ../../Zotlabs/Module/Settings/Display.php:88
#: ../../Zotlabs/Module/Menu.php:163 ../../Zotlabs/Module/Menu.php:222
#: ../../Zotlabs/Module/Defperms.php:198 ../../Zotlabs/Module/Wiki.php:227
-#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:414
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:403
#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
-#: ../../Zotlabs/Lib/Libzotdir.php:162 ../../Zotlabs/Lib/Libzotdir.php:163
-#: ../../Zotlabs/Lib/Libzotdir.php:165 ../../Zotlabs/Storage/Browser.php:411
-#: ../../boot.php:1703
+#: ../../Zotlabs/Lib/Libzotdir.php:164 ../../Zotlabs/Lib/Libzotdir.php:165
+#: ../../Zotlabs/Lib/Libzotdir.php:167 ../../Zotlabs/Storage/Browser.php:303
+#: ../../Zotlabs/Storage/Browser.php:304 ../../Zotlabs/Storage/Browser.php:305
+#: ../../Zotlabs/Storage/Browser.php:382 ../../Zotlabs/Storage/Browser.php:384
+#: ../../Zotlabs/Storage/Browser.php:545 ../../boot.php:1704
msgid "Yes"
msgstr ""
@@ -412,8 +418,9 @@ msgid "Channel Reputation"
msgstr ""
#: ../../addon/channelreputation/channelreputation.php:233
-#: ../../include/acl_selectors.php:146 ../../Zotlabs/Widget/Pinned.php:160
-#: ../../Zotlabs/Module/Photos.php:1274 ../../Zotlabs/Lib/ThreadItem.php:495
+#: ../../include/acl_selectors.php:155 ../../Zotlabs/Widget/Pinned.php:160
+#: ../../Zotlabs/Module/Photos.php:1275 ../../Zotlabs/Lib/ThreadItem.php:495
+#: ../../Zotlabs/Storage/Browser.php:404
msgid "Close"
msgstr ""
@@ -467,7 +474,7 @@ msgstr ""
#: ../../addon/xmpp/Mod_Xmpp.php:35 ../../Zotlabs/Module/Tokens.php:99
#: ../../Zotlabs/Module/Group.php:107 ../../Zotlabs/Module/Oauth.php:100
#: ../../Zotlabs/Module/Chat.php:100 ../../Zotlabs/Module/Poke.php:165
-#: ../../Zotlabs/Module/Cdav.php:872 ../../Zotlabs/Module/Webpages.php:48
+#: ../../Zotlabs/Module/Cdav.php:876 ../../Zotlabs/Module/Webpages.php:48
#: ../../Zotlabs/Module/Pubstream.php:20 ../../Zotlabs/Module/Permcats.php:63
#: ../../Zotlabs/Module/Lang.php:17 ../../Zotlabs/Module/Uexport.php:61
#: ../../Zotlabs/Module/Mood.php:134 ../../Zotlabs/Module/Cards.php:51
@@ -500,7 +507,7 @@ msgstr ""
#: ../../addon/superblock/Mod_Superblock.php:91
#: ../../Zotlabs/Module/Tagrm.php:137 ../../Zotlabs/Module/Admin/Addons.php:459
#: ../../Zotlabs/Module/Profile_photo.php:501
-#: ../../Zotlabs/Module/Cover_photo.php:424 ../../Zotlabs/Module/Photos.php:995
+#: ../../Zotlabs/Module/Cover_photo.php:424 ../../Zotlabs/Module/Photos.php:996
msgid "Remove"
msgstr ""
@@ -563,13 +570,13 @@ msgid "Page to load after image selection."
msgstr ""
#: ../../addon/openclipatar/openclipatar.php:57 ../../include/nav.php:112
-#: ../../include/conversation.php:1077 ../../Zotlabs/Module/Connedit.php:611
+#: ../../include/conversation.php:1080 ../../Zotlabs/Module/Connedit.php:600
#: ../../Zotlabs/Lib/Apps.php:344
msgid "View Profile"
msgstr ""
#: ../../addon/openclipatar/openclipatar.php:58 ../../include/nav.php:117
-#: ../../include/channel.php:1528
+#: ../../include/channel.php:1542
msgid "Edit Profile"
msgstr ""
@@ -679,7 +686,7 @@ msgstr ""
#: ../../addon/queueworker/Mod_Queueworker.php:119 ../../include/text.php:1151
#: ../../include/text.php:1163 ../../Zotlabs/Widget/Notes.php:23
#: ../../Zotlabs/Module/Admin/Profs.php:94
-#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Filer.php:53
+#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Filer.php:54
#: ../../Zotlabs/Module/Rbmark.php:32 ../../Zotlabs/Module/Rbmark.php:104
msgid "Save"
msgstr ""
@@ -731,10 +738,10 @@ msgstr ""
msgid "Photo Gallery"
msgstr ""
-#: ../../addon/gallery/Mod_Gallery.php:49 ../../include/channel.php:1425
+#: ../../addon/gallery/Mod_Gallery.php:49 ../../include/channel.php:1439
#: ../../Zotlabs/Module/Hcard.php:12 ../../Zotlabs/Module/Editwebpage.php:32
#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Webpages.php:39
-#: ../../Zotlabs/Module/Filestorage.php:53 ../../Zotlabs/Module/Connect.php:17
+#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Connect.php:17
#: ../../Zotlabs/Module/Achievements.php:15 ../../Zotlabs/Module/Cards.php:42
#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Editblock.php:31
#: ../../Zotlabs/Module/Editlayout.php:31 ../../Zotlabs/Module/Articles.php:43
@@ -762,18 +769,21 @@ msgstr ""
#: ../../addon/openid/Mod_Id.php:53 ../../addon/mail/Mod_Mail.php:25
#: ../../addon/pumpio/pumpio.php:44 ../../addon/keepout/keepout.php:36
-#: ../../include/photos.php:27 ../../include/items.php:3966
+#: ../../include/photos.php:27 ../../include/items.php:3979
#: ../../include/attach.php:156 ../../include/attach.php:205
-#: ../../include/attach.php:278 ../../include/attach.php:386
-#: ../../include/attach.php:400 ../../include/attach.php:407
-#: ../../include/attach.php:489 ../../include/attach.php:1055
-#: ../../include/attach.php:1129 ../../include/attach.php:1292
-#: ../../Zotlabs/Module/Article_edit.php:51 ../../Zotlabs/Module/Network.php:19
+#: ../../include/attach.php:278 ../../include/attach.php:329
+#: ../../include/attach.php:424 ../../include/attach.php:438
+#: ../../include/attach.php:445 ../../include/attach.php:527
+#: ../../include/attach.php:1091 ../../include/attach.php:1164
+#: ../../include/attach.php:1327 ../../Zotlabs/Module/Article_edit.php:51
+#: ../../Zotlabs/Module/Attach_edit.php:90
+#: ../../Zotlabs/Module/Attach_edit.php:99
+#: ../../Zotlabs/Module/Attach_edit.php:106 ../../Zotlabs/Module/Network.php:19
#: ../../Zotlabs/Module/Register.php:80 ../../Zotlabs/Module/Setup.php:206
#: ../../Zotlabs/Module/Viewconnections.php:28
#: ../../Zotlabs/Module/Viewconnections.php:33
-#: ../../Zotlabs/Module/Channel.php:181 ../../Zotlabs/Module/Channel.php:348
-#: ../../Zotlabs/Module/Channel.php:387 ../../Zotlabs/Module/Group.php:15
+#: ../../Zotlabs/Module/Channel.php:177 ../../Zotlabs/Module/Channel.php:332
+#: ../../Zotlabs/Module/Channel.php:371 ../../Zotlabs/Module/Group.php:15
#: ../../Zotlabs/Module/Group.php:31 ../../Zotlabs/Module/Card_edit.php:51
#: ../../Zotlabs/Module/Editwebpage.php:68
#: ../../Zotlabs/Module/Editwebpage.php:89
@@ -781,23 +791,23 @@ msgstr ""
#: ../../Zotlabs/Module/Editwebpage.php:121 ../../Zotlabs/Module/Chat.php:113
#: ../../Zotlabs/Module/Chat.php:118
#: ../../Zotlabs/Module/Channel_calendar.php:230
-#: ../../Zotlabs/Module/Like.php:193 ../../Zotlabs/Module/Poke.php:157
-#: ../../Zotlabs/Module/Item.php:483 ../../Zotlabs/Module/Item.php:502
-#: ../../Zotlabs/Module/Item.php:512 ../../Zotlabs/Module/Item.php:1428
+#: ../../Zotlabs/Module/Like.php:230 ../../Zotlabs/Module/Poke.php:157
+#: ../../Zotlabs/Module/Item.php:485 ../../Zotlabs/Module/Item.php:504
+#: ../../Zotlabs/Module/Item.php:514 ../../Zotlabs/Module/Item.php:1442
#: ../../Zotlabs/Module/Mitem.php:129 ../../Zotlabs/Module/Profile.php:85
#: ../../Zotlabs/Module/Profile.php:101
#: ../../Zotlabs/Module/Sharedwithme.php:19
#: ../../Zotlabs/Module/Webpages.php:133
-#: ../../Zotlabs/Module/Filestorage.php:17
-#: ../../Zotlabs/Module/Filestorage.php:72
-#: ../../Zotlabs/Module/Filestorage.php:90
-#: ../../Zotlabs/Module/Filestorage.php:113
-#: ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Filestorage.php:20
+#: ../../Zotlabs/Module/Filestorage.php:78
+#: ../../Zotlabs/Module/Filestorage.php:96
+#: ../../Zotlabs/Module/Filestorage.php:119
+#: ../../Zotlabs/Module/Filestorage.php:165
#: ../../Zotlabs/Module/Editpost.php:17
#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Events.php:277
#: ../../Zotlabs/Module/Manage.php:10 ../../Zotlabs/Module/Authtest.php:16
#: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Moderate.php:15
-#: ../../Zotlabs/Module/Display.php:442 ../../Zotlabs/Module/Common.php:38
+#: ../../Zotlabs/Module/Display.php:425 ../../Zotlabs/Module/Common.php:38
#: ../../Zotlabs/Module/New_channel.php:105
#: ../../Zotlabs/Module/New_channel.php:130
#: ../../Zotlabs/Module/Service_limits.php:11 ../../Zotlabs/Module/Mood.php:126
@@ -824,22 +834,22 @@ msgstr ""
#: ../../Zotlabs/Module/Thing.php:343 ../../Zotlabs/Module/Pdledit.php:35
#: ../../Zotlabs/Module/Wiki.php:59 ../../Zotlabs/Module/Wiki.php:285
#: ../../Zotlabs/Module/Wiki.php:428 ../../Zotlabs/Module/Suggest.php:32
-#: ../../Zotlabs/Module/Connedit.php:407
+#: ../../Zotlabs/Module/Connedit.php:396
#: ../../Zotlabs/Module/Notifications.php:11
#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78
-#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Locs.php:91
+#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Locs.php:100
#: ../../Zotlabs/Module/Sources.php:80 ../../Zotlabs/Lib/Chatroom.php:135
#: ../../Zotlabs/Web/WebServer.php:116
msgid "Permission denied."
msgstr ""
#: ../../addon/openid/Mod_Id.php:85 ../../include/selectors.php:60
-#: ../../include/selectors.php:77 ../../include/channel.php:1708
+#: ../../include/selectors.php:77 ../../include/channel.php:1722
msgid "Male"
msgstr ""
#: ../../addon/openid/Mod_Id.php:87 ../../include/selectors.php:60
-#: ../../include/selectors.php:77 ../../include/channel.php:1706
+#: ../../include/selectors.php:77 ../../include/channel.php:1720
msgid "Female"
msgstr ""
@@ -885,11 +895,11 @@ msgstr ""
#: ../../addon/openid/MysqlProvider.php:56
#: ../../addon/openid/MysqlProvider.php:57 ../../addon/redred/Mod_Redred.php:71
-#: ../../addon/rtof/Mod_Rtof.php:57 ../../include/network.php:1736
-#: ../../Zotlabs/Module/Cdav.php:1372
+#: ../../addon/rtof/Mod_Rtof.php:57 ../../include/network.php:1737
+#: ../../Zotlabs/Module/Cdav.php:1376
#: ../../Zotlabs/Module/Admin/Accounts.php:171
#: ../../Zotlabs/Module/Admin/Accounts.php:183
-#: ../../Zotlabs/Module/Profiles.php:789 ../../Zotlabs/Module/Connedit.php:930
+#: ../../Zotlabs/Module/Profiles.php:789 ../../Zotlabs/Module/Connedit.php:919
msgid "Email"
msgstr ""
@@ -1108,7 +1118,7 @@ msgstr ""
msgid "Channel is required."
msgstr ""
-#: ../../addon/redred/Mod_Redred.php:29 ../../Zotlabs/Module/Network.php:329
+#: ../../addon/redred/Mod_Redred.php:29 ../../Zotlabs/Module/Network.php:322
msgid "Invalid channel."
msgstr ""
@@ -1165,7 +1175,7 @@ msgstr ""
#: ../../addon/redfiles/redfiles.php:109 ../../addon/hzfiles/hzfiles.php:75
#: ../../include/items.php:439 ../../Zotlabs/Module/Import_items.php:120
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Group.php:99
-#: ../../Zotlabs/Module/Like.php:295 ../../Zotlabs/Module/Cloud.php:119
+#: ../../Zotlabs/Module/Like.php:332 ../../Zotlabs/Module/Cloud.php:123
#: ../../Zotlabs/Module/Share.php:72 ../../Zotlabs/Module/Subthread.php:86
#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:82
#: ../../Zotlabs/Web/WebServer.php:115
@@ -1211,11 +1221,11 @@ msgstr ""
msgid "0 or blank to import all available"
msgstr ""
-#: ../../addon/redphotos/redphotohelper.php:71 ../../addon/pubcrawl/as.php:1841
+#: ../../addon/redphotos/redphotohelper.php:71 ../../addon/pubcrawl/as.php:2057
#: ../../addon/diaspora/Receiver.php:1597 ../../include/text.php:2252
-#: ../../include/conversation.php:128 ../../Zotlabs/Module/Like.php:386
+#: ../../include/conversation.php:128 ../../Zotlabs/Module/Like.php:433
#: ../../Zotlabs/Module/Tagger.php:71 ../../Zotlabs/Module/Subthread.php:112
-#: ../../Zotlabs/Lib/Activity.php:2953
+#: ../../Zotlabs/Lib/Activity.php:2971
msgid "photo"
msgstr ""
@@ -1347,7 +1357,7 @@ msgid "Post to GNU social"
msgstr ""
#: ../../addon/statusnet/statusnet.php:593
-#: ../../Zotlabs/Module/Admin/Site.php:295
+#: ../../Zotlabs/Module/Admin/Site.php:301
msgid "Site name"
msgstr ""
@@ -1535,16 +1545,16 @@ msgstr ""
msgid "Until modified date yyyy-mm-dd"
msgstr ""
-#: ../../addon/hsse/hsse.php:82 ../../include/conversation.php:1325
+#: ../../addon/hsse/hsse.php:82 ../../include/conversation.php:1328
msgid "Set your location"
msgstr ""
-#: ../../addon/hsse/hsse.php:83 ../../include/conversation.php:1326
+#: ../../addon/hsse/hsse.php:83 ../../include/conversation.php:1329
msgid "Clear browser location"
msgstr ""
#: ../../addon/hsse/hsse.php:95 ../../addon/mail/Mod_Mail.php:166
-#: ../../addon/mail/Mod_Mail.php:309 ../../include/conversation.php:1338
+#: ../../addon/mail/Mod_Mail.php:309 ../../include/conversation.php:1341
#: ../../Zotlabs/Module/Article_edit.php:100
#: ../../Zotlabs/Module/Card_edit.php:101
#: ../../Zotlabs/Module/Editwebpage.php:143 ../../Zotlabs/Module/Chat.php:220
@@ -1552,193 +1562,194 @@ msgstr ""
msgid "Insert web link"
msgstr ""
-#: ../../addon/hsse/hsse.php:99 ../../include/conversation.php:1342
+#: ../../addon/hsse/hsse.php:99 ../../include/conversation.php:1345
msgid "Embed (existing) photo from your photo albums"
msgstr ""
#: ../../addon/hsse/hsse.php:134 ../../addon/mail/Mod_Mail.php:119
-#: ../../addon/mail/Mod_Mail.php:240 ../../include/conversation.php:1377
+#: ../../addon/mail/Mod_Mail.php:240 ../../include/conversation.php:1380
#: ../../Zotlabs/Module/Chat.php:218
msgid "Please enter a link URL:"
msgstr ""
-#: ../../addon/hsse/hsse.php:135 ../../include/conversation.php:1378
+#: ../../addon/hsse/hsse.php:135 ../../include/conversation.php:1381
msgid "Tag term:"
msgstr ""
-#: ../../addon/hsse/hsse.php:136 ../../include/conversation.php:1379
+#: ../../addon/hsse/hsse.php:136 ../../include/conversation.php:1382
msgid "Where are you right now?"
msgstr ""
-#: ../../addon/hsse/hsse.php:139 ../../include/conversation.php:1382
+#: ../../addon/hsse/hsse.php:139 ../../include/conversation.php:1385
#: ../../Zotlabs/Module/Profile_photo.php:509
#: ../../Zotlabs/Module/Cover_photo.php:430 ../../Zotlabs/Module/Wiki.php:403
msgid "Choose images to embed"
msgstr ""
-#: ../../addon/hsse/hsse.php:140 ../../include/conversation.php:1383
+#: ../../addon/hsse/hsse.php:140 ../../include/conversation.php:1386
#: ../../Zotlabs/Module/Profile_photo.php:510
#: ../../Zotlabs/Module/Cover_photo.php:431 ../../Zotlabs/Module/Wiki.php:404
msgid "Choose an album"
msgstr ""
-#: ../../addon/hsse/hsse.php:141 ../../include/conversation.php:1384
+#: ../../addon/hsse/hsse.php:141 ../../include/conversation.php:1387
msgid "Choose a different album..."
msgstr ""
-#: ../../addon/hsse/hsse.php:142 ../../include/conversation.php:1385
+#: ../../addon/hsse/hsse.php:142 ../../include/conversation.php:1388
#: ../../Zotlabs/Module/Profile_photo.php:512
#: ../../Zotlabs/Module/Cover_photo.php:433 ../../Zotlabs/Module/Wiki.php:406
msgid "Error getting album list"
msgstr ""
-#: ../../addon/hsse/hsse.php:143 ../../include/conversation.php:1386
+#: ../../addon/hsse/hsse.php:143 ../../include/conversation.php:1389
#: ../../Zotlabs/Module/Profile_photo.php:513
#: ../../Zotlabs/Module/Cover_photo.php:434 ../../Zotlabs/Module/Wiki.php:407
msgid "Error getting photo link"
msgstr ""
-#: ../../addon/hsse/hsse.php:144 ../../include/conversation.php:1387
+#: ../../addon/hsse/hsse.php:144 ../../include/conversation.php:1390
#: ../../Zotlabs/Module/Profile_photo.php:514
#: ../../Zotlabs/Module/Cover_photo.php:435 ../../Zotlabs/Module/Wiki.php:408
msgid "Error getting album"
msgstr ""
-#: ../../addon/hsse/hsse.php:145 ../../include/conversation.php:1388
+#: ../../addon/hsse/hsse.php:145 ../../include/conversation.php:1391
msgid "Comments enabled"
msgstr ""
-#: ../../addon/hsse/hsse.php:146 ../../include/conversation.php:1389
+#: ../../addon/hsse/hsse.php:146 ../../include/conversation.php:1392
msgid "Comments disabled"
msgstr ""
-#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1399
+#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1402
#: ../../Zotlabs/Module/Webpages.php:262 ../../Zotlabs/Module/Events.php:486
-#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Lib/ThreadItem.php:835
+#: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Lib/ThreadItem.php:835
msgid "Preview"
msgstr ""
-#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1432
+#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1435
#: ../../Zotlabs/Widget/Cdav.php:136 ../../Zotlabs/Module/Webpages.php:256
-#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1077
+#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1078
#: ../../Zotlabs/Module/Wiki.php:301 ../../Zotlabs/Module/Layouts.php:194
msgid "Share"
msgstr ""
-#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1441
+#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1444
msgid "Page link name"
msgstr ""
-#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1444
+#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1447
msgid "Post as"
msgstr ""
-#: ../../addon/hsse/hsse.php:200 ../../include/conversation.php:1446
+#: ../../addon/hsse/hsse.php:200 ../../include/conversation.php:1449
#: ../../Zotlabs/Lib/ThreadItem.php:826
msgid "Bold"
msgstr ""
-#: ../../addon/hsse/hsse.php:201 ../../include/conversation.php:1447
+#: ../../addon/hsse/hsse.php:201 ../../include/conversation.php:1450
#: ../../Zotlabs/Lib/ThreadItem.php:827
msgid "Italic"
msgstr ""
-#: ../../addon/hsse/hsse.php:202 ../../include/conversation.php:1448
+#: ../../addon/hsse/hsse.php:202 ../../include/conversation.php:1451
#: ../../Zotlabs/Lib/ThreadItem.php:828
msgid "Underline"
msgstr ""
-#: ../../addon/hsse/hsse.php:203 ../../include/conversation.php:1449
+#: ../../addon/hsse/hsse.php:203 ../../include/conversation.php:1452
#: ../../Zotlabs/Lib/ThreadItem.php:829
msgid "Quote"
msgstr ""
-#: ../../addon/hsse/hsse.php:204 ../../include/conversation.php:1450
+#: ../../addon/hsse/hsse.php:204 ../../include/conversation.php:1453
#: ../../Zotlabs/Lib/ThreadItem.php:830
msgid "Code"
msgstr ""
-#: ../../addon/hsse/hsse.php:205 ../../include/conversation.php:1451
+#: ../../addon/hsse/hsse.php:205 ../../include/conversation.php:1454
#: ../../Zotlabs/Lib/ThreadItem.php:832
msgid "Attach/Upload file"
msgstr ""
-#: ../../addon/hsse/hsse.php:208 ../../include/conversation.php:1454
+#: ../../addon/hsse/hsse.php:208 ../../include/conversation.php:1457
#: ../../Zotlabs/Module/Wiki.php:400
msgid "Embed an image from your albums"
msgstr ""
#: ../../addon/hsse/hsse.php:209 ../../addon/hsse/hsse.php:258
-#: ../../include/conversation.php:1455 ../../include/conversation.php:1508
+#: ../../include/conversation.php:1458 ../../include/conversation.php:1511
#: ../../Zotlabs/Module/Article_edit.php:130
#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88
#: ../../Zotlabs/Module/Card_edit.php:131 ../../Zotlabs/Module/Oauth.php:112
#: ../../Zotlabs/Module/Oauth.php:138 ../../Zotlabs/Module/Editwebpage.php:169
-#: ../../Zotlabs/Module/Cdav.php:1054 ../../Zotlabs/Module/Cdav.php:1386
+#: ../../Zotlabs/Module/Cdav.php:1058 ../../Zotlabs/Module/Cdav.php:1390
#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138
#: ../../Zotlabs/Module/Editpost.php:110
#: ../../Zotlabs/Module/Admin/Addons.php:427
#: ../../Zotlabs/Module/Profile_photo.php:507
-#: ../../Zotlabs/Module/Editblock.php:141 ../../Zotlabs/Module/Filer.php:55
+#: ../../Zotlabs/Module/Editblock.php:141 ../../Zotlabs/Module/Filer.php:56
#: ../../Zotlabs/Module/Editlayout.php:140
#: ../../Zotlabs/Module/Cover_photo.php:428
#: ../../Zotlabs/Module/Profiles.php:803 ../../Zotlabs/Module/Oauth2.php:117
#: ../../Zotlabs/Module/Oauth2.php:145 ../../Zotlabs/Module/Wiki.php:368
-#: ../../Zotlabs/Module/Wiki.php:401 ../../Zotlabs/Module/Connedit.php:944
+#: ../../Zotlabs/Module/Wiki.php:401 ../../Zotlabs/Module/Connedit.php:933
+#: ../../Zotlabs/Storage/Browser.php:376
msgid "Cancel"
msgstr ""
#: ../../addon/hsse/hsse.php:210 ../../addon/hsse/hsse.php:257
-#: ../../include/conversation.php:1456 ../../include/conversation.php:1507
+#: ../../include/conversation.php:1459 ../../include/conversation.php:1510
#: ../../Zotlabs/Module/Profile_photo.php:508
#: ../../Zotlabs/Module/Cover_photo.php:429 ../../Zotlabs/Module/Wiki.php:402
msgid "OK"
msgstr ""
-#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1458
+#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1461
msgid "Toggle voting"
msgstr ""
-#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1465
+#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1468
msgid "Disable comments"
msgstr ""
-#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1466
+#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1469
msgid "Toggle comments"
msgstr ""
-#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1471
+#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1474
#: ../../Zotlabs/Module/Article_edit.php:116
#: ../../Zotlabs/Module/Card_edit.php:117
-#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:673
-#: ../../Zotlabs/Module/Photos.php:1043
+#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:674
+#: ../../Zotlabs/Module/Photos.php:1044
msgid "Title (optional)"
msgstr ""
-#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1474
+#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1477
msgid "Categories (optional, comma-separated list)"
msgstr ""
-#: ../../addon/hsse/hsse.php:225 ../../include/conversation.php:1475
+#: ../../addon/hsse/hsse.php:225 ../../include/conversation.php:1478
#: ../../Zotlabs/Module/Events.php:487
msgid "Permission settings"
msgstr ""
-#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1497
+#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1500
msgid "Other networks and post services"
msgstr ""
#: ../../addon/hsse/hsse.php:250 ../../addon/mail/Mod_Mail.php:170
-#: ../../addon/mail/Mod_Mail.php:313 ../../include/conversation.php:1500
+#: ../../addon/mail/Mod_Mail.php:313 ../../include/conversation.php:1503
msgid "Set expiration date"
msgstr ""
-#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1503
+#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1506
msgid "Set publish date"
msgstr ""
#: ../../addon/hsse/hsse.php:255 ../../addon/mail/Mod_Mail.php:172
-#: ../../addon/mail/Mod_Mail.php:315 ../../include/conversation.php:1505
+#: ../../addon/mail/Mod_Mail.php:315 ../../include/conversation.php:1508
#: ../../Zotlabs/Module/Chat.php:219 ../../Zotlabs/Lib/ThreadItem.php:839
msgid "Encrypt text"
msgstr ""
@@ -1853,37 +1864,36 @@ msgstr ""
msgid "Enter some text"
msgstr ""
-#: ../../addon/pubcrawl/as.php:1135 ../../include/cdav.php:158
+#: ../../addon/pubcrawl/as.php:1187 ../../include/cdav.php:158
#: ../../include/cdav.php:159 ../../include/cdav.php:167
-#: ../../include/conversation.php:1208 ../../Zotlabs/Widget/Album.php:84
+#: ../../include/conversation.php:1211 ../../Zotlabs/Widget/Album.php:84
#: ../../Zotlabs/Widget/Pinned.php:270 ../../Zotlabs/Widget/Portfolio.php:95
-#: ../../Zotlabs/Module/Embedphotos.php:176 ../../Zotlabs/Module/Photos.php:792
-#: ../../Zotlabs/Module/Photos.php:1254 ../../Zotlabs/Lib/Activity.php:1492
+#: ../../Zotlabs/Module/Embedphotos.php:176 ../../Zotlabs/Module/Photos.php:793
+#: ../../Zotlabs/Module/Photos.php:1255 ../../Zotlabs/Lib/Activity.php:1508
#: ../../Zotlabs/Lib/Apps.php:1112 ../../Zotlabs/Lib/Apps.php:1196
-#: ../../Zotlabs/Storage/Browser.php:164
msgid "Unknown"
msgstr ""
-#: ../../addon/pubcrawl/as.php:1429 ../../addon/pubcrawl/as.php:1679
-#: ../../addon/pubcrawl/as.php:1887 ../../include/network.php:1735
-#: ../../Zotlabs/Lib/Activity.php:2803 ../../Zotlabs/Lib/Activity.php:2997
+#: ../../addon/pubcrawl/as.php:1483 ../../addon/pubcrawl/as.php:1895
+#: ../../addon/pubcrawl/as.php:2103 ../../include/network.php:1736
+#: ../../Zotlabs/Lib/Activity.php:2821 ../../Zotlabs/Lib/Activity.php:3015
msgid "ActivityPub"
msgstr ""
-#: ../../addon/pubcrawl/as.php:1841 ../../addon/diaspora/Receiver.php:1597
-#: ../../Zotlabs/Module/Like.php:386 ../../Zotlabs/Module/Subthread.php:112
+#: ../../addon/pubcrawl/as.php:2057 ../../addon/diaspora/Receiver.php:1597
+#: ../../Zotlabs/Module/Like.php:433 ../../Zotlabs/Module/Subthread.php:112
msgid "status"
msgstr ""
-#: ../../addon/pubcrawl/as.php:1878 ../../addon/diaspora/Receiver.php:1537
-#: ../../include/conversation.php:174 ../../Zotlabs/Module/Like.php:422
-#: ../../Zotlabs/Lib/Activity.php:2988
+#: ../../addon/pubcrawl/as.php:2094 ../../addon/diaspora/Receiver.php:1537
+#: ../../include/conversation.php:174 ../../Zotlabs/Module/Like.php:469
+#: ../../Zotlabs/Lib/Activity.php:3006
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr ""
-#: ../../addon/pubcrawl/as.php:1880 ../../include/conversation.php:177
-#: ../../Zotlabs/Module/Like.php:424 ../../Zotlabs/Lib/Activity.php:2990
+#: ../../addon/pubcrawl/as.php:2096 ../../include/conversation.php:177
+#: ../../Zotlabs/Module/Like.php:471 ../../Zotlabs/Lib/Activity.php:3008
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
@@ -2175,19 +2185,19 @@ msgstr ""
#: ../../Zotlabs/Widget/Wiki_page_history.php:22
#: ../../Zotlabs/Module/Group.php:155 ../../Zotlabs/Module/Oauth.php:113
#: ../../Zotlabs/Module/Oauth.php:139 ../../Zotlabs/Module/Chat.php:257
-#: ../../Zotlabs/Module/Cdav.php:1368 ../../Zotlabs/Module/Sharedwithme.php:106
+#: ../../Zotlabs/Module/Cdav.php:1372 ../../Zotlabs/Module/Sharedwithme.php:106
#: ../../Zotlabs/Module/Admin/Channels.php:159
#: ../../Zotlabs/Module/Oauth2.php:118 ../../Zotlabs/Module/Oauth2.php:146
-#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:926
+#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:915
#: ../../Zotlabs/Lib/NativeWikiPage.php:564
-#: ../../Zotlabs/Storage/Browser.php:291
+#: ../../Zotlabs/Storage/Browser.php:370
msgid "Name"
msgstr ""
#: ../../addon/rendezvous/rendezvous.php:173
#: ../../addon/cart/submodules/hzservices.php:655
#: ../../addon/cart/submodules/manualcat.php:260
-#: ../../Zotlabs/Module/Cdav.php:1010 ../../Zotlabs/Module/Events.php:481
+#: ../../Zotlabs/Module/Cdav.php:1014 ../../Zotlabs/Module/Events.php:481
#: ../../Zotlabs/Module/Appman.php:145 ../../Zotlabs/Module/Rbmark.php:101
msgid "Description"
msgstr ""
@@ -2997,7 +3007,7 @@ msgstr ""
msgid "Smileybutton Settings"
msgstr ""
-#: ../../addon/redfiles/redfilehelper.php:64 ../../include/attach.php:2035
+#: ../../addon/redfiles/redfilehelper.php:64 ../../include/attach.php:2099
msgid "file"
msgstr ""
@@ -3040,7 +3050,7 @@ msgid "Unable to create a unique channel address. Import failed."
msgstr ""
#: ../../addon/diaspora/import_diaspora.php:142
-#: ../../Zotlabs/Module/Import.php:597
+#: ../../Zotlabs/Module/Import.php:593
msgid "Import completed."
msgstr ""
@@ -3084,17 +3094,17 @@ msgstr ""
msgid "%1$s dislikes %2$s's %3$s"
msgstr ""
-#: ../../addon/diaspora/Receiver.php:2184 ../../Zotlabs/Module/Like.php:432
+#: ../../addon/diaspora/Receiver.php:2184 ../../Zotlabs/Module/Like.php:479
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr ""
-#: ../../addon/diaspora/Receiver.php:2186 ../../Zotlabs/Module/Like.php:434
+#: ../../addon/diaspora/Receiver.php:2186 ../../Zotlabs/Module/Like.php:481
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr ""
-#: ../../addon/diaspora/Receiver.php:2188 ../../Zotlabs/Module/Like.php:436
+#: ../../addon/diaspora/Receiver.php:2188 ../../Zotlabs/Module/Like.php:483
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr ""
@@ -3151,7 +3161,7 @@ msgstr ""
msgid "This channel"
msgstr ""
-#: ../../addon/workflow/workflow.php:285 ../../Zotlabs/Module/Locs.php:123
+#: ../../addon/workflow/workflow.php:285 ../../Zotlabs/Module/Locs.php:130
msgid "Primary"
msgstr ""
@@ -3182,8 +3192,8 @@ msgid "Web link."
msgstr ""
#: ../../addon/workflow/workflow.php:2617
-#: ../../addon/workflow/workflow.php:2678 ../../Zotlabs/Module/Cdav.php:1370
-#: ../../Zotlabs/Module/Connedit.php:928
+#: ../../addon/workflow/workflow.php:2678 ../../Zotlabs/Module/Cdav.php:1374
+#: ../../Zotlabs/Module/Connedit.php:917
msgid "Title"
msgstr ""
@@ -3402,25 +3412,25 @@ msgid "Not allowed."
msgstr ""
#: ../../addon/flashcards/Mod_Flashcards.php:254
-#: ../../include/acl_selectors.php:144 ../../Zotlabs/Module/Chat.php:241
-#: ../../Zotlabs/Module/Filestorage.php:190 ../../Zotlabs/Module/Photos.php:677
-#: ../../Zotlabs/Module/Photos.php:1046 ../../Zotlabs/Module/Thing.php:321
-#: ../../Zotlabs/Module/Thing.php:374 ../../Zotlabs/Module/Connedit.php:693
+#: ../../include/acl_selectors.php:153 ../../Zotlabs/Module/Chat.php:241
+#: ../../Zotlabs/Module/Filestorage.php:195 ../../Zotlabs/Module/Photos.php:678
+#: ../../Zotlabs/Module/Photos.php:1047 ../../Zotlabs/Module/Thing.php:321
+#: ../../Zotlabs/Module/Thing.php:374 ../../Zotlabs/Module/Connedit.php:682
msgid "Permissions"
msgstr ""
#: ../../addon/flashcards/Mod_Flashcards.php:261
-#: ../../Zotlabs/Module/Filestorage.php:197
+#: ../../Zotlabs/Module/Filestorage.php:202
msgid "Set/edit permissions"
msgstr ""
#: ../../addon/flashcards/Mod_Flashcards.php:284
-#: ../../addon/flashcards/Mod_Flashcards.php:285 ../../include/items.php:3889
-#: ../../Zotlabs/Module/Filestorage.php:26
+#: ../../addon/flashcards/Mod_Flashcards.php:285 ../../include/items.php:3902
+#: ../../Zotlabs/Module/Filestorage.php:29
#: ../../Zotlabs/Module/Admin/Themes.php:72
#: ../../Zotlabs/Module/Admin/Addons.php:260
-#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:45
-#: ../../Zotlabs/Module/Display.php:446 ../../Zotlabs/Module/Admin.php:62
+#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:42
+#: ../../Zotlabs/Module/Display.php:429 ../../Zotlabs/Module/Admin.php:62
#: ../../Zotlabs/Module/Thing.php:96
msgid "Item not found."
msgstr ""
@@ -4090,10 +4100,10 @@ msgid "Network: %s"
msgstr ""
#: ../../include/text.php:1150 ../../include/text.php:1162
-#: ../../include/nav.php:188 ../../include/acl_selectors.php:139
+#: ../../include/nav.php:188 ../../include/acl_selectors.php:148
#: ../../Zotlabs/Widget/Sitesearch.php:31
#: ../../Zotlabs/Widget/Activity_filter.php:193
-#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:378
+#: ../../Zotlabs/Module/Search.php:41 ../../Zotlabs/Module/Connections.php:378
#: ../../Zotlabs/Lib/Apps.php:353
msgid "Search"
msgstr ""
@@ -4312,11 +4322,11 @@ msgid "Unknown Attachment"
msgstr ""
#: ../../include/text.php:1562 ../../Zotlabs/Module/Sharedwithme.php:108
-#: ../../Zotlabs/Storage/Browser.php:293
+#: ../../Zotlabs/Storage/Browser.php:372
msgid "Size"
msgstr ""
-#: ../../include/text.php:1562 ../../include/feedutils.php:871
+#: ../../include/text.php:1562 ../../include/feedutils.php:873
msgid "unknown"
msgstr ""
@@ -4391,14 +4401,14 @@ msgstr ""
#: ../../include/text.php:2255 ../../include/event.php:1259
#: ../../include/conversation.php:132
#: ../../Zotlabs/Module/Channel_calendar.php:219
-#: ../../Zotlabs/Module/Like.php:388 ../../Zotlabs/Module/Tagger.php:75
+#: ../../Zotlabs/Module/Like.php:435 ../../Zotlabs/Module/Tagger.php:75
#: ../../Zotlabs/Module/Events.php:266
msgid "event"
msgstr ""
#: ../../include/text.php:2258 ../../include/conversation.php:158
#: ../../include/bbcode.php:523 ../../include/markdown.php:204
-#: ../../Zotlabs/Module/Tagger.php:79 ../../Zotlabs/Lib/Activity.php:2953
+#: ../../Zotlabs/Module/Tagger.php:79 ../../Zotlabs/Lib/Activity.php:2971
msgid "post"
msgstr ""
@@ -4503,10 +4513,6 @@ msgstr ""
msgid "Specify folder"
msgstr ""
-#: ../../include/text.php:3101 ../../Zotlabs/Storage/Browser.php:131
-msgid "Collection"
-msgstr ""
-
#: ../../include/opengraph.php:56
#, php-format
msgid "This is the home page of %s."
@@ -4525,7 +4531,7 @@ msgid "Finishes:"
msgstr ""
#: ../../include/event.php:63 ../../include/event.php:134
-#: ../../include/channel.php:1619 ../../Zotlabs/Module/Directory.php:352
+#: ../../include/channel.php:1633 ../../Zotlabs/Module/Directory.php:352
msgid "Location:"
msgstr ""
@@ -4565,46 +4571,46 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: ../../include/event.php:1422 ../../include/connections.php:733
-#: ../../Zotlabs/Module/Cdav.php:1377 ../../Zotlabs/Module/Profiles.php:794
-#: ../../Zotlabs/Module/Connedit.php:935
+#: ../../include/event.php:1422 ../../include/connections.php:734
+#: ../../Zotlabs/Module/Cdav.php:1381 ../../Zotlabs/Module/Profiles.php:794
+#: ../../Zotlabs/Module/Connedit.php:924
msgid "Mobile"
msgstr ""
-#: ../../include/event.php:1423 ../../include/connections.php:734
-#: ../../Zotlabs/Module/Cdav.php:1378 ../../Zotlabs/Module/Profiles.php:795
-#: ../../Zotlabs/Module/Connedit.php:936
+#: ../../include/event.php:1423 ../../include/connections.php:735
+#: ../../Zotlabs/Module/Cdav.php:1382 ../../Zotlabs/Module/Profiles.php:795
+#: ../../Zotlabs/Module/Connedit.php:925
msgid "Home"
msgstr ""
-#: ../../include/event.php:1424 ../../include/connections.php:735
+#: ../../include/event.php:1424 ../../include/connections.php:736
msgid "Home, Voice"
msgstr ""
-#: ../../include/event.php:1425 ../../include/connections.php:736
+#: ../../include/event.php:1425 ../../include/connections.php:737
msgid "Home, Fax"
msgstr ""
-#: ../../include/event.php:1426 ../../include/connections.php:737
-#: ../../Zotlabs/Module/Cdav.php:1379 ../../Zotlabs/Module/Profiles.php:796
-#: ../../Zotlabs/Module/Connedit.php:937
+#: ../../include/event.php:1426 ../../include/connections.php:738
+#: ../../Zotlabs/Module/Cdav.php:1383 ../../Zotlabs/Module/Profiles.php:796
+#: ../../Zotlabs/Module/Connedit.php:926
msgid "Work"
msgstr ""
-#: ../../include/event.php:1427 ../../include/connections.php:738
+#: ../../include/event.php:1427 ../../include/connections.php:739
msgid "Work, Voice"
msgstr ""
-#: ../../include/event.php:1428 ../../include/connections.php:739
+#: ../../include/event.php:1428 ../../include/connections.php:740
msgid "Work, Fax"
msgstr ""
#: ../../include/event.php:1429 ../../include/event.php:1436
#: ../../include/selectors.php:60 ../../include/selectors.php:77
#: ../../include/selectors.php:115 ../../include/selectors.php:151
-#: ../../include/connections.php:740 ../../include/connections.php:747
-#: ../../Zotlabs/Module/Cdav.php:1380 ../../Zotlabs/Module/Profiles.php:797
-#: ../../Zotlabs/Module/Connedit.php:938
+#: ../../include/connections.php:741 ../../include/connections.php:748
+#: ../../Zotlabs/Module/Cdav.php:1384 ../../Zotlabs/Module/Profiles.php:797
+#: ../../Zotlabs/Module/Connedit.php:927
#: ../../Zotlabs/Access/PermissionRoles.php:310
msgid "Other"
msgstr ""
@@ -4623,7 +4629,6 @@ msgstr ""
#: ../../include/features.php:82 ../../include/nav.php:463
#: ../../include/nav.php:466 ../../Zotlabs/Lib/Apps.php:346
-#: ../../Zotlabs/Storage/Browser.php:140
msgid "Calendar"
msgstr ""
@@ -4937,8 +4942,8 @@ msgstr ""
msgid "Delete this item?"
msgstr ""
-#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1096
-#: ../../Zotlabs/Module/Photos.php:1214 ../../Zotlabs/Lib/ThreadItem.php:824
+#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1097
+#: ../../Zotlabs/Module/Photos.php:1215 ../../Zotlabs/Lib/ThreadItem.php:824
msgid "Comment"
msgstr ""
@@ -4999,7 +5004,7 @@ msgid "Rate This Channel (this is public)"
msgstr ""
#: ../../include/js_strings.php:20 ../../Zotlabs/Module/Rate.php:155
-#: ../../Zotlabs/Module/Connedit.php:890
+#: ../../Zotlabs/Module/Connedit.php:879
msgid "Rating"
msgstr ""
@@ -5016,9 +5021,9 @@ msgid "Unsaved changes. Are you sure you wish to leave this page?"
msgstr ""
#: ../../include/js_strings.php:25 ../../Zotlabs/Module/Pubsites.php:52
-#: ../../Zotlabs/Module/Cdav.php:1011 ../../Zotlabs/Module/Events.php:483
+#: ../../Zotlabs/Module/Cdav.php:1015 ../../Zotlabs/Module/Events.php:483
#: ../../Zotlabs/Module/Profiles.php:511 ../../Zotlabs/Module/Profiles.php:736
-#: ../../Zotlabs/Module/Locs.php:121
+#: ../../Zotlabs/Module/Locs.php:128
msgid "Location"
msgstr ""
@@ -5271,6 +5276,10 @@ msgctxt "calendar"
msgid "All day"
msgstr ""
+#: ../../include/js_strings.php:119
+msgid "Please stand by while your download is being prepared."
+msgstr ""
+
#: ../../include/help.php:80
msgid "Help:"
msgstr ""
@@ -5285,9 +5294,9 @@ msgstr ""
msgid "Not Found"
msgstr ""
-#: ../../include/help.php:132 ../../Zotlabs/Module/Display.php:139
-#: ../../Zotlabs/Module/Display.php:156 ../../Zotlabs/Module/Display.php:176
-#: ../../Zotlabs/Module/Display.php:182 ../../Zotlabs/Module/Page.php:136
+#: ../../include/help.php:132 ../../Zotlabs/Module/Display.php:136
+#: ../../Zotlabs/Module/Display.php:153 ../../Zotlabs/Module/Display.php:173
+#: ../../Zotlabs/Module/Display.php:179 ../../Zotlabs/Module/Page.php:136
#: ../../Zotlabs/Module/Block.php:77 ../../Zotlabs/Lib/NativeWikiPage.php:521
#: ../../Zotlabs/Web/Router.php:185
msgid "Page not found."
@@ -5325,8 +5334,8 @@ msgstr ""
msgid "Photo Albums"
msgstr ""
-#: ../../include/photos.php:667 ../../Zotlabs/Module/Photos.php:1347
-#: ../../Zotlabs/Module/Photos.php:1360 ../../Zotlabs/Module/Photos.php:1361
+#: ../../include/photos.php:667 ../../Zotlabs/Module/Photos.php:1348
+#: ../../Zotlabs/Module/Photos.php:1361 ../../Zotlabs/Module/Photos.php:1362
msgid "Recent Photos"
msgstr ""
@@ -5334,43 +5343,43 @@ msgstr ""
msgid "Upload New Photos"
msgstr ""
-#: ../../include/network.php:1730 ../../include/network.php:1731
+#: ../../include/network.php:1731 ../../include/network.php:1732
msgid "Friendica"
msgstr ""
-#: ../../include/network.php:1732
+#: ../../include/network.php:1733
msgid "OStatus"
msgstr ""
-#: ../../include/network.php:1733
+#: ../../include/network.php:1734
msgid "GNU-Social"
msgstr ""
-#: ../../include/network.php:1734
+#: ../../include/network.php:1735
msgid "RSS/Atom"
msgstr ""
-#: ../../include/network.php:1737
+#: ../../include/network.php:1738
msgid "Diaspora"
msgstr ""
-#: ../../include/network.php:1738
+#: ../../include/network.php:1739
msgid "Facebook"
msgstr ""
-#: ../../include/network.php:1739
+#: ../../include/network.php:1740
msgid "Zot"
msgstr ""
-#: ../../include/network.php:1740
+#: ../../include/network.php:1741
msgid "LinkedIn"
msgstr ""
-#: ../../include/network.php:1741
+#: ../../include/network.php:1742
msgid "XMPP/IM"
msgstr ""
-#: ../../include/network.php:1742
+#: ../../include/network.php:1743
msgid "MySpace"
msgstr ""
@@ -5404,8 +5413,8 @@ msgid_plural "%d invitations available"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/contact_widgets.php:16 ../../include/acl_selectors.php:135
-#: ../../Zotlabs/Module/Admin/Site.php:291
+#: ../../include/contact_widgets.php:16 ../../include/acl_selectors.php:144
+#: ../../Zotlabs/Module/Admin/Site.php:297
msgid "Advanced"
msgstr ""
@@ -5448,25 +5457,28 @@ msgstr ""
msgid "Advanced example: name=fred and country=iceland"
msgstr ""
-#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:99
-#: ../../include/contact_widgets.php:142 ../../include/contact_widgets.php:187
+#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:111
+#: ../../include/contact_widgets.php:155 ../../include/contact_widgets.php:200
+#: ../../include/contact_widgets.php:235
#: ../../Zotlabs/Widget/Appcategories.php:46 ../../Zotlabs/Widget/Filer.php:31
msgid "Everything"
msgstr ""
-#: ../../include/contact_widgets.php:96 ../../include/contact_widgets.php:139
-#: ../../include/contact_widgets.php:184 ../../include/taxonomy.php:409
-#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
-#: ../../include/taxonomy.php:532 ../../Zotlabs/Widget/Appcategories.php:43
-#: ../../Zotlabs/Module/Cdav.php:1066
+#: ../../include/contact_widgets.php:108 ../../include/contact_widgets.php:152
+#: ../../include/contact_widgets.php:197 ../../include/contact_widgets.php:232
+#: ../../include/taxonomy.php:418 ../../include/taxonomy.php:500
+#: ../../include/taxonomy.php:520 ../../include/taxonomy.php:541
+#: ../../Zotlabs/Widget/Appcategories.php:43 ../../Zotlabs/Module/Cdav.php:1070
+#: ../../Zotlabs/Storage/Browser.php:293 ../../Zotlabs/Storage/Browser.php:381
+#: ../../Zotlabs/Storage/Browser.php:396
msgid "Categories"
msgstr ""
-#: ../../include/contact_widgets.php:218
+#: ../../include/contact_widgets.php:265
msgid "Common Connections"
msgstr ""
-#: ../../include/contact_widgets.php:222
+#: ../../include/contact_widgets.php:269
#, php-format
msgid "View all %d common connections"
msgstr ""
@@ -5506,7 +5518,7 @@ msgid "Manage your channels"
msgstr ""
#: ../../include/nav.php:101 ../../include/group.php:321
-#: ../../include/acl_selectors.php:87
+#: ../../include/acl_selectors.php:86
#: ../../Zotlabs/Widget/Activity_filter.php:82
#: ../../Zotlabs/Module/Group.php:142 ../../Zotlabs/Module/Group.php:154
#: ../../Zotlabs/Lib/Group.php:324 ../../Zotlabs/Lib/Apps.php:364
@@ -5529,7 +5541,7 @@ msgid "Account/Channel Settings"
msgstr ""
#: ../../include/nav.php:109 ../../include/nav.php:138
-#: ../../include/nav.php:157 ../../boot.php:1697
+#: ../../include/nav.php:157 ../../boot.php:1698
msgid "Logout"
msgstr ""
@@ -5541,7 +5553,7 @@ msgstr ""
msgid "Your profile page"
msgstr ""
-#: ../../include/nav.php:115 ../../include/channel.php:1524
+#: ../../include/nav.php:115 ../../include/channel.php:1538
#: ../../Zotlabs/Module/Profiles.php:832
msgid "Edit Profiles"
msgstr ""
@@ -5555,7 +5567,7 @@ msgid "Edit your profile"
msgstr ""
#: ../../include/nav.php:124 ../../include/nav.php:128
-#: ../../Zotlabs/Lib/Apps.php:336 ../../boot.php:1698
+#: ../../Zotlabs/Lib/Apps.php:336 ../../boot.php:1699
msgid "Login"
msgstr ""
@@ -5572,7 +5584,7 @@ msgid "Log me out of this site"
msgstr ""
#: ../../include/nav.php:162 ../../Zotlabs/Module/Register.php:293
-#: ../../boot.php:1678
+#: ../../boot.php:1679
msgid "Register"
msgstr ""
@@ -5599,7 +5611,7 @@ msgstr ""
#: ../../include/nav.php:324 ../../Zotlabs/Widget/Notifications.php:182
#: ../../Zotlabs/Module/New_channel.php:157
#: ../../Zotlabs/Module/New_channel.php:164
-#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:872
+#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:861
msgid "Loading"
msgstr ""
@@ -5640,7 +5652,7 @@ msgid "Profile Details"
msgstr ""
#: ../../include/nav.php:452 ../../Zotlabs/Module/Fbrowser.php:85
-#: ../../Zotlabs/Lib/Apps.php:340 ../../Zotlabs/Storage/Browser.php:278
+#: ../../Zotlabs/Lib/Apps.php:340 ../../Zotlabs/Storage/Browser.php:344
msgid "Files"
msgstr ""
@@ -5730,7 +5742,7 @@ msgstr ""
msgid "YYYY-MM-DD or MM-DD"
msgstr ""
-#: ../../include/datetime.php:238 ../../boot.php:2702
+#: ../../include/datetime.php:238 ../../boot.php:2703
msgid "never"
msgstr ""
@@ -5864,7 +5876,7 @@ msgstr ""
msgid "Cannot connect to yourself."
msgstr ""
-#: ../../include/conversation.php:135 ../../Zotlabs/Module/Like.php:129
+#: ../../include/conversation.php:135 ../../Zotlabs/Module/Like.php:166
msgid "channel"
msgstr ""
@@ -5894,275 +5906,275 @@ msgctxt "mood"
msgid "%1$s is %2$s"
msgstr ""
-#: ../../include/conversation.php:515 ../../Zotlabs/Lib/ThreadItem.php:500
+#: ../../include/conversation.php:516 ../../Zotlabs/Lib/ThreadItem.php:500
msgid "This is an unsaved preview"
msgstr ""
-#: ../../include/conversation.php:651 ../../Zotlabs/Module/Photos.php:1112
+#: ../../include/conversation.php:652 ../../Zotlabs/Module/Photos.php:1113
msgctxt "title"
msgid "Likes"
msgstr ""
-#: ../../include/conversation.php:652 ../../Zotlabs/Module/Photos.php:1112
+#: ../../include/conversation.php:653 ../../Zotlabs/Module/Photos.php:1113
msgctxt "title"
msgid "Dislikes"
msgstr ""
-#: ../../include/conversation.php:653 ../../Zotlabs/Widget/Pinned.php:77
-#: ../../Zotlabs/Module/Photos.php:1113
+#: ../../include/conversation.php:654 ../../Zotlabs/Widget/Pinned.php:77
+#: ../../Zotlabs/Module/Photos.php:1114
msgctxt "title"
msgid "Agree"
msgstr ""
-#: ../../include/conversation.php:654 ../../Zotlabs/Widget/Pinned.php:78
-#: ../../Zotlabs/Module/Photos.php:1113
+#: ../../include/conversation.php:655 ../../Zotlabs/Widget/Pinned.php:78
+#: ../../Zotlabs/Module/Photos.php:1114
msgctxt "title"
msgid "Disagree"
msgstr ""
-#: ../../include/conversation.php:655 ../../Zotlabs/Widget/Pinned.php:79
-#: ../../Zotlabs/Module/Photos.php:1113
+#: ../../include/conversation.php:656 ../../Zotlabs/Widget/Pinned.php:79
+#: ../../Zotlabs/Module/Photos.php:1114
msgctxt "title"
msgid "Abstain"
msgstr ""
-#: ../../include/conversation.php:656 ../../Zotlabs/Widget/Pinned.php:66
-#: ../../Zotlabs/Module/Photos.php:1114
+#: ../../include/conversation.php:657 ../../Zotlabs/Widget/Pinned.php:66
+#: ../../Zotlabs/Module/Photos.php:1115
msgctxt "title"
msgid "Attending"
msgstr ""
-#: ../../include/conversation.php:657 ../../Zotlabs/Widget/Pinned.php:67
-#: ../../Zotlabs/Module/Photos.php:1114
+#: ../../include/conversation.php:658 ../../Zotlabs/Widget/Pinned.php:67
+#: ../../Zotlabs/Module/Photos.php:1115
msgctxt "title"
msgid "Not attending"
msgstr ""
-#: ../../include/conversation.php:658 ../../Zotlabs/Widget/Pinned.php:68
-#: ../../Zotlabs/Module/Photos.php:1114
+#: ../../include/conversation.php:659 ../../Zotlabs/Widget/Pinned.php:68
+#: ../../Zotlabs/Module/Photos.php:1115
msgctxt "title"
msgid "Might attend"
msgstr ""
-#: ../../include/conversation.php:728 ../../Zotlabs/Lib/ThreadItem.php:180
+#: ../../include/conversation.php:729 ../../Zotlabs/Lib/ThreadItem.php:180
msgid "Select"
msgstr ""
-#: ../../include/conversation.php:729 ../../include/conversation.php:774
+#: ../../include/conversation.php:730 ../../include/conversation.php:775
#: ../../Zotlabs/Module/Article_edit.php:128
#: ../../Zotlabs/Module/Card_edit.php:129 ../../Zotlabs/Module/Oauth.php:174
-#: ../../Zotlabs/Module/Editwebpage.php:167 ../../Zotlabs/Module/Cdav.php:1052
-#: ../../Zotlabs/Module/Cdav.php:1385 ../../Zotlabs/Module/Webpages.php:257
+#: ../../Zotlabs/Module/Editwebpage.php:167 ../../Zotlabs/Module/Cdav.php:1056
+#: ../../Zotlabs/Module/Cdav.php:1389 ../../Zotlabs/Module/Webpages.php:257
#: ../../Zotlabs/Module/Admin/Accounts.php:175
#: ../../Zotlabs/Module/Admin/Channels.php:149
#: ../../Zotlabs/Module/Admin/Profs.php:176 ../../Zotlabs/Module/Blocks.php:162
#: ../../Zotlabs/Module/Editblock.php:139
#: ../../Zotlabs/Module/Editlayout.php:138
#: ../../Zotlabs/Module/Connections.php:328
-#: ../../Zotlabs/Module/Photos.php:1178 ../../Zotlabs/Module/Profiles.php:802
+#: ../../Zotlabs/Module/Photos.php:1179 ../../Zotlabs/Module/Profiles.php:802
#: ../../Zotlabs/Module/Oauth2.php:195 ../../Zotlabs/Module/Thing.php:269
-#: ../../Zotlabs/Module/Connedit.php:671 ../../Zotlabs/Module/Connedit.php:943
+#: ../../Zotlabs/Module/Connedit.php:660 ../../Zotlabs/Module/Connedit.php:932
#: ../../Zotlabs/Lib/Apps.php:558 ../../Zotlabs/Lib/ThreadItem.php:170
-#: ../../Zotlabs/Storage/Browser.php:297
+#: ../../Zotlabs/Storage/Browser.php:377
msgid "Delete"
msgstr ""
-#: ../../include/conversation.php:733 ../../Zotlabs/Lib/ThreadItem.php:273
+#: ../../include/conversation.php:734 ../../Zotlabs/Lib/ThreadItem.php:273
msgid "Toggle Star Status"
msgstr ""
-#: ../../include/conversation.php:738 ../../Zotlabs/Lib/ThreadItem.php:103
+#: ../../include/conversation.php:739 ../../Zotlabs/Lib/ThreadItem.php:103
msgid "Private Message"
msgstr ""
-#: ../../include/conversation.php:745 ../../Zotlabs/Widget/Pinned.php:88
+#: ../../include/conversation.php:746 ../../Zotlabs/Widget/Pinned.php:88
#: ../../Zotlabs/Lib/ThreadItem.php:284
msgid "Message signature validated"
msgstr ""
-#: ../../include/conversation.php:746 ../../Zotlabs/Widget/Pinned.php:89
+#: ../../include/conversation.php:747 ../../Zotlabs/Widget/Pinned.php:89
#: ../../Zotlabs/Lib/ThreadItem.php:285
msgid "Message signature incorrect"
msgstr ""
-#: ../../include/conversation.php:773
+#: ../../include/conversation.php:774
#: ../../Zotlabs/Module/Admin/Accounts.php:173
#: ../../Zotlabs/Module/Connections.php:342
msgid "Approve"
msgstr ""
-#: ../../include/conversation.php:778
+#: ../../include/conversation.php:779
#, php-format
msgid "View %s's profile @ %s"
msgstr ""
-#: ../../include/conversation.php:798
+#: ../../include/conversation.php:799
msgid "Categories:"
msgstr ""
-#: ../../include/conversation.php:799
+#: ../../include/conversation.php:800
msgid "Filed under:"
msgstr ""
-#: ../../include/conversation.php:805 ../../Zotlabs/Widget/Pinned.php:133
+#: ../../include/conversation.php:806 ../../Zotlabs/Widget/Pinned.php:133
#: ../../Zotlabs/Lib/ThreadItem.php:429
#, php-format
msgid "from %s"
msgstr ""
-#: ../../include/conversation.php:808 ../../Zotlabs/Widget/Pinned.php:136
+#: ../../include/conversation.php:809 ../../Zotlabs/Widget/Pinned.php:136
#: ../../Zotlabs/Lib/ThreadItem.php:432
#, php-format
msgid "last edited: %s"
msgstr ""
-#: ../../include/conversation.php:809 ../../Zotlabs/Widget/Pinned.php:137
+#: ../../include/conversation.php:810 ../../Zotlabs/Widget/Pinned.php:137
#: ../../Zotlabs/Lib/ThreadItem.php:433
#, php-format
msgid "Expires: %s"
msgstr ""
-#: ../../include/conversation.php:824
+#: ../../include/conversation.php:825
msgid "View in context"
msgstr ""
-#: ../../include/conversation.php:826 ../../Zotlabs/Module/Photos.php:1078
+#: ../../include/conversation.php:827 ../../Zotlabs/Module/Photos.php:1079
#: ../../Zotlabs/Lib/ThreadItem.php:501
msgid "Please wait"
msgstr ""
-#: ../../include/conversation.php:925
+#: ../../include/conversation.php:928
msgid "remove"
msgstr ""
-#: ../../include/conversation.php:929
+#: ../../include/conversation.php:932
msgid "Loading..."
msgstr ""
-#: ../../include/conversation.php:930 ../../Zotlabs/Lib/ThreadItem.php:301
+#: ../../include/conversation.php:933 ../../Zotlabs/Lib/ThreadItem.php:301
msgid "Conversation Tools"
msgstr ""
-#: ../../include/conversation.php:931
+#: ../../include/conversation.php:934
msgid "Delete Selected Items"
msgstr ""
-#: ../../include/conversation.php:974
+#: ../../include/conversation.php:977
msgid "View Source"
msgstr ""
-#: ../../include/conversation.php:984
+#: ../../include/conversation.php:987
msgid "Follow Thread"
msgstr ""
-#: ../../include/conversation.php:993
+#: ../../include/conversation.php:996
msgid "Unfollow Thread"
msgstr ""
-#: ../../include/conversation.php:1087 ../../Zotlabs/Module/Connedit.php:632
+#: ../../include/conversation.php:1090 ../../Zotlabs/Module/Connedit.php:621
msgid "Recent Activity"
msgstr ""
-#: ../../include/conversation.php:1097 ../../include/connections.php:110
-#: ../../include/channel.php:1604 ../../Zotlabs/Widget/Suggestions.php:46
+#: ../../include/conversation.php:1100 ../../include/connections.php:110
+#: ../../include/channel.php:1618 ../../Zotlabs/Widget/Suggestions.php:46
#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Module/Directory.php:368
#: ../../Zotlabs/Module/Connections.php:349 ../../Zotlabs/Module/Suggest.php:71
msgid "Connect"
msgstr ""
-#: ../../include/conversation.php:1107
+#: ../../include/conversation.php:1110
msgid "Edit Connection"
msgstr ""
-#: ../../include/conversation.php:1117
+#: ../../include/conversation.php:1120
msgid "Message"
msgstr ""
-#: ../../include/conversation.php:1127 ../../Zotlabs/Module/Pubsites.php:35
+#: ../../include/conversation.php:1130 ../../Zotlabs/Module/Pubsites.php:35
#: ../../Zotlabs/Module/Ratings.php:97
msgid "Ratings"
msgstr ""
-#: ../../include/conversation.php:1137 ../../Zotlabs/Module/Poke.php:199
+#: ../../include/conversation.php:1140 ../../Zotlabs/Module/Poke.php:199
#: ../../Zotlabs/Lib/Apps.php:351
msgid "Poke"
msgstr ""
-#: ../../include/conversation.php:1259
+#: ../../include/conversation.php:1262
#, php-format
msgid "%s likes this."
msgstr ""
-#: ../../include/conversation.php:1259
+#: ../../include/conversation.php:1262
#, php-format
msgid "%s doesn't like this."
msgstr ""
-#: ../../include/conversation.php:1263
+#: ../../include/conversation.php:1266
#, php-format
msgid "<span %1$s>%2$d people</span> like this."
msgid_plural "<span %1$s>%2$d people</span> like this."
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1265
+#: ../../include/conversation.php:1268
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this."
msgid_plural "<span %1$s>%2$d people</span> don't like this."
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1271
+#: ../../include/conversation.php:1274
msgid "and"
msgstr ""
-#: ../../include/conversation.php:1274
+#: ../../include/conversation.php:1277
#, php-format
msgid ", and %d other people"
msgid_plural ", and %d other people"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1275
+#: ../../include/conversation.php:1278
#, php-format
msgid "%s like this."
msgstr ""
-#: ../../include/conversation.php:1275
+#: ../../include/conversation.php:1278
#, php-format
msgid "%s don't like this."
msgstr ""
-#: ../../include/conversation.php:1459
+#: ../../include/conversation.php:1462
msgid "Toggle poll"
msgstr ""
-#: ../../include/conversation.php:1460
+#: ../../include/conversation.php:1463
msgid "Option"
msgstr ""
-#: ../../include/conversation.php:1461
+#: ../../include/conversation.php:1464
msgid "Add option"
msgstr ""
-#: ../../include/conversation.php:1462
+#: ../../include/conversation.php:1465
msgid "Minutes"
msgstr ""
-#: ../../include/conversation.php:1462
+#: ../../include/conversation.php:1465
msgid "Hours"
msgstr ""
-#: ../../include/conversation.php:1462
+#: ../../include/conversation.php:1465
msgid "Days"
msgstr ""
-#: ../../include/conversation.php:1463
+#: ../../include/conversation.php:1466
msgid "Allow multiple answers"
msgstr ""
-#: ../../include/conversation.php:1746 ../../include/taxonomy.php:659
-#: ../../include/channel.php:1767 ../../Zotlabs/Module/Photos.php:1135
+#: ../../include/conversation.php:1749 ../../include/taxonomy.php:668
+#: ../../include/channel.php:1781 ../../Zotlabs/Module/Photos.php:1136
#: ../../Zotlabs/Lib/ThreadItem.php:242
msgctxt "noun"
msgid "Like"
@@ -6170,7 +6182,7 @@ msgid_plural "Likes"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1749 ../../Zotlabs/Module/Photos.php:1140
+#: ../../include/conversation.php:1752 ../../Zotlabs/Module/Photos.php:1141
#: ../../Zotlabs/Lib/ThreadItem.php:247
msgctxt "noun"
msgid "Dislike"
@@ -6178,42 +6190,42 @@ msgid_plural "Dislikes"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1752
+#: ../../include/conversation.php:1755
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1755
+#: ../../include/conversation.php:1758
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1758
+#: ../../include/conversation.php:1761
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1761
+#: ../../include/conversation.php:1764
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1764
+#: ../../include/conversation.php:1767
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1767
+#: ../../include/conversation.php:1770
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -6280,11 +6292,11 @@ msgstr ""
msgid "Hermaphrodite"
msgstr ""
-#: ../../include/selectors.php:60 ../../include/channel.php:1712
+#: ../../include/selectors.php:60 ../../include/channel.php:1726
msgid "Neuter"
msgstr ""
-#: ../../include/selectors.php:60 ../../include/channel.php:1714
+#: ../../include/selectors.php:60 ../../include/channel.php:1728
msgid "Non-specific"
msgstr ""
@@ -6388,7 +6400,7 @@ msgstr ""
#: ../../Zotlabs/Module/Settings/Channel.php:76
#: ../../Zotlabs/Module/Settings/Channel.php:79
#: ../../Zotlabs/Module/Settings/Channel.php:90
-#: ../../Zotlabs/Module/Connedit.php:728
+#: ../../Zotlabs/Module/Connedit.php:717
msgid "Friends"
msgstr ""
@@ -6476,11 +6488,11 @@ msgstr ""
msgid "Ask me"
msgstr ""
-#: ../../include/connections.php:133
+#: ../../include/connections.php:134
msgid "New window"
msgstr ""
-#: ../../include/connections.php:134
+#: ../../include/connections.php:135
msgid "Open the selected location in a different window or browser tab"
msgstr ""
@@ -6517,48 +6529,48 @@ msgstr ""
msgid "add"
msgstr ""
-#: ../../include/taxonomy.php:320
+#: ../../include/taxonomy.php:323
msgid "Trending"
msgstr ""
-#: ../../include/taxonomy.php:320 ../../include/taxonomy.php:449
-#: ../../include/taxonomy.php:470 ../../Zotlabs/Widget/Tagcloud.php:22
+#: ../../include/taxonomy.php:323 ../../include/taxonomy.php:458
+#: ../../include/taxonomy.php:479 ../../Zotlabs/Widget/Tagcloud.php:22
msgid "Tags"
msgstr ""
-#: ../../include/taxonomy.php:550
+#: ../../include/taxonomy.php:559
msgid "Keywords"
msgstr ""
-#: ../../include/taxonomy.php:571
+#: ../../include/taxonomy.php:580
msgid "have"
msgstr ""
-#: ../../include/taxonomy.php:571
+#: ../../include/taxonomy.php:580
msgid "has"
msgstr ""
-#: ../../include/taxonomy.php:572
+#: ../../include/taxonomy.php:581
msgid "want"
msgstr ""
-#: ../../include/taxonomy.php:572
+#: ../../include/taxonomy.php:581
msgid "wants"
msgstr ""
-#: ../../include/taxonomy.php:573 ../../Zotlabs/Lib/ThreadItem.php:317
+#: ../../include/taxonomy.php:582 ../../Zotlabs/Lib/ThreadItem.php:317
msgid "like"
msgstr ""
-#: ../../include/taxonomy.php:573
+#: ../../include/taxonomy.php:582
msgid "likes"
msgstr ""
-#: ../../include/taxonomy.php:574 ../../Zotlabs/Lib/ThreadItem.php:318
+#: ../../include/taxonomy.php:583 ../../Zotlabs/Lib/ThreadItem.php:318
msgid "dislike"
msgstr ""
-#: ../../include/taxonomy.php:574
+#: ../../include/taxonomy.php:583
msgid "dislikes"
msgstr ""
@@ -6599,67 +6611,67 @@ msgstr ""
msgid "Visible to specific connections."
msgstr ""
-#: ../../include/items.php:4466 ../../Zotlabs/Module/Group.php:62
+#: ../../include/items.php:4474 ../../Zotlabs/Module/Group.php:62
#: ../../Zotlabs/Module/Group.php:214
msgid "Privacy group not found."
msgstr ""
-#: ../../include/items.php:4482
+#: ../../include/items.php:4490
msgid "Privacy group is empty."
msgstr ""
-#: ../../include/items.php:4489
+#: ../../include/items.php:4497
#, php-format
msgid "Privacy group: %s"
msgstr ""
-#: ../../include/items.php:4499 ../../Zotlabs/Module/Connedit.php:870
+#: ../../include/items.php:4507 ../../Zotlabs/Module/Connedit.php:859
#, php-format
msgid "Connection: %s"
msgstr ""
-#: ../../include/items.php:4501
+#: ../../include/items.php:4509
msgid "Connection not found."
msgstr ""
-#: ../../include/items.php:4835 ../../Zotlabs/Module/Cover_photo.php:297
+#: ../../include/items.php:4843 ../../Zotlabs/Module/Cover_photo.php:297
msgid "female"
msgstr ""
-#: ../../include/items.php:4836 ../../Zotlabs/Module/Cover_photo.php:298
+#: ../../include/items.php:4844 ../../Zotlabs/Module/Cover_photo.php:298
#, php-format
msgid "%1$s updated her %2$s"
msgstr ""
-#: ../../include/items.php:4837 ../../Zotlabs/Module/Cover_photo.php:299
+#: ../../include/items.php:4845 ../../Zotlabs/Module/Cover_photo.php:299
msgid "male"
msgstr ""
-#: ../../include/items.php:4838 ../../Zotlabs/Module/Cover_photo.php:300
+#: ../../include/items.php:4846 ../../Zotlabs/Module/Cover_photo.php:300
#, php-format
msgid "%1$s updated his %2$s"
msgstr ""
-#: ../../include/items.php:4840 ../../Zotlabs/Module/Cover_photo.php:302
+#: ../../include/items.php:4848 ../../Zotlabs/Module/Cover_photo.php:302
#, php-format
msgid "%1$s updated their %2$s"
msgstr ""
-#: ../../include/items.php:4842
+#: ../../include/items.php:4850
msgid "profile photo"
msgstr ""
-#: ../../include/items.php:5034
+#: ../../include/items.php:5042
#, php-format
msgid "[Edited %s]"
msgstr ""
-#: ../../include/items.php:5034
+#: ../../include/items.php:5042
msgctxt "edit_activity"
msgid "Post"
msgstr ""
-#: ../../include/items.php:5034
+#: ../../include/items.php:5042
msgctxt "edit_activity"
msgid "Comment"
msgstr ""
@@ -6732,13 +6744,14 @@ msgstr ""
msgid "This action is not available under your subscription plan."
msgstr ""
-#: ../../include/photo/photo_driver.php:413
+#: ../../include/photo/photo_driver.php:417
#: ../../Zotlabs/Module/Profile_photo.php:147
#: ../../Zotlabs/Module/Profile_photo.php:284
msgid "Profile Photos"
msgstr ""
-#: ../../include/attach.php:273 ../../include/attach.php:381
+#: ../../include/attach.php:273 ../../include/attach.php:324
+#: ../../include/attach.php:419
msgid "Item was not found."
msgstr ""
@@ -6746,65 +6759,65 @@ msgstr ""
msgid "Unknown error."
msgstr ""
-#: ../../include/attach.php:574
+#: ../../include/attach.php:612
msgid "No source file."
msgstr ""
-#: ../../include/attach.php:596
+#: ../../include/attach.php:634
msgid "Cannot locate file to replace"
msgstr ""
-#: ../../include/attach.php:615
+#: ../../include/attach.php:653
msgid "Cannot locate file to revise/update"
msgstr ""
-#: ../../include/attach.php:759
+#: ../../include/attach.php:795
#, php-format
msgid "File exceeds size limit of %d"
msgstr ""
-#: ../../include/attach.php:780
+#: ../../include/attach.php:816
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr ""
-#: ../../include/attach.php:968
+#: ../../include/attach.php:1004
msgid "File upload failed. Possible system limit or action terminated."
msgstr ""
-#: ../../include/attach.php:997
+#: ../../include/attach.php:1033
msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../include/attach.php:1069 ../../include/attach.php:1085
+#: ../../include/attach.php:1105 ../../include/attach.php:1121
msgid "Path not available."
msgstr ""
-#: ../../include/attach.php:1134 ../../include/attach.php:1297
+#: ../../include/attach.php:1169 ../../include/attach.php:1332
msgid "Empty pathname"
msgstr ""
-#: ../../include/attach.php:1160
+#: ../../include/attach.php:1195
msgid "duplicate filename or path"
msgstr ""
-#: ../../include/attach.php:1185
+#: ../../include/attach.php:1220
msgid "Path not found."
msgstr ""
-#: ../../include/attach.php:1253
+#: ../../include/attach.php:1288
msgid "mkdir failed."
msgstr ""
-#: ../../include/attach.php:1257
+#: ../../include/attach.php:1292
msgid "database storage failed."
msgstr ""
-#: ../../include/attach.php:1303
+#: ../../include/attach.php:1338
msgid "Empty path"
msgstr ""
-#: ../../include/attach.php:2035
+#: ../../include/attach.php:2099
#, php-format
msgid "%s shared a %s with you"
msgstr ""
@@ -6814,8 +6827,8 @@ msgstr ""
msgid "%1$s's bookmarks"
msgstr ""
-#: ../../include/menu.php:120 ../../include/channel.php:1524
-#: ../../include/channel.php:1528 ../../Zotlabs/Widget/Cdav.php:138
+#: ../../include/menu.php:120 ../../include/channel.php:1538
+#: ../../include/channel.php:1542 ../../Zotlabs/Widget/Cdav.php:138
#: ../../Zotlabs/Widget/Cdav.php:175 ../../Zotlabs/Module/Article_edit.php:98
#: ../../Zotlabs/Module/Group.php:253 ../../Zotlabs/Module/Card_edit.php:99
#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Module/Editwebpage.php:142
@@ -6829,7 +6842,7 @@ msgstr ""
#: ../../Zotlabs/Module/Oauth2.php:194 ../../Zotlabs/Module/Thing.php:268
#: ../../Zotlabs/Module/Wiki.php:211 ../../Zotlabs/Module/Wiki.php:384
#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Lib/Apps.php:557
-#: ../../Zotlabs/Lib/ThreadItem.php:148 ../../Zotlabs/Storage/Browser.php:296
+#: ../../Zotlabs/Lib/ThreadItem.php:148
msgid "Edit"
msgstr ""
@@ -6951,187 +6964,187 @@ msgstr ""
msgid "Unable to retrieve modified identity"
msgstr ""
-#: ../../include/channel.php:1371
+#: ../../include/channel.php:1385
msgid "Requested channel is not available."
msgstr ""
-#: ../../include/channel.php:1517 ../../Zotlabs/Module/Profiles.php:730
+#: ../../include/channel.php:1531 ../../Zotlabs/Module/Profiles.php:730
msgid "Change profile photo"
msgstr ""
-#: ../../include/channel.php:1525
+#: ../../include/channel.php:1539
msgid "Create New Profile"
msgstr ""
-#: ../../include/channel.php:1543 ../../Zotlabs/Module/Profiles.php:822
+#: ../../include/channel.php:1557 ../../Zotlabs/Module/Profiles.php:822
msgid "Profile Image"
msgstr ""
-#: ../../include/channel.php:1546
+#: ../../include/channel.php:1560
msgid "Visible to everybody"
msgstr ""
-#: ../../include/channel.php:1547 ../../Zotlabs/Module/Profiles.php:727
+#: ../../include/channel.php:1561 ../../Zotlabs/Module/Profiles.php:727
#: ../../Zotlabs/Module/Profiles.php:826
msgid "Edit visibility"
msgstr ""
-#: ../../include/channel.php:1623 ../../include/channel.php:1751
+#: ../../include/channel.php:1637 ../../include/channel.php:1765
msgid "Gender:"
msgstr ""
-#: ../../include/channel.php:1624 ../../include/channel.php:1795
+#: ../../include/channel.php:1638 ../../include/channel.php:1809
msgid "Status:"
msgstr ""
-#: ../../include/channel.php:1625 ../../include/channel.php:1819
+#: ../../include/channel.php:1639 ../../include/channel.php:1833
msgid "Homepage:"
msgstr ""
-#: ../../include/channel.php:1626
+#: ../../include/channel.php:1640
msgid "Online Now"
msgstr ""
-#: ../../include/channel.php:1679
+#: ../../include/channel.php:1693
msgid "Change your profile photo"
msgstr ""
-#: ../../include/channel.php:1710
+#: ../../include/channel.php:1724
msgid "Trans"
msgstr ""
-#: ../../include/channel.php:1749 ../../Zotlabs/Module/Settings/Channel.php:501
+#: ../../include/channel.php:1763 ../../Zotlabs/Module/Settings/Channel.php:501
msgid "Full Name:"
msgstr ""
-#: ../../include/channel.php:1756
+#: ../../include/channel.php:1770
msgid "Like this channel"
msgstr ""
-#: ../../include/channel.php:1780
+#: ../../include/channel.php:1794
msgid "j F, Y"
msgstr ""
-#: ../../include/channel.php:1781
+#: ../../include/channel.php:1795
msgid "j F"
msgstr ""
-#: ../../include/channel.php:1788
+#: ../../include/channel.php:1802
msgid "Birthday:"
msgstr ""
-#: ../../include/channel.php:1792 ../../Zotlabs/Module/Directory.php:347
+#: ../../include/channel.php:1806 ../../Zotlabs/Module/Directory.php:347
msgid "Age:"
msgstr ""
-#: ../../include/channel.php:1801
+#: ../../include/channel.php:1815
#, php-format
msgid "for %1$d %2$s"
msgstr ""
-#: ../../include/channel.php:1813
+#: ../../include/channel.php:1827
msgid "Tags:"
msgstr ""
-#: ../../include/channel.php:1817
+#: ../../include/channel.php:1831
msgid "Sexual Preference:"
msgstr ""
-#: ../../include/channel.php:1821 ../../Zotlabs/Module/Directory.php:365
+#: ../../include/channel.php:1835 ../../Zotlabs/Module/Directory.php:365
msgid "Hometown:"
msgstr ""
-#: ../../include/channel.php:1823
+#: ../../include/channel.php:1837
msgid "Political Views:"
msgstr ""
-#: ../../include/channel.php:1825
+#: ../../include/channel.php:1839
msgid "Religion:"
msgstr ""
-#: ../../include/channel.php:1827 ../../Zotlabs/Module/Directory.php:367
+#: ../../include/channel.php:1841 ../../Zotlabs/Module/Directory.php:367
msgid "About:"
msgstr ""
-#: ../../include/channel.php:1829
+#: ../../include/channel.php:1843
msgid "Hobbies/Interests:"
msgstr ""
-#: ../../include/channel.php:1831
+#: ../../include/channel.php:1845
msgid "Likes:"
msgstr ""
-#: ../../include/channel.php:1833
+#: ../../include/channel.php:1847
msgid "Dislikes:"
msgstr ""
-#: ../../include/channel.php:1835
+#: ../../include/channel.php:1849
msgid "Contact information and Social Networks:"
msgstr ""
-#: ../../include/channel.php:1837
+#: ../../include/channel.php:1851
msgid "My other channels:"
msgstr ""
-#: ../../include/channel.php:1839
+#: ../../include/channel.php:1853
msgid "Musical interests:"
msgstr ""
-#: ../../include/channel.php:1841
+#: ../../include/channel.php:1855
msgid "Books, literature:"
msgstr ""
-#: ../../include/channel.php:1843
+#: ../../include/channel.php:1857
msgid "Television:"
msgstr ""
-#: ../../include/channel.php:1845
+#: ../../include/channel.php:1859
msgid "Film/dance/culture/entertainment:"
msgstr ""
-#: ../../include/channel.php:1847
+#: ../../include/channel.php:1861
msgid "Love/Romance:"
msgstr ""
-#: ../../include/channel.php:1849
+#: ../../include/channel.php:1863
msgid "Work/employment:"
msgstr ""
-#: ../../include/channel.php:1851
+#: ../../include/channel.php:1865
msgid "School/education:"
msgstr ""
-#: ../../include/channel.php:1872 ../../Zotlabs/Module/Profperm.php:113
+#: ../../include/channel.php:1886 ../../Zotlabs/Module/Profperm.php:113
#: ../../Zotlabs/Lib/Apps.php:362
msgid "Profile"
msgstr ""
-#: ../../include/channel.php:1874
+#: ../../include/channel.php:1888
msgid "Like this thing"
msgstr ""
-#: ../../include/channel.php:1875 ../../Zotlabs/Module/Events.php:699
+#: ../../include/channel.php:1889 ../../Zotlabs/Module/Events.php:699
msgid "Export"
msgstr ""
-#: ../../include/channel.php:2314 ../../Zotlabs/Module/Cover_photo.php:304
+#: ../../include/channel.php:2328 ../../Zotlabs/Module/Cover_photo.php:304
msgid "cover photo"
msgstr ""
-#: ../../include/channel.php:2603 ../../Zotlabs/Module/Rmagic.php:96
-#: ../../boot.php:1699
+#: ../../include/channel.php:2597 ../../Zotlabs/Module/Rmagic.php:96
+#: ../../boot.php:1700
msgid "Remote Authentication"
msgstr ""
-#: ../../include/channel.php:2604 ../../Zotlabs/Module/Rmagic.php:97
+#: ../../include/channel.php:2598 ../../Zotlabs/Module/Rmagic.php:97
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr ""
-#: ../../include/channel.php:2605 ../../Zotlabs/Module/Rmagic.php:98
+#: ../../include/channel.php:2599 ../../Zotlabs/Module/Rmagic.php:98
msgid "Authenticate"
msgstr ""
-#: ../../include/channel.php:2763 ../../Zotlabs/Module/Admin/Accounts.php:91
+#: ../../include/channel.php:2757 ../../Zotlabs/Module/Admin/Accounts.php:91
#, php-format
msgid "Account '%s' deleted"
msgstr ""
@@ -7141,49 +7154,49 @@ msgstr ""
msgid "Visible to your default audience"
msgstr ""
-#: ../../include/acl_selectors.php:100
+#: ../../include/acl_selectors.php:99
msgid "Profile-Based Privacy Groups"
msgstr ""
-#: ../../include/acl_selectors.php:113 ../../Zotlabs/Widget/Forums.php:100
+#: ../../include/acl_selectors.php:118
+msgid "Private Forum"
+msgstr ""
+
+#: ../../include/acl_selectors.php:124 ../../Zotlabs/Widget/Forums.php:100
#: ../../Zotlabs/Widget/Activity_filter.php:115
#: ../../Zotlabs/Widget/Notifications.php:139
#: ../../Zotlabs/Widget/Notifications.php:140
msgid "Forums"
msgstr ""
-#: ../../include/acl_selectors.php:115
-msgid "Private Forum"
-msgstr ""
-
-#: ../../include/acl_selectors.php:126
+#: ../../include/acl_selectors.php:135
#: ../../Zotlabs/Lib/PermissionDescription.php:107
msgid "Only me"
msgstr ""
-#: ../../include/acl_selectors.php:133
+#: ../../include/acl_selectors.php:142
msgid "Share with"
msgstr ""
-#: ../../include/acl_selectors.php:134
+#: ../../include/acl_selectors.php:143
msgid "Custom selection"
msgstr ""
-#: ../../include/acl_selectors.php:136
+#: ../../include/acl_selectors.php:145
msgid ""
"Select \"Allow\" to allow viewing. \"Don't allow\" lets you override and "
"limit the scope of \"Allow\"."
msgstr ""
-#: ../../include/acl_selectors.php:137 ../../Zotlabs/Module/Authorize.php:32
+#: ../../include/acl_selectors.php:146 ../../Zotlabs/Module/Authorize.php:32
msgid "Allow"
msgstr ""
-#: ../../include/acl_selectors.php:138
+#: ../../include/acl_selectors.php:147
msgid "Don't allow"
msgstr ""
-#: ../../include/acl_selectors.php:171
+#: ../../include/acl_selectors.php:180
#, php-format
msgid ""
"Post permissions %s cannot be changed %s after a post is shared.</br />These "
@@ -7210,23 +7223,23 @@ msgstr ""
msgid "Embedding disabled"
msgstr ""
-#: ../../include/dir_fns.php:140 ../../Zotlabs/Lib/Libzotdir.php:160
+#: ../../include/dir_fns.php:140 ../../Zotlabs/Lib/Libzotdir.php:162
msgid "Directory Options"
msgstr ""
-#: ../../include/dir_fns.php:142 ../../Zotlabs/Lib/Libzotdir.php:162
+#: ../../include/dir_fns.php:142 ../../Zotlabs/Lib/Libzotdir.php:164
msgid "Safe Mode"
msgstr ""
-#: ../../include/dir_fns.php:143 ../../Zotlabs/Lib/Libzotdir.php:163
+#: ../../include/dir_fns.php:143 ../../Zotlabs/Lib/Libzotdir.php:165
msgid "Public Forums Only"
msgstr ""
-#: ../../include/dir_fns.php:144 ../../Zotlabs/Lib/Libzotdir.php:165
+#: ../../include/dir_fns.php:144 ../../Zotlabs/Lib/Libzotdir.php:167
msgid "This Website Only"
msgstr ""
-#: ../../include/zid.php:364
+#: ../../include/zid.php:360
#, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr ""
@@ -7298,13 +7311,13 @@ msgid "Page name"
msgstr ""
#: ../../Zotlabs/Widget/Album.php:78 ../../Zotlabs/Widget/Portfolio.php:87
-#: ../../Zotlabs/Module/Embedphotos.php:170 ../../Zotlabs/Module/Photos.php:786
-#: ../../Zotlabs/Module/Photos.php:1332
+#: ../../Zotlabs/Module/Embedphotos.php:170 ../../Zotlabs/Module/Photos.php:787
+#: ../../Zotlabs/Module/Photos.php:1333
msgid "View Photo"
msgstr ""
#: ../../Zotlabs/Widget/Album.php:95 ../../Zotlabs/Widget/Portfolio.php:108
-#: ../../Zotlabs/Module/Embedphotos.php:186 ../../Zotlabs/Module/Photos.php:817
+#: ../../Zotlabs/Module/Embedphotos.php:186 ../../Zotlabs/Module/Photos.php:818
msgid "Edit Album"
msgstr ""
@@ -7312,8 +7325,8 @@ msgstr ""
#: ../../Zotlabs/Widget/Cdav.php:182 ../../Zotlabs/Widget/Portfolio.php:110
#: ../../Zotlabs/Module/Embedphotos.php:188
#: ../../Zotlabs/Module/Profile_photo.php:500
-#: ../../Zotlabs/Module/Cover_photo.php:423 ../../Zotlabs/Module/Photos.php:687
-#: ../../Zotlabs/Storage/Browser.php:398
+#: ../../Zotlabs/Module/Cover_photo.php:423 ../../Zotlabs/Module/Photos.php:688
+#: ../../Zotlabs/Storage/Browser.php:533
msgid "Upload"
msgstr ""
@@ -7428,7 +7441,7 @@ msgid "Channel Calendar"
msgstr ""
#: ../../Zotlabs/Widget/Cdav.php:129 ../../Zotlabs/Widget/Cdav.php:143
-#: ../../Zotlabs/Module/Cdav.php:1051
+#: ../../Zotlabs/Module/Cdav.php:1055
msgid "CalDAV Calendars"
msgstr ""
@@ -7449,13 +7462,13 @@ msgid "Create new CalDAV calendar"
msgstr ""
#: ../../Zotlabs/Widget/Cdav.php:140 ../../Zotlabs/Widget/Cdav.php:178
-#: ../../Zotlabs/Module/Cdav.php:1055 ../../Zotlabs/Module/Cdav.php:1383
+#: ../../Zotlabs/Module/Cdav.php:1059 ../../Zotlabs/Module/Cdav.php:1387
#: ../../Zotlabs/Module/Webpages.php:254
#: ../../Zotlabs/Module/New_channel.php:189 ../../Zotlabs/Module/Cards.php:113
#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Profiles.php:800
#: ../../Zotlabs/Module/Articles.php:117 ../../Zotlabs/Module/Menu.php:182
-#: ../../Zotlabs/Module/Connedit.php:941 ../../Zotlabs/Module/Layouts.php:185
-#: ../../Zotlabs/Storage/Browser.php:282 ../../Zotlabs/Storage/Browser.php:396
+#: ../../Zotlabs/Module/Connedit.php:930 ../../Zotlabs/Module/Layouts.php:185
+#: ../../Zotlabs/Storage/Browser.php:358 ../../Zotlabs/Storage/Browser.php:531
msgid "Create"
msgstr ""
@@ -7467,7 +7480,7 @@ msgstr ""
msgid "Calendar Tools"
msgstr ""
-#: ../../Zotlabs/Widget/Cdav.php:143 ../../Zotlabs/Module/Cdav.php:1051
+#: ../../Zotlabs/Widget/Cdav.php:143 ../../Zotlabs/Module/Cdav.php:1055
msgid "Channel Calendars"
msgstr ""
@@ -7604,7 +7617,7 @@ msgstr ""
msgid "photo/image"
msgstr ""
-#: ../../Zotlabs/Widget/Admin.php:22 ../../Zotlabs/Module/Admin/Site.php:286
+#: ../../Zotlabs/Widget/Admin.php:22 ../../Zotlabs/Module/Admin/Site.php:292
msgid "Site"
msgstr ""
@@ -7864,25 +7877,25 @@ msgid "View public stream"
msgstr ""
#: ../../Zotlabs/Widget/Newmember.php:75
-#: ../../Zotlabs/Module/Settings/Display.php:206
+#: ../../Zotlabs/Module/Settings/Display.php:203
msgid "New Member Links"
msgstr ""
-#: ../../Zotlabs/Widget/Affinity.php:30 ../../Zotlabs/Module/Connedit.php:726
+#: ../../Zotlabs/Widget/Affinity.php:30 ../../Zotlabs/Module/Connedit.php:715
msgid "Me"
msgstr ""
-#: ../../Zotlabs/Widget/Affinity.php:31 ../../Zotlabs/Module/Connedit.php:727
+#: ../../Zotlabs/Widget/Affinity.php:31 ../../Zotlabs/Module/Connedit.php:716
msgid "Family"
msgstr ""
-#: ../../Zotlabs/Widget/Affinity.php:33 ../../Zotlabs/Module/Connedit.php:729
+#: ../../Zotlabs/Widget/Affinity.php:33 ../../Zotlabs/Module/Connedit.php:718
msgid "Acquaintances"
msgstr ""
#: ../../Zotlabs/Widget/Affinity.php:34 ../../Zotlabs/Module/Connections.php:97
#: ../../Zotlabs/Module/Connections.php:111
-#: ../../Zotlabs/Module/Connedit.php:730
+#: ../../Zotlabs/Module/Connedit.php:719
msgid "All"
msgstr ""
@@ -8026,7 +8039,7 @@ msgid "New Registrations Notifications"
msgstr ""
#: ../../Zotlabs/Widget/Notifications.php:162
-#: ../../Zotlabs/Module/Pubstream.php:114 ../../Zotlabs/Lib/Apps.php:375
+#: ../../Zotlabs/Module/Pubstream.php:105 ../../Zotlabs/Lib/Apps.php:375
msgid "Public Stream"
msgstr ""
@@ -8093,27 +8106,27 @@ msgstr ""
msgid "Expires (yyyy-mm-dd)"
msgstr ""
-#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:910
+#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:899
msgid "Their Settings"
msgstr ""
#: ../../Zotlabs/Module/Tokens.php:181 ../../Zotlabs/Module/Permcats.php:122
-#: ../../Zotlabs/Module/Defperms.php:267 ../../Zotlabs/Module/Connedit.php:911
+#: ../../Zotlabs/Module/Defperms.php:267 ../../Zotlabs/Module/Connedit.php:900
msgid "My Settings"
msgstr ""
#: ../../Zotlabs/Module/Tokens.php:183 ../../Zotlabs/Module/Permcats.php:124
-#: ../../Zotlabs/Module/Defperms.php:265 ../../Zotlabs/Module/Connedit.php:906
+#: ../../Zotlabs/Module/Defperms.php:265 ../../Zotlabs/Module/Connedit.php:895
msgid "inherited"
msgstr ""
#: ../../Zotlabs/Module/Tokens.php:186 ../../Zotlabs/Module/Permcats.php:127
-#: ../../Zotlabs/Module/Defperms.php:270 ../../Zotlabs/Module/Connedit.php:913
+#: ../../Zotlabs/Module/Defperms.php:270 ../../Zotlabs/Module/Connedit.php:902
msgid "Individual Permissions"
msgstr ""
#: ../../Zotlabs/Module/Tokens.php:187 ../../Zotlabs/Module/Permcats.php:128
-#: ../../Zotlabs/Module/Connedit.php:914
+#: ../../Zotlabs/Module/Connedit.php:903
msgid ""
"Some permissions may be inherited from your channel's <a href=\"settings"
"\"><strong>privacy settings</strong></a>, which have higher priority than "
@@ -8130,10 +8143,11 @@ msgid "Item not found"
msgstr ""
#: ../../Zotlabs/Module/Article_edit.php:44
+#: ../../Zotlabs/Module/Attach_edit.php:52
#: ../../Zotlabs/Module/Wall_upload.php:31
#: ../../Zotlabs/Module/Card_edit.php:44 ../../Zotlabs/Module/Chanview.php:95
-#: ../../Zotlabs/Module/Cal.php:31 ../../Zotlabs/Module/Page.php:75
-#: ../../Zotlabs/Module/Block.php:41
+#: ../../Zotlabs/Module/Cal.php:31 ../../Zotlabs/Module/Attach.php:21
+#: ../../Zotlabs/Module/Page.php:75 ../../Zotlabs/Module/Block.php:41
msgid "Channel not found."
msgstr ""
@@ -8141,29 +8155,43 @@ msgstr ""
msgid "Edit Article"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:110
+#: ../../Zotlabs/Module/Attach_edit.php:69
+#: ../../Zotlabs/Module/Filestorage.php:109
+msgid "File not found."
+msgstr ""
+
+#: ../../Zotlabs/Module/Attach_edit.php:118
+msgid "Can not copy folder into itself."
+msgstr ""
+
+#: ../../Zotlabs/Module/Attach_edit.php:131
+#, php-format
+msgid "Can not move folder \"%s\" into itself."
+msgstr ""
+
+#: ../../Zotlabs/Module/Network.php:105
msgid "No such group"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:157
+#: ../../Zotlabs/Module/Network.php:152
msgid "No such channel"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:169 ../../Zotlabs/Module/Channel.php:195
+#: ../../Zotlabs/Module/Network.php:164 ../../Zotlabs/Module/Channel.php:189
msgid "Search Results For:"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:210 ../../Zotlabs/Module/Channel.php:230
-#: ../../Zotlabs/Module/Hq.php:134 ../../Zotlabs/Module/Pubstream.php:99
-#: ../../Zotlabs/Module/Display.php:79
+#: ../../Zotlabs/Module/Network.php:205 ../../Zotlabs/Module/Channel.php:224
+#: ../../Zotlabs/Module/Hq.php:125 ../../Zotlabs/Module/Pubstream.php:95
+#: ../../Zotlabs/Module/Display.php:76
msgid "Reset form"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:246
+#: ../../Zotlabs/Module/Network.php:239
msgid "Privacy group is empty"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:256
+#: ../../Zotlabs/Module/Network.php:249
msgid "Privacy group: "
msgstr ""
@@ -8198,7 +8226,7 @@ msgid "Use this form to import existing posts and content from an export file."
msgstr ""
#: ../../Zotlabs/Module/Import_items.php:127
-#: ../../Zotlabs/Module/Import.php:632
+#: ../../Zotlabs/Module/Import.php:628
msgid "File to Upload"
msgstr ""
@@ -8211,42 +8239,42 @@ msgstr ""
msgid "No channel. Import failed."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:625
+#: ../../Zotlabs/Module/Import.php:621
msgid "You must be logged in to use this feature."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:630
+#: ../../Zotlabs/Module/Import.php:626
msgid "Import Channel"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:631
+#: ../../Zotlabs/Module/Import.php:627
msgid ""
"Use this form to import an existing channel from a different server/hub. You "
"may retrieve the channel identity from the old server/hub via the network or "
"provide an export file."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:633
+#: ../../Zotlabs/Module/Import.php:629
msgid "Or provide the old server/hub details"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:635
+#: ../../Zotlabs/Module/Import.php:631
msgid "Your old identity address (xyz@example.com)"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:636
+#: ../../Zotlabs/Module/Import.php:632
msgid "Your old login email address"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:637
+#: ../../Zotlabs/Module/Import.php:633
msgid "Your old login password"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:638
+#: ../../Zotlabs/Module/Import.php:634
msgid "Import a few months of posts if possible (limited by available memory"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:640
+#: ../../Zotlabs/Module/Import.php:636
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be "
@@ -8254,25 +8282,25 @@ msgid ""
"location for files, photos, and media."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:642
+#: ../../Zotlabs/Module/Import.php:638
msgid "Make this hub my primary location"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:643
+#: ../../Zotlabs/Module/Import.php:639
msgid "Move this channel (disable all previous locations)"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:644
+#: ../../Zotlabs/Module/Import.php:640
msgid "Use this channel nickname instead of the one provided"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:644
+#: ../../Zotlabs/Module/Import.php:640
msgid ""
"Leave blank to keep your existing channel nickname. You will be randomly "
"assigned a similar nickname if either name is already allocated on this site."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:646
+#: ../../Zotlabs/Module/Import.php:642
msgid ""
"This process may take several minutes to complete. Please submit the form "
"only once and leave this page open until finished."
@@ -8427,7 +8455,7 @@ msgid "yes"
msgstr ""
#: ../../Zotlabs/Module/Register.php:277
-#: ../../Zotlabs/Module/Admin/Site.php:288
+#: ../../Zotlabs/Module/Admin/Site.php:294
msgid "Registration"
msgstr ""
@@ -8439,18 +8467,18 @@ msgstr ""
#: ../../Zotlabs/Module/Search.php:17
#: ../../Zotlabs/Module/Viewconnections.php:23
-#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Display.php:29
+#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Display.php:26
#: ../../Zotlabs/Module/Directory.php:71 ../../Zotlabs/Module/Directory.php:76
-#: ../../Zotlabs/Module/Photos.php:518
+#: ../../Zotlabs/Module/Photos.php:519
msgid "Public access denied."
msgstr ""
-#: ../../Zotlabs/Module/Search.php:231
+#: ../../Zotlabs/Module/Search.php:222
#, php-format
msgid "Items tagged with: %s"
msgstr ""
-#: ../../Zotlabs/Module/Search.php:233
+#: ../../Zotlabs/Module/Search.php:224
#, php-format
msgid "Search results for: %s"
msgstr ""
@@ -8492,9 +8520,9 @@ msgstr ""
msgid "System check"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:260 ../../Zotlabs/Module/Cdav.php:1032
+#: ../../Zotlabs/Module/Setup.php:260 ../../Zotlabs/Module/Cdav.php:1036
#: ../../Zotlabs/Module/Events.php:698 ../../Zotlabs/Module/Events.php:707
-#: ../../Zotlabs/Module/Cal.php:206 ../../Zotlabs/Module/Photos.php:955
+#: ../../Zotlabs/Module/Cal.php:206 ../../Zotlabs/Module/Photos.php:956
msgid "Next"
msgstr ""
@@ -8963,11 +8991,11 @@ msgstr ""
msgid "Only posts"
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:178
+#: ../../Zotlabs/Module/Channel.php:174
msgid "Insufficient permissions. Request redirected to profile page."
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:465 ../../Zotlabs/Module/Display.php:376
+#: ../../Zotlabs/Module/Channel.php:449 ../../Zotlabs/Module/Display.php:359
msgid ""
"You must enable javascript for your browser to be able to view this content."
msgstr ""
@@ -9134,10 +9162,10 @@ msgid "Key and Secret are required"
msgstr ""
#: ../../Zotlabs/Module/Oauth.php:53 ../../Zotlabs/Module/Oauth.php:137
-#: ../../Zotlabs/Module/Cdav.php:1049 ../../Zotlabs/Module/Cdav.php:1384
+#: ../../Zotlabs/Module/Cdav.php:1053 ../../Zotlabs/Module/Cdav.php:1388
#: ../../Zotlabs/Module/Admin/Addons.php:457
#: ../../Zotlabs/Module/Profiles.php:801 ../../Zotlabs/Module/Oauth2.php:58
-#: ../../Zotlabs/Module/Oauth2.php:144 ../../Zotlabs/Module/Connedit.php:942
+#: ../../Zotlabs/Module/Oauth2.php:144 ../../Zotlabs/Module/Connedit.php:931
#: ../../Zotlabs/Lib/Apps.php:536
msgid "Update"
msgstr ""
@@ -9222,15 +9250,15 @@ msgstr ""
msgid "This directory server requires an access token"
msgstr ""
-#: ../../Zotlabs/Module/Hq.php:140
+#: ../../Zotlabs/Module/Hq.php:131
msgid "Welcome to Hubzilla!"
msgstr ""
-#: ../../Zotlabs/Module/Hq.php:140
+#: ../../Zotlabs/Module/Hq.php:131
msgid "You have got no unseen posts..."
msgstr ""
-#: ../../Zotlabs/Module/Pin.php:35 ../../Zotlabs/Module/Item.php:448
+#: ../../Zotlabs/Module/Pin.php:35 ../../Zotlabs/Module/Item.php:450
msgid "Unable to locate original post."
msgstr ""
@@ -9335,7 +9363,7 @@ msgid "Delete event"
msgstr ""
#: ../../Zotlabs/Module/Channel_calendar.php:393
-#: ../../Zotlabs/Module/Cdav.php:939 ../../Zotlabs/Module/Cal.php:167
+#: ../../Zotlabs/Module/Cdav.php:943 ../../Zotlabs/Module/Cal.php:167
msgid "Link to source"
msgstr ""
@@ -9349,57 +9377,57 @@ msgstr ""
msgid "Failed to remove event"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:57
+#: ../../Zotlabs/Module/Like.php:93
msgid "Like/Dislike"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:62
+#: ../../Zotlabs/Module/Like.php:98
msgid "This action is restricted to members."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:63
+#: ../../Zotlabs/Module/Like.php:99
msgid ""
"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a href="
"\"register\">register as a new $Projectname member</a> to continue."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:117 ../../Zotlabs/Module/Like.php:143
-#: ../../Zotlabs/Module/Like.php:181
+#: ../../Zotlabs/Module/Like.php:154 ../../Zotlabs/Module/Like.php:180
+#: ../../Zotlabs/Module/Like.php:218
msgid "Invalid request."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:158
+#: ../../Zotlabs/Module/Like.php:195
msgid "thing"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:204
+#: ../../Zotlabs/Module/Like.php:241
msgid "Channel unavailable."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:240
+#: ../../Zotlabs/Module/Like.php:277
msgid "Previous action reversed."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:426
+#: ../../Zotlabs/Module/Like.php:473
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:428
+#: ../../Zotlabs/Module/Like.php:475
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:430
+#: ../../Zotlabs/Module/Like.php:477
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:547
+#: ../../Zotlabs/Module/Like.php:592
msgid "Action completed."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:548
+#: ../../Zotlabs/Module/Like.php:593
msgid "Thank you."
msgstr ""
@@ -9435,168 +9463,168 @@ msgstr ""
msgid "Make this post private"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:814 ../../Zotlabs/Module/Events.php:28
+#: ../../Zotlabs/Module/Cdav.php:818 ../../Zotlabs/Module/Events.php:28
msgid "Calendar entries imported."
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:816 ../../Zotlabs/Module/Events.php:30
+#: ../../Zotlabs/Module/Cdav.php:820 ../../Zotlabs/Module/Events.php:30
msgid "No calendar entries found."
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:872
+#: ../../Zotlabs/Module/Cdav.php:876
msgid "CardDAV App"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:873
+#: ../../Zotlabs/Module/Cdav.php:877
msgid "CalDAV capable addressbook"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1005 ../../Zotlabs/Module/Events.php:468
+#: ../../Zotlabs/Module/Cdav.php:1009 ../../Zotlabs/Module/Events.php:468
msgid "Event title"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1006 ../../Zotlabs/Module/Events.php:474
+#: ../../Zotlabs/Module/Cdav.php:1010 ../../Zotlabs/Module/Events.php:474
msgid "Start date and time"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1007
+#: ../../Zotlabs/Module/Cdav.php:1011
msgid "End date and time"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1008 ../../Zotlabs/Module/Events.php:497
+#: ../../Zotlabs/Module/Cdav.php:1012 ../../Zotlabs/Module/Events.php:497
msgid "Timezone:"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1031 ../../Zotlabs/Module/Events.php:697
+#: ../../Zotlabs/Module/Cdav.php:1035 ../../Zotlabs/Module/Events.php:697
#: ../../Zotlabs/Module/Events.php:706 ../../Zotlabs/Module/Cal.php:205
-#: ../../Zotlabs/Module/Photos.php:946
+#: ../../Zotlabs/Module/Photos.php:947
msgid "Previous"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1033 ../../Zotlabs/Module/Events.php:708
+#: ../../Zotlabs/Module/Cdav.php:1037 ../../Zotlabs/Module/Events.php:708
#: ../../Zotlabs/Module/Cal.php:207
msgid "Today"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1034 ../../Zotlabs/Module/Events.php:703
+#: ../../Zotlabs/Module/Cdav.php:1038 ../../Zotlabs/Module/Events.php:703
msgid "Month"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1035 ../../Zotlabs/Module/Events.php:704
+#: ../../Zotlabs/Module/Cdav.php:1039 ../../Zotlabs/Module/Events.php:704
msgid "Week"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1036 ../../Zotlabs/Module/Events.php:705
+#: ../../Zotlabs/Module/Cdav.php:1040 ../../Zotlabs/Module/Events.php:705
msgid "Day"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1037
+#: ../../Zotlabs/Module/Cdav.php:1041
msgid "List month"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1038
+#: ../../Zotlabs/Module/Cdav.php:1042
msgid "List week"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1039
+#: ../../Zotlabs/Module/Cdav.php:1043
msgid "List day"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1047
+#: ../../Zotlabs/Module/Cdav.php:1051
msgid "More"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1048
+#: ../../Zotlabs/Module/Cdav.php:1052
msgid "Less"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1050
+#: ../../Zotlabs/Module/Cdav.php:1054
msgid "Select calendar"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1053
+#: ../../Zotlabs/Module/Cdav.php:1057
msgid "Delete all"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1056
+#: ../../Zotlabs/Module/Cdav.php:1060
msgid "Sorry! Editing of recurrent events is not yet implemented."
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1369 ../../Zotlabs/Module/Connedit.php:927
+#: ../../Zotlabs/Module/Cdav.php:1373 ../../Zotlabs/Module/Connedit.php:916
msgid "Organisation"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1371 ../../Zotlabs/Module/Profiles.php:788
-#: ../../Zotlabs/Module/Connedit.php:929
+#: ../../Zotlabs/Module/Cdav.php:1375 ../../Zotlabs/Module/Profiles.php:788
+#: ../../Zotlabs/Module/Connedit.php:918
msgid "Phone"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1373 ../../Zotlabs/Module/Profiles.php:790
-#: ../../Zotlabs/Module/Connedit.php:931
+#: ../../Zotlabs/Module/Cdav.php:1377 ../../Zotlabs/Module/Profiles.php:790
+#: ../../Zotlabs/Module/Connedit.php:920
msgid "Instant messenger"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1374 ../../Zotlabs/Module/Profiles.php:791
-#: ../../Zotlabs/Module/Connedit.php:932
+#: ../../Zotlabs/Module/Cdav.php:1378 ../../Zotlabs/Module/Profiles.php:791
+#: ../../Zotlabs/Module/Connedit.php:921
msgid "Website"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1375
+#: ../../Zotlabs/Module/Cdav.php:1379
#: ../../Zotlabs/Module/Admin/Channels.php:160
#: ../../Zotlabs/Module/Profiles.php:504 ../../Zotlabs/Module/Profiles.php:792
-#: ../../Zotlabs/Module/Connedit.php:933 ../../Zotlabs/Module/Locs.php:122
+#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Locs.php:129
msgid "Address"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1376 ../../Zotlabs/Module/Profiles.php:793
-#: ../../Zotlabs/Module/Connedit.php:934
+#: ../../Zotlabs/Module/Cdav.php:1380 ../../Zotlabs/Module/Profiles.php:793
+#: ../../Zotlabs/Module/Connedit.php:923
msgid "Note"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1381 ../../Zotlabs/Module/Profiles.php:798
-#: ../../Zotlabs/Module/Connedit.php:939
+#: ../../Zotlabs/Module/Cdav.php:1385 ../../Zotlabs/Module/Profiles.php:798
+#: ../../Zotlabs/Module/Connedit.php:928
msgid "Add Contact"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1382 ../../Zotlabs/Module/Profiles.php:799
-#: ../../Zotlabs/Module/Connedit.php:940
+#: ../../Zotlabs/Module/Cdav.php:1386 ../../Zotlabs/Module/Profiles.php:799
+#: ../../Zotlabs/Module/Connedit.php:929
msgid "Add Field"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1387 ../../Zotlabs/Module/Connedit.php:945
+#: ../../Zotlabs/Module/Cdav.php:1391 ../../Zotlabs/Module/Connedit.php:934
msgid "P.O. Box"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1388 ../../Zotlabs/Module/Connedit.php:946
+#: ../../Zotlabs/Module/Cdav.php:1392 ../../Zotlabs/Module/Connedit.php:935
msgid "Additional"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1389 ../../Zotlabs/Module/Connedit.php:947
+#: ../../Zotlabs/Module/Cdav.php:1393 ../../Zotlabs/Module/Connedit.php:936
msgid "Street"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1390 ../../Zotlabs/Module/Connedit.php:948
+#: ../../Zotlabs/Module/Cdav.php:1394 ../../Zotlabs/Module/Connedit.php:937
msgid "Locality"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1391 ../../Zotlabs/Module/Connedit.php:949
+#: ../../Zotlabs/Module/Cdav.php:1395 ../../Zotlabs/Module/Connedit.php:938
msgid "Region"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1392 ../../Zotlabs/Module/Connedit.php:950
+#: ../../Zotlabs/Module/Cdav.php:1396 ../../Zotlabs/Module/Connedit.php:939
msgid "ZIP Code"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1393 ../../Zotlabs/Module/Profiles.php:759
-#: ../../Zotlabs/Module/Connedit.php:951
+#: ../../Zotlabs/Module/Cdav.php:1397 ../../Zotlabs/Module/Profiles.php:759
+#: ../../Zotlabs/Module/Connedit.php:940
msgid "Country"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1452
+#: ../../Zotlabs/Module/Cdav.php:1456
msgid "Default Calendar"
msgstr ""
-#: ../../Zotlabs/Module/Cdav.php:1463
+#: ../../Zotlabs/Module/Cdav.php:1467
msgid "Default Addressbook"
msgstr ""
@@ -9614,32 +9642,32 @@ msgctxt "acl"
msgid "Profile"
msgstr ""
-#: ../../Zotlabs/Module/Item.php:734
+#: ../../Zotlabs/Module/Item.php:736
msgid "Empty post discarded."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1186
+#: ../../Zotlabs/Module/Item.php:1187
msgid "Duplicate post suppressed."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1331
+#: ../../Zotlabs/Module/Item.php:1332
msgid "System error. Post not saved."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1365
+#: ../../Zotlabs/Module/Item.php:1366
msgid "Your comment is awaiting approval."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1482
+#: ../../Zotlabs/Module/Item.php:1496
msgid "Unable to obtain post information from database."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1489
+#: ../../Zotlabs/Module/Item.php:1503
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1496
+#: ../../Zotlabs/Module/Item.php:1510
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr ""
@@ -9783,7 +9811,7 @@ msgid "NEW"
msgstr ""
#: ../../Zotlabs/Module/Sharedwithme.php:109
-#: ../../Zotlabs/Storage/Browser.php:294
+#: ../../Zotlabs/Storage/Browser.php:373
msgid "Last Modified"
msgstr ""
@@ -9885,44 +9913,47 @@ msgstr ""
msgid "Import complete."
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:103
-msgid "File not found."
+#: ../../Zotlabs/Module/Filestorage.php:14
+#: ../../Zotlabs/Module/Filestorage.php:53
+msgid "Deprecated!"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:152
+#: ../../Zotlabs/Module/Filestorage.php:157
msgid "Permission Denied."
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:185
+#: ../../Zotlabs/Module/Filestorage.php:190
msgid "Edit file permissions"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:198
+#: ../../Zotlabs/Module/Filestorage.php:203
msgid "Include all files and sub folders"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:199
+#: ../../Zotlabs/Module/Filestorage.php:204
msgid "Return to file list"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:201
+#: ../../Zotlabs/Module/Filestorage.php:206
+#: ../../Zotlabs/Storage/Browser.php:379
msgid "Copy/paste this code to attach file to a post"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:202
+#: ../../Zotlabs/Module/Filestorage.php:207
+#: ../../Zotlabs/Storage/Browser.php:380
msgid "Copy/paste this URL to link file from a web page"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:204
+#: ../../Zotlabs/Module/Filestorage.php:209
msgid "Share this file"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:205
+#: ../../Zotlabs/Module/Filestorage.php:210
msgid "Show URL to this file"
msgstr ""
-#: ../../Zotlabs/Module/Filestorage.php:206
-#: ../../Zotlabs/Storage/Browser.php:411
+#: ../../Zotlabs/Module/Filestorage.php:211
+#: ../../Zotlabs/Storage/Browser.php:545
msgid "Show in your contacts shared folder"
msgstr ""
@@ -9981,19 +10012,19 @@ msgstr ""
msgid "Restricted or Premium Channel"
msgstr ""
-#: ../../Zotlabs/Module/Cloud.php:116
+#: ../../Zotlabs/Module/Cloud.php:120
msgid "Not found"
msgstr ""
-#: ../../Zotlabs/Module/Cloud.php:122
+#: ../../Zotlabs/Module/Cloud.php:126
msgid "Please refresh page"
msgstr ""
-#: ../../Zotlabs/Module/Cloud.php:125
+#: ../../Zotlabs/Module/Cloud.php:129
msgid "Unknown error"
msgstr ""
-#: ../../Zotlabs/Module/Share.php:104 ../../Zotlabs/Lib/Activity.php:2119
+#: ../../Zotlabs/Module/Share.php:104 ../../Zotlabs/Lib/Activity.php:2133
#, php-format
msgid "&#x1f501; Repeated %1$s's %2$s"
msgstr ""
@@ -10002,7 +10033,7 @@ msgstr ""
msgid "Post repeated"
msgstr ""
-#: ../../Zotlabs/Module/Acl.php:361
+#: ../../Zotlabs/Module/Acl.php:368
msgid "network"
msgstr ""
@@ -10010,7 +10041,7 @@ msgstr ""
msgid "Item is not editable"
msgstr ""
-#: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Rpost.php:144
+#: ../../Zotlabs/Module/Editpost.php:109 ../../Zotlabs/Module/Rpost.php:150
msgid "Edit post"
msgstr ""
@@ -10095,7 +10126,7 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Themes.php:156
#: ../../Zotlabs/Module/Admin/Security.php:98
#: ../../Zotlabs/Module/Admin/Accounts.php:166
-#: ../../Zotlabs/Module/Admin/Site.php:285
+#: ../../Zotlabs/Module/Admin/Site.php:291
#: ../../Zotlabs/Module/Admin/Logs.php:82
#: ../../Zotlabs/Module/Admin/Channels.php:145
#: ../../Zotlabs/Module/Admin/Addons.php:342
@@ -10313,12 +10344,12 @@ msgid "No registrations."
msgstr ""
#: ../../Zotlabs/Module/Admin/Accounts.php:176
-#: ../../Zotlabs/Module/Connedit.php:639
+#: ../../Zotlabs/Module/Connedit.php:628
msgid "Block"
msgstr ""
#: ../../Zotlabs/Module/Admin/Accounts.php:177
-#: ../../Zotlabs/Module/Connedit.php:639
+#: ../../Zotlabs/Module/Connedit.php:628
msgid "Unblock"
msgstr ""
@@ -10358,420 +10389,430 @@ msgid ""
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:159
+#: ../../Zotlabs/Module/Admin/Site.php:165
msgid "Site settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:196
-#: ../../Zotlabs/Module/Settings/Display.php:120
+#: ../../Zotlabs/Module/Admin/Site.php:202
+#: ../../Zotlabs/Module/Settings/Display.php:118
#, php-format
msgid "%s - (Incompatible)"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:203
+#: ../../Zotlabs/Module/Admin/Site.php:209
msgid "mobile"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:205
+#: ../../Zotlabs/Module/Admin/Site.php:211
msgid "experimental"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:207
+#: ../../Zotlabs/Module/Admin/Site.php:213
msgid "unsupported"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:254
+#: ../../Zotlabs/Module/Admin/Site.php:260
msgid "Yes - with approval"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:260
+#: ../../Zotlabs/Module/Admin/Site.php:266
msgid "My site is not a public server"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Admin/Site.php:267
msgid "My site has paid access only"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:262
+#: ../../Zotlabs/Module/Admin/Site.php:268
msgid "My site has free access only"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:263
+#: ../../Zotlabs/Module/Admin/Site.php:269
msgid "My site offers free accounts with optional paid upgrades"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:277
+#: ../../Zotlabs/Module/Admin/Site.php:283
msgid "Default permission role for new accounts"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:277
+#: ../../Zotlabs/Module/Admin/Site.php:283
msgid ""
"This role will be used for the first channel created after registration."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:289
+#: ../../Zotlabs/Module/Admin/Site.php:295
msgid "File upload"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:290
+#: ../../Zotlabs/Module/Admin/Site.php:296
msgid "Policies"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:297
+#: ../../Zotlabs/Module/Admin/Site.php:303
msgid "Banner/Logo"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:297
+#: ../../Zotlabs/Module/Admin/Site.php:303
msgid "Unfiltered HTML/CSS/JS is allowed"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:298
+#: ../../Zotlabs/Module/Admin/Site.php:304
msgid "Administrator Information"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:298
+#: ../../Zotlabs/Module/Admin/Site.php:304
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:299 ../../Zotlabs/Module/Siteinfo.php:24
+#: ../../Zotlabs/Module/Admin/Site.php:305 ../../Zotlabs/Module/Siteinfo.php:24
msgid "Site Information"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:305
msgid ""
"Publicly visible description of this site. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:300
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "System language"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:307
msgid "System theme"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:307
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Allow Feeds as Connections"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "(Heavy system resource usage)"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid "Maximum image size"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:306
+#: ../../Zotlabs/Module/Admin/Site.php:312
msgid "Does this site allow new member registration?"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:313
msgid "Invitation only"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:313
msgid ""
"Only allow new member registrations with an invitation code. Above register "
"policy must be set to Yes."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:308
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid "Minimum age"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:308
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid "Minimum age (in years) for who may register on this site."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:309
+#: ../../Zotlabs/Module/Admin/Site.php:315
msgid "Which best describes the types of account offered by this hub?"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:309
+#: ../../Zotlabs/Module/Admin/Site.php:315
msgid "This is displayed on the public server site list."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:316
msgid "Register text"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:316
msgid "Will be displayed prominently on the registration page."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:312
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid "Site homepage to show visitors (default: login box)"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:312
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid ""
"example: 'pubstream' to show public stream, 'page/sys/home' to show a system "
"webpage called 'home' or 'include:home.html' to include a file."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:319
msgid "Preserve site homepage URL"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:319
msgid ""
"Present the site homepage in a frame at the original location instead of "
"redirecting"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid "Accounts abandoned after x days"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:315
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Allowed friend domains"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:315
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:322
msgid "Verify Email Addresses"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:322
msgid ""
"Check to verify email addresses used in account registration (recommended)."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Force publish"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid "Import Public Streams"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid ""
"Import and allow access to public content pulled from other sites. Warning: "
"this content is unmoderated."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid "Site only Public Streams"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid ""
"Allow access to public content originating only from this site if Imported "
"Public Streams are disabled."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid "Allow anybody on the internet to access the Public streams"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid ""
"Disable to require authentication before viewing. Warning: this content is "
"unmoderated."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid "Only import Public stream posts with this text"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:321
-#: ../../Zotlabs/Module/Admin/Site.php:322
-#: ../../Zotlabs/Module/Connedit.php:895 ../../Zotlabs/Module/Connedit.php:896
+#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:328
+#: ../../Zotlabs/Module/Connedit.php:884 ../../Zotlabs/Module/Connedit.php:885
msgid ""
"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
"all posts"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid "Do not import Public stream posts with this text"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid "Login on Homepage"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid ""
"Present a login box to visitors on the home page if no other content has "
"been configured."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid "Enable context help"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid ""
"Display contextual help for the current page when the help button is pressed."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:328
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid "Reply-to email address for system generated email."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:329
+#: ../../Zotlabs/Module/Admin/Site.php:335
msgid "Sender (From) email address for system generated email."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:330
+#: ../../Zotlabs/Module/Admin/Site.php:336
msgid "Name of email sender for system generated email."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:332
+#: ../../Zotlabs/Module/Admin/Site.php:338
msgid "Directory Server URL"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:332
+#: ../../Zotlabs/Module/Admin/Site.php:338
msgid "Default directory server"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:334
+#: ../../Zotlabs/Module/Admin/Site.php:340
+msgid "Enable SSE Notifications"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Site.php:340
+msgid ""
+"If disabled, traditional polling will be used. Warning: this setting might "
+"not be suited for shared hosting"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Site.php:342
msgid "Proxy user"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:335
+#: ../../Zotlabs/Module/Admin/Site.php:343
msgid "Proxy URL"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:336
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Network timeout"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:336
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid "Delivery interval"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:345
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 ""
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid "Deliveries per process"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid ""
"Number of deliveries to attempt in a single operating system process. Adjust "
"if necessary to tune system performance. Recommend: 1-5."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid "Queue Threshold"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid ""
"Always defer immediate delivery if queue contains more than this number of "
"entries."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid "Poll interval"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid "Path to ImageMagick convert program"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid ""
"If set, use this program to generate photo thumbnails for huge images ( > "
"4000 pixels in either dimension), otherwise memory exhaustion may occur. "
"Example: /usr/bin/convert"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "Maximum Load Average"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid "Expiration period in days for imported (grid/network) content"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid "0 for no expiration of imported content"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid ""
"Do not expire any posts which have comments less than this many days ago"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:346
+#: ../../Zotlabs/Module/Admin/Site.php:354
msgid ""
"Public servers: Optional landing (marketing) webpage for new registrants"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:346
+#: ../../Zotlabs/Module/Admin/Site.php:354
#, php-format
msgid "Create this page first. Default is %s/register"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:355
msgid "Page to display after creating a new channel"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:355
msgid "Default: profiles"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:349
+#: ../../Zotlabs/Module/Admin/Site.php:357
msgid "Optional: site location"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:349
+#: ../../Zotlabs/Module/Admin/Site.php:357
msgid "Region or country"
msgstr ""
@@ -11509,11 +11550,11 @@ msgid ""
"or restore these in date order (oldest first)."
msgstr ""
-#: ../../Zotlabs/Module/Display.php:394
+#: ../../Zotlabs/Module/Display.php:377
msgid "Article"
msgstr ""
-#: ../../Zotlabs/Module/Display.php:439
+#: ../../Zotlabs/Module/Display.php:422
msgid "Item has been removed."
msgstr ""
@@ -11617,11 +11658,11 @@ msgstr ""
msgid "shared a file with you"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:539
+#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:540
msgid "Private forum"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:539
+#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:540
msgid "Public forum"
msgstr ""
@@ -11945,7 +11986,7 @@ msgstr ""
msgid "Validation token"
msgstr ""
-#: ../../Zotlabs/Module/Attach.php:13
+#: ../../Zotlabs/Module/Attach.php:67
msgid "Item not available."
msgstr ""
@@ -12058,15 +12099,15 @@ msgstr ""
msgid "Edit Block"
msgstr ""
-#: ../../Zotlabs/Module/Filer.php:52
+#: ../../Zotlabs/Module/Filer.php:53
msgid "Enter a folder name"
msgstr ""
-#: ../../Zotlabs/Module/Filer.php:52
+#: ../../Zotlabs/Module/Filer.php:53
msgid "or select an existing folder (doubleclick)"
msgstr ""
-#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:184
+#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Lib/ThreadItem.php:184
msgid "Save to Folder"
msgstr ""
@@ -12200,7 +12241,7 @@ msgid "Ignore connection"
msgstr ""
#: ../../Zotlabs/Module/Connections.php:344
-#: ../../Zotlabs/Module/Connedit.php:647
+#: ../../Zotlabs/Module/Connedit.php:636
msgid "Ignore"
msgstr ""
@@ -12245,156 +12286,156 @@ msgstr ""
msgid "Delete Album"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:176 ../../Zotlabs/Module/Photos.php:1058
+#: ../../Zotlabs/Module/Photos.php:176 ../../Zotlabs/Module/Photos.php:1059
msgid "Delete Photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:529
+#: ../../Zotlabs/Module/Photos.php:530
msgid "No photos selected"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:578
+#: ../../Zotlabs/Module/Photos.php:579
msgid "Access to this item is restricted."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:621
+#: ../../Zotlabs/Module/Photos.php:622
#, php-format
msgid "%1$.2f MB of %2$.2f MB photo storage used."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:624
+#: ../../Zotlabs/Module/Photos.php:625
#, php-format
msgid "%1$.2f MB photo storage used."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:666
+#: ../../Zotlabs/Module/Photos.php:667
msgid "Upload Photos"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:670
+#: ../../Zotlabs/Module/Photos.php:671
msgid "Enter an album name"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:671
+#: ../../Zotlabs/Module/Photos.php:672
msgid "or select an existing album (doubleclick)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:672
+#: ../../Zotlabs/Module/Photos.php:673
msgid "Create a status post for this upload"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:674
+#: ../../Zotlabs/Module/Photos.php:675
msgid "Description (optional)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:760
+#: ../../Zotlabs/Module/Photos.php:761
msgid "Show Newest First"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:762
+#: ../../Zotlabs/Module/Photos.php:763
msgid "Show Oldest First"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:819 ../../Zotlabs/Module/Photos.php:1363
+#: ../../Zotlabs/Module/Photos.php:820 ../../Zotlabs/Module/Photos.php:1364
msgid "Add Photos"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:867
+#: ../../Zotlabs/Module/Photos.php:868
msgid "Permission denied. Access to this item may be restricted."
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:869
+#: ../../Zotlabs/Module/Photos.php:870
msgid "Photo not available"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:927
+#: ../../Zotlabs/Module/Photos.php:928
msgid "Use as profile photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:928
+#: ../../Zotlabs/Module/Photos.php:929
msgid "Use as cover photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:935
+#: ../../Zotlabs/Module/Photos.php:936
msgid "Private Photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:950
+#: ../../Zotlabs/Module/Photos.php:951
msgid "View Full Size"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1032
+#: ../../Zotlabs/Module/Photos.php:1033
msgid "Edit photo"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1034
+#: ../../Zotlabs/Module/Photos.php:1035
msgid "Rotate CW (right)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1035
+#: ../../Zotlabs/Module/Photos.php:1036
msgid "Rotate CCW (left)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1038
+#: ../../Zotlabs/Module/Photos.php:1039
msgid "Move photo to album"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1039
+#: ../../Zotlabs/Module/Photos.php:1040
msgid "Enter a new album name"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1040
+#: ../../Zotlabs/Module/Photos.php:1041
msgid "or select an existing one (doubleclick)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1045
+#: ../../Zotlabs/Module/Photos.php:1046
msgid "Add a Tag"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1053
+#: ../../Zotlabs/Module/Photos.php:1054
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1056
+#: ../../Zotlabs/Module/Photos.php:1057
msgid "Flag as adult in album view"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1075 ../../Zotlabs/Lib/ThreadItem.php:317
+#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:317
msgid "I like this (toggle)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:318
+#: ../../Zotlabs/Module/Photos.php:1077 ../../Zotlabs/Lib/ThreadItem.php:318
msgid "I don't like this (toggle)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1094 ../../Zotlabs/Module/Photos.php:1212
+#: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213
#: ../../Zotlabs/Lib/ThreadItem.php:822
msgid "This is you"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1131 ../../Zotlabs/Module/Photos.php:1143
+#: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144
#: ../../Zotlabs/Lib/ThreadItem.php:238 ../../Zotlabs/Lib/ThreadItem.php:250
msgid "View all"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1246
+#: ../../Zotlabs/Module/Photos.php:1247
msgid "Photo Tools"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1255
+#: ../../Zotlabs/Module/Photos.php:1256
msgid "In This Photo:"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1260
+#: ../../Zotlabs/Module/Photos.php:1261
msgid "Map"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1268 ../../Zotlabs/Lib/ThreadItem.php:489
+#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:489
msgctxt "noun"
msgid "Likes"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:490
+#: ../../Zotlabs/Module/Photos.php:1270 ../../Zotlabs/Lib/ThreadItem.php:490
msgctxt "noun"
msgid "Dislikes"
msgstr ""
@@ -12423,7 +12464,7 @@ msgid ""
"Password reset failed."
msgstr ""
-#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1707
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1708
msgid "Password Reset"
msgstr ""
@@ -13455,90 +13496,82 @@ msgstr ""
msgid "Calendar Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:129
+#: ../../Zotlabs/Module/Settings/Display.php:127
#, php-format
msgid "%s - (Experimental)"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:185
+#: ../../Zotlabs/Module/Settings/Display.php:183
msgid "Display Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:186
+#: ../../Zotlabs/Module/Settings/Display.php:184
msgid "Theme Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:187
+#: ../../Zotlabs/Module/Settings/Display.php:185
msgid "Custom Theme Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:188
+#: ../../Zotlabs/Module/Settings/Display.php:186
msgid "Content Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:194
+#: ../../Zotlabs/Module/Settings/Display.php:192
msgid "Display Theme:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:195
+#: ../../Zotlabs/Module/Settings/Display.php:193
msgid "Select scheme"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:197
+#: ../../Zotlabs/Module/Settings/Display.php:195
msgid "Preload images before rendering the page"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:197
+#: ../../Zotlabs/Module/Settings/Display.php:195
msgid ""
"The subjective page load time will be longer but the page will be ready when "
"displayed"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:198
+#: ../../Zotlabs/Module/Settings/Display.php:196
msgid "Enable user zoom on mobile devices"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:199
+#: ../../Zotlabs/Module/Settings/Display.php:197
msgid "Update browser every xx seconds"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:199
+#: ../../Zotlabs/Module/Settings/Display.php:197
msgid "Minimum of 10 seconds, no maximum"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:200
+#: ../../Zotlabs/Module/Settings/Display.php:198
msgid "Maximum number of conversations to load at any time:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:200
+#: ../../Zotlabs/Module/Settings/Display.php:198
msgid "Maximum of 30 items"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:201
+#: ../../Zotlabs/Module/Settings/Display.php:199
msgid "Show emoticons (smilies) as images"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:202
+#: ../../Zotlabs/Module/Settings/Display.php:200
msgid "Provide channel menu in navigation bar"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:202
+#: ../../Zotlabs/Module/Settings/Display.php:200
msgid "Default: channel menu located in app menu"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:203
-msgid "Manual conversation updates"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Display.php:203
-msgid "Default is on, turning this off may increase screen jumping"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Display.php:204
+#: ../../Zotlabs/Module/Settings/Display.php:201
msgid "Link post titles to source"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Display.php:206
+#: ../../Zotlabs/Module/Settings/Display.php:203
msgid "Display new member quick links menu"
msgstr ""
@@ -13610,7 +13643,7 @@ msgstr ""
msgid "Submit and proceed"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:177 ../../Zotlabs/Module/Locs.php:124
+#: ../../Zotlabs/Module/Menu.php:177 ../../Zotlabs/Module/Locs.php:131
msgid "Drop"
msgstr ""
@@ -13674,23 +13707,23 @@ msgstr ""
msgid "Set custom default permissions for new connections"
msgstr ""
-#: ../../Zotlabs/Module/Defperms.php:255 ../../Zotlabs/Module/Connedit.php:870
+#: ../../Zotlabs/Module/Defperms.php:255 ../../Zotlabs/Module/Connedit.php:859
msgid "Connection Default Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:871
+#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:860
msgid "Apply these permissions automatically"
msgstr ""
-#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:872
+#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:861
msgid "Permission role"
msgstr ""
-#: ../../Zotlabs/Module/Defperms.php:258 ../../Zotlabs/Module/Connedit.php:873
+#: ../../Zotlabs/Module/Defperms.php:258 ../../Zotlabs/Module/Connedit.php:862
msgid "Add permission role"
msgstr ""
-#: ../../Zotlabs/Module/Defperms.php:262 ../../Zotlabs/Module/Connedit.php:886
+#: ../../Zotlabs/Module/Defperms.php:262 ../../Zotlabs/Module/Connedit.php:875
msgid ""
"The permissions indicated on this page will be applied to all new "
"connections."
@@ -13951,7 +13984,7 @@ msgstr ""
msgid "Error downloading wiki: "
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:212
+#: ../../Zotlabs/Module/Wiki.php:212 ../../Zotlabs/Storage/Browser.php:397
msgid "Download"
msgstr ""
@@ -13963,7 +13996,7 @@ msgstr ""
msgid "Content type"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:219 ../../Zotlabs/Storage/Browser.php:292
+#: ../../Zotlabs/Module/Wiki.php:219 ../../Zotlabs/Storage/Browser.php:371
msgid "Type"
msgstr ""
@@ -14104,232 +14137,232 @@ msgstr ""
msgid "Failed to update connection record."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:320
+#: ../../Zotlabs/Module/Connedit.php:309
msgid "is now connected to"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:445
+#: ../../Zotlabs/Module/Connedit.php:434
msgid "Could not access address book record."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:493 ../../Zotlabs/Module/Connedit.php:497
+#: ../../Zotlabs/Module/Connedit.php:482 ../../Zotlabs/Module/Connedit.php:486
msgid "Refresh failed - channel is currently unavailable."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:512 ../../Zotlabs/Module/Connedit.php:521
-#: ../../Zotlabs/Module/Connedit.php:530 ../../Zotlabs/Module/Connedit.php:539
-#: ../../Zotlabs/Module/Connedit.php:552
+#: ../../Zotlabs/Module/Connedit.php:501 ../../Zotlabs/Module/Connedit.php:510
+#: ../../Zotlabs/Module/Connedit.php:519 ../../Zotlabs/Module/Connedit.php:528
+#: ../../Zotlabs/Module/Connedit.php:541
msgid "Unable to set address book parameters."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:571
+#: ../../Zotlabs/Module/Connedit.php:560
msgid "Connection has been removed."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:614
+#: ../../Zotlabs/Module/Connedit.php:603
#, php-format
msgid "View %s's profile"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:618
+#: ../../Zotlabs/Module/Connedit.php:607
msgid "Refresh Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:621
+#: ../../Zotlabs/Module/Connedit.php:610
msgid "Fetch updated permissions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:625
+#: ../../Zotlabs/Module/Connedit.php:614
msgid "Refresh Photo"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:628
+#: ../../Zotlabs/Module/Connedit.php:617
msgid "Fetch updated photo"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:635
+#: ../../Zotlabs/Module/Connedit.php:624
msgid "View recent posts and comments"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:642
+#: ../../Zotlabs/Module/Connedit.php:631
msgid "Block (or Unblock) all communications with this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:643
+#: ../../Zotlabs/Module/Connedit.php:632
msgid "This connection is blocked!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:647
+#: ../../Zotlabs/Module/Connedit.php:636
msgid "Unignore"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:650
+#: ../../Zotlabs/Module/Connedit.php:639
msgid "Ignore (or Unignore) all inbound communications from this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:651
+#: ../../Zotlabs/Module/Connedit.php:640
msgid "This connection is ignored!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:655
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Unarchive"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:655
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Archive"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:658
+#: ../../Zotlabs/Module/Connedit.php:647
msgid ""
"Archive (or Unarchive) this connection - mark channel dead but keep content"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:659
+#: ../../Zotlabs/Module/Connedit.php:648
msgid "This connection is archived!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:663
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Unhide"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:663
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Hide"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:666
+#: ../../Zotlabs/Module/Connedit.php:655
msgid "Hide or Unhide this connection from your other connections"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:667
+#: ../../Zotlabs/Module/Connedit.php:656
msgid "This connection is hidden!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:674
+#: ../../Zotlabs/Module/Connedit.php:663
msgid "Delete this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:682
+#: ../../Zotlabs/Module/Connedit.php:671
msgid "Fetch Vcard"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:685
+#: ../../Zotlabs/Module/Connedit.php:674
msgid "Fetch electronic calling card for this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:696
+#: ../../Zotlabs/Module/Connedit.php:685
msgid "Open Individual Permissions section by default"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:719
+#: ../../Zotlabs/Module/Connedit.php:708
msgid "Affinity"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:722
+#: ../../Zotlabs/Module/Connedit.php:711
msgid "Open Set Affinity section by default"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:759
+#: ../../Zotlabs/Module/Connedit.php:748
msgid "Filter"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:762
+#: ../../Zotlabs/Module/Connedit.php:751
msgid "Open Custom Filter section by default"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:799
+#: ../../Zotlabs/Module/Connedit.php:788
msgid "Approve this connection"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:799
+#: ../../Zotlabs/Module/Connedit.php:788
msgid "Accept connection to allow communication"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:804
+#: ../../Zotlabs/Module/Connedit.php:793
msgid "Set Affinity"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:807
+#: ../../Zotlabs/Module/Connedit.php:796
msgid "Set Profile"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:810
+#: ../../Zotlabs/Module/Connedit.php:799
msgid "Set Affinity & Profile"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:858
+#: ../../Zotlabs/Module/Connedit.php:847
msgid "This connection is unreachable from this location."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:859
+#: ../../Zotlabs/Module/Connedit.php:848
msgid "This connection may be unreachable from other channel locations."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:861
+#: ../../Zotlabs/Module/Connedit.php:850
msgid "Location independence is not supported by their network."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:867
+#: ../../Zotlabs/Module/Connedit.php:856
msgid ""
"This connection is unreachable from this location. Location independence is "
"not supported by their network."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:871
+#: ../../Zotlabs/Module/Connedit.php:860
msgid "Connection requests will be approved without your interaction"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:880
+#: ../../Zotlabs/Module/Connedit.php:869
msgid "This connection's primary address is"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:881
+#: ../../Zotlabs/Module/Connedit.php:870
msgid "Available locations:"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:887
+#: ../../Zotlabs/Module/Connedit.php:876
msgid "Connection Tools"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:889
+#: ../../Zotlabs/Module/Connedit.php:878
msgid "Slide to adjust your degree of friendship"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:891
+#: ../../Zotlabs/Module/Connedit.php:880
msgid "Slide to adjust your rating"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Connedit.php:897
+#: ../../Zotlabs/Module/Connedit.php:881 ../../Zotlabs/Module/Connedit.php:886
msgid "Optionally explain your rating"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:894
+#: ../../Zotlabs/Module/Connedit.php:883
msgid "Custom Filter"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:895
+#: ../../Zotlabs/Module/Connedit.php:884
msgid "Only import posts with this text"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:896
+#: ../../Zotlabs/Module/Connedit.php:885
msgid "Do not import posts with this text"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:898
+#: ../../Zotlabs/Module/Connedit.php:887
msgid "This information is public!"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:903
+#: ../../Zotlabs/Module/Connedit.php:892
msgid "Connection Pending Approval"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:908
+#: ../../Zotlabs/Module/Connedit.php:897
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:915
+#: ../../Zotlabs/Module/Connedit.php:904
msgid ""
"Some permissions may be inherited from your channel's <a href=\"settings"
"\"><strong>privacy settings</strong></a>, which have higher priority than "
@@ -14337,11 +14370,11 @@ msgid ""
"any impact unless the inherited setting changes."
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:916
+#: ../../Zotlabs/Module/Connedit.php:905
msgid "Last update:"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:924
+#: ../../Zotlabs/Module/Connedit.php:913
msgid "Details"
msgstr ""
@@ -14370,47 +14403,47 @@ msgstr ""
msgid "Download PDL file"
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:27 ../../Zotlabs/Module/Locs.php:57
+#: ../../Zotlabs/Module/Locs.php:27 ../../Zotlabs/Module/Locs.php:66
msgid "Location not found."
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:65
+#: ../../Zotlabs/Module/Locs.php:75
msgid "Location lookup failed."
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:69
+#: ../../Zotlabs/Module/Locs.php:79
msgid ""
"Please select another location to become primary before removing the primary "
"location."
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:99
+#: ../../Zotlabs/Module/Locs.php:108
msgid "Syncing locations"
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:109
+#: ../../Zotlabs/Module/Locs.php:117
msgid "No locations found."
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:120
+#: ../../Zotlabs/Module/Locs.php:127
msgid "Manage Channel Locations"
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:126
+#: ../../Zotlabs/Module/Locs.php:133
msgid "Sync Now"
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:127
+#: ../../Zotlabs/Module/Locs.php:134
msgid "Please wait several minutes between consecutive operations."
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:128
+#: ../../Zotlabs/Module/Locs.php:135
msgid ""
"When possible, drop a location by logging into that website/hub and removing "
"your channel."
msgstr ""
-#: ../../Zotlabs/Module/Locs.php:129
+#: ../../Zotlabs/Module/Locs.php:136
msgid "Use this form to drop the location if the hub is no longer operating."
msgstr ""
@@ -14571,32 +14604,32 @@ msgctxt "permcat"
msgid "publisher"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2096
+#: ../../Zotlabs/Lib/Activity.php:2110
#, php-format
msgid "Likes %1$s's %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2099
+#: ../../Zotlabs/Lib/Activity.php:2113
#, php-format
msgid "Doesn't like %1$s's %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2105
+#: ../../Zotlabs/Lib/Activity.php:2119
#, php-format
msgid "Will attend %s's event"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2108
+#: ../../Zotlabs/Lib/Activity.php:2122
#, php-format
msgid "Will not attend %s's event"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2111
+#: ../../Zotlabs/Lib/Activity.php:2125
#, php-format
msgid "May attend %s's event"
msgstr ""
-#: ../../Zotlabs/Lib/Activity.php:2114
+#: ../../Zotlabs/Lib/Activity.php:2128
#, php-format
msgid "May not attend %s's event"
msgstr ""
@@ -14964,7 +14997,7 @@ msgstr ""
msgid "Invite"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:360
+#: ../../Zotlabs/Lib/Apps.php:360 ../../Zotlabs/Storage/Browser.php:400
msgid "Post"
msgstr ""
@@ -15113,7 +15146,7 @@ msgstr ""
msgid "Privacy conflict. Discretion advised."
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:174 ../../Zotlabs/Storage/Browser.php:286
+#: ../../Zotlabs/Lib/ThreadItem.php:174 ../../Zotlabs/Storage/Browser.php:362
msgid "Admin Delete"
msgstr ""
@@ -15396,98 +15429,148 @@ msgstr ""
msgid "Can administer my channel"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:107 ../../Zotlabs/Storage/Browser.php:295
-msgid "parent"
+#: ../../Zotlabs/Storage/Browser.php:292
+msgid "Change filename to"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:302 ../../Zotlabs/Storage/Browser.php:383
+msgid "Select a target location"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:134
-msgid "Principal"
+#: ../../Zotlabs/Storage/Browser.php:303 ../../Zotlabs/Storage/Browser.php:384
+msgid "Copy to target location"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:137
-msgid "Addressbook"
+#: ../../Zotlabs/Storage/Browser.php:304 ../../Zotlabs/Storage/Browser.php:382
+msgid "Set permissions for all files and sub folders"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:143
-msgid "Schedule Inbox"
+#: ../../Zotlabs/Storage/Browser.php:305
+msgid "Notify your contacts about this file"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:146
-msgid "Schedule Outbox"
+#: ../../Zotlabs/Storage/Browser.php:344
+msgid "File category"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:279
+#: ../../Zotlabs/Storage/Browser.php:355
msgid "Total"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:281
+#: ../../Zotlabs/Storage/Browser.php:357
msgid "Shared"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:283
+#: ../../Zotlabs/Storage/Browser.php:359
msgid "Add Files"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:367
+#: ../../Zotlabs/Storage/Browser.php:374
+msgid "parent"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:392
+msgid "Select All"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:393
+msgid "Bulk Actions"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:394
+msgid "Adjust Permissions"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:395
+msgid "Move or Copy"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:398
+msgid "Info"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:399
+msgid "Rename"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:401
+msgid "Attachment BBcode"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:402
+msgid "Embed BBcode"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:403
+msgid "Link BBcode"
+msgstr ""
+
+#: ../../Zotlabs/Storage/Browser.php:473
#, php-format
msgid "You are using %1$s of your available file storage."
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:372
+#: ../../Zotlabs/Storage/Browser.php:478
#, php-format
msgid "You are using %1$s of %2$s available file storage. (%3$s&#37;)"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:383
+#: ../../Zotlabs/Storage/Browser.php:489
msgid "WARNING:"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:395
+#: ../../Zotlabs/Storage/Browser.php:530
msgid "Create new folder"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:397
+#: ../../Zotlabs/Storage/Browser.php:532
msgid "Upload file"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:410
+#: ../../Zotlabs/Storage/Browser.php:544
msgid "Drop files here to immediately upload"
msgstr ""
-#: ../../boot.php:1677
+#: ../../Zotlabs/Storage/Browser.php:547
+msgid ""
+"You can select files via the upload button or drop them right here or into "
+"an existing folder."
+msgstr ""
+
+#: ../../boot.php:1678
msgid "Create an account to access services and applications"
msgstr ""
-#: ../../boot.php:1701
+#: ../../boot.php:1702
msgid "Login/Email"
msgstr ""
-#: ../../boot.php:1702
+#: ../../boot.php:1703
msgid "Password"
msgstr ""
-#: ../../boot.php:1703
+#: ../../boot.php:1704
msgid "Remember me"
msgstr ""
-#: ../../boot.php:1706
+#: ../../boot.php:1707
msgid "Forgot your password?"
msgstr ""
-#: ../../boot.php:2575
+#: ../../boot.php:2576
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr ""
-#: ../../boot.php:2580
+#: ../../boot.php:2581
msgid "Website SSL certificate is not valid. Please correct."
msgstr ""
-#: ../../boot.php:2696
+#: ../../boot.php:2697
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr ""
-#: ../../boot.php:2701
+#: ../../boot.php:2702
msgid "Cron/Scheduled tasks not running."
msgstr ""
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 62282b235..26b7fec8e 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -277,6 +277,7 @@ return array(
'ID3Parser\\ID3Parser' => $vendorDir . '/lukasreschke/id3parser/src/ID3Parser.php',
'ID3Parser\\getID3\\Tags\\getid3_id3v1' => $vendorDir . '/lukasreschke/id3parser/src/getID3/Tags/getid3_id3v1.php',
'ID3Parser\\getID3\\Tags\\getid3_id3v2' => $vendorDir . '/lukasreschke/id3parser/src/getID3/Tags/getid3_id3v2.php',
+ 'ID3Parser\\getID3\\getID3' => $vendorDir . '/lukasreschke/id3parser/src/getID3/getID3.php',
'ID3Parser\\getID3\\getid3_exception' => $vendorDir . '/lukasreschke/id3parser/src/getID3/getid3_exception.php',
'ID3Parser\\getID3\\getid3_handler' => $vendorDir . '/lukasreschke/id3parser/src/getID3/getid3_handler.php',
'ID3Parser\\getID3\\getid3_lib' => $vendorDir . '/lukasreschke/id3parser/src/getID3/getid3_lib.php',
@@ -1398,19 +1399,6 @@ return array(
'Zotlabs\\Storage\\File' => $baseDir . '/Zotlabs/Storage/File.php',
'Zotlabs\\Storage\\GitRepo' => $baseDir . '/Zotlabs/Storage/GitRepo.php',
'Zotlabs\\Storage\\ZotOauth2Pdo' => $baseDir . '/Zotlabs/Storage/ZotOauth2Pdo.php',
- 'Zotlabs\\Tests\\Unit\\Access\\AccessListTest' => $baseDir . '/tests/unit/Access/AccessListTest.php',
- 'Zotlabs\\Tests\\Unit\\Access\\PermissionLimitsTest' => $baseDir . '/tests/unit/Access/PermissionLimitsTest.php',
- 'Zotlabs\\Tests\\Unit\\Access\\PermissionRolesTest' => $baseDir . '/tests/unit/Access/PermissionRolesTest.php',
- 'Zotlabs\\Tests\\Unit\\Access\\PermissionsTest' => $baseDir . '/tests/unit/Access/PermissionsTest.php',
- 'Zotlabs\\Tests\\Unit\\Lib\\PermissionDescriptionTest' => $baseDir . '/tests/unit/Lib/PermissionDescriptionTest.php',
- 'Zotlabs\\Tests\\Unit\\Photo\\PhotoGdTest' => $baseDir . '/tests/unit/Photo/PhotoGdTest.php',
- 'Zotlabs\\Tests\\Unit\\UnitTestCase' => $baseDir . '/tests/unit/UnitTestCase.php',
- 'Zotlabs\\Tests\\Unit\\Web\\HttpSigTest' => $baseDir . '/tests/unit/Web/HttpSigTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\FeedutilsTest' => $baseDir . '/tests/unit/includes/FeedutilsTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\LanguageTest' => $baseDir . '/tests/unit/includes/LanguageTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\MarkdownTest' => $baseDir . '/tests/unit/includes/MarkdownTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\PhotodriverTest' => $baseDir . '/tests/unit/includes/PhotodriverTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\TextTest' => $baseDir . '/tests/unit/includes/TextTest.php',
'Zotlabs\\Text\\Tagadelic' => $baseDir . '/Zotlabs/Text/Tagadelic.php',
'Zotlabs\\Thumbs\\Epubthumb' => $baseDir . '/Zotlabs/Thumbs/Epubthumb.php',
'Zotlabs\\Thumbs\\Mp3audio' => $baseDir . '/Zotlabs/Thumbs/Mp3audio.php',
@@ -1657,6 +1645,7 @@ return array(
'Zotlabs\\Update\\_1237' => $baseDir . '/Zotlabs/Update/_1237.php',
'Zotlabs\\Update\\_1238' => $baseDir . '/Zotlabs/Update/_1238.php',
'Zotlabs\\Update\\_1239' => $baseDir . '/Zotlabs/Update/_1239.php',
+ 'Zotlabs\\Update\\_1240' => $baseDir . '/Zotlabs/Update/_1240.php',
'Zotlabs\\Web\\Controller' => $baseDir . '/Zotlabs/Web/Controller.php',
'Zotlabs\\Web\\HTTPHeaders' => $baseDir . '/Zotlabs/Web/HTTPHeaders.php',
'Zotlabs\\Web\\HTTPSig' => $baseDir . '/Zotlabs/Web/HTTPSig.php',
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
index ed5a7935c..59c2faa28 100644
--- a/vendor/composer/autoload_psr4.php
+++ b/vendor/composer/autoload_psr4.php
@@ -6,7 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
- 'Zotlabs\\Tests\\Unit\\' => array($baseDir . '/tests/unit'),
'Zotlabs\\' => array($baseDir . '/Zotlabs'),
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
'Sabre\\Xml\\' => array($vendorDir . '/sabre/xml/lib'),
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index d88fe41d9..6988dc0b4 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -22,7 +22,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
public static $prefixLengthsPsr4 = array (
'Z' =>
array (
- 'Zotlabs\\Tests\\Unit\\' => 19,
'Zotlabs\\' => 8,
),
'S' =>
@@ -74,10 +73,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
);
public static $prefixDirsPsr4 = array (
- 'Zotlabs\\Tests\\Unit\\' =>
- array (
- 0 => __DIR__ . '/../..' . '/tests/unit',
- ),
'Zotlabs\\' =>
array (
0 => __DIR__ . '/../..' . '/Zotlabs',
@@ -463,6 +458,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'ID3Parser\\ID3Parser' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/ID3Parser.php',
'ID3Parser\\getID3\\Tags\\getid3_id3v1' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/getID3/Tags/getid3_id3v1.php',
'ID3Parser\\getID3\\Tags\\getid3_id3v2' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/getID3/Tags/getid3_id3v2.php',
+ 'ID3Parser\\getID3\\getID3' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/getID3/getID3.php',
'ID3Parser\\getID3\\getid3_exception' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/getID3/getid3_exception.php',
'ID3Parser\\getID3\\getid3_handler' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/getID3/getid3_handler.php',
'ID3Parser\\getID3\\getid3_lib' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/getID3/getid3_lib.php',
@@ -1584,19 +1580,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Storage\\File' => __DIR__ . '/../..' . '/Zotlabs/Storage/File.php',
'Zotlabs\\Storage\\GitRepo' => __DIR__ . '/../..' . '/Zotlabs/Storage/GitRepo.php',
'Zotlabs\\Storage\\ZotOauth2Pdo' => __DIR__ . '/../..' . '/Zotlabs/Storage/ZotOauth2Pdo.php',
- 'Zotlabs\\Tests\\Unit\\Access\\AccessListTest' => __DIR__ . '/../..' . '/tests/unit/Access/AccessListTest.php',
- 'Zotlabs\\Tests\\Unit\\Access\\PermissionLimitsTest' => __DIR__ . '/../..' . '/tests/unit/Access/PermissionLimitsTest.php',
- 'Zotlabs\\Tests\\Unit\\Access\\PermissionRolesTest' => __DIR__ . '/../..' . '/tests/unit/Access/PermissionRolesTest.php',
- 'Zotlabs\\Tests\\Unit\\Access\\PermissionsTest' => __DIR__ . '/../..' . '/tests/unit/Access/PermissionsTest.php',
- 'Zotlabs\\Tests\\Unit\\Lib\\PermissionDescriptionTest' => __DIR__ . '/../..' . '/tests/unit/Lib/PermissionDescriptionTest.php',
- 'Zotlabs\\Tests\\Unit\\Photo\\PhotoGdTest' => __DIR__ . '/../..' . '/tests/unit/Photo/PhotoGdTest.php',
- 'Zotlabs\\Tests\\Unit\\UnitTestCase' => __DIR__ . '/../..' . '/tests/unit/UnitTestCase.php',
- 'Zotlabs\\Tests\\Unit\\Web\\HttpSigTest' => __DIR__ . '/../..' . '/tests/unit/Web/HttpSigTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\FeedutilsTest' => __DIR__ . '/../..' . '/tests/unit/includes/FeedutilsTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\LanguageTest' => __DIR__ . '/../..' . '/tests/unit/includes/LanguageTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\MarkdownTest' => __DIR__ . '/../..' . '/tests/unit/includes/MarkdownTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\PhotodriverTest' => __DIR__ . '/../..' . '/tests/unit/includes/PhotodriverTest.php',
- 'Zotlabs\\Tests\\Unit\\includes\\TextTest' => __DIR__ . '/../..' . '/tests/unit/includes/TextTest.php',
'Zotlabs\\Text\\Tagadelic' => __DIR__ . '/../..' . '/Zotlabs/Text/Tagadelic.php',
'Zotlabs\\Thumbs\\Epubthumb' => __DIR__ . '/../..' . '/Zotlabs/Thumbs/Epubthumb.php',
'Zotlabs\\Thumbs\\Mp3audio' => __DIR__ . '/../..' . '/Zotlabs/Thumbs/Mp3audio.php',
@@ -1843,6 +1826,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Update\\_1237' => __DIR__ . '/../..' . '/Zotlabs/Update/_1237.php',
'Zotlabs\\Update\\_1238' => __DIR__ . '/../..' . '/Zotlabs/Update/_1238.php',
'Zotlabs\\Update\\_1239' => __DIR__ . '/../..' . '/Zotlabs/Update/_1239.php',
+ 'Zotlabs\\Update\\_1240' => __DIR__ . '/../..' . '/Zotlabs/Update/_1240.php',
'Zotlabs\\Web\\Controller' => __DIR__ . '/../..' . '/Zotlabs/Web/Controller.php',
'Zotlabs\\Web\\HTTPHeaders' => __DIR__ . '/../..' . '/Zotlabs/Web/HTTPHeaders.php',
'Zotlabs\\Web\\HTTPSig' => __DIR__ . '/../..' . '/Zotlabs/Web/HTTPSig.php',
diff --git a/vendor/lukasreschke/id3parser/src/getID3/getid3.php b/vendor/lukasreschke/id3parser/src/getID3/getID3.php
index 5e36f9fec..5e36f9fec 100644
--- a/vendor/lukasreschke/id3parser/src/getID3/getid3.php
+++ b/vendor/lukasreschke/id3parser/src/getID3/getID3.php
diff --git a/view/es-es/hmessages.po b/view/es-es/hmessages.po
index ea2b77f3a..dc87fe266 100644
--- a/view/es-es/hmessages.po
+++ b/view/es-es/hmessages.po
@@ -5,8 +5,8 @@
# Translators:
# Alfonso Martínez <alfonsomthd@tutanota.com>, 2015
# inboxwall <axetransit@gmail.com>, 2015
-# jeroenpraat, 2015
-# Manuel Jiménez Friaza <mjfriaza@disroot.org>, 2017-2020
+# jeroenpraat <jeroenpraat@disroot.org>, 2015
+# Manuel Jiménez Friaza <mjfriaza@disroot.org>, 2017-2019
# Manuel Jiménez Friaza <mjfriaza@disroot.org>, 2015-2017
# Rafael, 2015
# tony baldwin <tonybaldwin@gmx.com>, 2014
@@ -14,8 +14,8 @@ msgid ""
msgstr ""
"Project-Id-Version: hubzilla\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-09-17 11:07+0000\n"
-"PO-Revision-Date: 2020-09-26 10:15+0000\n"
+"POT-Creation-Date: 2019-11-11 08:09+0000\n"
+"PO-Revision-Date: 2019-12-12 15:14+0000\n"
"Last-Translator: Manuel Jiménez Friaza <mjfriaza@disroot.org>\n"
"Language-Team: Spanish (Spain) (http://www.transifex.com/Friendica/hubzilla/language/es_ES/)\n"
"MIME-Version: 1.0\n"
@@ -24,12 +24,8 @@ msgstr ""
"Language: es_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1 ? 1 : 0);\n"
-#: ../../view/theme/redbasic/php/config.php:15
-#: ../../addon/cart/submodules/orderoptions.php:335
-#: ../../addon/cart/submodules/orderoptions.php:359
-#: ../../addon/cart/submodules/orderoptions.php:435
-#: ../../addon/cart/submodules/orderoptions.php:459
-#: ../../include/text.php:3360 ../../Zotlabs/Module/Admin/Site.php:185
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3231
+#: ../../Zotlabs/Module/Admin/Site.php:187
msgid "Default"
msgstr "Predeterminado"
@@ -39,7 +35,7 @@ msgid "Focus (Hubzilla default)"
msgstr "Focus (predefinido)"
#: ../../view/theme/redbasic/php/config.php:94
-#: ../../addon/channelreputation/channelreputation.php:143
+#: ../../addon/channelreputation/channelreputation.php:142
#: ../../addon/openclipatar/openclipatar.php:53
#: ../../addon/photocache/Mod_Photocache.php:67
#: ../../addon/redred/Mod_Redred.php:90
@@ -47,91 +43,92 @@ msgstr "Focus (predefinido)"
#: ../../addon/statusnet/Mod_Statusnet.php:193
#: ../../addon/statusnet/Mod_Statusnet.php:251
#: ../../addon/statusnet/Mod_Statusnet.php:306
-#: ../../addon/statusnet/statusnet.php:602 ../../addon/rtof/Mod_Rtof.php:72
-#: ../../addon/wppost/Mod_Wppost.php:109
+#: ../../addon/statusnet/statusnet.php:602
+#: ../../addon/frphotos/frphotos.php:97 ../../addon/rtof/Mod_Rtof.php:72
+#: ../../addon/wppost/Mod_Wppost.php:97
#: ../../addon/content_import/Mod_content_import.php:142
-#: ../../addon/openstreetmap/openstreetmap.php:155
+#: ../../addon/openstreetmap/openstreetmap.php:153
#: ../../addon/ijpost/Mod_Ijpost.php:72
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:65
-#: ../../addon/dwpost/Mod_Dwpost.php:80
+#: ../../addon/dwpost/Mod_Dwpost.php:71
#: ../../addon/startpage/Mod_Startpage.php:73
-#: ../../addon/mail/Mod_Mail.php:310 ../../addon/twitter/Mod_Twitter.php:184
+#: ../../addon/twitter/Mod_Twitter.php:184
#: ../../addon/pumpio/Mod_Pumpio.php:115
#: ../../addon/cart/submodules/subscriptions.php:410
-#: ../../addon/cart/submodules/hzservices.php:643
-#: ../../addon/cart/submodules/orderoptions.php:312
-#: ../../addon/cart/submodules/orderoptions.php:412
-#: ../../addon/cart/submodules/manualcat.php:252
-#: ../../addon/cart/Settings/Cart.php:132
-#: ../../addon/cart/Settings/Cart.php:142 ../../addon/cart/cart.php:1261
+#: ../../addon/cart/submodules/hzservices.php:642
+#: ../../addon/cart/submodules/manualcat.php:250
+#: ../../addon/cart/Settings/Cart.php:114 ../../addon/cart/cart.php:1258
#: ../../addon/nofed/Mod_Nofed.php:53
#: ../../addon/smileybutton/Mod_Smileybutton.php:55
-#: ../../addon/redfiles/redfiles.php:124 ../../addon/diaspora/diaspora.php:75
-#: ../../addon/diaspora/Mod_Diaspora.php:100 ../../addon/piwik/piwik.php:95
-#: ../../addon/workflow/workflow.php:1461
-#: ../../addon/workflow/workflow.php:1520
-#: ../../addon/workflow/workflow.php:1639
-#: ../../addon/workflow/workflow.php:2742
+#: ../../addon/redfiles/redfiles.php:124
+#: ../../addon/diaspora/Mod_Diaspora.php:102 ../../addon/piwik/piwik.php:95
+#: ../../addon/workflow/workflow.php:1256
+#: ../../addon/workflow/workflow.php:1302
+#: ../../addon/workflow/workflow.php:1399
+#: ../../addon/workflow/workflow.php:2398
#: ../../addon/workflow/Settings/Mod_WorkflowSettings.php:94
#: ../../addon/likebanner/likebanner.php:57
-#: ../../addon/fuzzloc/Mod_Fuzzloc.php:56 ../../addon/hubwall/hubwall.php:95
-#: ../../addon/flashcards/Mod_Flashcards.php:262
+#: ../../addon/chords/Mod_Chords.php:60 ../../addon/fuzzloc/Mod_Fuzzloc.php:56
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:92
+#: ../../addon/hubwall/hubwall.php:95
+#: ../../addon/flashcards/Mod_Flashcards.php:213
#: ../../addon/libertree/Mod_Libertree.php:70 ../../addon/logrot/logrot.php:35
-#: ../../addon/skeleton/Mod_Skeleton.php:51
-#: ../../addon/socialauth/Mod_SocialAuth.php:330
-#: ../../addon/nsfw/Mod_Nsfw.php:61 ../../addon/mailtest/mailtest.php:100
-#: ../../addon/ljpost/Mod_Ljpost.php:82 ../../addon/hzfiles/hzfiles.php:86
+#: ../../addon/skeleton/Mod_Skeleton.php:51 ../../addon/nsfw/Mod_Nsfw.php:61
+#: ../../addon/mailtest/mailtest.php:100 ../../addon/ljpost/Mod_Ljpost.php:78
+#: ../../addon/hzfiles/hzfiles.php:86
+#: ../../addon/jappixmini/Mod_Jappixmini.php:261
#: ../../addon/pageheader/Mod_Pageheader.php:54 ../../addon/irc/irc.php:45
#: ../../addon/xmpp/Mod_Xmpp.php:70 ../../include/js_strings.php:22
#: ../../Zotlabs/Widget/Wiki_pages.php:42
#: ../../Zotlabs/Widget/Wiki_pages.php:99
#: ../../Zotlabs/Widget/Eventstools.php:16 ../../Zotlabs/Module/Tokens.php:188
#: ../../Zotlabs/Module/Import_items.php:129
-#: ../../Zotlabs/Module/Import.php:649 ../../Zotlabs/Module/Setup.php:304
-#: ../../Zotlabs/Module/Setup.php:344 ../../Zotlabs/Module/Group.php:151
-#: ../../Zotlabs/Module/Group.php:167 ../../Zotlabs/Module/Oauth.php:111
-#: ../../Zotlabs/Module/Chat.php:209 ../../Zotlabs/Module/Chat.php:248
+#: ../../Zotlabs/Module/Import.php:646 ../../Zotlabs/Module/Setup.php:304
+#: ../../Zotlabs/Module/Setup.php:344 ../../Zotlabs/Module/Group.php:150
+#: ../../Zotlabs/Module/Group.php:166 ../../Zotlabs/Module/Oauth.php:111
+#: ../../Zotlabs/Module/Chat.php:211 ../../Zotlabs/Module/Chat.php:250
#: ../../Zotlabs/Module/Poke.php:217 ../../Zotlabs/Module/Mitem.php:259
#: ../../Zotlabs/Module/Filestorage.php:203
-#: ../../Zotlabs/Module/Connect.php:107 ../../Zotlabs/Module/Editpost.php:86
+#: ../../Zotlabs/Module/Connect.php:124 ../../Zotlabs/Module/Editpost.php:86
#: ../../Zotlabs/Module/Admin/Themes.php:158
#: ../../Zotlabs/Module/Admin/Features.php:66
-#: ../../Zotlabs/Module/Admin/Security.php:120
+#: ../../Zotlabs/Module/Admin/Security.php:112
#: ../../Zotlabs/Module/Admin/Accounts.php:168
-#: ../../Zotlabs/Module/Admin/Site.php:287
+#: ../../Zotlabs/Module/Admin/Site.php:289
#: ../../Zotlabs/Module/Admin/Logs.php:84
#: ../../Zotlabs/Module/Admin/Channels.php:147
#: ../../Zotlabs/Module/Admin/Account_edit.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:178
#: ../../Zotlabs/Module/Admin/Addons.php:442
-#: ../../Zotlabs/Module/Events.php:501 ../../Zotlabs/Module/Permcats.php:129
+#: ../../Zotlabs/Module/Events.php:501 ../../Zotlabs/Module/Permcats.php:128
#: ../../Zotlabs/Module/Mood.php:158 ../../Zotlabs/Module/Appman.php:155
#: ../../Zotlabs/Module/Email_validation.php:40
-#: ../../Zotlabs/Module/Photos.php:1057 ../../Zotlabs/Module/Photos.php:1097
-#: ../../Zotlabs/Module/Photos.php:1215 ../../Zotlabs/Module/Profiles.php:725
+#: ../../Zotlabs/Module/Photos.php:1055 ../../Zotlabs/Module/Photos.php:1096
+#: ../../Zotlabs/Module/Photos.php:1215 ../../Zotlabs/Module/Profiles.php:723
#: ../../Zotlabs/Module/Invite.php:168 ../../Zotlabs/Module/Xchan.php:15
-#: ../../Zotlabs/Module/Affinity.php:87 ../../Zotlabs/Module/Rate.php:166
-#: ../../Zotlabs/Module/Settings/Network.php:62
-#: ../../Zotlabs/Module/Settings/Features.php:48
-#: ../../Zotlabs/Module/Settings/Channel.php:494
+#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Module/Affinity.php:87
+#: ../../Zotlabs/Module/Rate.php:166
+#: ../../Zotlabs/Module/Settings/Network.php:61
+#: ../../Zotlabs/Module/Settings/Features.php:46
+#: ../../Zotlabs/Module/Settings/Channel.php:493
#: ../../Zotlabs/Module/Settings/Account.php:103
-#: ../../Zotlabs/Module/Settings/Events.php:42
-#: ../../Zotlabs/Module/Settings/Manage.php:43
-#: ../../Zotlabs/Module/Settings/Channel_home.php:91
-#: ../../Zotlabs/Module/Settings/Calendar.php:42
-#: ../../Zotlabs/Module/Settings/Display.php:190
-#: ../../Zotlabs/Module/Settings/Directory.php:42
-#: ../../Zotlabs/Module/Settings/Editor.php:42
-#: ../../Zotlabs/Module/Settings/Connections.php:42
-#: ../../Zotlabs/Module/Settings/Photos.php:42
-#: ../../Zotlabs/Module/Settings/Profiles.php:52
-#: ../../Zotlabs/Module/Settings/Conversation.php:49
-#: ../../Zotlabs/Module/Defperms.php:266 ../../Zotlabs/Module/Pconfig.php:116
-#: ../../Zotlabs/Module/Oauth2.php:116 ../../Zotlabs/Module/Thing.php:328
-#: ../../Zotlabs/Module/Thing.php:381 ../../Zotlabs/Module/Pdledit.php:108
-#: ../../Zotlabs/Module/Wiki.php:215 ../../Zotlabs/Module/Connedit.php:905
+#: ../../Zotlabs/Module/Settings/Events.php:41
+#: ../../Zotlabs/Module/Settings/Manage.php:41
+#: ../../Zotlabs/Module/Settings/Channel_home.php:89
+#: ../../Zotlabs/Module/Settings/Calendar.php:41
+#: ../../Zotlabs/Module/Settings/Display.php:189
+#: ../../Zotlabs/Module/Settings/Directory.php:41
+#: ../../Zotlabs/Module/Settings/Editor.php:41
+#: ../../Zotlabs/Module/Settings/Connections.php:41
+#: ../../Zotlabs/Module/Settings/Photos.php:41
+#: ../../Zotlabs/Module/Settings/Profiles.php:50
+#: ../../Zotlabs/Module/Settings/Conversation.php:48
+#: ../../Zotlabs/Module/Defperms.php:265 ../../Zotlabs/Module/Pconfig.php:116
+#: ../../Zotlabs/Module/Oauth2.php:116 ../../Zotlabs/Module/Thing.php:326
+#: ../../Zotlabs/Module/Thing.php:379 ../../Zotlabs/Module/Pdledit.php:107
+#: ../../Zotlabs/Module/Wiki.php:215 ../../Zotlabs/Module/Connedit.php:904
#: ../../Zotlabs/Module/Locs.php:121 ../../Zotlabs/Module/Sources.php:125
-#: ../../Zotlabs/Module/Sources.php:162 ../../Zotlabs/Lib/ThreadItem.php:825
+#: ../../Zotlabs/Module/Sources.php:162 ../../Zotlabs/Lib/ThreadItem.php:796
msgid "Submit"
msgstr "Enviar"
@@ -145,131 +142,121 @@ msgstr "Estrechar la barra de navegación"
#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/redbasic/php/config.php:116
-#: ../../addon/channelreputation/channelreputation.php:111
+#: ../../addon/channelreputation/channelreputation.php:110
#: ../../addon/redred/Mod_Redred.php:63
#: ../../addon/statusnet/Mod_Statusnet.php:260
#: ../../addon/statusnet/Mod_Statusnet.php:282
#: ../../addon/statusnet/Mod_Statusnet.php:291
-#: ../../addon/rtof/Mod_Rtof.php:49 ../../addon/wppost/Mod_Wppost.php:86
-#: ../../addon/wppost/Mod_Wppost.php:90 ../../addon/wppost/Mod_Wppost.php:94
+#: ../../addon/rtof/Mod_Rtof.php:49 ../../addon/wppost/Mod_Wppost.php:82
+#: ../../addon/wppost/Mod_Wppost.php:86
#: ../../addon/content_import/Mod_content_import.php:137
#: ../../addon/content_import/Mod_content_import.php:138
#: ../../addon/ijpost/Mod_Ijpost.php:61
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:45
-#: ../../addon/dwpost/Mod_Dwpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:65
+#: ../../addon/dwpost/Mod_Dwpost.php:60
#: ../../addon/twitter/Mod_Twitter.php:162
#: ../../addon/twitter/Mod_Twitter.php:171
#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98
#: ../../addon/pumpio/Mod_Pumpio.php:102
#: ../../addon/cart/submodules/subscriptions.php:153
#: ../../addon/cart/submodules/subscriptions.php:425
-#: ../../addon/cart/submodules/hzservices.php:65
-#: ../../addon/cart/submodules/hzservices.php:649
-#: ../../addon/cart/submodules/hzservices.php:653
-#: ../../addon/cart/submodules/orderoptions.php:72
-#: ../../addon/cart/submodules/orderoptions.php:338
-#: ../../addon/cart/submodules/orderoptions.php:362
-#: ../../addon/cart/submodules/orderoptions.php:438
-#: ../../addon/cart/submodules/orderoptions.php:462
+#: ../../addon/cart/submodules/hzservices.php:64
+#: ../../addon/cart/submodules/hzservices.php:648
+#: ../../addon/cart/submodules/hzservices.php:652
#: ../../addon/cart/submodules/paypalbutton.php:87
#: ../../addon/cart/submodules/paypalbutton.php:95
-#: ../../addon/cart/submodules/paypalbuttonV2.php:88
-#: ../../addon/cart/submodules/paypalbuttonV2.php:96
#: ../../addon/cart/submodules/manualcat.php:63
-#: ../../addon/cart/submodules/manualcat.php:258
-#: ../../addon/cart/submodules/manualcat.php:262
-#: ../../addon/cart/Settings/Cart.php:61 ../../addon/cart/Settings/Cart.php:73
-#: ../../addon/cart/cart.php:1255 ../../addon/nofed/Mod_Nofed.php:42
+#: ../../addon/cart/submodules/manualcat.php:256
+#: ../../addon/cart/submodules/manualcat.php:260
+#: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71
+#: ../../addon/cart/cart.php:1252 ../../addon/nofed/Mod_Nofed.php:42
#: ../../addon/smileybutton/Mod_Smileybutton.php:44
#: ../../addon/libertree/Mod_Libertree.php:59
-#: ../../addon/socialauth/Mod_SocialAuth.php:214
-#: ../../addon/ljpost/Mod_Ljpost.php:63 ../../addon/ljpost/Mod_Ljpost.php:67
-#: ../../addon/ljpost/Mod_Ljpost.php:71 ../../include/conversation.php:1451
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145 ../../Zotlabs/Module/Import.php:638
-#: ../../Zotlabs/Module/Import.php:642 ../../Zotlabs/Module/Import.php:643
-#: ../../Zotlabs/Module/Mitem.php:176 ../../Zotlabs/Module/Mitem.php:177
-#: ../../Zotlabs/Module/Mitem.php:256 ../../Zotlabs/Module/Mitem.php:257
-#: ../../Zotlabs/Module/Filestorage.php:198
+#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/ljpost/Mod_Ljpost.php:66
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
+#: ../../Zotlabs/Module/Import.php:635 ../../Zotlabs/Module/Import.php:639
+#: ../../Zotlabs/Module/Import.php:640 ../../Zotlabs/Module/Mitem.php:176
+#: ../../Zotlabs/Module/Mitem.php:177 ../../Zotlabs/Module/Mitem.php:256
+#: ../../Zotlabs/Module/Mitem.php:257 ../../Zotlabs/Module/Filestorage.php:198
#: ../../Zotlabs/Module/Filestorage.php:206
-#: ../../Zotlabs/Module/Admin/Site.php:253
+#: ../../Zotlabs/Module/Admin/Site.php:255
#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Events.php:478
#: ../../Zotlabs/Module/Events.php:479 ../../Zotlabs/Module/Api.php:99
-#: ../../Zotlabs/Module/Photos.php:672 ../../Zotlabs/Module/Profiles.php:683
-#: ../../Zotlabs/Module/Settings/Channel.php:310
-#: ../../Zotlabs/Module/Settings/Display.php:90
+#: ../../Zotlabs/Module/Photos.php:670 ../../Zotlabs/Module/Profiles.php:681
+#: ../../Zotlabs/Module/Settings/Channel.php:309
+#: ../../Zotlabs/Module/Settings/Display.php:89
#: ../../Zotlabs/Module/Menu.php:163 ../../Zotlabs/Module/Menu.php:222
-#: ../../Zotlabs/Module/Defperms.php:198 ../../Zotlabs/Module/Wiki.php:227
-#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:407
-#: ../../Zotlabs/Module/Connedit.php:797 ../../Zotlabs/Module/Sources.php:124
+#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Wiki.php:227
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406
+#: ../../Zotlabs/Module/Connedit.php:796 ../../Zotlabs/Module/Sources.php:124
#: ../../Zotlabs/Module/Sources.php:159 ../../Zotlabs/Lib/Libzotdir.php:162
#: ../../Zotlabs/Lib/Libzotdir.php:163 ../../Zotlabs/Lib/Libzotdir.php:165
-#: ../../Zotlabs/Storage/Browser.php:411 ../../boot.php:1703
+#: ../../Zotlabs/Storage/Browser.php:411 ../../boot.php:1679
msgid "No"
msgstr "No"
#: ../../view/theme/redbasic/php/config.php:99
#: ../../view/theme/redbasic/php/config.php:116
-#: ../../addon/channelreputation/channelreputation.php:111
+#: ../../addon/channelreputation/channelreputation.php:110
#: ../../addon/redred/Mod_Redred.php:63
#: ../../addon/statusnet/Mod_Statusnet.php:260
#: ../../addon/statusnet/Mod_Statusnet.php:282
#: ../../addon/statusnet/Mod_Statusnet.php:291
-#: ../../addon/rtof/Mod_Rtof.php:49 ../../addon/wppost/Mod_Wppost.php:86
-#: ../../addon/wppost/Mod_Wppost.php:90 ../../addon/wppost/Mod_Wppost.php:94
+#: ../../addon/rtof/Mod_Rtof.php:49 ../../addon/wppost/Mod_Wppost.php:82
+#: ../../addon/wppost/Mod_Wppost.php:86
#: ../../addon/content_import/Mod_content_import.php:137
#: ../../addon/content_import/Mod_content_import.php:138
#: ../../addon/ijpost/Mod_Ijpost.php:61
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:45
-#: ../../addon/dwpost/Mod_Dwpost.php:61 ../../addon/dwpost/Mod_Dwpost.php:65
+#: ../../addon/dwpost/Mod_Dwpost.php:60
#: ../../addon/twitter/Mod_Twitter.php:162
#: ../../addon/twitter/Mod_Twitter.php:171
#: ../../addon/pumpio/Mod_Pumpio.php:94 ../../addon/pumpio/Mod_Pumpio.php:98
#: ../../addon/pumpio/Mod_Pumpio.php:102
#: ../../addon/cart/submodules/subscriptions.php:153
#: ../../addon/cart/submodules/subscriptions.php:425
-#: ../../addon/cart/submodules/hzservices.php:65
-#: ../../addon/cart/submodules/hzservices.php:649
-#: ../../addon/cart/submodules/hzservices.php:653
-#: ../../addon/cart/submodules/orderoptions.php:72
-#: ../../addon/cart/submodules/orderoptions.php:337
-#: ../../addon/cart/submodules/orderoptions.php:361
-#: ../../addon/cart/submodules/orderoptions.php:437
-#: ../../addon/cart/submodules/orderoptions.php:461
+#: ../../addon/cart/submodules/hzservices.php:64
+#: ../../addon/cart/submodules/hzservices.php:648
+#: ../../addon/cart/submodules/hzservices.php:652
#: ../../addon/cart/submodules/paypalbutton.php:87
#: ../../addon/cart/submodules/paypalbutton.php:95
-#: ../../addon/cart/submodules/paypalbuttonV2.php:88
-#: ../../addon/cart/submodules/paypalbuttonV2.php:96
#: ../../addon/cart/submodules/manualcat.php:63
-#: ../../addon/cart/submodules/manualcat.php:258
-#: ../../addon/cart/submodules/manualcat.php:262
-#: ../../addon/cart/Settings/Cart.php:61 ../../addon/cart/Settings/Cart.php:73
-#: ../../addon/cart/cart.php:1255 ../../addon/nofed/Mod_Nofed.php:42
+#: ../../addon/cart/submodules/manualcat.php:256
+#: ../../addon/cart/submodules/manualcat.php:260
+#: ../../addon/cart/Settings/Cart.php:59 ../../addon/cart/Settings/Cart.php:71
+#: ../../addon/cart/cart.php:1252 ../../addon/nofed/Mod_Nofed.php:42
#: ../../addon/smileybutton/Mod_Smileybutton.php:44
#: ../../addon/libertree/Mod_Libertree.php:59
-#: ../../addon/socialauth/Mod_SocialAuth.php:214
-#: ../../addon/ljpost/Mod_Ljpost.php:63 ../../addon/ljpost/Mod_Ljpost.php:67
-#: ../../addon/ljpost/Mod_Ljpost.php:71 ../../include/conversation.php:1451
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145 ../../Zotlabs/Module/Import.php:638
-#: ../../Zotlabs/Module/Import.php:642 ../../Zotlabs/Module/Import.php:643
-#: ../../Zotlabs/Module/Mitem.php:176 ../../Zotlabs/Module/Mitem.php:177
-#: ../../Zotlabs/Module/Mitem.php:256 ../../Zotlabs/Module/Mitem.php:257
-#: ../../Zotlabs/Module/Filestorage.php:198
+#: ../../addon/ljpost/Mod_Ljpost.php:62 ../../addon/ljpost/Mod_Ljpost.php:66
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
+#: ../../Zotlabs/Module/Import.php:635 ../../Zotlabs/Module/Import.php:639
+#: ../../Zotlabs/Module/Import.php:640 ../../Zotlabs/Module/Mitem.php:176
+#: ../../Zotlabs/Module/Mitem.php:177 ../../Zotlabs/Module/Mitem.php:256
+#: ../../Zotlabs/Module/Mitem.php:257 ../../Zotlabs/Module/Filestorage.php:198
#: ../../Zotlabs/Module/Filestorage.php:206
-#: ../../Zotlabs/Module/Admin/Site.php:255
+#: ../../Zotlabs/Module/Admin/Site.php:257
#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Events.php:478
#: ../../Zotlabs/Module/Events.php:479 ../../Zotlabs/Module/Api.php:98
-#: ../../Zotlabs/Module/Photos.php:672 ../../Zotlabs/Module/Profiles.php:683
-#: ../../Zotlabs/Module/Settings/Channel.php:310
-#: ../../Zotlabs/Module/Settings/Display.php:90
+#: ../../Zotlabs/Module/Photos.php:670 ../../Zotlabs/Module/Profiles.php:681
+#: ../../Zotlabs/Module/Settings/Channel.php:309
+#: ../../Zotlabs/Module/Settings/Display.php:89
#: ../../Zotlabs/Module/Menu.php:163 ../../Zotlabs/Module/Menu.php:222
-#: ../../Zotlabs/Module/Defperms.php:198 ../../Zotlabs/Module/Wiki.php:227
-#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:407
+#: ../../Zotlabs/Module/Defperms.php:197 ../../Zotlabs/Module/Wiki.php:227
+#: ../../Zotlabs/Module/Wiki.php:228 ../../Zotlabs/Module/Connedit.php:406
#: ../../Zotlabs/Module/Sources.php:124 ../../Zotlabs/Module/Sources.php:159
#: ../../Zotlabs/Lib/Libzotdir.php:162 ../../Zotlabs/Lib/Libzotdir.php:163
#: ../../Zotlabs/Lib/Libzotdir.php:165 ../../Zotlabs/Storage/Browser.php:411
-#: ../../boot.php:1703
+#: ../../boot.php:1679
msgid "Yes"
msgstr "Sí"
@@ -357,91 +344,91 @@ msgstr "Mostrar ajustes avanzados"
msgid "Source channel not found."
msgstr "No se ha encontrado el canal de origen."
+#: ../../addon/channelreputation/channelreputation.php:100
#: ../../addon/channelreputation/channelreputation.php:101
-#: ../../addon/channelreputation/channelreputation.php:102
#: ../../addon/cart/myshop.php:141 ../../addon/cart/myshop.php:177
#: ../../addon/cart/myshop.php:211 ../../addon/cart/myshop.php:259
#: ../../addon/cart/myshop.php:294 ../../addon/cart/myshop.php:317
msgid "Access Denied"
msgstr "Acceso denegado"
-#: ../../addon/channelreputation/channelreputation.php:109
+#: ../../addon/channelreputation/channelreputation.php:108
msgid "Enable Community Moderation"
msgstr "Habilitar la moderación de la comunidad"
-#: ../../addon/channelreputation/channelreputation.php:117
+#: ../../addon/channelreputation/channelreputation.php:116
msgid "Reputation automatically given to new members"
msgstr "La reputación se otorga automáticamente a los nuevos miembros"
-#: ../../addon/channelreputation/channelreputation.php:118
+#: ../../addon/channelreputation/channelreputation.php:117
msgid "Reputation will never fall below this value"
msgstr "La reputación nunca caerá por debajo de este valor"
-#: ../../addon/channelreputation/channelreputation.php:119
+#: ../../addon/channelreputation/channelreputation.php:118
msgid "Minimum reputation before posting is allowed"
msgstr "Reputación mínima antes de que se permita el envío de entradas"
-#: ../../addon/channelreputation/channelreputation.php:120
+#: ../../addon/channelreputation/channelreputation.php:119
msgid "Minimum reputation before commenting is allowed"
msgstr "Mínima reputación antes de que se permitan los comentarios"
-#: ../../addon/channelreputation/channelreputation.php:121
+#: ../../addon/channelreputation/channelreputation.php:120
msgid "Minimum reputation before a member is able to moderate other posts"
msgstr "Reputación mínima antes de que un miembro sea capaz de moderar otros mensajes"
-#: ../../addon/channelreputation/channelreputation.php:122
+#: ../../addon/channelreputation/channelreputation.php:121
msgid ""
"Max ratio of moderator's reputation that can be added to/deducted from "
"reputation of person being moderated"
msgstr "Proporción máxima de la reputación del moderador que puede ser añadida/descontada de la reputación de la persona que está siendo moderada."
-#: ../../addon/channelreputation/channelreputation.php:123
+#: ../../addon/channelreputation/channelreputation.php:122
msgid "Reputation \"cost\" to post"
msgstr "\"Coste\" de la reputación a contabilizar"
-#: ../../addon/channelreputation/channelreputation.php:124
+#: ../../addon/channelreputation/channelreputation.php:123
msgid "Reputation \"cost\" to comment"
msgstr "\"Coste\" de la reputación para comentar"
-#: ../../addon/channelreputation/channelreputation.php:125
+#: ../../addon/channelreputation/channelreputation.php:124
msgid ""
"Reputation automatically recovers at this rate per hour until it reaches "
"minimum_to_post"
msgstr "La reputación se recupera automáticamente a esta tasa por hora hasta que alcanza el mínimo_a_post"
-#: ../../addon/channelreputation/channelreputation.php:126
+#: ../../addon/channelreputation/channelreputation.php:125
msgid ""
"When minimum_to_moderate > reputation > minimum_to_post reputation recovers "
"at this rate per hour"
msgstr "Cuando el mínimo_a_moderar > reputación > mínimo_a_publicar la reputación se recupera a esta tasa por hora "
-#: ../../addon/channelreputation/channelreputation.php:140
+#: ../../addon/channelreputation/channelreputation.php:139
msgid "Community Moderation Settings"
msgstr "Configuración de la moderación de la comunidad"
-#: ../../addon/channelreputation/channelreputation.php:232
+#: ../../addon/channelreputation/channelreputation.php:229
msgid "Channel Reputation"
msgstr "Reputación del canal"
-#: ../../addon/channelreputation/channelreputation.php:233
-#: ../../include/acl_selectors.php:125 ../../Zotlabs/Widget/Pinned.php:160
-#: ../../Zotlabs/Module/Photos.php:1274 ../../Zotlabs/Lib/ThreadItem.php:495
+#: ../../addon/channelreputation/channelreputation.php:230
+#: ../../include/acl_selectors.php:125 ../../Zotlabs/Module/Photos.php:1274
+#: ../../Zotlabs/Lib/ThreadItem.php:463
msgid "Close"
msgstr "Cerrar"
-#: ../../addon/channelreputation/channelreputation.php:236
+#: ../../addon/channelreputation/channelreputation.php:233
msgid "An Error has occurred."
msgstr "Se ha producido un error."
-#: ../../addon/channelreputation/channelreputation.php:254
+#: ../../addon/channelreputation/channelreputation.php:251
msgid "Upvote"
msgstr "Votar a favor"
-#: ../../addon/channelreputation/channelreputation.php:255
+#: ../../addon/channelreputation/channelreputation.php:252
msgid "Downvote"
msgstr "Votar en contra"
-#: ../../addon/channelreputation/channelreputation.php:414
+#: ../../addon/channelreputation/channelreputation.php:374
msgid "Can moderate reputation on my channel."
msgstr "Se puede moderar la reputación en mi canal."
@@ -460,36 +447,37 @@ msgstr "App Superblock"
#: ../../addon/gallery/Mod_Gallery.php:58
#: ../../addon/planets/Mod_Planets.php:20 ../../addon/redred/Mod_Redred.php:50
#: ../../addon/statusnet/Mod_Statusnet.php:146
-#: ../../addon/rtof/Mod_Rtof.php:36 ../../addon/wppost/Mod_Wppost.php:43
+#: ../../addon/rtof/Mod_Rtof.php:36 ../../addon/wppost/Mod_Wppost.php:41
#: ../../addon/hsse/Mod_Hsse.php:21 ../../addon/ijpost/Mod_Ijpost.php:35
#: ../../addon/pubcrawl/Mod_Pubcrawl.php:40
-#: ../../addon/dwpost/Mod_Dwpost.php:39
+#: ../../addon/dwpost/Mod_Dwpost.php:36
#: ../../addon/startpage/Mod_Startpage.php:50
#: ../../addon/twitter/Mod_Twitter.php:78 ../../addon/pumpio/Mod_Pumpio.php:53
#: ../../addon/sendzid/Mod_Sendzid.php:20 ../../addon/nofed/Mod_Nofed.php:33
#: ../../addon/smileybutton/Mod_Smileybutton.php:35
#: ../../addon/diaspora/Mod_Diaspora.php:58
#: ../../addon/fuzzloc/Mod_Fuzzloc.php:34
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53
#: ../../addon/libertree/Mod_Libertree.php:35
-#: ../../addon/hideaside/Mod_Hideaside.php:23
#: ../../addon/skeleton/Mod_Skeleton.php:32 ../../addon/nsfw/Mod_Nsfw.php:33
-#: ../../addon/gnusoc/Mod_Gnusoc.php:22 ../../addon/ljpost/Mod_Ljpost.php:38
+#: ../../addon/gnusoc/Mod_Gnusoc.php:22 ../../addon/ljpost/Mod_Ljpost.php:37
+#: ../../addon/jappixmini/Mod_Jappixmini.php:96
#: ../../addon/authchoose/Mod_Authchoose.php:28
#: ../../addon/pageheader/Mod_Pageheader.php:34
#: ../../addon/xmpp/Mod_Xmpp.php:35 ../../Zotlabs/Module/Tokens.php:99
-#: ../../Zotlabs/Module/Group.php:107 ../../Zotlabs/Module/Oauth.php:100
-#: ../../Zotlabs/Module/Chat.php:100 ../../Zotlabs/Module/Poke.php:165
-#: ../../Zotlabs/Module/Cdav.php:872 ../../Zotlabs/Module/Webpages.php:48
-#: ../../Zotlabs/Module/Pubstream.php:20 ../../Zotlabs/Module/Permcats.php:63
-#: ../../Zotlabs/Module/Lang.php:17 ../../Zotlabs/Module/Uexport.php:61
-#: ../../Zotlabs/Module/Mood.php:134 ../../Zotlabs/Module/Cards.php:51
-#: ../../Zotlabs/Module/Articles.php:52 ../../Zotlabs/Module/Bookmarks.php:78
-#: ../../Zotlabs/Module/Probe.php:18 ../../Zotlabs/Module/Invite.php:110
-#: ../../Zotlabs/Module/Notes.php:57 ../../Zotlabs/Module/Affinity.php:52
-#: ../../Zotlabs/Module/Defperms.php:190 ../../Zotlabs/Module/Oauth2.php:106
-#: ../../Zotlabs/Module/Randprof.php:29 ../../Zotlabs/Module/Pdledit.php:43
-#: ../../Zotlabs/Module/Wiki.php:52 ../../Zotlabs/Module/Suggest.php:40
-#: ../../Zotlabs/Module/Sources.php:88
+#: ../../Zotlabs/Module/Group.php:106 ../../Zotlabs/Module/Oauth.php:100
+#: ../../Zotlabs/Module/Chat.php:102 ../../Zotlabs/Module/Poke.php:165
+#: ../../Zotlabs/Module/Cdav.php:899 ../../Zotlabs/Module/Webpages.php:48
+#: ../../Zotlabs/Module/Connect.php:104 ../../Zotlabs/Module/Pubstream.php:20
+#: ../../Zotlabs/Module/Permcats.php:62 ../../Zotlabs/Module/Lang.php:17
+#: ../../Zotlabs/Module/Uexport.php:61 ../../Zotlabs/Module/Mood.php:134
+#: ../../Zotlabs/Module/Cards.php:51 ../../Zotlabs/Module/Articles.php:52
+#: ../../Zotlabs/Module/Bookmarks.php:78 ../../Zotlabs/Module/Probe.php:18
+#: ../../Zotlabs/Module/Invite.php:110 ../../Zotlabs/Module/Notes.php:56
+#: ../../Zotlabs/Module/Affinity.php:52 ../../Zotlabs/Module/Defperms.php:189
+#: ../../Zotlabs/Module/Oauth2.php:106 ../../Zotlabs/Module/Randprof.php:29
+#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Wiki.php:52
+#: ../../Zotlabs/Module/Suggest.php:40 ../../Zotlabs/Module/Sources.php:88
msgid "Not Installed"
msgstr "No instalado/a"
@@ -512,9 +500,9 @@ msgstr "No hay canales bloqueados actualmente"
#: ../../addon/superblock/Mod_Superblock.php:91
#: ../../Zotlabs/Module/Tagrm.php:137
#: ../../Zotlabs/Module/Admin/Addons.php:459
-#: ../../Zotlabs/Module/Profile_photo.php:501
-#: ../../Zotlabs/Module/Cover_photo.php:424
-#: ../../Zotlabs/Module/Photos.php:995
+#: ../../Zotlabs/Module/Profile_photo.php:499
+#: ../../Zotlabs/Module/Cover_photo.php:430
+#: ../../Zotlabs/Module/Photos.php:993
msgid "Remove"
msgstr "Eliminar"
@@ -526,7 +514,6 @@ msgstr "App NSA Bait "
#: ../../addon/nsabait/Mod_Nsabait.php:24
#: ../../addon/rainbowtag/Mod_Rainbowtag.php:26
#: ../../addon/planets/Mod_Planets.php:23 ../../addon/hsse/Mod_Hsse.php:26
-#: ../../addon/hideaside/Mod_Hideaside.php:27
#: ../../addon/authchoose/Mod_Authchoose.php:33
msgid "Installed"
msgstr "Instalado"
@@ -576,14 +563,14 @@ msgstr "Regresar después"
msgid "Page to load after image selection."
msgstr "Página para cargar después de la selección de imágenes."
-#: ../../addon/openclipatar/openclipatar.php:57 ../../include/nav.php:112
-#: ../../include/conversation.php:1065 ../../Zotlabs/Module/Connedit.php:609
-#: ../../Zotlabs/Lib/Apps.php:344
+#: ../../addon/openclipatar/openclipatar.php:57 ../../include/nav.php:110
+#: ../../include/conversation.php:1038 ../../Zotlabs/Module/Connedit.php:608
+#: ../../Zotlabs/Lib/Apps.php:343
msgid "View Profile"
msgstr "Ver el perfil"
-#: ../../addon/openclipatar/openclipatar.php:58 ../../include/nav.php:117
-#: ../../include/channel.php:1527
+#: ../../addon/openclipatar/openclipatar.php:58 ../../include/nav.php:115
+#: ../../include/channel.php:1430
msgid "Edit Profile"
msgstr "Editar el perfil"
@@ -658,7 +645,7 @@ msgid "Unknown error. Please try again later."
msgstr "Error desconocido. Por favor, inténtelo otra vez."
#: ../../addon/openclipatar/openclipatar.php:298
-#: ../../Zotlabs/Module/Profile_photo.php:254
+#: ../../Zotlabs/Module/Profile_photo.php:252
msgid ""
"Shift-reload the page or clear browser cache if the new photo does not "
"display immediately."
@@ -669,7 +656,7 @@ msgid "Profile photo updated successfully."
msgstr "Se ha actualizado con éxito la foto de perfil."
#: ../../addon/bookmarker/bookmarker.php:38
-#: ../../Zotlabs/Lib/ThreadItem.php:472
+#: ../../Zotlabs/Lib/ThreadItem.php:440
msgid "Save Bookmarks"
msgstr "Guardar en Marcadores"
@@ -691,14 +678,171 @@ msgstr "Haga una pausa antes de comenzar la siguiente tarea: (microsegundos. Mí
msgid "Queueworker Settings"
msgstr "Configuración del gestor de procesos de trabajo en cola"
-#: ../../addon/queueworker/Mod_Queueworker.php:119 ../../include/text.php:1132
-#: ../../include/text.php:1144 ../../Zotlabs/Widget/Notes.php:23
+#: ../../addon/queueworker/Mod_Queueworker.php:119 ../../include/text.php:1106
+#: ../../include/text.php:1118 ../../Zotlabs/Widget/Notes.php:23
#: ../../Zotlabs/Module/Admin/Profs.php:94
#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Filer.php:53
#: ../../Zotlabs/Module/Rbmark.php:32 ../../Zotlabs/Module/Rbmark.php:104
msgid "Save"
msgstr "Guardar"
+#: ../../addon/tour/tour.php:76
+msgid "Edit your profile and change settings."
+msgstr "Editar su perfil y cambiar los ajustes."
+
+#: ../../addon/tour/tour.php:77
+msgid "Click here to see activity from your connections."
+msgstr "Pulsar aquí para ver la actividad de sus conexiones."
+
+#: ../../addon/tour/tour.php:78
+msgid "Click here to see your channel home."
+msgstr "Pulsar aquí para ver la página de inicio de su canal."
+
+#: ../../addon/tour/tour.php:79
+msgid "You can access your private messages from here."
+msgstr "Puede acceder a sus mensajes privados desde aquí."
+
+#: ../../addon/tour/tour.php:80
+msgid "Create new events here."
+msgstr "Crear nuevos eventos aquí."
+
+#: ../../addon/tour/tour.php:81
+msgid ""
+"You can accept new connections and change permissions for existing ones "
+"here. You can also e.g. create groups of contacts."
+msgstr "Puede aceptar nuevas conexiones y cambiar permisos para las que ya existen aquí. También puede, por ejemplo, crear grupos de contactos."
+
+#: ../../addon/tour/tour.php:82
+msgid "System notifications will arrive here"
+msgstr "Las notificaciones del sistema llegarán aquí"
+
+#: ../../addon/tour/tour.php:83
+msgid "Search for content and users"
+msgstr "Buscar contenido y usuarios"
+
+#: ../../addon/tour/tour.php:84
+msgid "Browse for new contacts"
+msgstr "Buscar nuevos contactos"
+
+#: ../../addon/tour/tour.php:85
+msgid "Launch installed apps"
+msgstr "Iniciar aplicaciones instaladas"
+
+#: ../../addon/tour/tour.php:86
+msgid "Looking for help? Click here."
+msgstr "¿Busca ayuda? Pulse aquí."
+
+#: ../../addon/tour/tour.php:87
+msgid ""
+"New events have occurred in your network. Click here to see what has "
+"happened!"
+msgstr "Se han producido nuevos eventos en su red. ¡Haga clic aquí para ver lo que ha sucedido!"
+
+#: ../../addon/tour/tour.php:88
+msgid "You have received a new private message. Click here to see from who!"
+msgstr "Ha recibido un nuevo mensaje privado. Haga clic aquí para ver de quién!"
+
+#: ../../addon/tour/tour.php:89
+msgid "There are events this week. Click here too see which!"
+msgstr "Hay eventos esta semana. Haga clic aquí para ver cuáles!"
+
+#: ../../addon/tour/tour.php:90
+msgid "You have received a new introduction. Click here to see who!"
+msgstr "Ha recibido una nueva solicitud de conexión. ¡Pulse aquí para ver de quién!"
+
+#: ../../addon/tour/tour.php:91
+msgid ""
+"There is a new system notification. Click here to see what has happened!"
+msgstr "Hay una nueva notificación del sistema. ¡Haga clic aquí para ver lo que ha sucedido!"
+
+#: ../../addon/tour/tour.php:94
+msgid "Click here to share text, images, videos and sound."
+msgstr "Haga clic aquí para compartir texto, imágenes, vídeos y sonido."
+
+#: ../../addon/tour/tour.php:95
+msgid "You can write an optional title for your update (good for long posts)."
+msgstr "Puede escribir un título opcional para su actualización (bueno para los mensajes largos)."
+
+#: ../../addon/tour/tour.php:96
+msgid "Entering some categories here makes it easier to find your post later."
+msgstr "Al ingresar algunos temas aquí, es más fácil encontrar su publicación más tarde."
+
+#: ../../addon/tour/tour.php:97
+msgid "Share photos, links, location, etc."
+msgstr "Compartir fotos, enlaces, ubicación, etc."
+
+#: ../../addon/tour/tour.php:98
+msgid ""
+"Only want to share content for a while? Make it expire at a certain date."
+msgstr "¿Solo quieres compartir contenido durante un tiempo? Haga que expire en una fecha determinada."
+
+#: ../../addon/tour/tour.php:99
+msgid "You can password protect content."
+msgstr "Puede proteger contenido con una contraseña."
+
+#: ../../addon/tour/tour.php:100
+msgid "Choose who you share with."
+msgstr "Elegir con quién compartir."
+
+#: ../../addon/tour/tour.php:102
+msgid "Click here when you are done."
+msgstr "Haga clic aquí cuando haya terminado."
+
+#: ../../addon/tour/tour.php:105
+msgid "Adjust from which channels posts should be displayed."
+msgstr "Ajustar de qué canales se deben mostrar las publicaciones."
+
+#: ../../addon/tour/tour.php:106
+msgid "Only show posts from channels in the specified privacy group."
+msgstr "Mostrar solo las entradas de los canales de un grupo específico de canales."
+
+#: ../../addon/tour/tour.php:110
+msgid "Easily find posts containing tags (keywords preceded by the \"#\" symbol)."
+msgstr "Encuentre fácilmente entradas que contengan etiquetas (palabras clave precedidas del símbolo \"#\")."
+
+#: ../../addon/tour/tour.php:111
+msgid "Easily find posts in given category."
+msgstr "Encuentre fácilmente las publicaciones en una categoría dada."
+
+#: ../../addon/tour/tour.php:112
+msgid "Easily find posts by date."
+msgstr "Encuentre fácilmente entradas por fechas."
+
+#: ../../addon/tour/tour.php:113
+msgid ""
+"Suggested users who have volounteered to be shown as suggestions, and who we"
+" think you might find interesting."
+msgstr "Se sugiere a los usuarios que se han ofrecido voluntariamente que se muestren como sugerencias, y que creemos que podrían resultar interesantes."
+
+#: ../../addon/tour/tour.php:114
+msgid "Here you see channels you have connected to."
+msgstr "Aquí puede ver los canales a los que está conectado."
+
+#: ../../addon/tour/tour.php:115
+msgid "Save your search so you can repeat it at a later date."
+msgstr "Guarde su búsqueda para poder repetirla en una fecha posterior."
+
+#: ../../addon/tour/tour.php:118
+msgid ""
+"If you see this icon you can be sure that the sender is who it say it is. It"
+" is normal that it is not always possible to verify the sender, so the icon "
+"will be missing sometimes. There is usually no need to worry about that."
+msgstr "Si ve este icono puede estar seguro de que el remitente es quien dice ser. Es normal que no siempre sea posible verificar el remitente, por lo que el icono faltará en ocasiones. Por lo general, no hay necesidad de preocuparse por eso."
+
+#: ../../addon/tour/tour.php:119
+msgid ""
+"Danger! It seems someone tried to forge a message! This message is not "
+"necessarily from who it says it is from!"
+msgstr "¡Peligro! ¡Parece que alguien intentó falsificar un mensaje! ¡Este mensaje no es necesariamente de quien dice que es!"
+
+#: ../../addon/tour/tour.php:126
+msgid ""
+"Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can "
+"pause it at any time and continue where you left off by reloading the page, "
+"or navigting to another page.</p><p>You can also advance by pressing the "
+"return key"
+msgstr "¡Bienvenido/a a Hubzilla! ¿Quiere hacer un recorrido por la interfaz de usuario?</p> <p> Puede detenerlo en cualquier momento y continuar donde lo dejó recargando la página o navegando a otra.</p> <p> También puede avanzar pulsando la tecla de retorno"
+
#: ../../addon/rainbowtag/Mod_Rainbowtag.php:15
msgid "Add some colour to tag clouds"
msgstr "Añadir color a las nubes de etiquetas"
@@ -738,15 +882,15 @@ msgstr "En píxeles. Desde 1 hasta 1024, 0 será reemplazado por el predetermina
msgid "Photo Cache"
msgstr "Photo Cache"
-#: ../../addon/gallery/gallery.php:43 ../../addon/gallery/Mod_Gallery.php:136
+#: ../../addon/gallery/gallery.php:38 ../../addon/gallery/Mod_Gallery.php:136
msgid "Gallery"
msgstr "Galería"
-#: ../../addon/gallery/gallery.php:46
+#: ../../addon/gallery/gallery.php:41
msgid "Photo Gallery"
msgstr "Galería de fotos"
-#: ../../addon/gallery/Mod_Gallery.php:49 ../../include/channel.php:1424
+#: ../../addon/gallery/Mod_Gallery.php:49 ../../include/channel.php:1327
#: ../../Zotlabs/Module/Hcard.php:12 ../../Zotlabs/Module/Editwebpage.php:32
#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Webpages.php:39
#: ../../Zotlabs/Module/Filestorage.php:53 ../../Zotlabs/Module/Connect.php:17
@@ -775,34 +919,34 @@ msgid ""
"Set a random planet from the Star Wars Empire as your location when posting"
msgstr "Establecer un planeta aleatorio del Imperio de la Guerra de las Galaxias como su ubicación cuando publique."
-#: ../../addon/openid/Mod_Id.php:53 ../../addon/mail/Mod_Mail.php:25
-#: ../../addon/pumpio/pumpio.php:44 ../../addon/keepout/keepout.php:36
-#: ../../include/photos.php:27 ../../include/items.php:3965
-#: ../../include/attach.php:156 ../../include/attach.php:205
-#: ../../include/attach.php:278 ../../include/attach.php:386
-#: ../../include/attach.php:400 ../../include/attach.php:407
-#: ../../include/attach.php:489 ../../include/attach.php:1055
-#: ../../include/attach.php:1129 ../../include/attach.php:1292
-#: ../../Zotlabs/Module/Article_edit.php:51
+#: ../../addon/openid/Mod_Id.php:53 ../../addon/pumpio/pumpio.php:44
+#: ../../addon/keepout/keepout.php:36
+#: ../../addon/flashcards/Mod_Flashcards.php:276 ../../include/photos.php:27
+#: ../../include/items.php:3796 ../../include/attach.php:150
+#: ../../include/attach.php:199 ../../include/attach.php:272
+#: ../../include/attach.php:380 ../../include/attach.php:394
+#: ../../include/attach.php:401 ../../include/attach.php:483
+#: ../../include/attach.php:1043 ../../include/attach.php:1117
+#: ../../include/attach.php:1280 ../../Zotlabs/Module/Article_edit.php:51
#: ../../Zotlabs/Module/Network.php:19 ../../Zotlabs/Module/Register.php:80
#: ../../Zotlabs/Module/Setup.php:206
#: ../../Zotlabs/Module/Viewconnections.php:28
#: ../../Zotlabs/Module/Viewconnections.php:33
-#: ../../Zotlabs/Module/Channel.php:181 ../../Zotlabs/Module/Channel.php:348
-#: ../../Zotlabs/Module/Channel.php:387 ../../Zotlabs/Module/Group.php:15
-#: ../../Zotlabs/Module/Group.php:31 ../../Zotlabs/Module/Card_edit.php:51
+#: ../../Zotlabs/Module/Channel.php:169 ../../Zotlabs/Module/Channel.php:332
+#: ../../Zotlabs/Module/Channel.php:371 ../../Zotlabs/Module/Group.php:14
+#: ../../Zotlabs/Module/Group.php:30 ../../Zotlabs/Module/Card_edit.php:51
#: ../../Zotlabs/Module/Editwebpage.php:68
#: ../../Zotlabs/Module/Editwebpage.php:89
#: ../../Zotlabs/Module/Editwebpage.php:107
-#: ../../Zotlabs/Module/Editwebpage.php:121 ../../Zotlabs/Module/Chat.php:113
-#: ../../Zotlabs/Module/Chat.php:118
-#: ../../Zotlabs/Module/Channel_calendar.php:230
-#: ../../Zotlabs/Module/Like.php:193 ../../Zotlabs/Module/Poke.php:157
-#: ../../Zotlabs/Module/Item.php:383 ../../Zotlabs/Module/Item.php:402
-#: ../../Zotlabs/Module/Item.php:412 ../../Zotlabs/Module/Item.php:1328
+#: ../../Zotlabs/Module/Editwebpage.php:121 ../../Zotlabs/Module/Chat.php:115
+#: ../../Zotlabs/Module/Chat.php:120
+#: ../../Zotlabs/Module/Channel_calendar.php:224
+#: ../../Zotlabs/Module/Like.php:187 ../../Zotlabs/Module/Poke.php:157
+#: ../../Zotlabs/Module/Item.php:417 ../../Zotlabs/Module/Item.php:436
+#: ../../Zotlabs/Module/Item.php:446 ../../Zotlabs/Module/Item.php:1315
#: ../../Zotlabs/Module/Mitem.php:129 ../../Zotlabs/Module/Profile.php:85
#: ../../Zotlabs/Module/Profile.php:101
-#: ../../Zotlabs/Module/Sharedwithme.php:19
+#: ../../Zotlabs/Module/Sharedwithme.php:16
#: ../../Zotlabs/Module/Webpages.php:133
#: ../../Zotlabs/Module/Filestorage.php:17
#: ../../Zotlabs/Module/Filestorage.php:72
@@ -813,7 +957,7 @@ msgstr "Establecer un planeta aleatorio del Imperio de la Guerra de las Galaxias
#: ../../Zotlabs/Module/Achievements.php:34
#: ../../Zotlabs/Module/Events.php:277 ../../Zotlabs/Module/Manage.php:10
#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Viewsrc.php:19
-#: ../../Zotlabs/Module/Moderate.php:15 ../../Zotlabs/Module/Display.php:456
+#: ../../Zotlabs/Module/Moderate.php:13 ../../Zotlabs/Module/Display.php:451
#: ../../Zotlabs/Module/Common.php:38 ../../Zotlabs/Module/New_channel.php:105
#: ../../Zotlabs/Module/New_channel.php:130
#: ../../Zotlabs/Module/Service_limits.php:11
@@ -821,41 +965,41 @@ msgstr "Establecer un planeta aleatorio del Imperio de la Guerra de las Galaxias
#: ../../Zotlabs/Module/Cards.php:86 ../../Zotlabs/Module/Api.php:24
#: ../../Zotlabs/Module/Regmod.php:20 ../../Zotlabs/Module/Blocks.php:73
#: ../../Zotlabs/Module/Blocks.php:80 ../../Zotlabs/Module/Message.php:18
-#: ../../Zotlabs/Module/Vote.php:19 ../../Zotlabs/Module/Profile_photo.php:338
-#: ../../Zotlabs/Module/Profile_photo.php:351
+#: ../../Zotlabs/Module/Profile_photo.php:336
+#: ../../Zotlabs/Module/Profile_photo.php:349
#: ../../Zotlabs/Module/Editblock.php:67 ../../Zotlabs/Module/Settings.php:59
#: ../../Zotlabs/Module/Editlayout.php:67
#: ../../Zotlabs/Module/Editlayout.php:90
#: ../../Zotlabs/Module/Connections.php:32
-#: ../../Zotlabs/Module/Cover_photo.php:341
-#: ../../Zotlabs/Module/Cover_photo.php:354 ../../Zotlabs/Module/Photos.php:71
+#: ../../Zotlabs/Module/Cover_photo.php:347
+#: ../../Zotlabs/Module/Cover_photo.php:360 ../../Zotlabs/Module/Photos.php:69
#: ../../Zotlabs/Module/Page.php:34 ../../Zotlabs/Module/Page.php:133
-#: ../../Zotlabs/Module/Profiles.php:200 ../../Zotlabs/Module/Profiles.php:637
+#: ../../Zotlabs/Module/Profiles.php:198 ../../Zotlabs/Module/Profiles.php:635
#: ../../Zotlabs/Module/Articles.php:89 ../../Zotlabs/Module/Bookmarks.php:70
#: ../../Zotlabs/Module/Invite.php:21 ../../Zotlabs/Module/Invite.php:102
-#: ../../Zotlabs/Module/Block.php:24 ../../Zotlabs/Module/Block.php:74
-#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Menu.php:130
-#: ../../Zotlabs/Module/Menu.php:141 ../../Zotlabs/Module/Defperms.php:182
-#: ../../Zotlabs/Module/Thing.php:282 ../../Zotlabs/Module/Thing.php:302
-#: ../../Zotlabs/Module/Thing.php:343 ../../Zotlabs/Module/Pdledit.php:35
-#: ../../Zotlabs/Module/Wiki.php:59 ../../Zotlabs/Module/Wiki.php:285
-#: ../../Zotlabs/Module/Wiki.php:428 ../../Zotlabs/Module/Suggest.php:32
-#: ../../Zotlabs/Module/Connedit.php:400
+#: ../../Zotlabs/Module/Mail.php:150 ../../Zotlabs/Module/Block.php:24
+#: ../../Zotlabs/Module/Block.php:74 ../../Zotlabs/Module/Rate.php:113
+#: ../../Zotlabs/Module/Menu.php:130 ../../Zotlabs/Module/Menu.php:141
+#: ../../Zotlabs/Module/Defperms.php:181 ../../Zotlabs/Module/Thing.php:280
+#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
+#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Wiki.php:59
+#: ../../Zotlabs/Module/Wiki.php:285 ../../Zotlabs/Module/Wiki.php:428
+#: ../../Zotlabs/Module/Suggest.php:32 ../../Zotlabs/Module/Connedit.php:399
#: ../../Zotlabs/Module/Notifications.php:11
#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78
#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Locs.php:87
-#: ../../Zotlabs/Module/Sources.php:80 ../../Zotlabs/Lib/Chatroom.php:135
-#: ../../Zotlabs/Web/WebServer.php:115
+#: ../../Zotlabs/Module/Sources.php:80 ../../Zotlabs/Lib/Chatroom.php:133
+#: ../../Zotlabs/Web/WebServer.php:123
msgid "Permission denied."
msgstr "Acceso denegado."
#: ../../addon/openid/Mod_Id.php:85 ../../include/selectors.php:60
-#: ../../include/selectors.php:77 ../../include/channel.php:1707
+#: ../../include/selectors.php:77 ../../include/channel.php:1610
msgid "Male"
msgstr "Hombre"
#: ../../addon/openid/Mod_Id.php:87 ../../include/selectors.php:60
-#: ../../include/selectors.php:77 ../../include/channel.php:1705
+#: ../../include/selectors.php:77 ../../include/channel.php:1608
msgid "Female"
msgstr "Mujer"
@@ -869,7 +1013,7 @@ msgstr "Error de protocolo OpenID. No se recuperó ninguna ID."
msgid "Welcome %s. Remote authentication successful."
msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente."
-#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:320
+#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:317
msgid "Login failed."
msgstr "El acceso ha fallado."
@@ -903,16 +1047,16 @@ msgstr "Nombre completo"
#: ../../addon/openid/MysqlProvider.php:56
#: ../../addon/openid/MysqlProvider.php:57
#: ../../addon/redred/Mod_Redred.php:71 ../../addon/rtof/Mod_Rtof.php:57
-#: ../../include/network.php:1736 ../../Zotlabs/Module/Cdav.php:1372
+#: ../../include/network.php:1732 ../../Zotlabs/Module/Cdav.php:1377
#: ../../Zotlabs/Module/Admin/Accounts.php:171
#: ../../Zotlabs/Module/Admin/Accounts.php:183
-#: ../../Zotlabs/Module/Profiles.php:789 ../../Zotlabs/Module/Connedit.php:928
+#: ../../Zotlabs/Module/Profiles.php:787 ../../Zotlabs/Module/Connedit.php:927
msgid "Email"
msgstr "Correo electrónico"
#: ../../addon/openid/MysqlProvider.php:58
#: ../../addon/openid/MysqlProvider.php:59
-#: ../../addon/openid/MysqlProvider.php:60 ../../Zotlabs/Lib/Apps.php:361
+#: ../../addon/openid/MysqlProvider.php:60 ../../Zotlabs/Lib/Apps.php:360
msgid "Profile Photo"
msgstr "Foto del perfil"
@@ -940,16 +1084,16 @@ msgstr "Foto del perfil 80px"
msgid "Profile Photo 128px"
msgstr "Foto del perfil 128px"
-#: ../../addon/openid/MysqlProvider.php:67 ../../include/event.php:123
+#: ../../addon/openid/MysqlProvider.php:67
msgid "Timezone"
msgstr "Zona horaria"
#: ../../addon/openid/MysqlProvider.php:68
-#: ../../Zotlabs/Module/Profiles.php:769
+#: ../../Zotlabs/Module/Profiles.php:767
msgid "Homepage URL"
msgstr "Dirección de la página personal"
-#: ../../addon/openid/MysqlProvider.php:69 ../../Zotlabs/Lib/Apps.php:359
+#: ../../addon/openid/MysqlProvider.php:69 ../../Zotlabs/Lib/Apps.php:358
msgid "Language"
msgstr "Idioma"
@@ -970,7 +1114,7 @@ msgid "Birthdate"
msgstr "Fecha de nacimiento"
#: ../../addon/openid/MysqlProvider.php:74
-#: ../../Zotlabs/Module/Profiles.php:488
+#: ../../Zotlabs/Module/Profiles.php:486
msgid "Gender"
msgstr "Género"
@@ -1125,7 +1269,7 @@ msgstr "Tenga en cuenta que las estadísticas de Diaspora y Friendica se refiere
msgid "Channel is required."
msgstr "Se requiere un canal."
-#: ../../addon/redred/Mod_Redred.php:29 ../../Zotlabs/Module/Network.php:326
+#: ../../addon/redred/Mod_Redred.php:29 ../../Zotlabs/Module/Network.php:325
msgid "Invalid channel."
msgstr "El canal no es válido."
@@ -1163,6 +1307,7 @@ msgid "Hubzilla channel name"
msgstr "Nombre del canal de Hubzilla"
#: ../../addon/redred/Mod_Redred.php:79
+#: ../../addon/jappixmini/Mod_Jappixmini.php:195
msgid "Hubzilla password"
msgstr "Contraseña de Hubzilla"
@@ -1179,13 +1324,14 @@ msgid "Photos imported"
msgstr "Se han importado las fotos"
#: ../../addon/redphotos/redphotos.php:119
-#: ../../addon/redfiles/redfiles.php:109 ../../addon/hzfiles/hzfiles.php:75
-#: ../../include/items.php:439 ../../Zotlabs/Module/Import_items.php:120
-#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Group.php:99
-#: ../../Zotlabs/Module/Like.php:295 ../../Zotlabs/Module/Cloud.php:119
-#: ../../Zotlabs/Module/Share.php:72 ../../Zotlabs/Module/Subthread.php:86
+#: ../../addon/frphotos/frphotos.php:82 ../../addon/redfiles/redfiles.php:109
+#: ../../addon/hzfiles/hzfiles.php:75 ../../include/items.php:435
+#: ../../Zotlabs/Module/Import_items.php:120
+#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Group.php:98
+#: ../../Zotlabs/Module/Like.php:301 ../../Zotlabs/Module/Cloud.php:119
+#: ../../Zotlabs/Module/Share.php:71 ../../Zotlabs/Module/Subthread.php:86
#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:82
-#: ../../Zotlabs/Web/WebServer.php:114
+#: ../../Zotlabs/Web/WebServer.php:122
msgid "Permission denied"
msgstr "Permiso denegado"
@@ -1229,10 +1375,10 @@ msgid "0 or blank to import all available"
msgstr "0 o en blanco para importar todos los disponibles"
#: ../../addon/redphotos/redphotohelper.php:71
-#: ../../addon/pubcrawl/as.php:1810 ../../addon/diaspora/Receiver.php:1597
-#: ../../include/text.php:2233 ../../include/conversation.php:118
-#: ../../Zotlabs/Module/Like.php:386 ../../Zotlabs/Module/Tagger.php:71
-#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Lib/Activity.php:2892
+#: ../../addon/pubcrawl/as.php:1692 ../../addon/diaspora/Receiver.php:1592
+#: ../../include/text.php:2119 ../../include/conversation.php:116
+#: ../../Zotlabs/Module/Like.php:392 ../../Zotlabs/Module/Tagger.php:69
+#: ../../Zotlabs/Module/Subthread.php:112 ../../Zotlabs/Lib/Activity.php:2444
msgid "photo"
msgstr "foto"
@@ -1364,7 +1510,7 @@ msgid "Post to GNU social"
msgstr "Publicar en GNU social"
#: ../../addon/statusnet/statusnet.php:593
-#: ../../Zotlabs/Module/Admin/Site.php:295
+#: ../../Zotlabs/Module/Admin/Site.php:297
msgid "Site name"
msgstr "Nombre del sitio"
@@ -1372,13 +1518,13 @@ msgstr "Nombre del sitio"
msgid "API URL"
msgstr "URL de la API"
-#: ../../addon/statusnet/statusnet.php:595 ../../addon/twitter/twitter.php:506
+#: ../../addon/statusnet/statusnet.php:595 ../../addon/twitter/twitter.php:501
#: ../../Zotlabs/Module/Oauth.php:115 ../../Zotlabs/Module/Oauth.php:141
#: ../../Zotlabs/Module/Oauth2.php:119 ../../Zotlabs/Module/Oauth2.php:147
msgid "Consumer Secret"
msgstr "Consumer Secret"
-#: ../../addon/statusnet/statusnet.php:596 ../../addon/twitter/twitter.php:505
+#: ../../addon/statusnet/statusnet.php:596 ../../addon/twitter/twitter.php:500
#: ../../Zotlabs/Module/Oauth.php:114 ../../Zotlabs/Module/Oauth.php:140
msgid "Consumer Key"
msgstr "Consumer Key"
@@ -1387,6 +1533,26 @@ msgstr "Consumer Key"
msgid "Application name"
msgstr "Nombre de la aplicación"
+#: ../../addon/frphotos/frphotos.php:92
+msgid "Friendica Photo Album Import"
+msgstr "Importar un álbum de fotos de Friendica"
+
+#: ../../addon/frphotos/frphotos.php:93
+msgid "This will import all your Friendica photo albums to this Red channel."
+msgstr "Esto importará todos sus álbumes de fotos de Friendica a este canal de Hubzilla."
+
+#: ../../addon/frphotos/frphotos.php:94
+msgid "Friendica Server base URL"
+msgstr "URL base del servidor de Friendica"
+
+#: ../../addon/frphotos/frphotos.php:95
+msgid "Friendica Login Username"
+msgstr "Nombre de inicio de sesión en Friendica"
+
+#: ../../addon/frphotos/frphotos.php:96
+msgid "Friendica Login Password"
+msgstr "Contraseña de inicio de sesión en Friendica"
+
#: ../../addon/rtof/Mod_Rtof.php:24
msgid "Friendica Crosspost Connector Settings saved."
msgstr "Se han guardado los ajustes del conector de publicación cruzada con Friendica."
@@ -1427,66 +1593,51 @@ msgstr "Publicar en Friendica"
msgid "Post to WordPress"
msgstr "Publicar en WordPress"
-#: ../../addon/wppost/wppost.php:173 ../../addon/wppost/Mod_Wppost.php:98
-#: ../../addon/dwpost/Mod_Dwpost.php:69 ../../addon/dwpost/dwpost.php:134
-#: ../../addon/ljpost/ljpost.php:134 ../../Zotlabs/Module/Wiki.php:384
-msgid "Source"
-msgstr "Fuente"
-
-#: ../../addon/wppost/Mod_Wppost.php:30
+#: ../../addon/wppost/Mod_Wppost.php:28
msgid "Wordpress Settings saved."
msgstr "Se han guardado los ajustes de WordPress."
-#: ../../addon/wppost/Mod_Wppost.php:43
+#: ../../addon/wppost/Mod_Wppost.php:41
msgid "Wordpress Post App"
msgstr "App Publicar en Wordpress"
-#: ../../addon/wppost/Mod_Wppost.php:44
+#: ../../addon/wppost/Mod_Wppost.php:42
msgid "Post to WordPress or anything else which uses the wordpress XMLRPC API"
msgstr "Publicar en WordPress o cualquier otra cosa que utilice la API XMLRPC de wordpress"
-#: ../../addon/wppost/Mod_Wppost.php:69
+#: ../../addon/wppost/Mod_Wppost.php:65
msgid "WordPress username"
msgstr "Nombre de usuario de WordPress"
-#: ../../addon/wppost/Mod_Wppost.php:73
+#: ../../addon/wppost/Mod_Wppost.php:69
msgid "WordPress password"
msgstr "Contraseña de WordPress"
-#: ../../addon/wppost/Mod_Wppost.php:77
+#: ../../addon/wppost/Mod_Wppost.php:73
msgid "WordPress API URL"
msgstr "URL de la API de WordPress"
-#: ../../addon/wppost/Mod_Wppost.php:78
+#: ../../addon/wppost/Mod_Wppost.php:74
msgid "Typically https://your-blog.tld/xmlrpc.php"
msgstr "Habitualmente https://your-blog.tld/xmlrpc.php"
-#: ../../addon/wppost/Mod_Wppost.php:81
+#: ../../addon/wppost/Mod_Wppost.php:77
msgid "WordPress blogid"
msgstr "Blog de WordPress"
-#: ../../addon/wppost/Mod_Wppost.php:82
+#: ../../addon/wppost/Mod_Wppost.php:78
msgid "For multi-user sites such as wordpress.com, otherwise leave blank"
msgstr "Para sitios multiusuario como wordpress.com, de lo contrario, dejar en blanco"
-#: ../../addon/wppost/Mod_Wppost.php:86
+#: ../../addon/wppost/Mod_Wppost.php:82
msgid "Post to WordPress by default"
msgstr "Publicar en WordPress por defecto"
-#: ../../addon/wppost/Mod_Wppost.php:90
+#: ../../addon/wppost/Mod_Wppost.php:86
msgid "Forward comments (requires hubzilla_wp plugin)"
msgstr "Reenviar comentarios (requerido por el plugin hubzilla_wp)"
-#: ../../addon/wppost/Mod_Wppost.php:94 ../../addon/dwpost/Mod_Dwpost.php:65
-#: ../../addon/ljpost/Mod_Ljpost.php:71
-msgid "Add link to original post"
-msgstr "Añadir enlace a la entrada original"
-
-#: ../../addon/wppost/Mod_Wppost.php:98 ../../addon/dwpost/Mod_Dwpost.php:69
-msgid "Link description (default:"
-msgstr "Descripción del enlace (por defecto: "
-
-#: ../../addon/wppost/Mod_Wppost.php:106
+#: ../../addon/wppost/Mod_Wppost.php:94
msgid "Wordpress Post"
msgstr "Publicar en Wordpress"
@@ -1511,7 +1662,7 @@ msgid ""
msgstr "Este complemento copia el contenido existente y el almacenamiento de ficheros en un canal clonado/copiado. Una vez instalada la aplicación, visite la aplicación recién instalada. Esto le permitirá establecer la ubicación de su canal original y un rango de fechas opcional de ficheros/conversaciones para copiar."
#: ../../addon/content_import/Mod_content_import.php:135
-#: ../../Zotlabs/Lib/Apps.php:332
+#: ../../Zotlabs/Lib/Apps.php:331
msgid "Content Import"
msgstr "Importación de contenidos"
@@ -1552,211 +1703,211 @@ msgstr "Modificado desde la fecha yyyy-mm-dd"
msgid "Until modified date yyyy-mm-dd"
msgstr "Modificado hasta la fecha yyyy-mm-dd"
-#: ../../addon/hsse/hsse.php:82 ../../include/conversation.php:1313
+#: ../../addon/hsse/hsse.php:82 ../../include/conversation.php:1285
msgid "Set your location"
msgstr "Establecer su ubicación"
-#: ../../addon/hsse/hsse.php:83 ../../include/conversation.php:1314
+#: ../../addon/hsse/hsse.php:83 ../../include/conversation.php:1286
msgid "Clear browser location"
msgstr "Eliminar los datos de localización geográfica del navegador"
-#: ../../addon/hsse/hsse.php:95 ../../addon/mail/Mod_Mail.php:166
-#: ../../addon/mail/Mod_Mail.php:309 ../../include/conversation.php:1326
+#: ../../addon/hsse/hsse.php:95 ../../include/conversation.php:1298
#: ../../Zotlabs/Module/Article_edit.php:100
#: ../../Zotlabs/Module/Card_edit.php:101
-#: ../../Zotlabs/Module/Editwebpage.php:143 ../../Zotlabs/Module/Chat.php:220
-#: ../../Zotlabs/Module/Editblock.php:116
+#: ../../Zotlabs/Module/Editwebpage.php:143 ../../Zotlabs/Module/Chat.php:222
+#: ../../Zotlabs/Module/Editblock.php:116 ../../Zotlabs/Module/Mail.php:292
+#: ../../Zotlabs/Module/Mail.php:435
msgid "Insert web link"
msgstr "Insertar enlace web"
-#: ../../addon/hsse/hsse.php:99 ../../include/conversation.php:1330
+#: ../../addon/hsse/hsse.php:99 ../../include/conversation.php:1302
msgid "Embed (existing) photo from your photo albums"
msgstr "Insertar una foto de sus álbumes"
-#: ../../addon/hsse/hsse.php:134 ../../addon/mail/Mod_Mail.php:119
-#: ../../addon/mail/Mod_Mail.php:240 ../../include/conversation.php:1365
-#: ../../Zotlabs/Module/Chat.php:218
+#: ../../addon/hsse/hsse.php:134 ../../include/conversation.php:1337
+#: ../../Zotlabs/Module/Chat.php:220 ../../Zotlabs/Module/Mail.php:245
+#: ../../Zotlabs/Module/Mail.php:366
msgid "Please enter a link URL:"
msgstr "Por favor, introduzca la dirección del enlace:"
-#: ../../addon/hsse/hsse.php:135 ../../include/conversation.php:1366
+#: ../../addon/hsse/hsse.php:135 ../../include/conversation.php:1338
msgid "Tag term:"
msgstr "Término de la etiqueta:"
-#: ../../addon/hsse/hsse.php:136 ../../include/conversation.php:1367
+#: ../../addon/hsse/hsse.php:136 ../../include/conversation.php:1339
msgid "Where are you right now?"
msgstr "¿Donde está ahora?"
-#: ../../addon/hsse/hsse.php:139 ../../include/conversation.php:1370
-#: ../../Zotlabs/Module/Profile_photo.php:509
-#: ../../Zotlabs/Module/Cover_photo.php:430 ../../Zotlabs/Module/Wiki.php:403
+#: ../../addon/hsse/hsse.php:139 ../../include/conversation.php:1342
+#: ../../Zotlabs/Module/Profile_photo.php:507
+#: ../../Zotlabs/Module/Cover_photo.php:436 ../../Zotlabs/Module/Wiki.php:403
msgid "Choose images to embed"
msgstr "Elegir imágenes para incluir"
-#: ../../addon/hsse/hsse.php:140 ../../include/conversation.php:1371
-#: ../../Zotlabs/Module/Profile_photo.php:510
-#: ../../Zotlabs/Module/Cover_photo.php:431 ../../Zotlabs/Module/Wiki.php:404
+#: ../../addon/hsse/hsse.php:140 ../../include/conversation.php:1343
+#: ../../Zotlabs/Module/Profile_photo.php:508
+#: ../../Zotlabs/Module/Cover_photo.php:437 ../../Zotlabs/Module/Wiki.php:404
msgid "Choose an album"
msgstr "Elegir un álbum"
-#: ../../addon/hsse/hsse.php:141 ../../include/conversation.php:1372
+#: ../../addon/hsse/hsse.php:141 ../../include/conversation.php:1344
msgid "Choose a different album..."
msgstr "Elegir un álbum diferente..."
-#: ../../addon/hsse/hsse.php:142 ../../include/conversation.php:1373
-#: ../../Zotlabs/Module/Profile_photo.php:512
-#: ../../Zotlabs/Module/Cover_photo.php:433 ../../Zotlabs/Module/Wiki.php:406
+#: ../../addon/hsse/hsse.php:142 ../../include/conversation.php:1345
+#: ../../Zotlabs/Module/Profile_photo.php:510
+#: ../../Zotlabs/Module/Cover_photo.php:439 ../../Zotlabs/Module/Wiki.php:406
msgid "Error getting album list"
msgstr "Error al obtener la lista de álbumes"
-#: ../../addon/hsse/hsse.php:143 ../../include/conversation.php:1374
-#: ../../Zotlabs/Module/Profile_photo.php:513
-#: ../../Zotlabs/Module/Cover_photo.php:434 ../../Zotlabs/Module/Wiki.php:407
+#: ../../addon/hsse/hsse.php:143 ../../include/conversation.php:1346
+#: ../../Zotlabs/Module/Profile_photo.php:511
+#: ../../Zotlabs/Module/Cover_photo.php:440 ../../Zotlabs/Module/Wiki.php:407
msgid "Error getting photo link"
msgstr "Error al obtener el enlace de la foto"
-#: ../../addon/hsse/hsse.php:144 ../../include/conversation.php:1375
-#: ../../Zotlabs/Module/Profile_photo.php:514
-#: ../../Zotlabs/Module/Cover_photo.php:435 ../../Zotlabs/Module/Wiki.php:408
+#: ../../addon/hsse/hsse.php:144 ../../include/conversation.php:1347
+#: ../../Zotlabs/Module/Profile_photo.php:512
+#: ../../Zotlabs/Module/Cover_photo.php:441 ../../Zotlabs/Module/Wiki.php:408
msgid "Error getting album"
msgstr "Error al obtener el álbum"
-#: ../../addon/hsse/hsse.php:145 ../../include/conversation.php:1376
+#: ../../addon/hsse/hsse.php:145 ../../include/conversation.php:1348
msgid "Comments enabled"
msgstr "Comentarios habilitados"
-#: ../../addon/hsse/hsse.php:146 ../../include/conversation.php:1377
+#: ../../addon/hsse/hsse.php:146 ../../include/conversation.php:1349
msgid "Comments disabled"
msgstr "Comentarios deshabilitados"
-#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1387
+#: ../../addon/hsse/hsse.php:153 ../../include/conversation.php:1359
#: ../../Zotlabs/Module/Webpages.php:262 ../../Zotlabs/Module/Events.php:486
-#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Lib/ThreadItem.php:835
+#: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Lib/ThreadItem.php:806
msgid "Preview"
msgstr "Previsualizar"
-#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1420
+#: ../../addon/hsse/hsse.php:186 ../../include/conversation.php:1392
#: ../../Zotlabs/Widget/Cdav.php:136 ../../Zotlabs/Module/Webpages.php:256
-#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1077
+#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1075
#: ../../Zotlabs/Module/Wiki.php:301 ../../Zotlabs/Module/Layouts.php:194
msgid "Share"
msgstr "Compartir"
-#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1429
+#: ../../addon/hsse/hsse.php:195 ../../include/conversation.php:1401
msgid "Page link name"
msgstr "Nombre del enlace de la página"
-#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1432
+#: ../../addon/hsse/hsse.php:198 ../../include/conversation.php:1404
msgid "Post as"
msgstr "Publicar como"
-#: ../../addon/hsse/hsse.php:200 ../../include/conversation.php:1434
-#: ../../Zotlabs/Lib/ThreadItem.php:826
+#: ../../addon/hsse/hsse.php:200 ../../include/conversation.php:1406
+#: ../../Zotlabs/Lib/ThreadItem.php:797
msgid "Bold"
msgstr "Negrita"
-#: ../../addon/hsse/hsse.php:201 ../../include/conversation.php:1435
-#: ../../Zotlabs/Lib/ThreadItem.php:827
+#: ../../addon/hsse/hsse.php:201 ../../include/conversation.php:1407
+#: ../../Zotlabs/Lib/ThreadItem.php:798
msgid "Italic"
msgstr "Itálico "
-#: ../../addon/hsse/hsse.php:202 ../../include/conversation.php:1436
-#: ../../Zotlabs/Lib/ThreadItem.php:828
+#: ../../addon/hsse/hsse.php:202 ../../include/conversation.php:1408
+#: ../../Zotlabs/Lib/ThreadItem.php:799
msgid "Underline"
msgstr "Subrayar"
-#: ../../addon/hsse/hsse.php:203 ../../include/conversation.php:1437
-#: ../../Zotlabs/Lib/ThreadItem.php:829
+#: ../../addon/hsse/hsse.php:203 ../../include/conversation.php:1409
+#: ../../Zotlabs/Lib/ThreadItem.php:800
msgid "Quote"
msgstr "Citar"
-#: ../../addon/hsse/hsse.php:204 ../../include/conversation.php:1438
-#: ../../Zotlabs/Lib/ThreadItem.php:830
+#: ../../addon/hsse/hsse.php:204 ../../include/conversation.php:1410
+#: ../../Zotlabs/Lib/ThreadItem.php:801
msgid "Code"
msgstr "Código"
-#: ../../addon/hsse/hsse.php:205 ../../include/conversation.php:1439
-#: ../../Zotlabs/Lib/ThreadItem.php:832
+#: ../../addon/hsse/hsse.php:205 ../../include/conversation.php:1411
+#: ../../Zotlabs/Lib/ThreadItem.php:803
msgid "Attach/Upload file"
msgstr "Adjuntar/cargar fichero"
-#: ../../addon/hsse/hsse.php:208 ../../include/conversation.php:1442
+#: ../../addon/hsse/hsse.php:208 ../../include/conversation.php:1414
#: ../../Zotlabs/Module/Wiki.php:400
msgid "Embed an image from your albums"
msgstr "Incluir una imagen de sus álbumes"
#: ../../addon/hsse/hsse.php:209 ../../addon/hsse/hsse.php:258
-#: ../../include/conversation.php:1443 ../../include/conversation.php:1496
+#: ../../include/conversation.php:1415 ../../include/conversation.php:1464
#: ../../Zotlabs/Module/Article_edit.php:130
#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88
#: ../../Zotlabs/Module/Card_edit.php:131 ../../Zotlabs/Module/Oauth.php:112
#: ../../Zotlabs/Module/Oauth.php:138 ../../Zotlabs/Module/Editwebpage.php:169
-#: ../../Zotlabs/Module/Cdav.php:1054 ../../Zotlabs/Module/Cdav.php:1386
+#: ../../Zotlabs/Module/Cdav.php:1081 ../../Zotlabs/Module/Cdav.php:1391
#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138
#: ../../Zotlabs/Module/Editpost.php:110
#: ../../Zotlabs/Module/Admin/Addons.php:427
-#: ../../Zotlabs/Module/Profile_photo.php:507
+#: ../../Zotlabs/Module/Profile_photo.php:505
#: ../../Zotlabs/Module/Editblock.php:141 ../../Zotlabs/Module/Filer.php:55
#: ../../Zotlabs/Module/Editlayout.php:140
-#: ../../Zotlabs/Module/Cover_photo.php:428
-#: ../../Zotlabs/Module/Profiles.php:803 ../../Zotlabs/Module/Oauth2.php:117
+#: ../../Zotlabs/Module/Cover_photo.php:434
+#: ../../Zotlabs/Module/Profiles.php:801 ../../Zotlabs/Module/Oauth2.php:117
#: ../../Zotlabs/Module/Oauth2.php:145 ../../Zotlabs/Module/Wiki.php:368
-#: ../../Zotlabs/Module/Wiki.php:401 ../../Zotlabs/Module/Connedit.php:942
+#: ../../Zotlabs/Module/Wiki.php:401 ../../Zotlabs/Module/Connedit.php:941
msgid "Cancel"
msgstr "Cancelar"
#: ../../addon/hsse/hsse.php:210 ../../addon/hsse/hsse.php:257
-#: ../../include/conversation.php:1444 ../../include/conversation.php:1495
-#: ../../Zotlabs/Module/Profile_photo.php:508
-#: ../../Zotlabs/Module/Cover_photo.php:429 ../../Zotlabs/Module/Wiki.php:402
+#: ../../include/conversation.php:1416 ../../include/conversation.php:1463
+#: ../../Zotlabs/Module/Profile_photo.php:506
+#: ../../Zotlabs/Module/Cover_photo.php:435 ../../Zotlabs/Module/Wiki.php:402
msgid "OK"
msgstr "OK"
-#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1446
+#: ../../addon/hsse/hsse.php:212 ../../include/conversation.php:1418
msgid "Toggle voting"
msgstr "Cambiar votación"
-#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1453
+#: ../../addon/hsse/hsse.php:215 ../../include/conversation.php:1421
msgid "Disable comments"
msgstr "Dehabilitar los comentarios"
-#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1454
+#: ../../addon/hsse/hsse.php:216 ../../include/conversation.php:1422
msgid "Toggle comments"
msgstr "Activar o desactivar los comentarios"
-#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1459
+#: ../../addon/hsse/hsse.php:221 ../../include/conversation.php:1427
#: ../../Zotlabs/Module/Article_edit.php:116
#: ../../Zotlabs/Module/Card_edit.php:117
-#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:673
-#: ../../Zotlabs/Module/Photos.php:1043
+#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:671
+#: ../../Zotlabs/Module/Photos.php:1041
msgid "Title (optional)"
msgstr "Título (opcional)"
-#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1462
+#: ../../addon/hsse/hsse.php:224 ../../include/conversation.php:1430
msgid "Categories (optional, comma-separated list)"
msgstr "Temas (opcional, lista separada por comas)"
-#: ../../addon/hsse/hsse.php:225 ../../include/conversation.php:1463
+#: ../../addon/hsse/hsse.php:225 ../../include/conversation.php:1431
#: ../../Zotlabs/Module/Events.php:487
msgid "Permission settings"
msgstr "Configuración de permisos"
-#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1485
+#: ../../addon/hsse/hsse.php:247 ../../include/conversation.php:1453
msgid "Other networks and post services"
msgstr "Otras redes y servicios de publicación"
-#: ../../addon/hsse/hsse.php:250 ../../addon/mail/Mod_Mail.php:170
-#: ../../addon/mail/Mod_Mail.php:313 ../../include/conversation.php:1488
+#: ../../addon/hsse/hsse.php:250 ../../include/conversation.php:1456
+#: ../../Zotlabs/Module/Mail.php:296 ../../Zotlabs/Module/Mail.php:439
msgid "Set expiration date"
msgstr "Configurar fecha de caducidad"
-#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1491
+#: ../../addon/hsse/hsse.php:253 ../../include/conversation.php:1459
msgid "Set publish date"
msgstr "Establecer la fecha de publicación"
-#: ../../addon/hsse/hsse.php:255 ../../addon/mail/Mod_Mail.php:172
-#: ../../addon/mail/Mod_Mail.php:315 ../../include/conversation.php:1493
-#: ../../Zotlabs/Module/Chat.php:219 ../../Zotlabs/Lib/ThreadItem.php:839
+#: ../../addon/hsse/hsse.php:255 ../../include/conversation.php:1461
+#: ../../Zotlabs/Module/Chat.php:221 ../../Zotlabs/Module/Mail.php:298
+#: ../../Zotlabs/Module/Mail.php:441 ../../Zotlabs/Lib/ThreadItem.php:810
msgid "Encrypt text"
msgstr "Cifrar texto"
@@ -1772,54 +1923,53 @@ msgstr "App WYSIWYG Status"
msgid "WYSIWYG Status"
msgstr "Estado de WYSIWYG"
-#: ../../addon/openstreetmap/openstreetmap.php:133
+#: ../../addon/openstreetmap/openstreetmap.php:131
msgid "View Larger"
msgstr "Ver más grande"
-#: ../../addon/openstreetmap/openstreetmap.php:156
+#: ../../addon/openstreetmap/openstreetmap.php:154
msgid "Tile Server URL"
msgstr "URL del servidor de mosaicos de imágenes "
-#: ../../addon/openstreetmap/openstreetmap.php:156
+#: ../../addon/openstreetmap/openstreetmap.php:154
msgid ""
"A list of <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" "
"target=\"_blank\">public tile servers</a>"
msgstr "Una lista de <a href=\"http://wiki.openstreetmap.org/wiki/TMS\" target=\"_blank\">servidores públicos de mosaicos de imágenes</a>"
-#: ../../addon/openstreetmap/openstreetmap.php:157
+#: ../../addon/openstreetmap/openstreetmap.php:155
msgid "Nominatim (reverse geocoding) Server URL"
msgstr "URL del servidor nominatim (geocodificación inversa)"
-#: ../../addon/openstreetmap/openstreetmap.php:157
+#: ../../addon/openstreetmap/openstreetmap.php:155
msgid ""
"A list of <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim\" "
"target=\"_blank\">Nominatim servers</a>"
msgstr "Una lista de <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim\" target=\"_blank\">servidores nominatim</a>"
-#: ../../addon/openstreetmap/openstreetmap.php:158
+#: ../../addon/openstreetmap/openstreetmap.php:156
msgid "Default zoom"
msgstr "Zoom predeterminado"
-#: ../../addon/openstreetmap/openstreetmap.php:158
+#: ../../addon/openstreetmap/openstreetmap.php:156
msgid ""
"The default zoom level. (1:world, 18:highest, also depends on tile server)"
msgstr "El nivel de zoom predeterminado. (1: mundo, 18: el más alto, también depende del servidor del mosaico de imágenes)"
-#: ../../addon/openstreetmap/openstreetmap.php:159
+#: ../../addon/openstreetmap/openstreetmap.php:157
msgid "Include marker on map"
msgstr "Incluir un marcador en el mapa"
-#: ../../addon/openstreetmap/openstreetmap.php:159
+#: ../../addon/openstreetmap/openstreetmap.php:157
msgid "Include a marker on the map."
msgstr "Incluir un marcador en el mapa."
-#: ../../addon/openstreetmap/openstreetmap.php:171
+#: ../../addon/openstreetmap/openstreetmap.php:169
#: ../../addon/rendezvous/rendezvous.php:82
-#: ../../addon/twitter/twitter.php:494 ../../addon/msgfooter/msgfooter.php:54
-#: ../../addon/diaspora/diaspora.php:93 ../../addon/piwik/piwik.php:116
-#: ../../addon/logrot/logrot.php:54 ../../addon/xmpp/xmpp.php:54
-#: ../../Zotlabs/Module/Settings/Channel.php:267
-#: ../../Zotlabs/Module/Defperms.php:112
+#: ../../addon/twitter/twitter.php:489 ../../addon/msgfooter/msgfooter.php:54
+#: ../../addon/piwik/piwik.php:116 ../../addon/logrot/logrot.php:54
+#: ../../addon/xmpp/xmpp.php:54 ../../Zotlabs/Module/Settings/Channel.php:266
+#: ../../Zotlabs/Module/Defperms.php:111
msgid "Settings updated."
msgstr "Ajustes actualizados."
@@ -1871,39 +2021,38 @@ msgstr "Generador QR"
msgid "Enter some text"
msgstr "Escribir algún texto"
-#: ../../addon/pubcrawl/as.php:1134 ../../include/cdav.php:158
-#: ../../include/cdav.php:159 ../../include/cdav.php:167
-#: ../../include/conversation.php:1196 ../../Zotlabs/Widget/Album.php:84
-#: ../../Zotlabs/Widget/Pinned.php:270 ../../Zotlabs/Widget/Portfolio.php:95
-#: ../../Zotlabs/Module/Embedphotos.php:176
-#: ../../Zotlabs/Module/Photos.php:792 ../../Zotlabs/Module/Photos.php:1254
-#: ../../Zotlabs/Lib/Activity.php:1458 ../../Zotlabs/Lib/Apps.php:1112
-#: ../../Zotlabs/Lib/Apps.php:1196 ../../Zotlabs/Storage/Browser.php:164
+#: ../../addon/pubcrawl/as.php:1080 ../../include/conversation.php:1166
+#: ../../Zotlabs/Widget/Album.php:84 ../../Zotlabs/Widget/Portfolio.php:95
+#: ../../Zotlabs/Module/Embedphotos.php:174 ../../Zotlabs/Module/Cdav.php:871
+#: ../../Zotlabs/Module/Cdav.php:872 ../../Zotlabs/Module/Cdav.php:879
+#: ../../Zotlabs/Module/Photos.php:790 ../../Zotlabs/Module/Photos.php:1254
+#: ../../Zotlabs/Lib/Activity.php:1192 ../../Zotlabs/Lib/Apps.php:1114
+#: ../../Zotlabs/Lib/Apps.php:1198 ../../Zotlabs/Storage/Browser.php:164
msgid "Unknown"
msgstr "Desconocido"
-#: ../../addon/pubcrawl/as.php:1428 ../../addon/pubcrawl/as.php:1662
-#: ../../addon/pubcrawl/as.php:1856 ../../include/network.php:1735
-#: ../../Zotlabs/Lib/Activity.php:2742 ../../Zotlabs/Lib/Activity.php:2936
+#: ../../addon/pubcrawl/as.php:1348 ../../addon/pubcrawl/as.php:1544
+#: ../../addon/pubcrawl/as.php:1738 ../../include/network.php:1731
+#: ../../Zotlabs/Lib/Activity.php:2294 ../../Zotlabs/Lib/Activity.php:2488
msgid "ActivityPub"
msgstr "ActivityPub"
-#: ../../addon/pubcrawl/as.php:1810 ../../addon/diaspora/Receiver.php:1597
-#: ../../include/text.php:2239 ../../include/conversation.php:146
-#: ../../Zotlabs/Module/Like.php:386 ../../Zotlabs/Module/Subthread.php:112
-#: ../../Zotlabs/Lib/Activity.php:2892
+#: ../../addon/pubcrawl/as.php:1692 ../../addon/diaspora/Receiver.php:1592
+#: ../../include/text.php:2125 ../../include/conversation.php:144
+#: ../../Zotlabs/Module/Like.php:392 ../../Zotlabs/Module/Subthread.php:112
+#: ../../Zotlabs/Lib/Activity.php:2444
msgid "status"
msgstr "el mensaje de estado "
-#: ../../addon/pubcrawl/as.php:1847 ../../addon/diaspora/Receiver.php:1537
-#: ../../include/conversation.php:162 ../../Zotlabs/Module/Like.php:422
-#: ../../Zotlabs/Lib/Activity.php:2927
+#: ../../addon/pubcrawl/as.php:1729 ../../addon/diaspora/Receiver.php:1532
+#: ../../include/conversation.php:160 ../../Zotlabs/Module/Like.php:447
+#: ../../Zotlabs/Lib/Activity.php:2479
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "A %1$s le gusta %3$s de %2$s"
-#: ../../addon/pubcrawl/as.php:1849 ../../include/conversation.php:165
-#: ../../Zotlabs/Module/Like.php:424 ../../Zotlabs/Lib/Activity.php:2929
+#: ../../addon/pubcrawl/as.php:1731 ../../include/conversation.php:163
+#: ../../Zotlabs/Module/Like.php:449 ../../Zotlabs/Lib/Activity.php:2481
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "A %1$s no le gusta %3$s de %2$s"
@@ -1953,35 +2102,35 @@ msgstr "Se ha creado una cuenta para usted."
msgid "Authentication successful but rejected: account creation is disabled."
msgstr "Autenticación correcta pero rechazada: la creación de cuentas está deshabilitada."
-#: ../../addon/dwpost/Mod_Dwpost.php:26
+#: ../../addon/dwpost/Mod_Dwpost.php:24
msgid "Dreamwidth Crosspost Connector Settings saved."
msgstr "Se han guardado los ajustes del conector de publicación cruzada Dreamwidth."
-#: ../../addon/dwpost/Mod_Dwpost.php:39
+#: ../../addon/dwpost/Mod_Dwpost.php:36
msgid "Dreamwidth Crosspost Connector App"
msgstr "App Dreamwidth Crosspost Connector"
-#: ../../addon/dwpost/Mod_Dwpost.php:40
-msgid "Relay public posts to Dreamwidth"
-msgstr "Reenviar las entradas públicas a Dreamwidth"
+#: ../../addon/dwpost/Mod_Dwpost.php:37
+msgid "Relay public postings to Dreamwidth"
+msgstr "Retransmisión de entradas públicas a Dreamwidth"
-#: ../../addon/dwpost/Mod_Dwpost.php:53
+#: ../../addon/dwpost/Mod_Dwpost.php:52
msgid "Dreamwidth username"
msgstr "Nombre de usuario en Dreamwidth"
-#: ../../addon/dwpost/Mod_Dwpost.php:57
+#: ../../addon/dwpost/Mod_Dwpost.php:56
msgid "Dreamwidth password"
msgstr "Contraseña en Dreamwidth"
-#: ../../addon/dwpost/Mod_Dwpost.php:61
+#: ../../addon/dwpost/Mod_Dwpost.php:60
msgid "Post to Dreamwidth by default"
msgstr "Publicar en Dreamwidth de forma predeterminada"
-#: ../../addon/dwpost/Mod_Dwpost.php:77
+#: ../../addon/dwpost/Mod_Dwpost.php:68
msgid "Dreamwidth Crosspost Connector"
msgstr "Dreamwidth Crosspost Connector"
-#: ../../addon/dwpost/dwpost.php:49
+#: ../../addon/dwpost/dwpost.php:47
msgid "Post to Dreamwidth"
msgstr "Publicar en Dreamwidth"
@@ -2142,7 +2291,7 @@ msgid "Errors encountered deleting database table "
msgstr "Errores encontrados al eliminar la tabla de la base de datos"
#: ../../addon/rendezvous/rendezvous.php:95
-#: ../../addon/twitter/twitter.php:503
+#: ../../addon/twitter/twitter.php:498
msgid "Submit Settings"
msgstr "Enviar los ajustes"
@@ -2194,22 +2343,22 @@ msgstr "Reunámonos aquí"
#: ../../addon/rendezvous/rendezvous.php:172
#: ../../Zotlabs/Widget/Wiki_page_history.php:22
-#: ../../Zotlabs/Module/Group.php:155 ../../Zotlabs/Module/Oauth.php:113
-#: ../../Zotlabs/Module/Oauth.php:139 ../../Zotlabs/Module/Chat.php:257
-#: ../../Zotlabs/Module/Cdav.php:1368
-#: ../../Zotlabs/Module/Sharedwithme.php:106
+#: ../../Zotlabs/Module/Group.php:154 ../../Zotlabs/Module/Oauth.php:113
+#: ../../Zotlabs/Module/Oauth.php:139 ../../Zotlabs/Module/Chat.php:259
+#: ../../Zotlabs/Module/Cdav.php:1373
+#: ../../Zotlabs/Module/Sharedwithme.php:104
#: ../../Zotlabs/Module/Admin/Channels.php:159
#: ../../Zotlabs/Module/Oauth2.php:118 ../../Zotlabs/Module/Oauth2.php:146
-#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:924
-#: ../../Zotlabs/Lib/NativeWikiPage.php:564
+#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Connedit.php:923
+#: ../../Zotlabs/Lib/NativeWikiPage.php:561
#: ../../Zotlabs/Storage/Browser.php:291
msgid "Name"
msgstr "Nombre"
#: ../../addon/rendezvous/rendezvous.php:173
-#: ../../addon/cart/submodules/hzservices.php:655
-#: ../../addon/cart/submodules/manualcat.php:264
-#: ../../Zotlabs/Module/Cdav.php:1010 ../../Zotlabs/Module/Events.php:481
+#: ../../addon/cart/submodules/hzservices.php:654
+#: ../../addon/cart/submodules/manualcat.php:262
+#: ../../Zotlabs/Module/Cdav.php:1037 ../../Zotlabs/Module/Events.php:481
#: ../../Zotlabs/Module/Appman.php:145 ../../Zotlabs/Module/Rbmark.php:101
msgid "Description"
msgstr "Descripción"
@@ -2317,105 +2466,6 @@ msgstr "Ejemplos: &quot;aplicaciones&quot;, &quot;mi red?f=&gid=37&quot; (grupo
msgid "Startpage"
msgstr "Startpage"
-#: ../../addon/mail/Mod_Mail.php:39
-msgid "Messages"
-msgstr "Mensajes"
-
-#: ../../addon/mail/Mod_Mail.php:52
-msgid "message"
-msgstr "mensaje"
-
-#: ../../addon/mail/Mod_Mail.php:92
-msgid "Message recalled."
-msgstr "Mensaje revocado."
-
-#: ../../addon/mail/Mod_Mail.php:105
-msgid "Conversation removed."
-msgstr "Conversación eliminada."
-
-#: ../../addon/mail/Mod_Mail.php:120 ../../addon/mail/Mod_Mail.php:241
-msgid "Expires YYYY-MM-DD HH:MM"
-msgstr "Caduca YYYY-MM-DD HH:MM"
-
-#: ../../addon/mail/Mod_Mail.php:148
-msgid "Requested channel is not in this network"
-msgstr "El canal solicitado no existe en esta red"
-
-#: ../../addon/mail/Mod_Mail.php:156
-msgid "Send Private Message"
-msgstr "Enviar un mensaje privado"
-
-#: ../../addon/mail/Mod_Mail.php:157 ../../addon/mail/Mod_Mail.php:300
-msgid "To:"
-msgstr "Para:"
-
-#: ../../addon/mail/Mod_Mail.php:160 ../../addon/mail/Mod_Mail.php:302
-msgid "Subject:"
-msgstr "Asunto:"
-
-#: ../../addon/mail/Mod_Mail.php:163 ../../Zotlabs/Module/Invite.php:157
-msgid "Your message:"
-msgstr "Su mensaje:"
-
-#: ../../addon/mail/Mod_Mail.php:165 ../../addon/mail/Mod_Mail.php:308
-msgid "Attach file"
-msgstr "Adjuntar fichero"
-
-#: ../../addon/mail/Mod_Mail.php:167
-msgid "Send"
-msgstr "Enviar"
-
-#: ../../addon/mail/Mod_Mail.php:271
-msgid "Delete message"
-msgstr "Borrar mensaje"
-
-#: ../../addon/mail/Mod_Mail.php:272
-msgid "Delivery report"
-msgstr "Informe de transmisión"
-
-#: ../../addon/mail/Mod_Mail.php:273
-msgid "Recall message"
-msgstr "Revocar el mensaje"
-
-#: ../../addon/mail/Mod_Mail.php:275
-msgid "Message has been recalled."
-msgstr "El mensaje ha sido revocado."
-
-#: ../../addon/mail/Mod_Mail.php:293
-msgid "Delete Conversation"
-msgstr "Eliminar conversación"
-
-#: ../../addon/mail/Mod_Mail.php:295
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
-msgstr "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente."
-
-#: ../../addon/mail/Mod_Mail.php:299
-msgid "Send Reply"
-msgstr "Responder"
-
-#: ../../addon/mail/Mod_Mail.php:304
-#, php-format
-msgid "Your message for %s (%s):"
-msgstr "Su mensaje para %s (%s):"
-
-#: ../../addon/mail/Mod_Mail.php:384
-msgid "Unable to lookup recipient."
-msgstr "No se puede asociar a un destinatario."
-
-#: ../../addon/mail/Mod_Mail.php:391
-msgid "Unable to communicate with requested channel."
-msgstr "No se puede establecer la comunicación con el canal solicitado."
-
-#: ../../addon/mail/Mod_Mail.php:398
-msgid "Cannot verify requested channel."
-msgstr "No se puede verificar el canal solicitado."
-
-#: ../../addon/mail/Mod_Mail.php:416
-msgid "Selected channel has private message restrictions. Send failed."
-msgstr "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló."
-
#: ../../addon/adultphotoflag/adultphotoflag.php:24
msgid "Flag Adult Photos"
msgstr "Indicador (\"flag\") de fotos de adultos"
@@ -2664,8 +2714,8 @@ msgid "Send ZID"
msgstr "Enviar ZID"
#: ../../addon/cart/widgets/catalogitem.php:57
-#: ../../addon/cart/submodules/hzservices.php:658
-#: ../../addon/cart/submodules/manualcat.php:267
+#: ../../addon/cart/submodules/hzservices.php:657
+#: ../../addon/cart/submodules/manualcat.php:265
msgid "Price"
msgstr "Precio"
@@ -2679,8 +2729,7 @@ msgstr "Los pagos manuales no están habilitados."
#: ../../addon/cart/manual_payments.php:68
#: ../../addon/cart/submodules/paypalbutton.php:392
-#: ../../addon/cart/submodules/paypalbuttonV2.php:409
-#: ../../addon/cart/cart.php:1463
+#: ../../addon/cart/cart.php:1460
msgid "Order not found."
msgstr "El pedido no se ha encontrado."
@@ -2690,8 +2739,7 @@ msgstr "Terminado"
#: ../../addon/cart/manual_payments.php:93
#: ../../addon/cart/submodules/paypalbutton.php:456
-#: ../../addon/cart/submodules/paypalbuttonV2.php:478
-#: ../../addon/cart/myshop.php:37 ../../addon/cart/cart.php:1441
+#: ../../addon/cart/myshop.php:37 ../../addon/cart/cart.php:1438
#: ../../Zotlabs/Module/Wiki.php:77
msgid "Invalid channel"
msgstr "Canal no válido"
@@ -2741,149 +2789,109 @@ msgstr "Cuantía"
msgid "Term"
msgstr "Condición"
-#: ../../addon/cart/submodules/hzservices.php:63
+#: ../../addon/cart/submodules/hzservices.php:62
msgid "Enable Hubzilla Services Module"
msgstr "Habilitar el Módulo de Servicios de Hubzilla"
-#: ../../addon/cart/submodules/hzservices.php:162
-#: ../../addon/cart/submodules/manualcat.php:176
+#: ../../addon/cart/submodules/hzservices.php:161
+#: ../../addon/cart/submodules/manualcat.php:174
msgid "New Sku"
msgstr "Nuevo SKU (número de referencia)"
-#: ../../addon/cart/submodules/hzservices.php:197
-#: ../../addon/cart/submodules/manualcat.php:212
+#: ../../addon/cart/submodules/hzservices.php:196
+#: ../../addon/cart/submodules/manualcat.php:210
msgid "Cannot save edits to locked item."
msgstr "No se pueden guardar las ediciones en el elemento bloqueado."
-#: ../../addon/cart/submodules/hzservices.php:246
-#: ../../addon/cart/submodules/hzservices.php:333
+#: ../../addon/cart/submodules/hzservices.php:245
+#: ../../addon/cart/submodules/hzservices.php:332
msgid "SKU not found."
msgstr "No se ha encontrado el SKU"
-#: ../../addon/cart/submodules/hzservices.php:299
-#: ../../addon/cart/submodules/hzservices.php:303
+#: ../../addon/cart/submodules/hzservices.php:298
+#: ../../addon/cart/submodules/hzservices.php:302
msgid "Invalid Activation Directive."
msgstr "Directiva de activación no válida."
-#: ../../addon/cart/submodules/hzservices.php:374
-#: ../../addon/cart/submodules/hzservices.php:378
+#: ../../addon/cart/submodules/hzservices.php:373
+#: ../../addon/cart/submodules/hzservices.php:377
msgid "Invalid Deactivation Directive."
msgstr "Directiva de desactivación no válida"
-#: ../../addon/cart/submodules/hzservices.php:564
+#: ../../addon/cart/submodules/hzservices.php:563
msgid "Add to this privacy group"
msgstr "Añadir a este grupo de canales"
-#: ../../addon/cart/submodules/hzservices.php:580
+#: ../../addon/cart/submodules/hzservices.php:579
msgid "Set user service class"
msgstr "Configurar la clase de servicio al usuario"
-#: ../../addon/cart/submodules/hzservices.php:607
+#: ../../addon/cart/submodules/hzservices.php:606
msgid "You must be using a local account to purchase this service."
msgstr "Usted debe estar usando una cuenta local para comprar este servicio."
-#: ../../addon/cart/submodules/hzservices.php:647
-#: ../../addon/cart/submodules/manualcat.php:256
+#: ../../addon/cart/submodules/hzservices.php:646
+#: ../../addon/cart/submodules/manualcat.php:254
msgid "Changes Locked"
msgstr "Cambios bloqueados"
-#: ../../addon/cart/submodules/hzservices.php:651
-#: ../../addon/cart/submodules/manualcat.php:260
+#: ../../addon/cart/submodules/hzservices.php:650
+#: ../../addon/cart/submodules/manualcat.php:258
msgid "Item available for purchase."
msgstr "Artículo disponible para la compra."
-#: ../../addon/cart/submodules/hzservices.php:661
-#: ../../addon/cart/submodules/manualcat.php:270
+#: ../../addon/cart/submodules/hzservices.php:660
+#: ../../addon/cart/submodules/manualcat.php:268
msgid "Photo URL"
msgstr "URL de la foto"
-#: ../../addon/cart/submodules/hzservices.php:665
+#: ../../addon/cart/submodules/hzservices.php:664
msgid "Add buyer to privacy group"
msgstr "Agregar comprador al grupo de canales"
-#: ../../addon/cart/submodules/hzservices.php:670
+#: ../../addon/cart/submodules/hzservices.php:669
msgid "Add buyer as connection"
msgstr "Añadir comprador como conexión"
-#: ../../addon/cart/submodules/hzservices.php:678
-#: ../../addon/cart/submodules/hzservices.php:720
+#: ../../addon/cart/submodules/hzservices.php:677
+#: ../../addon/cart/submodules/hzservices.php:719
msgid "Set Service Class"
msgstr "Establecer clase de servicio"
-#: ../../addon/cart/submodules/orderoptions.php:70
-msgid "Enable Order/Item Options"
-msgstr "Habilitar las opciones de pedido/artículo"
-
-#: ../../addon/cart/submodules/orderoptions.php:333
-#: ../../addon/cart/submodules/orderoptions.php:357
-#: ../../addon/cart/submodules/orderoptions.php:433
-#: ../../addon/cart/submodules/orderoptions.php:457
-msgid "Label"
-msgstr "Etiqueta"
-
-#: ../../addon/cart/submodules/orderoptions.php:334
-#: ../../addon/cart/submodules/orderoptions.php:358
-#: ../../addon/cart/submodules/orderoptions.php:434
-#: ../../addon/cart/submodules/orderoptions.php:458
-#: ../../include/datetime.php:211 ../../Zotlabs/Module/Events.php:468
-#: ../../Zotlabs/Module/Events.php:473 ../../Zotlabs/Module/Appman.php:143
-#: ../../Zotlabs/Module/Appman.php:144 ../../Zotlabs/Module/Profiles.php:747
-#: ../../Zotlabs/Module/Profiles.php:751
-msgid "Required"
-msgstr "Obligatorio"
-
-#: ../../addon/cart/submodules/orderoptions.php:336
-#: ../../addon/cart/submodules/orderoptions.php:360
-#: ../../addon/cart/submodules/orderoptions.php:436
-#: ../../addon/cart/submodules/orderoptions.php:460
-msgid "Instructions"
-msgstr "Instrucciones"
-
#: ../../addon/cart/submodules/paypalbutton.php:85
msgid "Enable Paypal Button Module"
msgstr "Habilitar el módulo del botón de Paypal"
#: ../../addon/cart/submodules/paypalbutton.php:93
-#: ../../addon/cart/submodules/paypalbuttonV2.php:94
msgid "Use Production Key"
msgstr "Utilizar clave en entorno de producción"
#: ../../addon/cart/submodules/paypalbutton.php:100
-#: ../../addon/cart/submodules/paypalbuttonV2.php:101
msgid "Paypal Sandbox Client Key"
msgstr "Clave de cliente en el entorno de pruebas de Paypal"
#: ../../addon/cart/submodules/paypalbutton.php:107
-#: ../../addon/cart/submodules/paypalbuttonV2.php:108
msgid "Paypal Sandbox Secret Key"
msgstr "Clave secreta en el entorno de pruebas de Paypal"
#: ../../addon/cart/submodules/paypalbutton.php:113
-#: ../../addon/cart/submodules/paypalbuttonV2.php:114
msgid "Paypal Production Client Key"
msgstr "Clave de cliente en el entorno de producción de Paypal"
#: ../../addon/cart/submodules/paypalbutton.php:120
-#: ../../addon/cart/submodules/paypalbuttonV2.php:121
msgid "Paypal Production Secret Key"
msgstr "Clave secreta en el entorno de producción de Paypal"
#: ../../addon/cart/submodules/paypalbutton.php:252
-#: ../../addon/cart/submodules/paypalbuttonV2.php:264
msgid "Paypal button payments are not enabled."
msgstr "Los pagos con el botón de Paypal no están habilitados."
#: ../../addon/cart/submodules/paypalbutton.php:270
-#: ../../addon/cart/submodules/paypalbuttonV2.php:282
msgid ""
"Paypal button payments are not properly configured. Please choose another "
"payment option."
msgstr "Los pagos con el botón de Paypal no están configurados correctamente. Por favor, elija otra opción de pago."
-#: ../../addon/cart/submodules/paypalbuttonV2.php:86
-msgid "Enable Paypal Button Module (API-v2)"
-msgstr "Habilitar el módulo de botones de Paypal (API-v2)"
-
#: ../../addon/cart/submodules/manualcat.php:61
msgid "Enable Manual Cart Module"
msgstr "Habilitar el módulo de carro manual"
@@ -2892,7 +2900,7 @@ msgstr "Habilitar el módulo de carro manual"
msgid "Access Denied."
msgstr "Acceso denegado"
-#: ../../addon/cart/myshop.php:111 ../../addon/cart/cart.php:1331
+#: ../../addon/cart/myshop.php:111 ../../addon/cart/cart.php:1328
msgid "Order Not Found"
msgstr "No se ha encontrado el pedido"
@@ -2901,80 +2909,72 @@ msgstr "No se ha encontrado el pedido"
msgid "Invalid Item"
msgstr "Elemento no válido"
-#: ../../addon/cart/Settings/Cart.php:58
+#: ../../addon/cart/Settings/Cart.php:56
msgid "Enable Test Catalog"
msgstr "Habilitar el catálogo de pruebas"
-#: ../../addon/cart/Settings/Cart.php:70
+#: ../../addon/cart/Settings/Cart.php:68
msgid "Enable Manual Payments"
msgstr "Permitir pagos manuales"
-#: ../../addon/cart/Settings/Cart.php:90
+#: ../../addon/cart/Settings/Cart.php:88
msgid "Base Merchant Currency"
msgstr "Divida base del vendedor"
-#: ../../addon/cart/Settings/Cart.php:129 ../../addon/cart/cart.php:1260
+#: ../../addon/cart/Settings/Cart.php:111 ../../addon/cart/cart.php:1257
msgid "Cart Settings"
msgstr "Configuración del carro de la compra"
-#: ../../addon/cart/cart.php:153
+#: ../../addon/cart/cart.php:150
msgid "DB Cleanup Failure"
msgstr "Fallo de limpieza de la base de datos"
-#: ../../addon/cart/cart.php:559
+#: ../../addon/cart/cart.php:556
msgid "[cart] Item Added"
msgstr "[cesta] Artículo añadido"
-#: ../../addon/cart/cart.php:948
+#: ../../addon/cart/cart.php:945
msgid "Order already checked out."
msgstr "El pedido ya ha sido revisado"
-#: ../../addon/cart/cart.php:1253
+#: ../../addon/cart/cart.php:1250
msgid "Drop database tables when uninstalling."
msgstr "Eliminar tablas de la base de datos al desinstalar."
-#: ../../addon/cart/cart.php:1272 ../../addon/cart/cart.php:1275
+#: ../../addon/cart/cart.php:1269 ../../addon/cart/cart.php:1272
msgid "Shop"
msgstr "Comprar"
-#: ../../addon/cart/cart.php:1295 ../../addon/flashcards/Mod_Flashcards.php:51
+#: ../../addon/cart/cart.php:1292 ../../addon/flashcards/Mod_Flashcards.php:37
#: ../../Zotlabs/Module/Wiki.php:35
msgid "Profile Unavailable."
msgstr "Perfil no disponible"
-#: ../../addon/cart/cart.php:1392
+#: ../../addon/cart/cart.php:1389
msgid "Cart utilities for orders and payments"
msgstr "Utilidades del carro para pedidos y pagos"
-#: ../../addon/cart/cart.php:1430
+#: ../../addon/cart/cart.php:1427
msgid "You must be logged into the Grid to shop."
msgstr "Debe iniciar sesión en la red para comprar."
-#: ../../addon/cart/cart.php:1471
+#: ../../addon/cart/cart.php:1468
msgid "Access denied."
msgstr "Acceso denegado"
-#: ../../addon/cart/cart.php:1523 ../../addon/cart/cart.php:1666
+#: ../../addon/cart/cart.php:1520 ../../addon/cart/cart.php:1663
msgid "No Order Found"
msgstr "No se ha encontrado ningún pedido"
-#: ../../addon/cart/cart.php:1532
+#: ../../addon/cart/cart.php:1529
msgid "An unknown error has occurred Please start again."
msgstr "Se ha producido un error desconocido Vuelva a empezar."
-#: ../../addon/cart/cart.php:1675
-msgid "Requirements not met."
-msgstr "No se cumplen los requisitos."
-
-#: ../../addon/cart/cart.php:1675
-msgid "Review your order and complete any needed requirements."
-msgstr "Revise su pedido y complete los requisitos necesarios."
-
-#: ../../addon/cart/cart.php:1701
+#: ../../addon/cart/cart.php:1696
msgid "Invalid Payment Type. Please start again."
msgstr "Tipo de pago no válido. Por favor, empiece de nuevo."
-#: ../../addon/cart/cart.php:1708
+#: ../../addon/cart/cart.php:1703
msgid "Order not found"
msgstr "El pedido no se ha encontrado"
@@ -3020,7 +3020,7 @@ msgstr "Ocultar el botón y mostrar los smilies directamente."
msgid "Smileybutton Settings"
msgstr "Ajustes de Smileybutton"
-#: ../../addon/redfiles/redfilehelper.php:64 ../../include/attach.php:2035
+#: ../../addon/redfiles/redfilehelper.php:64
msgid "file"
msgstr "fichero"
@@ -3032,38 +3032,21 @@ msgstr "Importar repositorio de ficheros de Redmatrix"
msgid "This will import all your Redmatrix cloud files to this channel."
msgstr "Esto importará todos sus ficheros de la nube de Redmatrix a este canal."
-#: ../../addon/diaspora/diaspora.php:66
-msgid ""
-"Please install the statistics addon to be able to configure a diaspora relay"
-msgstr "Por favor, instale el complemento de estadísticas para poder configurar el reenvío de diaspora"
-
-#: ../../addon/diaspora/diaspora.php:76
-msgid "Diaspora Relay Handle"
-msgstr "Gestionar el reenvío de Diaspora"
-
-#: ../../addon/diaspora/diaspora.php:76
-msgid "Address of a diaspora relay. Example: relay@diasporarelay.tld"
-msgstr "La dirección de una transmisión de diaspora. Ejemplo: relay@diasporarelay.tld"
-
-#: ../../addon/diaspora/diaspora.php:96
-msgid "Diaspora relay could not be imported"
-msgstr "El reenvío de Diaspora no ha podido ser importado"
-
#: ../../addon/diaspora/p.php:48 ../../addon/diaspora/util.php:336
#: ../../addon/diaspora/util.php:349 ../../Zotlabs/Lib/Enotify.php:61
msgid "$projectname"
msgstr "$projectname"
-#: ../../addon/diaspora/import_diaspora.php:19
+#: ../../addon/diaspora/import_diaspora.php:18
msgid "No username found in import file."
msgstr "No se ha encontrado el nombre de usuario en el fichero de importación."
-#: ../../addon/diaspora/import_diaspora.php:44 ../../include/import.php:76
+#: ../../addon/diaspora/import_diaspora.php:43 ../../include/import.php:75
msgid "Unable to create a unique channel address. Import failed."
msgstr "No se ha podido crear una dirección de canal única. Ha fallado la importación."
-#: ../../addon/diaspora/import_diaspora.php:142
-#: ../../Zotlabs/Module/Import.php:597
+#: ../../addon/diaspora/import_diaspora.php:141
+#: ../../Zotlabs/Module/Import.php:594
msgid "Import completed."
msgstr "Importación completada."
@@ -3082,43 +3065,43 @@ msgstr "El protocolo de Diaspora no admite la independencia de la ubicación. La
msgid "Diaspora Protocol App"
msgstr "App Protocolo Diaspora"
-#: ../../addon/diaspora/Mod_Diaspora.php:75
+#: ../../addon/diaspora/Mod_Diaspora.php:77
msgid "Allow any Diaspora member to comment on your public posts"
msgstr "Permitir a cualquier miembro de Diaspora comentar sus entradas públicas"
-#: ../../addon/diaspora/Mod_Diaspora.php:79
+#: ../../addon/diaspora/Mod_Diaspora.php:81
msgid "Prevent your hashtags from being redirected to other sites"
msgstr "Impedir que sus \"hashtags\" sean redirigidos a otros sitios "
-#: ../../addon/diaspora/Mod_Diaspora.php:83
+#: ../../addon/diaspora/Mod_Diaspora.php:85
msgid ""
"Sign and forward posts and comments with no existing Diaspora signature"
msgstr "Firmar y enviar entradas y comentarios sin firma de Diaspora"
-#: ../../addon/diaspora/Mod_Diaspora.php:88
+#: ../../addon/diaspora/Mod_Diaspora.php:90
msgid "Followed hashtags (comma separated, do not include the #)"
msgstr "\"Hashtags\" seguidos (separados por comas, sin incluir #)"
-#: ../../addon/diaspora/Mod_Diaspora.php:97
+#: ../../addon/diaspora/Mod_Diaspora.php:99
msgid "Diaspora Protocol"
msgstr "Protocolo Diaspora"
-#: ../../addon/diaspora/Receiver.php:1541
+#: ../../addon/diaspora/Receiver.php:1536
#, php-format
msgid "%1$s dislikes %2$s's %3$s"
msgstr "a %1$s no le gusta el %3$s de %2$s"
-#: ../../addon/diaspora/Receiver.php:2184 ../../Zotlabs/Module/Like.php:432
+#: ../../addon/diaspora/Receiver.php:2178 ../../Zotlabs/Module/Like.php:457
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s participa"
-#: ../../addon/diaspora/Receiver.php:2186 ../../Zotlabs/Module/Like.php:434
+#: ../../addon/diaspora/Receiver.php:2180 ../../Zotlabs/Module/Like.php:459
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s no participa"
-#: ../../addon/diaspora/Receiver.php:2188 ../../Zotlabs/Module/Like.php:436
+#: ../../addon/diaspora/Receiver.php:2182 ../../Zotlabs/Module/Like.php:461
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s quizá participe"
@@ -3167,67 +3150,63 @@ msgstr "Habilitar la interfaz JavaScript de seguimiento de errores"
msgid "This feature requires Piwik >= 2.2.0"
msgstr "Esta funcionalidad requiere Piwik >= 2.2.0"
-#: ../../addon/workflow/workflow.php:222
+#: ../../addon/workflow/workflow.php:212
msgid "Workflow user."
msgstr "Usuario de Workflow."
-#: ../../addon/workflow/workflow.php:272
+#: ../../addon/workflow/workflow.php:259
msgid "This channel"
msgstr "Este canal"
-#: ../../addon/workflow/workflow.php:285 ../../Zotlabs/Module/Locs.php:119
+#: ../../addon/workflow/workflow.php:272 ../../Zotlabs/Module/Locs.php:119
msgid "Primary"
msgstr "Primario"
-#: ../../addon/workflow/workflow.php:541
-#: ../../addon/workflow/workflow.php:1437
-#: ../../addon/workflow/workflow.php:1456
+#: ../../addon/workflow/workflow.php:480
+#: ../../addon/workflow/workflow.php:1233
+#: ../../addon/workflow/workflow.php:1251
msgid "Workflow"
msgstr "Workflow"
-#: ../../addon/workflow/workflow.php:1425
-msgid "No Workflows Available"
-msgstr "No hay flujos de trabajo disponibles"
-
-#: ../../addon/workflow/workflow.php:1455
+#: ../../addon/workflow/workflow.php:1250
msgid "Add item to which workflow"
msgstr "A qué Workflow añadir un elemento"
-#: ../../addon/workflow/workflow.php:1515
-#: ../../addon/workflow/workflow.php:1634
+#: ../../addon/workflow/workflow.php:1297
+#: ../../addon/workflow/workflow.php:1394
msgid "Create Workflow Item"
msgstr "Crear elemento de Workflow"
-#: ../../addon/workflow/workflow.php:2596
+#: ../../addon/workflow/workflow.php:2270
msgid "Link"
msgstr "Enlazar"
-#: ../../addon/workflow/workflow.php:2598
+#: ../../addon/workflow/workflow.php:2272
msgid "Web link."
msgstr "Enlace Web."
-#: ../../addon/workflow/workflow.php:2617
-#: ../../addon/workflow/workflow.php:2678 ../../Zotlabs/Module/Cdav.php:1370
-#: ../../Zotlabs/Module/Connedit.php:926
+#: ../../addon/workflow/workflow.php:2291
+#: ../../addon/workflow/workflow.php:2344 ../../Zotlabs/Module/Cdav.php:1375
+#: ../../Zotlabs/Module/Connedit.php:925
msgid "Title"
msgstr "Título"
-#: ../../addon/workflow/workflow.php:2619
-#: ../../addon/workflow/workflow.php:2680
+#: ../../addon/workflow/workflow.php:2293
+#: ../../addon/workflow/workflow.php:2346
msgid "Brief description or title"
msgstr "Breve descripción o título"
-#: ../../addon/workflow/workflow.php:2625 ../../Zotlabs/Widget/Notes.php:21
-#: ../../Zotlabs/Lib/Apps.php:370
+#: ../../addon/workflow/workflow.php:2299 ../../Zotlabs/Widget/Notes.php:21
+#: ../../Zotlabs/Lib/Apps.php:369
msgid "Notes"
msgstr "Notas"
-#: ../../addon/workflow/workflow.php:2627
-#: ../../addon/workflow/workflow.php:2688
+#: ../../addon/workflow/workflow.php:2301
+#: ../../addon/workflow/workflow.php:2354
msgid "Notes and Info"
msgstr "Notas e información"
-#: ../../addon/workflow/workflow.php:2686
+#: ../../addon/workflow/workflow.php:2352
msgid "Body"
msgstr "Cuerpo"
@@ -3329,6 +3308,52 @@ msgstr "Múestrenos su agrado en Hubzilla"
msgid "Embed:"
msgstr "Incorporado: "
+#: ../../addon/chords/chords.php:33
+msgid "Quick Reference"
+msgstr "Referencia rápida"
+
+#: ../../addon/chords/Mod_Chords.php:44
+msgid ""
+"This is a fairly comprehensive and complete guitar chord dictionary which "
+"will list most of the available ways to play a certain chord, starting from "
+"the base of the fingerboard up to a few frets beyond the twelfth fret "
+"(beyond which everything repeats). A couple of non-standard tunings are "
+"provided for the benefit of slide players, etc."
+msgstr "Se trata de un diccionario bastante amplio y completo de acordes de guitarra que enumerará la mayor parte de las formas disponibles para tocar un acorde determinado, partiendo de la base del diapasón hasta unos pocos trastes más allá del traste doce (más allá del cual todo se repite). Se proporcionan un par de afinaciones no convencionales para provecho de los guitarristas con \"slides\" ( barras de acero), etc."
+
+#: ../../addon/chords/Mod_Chords.php:46
+msgid ""
+"Chord names start with a root note (A-G) and may include sharps (#) and "
+"flats (b). This software will parse most of the standard naming conventions "
+"such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."
+msgstr "Los nombres de acordes comienzan con una nota fundamental (La-Sol) y pueden incluir sostenidos (#) y bemoles (b). Este software analizará la mayor parte de las convenciones de nomenclatura estándar como maj, min, tenue, SUS (2 ó 4), aug, con la repetición de elementos opcionales."
+
+#: ../../addon/chords/Mod_Chords.php:48
+msgid ""
+"Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, "
+"E7b13b11 ..."
+msgstr "Ejemplos válidos son A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."
+
+#: ../../addon/chords/Mod_Chords.php:51
+msgid "Guitar Chords"
+msgstr "Acordes de guitarra"
+
+#: ../../addon/chords/Mod_Chords.php:52
+msgid "The complete online chord dictionary"
+msgstr "El diccionario completo de acordes en línea"
+
+#: ../../addon/chords/Mod_Chords.php:57
+msgid "Tuning"
+msgstr "Afinación"
+
+#: ../../addon/chords/Mod_Chords.php:58
+msgid "Chord name: example: Em7"
+msgstr "Nombre del acorde, por ejemplo: Em7"
+
+#: ../../addon/chords/Mod_Chords.php:59
+msgid "Show for left handed stringing"
+msgstr "Mostrar para tocadores zurdos"
+
#: ../../addon/opensearch/opensearch.php:26
#, php-format
msgctxt "opensearch"
@@ -3374,6 +3399,70 @@ msgstr "Offset máximo en metros"
msgid "Fuzzy Location"
msgstr "Fuzzy Location"
+#: ../../addon/flattrwidget/flattrwidget.php:50
+msgid "Flattr this!"
+msgstr "¡Apoyar esto en Flattr!"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:41
+msgid "Flattr widget settings updated."
+msgstr "Los ajustes del widget Flattr han sido actualizados."
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:53
+msgid "Flattr Widget App"
+msgstr "App Flattr Widget"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:54
+msgid "Add a Flattr button to your channel page"
+msgstr "Proporcionar un botón Flattr a la página de su canal"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:65
+msgid "Flattr user"
+msgstr "Usuario en Flattr"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69
+msgid "URL of the Thing to flattr"
+msgstr "URL de la Cosa para apoyar en flattr"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:69
+msgid "If empty channel URL is used"
+msgstr "Si está vacío, se usa la URL del canal"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73
+msgid "Title of the Thing to flattr"
+msgstr "Título de la Cosa para apoyar en flattr"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:73
+msgid "If empty \"channel name on The Hubzilla\" will be used"
+msgstr "Si está vacío, se usará \"nombre del canal en Hubzilla\""
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
+msgid "Static or dynamic flattr button"
+msgstr "Botón de flattr estático o dinámico"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
+msgid "static"
+msgstr "estático"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:77
+msgid "dynamic"
+msgstr "dinámico"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
+msgid "Alignment of the widget"
+msgstr "Alineamiento del widget"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
+msgid "left"
+msgstr "izquierda"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:81
+msgid "right"
+msgstr "derecha"
+
+#: ../../addon/flattrwidget/Mod_Flattrwidget.php:89
+msgid "Flattr Widget"
+msgstr "Flattr Widget"
+
#: ../../addon/hubwall/hubwall.php:19
msgid "Send email to all members"
msgstr "Enviar un correo electrónico a todos los miembros"
@@ -3423,32 +3512,32 @@ msgstr "%s : Falló el envío del mensaje."
msgid "Message sent to %s. New account registration: %s"
msgstr "Mensaje enviado a %s. Registro de una nueva cuenta: %s"
-#: ../../addon/flashcards/Mod_Flashcards.php:218
+#: ../../addon/flashcards/Mod_Flashcards.php:169
msgid "Not allowed."
msgstr "No permitido/a."
-#: ../../addon/flashcards/Mod_Flashcards.php:254
-#: ../../include/acl_selectors.php:123 ../../Zotlabs/Module/Chat.php:241
+#: ../../addon/flashcards/Mod_Flashcards.php:205
+#: ../../include/acl_selectors.php:123 ../../Zotlabs/Module/Chat.php:243
#: ../../Zotlabs/Module/Filestorage.php:190
-#: ../../Zotlabs/Module/Photos.php:677 ../../Zotlabs/Module/Photos.php:1046
-#: ../../Zotlabs/Module/Thing.php:321 ../../Zotlabs/Module/Thing.php:374
-#: ../../Zotlabs/Module/Connedit.php:691
+#: ../../Zotlabs/Module/Photos.php:675 ../../Zotlabs/Module/Photos.php:1044
+#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372
+#: ../../Zotlabs/Module/Connedit.php:690
msgid "Permissions"
msgstr "Permisos"
-#: ../../addon/flashcards/Mod_Flashcards.php:261
+#: ../../addon/flashcards/Mod_Flashcards.php:212
#: ../../Zotlabs/Module/Filestorage.php:197
msgid "Set/edit permissions"
msgstr "Establecer/editar los permisos"
-#: ../../addon/flashcards/Mod_Flashcards.php:284
-#: ../../addon/flashcards/Mod_Flashcards.php:285 ../../include/items.php:3888
+#: ../../addon/flashcards/Mod_Flashcards.php:235
+#: ../../addon/flashcards/Mod_Flashcards.php:236 ../../include/items.php:3719
#: ../../Zotlabs/Module/Filestorage.php:26
#: ../../Zotlabs/Module/Admin/Themes.php:72
#: ../../Zotlabs/Module/Admin/Addons.php:260
#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:45
-#: ../../Zotlabs/Module/Display.php:460 ../../Zotlabs/Module/Admin.php:62
-#: ../../Zotlabs/Module/Thing.php:96
+#: ../../Zotlabs/Module/Display.php:455 ../../Zotlabs/Module/Admin.php:62
+#: ../../Zotlabs/Module/Thing.php:94
msgid "Item not found."
msgstr "Elemento no encontrado."
@@ -3500,7 +3589,7 @@ msgstr "No lo menciones."
msgid "&lt;blush&gt;"
msgstr "&lt;sonrojo&gt;"
-#: ../../addon/buglink/buglink.php:16 ../../Zotlabs/Lib/Apps.php:328
+#: ../../addon/buglink/buglink.php:16 ../../Zotlabs/Lib/Apps.php:327
msgid "Report Bug"
msgstr "Informe de errores"
@@ -3611,16 +3700,6 @@ msgstr "Su cuenta en %s caducará en unos pocos días."
msgid "Your $Productname test account is about to expire."
msgstr "Su cuenta de prueba de $Productname está a punto de caducar."
-#: ../../addon/hideaside/Mod_Hideaside.php:23
-#: ../../addon/hideaside/Mod_Hideaside.php:27
-msgid "Hide Aside App"
-msgstr "App de ocultamiento del panel lateral"
-
-#: ../../addon/hideaside/Mod_Hideaside.php:24
-#: ../../addon/hideaside/Mod_Hideaside.php:28
-msgid "Fade out aside areas after a while when using endless scroll"
-msgstr "Se desvanecen las áreas laterales cuando se usa un scroll sin fin"
-
#: ../../addon/skeleton/Mod_Skeleton.php:32
msgid "Skeleton App"
msgstr "App Skeleton"
@@ -3641,86 +3720,6 @@ msgstr "Un ajuste"
msgid "Skeleton Settings"
msgstr "Ajustes de Skeleton"
-#: ../../addon/socialauth/Mod_SocialAuth.php:104
-#: ../../addon/socialauth/Mod_SocialAuth.php:176
-msgid "Network error"
-msgstr "Error de red"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:108
-#: ../../addon/socialauth/Mod_SocialAuth.php:180
-msgid "API error"
-msgstr "Error de API"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:112
-#: ../../addon/socialauth/Mod_SocialAuth.php:184
-msgid "Unknown issue"
-msgstr "Problema desconocido"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:168
-msgid "Unable to login using email address "
-msgstr "Imposible iniciar sesión usando la dirección de correo electrónico"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:202
-msgid "Sign in to Hubzilla using a social account"
-msgstr "Iniciar sesión en Hubzilla usando una cuenta social"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:207
-msgid "Social Authentication using your social media account"
-msgstr "Autenticación usando su cuenta de medios sociales"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:211
-msgid ""
-"This app enables one or more social provider sign-in buttons on the login "
-"page."
-msgstr "Esta aplicación habilita uno o más botones de inicio de sesión de proveedores sociales en la página de inicio de sesión."
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:229
-msgid "Add an identity provider"
-msgstr "Añadir un proveedor de identidad"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:256
-msgid "Enable "
-msgstr "Habilitar"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:263
-msgid "Key"
-msgstr "Clave"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:263
-#: ../../addon/socialauth/Mod_SocialAuth.php:268
-#: ../../addon/socialauth/Mod_SocialAuth.php:284
-#: ../../addon/socialauth/Mod_SocialAuth.php:297
-msgid "Word"
-msgstr "Palabra"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:268
-msgid "Secret"
-msgstr "Secret"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:297
-msgid "Add a custom provider"
-msgstr "Añadir un proveedor personalizado"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:317
-msgid "Remove an identity provider"
-msgstr "Eliminar un proveedor de identidad"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:327
-msgid "Social authentication"
-msgstr "Autenticación social"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:366
-msgid "Error while saving provider settings"
-msgstr "Se ha producido un error mientras se guardaban los ajustes"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:382
-msgid "Custom provider already exists"
-msgstr "Ya existe un proveedor personalizado"
-
-#: ../../addon/socialauth/Mod_SocialAuth.php:399
-msgid "Social authentication settings saved."
-msgstr "Se han guardado los ajustes de la autenticación social."
-
#: ../../addon/nsfw/nsfw.php:152
msgid "Possible adult content"
msgstr "Posible contenido para adultos"
@@ -3874,31 +3873,31 @@ msgstr "No se pudo enviar el correo."
msgid "Mail Test"
msgstr "Prueba de correo"
-#: ../../addon/ljpost/Mod_Ljpost.php:38
+#: ../../addon/ljpost/Mod_Ljpost.php:37
msgid "Livejournal Crosspost Connector App"
msgstr "App Livejournal Crosspost Connector"
-#: ../../addon/ljpost/Mod_Ljpost.php:39
+#: ../../addon/ljpost/Mod_Ljpost.php:38
msgid "Relay public posts to Livejournal"
msgstr "Retransmisión de entradas públicas a Livejournal"
-#: ../../addon/ljpost/Mod_Ljpost.php:55
+#: ../../addon/ljpost/Mod_Ljpost.php:54
msgid "Livejournal username"
msgstr "Nombre de usuario en Livejournal"
-#: ../../addon/ljpost/Mod_Ljpost.php:59
+#: ../../addon/ljpost/Mod_Ljpost.php:58
msgid "Livejournal password"
msgstr "Contraseña en Livejournal"
-#: ../../addon/ljpost/Mod_Ljpost.php:63
+#: ../../addon/ljpost/Mod_Ljpost.php:62
msgid "Post to Livejournal by default"
msgstr "Publicar en Livejournal por defecto"
-#: ../../addon/ljpost/Mod_Ljpost.php:67
+#: ../../addon/ljpost/Mod_Ljpost.php:66
msgid "Send wall-to-wall posts to Livejournal"
msgstr "Enviar entradas de Muro-Muro a Livejournal"
-#: ../../addon/ljpost/Mod_Ljpost.php:79
+#: ../../addon/ljpost/Mod_Ljpost.php:75
msgid "Livejournal Crosspost Connector"
msgstr "Livejournal Crosspost Connector"
@@ -3906,11 +3905,64 @@ msgstr "Livejournal Crosspost Connector"
msgid "Post to Livejournal"
msgstr "Publicar en Livejournal"
-#: ../../addon/ljpost/ljpost.php:127
+#: ../../addon/ljpost/ljpost.php:125
msgid "Posted by"
msgstr "Publicado por "
-#: ../../addon/mdpost/mdpost.php:41 ../../include/text.php:2097
+#: ../../addon/chess/Mod_Chess.php:180 ../../addon/chess/Mod_Chess.php:377
+msgid "Invalid game."
+msgstr "Juego no válido."
+
+#: ../../addon/chess/Mod_Chess.php:186 ../../addon/chess/Mod_Chess.php:417
+msgid "You are not a player in this game."
+msgstr "Usted no participa en este juego."
+
+#: ../../addon/chess/Mod_Chess.php:242
+msgid "You must be a local channel to create a game."
+msgstr "Debe ser un canal local para crear un juego"
+
+#: ../../addon/chess/Mod_Chess.php:260
+msgid "You must select one opponent that is not yourself."
+msgstr "Debe seleccionar un oponente que no sea usted mismo."
+
+#: ../../addon/chess/Mod_Chess.php:271
+msgid "Random color chosen."
+msgstr "Elegido un color aleatorio."
+
+#: ../../addon/chess/Mod_Chess.php:279
+msgid "Error creating new game."
+msgstr "Error al crear un nuevo juego."
+
+#: ../../addon/chess/Mod_Chess.php:306 ../../include/channel.php:1273
+msgid "Requested channel is not available."
+msgstr "El canal solicitado no está disponible."
+
+#: ../../addon/chess/Mod_Chess.php:311 ../../addon/chess/Mod_Chess.php:333
+msgid "Chess not installed."
+msgstr "Chess no está instalado."
+
+#: ../../addon/chess/Mod_Chess.php:326
+msgid "You must select a local channel /chess/channelname"
+msgstr "Debe seleccionar un canal local /chess/nombredelcanal"
+
+#: ../../addon/chess/Mod_Chess.php:343 ../../Zotlabs/Module/Ochannel.php:32
+#: ../../Zotlabs/Module/Channel.php:42 ../../Zotlabs/Module/Chat.php:31
+msgid "You must be logged in to see this page."
+msgstr "Debe haber iniciado sesión para poder ver esta página."
+
+#: ../../addon/chess/Mod_Chess.php:447 ../../include/help.php:132
+#: ../../Zotlabs/Module/Display.php:140 ../../Zotlabs/Module/Display.php:157
+#: ../../Zotlabs/Module/Display.php:174 ../../Zotlabs/Module/Display.php:180
+#: ../../Zotlabs/Module/Page.php:136 ../../Zotlabs/Module/Block.php:77
+#: ../../Zotlabs/Lib/NativeWikiPage.php:521 ../../Zotlabs/Web/Router.php:185
+msgid "Page not found."
+msgstr "Página no encontrada."
+
+#: ../../addon/chess/chess.php:645
+msgid "Enable notifications"
+msgstr "Habilitar notificaciones"
+
+#: ../../addon/mdpost/mdpost.php:41 ../../include/text.php:1983
#: ../../Zotlabs/Widget/Wiki_pages.php:38
#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../Zotlabs/Module/Wiki.php:217
#: ../../Zotlabs/Module/Wiki.php:371
@@ -3933,6 +3985,74 @@ msgstr "Esto importará todos sus ficheros en la nube desde otro servidor."
msgid "Hubzilla Server base URL"
msgstr "URL base del servidor Hubzilla"
+#: ../../addon/jappixmini/Mod_Jappixmini.php:96
+msgid "Jappixmini App"
+msgstr "App Jappixmini"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:97
+msgid "Provides a Facebook-like chat using Jappix Mini"
+msgstr "Proporciona un chat similar al de Facebook utilizando Jappix Mini"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:157
+#: ../../include/channel.php:1526 ../../include/channel.php:1697
+msgid "Status:"
+msgstr "Estado:"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:161
+msgid "Hide Jappixmini Chat-Widget from the webinterface"
+msgstr "Ocultar el widget de chat Jappixmini en la interfaz web"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:166
+msgid "Jabber username"
+msgstr "Nombre de usuario en Jabber"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:172
+msgid "Jabber server"
+msgstr "Servidor de Jabber"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:178
+msgid "Jabber BOSH host URL"
+msgstr "URL del host BOSH de Jabber"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:185
+msgid "Jabber password"
+msgstr "Contraseña en Jabber"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+msgid "Encrypt Jabber password with Hubzilla password"
+msgstr "Cifrar la contraseña de Jabber con la contraseña de Hubzilla"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:191
+#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:572
+#: ../../Zotlabs/Module/Settings/Channel.php:573
+#: ../../Zotlabs/Module/Settings/Channel.php:574
+msgid "Recommended"
+msgstr "Recomendado"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:199
+#: ../../addon/jappixmini/Mod_Jappixmini.php:203
+msgid "Approve subscription requests from Hubzilla contacts automatically"
+msgstr "Aprobar automáticamente las solicitudes de suscripción de los contactos de Hubzilla"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:207
+msgid "Purge internal list of jabber addresses of contacts"
+msgstr "Purgar la lista interna de las direcciones de contactos de jabber"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:212
+msgid "Configuration Help"
+msgstr "Ayuda para los ajustes"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:216
+#: ../../Zotlabs/Module/Cdav.php:1386 ../../Zotlabs/Module/Profiles.php:796
+#: ../../Zotlabs/Module/Connedit.php:936
+msgid "Add Contact"
+msgstr "Añadir un contacto"
+
+#: ../../addon/jappixmini/Mod_Jappixmini.php:258
+msgid "Jappixmini Settings"
+msgstr "Ajustes de Jappixmini"
+
#: ../../addon/authchoose/Mod_Authchoose.php:22
msgid ""
"Allow magic authentication only to websites of your immediate connections"
@@ -4030,20 +4150,20 @@ msgstr "Servidor BOSH de Jabber"
msgid "XMPP Settings"
msgstr "Ajustes de XMPP"
-#: ../../include/zot.php:773
+#: ../../include/zot.php:774
msgid "Invalid data packet"
msgstr "Paquete de datos no válido"
-#: ../../include/zot.php:800 ../../Zotlabs/Lib/Libzot.php:652
+#: ../../include/zot.php:801 ../../Zotlabs/Lib/Libzot.php:652
msgid "Unable to verify channel signature"
msgstr "No ha sido posible de verificar la firma del canal"
-#: ../../include/zot.php:2627 ../../Zotlabs/Lib/Libsync.php:740
+#: ../../include/zot.php:2628 ../../Zotlabs/Lib/Libsync.php:733
#, php-format
msgid "Unable to verify site signature for %s"
msgstr "No ha sido posible de verificar la firma del sitio para %s"
-#: ../../include/zot.php:4342
+#: ../../include/zot.php:4325
msgid "invalid target signature"
msgstr "La firma recibida no es válida"
@@ -4071,578 +4191,536 @@ msgstr "más antiguas"
msgid "newer"
msgstr "más recientes"
-#: ../../include/text.php:1005
+#: ../../include/text.php:1000
msgid "No connections"
msgstr "Sin conexiones"
-#: ../../include/text.php:1017 ../../include/features.php:133
-#: ../../Zotlabs/Module/Connections.php:374 ../../Zotlabs/Lib/Apps.php:333
+#: ../../include/text.php:1012 ../../include/features.php:133
+#: ../../Zotlabs/Module/Connections.php:351 ../../Zotlabs/Lib/Apps.php:332
msgid "Connections"
msgstr "Conexiones"
-#: ../../include/text.php:1025 ../../Zotlabs/Module/Viewconnections.php:80
-#: ../../Zotlabs/Module/Connections.php:288
-msgid "Accepts"
-msgstr "Se acepta"
-
-#: ../../include/text.php:1028 ../../Zotlabs/Module/Viewconnections.php:83
-#: ../../Zotlabs/Module/Connections.php:291
-msgid "Comments"
-msgstr "Comentarios"
-
-#: ../../include/text.php:1033 ../../Zotlabs/Module/Viewconnections.php:88
-#: ../../Zotlabs/Module/Connections.php:296
-msgid "Stream items"
-msgstr "Elementos del stream"
-
-#: ../../include/text.php:1038 ../../Zotlabs/Module/Viewconnections.php:93
-#: ../../Zotlabs/Module/Connections.php:301
-msgid "Wall posts"
-msgstr "Entradas del Muro"
-
-#: ../../include/text.php:1042 ../../Zotlabs/Module/Viewconnections.php:97
-#: ../../Zotlabs/Module/Connections.php:305
-msgid "Nothing"
-msgstr "Nada"
-
-#: ../../include/text.php:1057
+#: ../../include/text.php:1032
#, php-format
msgid "View all %s connections"
msgstr "Ver todas las %s conexiones"
-#: ../../include/text.php:1120
+#: ../../include/text.php:1094
#, php-format
msgid "Network: %s"
msgstr "Red %s"
-#: ../../include/text.php:1131 ../../include/text.php:1143
-#: ../../include/nav.php:188 ../../include/acl_selectors.php:118
+#: ../../include/text.php:1105 ../../include/text.php:1117
+#: ../../include/nav.php:186 ../../include/acl_selectors.php:118
#: ../../Zotlabs/Widget/Sitesearch.php:31
-#: ../../Zotlabs/Widget/Activity_filter.php:193
-#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:378
-#: ../../Zotlabs/Lib/Apps.php:353
+#: ../../Zotlabs/Widget/Activity_filter.php:151
+#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:355
+#: ../../Zotlabs/Lib/Apps.php:352
msgid "Search"
msgstr "Buscar"
-#: ../../include/text.php:1223 ../../include/text.php:1227
+#: ../../include/text.php:1197 ../../include/text.php:1201
msgid "poke"
msgstr "un toque"
-#: ../../include/text.php:1223 ../../include/text.php:1227
-#: ../../include/conversation.php:255
+#: ../../include/text.php:1197 ../../include/text.php:1201
+#: ../../include/conversation.php:251
msgid "poked"
msgstr "ha dado un toque a"
-#: ../../include/text.php:1228
+#: ../../include/text.php:1202
msgid "ping"
msgstr "un \"ping\""
-#: ../../include/text.php:1228
+#: ../../include/text.php:1202
msgid "pinged"
msgstr "ha enviado un \"ping\" a"
-#: ../../include/text.php:1229
+#: ../../include/text.php:1203
msgid "prod"
msgstr "una incitación "
-#: ../../include/text.php:1229
+#: ../../include/text.php:1203
msgid "prodded"
msgstr "ha incitado a "
-#: ../../include/text.php:1230
+#: ../../include/text.php:1204
msgid "slap"
msgstr "una bofetada "
-#: ../../include/text.php:1230
+#: ../../include/text.php:1204
msgid "slapped"
msgstr "ha abofeteado a "
-#: ../../include/text.php:1231
+#: ../../include/text.php:1205
msgid "finger"
msgstr "un \"finger\" "
-#: ../../include/text.php:1231
+#: ../../include/text.php:1205
msgid "fingered"
msgstr "envió un \"finger\" a"
-#: ../../include/text.php:1232
+#: ../../include/text.php:1206
msgid "rebuff"
msgstr "un reproche"
-#: ../../include/text.php:1232
+#: ../../include/text.php:1206
msgid "rebuffed"
msgstr "ha hecho un reproche a "
-#: ../../include/text.php:1255
+#: ../../include/text.php:1229
msgid "happy"
msgstr "feliz "
-#: ../../include/text.php:1256
+#: ../../include/text.php:1230
msgid "sad"
msgstr "triste "
-#: ../../include/text.php:1257
+#: ../../include/text.php:1231
msgid "mellow"
msgstr "tranquilo/a"
-#: ../../include/text.php:1258
+#: ../../include/text.php:1232
msgid "tired"
msgstr "cansado/a "
-#: ../../include/text.php:1259
+#: ../../include/text.php:1233
msgid "perky"
msgstr "vivaz"
-#: ../../include/text.php:1260
+#: ../../include/text.php:1234
msgid "angry"
msgstr "enfadado/a"
-#: ../../include/text.php:1261
+#: ../../include/text.php:1235
msgid "stupefied"
msgstr "asombrado/a"
-#: ../../include/text.php:1262
+#: ../../include/text.php:1236
msgid "puzzled"
msgstr "perplejo/a"
-#: ../../include/text.php:1263
+#: ../../include/text.php:1237
msgid "interested"
msgstr "interesado/a"
-#: ../../include/text.php:1264
+#: ../../include/text.php:1238
msgid "bitter"
msgstr "amargado/a"
-#: ../../include/text.php:1265
+#: ../../include/text.php:1239
msgid "cheerful"
msgstr "alegre"
-#: ../../include/text.php:1266
+#: ../../include/text.php:1240
msgid "alive"
msgstr "animado/a"
-#: ../../include/text.php:1267
+#: ../../include/text.php:1241
msgid "annoyed"
msgstr "molesto/a"
-#: ../../include/text.php:1268
+#: ../../include/text.php:1242
msgid "anxious"
msgstr "ansioso/a"
-#: ../../include/text.php:1269
+#: ../../include/text.php:1243
msgid "cranky"
msgstr "de mal humor"
-#: ../../include/text.php:1270
+#: ../../include/text.php:1244
msgid "disturbed"
msgstr "perturbado/a"
-#: ../../include/text.php:1271
+#: ../../include/text.php:1245
msgid "frustrated"
msgstr "frustrado/a"
-#: ../../include/text.php:1272
+#: ../../include/text.php:1246
msgid "depressed"
msgstr "deprimido/a"
-#: ../../include/text.php:1273
+#: ../../include/text.php:1247
msgid "motivated"
msgstr "motivado/a"
-#: ../../include/text.php:1274
+#: ../../include/text.php:1248
msgid "relaxed"
msgstr "relajado/a"
-#: ../../include/text.php:1275
+#: ../../include/text.php:1249
msgid "surprised"
msgstr "sorprendido/a"
-#: ../../include/text.php:1463 ../../include/js_strings.php:99
+#: ../../include/text.php:1437 ../../include/js_strings.php:96
msgid "Monday"
msgstr "lunes"
-#: ../../include/text.php:1463 ../../include/js_strings.php:100
+#: ../../include/text.php:1437 ../../include/js_strings.php:97
msgid "Tuesday"
msgstr "martes"
-#: ../../include/text.php:1463 ../../include/js_strings.php:101
+#: ../../include/text.php:1437 ../../include/js_strings.php:98
msgid "Wednesday"
msgstr "miércoles"
-#: ../../include/text.php:1463 ../../include/js_strings.php:102
+#: ../../include/text.php:1437 ../../include/js_strings.php:99
msgid "Thursday"
msgstr "jueves"
-#: ../../include/text.php:1463 ../../include/js_strings.php:103
+#: ../../include/text.php:1437 ../../include/js_strings.php:100
msgid "Friday"
msgstr "viernes"
-#: ../../include/text.php:1463 ../../include/js_strings.php:104
+#: ../../include/text.php:1437 ../../include/js_strings.php:101
msgid "Saturday"
msgstr "sábado"
-#: ../../include/text.php:1463 ../../include/js_strings.php:98
+#: ../../include/text.php:1437 ../../include/js_strings.php:95
msgid "Sunday"
msgstr "domingo"
-#: ../../include/text.php:1467 ../../include/js_strings.php:74
+#: ../../include/text.php:1441 ../../include/js_strings.php:71
msgid "January"
msgstr "enero"
-#: ../../include/text.php:1467 ../../include/js_strings.php:75
+#: ../../include/text.php:1441 ../../include/js_strings.php:72
msgid "February"
msgstr "febrero"
-#: ../../include/text.php:1467 ../../include/js_strings.php:76
+#: ../../include/text.php:1441 ../../include/js_strings.php:73
msgid "March"
msgstr "marzo"
-#: ../../include/text.php:1467 ../../include/js_strings.php:77
+#: ../../include/text.php:1441 ../../include/js_strings.php:74
msgid "April"
msgstr "abril"
-#: ../../include/text.php:1467
+#: ../../include/text.php:1441
msgid "May"
msgstr "mayo"
-#: ../../include/text.php:1467 ../../include/js_strings.php:79
+#: ../../include/text.php:1441 ../../include/js_strings.php:76
msgid "June"
msgstr "junio"
-#: ../../include/text.php:1467 ../../include/js_strings.php:80
+#: ../../include/text.php:1441 ../../include/js_strings.php:77
msgid "July"
msgstr "julio"
-#: ../../include/text.php:1467 ../../include/js_strings.php:81
+#: ../../include/text.php:1441 ../../include/js_strings.php:78
msgid "August"
msgstr "agosto"
-#: ../../include/text.php:1467 ../../include/js_strings.php:82
+#: ../../include/text.php:1441 ../../include/js_strings.php:79
msgid "September"
msgstr "septiembre"
-#: ../../include/text.php:1467 ../../include/js_strings.php:83
+#: ../../include/text.php:1441 ../../include/js_strings.php:80
msgid "October"
msgstr "octubre"
-#: ../../include/text.php:1467 ../../include/js_strings.php:84
+#: ../../include/text.php:1441 ../../include/js_strings.php:81
msgid "November"
msgstr "noviembre"
-#: ../../include/text.php:1467 ../../include/js_strings.php:85
+#: ../../include/text.php:1441 ../../include/js_strings.php:82
msgid "December"
msgstr "diciembre"
-#: ../../include/text.php:1541
+#: ../../include/text.php:1515
msgid "Unknown Attachment"
msgstr "Adjunto no reconocido"
-#: ../../include/text.php:1543 ../../Zotlabs/Module/Sharedwithme.php:108
+#: ../../include/text.php:1517 ../../Zotlabs/Module/Sharedwithme.php:106
#: ../../Zotlabs/Storage/Browser.php:293
msgid "Size"
msgstr "Tamaño"
-#: ../../include/text.php:1543 ../../include/feedutils.php:871
+#: ../../include/text.php:1517 ../../include/feedutils.php:870
msgid "unknown"
msgstr "desconocido"
-#: ../../include/text.php:1579
+#: ../../include/text.php:1553
msgid "remove category"
msgstr "eliminar el tema"
-#: ../../include/text.php:1655
+#: ../../include/text.php:1629
msgid "remove from file"
msgstr "eliminar del fichero"
-#: ../../include/text.php:1824 ../../include/message.php:13
+#: ../../include/text.php:1793 ../../include/message.php:13
msgid "Download binary/encrypted content"
msgstr "Descargar contenido binario o cifrado"
-#: ../../include/text.php:1895
-msgid "Poll has ended."
-msgstr "La encuesta ha terminado"
-
-#: ../../include/text.php:1898
-#, php-format
-msgid "Poll ends: %s"
-msgstr "Finales de la encuesta: %s"
-
-#: ../../include/text.php:1903 ../../Zotlabs/Lib/ThreadItem.php:444
-msgid "Vote"
-msgstr "Votar"
-
-#: ../../include/text.php:2055 ../../Zotlabs/Module/Events.php:669
+#: ../../include/text.php:1941 ../../Zotlabs/Module/Events.php:669
msgid "Link to Source"
msgstr "Enlazar con la entrada en su ubicación original"
-#: ../../include/text.php:2077 ../../include/language.php:424
+#: ../../include/text.php:1963 ../../include/language.php:423
msgid "default"
msgstr "por defecto"
-#: ../../include/text.php:2085
+#: ../../include/text.php:1971
msgid "Page layout"
msgstr "Plantilla de la página"
-#: ../../include/text.php:2085
+#: ../../include/text.php:1971
msgid "You can create your own with the layouts tool"
msgstr "Puede crear su propia disposición gráfica con la herramienta de plantillas"
-#: ../../include/text.php:2095 ../../Zotlabs/Widget/Wiki_pages.php:38
+#: ../../include/text.php:1981 ../../Zotlabs/Widget/Wiki_pages.php:38
#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../Zotlabs/Module/Wiki.php:217
#: ../../Zotlabs/Module/Wiki.php:371
msgid "BBcode"
msgstr "BBcode"
-#: ../../include/text.php:2096
+#: ../../include/text.php:1982
msgid "HTML"
msgstr "HTML"
-#: ../../include/text.php:2098 ../../Zotlabs/Widget/Wiki_pages.php:38
+#: ../../include/text.php:1984 ../../Zotlabs/Widget/Wiki_pages.php:38
#: ../../Zotlabs/Widget/Wiki_pages.php:95 ../../Zotlabs/Module/Wiki.php:217
msgid "Text"
msgstr "Texto"
-#: ../../include/text.php:2099
+#: ../../include/text.php:1985
msgid "Comanche Layout"
msgstr "Plantilla de Comanche"
-#: ../../include/text.php:2104
+#: ../../include/text.php:1990
msgid "PHP"
msgstr "PHP"
-#: ../../include/text.php:2113
+#: ../../include/text.php:1999
msgid "Page content type"
msgstr "Tipo de contenido de la página"
-#: ../../include/text.php:2236 ../../include/event.php:1259
-#: ../../include/conversation.php:121
-#: ../../Zotlabs/Module/Channel_calendar.php:219
-#: ../../Zotlabs/Module/Like.php:388 ../../Zotlabs/Module/Tagger.php:75
+#: ../../include/text.php:2122 ../../include/event.php:1213
+#: ../../include/conversation.php:119
+#: ../../Zotlabs/Module/Channel_calendar.php:213
+#: ../../Zotlabs/Module/Like.php:394 ../../Zotlabs/Module/Tagger.php:73
#: ../../Zotlabs/Module/Events.php:266
msgid "event"
msgstr "el/su evento"
-#: ../../include/text.php:2241 ../../include/conversation.php:148
-#: ../../Zotlabs/Module/Tagger.php:81
+#: ../../include/text.php:2127 ../../include/conversation.php:146
+#: ../../Zotlabs/Module/Tagger.php:79
msgid "comment"
msgstr "el comentario"
-#: ../../include/text.php:2246
+#: ../../include/text.php:2132
msgid "activity"
msgstr "la/su actividad"
-#: ../../include/text.php:2249
-msgid "poll"
-msgstr "encuesta"
-
-#: ../../include/text.php:2350
+#: ../../include/text.php:2233
msgid "a-z, 0-9, -, and _ only"
msgstr "a-z, 0-9, -, and _ only"
-#: ../../include/text.php:2676
+#: ../../include/text.php:2559
msgid "Design Tools"
msgstr "Herramientas de diseño web"
-#: ../../include/text.php:2679 ../../Zotlabs/Module/Blocks.php:154
+#: ../../include/text.php:2562 ../../Zotlabs/Module/Blocks.php:154
msgid "Blocks"
msgstr "Bloques"
-#: ../../include/text.php:2680 ../../Zotlabs/Module/Menu.php:171
+#: ../../include/text.php:2563 ../../Zotlabs/Module/Menu.php:171
msgid "Menus"
msgstr "Menús"
-#: ../../include/text.php:2681 ../../Zotlabs/Module/Layouts.php:184
+#: ../../include/text.php:2564 ../../Zotlabs/Module/Layouts.php:184
msgid "Layouts"
msgstr "Plantillas"
-#: ../../include/text.php:2682
+#: ../../include/text.php:2565
msgid "Pages"
msgstr "Páginas"
-#: ../../include/text.php:2694
+#: ../../include/text.php:2577
msgid "Import"
msgstr "Importar"
-#: ../../include/text.php:2695
+#: ../../include/text.php:2578
msgid "Import website..."
msgstr "Importar un sitio web..."
-#: ../../include/text.php:2696
+#: ../../include/text.php:2579
msgid "Select folder to import"
msgstr "Seleccionar la carpeta que se va a importar"
-#: ../../include/text.php:2697
+#: ../../include/text.php:2580
msgid "Import from a zipped folder:"
msgstr "Importar desde una carpeta comprimida: "
-#: ../../include/text.php:2698
+#: ../../include/text.php:2581
msgid "Import from cloud files:"
msgstr "Importar desde los ficheros en la nube: "
-#: ../../include/text.php:2699
+#: ../../include/text.php:2582
msgid "/cloud/channel/path/to/folder"
msgstr "/cloud/canal/ruta/a la/carpeta"
-#: ../../include/text.php:2700
+#: ../../include/text.php:2583
msgid "Enter path to website files"
msgstr "Ruta a los ficheros del sitio web"
-#: ../../include/text.php:2701
+#: ../../include/text.php:2584
msgid "Select folder"
msgstr "Seleccionar la carpeta"
-#: ../../include/text.php:2702
+#: ../../include/text.php:2585
msgid "Export website..."
msgstr "Exportar un sitio web..."
-#: ../../include/text.php:2703
+#: ../../include/text.php:2586
msgid "Export to a zip file"
msgstr "Exportar a un fichero comprimido .zip"
-#: ../../include/text.php:2704
+#: ../../include/text.php:2587
msgid "website.zip"
msgstr "sitio_web.zip"
-#: ../../include/text.php:2705
+#: ../../include/text.php:2588
msgid "Enter a name for the zip file."
msgstr "Escriba un nombre para el fichero zip."
-#: ../../include/text.php:2706
+#: ../../include/text.php:2589
msgid "Export to cloud files"
msgstr "Exportar a la nube de ficheros"
-#: ../../include/text.php:2707
+#: ../../include/text.php:2590
msgid "/path/to/export/folder"
msgstr "/ruta/para/exportar/carpeta"
-#: ../../include/text.php:2708
+#: ../../include/text.php:2591
msgid "Enter a path to a cloud files destination."
msgstr "Escriba una ruta de destino a la nube de ficheros."
-#: ../../include/text.php:2709
+#: ../../include/text.php:2592
msgid "Specify folder"
msgstr "Especificar una carpeta"
-#: ../../include/text.php:3082 ../../Zotlabs/Storage/Browser.php:131
+#: ../../include/text.php:2954 ../../Zotlabs/Storage/Browser.php:131
msgid "Collection"
msgstr "Colección"
-#: ../../include/opengraph.php:56
+#: ../../include/opengraph.php:58
#, php-format
msgid "This is the home page of %s."
msgstr "Esta es la página personal de %s."
-#: ../../include/event.php:33 ../../include/event.php:110
+#: ../../include/event.php:32 ../../include/event.php:95
msgid "l F d, Y \\@ g:i A"
msgstr "l d de F, Y \\@ G:i"
-#: ../../include/event.php:41
+#: ../../include/event.php:40
msgid "Starts:"
msgstr "Comienza:"
-#: ../../include/event.php:51
+#: ../../include/event.php:50
msgid "Finishes:"
msgstr "Finaliza:"
-#: ../../include/event.php:63 ../../include/event.php:134
-#: ../../include/channel.php:1618 ../../Zotlabs/Module/Directory.php:352
+#: ../../include/event.php:62 ../../include/event.php:112
+#: ../../include/channel.php:1521 ../../Zotlabs/Module/Directory.php:339
msgid "Location:"
msgstr "Ubicación:"
-#: ../../include/event.php:110
+#: ../../include/event.php:95
msgid "l F d, Y"
msgstr "l F d, Y"
-#: ../../include/event.php:114
+#: ../../include/event.php:99
msgid "Start:"
msgstr "Iniciar: "
-#: ../../include/event.php:118
+#: ../../include/event.php:103
msgid "End:"
msgstr "Finalizar: "
-#: ../../include/event.php:1106
+#: ../../include/event.php:1064
msgid "This event has been added to your calendar."
msgstr "Este evento ha sido añadido a su calendario."
-#: ../../include/event.php:1337
+#: ../../include/event.php:1290
msgid "Not specified"
msgstr "Sin especificar"
-#: ../../include/event.php:1338
+#: ../../include/event.php:1291
msgid "Needs Action"
msgstr "Necesita de una intervención"
-#: ../../include/event.php:1339
+#: ../../include/event.php:1292
msgid "Completed"
msgstr "Completado/a"
-#: ../../include/event.php:1340
+#: ../../include/event.php:1293
msgid "In Process"
msgstr "En proceso"
-#: ../../include/event.php:1341
+#: ../../include/event.php:1294
msgid "Cancelled"
msgstr "Cancelado/a"
-#: ../../include/event.php:1422 ../../include/connections.php:728
-#: ../../Zotlabs/Module/Cdav.php:1377 ../../Zotlabs/Module/Profiles.php:794
-#: ../../Zotlabs/Module/Connedit.php:933
+#: ../../include/event.php:1375 ../../include/connections.php:728
+#: ../../Zotlabs/Module/Cdav.php:1382 ../../Zotlabs/Module/Profiles.php:792
+#: ../../Zotlabs/Module/Connedit.php:932
msgid "Mobile"
msgstr "Móvil"
-#: ../../include/event.php:1423 ../../include/connections.php:729
-#: ../../Zotlabs/Module/Cdav.php:1378 ../../Zotlabs/Module/Profiles.php:795
-#: ../../Zotlabs/Module/Connedit.php:934
+#: ../../include/event.php:1376 ../../include/connections.php:729
+#: ../../Zotlabs/Module/Cdav.php:1383 ../../Zotlabs/Module/Profiles.php:793
+#: ../../Zotlabs/Module/Connedit.php:933
msgid "Home"
msgstr "Inicio"
-#: ../../include/event.php:1424 ../../include/connections.php:730
+#: ../../include/event.php:1377 ../../include/connections.php:730
msgid "Home, Voice"
msgstr "Llamadas particulares"
-#: ../../include/event.php:1425 ../../include/connections.php:731
+#: ../../include/event.php:1378 ../../include/connections.php:731
msgid "Home, Fax"
msgstr "Fax particular"
-#: ../../include/event.php:1426 ../../include/connections.php:732
-#: ../../Zotlabs/Module/Cdav.php:1379 ../../Zotlabs/Module/Profiles.php:796
-#: ../../Zotlabs/Module/Connedit.php:935
+#: ../../include/event.php:1379 ../../include/connections.php:732
+#: ../../Zotlabs/Module/Cdav.php:1384 ../../Zotlabs/Module/Profiles.php:794
+#: ../../Zotlabs/Module/Connedit.php:934
msgid "Work"
msgstr "Trabajo"
-#: ../../include/event.php:1427 ../../include/connections.php:733
+#: ../../include/event.php:1380 ../../include/connections.php:733
msgid "Work, Voice"
msgstr "Llamadas de trabajo"
-#: ../../include/event.php:1428 ../../include/connections.php:734
+#: ../../include/event.php:1381 ../../include/connections.php:734
msgid "Work, Fax"
msgstr "Fax de trabajo"
-#: ../../include/event.php:1429 ../../include/event.php:1436
+#: ../../include/event.php:1382 ../../include/event.php:1389
#: ../../include/selectors.php:60 ../../include/selectors.php:77
#: ../../include/selectors.php:115 ../../include/selectors.php:151
#: ../../include/connections.php:735 ../../include/connections.php:742
-#: ../../Zotlabs/Module/Cdav.php:1380 ../../Zotlabs/Module/Profiles.php:797
-#: ../../Zotlabs/Module/Connedit.php:936
-#: ../../Zotlabs/Access/PermissionRoles.php:310
+#: ../../Zotlabs/Module/Cdav.php:1385 ../../Zotlabs/Module/Profiles.php:795
+#: ../../Zotlabs/Module/Connedit.php:935
+#: ../../Zotlabs/Access/PermissionRoles.php:306
msgid "Other"
msgstr "Otro"
#: ../../include/features.php:55 ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:36
msgid "Off"
msgstr "Desactivado"
#: ../../include/features.php:55 ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:36
msgid "On"
msgstr "Activado"
-#: ../../include/features.php:82 ../../include/nav.php:463
-#: ../../include/nav.php:466 ../../Zotlabs/Lib/Apps.php:346
+#: ../../include/features.php:82 ../../include/nav.php:465
+#: ../../include/nav.php:468 ../../Zotlabs/Lib/Apps.php:345
#: ../../Zotlabs/Storage/Browser.php:140
msgid "Calendar"
msgstr "Calendario"
@@ -4663,7 +4741,7 @@ msgstr "Selección del huso horario del evento"
msgid "Allow event creation in timezones other than your own."
msgstr "Permitir la creación de eventos en husos horarios distintos del suyo."
-#: ../../include/features.php:104 ../../Zotlabs/Lib/Apps.php:343
+#: ../../include/features.php:104 ../../Zotlabs/Lib/Apps.php:342
msgid "Channel Home"
msgstr "Mi canal"
@@ -4683,11 +4761,11 @@ msgstr "Nube de etiquetas"
msgid "Provide a personal tag cloud on your channel page"
msgstr "Proveer nube de etiquetas personal en su página de canal"
-#: ../../include/features.php:124 ../../include/features.php:359
+#: ../../include/features.php:124 ../../include/features.php:351
msgid "Use blog/list mode"
msgstr "Usar el modo blog/lista"
-#: ../../include/features.php:125 ../../include/features.php:360
+#: ../../include/features.php:125 ../../include/features.php:352
msgid "Comments will be displayed separately"
msgstr "Los comentarios se mostrarán por separado"
@@ -4703,6 +4781,14 @@ msgstr "Filtrar publicaciones entrantes de conexiones por palabras clave o conte
msgid "Conversation"
msgstr "Conversación"
+#: ../../include/features.php:150
+msgid "Community Tagging"
+msgstr "Etiquetas de la comunidad"
+
+#: ../../include/features.php:151
+msgid "Ability to tag existing posts"
+msgstr "Capacidad de etiquetar entradas"
+
#: ../../include/features.php:158
msgid "Emoji Reactions"
msgstr "Emoticonos \"emoji\""
@@ -4735,7 +4821,7 @@ msgstr "Responder a los comentarios"
msgid "Ability to reply on selected comment"
msgstr "Posibilidad de responder a los comentarios seleccionados"
-#: ../../include/features.php:192 ../../Zotlabs/Lib/Apps.php:347
+#: ../../include/features.php:192 ../../Zotlabs/Lib/Apps.php:346
msgid "Directory"
msgstr "Directorio"
@@ -4779,175 +4865,167 @@ msgid ""
msgstr "Permitir cifrado adicional de contenido \"punto-a-punto\" con una clave secreta compartida."
#: ../../include/features.php:235
+msgid "Enable Voting Tools"
+msgstr "Permitir entradas con votación"
+
+#: ../../include/features.php:236
+msgid "Provide a class of post which others can vote on"
+msgstr "Proveer una clase de publicación en la que otros puedan votar"
+
+#: ../../include/features.php:243
msgid "Disable Comments"
msgstr "Deshabilitar comentarios"
-#: ../../include/features.php:236
+#: ../../include/features.php:244
msgid "Provide the option to disable comments for a post"
msgstr "Proporcionar la opción de desactivar los comentarios para una entrada"
-#: ../../include/features.php:243
+#: ../../include/features.php:251
msgid "Delayed Posting"
msgstr "Publicación aplazada"
-#: ../../include/features.php:244
+#: ../../include/features.php:252
msgid "Allow posts to be published at a later date"
msgstr "Permitir mensajes que se publicarán en una fecha posterior"
-#: ../../include/features.php:251
+#: ../../include/features.php:259
msgid "Content Expiration"
msgstr "Caducidad del contenido"
-#: ../../include/features.php:252
+#: ../../include/features.php:260
msgid "Remove posts/comments and/or private messages at a future time"
msgstr "Eliminar publicaciones/comentarios y/o mensajes privados más adelante"
-#: ../../include/features.php:259
+#: ../../include/features.php:267
msgid "Suppress Duplicate Posts/Comments"
msgstr "Prevenir entradas o comentarios duplicados"
-#: ../../include/features.php:260
+#: ../../include/features.php:268
msgid ""
"Prevent posts with identical content to be published with less than two "
"minutes in between submissions."
msgstr "Prevenir que entradas con contenido idéntico se publiquen con menos de dos minutos de intervalo."
-#: ../../include/features.php:267
+#: ../../include/features.php:275
msgid "Auto-save drafts of posts and comments"
msgstr "Guardar automáticamente borradores de entradas y comentarios"
-#: ../../include/features.php:268
+#: ../../include/features.php:276
msgid ""
"Automatically saves post and comment drafts in local browser storage to help"
" prevent accidental loss of compositions"
msgstr "Guarda automáticamente los borradores de comentarios y publicaciones en el almacenamiento del navegador local para ayudar a evitar la pérdida accidental de composiciones."
-#: ../../include/features.php:277
+#: ../../include/features.php:285
msgid "Manage"
msgstr "Gestionar"
-#: ../../include/features.php:281
+#: ../../include/features.php:289
msgid "Navigation Channel Select"
msgstr "Navegación por el selector de canales"
-#: ../../include/features.php:282
+#: ../../include/features.php:290
msgid "Change channels directly from within the navigation dropdown menu"
msgstr "Cambiar de canales directamente desde el menú de navegación desplegable"
-#: ../../include/features.php:291 ../../Zotlabs/Module/Connections.php:332
+#: ../../include/features.php:299 ../../Zotlabs/Module/Connections.php:310
msgid "Network"
msgstr "Red"
-#: ../../include/features.php:295
-msgid "Events Filter"
-msgstr "Filtro de eventos"
-
-#: ../../include/features.php:296
-msgid "Ability to display only events"
-msgstr "Capacidad para mostrar solo eventos"
-
-#: ../../include/features.php:303
-msgid "Polls Filter"
-msgstr "Filtro de encuestas"
-
-#: ../../include/features.php:304
-msgid "Ability to display only polls"
-msgstr "Capacidad para mostrar solo encuestas"
-
-#: ../../include/features.php:311 ../../Zotlabs/Widget/Savedsearch.php:83
+#: ../../include/features.php:303 ../../Zotlabs/Widget/Savedsearch.php:83
msgid "Saved Searches"
msgstr "Búsquedas guardadas"
-#: ../../include/features.php:312
+#: ../../include/features.php:304
msgid "Save search terms for re-use"
msgstr "Guardar términos de búsqueda para su reutilización"
-#: ../../include/features.php:319 ../../include/contact_widgets.php:53
-#: ../../Zotlabs/Widget/Activity_filter.php:179
+#: ../../include/features.php:311 ../../include/contact_widgets.php:53
+#: ../../Zotlabs/Widget/Activity_filter.php:137
#: ../../Zotlabs/Widget/Filer.php:28
msgid "Saved Folders"
msgstr "Carpetas guardadas"
-#: ../../include/features.php:320
+#: ../../include/features.php:312
msgid "Ability to file posts under folders"
msgstr "Capacidad de archivar entradas en carpetas"
-#: ../../include/features.php:327
+#: ../../include/features.php:319
msgid "Alternate Stream Order"
msgstr "Orden de stream alternativo"
-#: ../../include/features.php:328
+#: ../../include/features.php:320
msgid ""
"Ability to order the stream by last post date, last comment date or "
"unthreaded activities"
msgstr "Posibilidad de ordenar el stream por última fecha de publicación, última fecha de comentario o actividades sin hilo"
-#: ../../include/features.php:335
+#: ../../include/features.php:327
msgid "Contact Filter"
msgstr "Filtro de contactos"
-#: ../../include/features.php:336
+#: ../../include/features.php:328
msgid "Ability to display only posts of a selected contact"
msgstr "Posibilidad de mostrar sólo los mensajes de un contacto seleccionado"
-#: ../../include/features.php:343
+#: ../../include/features.php:335
msgid "Forum Filter"
msgstr "Filtro de foro"
-#: ../../include/features.php:344
+#: ../../include/features.php:336
msgid "Ability to display only posts of a specific forum"
msgstr "Posibilidad de mostrar sólo los mensajes de un foro específico"
-#: ../../include/features.php:351
+#: ../../include/features.php:343
msgid "Personal Posts Filter"
msgstr "Filtro de entradas personales"
-#: ../../include/features.php:352
+#: ../../include/features.php:344
msgid "Ability to display only posts that you've interacted on"
msgstr "Posibilidad de mostrar sólo los mensajes en los que usted haya interactuado"
-#: ../../include/features.php:369 ../../include/nav.php:444
-#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:345
+#: ../../include/features.php:361 ../../include/nav.php:446
+#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:344
msgid "Photos"
msgstr "Fotos"
-#: ../../include/features.php:373
+#: ../../include/features.php:365
msgid "Photo Location"
msgstr "Ubicación de las fotos"
-#: ../../include/features.php:374
+#: ../../include/features.php:366
msgid "If location data is available on uploaded photos, link this to a map."
msgstr "Si los datos de ubicación están disponibles en las fotos subidas, enlazar estas a un mapa."
-#: ../../include/features.php:383 ../../Zotlabs/Lib/Apps.php:363
+#: ../../include/features.php:375 ../../Zotlabs/Lib/Apps.php:362
msgid "Profiles"
msgstr "Perfiles"
-#: ../../include/features.php:387
+#: ../../include/features.php:379
msgid "Advanced Profiles"
msgstr "Perfiles avanzados"
-#: ../../include/features.php:388
+#: ../../include/features.php:380
msgid "Additional profile sections and selections"
msgstr "Secciones y selecciones de perfil adicionales"
-#: ../../include/features.php:395
+#: ../../include/features.php:387
msgid "Profile Import/Export"
msgstr "Importar/Exportar perfil"
-#: ../../include/features.php:396
+#: ../../include/features.php:388
msgid "Save and load profile details across sites/channels"
msgstr "Guardar y cargar detalles del perfil a través de sitios/canales"
-#: ../../include/features.php:403
+#: ../../include/features.php:395
msgid "Multiple Profiles"
msgstr "Múltiples perfiles"
-#: ../../include/features.php:404
+#: ../../include/features.php:396
msgid "Ability to create multiple profiles"
msgstr "Capacidad de crear múltiples perfiles"
-#: ../../include/security.php:609
+#: ../../include/security.php:607
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
@@ -4957,12 +5035,12 @@ msgstr "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrid
msgid "Delete this item?"
msgstr "¿Borrar este elemento?"
-#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1096
-#: ../../Zotlabs/Module/Photos.php:1214 ../../Zotlabs/Lib/ThreadItem.php:824
+#: ../../include/js_strings.php:6 ../../Zotlabs/Module/Photos.php:1095
+#: ../../Zotlabs/Module/Photos.php:1214 ../../Zotlabs/Lib/ThreadItem.php:795
msgid "Comment"
msgstr "Comentar"
-#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:533
+#: ../../include/js_strings.php:7 ../../Zotlabs/Lib/ThreadItem.php:502
#, php-format
msgid "%s show all"
msgstr "%s mostrar todo"
@@ -5019,7 +5097,7 @@ msgid "Rate This Channel (this is public)"
msgstr "Valorar este canal (esto es público)"
#: ../../include/js_strings.php:20 ../../Zotlabs/Module/Rate.php:155
-#: ../../Zotlabs/Module/Connedit.php:888
+#: ../../Zotlabs/Module/Connedit.php:887
msgid "Rating"
msgstr "Valoración"
@@ -5036,8 +5114,8 @@ msgid "Unsaved changes. Are you sure you wish to leave this page?"
msgstr "Cambios no guardados. ¿Está seguro de que desea abandonar la página?"
#: ../../include/js_strings.php:25 ../../Zotlabs/Module/Pubsites.php:52
-#: ../../Zotlabs/Module/Cdav.php:1011 ../../Zotlabs/Module/Events.php:483
-#: ../../Zotlabs/Module/Profiles.php:511 ../../Zotlabs/Module/Profiles.php:736
+#: ../../Zotlabs/Module/Cdav.php:1038 ../../Zotlabs/Module/Events.php:483
+#: ../../Zotlabs/Module/Profiles.php:509 ../../Zotlabs/Module/Profiles.php:734
#: ../../Zotlabs/Module/Locs.php:117
msgid "Location"
msgstr "Ubicación"
@@ -5088,205 +5166,192 @@ msgstr "nombre de canal"
msgid "Back to reply"
msgstr "Volver a la respuesta"
-#: ../../include/js_strings.php:37
-msgid "Pinned"
-msgstr "Anclado/a"
-
-#: ../../include/js_strings.php:38 ../../Zotlabs/Lib/ThreadItem.php:471
-msgid "Pin to the top"
-msgstr "Anclar en la parte superior"
-
-#: ../../include/js_strings.php:39 ../../Zotlabs/Widget/Pinned.php:157
-#: ../../Zotlabs/Lib/ThreadItem.php:471
-msgid "Unpin from the top"
-msgstr "Desanclar de la parte superior"
-
-#: ../../include/js_strings.php:45
+#: ../../include/js_strings.php:42
#, php-format
msgid "%d minutes"
msgid_plural "%d minutes"
msgstr[0] "%d minutos"
msgstr[1] "%d minutos"
-#: ../../include/js_strings.php:46
+#: ../../include/js_strings.php:43
#, php-format
msgid "about %d hours"
msgid_plural "about %d hours"
msgstr[0] "alrededor de %d horas"
msgstr[1] "alrededor de %d horas"
-#: ../../include/js_strings.php:47
+#: ../../include/js_strings.php:44
#, php-format
msgid "%d days"
msgid_plural "%d days"
msgstr[0] "%d días"
msgstr[1] "%d días"
-#: ../../include/js_strings.php:48
+#: ../../include/js_strings.php:45
#, php-format
msgid "%d months"
msgid_plural "%d months"
msgstr[0] "%d meses"
msgstr[1] "%d meses"
-#: ../../include/js_strings.php:49
+#: ../../include/js_strings.php:46
#, php-format
msgid "%d years"
msgid_plural "%d years"
msgstr[0] "%d años"
msgstr[1] "%d años"
-#: ../../include/js_strings.php:54
+#: ../../include/js_strings.php:51
msgid "timeago.prefixAgo"
msgstr "hace "
-#: ../../include/js_strings.php:55
+#: ../../include/js_strings.php:52
msgid "timeago.prefixFromNow"
msgstr "en "
-#: ../../include/js_strings.php:56
+#: ../../include/js_strings.php:53
msgid "timeago.suffixAgo"
msgstr "NONE"
-#: ../../include/js_strings.php:57
+#: ../../include/js_strings.php:54
msgid "timeago.suffixFromNow"
msgstr "NONE"
-#: ../../include/js_strings.php:60
+#: ../../include/js_strings.php:57
msgid "less than a minute"
msgstr "menos de un minuto"
-#: ../../include/js_strings.php:61
+#: ../../include/js_strings.php:58
msgid "about a minute"
msgstr "alrededor de un minuto"
-#: ../../include/js_strings.php:63
+#: ../../include/js_strings.php:60
msgid "about an hour"
msgstr "alrededor de una hora"
-#: ../../include/js_strings.php:65
+#: ../../include/js_strings.php:62
msgid "a day"
msgstr "un día"
-#: ../../include/js_strings.php:67
+#: ../../include/js_strings.php:64
msgid "about a month"
msgstr "alrededor de un mes"
-#: ../../include/js_strings.php:69
+#: ../../include/js_strings.php:66
msgid "about a year"
msgstr "alrededor de un año"
-#: ../../include/js_strings.php:71
+#: ../../include/js_strings.php:68
msgid " "
msgstr " "
-#: ../../include/js_strings.php:72
+#: ../../include/js_strings.php:69
msgid "timeago.numbers"
msgstr "timeago.numbers"
-#: ../../include/js_strings.php:78
+#: ../../include/js_strings.php:75
msgctxt "long"
msgid "May"
msgstr "mayo"
-#: ../../include/js_strings.php:86
+#: ../../include/js_strings.php:83
msgid "Jan"
msgstr "ene"
-#: ../../include/js_strings.php:87
+#: ../../include/js_strings.php:84
msgid "Feb"
msgstr "feb"
-#: ../../include/js_strings.php:88
+#: ../../include/js_strings.php:85
msgid "Mar"
msgstr "mar"
-#: ../../include/js_strings.php:89
+#: ../../include/js_strings.php:86
msgid "Apr"
msgstr "abr"
-#: ../../include/js_strings.php:90
+#: ../../include/js_strings.php:87
msgctxt "short"
msgid "May"
msgstr "may"
-#: ../../include/js_strings.php:91
+#: ../../include/js_strings.php:88
msgid "Jun"
msgstr "jun"
-#: ../../include/js_strings.php:92
+#: ../../include/js_strings.php:89
msgid "Jul"
msgstr "jul"
-#: ../../include/js_strings.php:93
+#: ../../include/js_strings.php:90
msgid "Aug"
msgstr "ago"
-#: ../../include/js_strings.php:94
+#: ../../include/js_strings.php:91
msgid "Sep"
msgstr "sep"
-#: ../../include/js_strings.php:95
+#: ../../include/js_strings.php:92
msgid "Oct"
msgstr "oct"
-#: ../../include/js_strings.php:96
+#: ../../include/js_strings.php:93
msgid "Nov"
msgstr "nov"
-#: ../../include/js_strings.php:97
+#: ../../include/js_strings.php:94
msgid "Dec"
msgstr "dic"
-#: ../../include/js_strings.php:105
+#: ../../include/js_strings.php:102
msgid "Sun"
msgstr "dom"
-#: ../../include/js_strings.php:106
+#: ../../include/js_strings.php:103
msgid "Mon"
msgstr "lun"
-#: ../../include/js_strings.php:107
+#: ../../include/js_strings.php:104
msgid "Tue"
msgstr "mar"
-#: ../../include/js_strings.php:108
+#: ../../include/js_strings.php:105
msgid "Wed"
msgstr "mié"
-#: ../../include/js_strings.php:109
+#: ../../include/js_strings.php:106
msgid "Thu"
msgstr "jue"
-#: ../../include/js_strings.php:110
+#: ../../include/js_strings.php:107
msgid "Fri"
msgstr "vie"
-#: ../../include/js_strings.php:111
+#: ../../include/js_strings.php:108
msgid "Sat"
msgstr "sáb"
-#: ../../include/js_strings.php:112
+#: ../../include/js_strings.php:109
msgctxt "calendar"
msgid "today"
msgstr "hoy"
-#: ../../include/js_strings.php:113
+#: ../../include/js_strings.php:110
msgctxt "calendar"
msgid "month"
msgstr "mes"
-#: ../../include/js_strings.php:114
+#: ../../include/js_strings.php:111
msgctxt "calendar"
msgid "week"
msgstr "semana"
-#: ../../include/js_strings.php:115
+#: ../../include/js_strings.php:112
msgctxt "calendar"
msgid "day"
msgstr "día"
-#: ../../include/js_strings.php:116
+#: ../../include/js_strings.php:113
msgctxt "calendar"
msgid "All day"
msgstr "Todos los días"
@@ -5296,8 +5361,8 @@ msgid "Help:"
msgstr "Ayuda:"
#: ../../include/help.php:117 ../../include/help.php:125
-#: ../../include/nav.php:174 ../../include/nav.php:320
-#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:348
+#: ../../include/nav.php:172 ../../include/nav.php:322
+#: ../../Zotlabs/Module/Layouts.php:186 ../../Zotlabs/Lib/Apps.php:347
msgid "Help"
msgstr "Ayuda"
@@ -5305,14 +5370,6 @@ msgstr "Ayuda"
msgid "Not Found"
msgstr "No encontrado"
-#: ../../include/help.php:132 ../../Zotlabs/Module/Display.php:140
-#: ../../Zotlabs/Module/Display.php:157 ../../Zotlabs/Module/Display.php:177
-#: ../../Zotlabs/Module/Display.php:183 ../../Zotlabs/Module/Page.php:136
-#: ../../Zotlabs/Module/Block.php:77 ../../Zotlabs/Lib/NativeWikiPage.php:521
-#: ../../Zotlabs/Web/Router.php:185
-msgid "Page not found."
-msgstr "Página no encontrada."
-
#: ../../include/photos.php:151
#, php-format
msgid "Image exceeds website size limit of %lu bytes"
@@ -5322,8 +5379,8 @@ msgstr "La imagen excede el límite de %lu bytes del sitio"
msgid "Image file is empty."
msgstr "El fichero de imagen está vacío. "
-#: ../../include/photos.php:196 ../../Zotlabs/Module/Profile_photo.php:261
-#: ../../Zotlabs/Module/Cover_photo.php:241
+#: ../../include/photos.php:196 ../../Zotlabs/Module/Profile_photo.php:259
+#: ../../Zotlabs/Module/Cover_photo.php:239
msgid "Unable to process image"
msgstr "No ha sido posible procesar la imagen"
@@ -5341,7 +5398,7 @@ msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr "%1$s ha publicado %2$s en %3$s"
-#: ../../include/photos.php:666 ../../include/nav.php:447
+#: ../../include/photos.php:666 ../../include/nav.php:449
msgid "Photo Albums"
msgstr "Álbumes de fotos"
@@ -5354,43 +5411,43 @@ msgstr "Fotos recientes"
msgid "Upload New Photos"
msgstr "Subir nuevas fotos"
-#: ../../include/network.php:1730 ../../include/network.php:1731
+#: ../../include/network.php:1726 ../../include/network.php:1727
msgid "Friendica"
msgstr "Friendica"
-#: ../../include/network.php:1732
+#: ../../include/network.php:1728
msgid "OStatus"
msgstr "OStatus"
-#: ../../include/network.php:1733
+#: ../../include/network.php:1729
msgid "GNU-Social"
msgstr "GNU Social"
-#: ../../include/network.php:1734
+#: ../../include/network.php:1730
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/network.php:1737
+#: ../../include/network.php:1733
msgid "Diaspora"
msgstr "Diaspora"
-#: ../../include/network.php:1738
+#: ../../include/network.php:1734
msgid "Facebook"
msgstr "Facebook"
-#: ../../include/network.php:1739
+#: ../../include/network.php:1735
msgid "Zot"
msgstr "Zot"
-#: ../../include/network.php:1740
+#: ../../include/network.php:1736
msgid "LinkedIn"
msgstr "LinkedIn"
-#: ../../include/network.php:1741
+#: ../../include/network.php:1737
msgid "XMPP/IM"
msgstr "XMPP/IM"
-#: ../../include/network.php:1742
+#: ../../include/network.php:1738
msgid "MySpace"
msgstr "MySpace"
@@ -5425,7 +5482,7 @@ msgstr[0] "%d invitación pendiente"
msgstr[1] "%d invitaciones disponibles"
#: ../../include/contact_widgets.php:16
-#: ../../Zotlabs/Module/Admin/Site.php:291
+#: ../../Zotlabs/Module/Admin/Site.php:293
msgid "Advanced"
msgstr "Avanzado"
@@ -5445,13 +5502,13 @@ msgstr "Conectar/Seguir"
msgid "Examples: Robert Morgenstein, Fishing"
msgstr "Ejemplos: José Fernández, Pesca"
-#: ../../include/contact_widgets.php:23 ../../Zotlabs/Module/Directory.php:431
-#: ../../Zotlabs/Module/Directory.php:436
-#: ../../Zotlabs/Module/Connections.php:381
+#: ../../include/contact_widgets.php:23 ../../Zotlabs/Module/Directory.php:416
+#: ../../Zotlabs/Module/Directory.php:421
+#: ../../Zotlabs/Module/Connections.php:358
msgid "Find"
msgstr "Encontrar"
-#: ../../include/contact_widgets.php:24 ../../Zotlabs/Module/Directory.php:435
+#: ../../include/contact_widgets.php:24 ../../Zotlabs/Module/Directory.php:420
#: ../../Zotlabs/Module/Suggest.php:79
msgid "Channel Suggestions"
msgstr "Sugerencias de canales"
@@ -5478,7 +5535,7 @@ msgstr "Todo"
#: ../../include/contact_widgets.php:184 ../../include/taxonomy.php:409
#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
#: ../../include/taxonomy.php:532 ../../Zotlabs/Widget/Appcategories.php:43
-#: ../../Zotlabs/Module/Cdav.php:1066
+#: ../../Zotlabs/Module/Cdav.php:1093
msgid "Categories"
msgstr "Temas"
@@ -5491,249 +5548,249 @@ msgstr "Conexiones comunes"
msgid "View all %d common connections"
msgstr "Ver todas las %d conexiones comunes"
-#: ../../include/language.php:437
+#: ../../include/language.php:436
msgid "Select an alternate language"
msgstr "Seleccionar un idioma alternativo"
-#: ../../include/import.php:29
+#: ../../include/import.php:28
msgid "Unable to import a removed channel."
msgstr "No se puede importar un canal eliminado."
-#: ../../include/import.php:55
+#: ../../include/import.php:54
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado."
-#: ../../include/import.php:121
+#: ../../include/import.php:120
msgid "Cloned channel not found. Import failed."
msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado."
-#: ../../include/nav.php:92
+#: ../../include/nav.php:90
msgid "Remote authentication"
msgstr "Acceder desde su servidor"
-#: ../../include/nav.php:92
+#: ../../include/nav.php:90
msgid "Click to authenticate to your home hub"
msgstr "Pulsar para identificarse en su servidor de inicio"
-#: ../../include/nav.php:98 ../../Zotlabs/Module/Manage.php:170
-#: ../../Zotlabs/Lib/Apps.php:337
+#: ../../include/nav.php:96 ../../Zotlabs/Module/Manage.php:170
+#: ../../Zotlabs/Lib/Apps.php:336
msgid "Channel Manager"
msgstr "Administración de canales"
-#: ../../include/nav.php:98
+#: ../../include/nav.php:96
msgid "Manage your channels"
msgstr "Gestionar sus canales"
-#: ../../include/nav.php:101 ../../include/group.php:321
-#: ../../Zotlabs/Widget/Activity_filter.php:82
-#: ../../Zotlabs/Module/Group.php:142 ../../Zotlabs/Module/Group.php:154
-#: ../../Zotlabs/Lib/Group.php:324 ../../Zotlabs/Lib/Apps.php:364
+#: ../../include/nav.php:99 ../../include/group.php:320
+#: ../../Zotlabs/Widget/Activity_filter.php:41
+#: ../../Zotlabs/Module/Group.php:141 ../../Zotlabs/Module/Group.php:153
+#: ../../Zotlabs/Lib/Group.php:324 ../../Zotlabs/Lib/Apps.php:363
msgid "Privacy Groups"
msgstr "Grupos de canales"
-#: ../../include/nav.php:101
+#: ../../include/nav.php:99
msgid "Manage your privacy groups"
msgstr "Gestionar sus grupos de canales"
-#: ../../include/nav.php:103 ../../Zotlabs/Widget/Settings_menu.php:61
+#: ../../include/nav.php:101 ../../Zotlabs/Widget/Settings_menu.php:61
#: ../../Zotlabs/Widget/Newmember.php:53
#: ../../Zotlabs/Module/Admin/Themes.php:125
-#: ../../Zotlabs/Module/Admin/Addons.php:345 ../../Zotlabs/Lib/Apps.php:339
+#: ../../Zotlabs/Module/Admin/Addons.php:345 ../../Zotlabs/Lib/Apps.php:338
msgid "Settings"
msgstr "Ajustes"
-#: ../../include/nav.php:103
+#: ../../include/nav.php:101
msgid "Account/Channel Settings"
msgstr "Ajustes de cuenta/canales"
-#: ../../include/nav.php:109 ../../include/nav.php:138
-#: ../../include/nav.php:157 ../../boot.php:1697
+#: ../../include/nav.php:107 ../../include/nav.php:136
+#: ../../include/nav.php:155 ../../boot.php:1673
msgid "Logout"
msgstr "Finalizar sesión"
-#: ../../include/nav.php:109 ../../include/nav.php:138
+#: ../../include/nav.php:107 ../../include/nav.php:136
msgid "End this session"
msgstr "Finalizar esta sesión"
-#: ../../include/nav.php:112
+#: ../../include/nav.php:110
msgid "Your profile page"
msgstr "Su página del perfil"
-#: ../../include/nav.php:115 ../../include/channel.php:1523
-#: ../../Zotlabs/Module/Profiles.php:832
+#: ../../include/nav.php:113 ../../include/channel.php:1426
+#: ../../Zotlabs/Module/Profiles.php:830
msgid "Edit Profiles"
msgstr "Editar perfiles"
-#: ../../include/nav.php:115
+#: ../../include/nav.php:113
msgid "Manage/Edit profiles"
msgstr "Administrar/editar perfiles"
-#: ../../include/nav.php:117 ../../Zotlabs/Widget/Newmember.php:35
+#: ../../include/nav.php:115 ../../Zotlabs/Widget/Newmember.php:35
msgid "Edit your profile"
msgstr "Editar su perfil"
-#: ../../include/nav.php:124 ../../include/nav.php:128
-#: ../../Zotlabs/Lib/Apps.php:336 ../../boot.php:1698
+#: ../../include/nav.php:122 ../../include/nav.php:126
+#: ../../Zotlabs/Lib/Apps.php:335 ../../boot.php:1674
msgid "Login"
msgstr "Iniciar sesión"
-#: ../../include/nav.php:124 ../../include/nav.php:128
+#: ../../include/nav.php:122 ../../include/nav.php:126
msgid "Sign in"
msgstr "Acceder"
-#: ../../include/nav.php:155
+#: ../../include/nav.php:153
msgid "Take me home"
msgstr "Volver a la página principal"
-#: ../../include/nav.php:157
+#: ../../include/nav.php:155
msgid "Log me out of this site"
msgstr "Salir de este sitio"
-#: ../../include/nav.php:162 ../../Zotlabs/Module/Register.php:293
-#: ../../boot.php:1678
+#: ../../include/nav.php:160 ../../Zotlabs/Module/Register.php:293
+#: ../../boot.php:1654
msgid "Register"
msgstr "Registrarse"
-#: ../../include/nav.php:162
+#: ../../include/nav.php:160
msgid "Create an account"
msgstr "Crear una cuenta"
-#: ../../include/nav.php:174
+#: ../../include/nav.php:172
msgid "Help and documentation"
msgstr "Ayuda y documentación"
-#: ../../include/nav.php:188
+#: ../../include/nav.php:186
msgid "Search site @name, !forum, #tag, ?docs, content"
msgstr "Buscar en el sitio @nombre, !foro, #tag, ?docs, contenido"
-#: ../../include/nav.php:194 ../../Zotlabs/Widget/Admin.php:55
+#: ../../include/nav.php:192 ../../Zotlabs/Widget/Admin.php:55
msgid "Admin"
msgstr "Administrador"
-#: ../../include/nav.php:194
+#: ../../include/nav.php:192
msgid "Site Setup and Configuration"
msgstr "Ajustes y configuración del sitio"
-#: ../../include/nav.php:324 ../../Zotlabs/Widget/Notifications.php:182
+#: ../../include/nav.php:326 ../../Zotlabs/Widget/Notifications.php:162
#: ../../Zotlabs/Module/New_channel.php:157
#: ../../Zotlabs/Module/New_channel.php:164
-#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:870
+#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:869
msgid "Loading"
msgstr "Cargando"
-#: ../../include/nav.php:330
+#: ../../include/nav.php:332
msgid "@name, !forum, #tag, ?doc, content"
msgstr "@nombre, !foro, #tag, ?docs, contenido"
-#: ../../include/nav.php:331
+#: ../../include/nav.php:333
msgid "Please wait..."
msgstr "Espere por favor…"
-#: ../../include/nav.php:337
+#: ../../include/nav.php:339
msgid "Add Apps"
msgstr "Añadir aplicaciones"
-#: ../../include/nav.php:338
+#: ../../include/nav.php:340
msgid "Arrange Apps"
msgstr "Organizar aplicaciones"
-#: ../../include/nav.php:339
+#: ../../include/nav.php:341
msgid "Toggle System Apps"
msgstr "Alternar aplicaciones de sistema"
-#: ../../include/nav.php:421 ../../Zotlabs/Module/Admin/Channels.php:154
+#: ../../include/nav.php:423 ../../Zotlabs/Module/Admin/Channels.php:154
msgid "Channel"
msgstr "Canal"
-#: ../../include/nav.php:424
+#: ../../include/nav.php:426
msgid "Status Messages and Posts"
msgstr "Mensajes de estado y publicaciones"
-#: ../../include/nav.php:434 ../../Zotlabs/Module/Help.php:83
+#: ../../include/nav.php:436 ../../Zotlabs/Module/Help.php:80
msgid "About"
msgstr "Mi perfil"
-#: ../../include/nav.php:437
+#: ../../include/nav.php:439
msgid "Profile Details"
msgstr "Detalles del perfil"
-#: ../../include/nav.php:452 ../../Zotlabs/Module/Fbrowser.php:85
-#: ../../Zotlabs/Lib/Apps.php:340 ../../Zotlabs/Storage/Browser.php:278
+#: ../../include/nav.php:454 ../../Zotlabs/Module/Fbrowser.php:85
+#: ../../Zotlabs/Lib/Apps.php:339 ../../Zotlabs/Storage/Browser.php:278
msgid "Files"
msgstr "Ficheros"
-#: ../../include/nav.php:455
+#: ../../include/nav.php:457
msgid "Files and Storage"
msgstr "Ficheros y repositorio"
-#: ../../include/nav.php:477 ../../include/nav.php:480
-#: ../../Zotlabs/Widget/Chatroom_list.php:16 ../../Zotlabs/Lib/Apps.php:330
+#: ../../include/nav.php:479 ../../include/nav.php:482
+#: ../../Zotlabs/Widget/Chatroom_list.php:16 ../../Zotlabs/Lib/Apps.php:329
msgid "Chatrooms"
msgstr "Salas de chat"
-#: ../../include/nav.php:490 ../../Zotlabs/Lib/Apps.php:329
+#: ../../include/nav.php:492 ../../Zotlabs/Lib/Apps.php:328
msgid "Bookmarks"
msgstr "Marcadores"
-#: ../../include/nav.php:493
+#: ../../include/nav.php:495
msgid "Saved Bookmarks"
msgstr "Marcadores guardados"
-#: ../../include/nav.php:501 ../../Zotlabs/Module/Cards.php:207
-#: ../../Zotlabs/Lib/Apps.php:326
+#: ../../include/nav.php:503 ../../Zotlabs/Module/Cards.php:207
+#: ../../Zotlabs/Lib/Apps.php:325
msgid "Cards"
msgstr "Fichas"
-#: ../../include/nav.php:504
+#: ../../include/nav.php:506
msgid "View Cards"
msgstr "Ver las fichas"
-#: ../../include/nav.php:512 ../../Zotlabs/Module/Articles.php:226
-#: ../../Zotlabs/Lib/Apps.php:325
+#: ../../include/nav.php:514 ../../Zotlabs/Module/Articles.php:226
+#: ../../Zotlabs/Lib/Apps.php:324
msgid "Articles"
msgstr "Artículos"
-#: ../../include/nav.php:515
+#: ../../include/nav.php:517
msgid "View Articles"
msgstr "Ver los artículos"
-#: ../../include/nav.php:524 ../../Zotlabs/Module/Webpages.php:252
-#: ../../Zotlabs/Lib/Apps.php:341
+#: ../../include/nav.php:526 ../../Zotlabs/Module/Webpages.php:252
+#: ../../Zotlabs/Lib/Apps.php:340
msgid "Webpages"
msgstr "Páginas web"
-#: ../../include/nav.php:527
+#: ../../include/nav.php:529
msgid "View Webpages"
msgstr "Ver páginas web"
-#: ../../include/nav.php:536 ../../Zotlabs/Widget/Wiki_list.php:15
+#: ../../include/nav.php:538 ../../Zotlabs/Widget/Wiki_list.php:15
#: ../../Zotlabs/Module/Wiki.php:206
msgid "Wikis"
msgstr "Wikis"
-#: ../../include/nav.php:539 ../../Zotlabs/Lib/Apps.php:342
+#: ../../include/nav.php:541 ../../Zotlabs/Lib/Apps.php:341
msgid "Wiki"
msgstr "Wiki"
-#: ../../include/auth.php:194
+#: ../../include/auth.php:192
msgid "Delegation session ended."
msgstr "Finalizó la sesión de la delegación."
-#: ../../include/auth.php:198
+#: ../../include/auth.php:196
msgid "Logged out."
msgstr "Desconectado/a."
-#: ../../include/auth.php:294
+#: ../../include/auth.php:291
msgid "Email validation is incomplete. Please check your email."
msgstr "La validación del correo electrónico está incompleta. Por favor, compruebe su correo electrónico."
-#: ../../include/auth.php:310
+#: ../../include/auth.php:307
msgid "Failed authentication"
msgstr "Autenticación fallida."
#: ../../include/datetime.php:58 ../../Zotlabs/Widget/Newmember.php:51
-#: ../../Zotlabs/Module/Profiles.php:738
+#: ../../Zotlabs/Module/Profiles.php:736
msgid "Miscellaneous"
msgstr "Varios"
@@ -5749,7 +5806,14 @@ msgstr "Edad:"
msgid "YYYY-MM-DD or MM-DD"
msgstr "AAAA-MM-DD o MM-DD"
-#: ../../include/datetime.php:238 ../../boot.php:2702
+#: ../../include/datetime.php:211 ../../Zotlabs/Module/Events.php:468
+#: ../../Zotlabs/Module/Events.php:473 ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144 ../../Zotlabs/Module/Profiles.php:745
+#: ../../Zotlabs/Module/Profiles.php:749
+msgid "Required"
+msgstr "Obligatorio"
+
+#: ../../include/datetime.php:238 ../../boot.php:2605
msgid "never"
msgstr "nunca"
@@ -5822,36 +5886,11 @@ msgstr "Cumpleaños de %1$s"
msgid "Happy Birthday %1$s"
msgstr "Feliz cumpleaños %1$s"
-#: ../../include/cdav.php:157
-msgid "INVALID EVENT DISMISSED!"
-msgstr "¡EVENTO NO VÁLIDO RECHAZADO!"
-
-#: ../../include/cdav.php:158
-msgid "Summary: "
-msgstr "Resumen: "
-
-#: ../../include/cdav.php:159
-msgid "Date: "
-msgstr "Fecha: "
-
-#: ../../include/cdav.php:160 ../../include/cdav.php:168
-msgid "Reason: "
-msgstr "Razón: "
-
-#: ../../include/cdav.php:166
-msgid "INVALID CARD DISMISSED!"
-msgstr "¡TARJETA NO VÁLIDA RECHAZADA!"
-
-#: ../../include/cdav.php:167
-msgid "Name: "
-msgstr "Nombre: "
-
-#: ../../include/follow.php:37 ../../Zotlabs/Lib/Connect.php:46
-#: ../../Zotlabs/Lib/Connect.php:143
+#: ../../include/follow.php:37
msgid "Channel is blocked on this site."
msgstr "El canal está bloqueado en este sitio."
-#: ../../include/follow.php:42 ../../Zotlabs/Lib/Connect.php:51
+#: ../../include/follow.php:42
msgid "Channel location missing."
msgstr "Falta la dirección del canal."
@@ -5867,373 +5906,334 @@ msgstr "Canal Premium - por favor visite:"
msgid "Channel was deleted and no longer exists."
msgstr "El canal ha sido eliminado y ya no existe."
-#: ../../include/follow.php:166 ../../Zotlabs/Lib/Connect.php:103
+#: ../../include/follow.php:166
msgid "Remote channel or protocol unavailable."
msgstr "Canal remoto o protocolo no disponible."
-#: ../../include/follow.php:190 ../../Zotlabs/Lib/Connect.php:137
+#: ../../include/follow.php:190
msgid "Channel discovery failed."
msgstr "El intento de acceder al canal ha fallado."
-#: ../../include/follow.php:202 ../../Zotlabs/Lib/Connect.php:155
+#: ../../include/follow.php:202
msgid "Protocol disabled."
msgstr "Protocolo deshabilitado."
-#: ../../include/follow.php:213 ../../Zotlabs/Lib/Connect.php:167
+#: ../../include/follow.php:213
msgid "Cannot connect to yourself."
msgstr "No puede conectarse consigo mismo."
-#: ../../include/conversation.php:124 ../../Zotlabs/Module/Like.php:129
+#: ../../include/conversation.php:122 ../../Zotlabs/Module/Like.php:123
msgid "channel"
msgstr "el canal"
-#: ../../include/conversation.php:171
+#: ../../include/conversation.php:169
#, php-format
msgid "likes %1$s's %2$s"
msgstr "gusta de %2$s de %1$s"
-#: ../../include/conversation.php:174
+#: ../../include/conversation.php:172
#, php-format
msgid "doesn't like %1$s's %2$s"
msgstr "no gusta de %2$s de %1$s"
-#: ../../include/conversation.php:214 ../../include/conversation.php:216
+#: ../../include/conversation.php:212
#, php-format
msgid "%1$s is now connected with %2$s"
msgstr "%1$s ahora está conectado/a con %2$s"
-#: ../../include/conversation.php:251
+#: ../../include/conversation.php:247
#, php-format
msgid "%1$s poked %2$s"
msgstr "%1$s ha dado un toque a %2$s"
-#: ../../include/conversation.php:274 ../../Zotlabs/Module/Mood.php:76
+#: ../../include/conversation.php:268 ../../Zotlabs/Module/Mood.php:76
#, php-format
msgctxt "mood"
msgid "%1$s is %2$s"
msgstr "%1$s está %2$s"
-#: ../../include/conversation.php:503 ../../Zotlabs/Lib/ThreadItem.php:500
+#: ../../include/conversation.php:483 ../../Zotlabs/Lib/ThreadItem.php:468
msgid "This is an unsaved preview"
msgstr "Esta es una previsualización sin guardar"
-#: ../../include/conversation.php:639 ../../Zotlabs/Module/Photos.php:1112
+#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1112
msgctxt "title"
msgid "Likes"
msgstr "Me gusta"
-#: ../../include/conversation.php:640 ../../Zotlabs/Module/Photos.php:1112
+#: ../../include/conversation.php:619 ../../Zotlabs/Module/Photos.php:1112
msgctxt "title"
msgid "Dislikes"
msgstr "No me gusta"
-#: ../../include/conversation.php:641 ../../Zotlabs/Widget/Pinned.php:77
-#: ../../Zotlabs/Module/Photos.php:1113
+#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1113
msgctxt "title"
msgid "Agree"
msgstr "De acuerdo"
-#: ../../include/conversation.php:642 ../../Zotlabs/Widget/Pinned.php:78
-#: ../../Zotlabs/Module/Photos.php:1113
+#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1113
msgctxt "title"
msgid "Disagree"
msgstr "En desacuerdo"
-#: ../../include/conversation.php:643 ../../Zotlabs/Widget/Pinned.php:79
-#: ../../Zotlabs/Module/Photos.php:1113
+#: ../../include/conversation.php:620 ../../Zotlabs/Module/Photos.php:1113
msgctxt "title"
msgid "Abstain"
msgstr "Abstención"
-#: ../../include/conversation.php:644 ../../Zotlabs/Widget/Pinned.php:66
-#: ../../Zotlabs/Module/Photos.php:1114
+#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1114
msgctxt "title"
msgid "Attending"
msgstr "Participaré"
-#: ../../include/conversation.php:645 ../../Zotlabs/Widget/Pinned.php:67
-#: ../../Zotlabs/Module/Photos.php:1114
+#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1114
msgctxt "title"
msgid "Not attending"
msgstr "No participaré"
-#: ../../include/conversation.php:646 ../../Zotlabs/Widget/Pinned.php:68
-#: ../../Zotlabs/Module/Photos.php:1114
+#: ../../include/conversation.php:621 ../../Zotlabs/Module/Photos.php:1114
msgctxt "title"
msgid "Might attend"
msgstr "Quizá participe"
-#: ../../include/conversation.php:716 ../../Zotlabs/Lib/ThreadItem.php:180
+#: ../../include/conversation.php:690 ../../Zotlabs/Lib/ThreadItem.php:178
msgid "Select"
msgstr "Seleccionar"
-#: ../../include/conversation.php:717 ../../include/conversation.php:762
+#: ../../include/conversation.php:691 ../../include/conversation.php:736
#: ../../Zotlabs/Module/Article_edit.php:128
#: ../../Zotlabs/Module/Card_edit.php:129 ../../Zotlabs/Module/Oauth.php:174
-#: ../../Zotlabs/Module/Editwebpage.php:167 ../../Zotlabs/Module/Cdav.php:1052
-#: ../../Zotlabs/Module/Cdav.php:1385 ../../Zotlabs/Module/Webpages.php:257
+#: ../../Zotlabs/Module/Editwebpage.php:167 ../../Zotlabs/Module/Cdav.php:1079
+#: ../../Zotlabs/Module/Cdav.php:1390 ../../Zotlabs/Module/Webpages.php:257
#: ../../Zotlabs/Module/Admin/Accounts.php:175
#: ../../Zotlabs/Module/Admin/Channels.php:149
#: ../../Zotlabs/Module/Admin/Profs.php:176
#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Module/Editblock.php:139
#: ../../Zotlabs/Module/Editlayout.php:138
-#: ../../Zotlabs/Module/Connections.php:328
-#: ../../Zotlabs/Module/Photos.php:1178 ../../Zotlabs/Module/Profiles.php:802
-#: ../../Zotlabs/Module/Oauth2.php:195 ../../Zotlabs/Module/Thing.php:269
-#: ../../Zotlabs/Module/Connedit.php:669 ../../Zotlabs/Module/Connedit.php:941
-#: ../../Zotlabs/Lib/Apps.php:558 ../../Zotlabs/Lib/ThreadItem.php:170
+#: ../../Zotlabs/Module/Connections.php:306
+#: ../../Zotlabs/Module/Photos.php:1178 ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Oauth2.php:195 ../../Zotlabs/Module/Thing.php:267
+#: ../../Zotlabs/Module/Connedit.php:668 ../../Zotlabs/Module/Connedit.php:940
+#: ../../Zotlabs/Lib/Apps.php:558 ../../Zotlabs/Lib/ThreadItem.php:168
#: ../../Zotlabs/Storage/Browser.php:297
msgid "Delete"
msgstr "Eliminar"
-#: ../../include/conversation.php:721 ../../Zotlabs/Lib/ThreadItem.php:273
+#: ../../include/conversation.php:695 ../../Zotlabs/Lib/ThreadItem.php:267
msgid "Toggle Star Status"
msgstr "Activar o desactivar el estado de entrada preferida"
-#: ../../include/conversation.php:726 ../../Zotlabs/Lib/ThreadItem.php:103
+#: ../../include/conversation.php:700 ../../Zotlabs/Lib/ThreadItem.php:103
msgid "Private Message"
msgstr "Mensaje Privado"
-#: ../../include/conversation.php:733 ../../Zotlabs/Widget/Pinned.php:88
-#: ../../Zotlabs/Lib/ThreadItem.php:284
+#: ../../include/conversation.php:707 ../../Zotlabs/Lib/ThreadItem.php:278
msgid "Message signature validated"
msgstr "Firma de mensaje validada"
-#: ../../include/conversation.php:734 ../../Zotlabs/Widget/Pinned.php:89
-#: ../../Zotlabs/Lib/ThreadItem.php:285
+#: ../../include/conversation.php:708 ../../Zotlabs/Lib/ThreadItem.php:279
msgid "Message signature incorrect"
msgstr "Firma de mensaje incorrecta"
-#: ../../include/conversation.php:761
+#: ../../include/conversation.php:735
#: ../../Zotlabs/Module/Admin/Accounts.php:173
-#: ../../Zotlabs/Module/Connections.php:342
+#: ../../Zotlabs/Module/Connections.php:320
msgid "Approve"
msgstr "Aprobar"
-#: ../../include/conversation.php:766
+#: ../../include/conversation.php:739
#, php-format
msgid "View %s's profile @ %s"
msgstr "Ver el perfil @ %s de %s"
-#: ../../include/conversation.php:786
+#: ../../include/conversation.php:759
msgid "Categories:"
msgstr "Temas:"
-#: ../../include/conversation.php:787
+#: ../../include/conversation.php:760
msgid "Filed under:"
msgstr "Archivado bajo:"
-#: ../../include/conversation.php:793 ../../Zotlabs/Widget/Pinned.php:133
-#: ../../Zotlabs/Lib/ThreadItem.php:429
+#: ../../include/conversation.php:766 ../../Zotlabs/Lib/ThreadItem.php:401
#, php-format
msgid "from %s"
msgstr "desde %s"
-#: ../../include/conversation.php:796 ../../Zotlabs/Widget/Pinned.php:136
-#: ../../Zotlabs/Lib/ThreadItem.php:432
+#: ../../include/conversation.php:769 ../../Zotlabs/Lib/ThreadItem.php:404
#, php-format
msgid "last edited: %s"
msgstr "último cambio: %s"
-#: ../../include/conversation.php:797 ../../Zotlabs/Widget/Pinned.php:137
-#: ../../Zotlabs/Lib/ThreadItem.php:433
+#: ../../include/conversation.php:770 ../../Zotlabs/Lib/ThreadItem.php:405
#, php-format
msgid "Expires: %s"
msgstr "Caduca: %s"
-#: ../../include/conversation.php:812
+#: ../../include/conversation.php:785
msgid "View in context"
msgstr "Mostrar en su contexto"
-#: ../../include/conversation.php:814 ../../Zotlabs/Module/Photos.php:1078
-#: ../../Zotlabs/Lib/ThreadItem.php:501
+#: ../../include/conversation.php:787 ../../Zotlabs/Module/Photos.php:1076
+#: ../../Zotlabs/Lib/ThreadItem.php:469
msgid "Please wait"
msgstr "Espere por favor"
-#: ../../include/conversation.php:913
+#: ../../include/conversation.php:886
msgid "remove"
msgstr "eliminar"
-#: ../../include/conversation.php:917
+#: ../../include/conversation.php:890
msgid "Loading..."
msgstr "Cargando..."
-#: ../../include/conversation.php:918 ../../Zotlabs/Lib/ThreadItem.php:301
+#: ../../include/conversation.php:891 ../../Zotlabs/Lib/ThreadItem.php:291
msgid "Conversation Tools"
msgstr "Herramientas de conversación"
-#: ../../include/conversation.php:919
+#: ../../include/conversation.php:892
msgid "Delete Selected Items"
msgstr "Eliminar elementos seleccionados"
-#: ../../include/conversation.php:962
+#: ../../include/conversation.php:935
msgid "View Source"
msgstr "Ver el código fuente de la entrada"
-#: ../../include/conversation.php:972
+#: ../../include/conversation.php:945
msgid "Follow Thread"
msgstr "Seguir este hilo"
-#: ../../include/conversation.php:981
+#: ../../include/conversation.php:954
msgid "Unfollow Thread"
msgstr "Dejar de seguir este hilo"
-#: ../../include/conversation.php:1075 ../../Zotlabs/Module/Connedit.php:630
+#: ../../include/conversation.php:1048 ../../Zotlabs/Module/Connedit.php:629
msgid "Recent Activity"
msgstr "Actividad reciente"
-#: ../../include/conversation.php:1085 ../../include/connections.php:110
-#: ../../include/channel.php:1603 ../../Zotlabs/Widget/Suggestions.php:46
-#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Module/Directory.php:368
-#: ../../Zotlabs/Module/Connections.php:349
+#: ../../include/conversation.php:1058 ../../include/connections.php:110
+#: ../../include/channel.php:1506 ../../Zotlabs/Widget/Suggestions.php:46
+#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Module/Directory.php:353
+#: ../../Zotlabs/Module/Connections.php:326
#: ../../Zotlabs/Module/Suggest.php:71
msgid "Connect"
msgstr "Conectar"
-#: ../../include/conversation.php:1095
+#: ../../include/conversation.php:1068
msgid "Edit Connection"
msgstr "Editar conexión"
-#: ../../include/conversation.php:1105
+#: ../../include/conversation.php:1078
msgid "Message"
msgstr "Mensaje"
-#: ../../include/conversation.php:1115 ../../Zotlabs/Module/Pubsites.php:35
+#: ../../include/conversation.php:1088 ../../Zotlabs/Module/Pubsites.php:35
#: ../../Zotlabs/Module/Ratings.php:97
msgid "Ratings"
msgstr "Valoraciones"
-#: ../../include/conversation.php:1125 ../../Zotlabs/Module/Poke.php:199
-#: ../../Zotlabs/Lib/Apps.php:351
+#: ../../include/conversation.php:1098 ../../Zotlabs/Module/Poke.php:199
+#: ../../Zotlabs/Lib/Apps.php:350
msgid "Poke"
msgstr "Toques y otras cosas"
-#: ../../include/conversation.php:1247
+#: ../../include/conversation.php:1212
#, php-format
msgid "%s likes this."
msgstr "A %s le gusta esto."
-#: ../../include/conversation.php:1247
+#: ../../include/conversation.php:1212
#, php-format
msgid "%s doesn't like this."
msgstr "A %s no le gusta esto."
-#: ../../include/conversation.php:1251
+#: ../../include/conversation.php:1216
#, php-format
msgid "<span %1$s>%2$d people</span> like this."
msgid_plural "<span %1$s>%2$d people</span> like this."
msgstr[0] "a <span %1$s>%2$d personas</span> le gusta esto."
msgstr[1] "A <span %1$s>%2$d personas</span> les gusta esto."
-#: ../../include/conversation.php:1253
+#: ../../include/conversation.php:1218
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this."
msgid_plural "<span %1$s>%2$d people</span> don't like this."
msgstr[0] "a <span %1$s>%2$d personas</span> no les gusta esto."
msgstr[1] "A <span %1$s>%2$d personas</span> no les gusta esto."
-#: ../../include/conversation.php:1259
+#: ../../include/conversation.php:1224
msgid "and"
msgstr "y"
-#: ../../include/conversation.php:1262
+#: ../../include/conversation.php:1227
#, php-format
msgid ", and %d other people"
msgid_plural ", and %d other people"
msgstr[0] ", y %d persona más"
msgstr[1] ", y %d personas más"
-#: ../../include/conversation.php:1263
+#: ../../include/conversation.php:1228
#, php-format
msgid "%s like this."
msgstr "A %s le gusta esto."
-#: ../../include/conversation.php:1263
+#: ../../include/conversation.php:1228
#, php-format
msgid "%s don't like this."
msgstr "A %s no le gusta esto."
-#: ../../include/conversation.php:1447
-msgid "Toggle poll"
-msgstr "Activar o desactivar encuestas"
-
-#: ../../include/conversation.php:1448
-msgid "Option"
-msgstr "Opción"
-
-#: ../../include/conversation.php:1449
-msgid "Add option"
-msgstr "Añadir una opción"
-
-#: ../../include/conversation.php:1450
-msgid "Minutes"
-msgstr "Minutos "
-
-#: ../../include/conversation.php:1450
-msgid "Hours"
-msgstr "Horas "
-
-#: ../../include/conversation.php:1450
-msgid "Days"
-msgstr "Días "
-
-#: ../../include/conversation.php:1451
-msgid "Allow multiple answers"
-msgstr "Permitir respuestas múltiples"
-
-#: ../../include/conversation.php:1734 ../../include/taxonomy.php:659
-#: ../../include/channel.php:1766 ../../Zotlabs/Module/Photos.php:1135
-#: ../../Zotlabs/Lib/ThreadItem.php:242
+#: ../../include/conversation.php:1702 ../../include/taxonomy.php:659
+#: ../../include/channel.php:1669 ../../Zotlabs/Module/Photos.php:1135
+#: ../../Zotlabs/Lib/ThreadItem.php:236
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
msgstr[0] "Me gusta"
msgstr[1] "Me gusta"
-#: ../../include/conversation.php:1737 ../../Zotlabs/Module/Photos.php:1140
-#: ../../Zotlabs/Lib/ThreadItem.php:247
+#: ../../include/conversation.php:1705 ../../Zotlabs/Module/Photos.php:1140
+#: ../../Zotlabs/Lib/ThreadItem.php:241
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] "No me gusta"
msgstr[1] "No me gusta"
-#: ../../include/conversation.php:1740
+#: ../../include/conversation.php:1708
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] "Participaré"
msgstr[1] "Participaré"
-#: ../../include/conversation.php:1743
+#: ../../include/conversation.php:1711
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] "No participaré"
msgstr[1] "No participaré"
-#: ../../include/conversation.php:1746
+#: ../../include/conversation.php:1714
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] "Indeciso/a"
msgstr[1] "Indecisos/as"
-#: ../../include/conversation.php:1749
+#: ../../include/conversation.php:1717
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] "De acuerdo"
msgstr[1] "De acuerdo"
-#: ../../include/conversation.php:1752
+#: ../../include/conversation.php:1720
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] "En desacuerdo"
msgstr[1] "En desacuerdo"
-#: ../../include/conversation.php:1755
+#: ../../include/conversation.php:1723
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -6300,11 +6300,11 @@ msgstr "Transexual"
msgid "Hermaphrodite"
msgstr "Hermafrodita"
-#: ../../include/selectors.php:60 ../../include/channel.php:1711
+#: ../../include/selectors.php:60 ../../include/channel.php:1614
msgid "Neuter"
msgstr "Neutral"
-#: ../../include/selectors.php:60 ../../include/channel.php:1713
+#: ../../include/selectors.php:60 ../../include/channel.php:1616
msgid "Non-specific"
msgstr "No especificado"
@@ -6400,15 +6400,15 @@ msgstr "Infiel"
msgid "Sex Addict"
msgstr "Con adicción al sexo"
-#: ../../include/selectors.php:134 ../../include/channel.php:504
-#: ../../include/channel.php:505 ../../include/channel.php:512
+#: ../../include/selectors.php:134 ../../include/channel.php:493
+#: ../../include/channel.php:494 ../../include/channel.php:501
#: ../../Zotlabs/Widget/Affinity.php:32
-#: ../../Zotlabs/Module/Settings/Channel.php:71
+#: ../../Zotlabs/Module/Settings/Channel.php:70
+#: ../../Zotlabs/Module/Settings/Channel.php:74
#: ../../Zotlabs/Module/Settings/Channel.php:75
-#: ../../Zotlabs/Module/Settings/Channel.php:76
-#: ../../Zotlabs/Module/Settings/Channel.php:79
-#: ../../Zotlabs/Module/Settings/Channel.php:90
-#: ../../Zotlabs/Module/Connedit.php:726
+#: ../../Zotlabs/Module/Settings/Channel.php:78
+#: ../../Zotlabs/Module/Settings/Channel.php:89
+#: ../../Zotlabs/Module/Connedit.php:725
msgid "Friends"
msgstr "Amigos/as"
@@ -6504,36 +6504,35 @@ msgstr "Nueva ventana"
msgid "Open the selected location in a different window or browser tab"
msgstr "Abrir la dirección seleccionada en una ventana o pestaña aparte"
-#: ../../include/group.php:23 ../../Zotlabs/Lib/Group.php:28
+#: ../../include/group.php:22 ../../Zotlabs/Lib/Group.php:28
msgid ""
"A deleted group with this name was revived. Existing item permissions "
"<strong>may</strong> apply to this group and any future members. If this is "
"not what you intended, please create another group with a different name."
msgstr "Un grupo suprimido con este nombre ha sido restablecido. <strong>Es posible</strong> que los permisos que ya existen sean aplicados a este grupo y sus futuros miembros. Si no quiere esto, por favor cree otro grupo con un nombre diferente."
-#: ../../include/group.php:265 ../../Zotlabs/Lib/Group.php:270
+#: ../../include/group.php:264 ../../Zotlabs/Lib/Group.php:270
msgid "Add new connections to this privacy group"
msgstr "Añadir conexiones nuevas a este grupo de canales"
-#: ../../include/group.php:299 ../../Zotlabs/Lib/AccessList.php:311
-#: ../../Zotlabs/Lib/Group.php:302
+#: ../../include/group.php:298 ../../Zotlabs/Lib/Group.php:302
msgid "edit"
msgstr "editar"
-#: ../../include/group.php:322 ../../Zotlabs/Lib/Group.php:325
+#: ../../include/group.php:321 ../../Zotlabs/Lib/Group.php:325
msgid "Edit group"
msgstr "Editar grupo"
-#: ../../include/group.php:323 ../../Zotlabs/Lib/Group.php:326
+#: ../../include/group.php:322 ../../Zotlabs/Lib/Group.php:326
msgid "Add privacy group"
msgstr "Añadir un grupo de canales"
-#: ../../include/group.php:324 ../../Zotlabs/Lib/Group.php:327
+#: ../../include/group.php:323 ../../Zotlabs/Lib/Group.php:327
msgid "Channels not in any privacy group"
msgstr "Sin canales en ningún grupo"
-#: ../../include/group.php:326 ../../Zotlabs/Widget/Savedsearch.php:84
-#: ../../Zotlabs/Lib/AccessList.php:336 ../../Zotlabs/Lib/Group.php:329
+#: ../../include/group.php:325 ../../Zotlabs/Widget/Savedsearch.php:84
+#: ../../Zotlabs/Lib/Group.php:329
msgid "add"
msgstr "añadir"
@@ -6566,7 +6565,7 @@ msgstr "quiero"
msgid "wants"
msgstr "quiere"
-#: ../../include/taxonomy.php:573 ../../Zotlabs/Lib/ThreadItem.php:317
+#: ../../include/taxonomy.php:573 ../../Zotlabs/Lib/ThreadItem.php:307
msgid "like"
msgstr "me gusta"
@@ -6574,7 +6573,7 @@ msgstr "me gusta"
msgid "likes"
msgstr "gusta de"
-#: ../../include/taxonomy.php:574 ../../Zotlabs/Lib/ThreadItem.php:318
+#: ../../include/taxonomy.php:574 ../../Zotlabs/Lib/ThreadItem.php:308
msgid "dislike"
msgstr "no me gusta"
@@ -6582,104 +6581,104 @@ msgstr "no me gusta"
msgid "dislikes"
msgstr "no gusta de"
-#: ../../include/items.php:999 ../../include/items.php:1059
+#: ../../include/items.php:984 ../../include/items.php:1044
msgid "(Unknown)"
msgstr "(Desconocido)"
-#: ../../include/items.php:1247
+#: ../../include/items.php:1232
msgid "Visible to anybody on the internet."
msgstr "Visible para cualquiera en internet."
-#: ../../include/items.php:1249
+#: ../../include/items.php:1234
msgid "Visible to you only."
msgstr "Visible sólo para usted."
-#: ../../include/items.php:1251
+#: ../../include/items.php:1236
msgid "Visible to anybody in this network."
msgstr "Visible para cualquiera en esta red."
-#: ../../include/items.php:1253
+#: ../../include/items.php:1238
msgid "Visible to anybody authenticated."
msgstr "Visible para cualquiera que esté autenticado."
-#: ../../include/items.php:1255
+#: ../../include/items.php:1240
#, php-format
msgid "Visible to anybody on %s."
msgstr "Visible para cualquiera en %s."
-#: ../../include/items.php:1257
+#: ../../include/items.php:1242
msgid "Visible to all connections."
msgstr "Visible para todas las conexiones."
-#: ../../include/items.php:1259
+#: ../../include/items.php:1244
msgid "Visible to approved connections."
msgstr "Visible para las conexiones permitidas."
-#: ../../include/items.php:1261
+#: ../../include/items.php:1246
msgid "Visible to specific connections."
msgstr "Visible para conexiones específicas."
-#: ../../include/items.php:4465 ../../Zotlabs/Module/Group.php:62
-#: ../../Zotlabs/Module/Group.php:214
+#: ../../include/items.php:4296 ../../Zotlabs/Module/Group.php:61
+#: ../../Zotlabs/Module/Group.php:213
msgid "Privacy group not found."
msgstr "Grupo de canales no encontrado."
-#: ../../include/items.php:4481
+#: ../../include/items.php:4312
msgid "Privacy group is empty."
msgstr "El grupo de canales está vacío."
-#: ../../include/items.php:4488
+#: ../../include/items.php:4319
#, php-format
msgid "Privacy group: %s"
msgstr "Grupo de canales: %s"
-#: ../../include/items.php:4498 ../../Zotlabs/Module/Connedit.php:868
+#: ../../include/items.php:4329 ../../Zotlabs/Module/Connedit.php:867
#, php-format
msgid "Connection: %s"
msgstr "Conexión: %s"
-#: ../../include/items.php:4500
+#: ../../include/items.php:4331
msgid "Connection not found."
msgstr "Conexión no encontrada"
-#: ../../include/items.php:4834 ../../Zotlabs/Module/Cover_photo.php:297
+#: ../../include/items.php:4673 ../../Zotlabs/Module/Cover_photo.php:303
msgid "female"
msgstr "mujer"
-#: ../../include/items.php:4835 ../../Zotlabs/Module/Cover_photo.php:298
+#: ../../include/items.php:4674 ../../Zotlabs/Module/Cover_photo.php:304
#, php-format
msgid "%1$s updated her %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../include/items.php:4836 ../../Zotlabs/Module/Cover_photo.php:299
+#: ../../include/items.php:4675 ../../Zotlabs/Module/Cover_photo.php:305
msgid "male"
msgstr "hombre"
-#: ../../include/items.php:4837 ../../Zotlabs/Module/Cover_photo.php:300
+#: ../../include/items.php:4676 ../../Zotlabs/Module/Cover_photo.php:306
#, php-format
msgid "%1$s updated his %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../include/items.php:4839 ../../Zotlabs/Module/Cover_photo.php:302
+#: ../../include/items.php:4678 ../../Zotlabs/Module/Cover_photo.php:308
#, php-format
msgid "%1$s updated their %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../include/items.php:4841
+#: ../../include/items.php:4680
msgid "profile photo"
msgstr "foto del perfil"
-#: ../../include/items.php:5033
+#: ../../include/items.php:4872
#, php-format
msgid "[Edited %s]"
msgstr "[se ha editado %s]"
-#: ../../include/items.php:5033
+#: ../../include/items.php:4872
msgctxt "edit_activity"
msgid "Post"
msgstr "Publicar"
-#: ../../include/items.php:5033
+#: ../../include/items.php:4872
msgctxt "edit_activity"
msgid "Comment"
msgstr "Comentar"
@@ -6752,412 +6751,404 @@ msgstr "Esta acción supera los límites establecidos por su plan de suscripció
msgid "This action is not available under your subscription plan."
msgstr "Esta acción no está disponible en su plan de suscripción."
-#: ../../include/photo/photo_driver.php:413
-#: ../../Zotlabs/Module/Profile_photo.php:147
-#: ../../Zotlabs/Module/Profile_photo.php:284
+#: ../../include/photo/photo_driver.php:367
+#: ../../Zotlabs/Module/Profile_photo.php:145
+#: ../../Zotlabs/Module/Profile_photo.php:282
msgid "Profile Photos"
msgstr "Fotos del perfil"
-#: ../../include/attach.php:273 ../../include/attach.php:381
+#: ../../include/attach.php:267 ../../include/attach.php:375
msgid "Item was not found."
msgstr "Elemento no encontrado."
-#: ../../include/attach.php:290
+#: ../../include/attach.php:284
msgid "Unknown error."
msgstr "Error desconocido"
-#: ../../include/attach.php:574
+#: ../../include/attach.php:568
msgid "No source file."
msgstr "Ningún fichero de origen"
-#: ../../include/attach.php:596
+#: ../../include/attach.php:590
msgid "Cannot locate file to replace"
msgstr "No se puede localizar el fichero que va a ser sustituido."
-#: ../../include/attach.php:615
+#: ../../include/attach.php:609
msgid "Cannot locate file to revise/update"
msgstr "No se puede localizar el fichero para revisar/actualizar"
-#: ../../include/attach.php:759
+#: ../../include/attach.php:751
#, php-format
msgid "File exceeds size limit of %d"
msgstr "El fichero supera el limite de tamaño de %d"
-#: ../../include/attach.php:780
+#: ../../include/attach.php:772
#, php-format
msgid "You have reached your limit of %1$.0f Mbytes attachment storage."
msgstr "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos."
-#: ../../include/attach.php:968
+#: ../../include/attach.php:954
msgid "File upload failed. Possible system limit or action terminated."
msgstr "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado."
-#: ../../include/attach.php:997
+#: ../../include/attach.php:983
msgid "Stored file could not be verified. Upload failed."
msgstr "El fichero almacenado no ha podido ser verificado. El envío ha fallado."
-#: ../../include/attach.php:1069 ../../include/attach.php:1085
+#: ../../include/attach.php:1057 ../../include/attach.php:1073
msgid "Path not available."
msgstr "Ruta no disponible."
-#: ../../include/attach.php:1134 ../../include/attach.php:1297
+#: ../../include/attach.php:1122 ../../include/attach.php:1285
msgid "Empty pathname"
msgstr "Ruta vacía"
-#: ../../include/attach.php:1160
+#: ../../include/attach.php:1148
msgid "duplicate filename or path"
msgstr "Nombre duplicado de ruta o fichero"
-#: ../../include/attach.php:1185
+#: ../../include/attach.php:1173
msgid "Path not found."
msgstr "Ruta no encontrada"
-#: ../../include/attach.php:1253
+#: ../../include/attach.php:1241
msgid "mkdir failed."
msgstr "mkdir ha fallado."
-#: ../../include/attach.php:1257
+#: ../../include/attach.php:1245
msgid "database storage failed."
msgstr "el almacenamiento en la base de datos ha fallado."
-#: ../../include/attach.php:1303
+#: ../../include/attach.php:1291
msgid "Empty path"
msgstr "Ruta vacía"
-#: ../../include/attach.php:2035
-#, php-format
-msgid "%s shared a %s with you"
-msgstr "%sha compartido un/una %scon usted"
-
#: ../../include/bookmarks.php:34
#, php-format
msgid "%1$s's bookmarks"
msgstr "Marcadores de %1$s"
-#: ../../include/menu.php:120 ../../include/channel.php:1523
-#: ../../include/channel.php:1527 ../../Zotlabs/Widget/Cdav.php:138
+#: ../../include/menu.php:118 ../../include/channel.php:1426
+#: ../../include/channel.php:1430 ../../Zotlabs/Widget/Cdav.php:138
#: ../../Zotlabs/Widget/Cdav.php:175 ../../Zotlabs/Module/Article_edit.php:98
-#: ../../Zotlabs/Module/Group.php:253 ../../Zotlabs/Module/Card_edit.php:99
+#: ../../Zotlabs/Module/Group.php:252 ../../Zotlabs/Module/Card_edit.php:99
#: ../../Zotlabs/Module/Oauth.php:173 ../../Zotlabs/Module/Editwebpage.php:142
#: ../../Zotlabs/Module/Webpages.php:255
#: ../../Zotlabs/Module/Admin/Profs.php:175
#: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Editblock.php:114
#: ../../Zotlabs/Module/Editlayout.php:114
-#: ../../Zotlabs/Module/Connections.php:320
-#: ../../Zotlabs/Module/Connections.php:362
-#: ../../Zotlabs/Module/Connections.php:382 ../../Zotlabs/Module/Menu.php:176
-#: ../../Zotlabs/Module/Oauth2.php:194 ../../Zotlabs/Module/Thing.php:268
+#: ../../Zotlabs/Module/Connections.php:298
+#: ../../Zotlabs/Module/Connections.php:339
+#: ../../Zotlabs/Module/Connections.php:359 ../../Zotlabs/Module/Menu.php:176
+#: ../../Zotlabs/Module/Oauth2.php:194 ../../Zotlabs/Module/Thing.php:266
#: ../../Zotlabs/Module/Wiki.php:211 ../../Zotlabs/Module/Wiki.php:384
#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Lib/Apps.php:557
#: ../../Zotlabs/Lib/ThreadItem.php:148 ../../Zotlabs/Storage/Browser.php:296
msgid "Edit"
msgstr "Editar"
-#: ../../include/bbcode.php:221 ../../include/bbcode.php:896
-#: ../../include/bbcode.php:1486 ../../include/bbcode.php:1494
+#: ../../include/bbcode.php:221 ../../include/bbcode.php:1232
+#: ../../include/bbcode.php:1235 ../../include/bbcode.php:1240
+#: ../../include/bbcode.php:1243 ../../include/bbcode.php:1246
+#: ../../include/bbcode.php:1249 ../../include/bbcode.php:1254
+#: ../../include/bbcode.php:1257 ../../include/bbcode.php:1262
+#: ../../include/bbcode.php:1265 ../../include/bbcode.php:1268
+#: ../../include/bbcode.php:1271
msgid "Image/photo"
msgstr "Imagen/foto"
-#: ../../include/bbcode.php:268 ../../include/bbcode.php:1511
+#: ../../include/bbcode.php:260 ../../include/bbcode.php:1282
msgid "Encrypted content"
msgstr "Contenido cifrado"
-#: ../../include/bbcode.php:302
+#: ../../include/bbcode.php:292
#, php-format
msgid "Install %1$s element %2$s"
msgstr "Instalar el elemento de%1$s%2$s"
-#: ../../include/bbcode.php:306
+#: ../../include/bbcode.php:296
#, php-format
msgid ""
"This post contains an installable %s element, however you lack permissions "
"to install it on this site."
msgstr "Esta entrada contiene el elemento instalable %s, sin embargo le faltan permisos para instalarlo en este sitio."
-#: ../../include/bbcode.php:316 ../../Zotlabs/Module/Impel.php:43
+#: ../../include/bbcode.php:306 ../../Zotlabs/Module/Impel.php:43
msgid "webpage"
msgstr "página web"
-#: ../../include/bbcode.php:319 ../../Zotlabs/Module/Impel.php:53
+#: ../../include/bbcode.php:309 ../../Zotlabs/Module/Impel.php:53
msgid "layout"
msgstr "plantilla"
-#: ../../include/bbcode.php:322 ../../Zotlabs/Module/Impel.php:48
+#: ../../include/bbcode.php:312 ../../Zotlabs/Module/Impel.php:48
msgid "block"
msgstr "bloque"
-#: ../../include/bbcode.php:325 ../../Zotlabs/Module/Impel.php:60
+#: ../../include/bbcode.php:315 ../../Zotlabs/Module/Impel.php:60
msgid "menu"
msgstr "menú"
-#: ../../include/bbcode.php:519
+#: ../../include/bbcode.php:376
msgid "card"
msgstr "ficha"
-#: ../../include/bbcode.php:521
+#: ../../include/bbcode.php:378
msgid "article"
msgstr "el artículo"
-#: ../../include/bbcode.php:523 ../../include/markdown.php:204
-#: ../../Zotlabs/Module/Tagger.php:79
+#: ../../include/bbcode.php:380 ../../include/markdown.php:204
+#: ../../Zotlabs/Module/Tagger.php:77
msgid "post"
msgstr "la entrada"
-#: ../../include/bbcode.php:527 ../../include/markdown.php:202
+#: ../../include/bbcode.php:384 ../../include/markdown.php:202
#, php-format
msgid "%1$s wrote the following %2$s %3$s"
msgstr "%1$s escribió %2$s siguiente %3$s"
-#: ../../include/bbcode.php:604 ../../include/bbcode.php:612
+#: ../../include/bbcode.php:461 ../../include/bbcode.php:469
msgid "Click to open/close"
msgstr "Pulsar para abrir/cerrar"
-#: ../../include/bbcode.php:612 ../../include/markdown.php:251
+#: ../../include/bbcode.php:469 ../../include/markdown.php:251
msgid "spoiler"
msgstr "spoiler"
-#: ../../include/bbcode.php:625
+#: ../../include/bbcode.php:482
msgid "View article"
msgstr "Ver el artículo"
-#: ../../include/bbcode.php:625
+#: ../../include/bbcode.php:482
msgid "View summary"
msgstr "Ver sumario"
-#: ../../include/bbcode.php:1018 ../../include/bbcode.php:1190
-#: ../../Zotlabs/Lib/NativeWikiPage.php:606
+#: ../../include/bbcode.php:772 ../../include/bbcode.php:942
+#: ../../Zotlabs/Lib/NativeWikiPage.php:603
msgid "Different viewers will see this text differently"
msgstr "Visitantes diferentes verán este texto de forma distinta"
-#: ../../include/bbcode.php:1474
+#: ../../include/bbcode.php:1220
msgid "$1 wrote:"
msgstr "$1 escribió:"
-#: ../../include/channel.php:46
+#: ../../include/channel.php:43
msgid "Unable to obtain identity information from database"
msgstr "No ha sido posible obtener información sobre la identidad desde la base de datos"
-#: ../../include/channel.php:79
+#: ../../include/channel.php:76
msgid "Empty name"
msgstr "Nombre vacío"
-#: ../../include/channel.php:82
+#: ../../include/channel.php:79
msgid "Name too long"
msgstr "Nombre demasiado largo"
-#: ../../include/channel.php:199
+#: ../../include/channel.php:196
msgid "No account identifier"
msgstr "Ningún identificador de la cuenta"
-#: ../../include/channel.php:211
+#: ../../include/channel.php:208
msgid "Nickname is required."
msgstr "Se requiere un sobrenombre (alias)."
-#: ../../include/channel.php:225 ../../include/channel.php:705
+#: ../../include/channel.php:222 ../../include/channel.php:655
#: ../../Zotlabs/Module/Changeaddr.php:46
msgid "Reserved nickname. Please choose another."
msgstr "Sobrenombre en uso. Por favor, elija otro."
-#: ../../include/channel.php:230 ../../include/channel.php:710
+#: ../../include/channel.php:227 ../../include/channel.php:660
#: ../../Zotlabs/Module/Changeaddr.php:51
msgid ""
"Nickname has unsupported characters or is already being used on this site."
msgstr "El alias contiene caracteres no admitidos o está ya en uso por otros miembros de este sitio."
-#: ../../include/channel.php:294
+#: ../../include/channel.php:287
msgid "Unable to retrieve created identity"
msgstr "No ha sido posible recuperar la identidad creada"
-#: ../../include/channel.php:440
+#: ../../include/channel.php:429
msgid "Default Profile"
msgstr "Perfil principal"
-#: ../../include/channel.php:638 ../../include/channel.php:727
+#: ../../include/channel.php:588 ../../include/channel.php:677
msgid "Unable to retrieve modified identity"
msgstr "No se puede recuperar la identidad modficada"
-#: ../../include/channel.php:1370
-msgid "Requested channel is not available."
-msgstr "El canal solicitado no está disponible."
-
-#: ../../include/channel.php:1516 ../../Zotlabs/Module/Profiles.php:730
+#: ../../include/channel.php:1419 ../../Zotlabs/Module/Profiles.php:728
msgid "Change profile photo"
msgstr "Cambiar la foto del perfil"
-#: ../../include/channel.php:1524
+#: ../../include/channel.php:1427
msgid "Create New Profile"
msgstr "Crear un nuevo perfil"
-#: ../../include/channel.php:1542 ../../Zotlabs/Module/Profiles.php:822
+#: ../../include/channel.php:1445 ../../Zotlabs/Module/Profiles.php:820
msgid "Profile Image"
msgstr "Imagen del perfil"
-#: ../../include/channel.php:1545
+#: ../../include/channel.php:1448
msgid "Visible to everybody"
msgstr "Visible para todos"
-#: ../../include/channel.php:1546 ../../Zotlabs/Module/Profiles.php:727
-#: ../../Zotlabs/Module/Profiles.php:826
+#: ../../include/channel.php:1449 ../../Zotlabs/Module/Profiles.php:725
+#: ../../Zotlabs/Module/Profiles.php:824
msgid "Edit visibility"
msgstr "Editar visibilidad"
-#: ../../include/channel.php:1622 ../../include/channel.php:1750
+#: ../../include/channel.php:1525 ../../include/channel.php:1653
msgid "Gender:"
msgstr "Género:"
-#: ../../include/channel.php:1623 ../../include/channel.php:1794
-msgid "Status:"
-msgstr "Estado:"
-
-#: ../../include/channel.php:1624 ../../include/channel.php:1818
+#: ../../include/channel.php:1527 ../../include/channel.php:1721
msgid "Homepage:"
msgstr "Página personal:"
-#: ../../include/channel.php:1625
+#: ../../include/channel.php:1528
msgid "Online Now"
msgstr "Ahora en línea"
-#: ../../include/channel.php:1678
+#: ../../include/channel.php:1581
msgid "Change your profile photo"
msgstr "Cambiar su foto del perfil"
-#: ../../include/channel.php:1709
+#: ../../include/channel.php:1612
msgid "Trans"
msgstr "Trans"
-#: ../../include/channel.php:1748
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../include/channel.php:1651
+#: ../../Zotlabs/Module/Settings/Channel.php:499
msgid "Full Name:"
msgstr "Nombre completo:"
-#: ../../include/channel.php:1755
+#: ../../include/channel.php:1658
msgid "Like this channel"
msgstr "Me gusta este canal"
-#: ../../include/channel.php:1779
+#: ../../include/channel.php:1682
msgid "j F, Y"
msgstr "j F Y"
-#: ../../include/channel.php:1780
+#: ../../include/channel.php:1683
msgid "j F"
msgstr "j F"
-#: ../../include/channel.php:1787
+#: ../../include/channel.php:1690
msgid "Birthday:"
msgstr "Cumpleaños:"
-#: ../../include/channel.php:1791 ../../Zotlabs/Module/Directory.php:347
+#: ../../include/channel.php:1694 ../../Zotlabs/Module/Directory.php:334
msgid "Age:"
msgstr "Edad:"
-#: ../../include/channel.php:1800
+#: ../../include/channel.php:1703
#, php-format
msgid "for %1$d %2$s"
msgstr "por %1$d %2$s"
-#: ../../include/channel.php:1812
+#: ../../include/channel.php:1715
msgid "Tags:"
msgstr "Etiquetas:"
-#: ../../include/channel.php:1816
+#: ../../include/channel.php:1719
msgid "Sexual Preference:"
msgstr "Orientación sexual:"
-#: ../../include/channel.php:1820 ../../Zotlabs/Module/Directory.php:365
+#: ../../include/channel.php:1723 ../../Zotlabs/Module/Directory.php:350
msgid "Hometown:"
msgstr "Lugar de nacimiento:"
-#: ../../include/channel.php:1822
+#: ../../include/channel.php:1725
msgid "Political Views:"
msgstr "Posición política:"
-#: ../../include/channel.php:1824
+#: ../../include/channel.php:1727
msgid "Religion:"
msgstr "Religión:"
-#: ../../include/channel.php:1826 ../../Zotlabs/Module/Directory.php:367
+#: ../../include/channel.php:1729 ../../Zotlabs/Module/Directory.php:352
msgid "About:"
msgstr "Sobre mí:"
-#: ../../include/channel.php:1828
+#: ../../include/channel.php:1731
msgid "Hobbies/Interests:"
msgstr "Aficciones o intereses:"
-#: ../../include/channel.php:1830
+#: ../../include/channel.php:1733
msgid "Likes:"
msgstr "Me gusta:"
-#: ../../include/channel.php:1832
+#: ../../include/channel.php:1735
msgid "Dislikes:"
msgstr "No me gusta:"
-#: ../../include/channel.php:1834
+#: ../../include/channel.php:1737
msgid "Contact information and Social Networks:"
msgstr "Información de contacto y redes sociales:"
-#: ../../include/channel.php:1836
+#: ../../include/channel.php:1739
msgid "My other channels:"
msgstr "Mis otros canales:"
-#: ../../include/channel.php:1838
+#: ../../include/channel.php:1741
msgid "Musical interests:"
msgstr "Preferencias musicales:"
-#: ../../include/channel.php:1840
+#: ../../include/channel.php:1743
msgid "Books, literature:"
msgstr "Libros, literatura:"
-#: ../../include/channel.php:1842
+#: ../../include/channel.php:1745
msgid "Television:"
msgstr "Televisión:"
-#: ../../include/channel.php:1844
+#: ../../include/channel.php:1747
msgid "Film/dance/culture/entertainment:"
msgstr "Cine, danza, cultura, entretenimiento:"
-#: ../../include/channel.php:1846
+#: ../../include/channel.php:1749
msgid "Love/Romance:"
msgstr "Vida sentimental o amorosa:"
-#: ../../include/channel.php:1848
+#: ../../include/channel.php:1751
msgid "Work/employment:"
msgstr "Trabajo:"
-#: ../../include/channel.php:1850
+#: ../../include/channel.php:1753
msgid "School/education:"
msgstr "Estudios:"
-#: ../../include/channel.php:1871 ../../Zotlabs/Module/Profperm.php:113
-#: ../../Zotlabs/Lib/Apps.php:362
+#: ../../include/channel.php:1774 ../../Zotlabs/Module/Profperm.php:113
+#: ../../Zotlabs/Lib/Apps.php:361
msgid "Profile"
msgstr "Perfil"
-#: ../../include/channel.php:1873
+#: ../../include/channel.php:1776
msgid "Like this thing"
msgstr "Me gusta esto"
-#: ../../include/channel.php:1874 ../../Zotlabs/Module/Events.php:699
+#: ../../include/channel.php:1777 ../../Zotlabs/Module/Events.php:699
msgid "Export"
msgstr "Exportar"
-#: ../../include/channel.php:2312 ../../Zotlabs/Module/Cover_photo.php:304
+#: ../../include/channel.php:2215 ../../Zotlabs/Module/Cover_photo.php:310
msgid "cover photo"
msgstr "Imagen de portada del perfil"
-#: ../../include/channel.php:2601 ../../Zotlabs/Module/Rmagic.php:93
-#: ../../boot.php:1699
+#: ../../include/channel.php:2483 ../../Zotlabs/Module/Rmagic.php:93
+#: ../../boot.php:1675
msgid "Remote Authentication"
msgstr "Acceso desde su servidor"
-#: ../../include/channel.php:2602 ../../Zotlabs/Module/Rmagic.php:94
+#: ../../include/channel.php:2484 ../../Zotlabs/Module/Rmagic.php:94
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)"
-#: ../../include/channel.php:2603 ../../Zotlabs/Module/Rmagic.php:95
+#: ../../include/channel.php:2485 ../../Zotlabs/Module/Rmagic.php:95
msgid "Authenticate"
msgstr "Acceder"
-#: ../../include/channel.php:2758 ../../Zotlabs/Module/Admin/Accounts.php:91
+#: ../../include/channel.php:2640 ../../Zotlabs/Module/Admin/Accounts.php:91
#, php-format
msgid "Account '%s' deleted"
msgstr "La cuenta '%s' ha sido eliminada"
@@ -7196,7 +7187,7 @@ msgstr "Seleccione \"Mostrar\" para permitir la visualización. La opción \"No
msgid "Show"
msgstr "Mostrar"
-#: ../../include/acl_selectors.php:117 ../../Zotlabs/Widget/Pinned.php:158
+#: ../../include/acl_selectors.php:117
msgid "Don't show"
msgstr "No mostrar"
@@ -7243,7 +7234,7 @@ msgstr "Solo foros públicos"
msgid "This Website Only"
msgstr "Solo este sitio web"
-#: ../../include/zid.php:370
+#: ../../include/zid.php:368
#, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr "OpenWebAuth: %1$s da la bienvenida a %2$s"
@@ -7315,23 +7306,23 @@ msgid "Page name"
msgstr "Nombre de la página"
#: ../../Zotlabs/Widget/Album.php:78 ../../Zotlabs/Widget/Portfolio.php:87
-#: ../../Zotlabs/Module/Embedphotos.php:170
-#: ../../Zotlabs/Module/Photos.php:786 ../../Zotlabs/Module/Photos.php:1332
+#: ../../Zotlabs/Module/Embedphotos.php:168
+#: ../../Zotlabs/Module/Photos.php:784 ../../Zotlabs/Module/Photos.php:1332
msgid "View Photo"
msgstr "Ver foto"
#: ../../Zotlabs/Widget/Album.php:95 ../../Zotlabs/Widget/Portfolio.php:108
-#: ../../Zotlabs/Module/Embedphotos.php:186
-#: ../../Zotlabs/Module/Photos.php:817
+#: ../../Zotlabs/Module/Embedphotos.php:184
+#: ../../Zotlabs/Module/Photos.php:815
msgid "Edit Album"
msgstr "Editar álbum"
#: ../../Zotlabs/Widget/Album.php:97 ../../Zotlabs/Widget/Cdav.php:146
#: ../../Zotlabs/Widget/Cdav.php:182 ../../Zotlabs/Widget/Portfolio.php:110
-#: ../../Zotlabs/Module/Embedphotos.php:188
-#: ../../Zotlabs/Module/Profile_photo.php:500
-#: ../../Zotlabs/Module/Cover_photo.php:423
-#: ../../Zotlabs/Module/Photos.php:687 ../../Zotlabs/Storage/Browser.php:398
+#: ../../Zotlabs/Module/Embedphotos.php:186
+#: ../../Zotlabs/Module/Profile_photo.php:498
+#: ../../Zotlabs/Module/Cover_photo.php:429
+#: ../../Zotlabs/Module/Photos.php:685 ../../Zotlabs/Storage/Browser.php:398
msgid "Upload"
msgstr "Subir"
@@ -7367,59 +7358,6 @@ msgstr "Eliminar conversación"
msgid "Chat Members"
msgstr "Miembros del chat"
-#: ../../Zotlabs/Widget/Pinned.php:70 ../../Zotlabs/Lib/ThreadItem.php:205
-msgid "I will attend"
-msgstr "Participaré"
-
-#: ../../Zotlabs/Widget/Pinned.php:70 ../../Zotlabs/Lib/ThreadItem.php:205
-msgid "I will not attend"
-msgstr "No participaré"
-
-#: ../../Zotlabs/Widget/Pinned.php:70 ../../Zotlabs/Lib/ThreadItem.php:205
-msgid "I might attend"
-msgstr "Quizá participe"
-
-#: ../../Zotlabs/Widget/Pinned.php:81 ../../Zotlabs/Lib/ThreadItem.php:219
-msgid "I agree"
-msgstr "Estoy de acuerdo"
-
-#: ../../Zotlabs/Widget/Pinned.php:81 ../../Zotlabs/Lib/ThreadItem.php:219
-msgid "I disagree"
-msgstr "No estoy de acuerdo"
-
-#: ../../Zotlabs/Widget/Pinned.php:81 ../../Zotlabs/Lib/ThreadItem.php:219
-msgid "I abstain"
-msgstr "Me abstengo"
-
-#: ../../Zotlabs/Widget/Pinned.php:99 ../../Zotlabs/Lib/ThreadItem.php:329
-msgid "Share This"
-msgstr "Compartir esto"
-
-#: ../../Zotlabs/Widget/Pinned.php:99 ../../Zotlabs/Lib/ThreadItem.php:329
-msgid "share"
-msgstr "compartir"
-
-#: ../../Zotlabs/Widget/Pinned.php:123 ../../Zotlabs/Widget/Pinned.php:124
-#, php-format
-msgid "View %s's profile - %s"
-msgstr "Ver el perfil de %s - %s"
-
-#: ../../Zotlabs/Widget/Pinned.php:128 ../../Zotlabs/Lib/ThreadItem.php:413
-msgid "via"
-msgstr "mediante"
-
-#: ../../Zotlabs/Widget/Pinned.php:143 ../../Zotlabs/Lib/ThreadItem.php:443
-msgid "Attendance Options"
-msgstr "Opciones de participación o asistencia"
-
-#: ../../Zotlabs/Widget/Pinned.php:144 ../../Zotlabs/Lib/ThreadItem.php:445
-msgid "Voting Options"
-msgstr "Opciones de votación"
-
-#: ../../Zotlabs/Widget/Pinned.php:156 ../../Zotlabs/Lib/ThreadItem.php:469
-msgid "Pinned post"
-msgstr "Entradas ancladas"
-
#: ../../Zotlabs/Widget/Activity.php:50
msgctxt "widget"
msgid "Activity"
@@ -7442,7 +7380,7 @@ msgid "Channel Calendar"
msgstr "Calendario del canal"
#: ../../Zotlabs/Widget/Cdav.php:129 ../../Zotlabs/Widget/Cdav.php:143
-#: ../../Zotlabs/Module/Cdav.php:1051
+#: ../../Zotlabs/Module/Cdav.php:1078
msgid "CalDAV Calendars"
msgstr "Calendarios CalDAV"
@@ -7463,12 +7401,12 @@ msgid "Create new CalDAV calendar"
msgstr "Crear un nuevo calendario CalDAV"
#: ../../Zotlabs/Widget/Cdav.php:140 ../../Zotlabs/Widget/Cdav.php:178
-#: ../../Zotlabs/Module/Cdav.php:1055 ../../Zotlabs/Module/Cdav.php:1383
+#: ../../Zotlabs/Module/Cdav.php:1082 ../../Zotlabs/Module/Cdav.php:1388
#: ../../Zotlabs/Module/Webpages.php:254
#: ../../Zotlabs/Module/New_channel.php:189 ../../Zotlabs/Module/Cards.php:113
-#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Profiles.php:798
#: ../../Zotlabs/Module/Articles.php:117 ../../Zotlabs/Module/Menu.php:182
-#: ../../Zotlabs/Module/Connedit.php:939 ../../Zotlabs/Module/Layouts.php:185
+#: ../../Zotlabs/Module/Connedit.php:938 ../../Zotlabs/Module/Layouts.php:185
#: ../../Zotlabs/Storage/Browser.php:282 ../../Zotlabs/Storage/Browser.php:396
msgid "Create"
msgstr "Crear"
@@ -7481,7 +7419,7 @@ msgstr "Nombre del calendario"
msgid "Calendar Tools"
msgstr "Gestión de calendarios"
-#: ../../Zotlabs/Widget/Cdav.php:143 ../../Zotlabs/Module/Cdav.php:1051
+#: ../../Zotlabs/Widget/Cdav.php:143 ../../Zotlabs/Module/Cdav.php:1078
msgid "Channel Calendars"
msgstr "Calendarios del canal"
@@ -7562,9 +7500,9 @@ msgid "See more..."
msgstr "Ver más..."
#: ../../Zotlabs/Widget/Forums.php:100
-#: ../../Zotlabs/Widget/Activity_filter.php:115
-#: ../../Zotlabs/Widget/Notifications.php:139
-#: ../../Zotlabs/Widget/Notifications.php:140
+#: ../../Zotlabs/Widget/Activity_filter.php:73
+#: ../../Zotlabs/Widget/Notifications.php:119
+#: ../../Zotlabs/Widget/Notifications.php:120
msgid "Forums"
msgstr "Foros"
@@ -7573,23 +7511,23 @@ msgid "Bookmarked Chatrooms"
msgstr "Salas de chat preferidas"
#: ../../Zotlabs/Widget/Wiki_page_history.php:23
-#: ../../Zotlabs/Lib/NativeWikiPage.php:565
+#: ../../Zotlabs/Lib/NativeWikiPage.php:562
msgctxt "wiki_history"
msgid "Message"
msgstr "Mensaje"
#: ../../Zotlabs/Widget/Wiki_page_history.php:24
-#: ../../Zotlabs/Lib/NativeWikiPage.php:566
+#: ../../Zotlabs/Lib/NativeWikiPage.php:563
msgid "Date"
msgstr "Fecha"
#: ../../Zotlabs/Widget/Wiki_page_history.php:25
-#: ../../Zotlabs/Module/Wiki.php:367 ../../Zotlabs/Lib/NativeWikiPage.php:567
+#: ../../Zotlabs/Module/Wiki.php:367 ../../Zotlabs/Lib/NativeWikiPage.php:564
msgid "Revert"
msgstr "Revertir"
#: ../../Zotlabs/Widget/Wiki_page_history.php:26
-#: ../../Zotlabs/Lib/NativeWikiPage.php:568
+#: ../../Zotlabs/Lib/NativeWikiPage.php:565
msgid "Compare"
msgstr "Comparar"
@@ -7625,7 +7563,7 @@ msgstr "Nuevo mensaje"
msgid "photo/image"
msgstr "foto/imagen"
-#: ../../Zotlabs/Widget/Admin.php:22 ../../Zotlabs/Module/Admin/Site.php:286
+#: ../../Zotlabs/Widget/Admin.php:22 ../../Zotlabs/Module/Admin/Site.php:288
msgid "Site"
msgstr "Sitio"
@@ -7647,11 +7585,11 @@ msgid "Channels"
msgstr "Canales"
#: ../../Zotlabs/Widget/Admin.php:25
-#: ../../Zotlabs/Module/Admin/Security.php:99
+#: ../../Zotlabs/Module/Admin/Security.php:93
msgid "Security"
msgstr "Seguridad"
-#: ../../Zotlabs/Widget/Admin.php:26 ../../Zotlabs/Lib/Apps.php:358
+#: ../../Zotlabs/Widget/Admin.php:26 ../../Zotlabs/Lib/Apps.php:357
msgid "Features"
msgstr "Funcionalidades"
@@ -7686,85 +7624,61 @@ msgstr "Informes"
msgid "Addon Features"
msgstr "Características del addon"
-#: ../../Zotlabs/Widget/Activity_filter.php:33
-msgid "Direct Messages"
-msgstr "Mensajes directos"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:37
-msgid "Show direct (private) messages"
-msgstr "Mostrar mensajes (privados) directos"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:42
-msgid "Events"
-msgstr "Eventos"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:46
-msgid "Show posts that include events"
-msgstr "Mostrar entradas que incluyan eventos"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:52
-msgid "Polls"
-msgstr "Encuestas"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:56
-msgid "Show posts that include polls"
-msgstr "Mostrar entradas que incluyan encuestas"
-
-#: ../../Zotlabs/Widget/Activity_filter.php:77
+#: ../../Zotlabs/Widget/Activity_filter.php:36
#, php-format
msgid "Show posts related to the %s privacy group"
msgstr "Mostrar entradas relacionadas con el grupo %s"
-#: ../../Zotlabs/Widget/Activity_filter.php:86
+#: ../../Zotlabs/Widget/Activity_filter.php:45
msgid "Show my privacy groups"
msgstr "Mostrar mis grupos de canales"
-#: ../../Zotlabs/Widget/Activity_filter.php:108
+#: ../../Zotlabs/Widget/Activity_filter.php:66
msgid "Show posts to this forum"
msgstr "Mostrar las entradas en este foro"
-#: ../../Zotlabs/Widget/Activity_filter.php:119
+#: ../../Zotlabs/Widget/Activity_filter.php:77
msgid "Show forums"
msgstr "Mostrar los foros"
-#: ../../Zotlabs/Widget/Activity_filter.php:133
+#: ../../Zotlabs/Widget/Activity_filter.php:91
msgid "Starred Posts"
msgstr "Entradas preferidas"
-#: ../../Zotlabs/Widget/Activity_filter.php:137
+#: ../../Zotlabs/Widget/Activity_filter.php:95
msgid "Show posts that I have starred"
msgstr "Mostrar entradas que he señalado como preferidas"
-#: ../../Zotlabs/Widget/Activity_filter.php:148
+#: ../../Zotlabs/Widget/Activity_filter.php:106
msgid "Personal Posts"
msgstr "Entradas personales"
-#: ../../Zotlabs/Widget/Activity_filter.php:152
+#: ../../Zotlabs/Widget/Activity_filter.php:110
msgid "Show posts that mention or involve me"
msgstr "Mostrar entradas que me mencionen o involucren"
-#: ../../Zotlabs/Widget/Activity_filter.php:173
+#: ../../Zotlabs/Widget/Activity_filter.php:131
#, php-format
msgid "Show posts that I have filed to %s"
msgstr "Mostrar las entradas que he enviado a %s"
-#: ../../Zotlabs/Widget/Activity_filter.php:183
+#: ../../Zotlabs/Widget/Activity_filter.php:141
msgid "Show filed post categories"
msgstr "Mostrar los temas de las entradas archivadas"
-#: ../../Zotlabs/Widget/Activity_filter.php:197
+#: ../../Zotlabs/Widget/Activity_filter.php:155
msgid "Panel search"
msgstr "Panel de búsqueda"
-#: ../../Zotlabs/Widget/Activity_filter.php:207
+#: ../../Zotlabs/Widget/Activity_filter.php:165
msgid "Filter by name"
msgstr "Filtrar por nombre"
-#: ../../Zotlabs/Widget/Activity_filter.php:222
+#: ../../Zotlabs/Widget/Activity_filter.php:180
msgid "Remove active filter"
msgstr "Eliminar el filtro activo"
-#: ../../Zotlabs/Widget/Activity_filter.php:238
+#: ../../Zotlabs/Widget/Activity_filter.php:196
msgid "Stream Filters"
msgstr "Filtros del stream"
@@ -7886,26 +7800,26 @@ msgid "View public stream"
msgstr "Ver el \"stream\" público"
#: ../../Zotlabs/Widget/Newmember.php:75
-#: ../../Zotlabs/Module/Settings/Display.php:206
+#: ../../Zotlabs/Module/Settings/Display.php:205
msgid "New Member Links"
msgstr "Enlaces para nuevos miembros"
-#: ../../Zotlabs/Widget/Affinity.php:30 ../../Zotlabs/Module/Connedit.php:724
+#: ../../Zotlabs/Widget/Affinity.php:30 ../../Zotlabs/Module/Connedit.php:723
msgid "Me"
msgstr "Yo"
-#: ../../Zotlabs/Widget/Affinity.php:31 ../../Zotlabs/Module/Connedit.php:725
+#: ../../Zotlabs/Widget/Affinity.php:31 ../../Zotlabs/Module/Connedit.php:724
msgid "Family"
msgstr "Familia"
-#: ../../Zotlabs/Widget/Affinity.php:33 ../../Zotlabs/Module/Connedit.php:727
+#: ../../Zotlabs/Widget/Affinity.php:33 ../../Zotlabs/Module/Connedit.php:726
msgid "Acquaintances"
msgstr "Conocidos/as"
#: ../../Zotlabs/Widget/Affinity.php:34
#: ../../Zotlabs/Module/Connections.php:97
#: ../../Zotlabs/Module/Connections.php:111
-#: ../../Zotlabs/Module/Connedit.php:728
+#: ../../Zotlabs/Module/Connedit.php:727
msgid "All"
msgstr "Todos/as"
@@ -7926,142 +7840,127 @@ msgid "View your network activity"
msgstr "Ver la actividad de su red"
#: ../../Zotlabs/Widget/Notifications.php:23
-#: ../../Zotlabs/Widget/Notifications.php:62
msgid "Mark all notifications read"
msgstr "Marcar todas las notificaciones como leídas"
#: ../../Zotlabs/Widget/Notifications.php:26
-#: ../../Zotlabs/Widget/Notifications.php:46
-#: ../../Zotlabs/Widget/Notifications.php:65
-#: ../../Zotlabs/Widget/Notifications.php:172
+#: ../../Zotlabs/Widget/Notifications.php:45
+#: ../../Zotlabs/Widget/Notifications.php:152
msgid "Show new posts only"
msgstr "Mostrar solo las entradas nuevas"
#: ../../Zotlabs/Widget/Notifications.php:27
-#: ../../Zotlabs/Widget/Notifications.php:47
-#: ../../Zotlabs/Widget/Notifications.php:66
-#: ../../Zotlabs/Widget/Notifications.php:142
-#: ../../Zotlabs/Widget/Notifications.php:173
+#: ../../Zotlabs/Widget/Notifications.php:46
+#: ../../Zotlabs/Widget/Notifications.php:122
+#: ../../Zotlabs/Widget/Notifications.php:153
msgid "Filter by name or address"
msgstr "Filtrar por nombre o dirección"
-#: ../../Zotlabs/Widget/Notifications.php:36
+#: ../../Zotlabs/Widget/Notifications.php:35
msgid "New Home Activity"
msgstr "Nueva actividad en su página principal"
-#: ../../Zotlabs/Widget/Notifications.php:37
+#: ../../Zotlabs/Widget/Notifications.php:36
msgid "New Home Activity Notifications"
msgstr "Avisos de nueva actividad en su página principal"
-#: ../../Zotlabs/Widget/Notifications.php:40
+#: ../../Zotlabs/Widget/Notifications.php:39
msgid "View your home activity"
msgstr "Ver la actividad de su página principal"
-#: ../../Zotlabs/Widget/Notifications.php:43
-#: ../../Zotlabs/Widget/Notifications.php:169
+#: ../../Zotlabs/Widget/Notifications.php:42
+#: ../../Zotlabs/Widget/Notifications.php:149
msgid "Mark all notifications seen"
msgstr "Marcar todas las notificaciones como vistas"
-#: ../../Zotlabs/Widget/Notifications.php:55
-msgid "New Direct Messages"
-msgstr "Nuevos mensajes directos"
-
-#: ../../Zotlabs/Widget/Notifications.php:56
-msgid "New Direct Messages Notifications"
-msgstr "Nuevas notificaciones de mensajes directos"
-
-#: ../../Zotlabs/Widget/Notifications.php:59
-msgid "View your direct messages"
-msgstr "Ver sus mensajes directos"
-
-#: ../../Zotlabs/Widget/Notifications.php:74
+#: ../../Zotlabs/Widget/Notifications.php:54
msgid "New Mails"
msgstr "Nuevos mensajes de correo"
-#: ../../Zotlabs/Widget/Notifications.php:75
+#: ../../Zotlabs/Widget/Notifications.php:55
msgid "New Mails Notifications"
msgstr "Avisos de nuevos mensajes de correo"
-#: ../../Zotlabs/Widget/Notifications.php:78
+#: ../../Zotlabs/Widget/Notifications.php:58
msgid "View your private mails"
msgstr "Ver sus correos privados"
-#: ../../Zotlabs/Widget/Notifications.php:81
+#: ../../Zotlabs/Widget/Notifications.php:61
msgid "Mark all messages seen"
msgstr "Marcar todos los mensajes como vistos"
-#: ../../Zotlabs/Widget/Notifications.php:89
+#: ../../Zotlabs/Widget/Notifications.php:69
msgid "New Events"
msgstr "Eventos nuevos"
-#: ../../Zotlabs/Widget/Notifications.php:90
+#: ../../Zotlabs/Widget/Notifications.php:70
msgid "New Events Notifications"
msgstr "Avisos de nuevos eventos"
-#: ../../Zotlabs/Widget/Notifications.php:93
+#: ../../Zotlabs/Widget/Notifications.php:73
msgid "View events"
msgstr "Ver los eventos"
-#: ../../Zotlabs/Widget/Notifications.php:96
+#: ../../Zotlabs/Widget/Notifications.php:76
msgid "Mark all events seen"
msgstr "Marcar todos los eventos como leidos"
-#: ../../Zotlabs/Widget/Notifications.php:104
+#: ../../Zotlabs/Widget/Notifications.php:84
#: ../../Zotlabs/Module/Connections.php:164
msgid "New Connections"
msgstr "Nuevas conexiones"
-#: ../../Zotlabs/Widget/Notifications.php:105
+#: ../../Zotlabs/Widget/Notifications.php:85
msgid "New Connections Notifications"
msgstr "Avisos de nuevas conexiones"
-#: ../../Zotlabs/Widget/Notifications.php:108
+#: ../../Zotlabs/Widget/Notifications.php:88
msgid "View all connections"
msgstr "Ver todas las conexiones"
-#: ../../Zotlabs/Widget/Notifications.php:116
+#: ../../Zotlabs/Widget/Notifications.php:96
msgid "New Files"
msgstr "Ficheros nuevos"
-#: ../../Zotlabs/Widget/Notifications.php:117
+#: ../../Zotlabs/Widget/Notifications.php:97
msgid "New Files Notifications"
msgstr "Avisos de nuevos ficheros"
-#: ../../Zotlabs/Widget/Notifications.php:124
-#: ../../Zotlabs/Widget/Notifications.php:125
+#: ../../Zotlabs/Widget/Notifications.php:104
+#: ../../Zotlabs/Widget/Notifications.php:105
msgid "Notices"
msgstr "Avisos"
-#: ../../Zotlabs/Widget/Notifications.php:128
+#: ../../Zotlabs/Widget/Notifications.php:108
msgid "View all notices"
msgstr "Ver todos los avisos"
-#: ../../Zotlabs/Widget/Notifications.php:131
+#: ../../Zotlabs/Widget/Notifications.php:111
msgid "Mark all notices seen"
msgstr "Marcar como leídos todos los avisos"
-#: ../../Zotlabs/Widget/Notifications.php:152
+#: ../../Zotlabs/Widget/Notifications.php:132
msgid "New Registrations"
msgstr "Registros nuevos"
-#: ../../Zotlabs/Widget/Notifications.php:153
+#: ../../Zotlabs/Widget/Notifications.php:133
msgid "New Registrations Notifications"
msgstr "Notificaciones de nuevos registros"
-#: ../../Zotlabs/Widget/Notifications.php:162
-#: ../../Zotlabs/Module/Pubstream.php:114 ../../Zotlabs/Lib/Apps.php:375
+#: ../../Zotlabs/Widget/Notifications.php:142
+#: ../../Zotlabs/Module/Pubstream.php:109 ../../Zotlabs/Lib/Apps.php:375
msgid "Public Stream"
msgstr "\"Stream\" público"
-#: ../../Zotlabs/Widget/Notifications.php:163
+#: ../../Zotlabs/Widget/Notifications.php:143
msgid "Public Stream Notifications"
msgstr "Avisos del \"stream\" público"
-#: ../../Zotlabs/Widget/Notifications.php:166
+#: ../../Zotlabs/Widget/Notifications.php:146
msgid "View the public stream"
msgstr "Ver el \"stream\" público"
-#: ../../Zotlabs/Widget/Notifications.php:181
+#: ../../Zotlabs/Widget/Notifications.php:161
msgid "Sorry, you have got no notifications at the moment"
msgstr "Lo sentimos, por el momento no ha recibido ninguna notificación"
@@ -8116,27 +8015,27 @@ msgstr "Contraseña de inicio de sesión"
msgid "Expires (yyyy-mm-dd)"
msgstr "Expira (aaaa-mm-dd)"
-#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:908
+#: ../../Zotlabs/Module/Tokens.php:180 ../../Zotlabs/Module/Connedit.php:907
msgid "Their Settings"
msgstr "Sus ajustes"
-#: ../../Zotlabs/Module/Tokens.php:181 ../../Zotlabs/Module/Permcats.php:122
-#: ../../Zotlabs/Module/Defperms.php:267 ../../Zotlabs/Module/Connedit.php:909
+#: ../../Zotlabs/Module/Tokens.php:181 ../../Zotlabs/Module/Permcats.php:121
+#: ../../Zotlabs/Module/Defperms.php:266 ../../Zotlabs/Module/Connedit.php:908
msgid "My Settings"
msgstr "Mis ajustes"
-#: ../../Zotlabs/Module/Tokens.php:183 ../../Zotlabs/Module/Permcats.php:124
-#: ../../Zotlabs/Module/Defperms.php:265 ../../Zotlabs/Module/Connedit.php:904
+#: ../../Zotlabs/Module/Tokens.php:183 ../../Zotlabs/Module/Permcats.php:123
+#: ../../Zotlabs/Module/Defperms.php:264 ../../Zotlabs/Module/Connedit.php:903
msgid "inherited"
msgstr "heredado"
-#: ../../Zotlabs/Module/Tokens.php:186 ../../Zotlabs/Module/Permcats.php:127
-#: ../../Zotlabs/Module/Defperms.php:270 ../../Zotlabs/Module/Connedit.php:911
+#: ../../Zotlabs/Module/Tokens.php:186 ../../Zotlabs/Module/Permcats.php:126
+#: ../../Zotlabs/Module/Defperms.php:269 ../../Zotlabs/Module/Connedit.php:910
msgid "Individual Permissions"
msgstr "Permisos individuales"
-#: ../../Zotlabs/Module/Tokens.php:187 ../../Zotlabs/Module/Permcats.php:128
-#: ../../Zotlabs/Module/Connedit.php:912
+#: ../../Zotlabs/Module/Tokens.php:187 ../../Zotlabs/Module/Permcats.php:127
+#: ../../Zotlabs/Module/Connedit.php:911
msgid ""
"Some permissions may be inherited from your channel's <a "
"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
@@ -8156,7 +8055,7 @@ msgstr "Elemento no encontrado"
#: ../../Zotlabs/Module/Article_edit.php:44
#: ../../Zotlabs/Module/Wall_upload.php:31
-#: ../../Zotlabs/Module/Card_edit.php:44 ../../Zotlabs/Module/Chanview.php:89
+#: ../../Zotlabs/Module/Card_edit.php:44 ../../Zotlabs/Module/Chanview.php:96
#: ../../Zotlabs/Module/Cal.php:31 ../../Zotlabs/Module/Page.php:75
#: ../../Zotlabs/Module/Block.php:41
msgid "Channel not found."
@@ -8166,29 +8065,29 @@ msgstr "Canal no encontrado."
msgid "Edit Article"
msgstr "Editar el artículo"
-#: ../../Zotlabs/Module/Network.php:110
+#: ../../Zotlabs/Module/Network.php:109
msgid "No such group"
msgstr "No se encuentra el grupo"
-#: ../../Zotlabs/Module/Network.php:159
+#: ../../Zotlabs/Module/Network.php:158
msgid "No such channel"
msgstr "No se encuentra el canal"
-#: ../../Zotlabs/Module/Network.php:174 ../../Zotlabs/Module/Channel.php:195
+#: ../../Zotlabs/Module/Network.php:173 ../../Zotlabs/Module/Channel.php:183
msgid "Search Results For:"
msgstr "Buscar resultados para:"
-#: ../../Zotlabs/Module/Network.php:204 ../../Zotlabs/Module/Channel.php:230
-#: ../../Zotlabs/Module/Hq.php:134 ../../Zotlabs/Module/Pubstream.php:99
+#: ../../Zotlabs/Module/Network.php:203 ../../Zotlabs/Module/Channel.php:218
+#: ../../Zotlabs/Module/Hq.php:134 ../../Zotlabs/Module/Pubstream.php:94
#: ../../Zotlabs/Module/Display.php:80
msgid "Reset form"
msgstr "Reiniciar el formulario"
-#: ../../Zotlabs/Module/Network.php:243
+#: ../../Zotlabs/Module/Network.php:242
msgid "Privacy group is empty"
msgstr "El grupo de canales está vacío"
-#: ../../Zotlabs/Module/Network.php:253
+#: ../../Zotlabs/Module/Network.php:252
msgid "Privacy group: "
msgstr "Grupo de canales: "
@@ -8225,55 +8124,55 @@ msgid ""
msgstr "Utilice este formulario para importar entradas y contenido desde un archivo de exportación."
#: ../../Zotlabs/Module/Import_items.php:127
-#: ../../Zotlabs/Module/Import.php:632
+#: ../../Zotlabs/Module/Import.php:629
msgid "File to Upload"
msgstr "Fichero para subir"
-#: ../../Zotlabs/Module/Import.php:162
+#: ../../Zotlabs/Module/Import.php:157
#, php-format
msgid "Your service plan only allows %d channels."
msgstr "Su paquete de servicios solo permite %d canales."
-#: ../../Zotlabs/Module/Import.php:189
+#: ../../Zotlabs/Module/Import.php:184
msgid "No channel. Import failed."
msgstr "No hay canal. La importación ha fallado"
-#: ../../Zotlabs/Module/Import.php:625
+#: ../../Zotlabs/Module/Import.php:622
msgid "You must be logged in to use this feature."
msgstr "Debe estar registrado para poder usar esta funcionalidad."
-#: ../../Zotlabs/Module/Import.php:630
+#: ../../Zotlabs/Module/Import.php:627
msgid "Import Channel"
msgstr "Importar canal"
-#: ../../Zotlabs/Module/Import.php:631
+#: ../../Zotlabs/Module/Import.php:628
msgid ""
"Use this form to import an existing channel from a different server/hub. You"
" may retrieve the channel identity from the old server/hub via the network "
"or provide an export file."
msgstr "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación."
-#: ../../Zotlabs/Module/Import.php:633
+#: ../../Zotlabs/Module/Import.php:630
msgid "Or provide the old server/hub details"
msgstr "O proporcione los detalles de su antiguo servidor/hub"
-#: ../../Zotlabs/Module/Import.php:635
+#: ../../Zotlabs/Module/Import.php:632
msgid "Your old identity address (xyz@example.com)"
msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)"
-#: ../../Zotlabs/Module/Import.php:636
+#: ../../Zotlabs/Module/Import.php:633
msgid "Your old login email address"
msgstr "Su antigua dirección de correo electrónico"
-#: ../../Zotlabs/Module/Import.php:637
+#: ../../Zotlabs/Module/Import.php:634
msgid "Your old login password"
msgstr "Su antigua contraseña"
-#: ../../Zotlabs/Module/Import.php:638
+#: ../../Zotlabs/Module/Import.php:635
msgid "Import a few months of posts if possible (limited by available memory"
msgstr "Importar unos meses de mensajes si es posible (limitado por la memoria disponible"
-#: ../../Zotlabs/Module/Import.php:640
+#: ../../Zotlabs/Module/Import.php:637
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be"
@@ -8281,49 +8180,31 @@ msgid ""
"primary location for files, photos, and media."
msgstr "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua dirección debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos."
-#: ../../Zotlabs/Module/Import.php:642
+#: ../../Zotlabs/Module/Import.php:639
msgid "Make this hub my primary location"
msgstr "Convertir este servidor en mi ubicación primaria"
-#: ../../Zotlabs/Module/Import.php:643
+#: ../../Zotlabs/Module/Import.php:640
msgid "Move this channel (disable all previous locations)"
msgstr "Mover este canal (desactivar todas las ubicaciones anteriores)"
-#: ../../Zotlabs/Module/Import.php:644
+#: ../../Zotlabs/Module/Import.php:641
msgid "Use this channel nickname instead of the one provided"
msgstr "Usa este alias de canal en lugar del que se proporciona"
-#: ../../Zotlabs/Module/Import.php:644
+#: ../../Zotlabs/Module/Import.php:641
msgid ""
"Leave blank to keep your existing channel nickname. You will be randomly "
"assigned a similar nickname if either name is already allocated on this "
"site."
msgstr "Dejar en blanco para mantener su alias de canal . Se le asignará aleatoriamente uno similar si cualquiera de los dos nombres ya está asignado en este sitio."
-#: ../../Zotlabs/Module/Import.php:646
+#: ../../Zotlabs/Module/Import.php:643
msgid ""
"This process may take several minutes to complete. Please submit the form "
"only once and leave this page open until finished."
msgstr "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine."
-#: ../../Zotlabs/Module/Ochannel.php:32 ../../Zotlabs/Module/Channel.php:42
-#: ../../Zotlabs/Module/Chat.php:29
-msgid "You must be logged in to see this page."
-msgstr "Debe haber iniciado sesión para poder ver esta página."
-
-#: ../../Zotlabs/Module/Z6trans.php:80
-msgid "Update to Hubzilla 5.0 setp 2"
-msgstr "Actualizar a Hubzilla 5.0. Paso 2"
-
-#: ../../Zotlabs/Module/Z6trans.php:82
-msgid "To complete the update please run"
-msgstr "Para completar la actualización, ejecutar "
-
-#: ../../Zotlabs/Module/Z6trans.php:88
-msgid ""
-"INFO: this command can take a very long time depending on your DB size."
-msgstr "INFO; este comando puede tardar en ejecutarse mucho tiempo dependiendo del tamaño de su base de datos."
-
#: ../../Zotlabs/Module/Register.php:52
msgid "Maximum daily site registrations exceeded. Please try again tomorrow."
msgstr "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana."
@@ -8429,7 +8310,7 @@ msgstr "Su alias se usará para crear una dirección de canal fácil de recordar
#: ../../Zotlabs/Module/Register.php:264
#: ../../Zotlabs/Module/New_channel.php:178
-#: ../../Zotlabs/Module/Settings/Channel.php:536
+#: ../../Zotlabs/Module/Settings/Channel.php:535
msgid "Channel role and privacy"
msgstr "Clase de canal y privacidad"
@@ -8453,7 +8334,7 @@ msgid "yes"
msgstr "sí"
#: ../../Zotlabs/Module/Register.php:277
-#: ../../Zotlabs/Module/Admin/Site.php:288
+#: ../../Zotlabs/Module/Admin/Site.php:290
msgid "Registration"
msgstr "Registro"
@@ -8466,17 +8347,17 @@ msgstr "Este sitio requiere verificación por correo electrónico. Después de c
#: ../../Zotlabs/Module/Search.php:17
#: ../../Zotlabs/Module/Viewconnections.php:23
#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Display.php:29
-#: ../../Zotlabs/Module/Directory.php:71 ../../Zotlabs/Module/Directory.php:76
-#: ../../Zotlabs/Module/Photos.php:518
+#: ../../Zotlabs/Module/Directory.php:67 ../../Zotlabs/Module/Directory.php:72
+#: ../../Zotlabs/Module/Photos.php:516
msgid "Public access denied."
msgstr "Acceso público denegado."
-#: ../../Zotlabs/Module/Search.php:231
+#: ../../Zotlabs/Module/Search.php:230
#, php-format
msgid "Items tagged with: %s"
msgstr "elementos etiquetados con: %s"
-#: ../../Zotlabs/Module/Search.php:233
+#: ../../Zotlabs/Module/Search.php:232
#, php-format
msgid "Search results for: %s"
msgstr "Resultados de la búsqueda para: %s"
@@ -8518,9 +8399,9 @@ msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"."
msgid "System check"
msgstr "Verificación del sistema"
-#: ../../Zotlabs/Module/Setup.php:260 ../../Zotlabs/Module/Cdav.php:1032
+#: ../../Zotlabs/Module/Setup.php:260 ../../Zotlabs/Module/Cdav.php:1059
#: ../../Zotlabs/Module/Events.php:698 ../../Zotlabs/Module/Events.php:707
-#: ../../Zotlabs/Module/Cal.php:206 ../../Zotlabs/Module/Photos.php:955
+#: ../../Zotlabs/Module/Cal.php:206 ../../Zotlabs/Module/Photos.php:953
msgid "Next"
msgstr "Siguiente"
@@ -8932,12 +8813,12 @@ msgstr "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poll
msgid "No connections."
msgstr "Sin conexiones."
-#: ../../Zotlabs/Module/Viewconnections.php:105
+#: ../../Zotlabs/Module/Viewconnections.php:83
#, php-format
msgid "Visit %s's profile [%s]"
msgstr "Visitar el perfil de %s [%s]"
-#: ../../Zotlabs/Module/Viewconnections.php:135
+#: ../../Zotlabs/Module/Viewconnections.php:113
msgid "View Connections"
msgstr "Ver conexiones"
@@ -8991,11 +8872,11 @@ msgstr "Publicaciones y comentarios"
msgid "Only posts"
msgstr "Solo publicaciones"
-#: ../../Zotlabs/Module/Channel.php:178
+#: ../../Zotlabs/Module/Channel.php:166
msgid "Insufficient permissions. Request redirected to profile page."
msgstr "Permisos insuficientes. Petición redirigida a la página del perfil."
-#: ../../Zotlabs/Module/Channel.php:497 ../../Zotlabs/Module/Display.php:383
+#: ../../Zotlabs/Module/Channel.php:476 ../../Zotlabs/Module/Display.php:378
msgid ""
"You must enable javascript for your browser to be able to view this content."
msgstr "Debe habilitar javascript para poder ver este contenido en su navegador."
@@ -9021,72 +8902,72 @@ msgstr "Visible para"
msgid "All Connections"
msgstr "Todas las conexiones"
-#: ../../Zotlabs/Module/Group.php:46
+#: ../../Zotlabs/Module/Group.php:45
msgid "Privacy group created."
msgstr "El grupo de canales ha sido creado."
-#: ../../Zotlabs/Module/Group.php:49
+#: ../../Zotlabs/Module/Group.php:48
msgid "Could not create privacy group."
msgstr "No se puede crear el grupo de canales"
-#: ../../Zotlabs/Module/Group.php:81
+#: ../../Zotlabs/Module/Group.php:80
msgid "Privacy group updated."
msgstr "Grupo de canales actualizado."
-#: ../../Zotlabs/Module/Group.php:107
+#: ../../Zotlabs/Module/Group.php:106
msgid "Privacy Groups App"
msgstr "App Grupos de canales"
-#: ../../Zotlabs/Module/Group.php:108
+#: ../../Zotlabs/Module/Group.php:107
msgid "Management of privacy groups"
msgstr "Gestión de grupos de canales"
-#: ../../Zotlabs/Module/Group.php:143
+#: ../../Zotlabs/Module/Group.php:142
msgid "Add Group"
msgstr "Agregar un grupo"
-#: ../../Zotlabs/Module/Group.php:147
+#: ../../Zotlabs/Module/Group.php:146
msgid "Privacy group name"
msgstr "Nombre del grupo"
-#: ../../Zotlabs/Module/Group.php:148 ../../Zotlabs/Module/Group.php:257
+#: ../../Zotlabs/Module/Group.php:147 ../../Zotlabs/Module/Group.php:256
msgid "Members are visible to other channels"
msgstr "Los miembros son visibles para otros canales"
-#: ../../Zotlabs/Module/Group.php:156 ../../Zotlabs/Module/Help.php:84
+#: ../../Zotlabs/Module/Group.php:155 ../../Zotlabs/Module/Help.php:81
msgid "Members"
msgstr "Miembros"
-#: ../../Zotlabs/Module/Group.php:183
+#: ../../Zotlabs/Module/Group.php:182
msgid "Privacy group removed."
msgstr "Grupo de canales eliminado."
-#: ../../Zotlabs/Module/Group.php:186
+#: ../../Zotlabs/Module/Group.php:185
msgid "Unable to remove privacy group."
msgstr "No se puede eliminar el grupo de canales."
-#: ../../Zotlabs/Module/Group.php:252
+#: ../../Zotlabs/Module/Group.php:251
#, php-format
msgid "Privacy Group: %s"
msgstr "Grupo privado %s"
-#: ../../Zotlabs/Module/Group.php:254
+#: ../../Zotlabs/Module/Group.php:253
msgid "Privacy group name: "
msgstr "Nombre del grupo de canales:"
-#: ../../Zotlabs/Module/Group.php:259
+#: ../../Zotlabs/Module/Group.php:258
msgid "Delete Group"
msgstr "Eliminar grupo"
-#: ../../Zotlabs/Module/Group.php:270
+#: ../../Zotlabs/Module/Group.php:269
msgid "Group members"
msgstr "Miembros del grupo"
-#: ../../Zotlabs/Module/Group.php:272
+#: ../../Zotlabs/Module/Group.php:271
msgid "Not in this group"
msgstr "No en este grupo"
-#: ../../Zotlabs/Module/Group.php:304
+#: ../../Zotlabs/Module/Group.php:303
msgid "Click a channel to toggle membership"
msgstr "Haga clic en un canal para cambiar los miembros"
@@ -9162,10 +9043,10 @@ msgid "Key and Secret are required"
msgstr "\"Key\" y \"Secret\" son obligatorios"
#: ../../Zotlabs/Module/Oauth.php:53 ../../Zotlabs/Module/Oauth.php:137
-#: ../../Zotlabs/Module/Cdav.php:1049 ../../Zotlabs/Module/Cdav.php:1384
+#: ../../Zotlabs/Module/Cdav.php:1076 ../../Zotlabs/Module/Cdav.php:1389
#: ../../Zotlabs/Module/Admin/Addons.php:457
-#: ../../Zotlabs/Module/Profiles.php:801 ../../Zotlabs/Module/Oauth2.php:58
-#: ../../Zotlabs/Module/Oauth2.php:144 ../../Zotlabs/Module/Connedit.php:940
+#: ../../Zotlabs/Module/Profiles.php:799 ../../Zotlabs/Module/Oauth2.php:58
+#: ../../Zotlabs/Module/Oauth2.php:144 ../../Zotlabs/Module/Connedit.php:939
#: ../../Zotlabs/Lib/Apps.php:536
msgid "Update"
msgstr "Actualizar"
@@ -9243,11 +9124,11 @@ msgstr "Enlace de la página"
msgid "Edit Webpage"
msgstr "Editar la página web"
-#: ../../Zotlabs/Module/Dirsearch.php:28 ../../Zotlabs/Module/Regdir.php:49
+#: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49
msgid "This site is not a directory server"
msgstr "Este sitio no es un servidor de directorio"
-#: ../../Zotlabs/Module/Dirsearch.php:37
+#: ../../Zotlabs/Module/Dirsearch.php:33
msgid "This directory server requires an access token"
msgstr "El servidor de este directorio necesita un \"token\" de acceso"
@@ -9259,176 +9140,172 @@ msgstr "¡Bienvenido a Hubzilla!"
msgid "You have got no unseen posts..."
msgstr "No tiene ningún mensaje sin leer..."
-#: ../../Zotlabs/Module/Pin.php:35 ../../Zotlabs/Module/Item.php:348
-msgid "Unable to locate original post."
-msgstr "No ha sido posible encontrar la entrada original."
-
-#: ../../Zotlabs/Module/Chat.php:100
+#: ../../Zotlabs/Module/Chat.php:102
msgid "Chatrooms App"
msgstr "App Salas de chat"
-#: ../../Zotlabs/Module/Chat.php:101
+#: ../../Zotlabs/Module/Chat.php:103
msgid "Access Controlled Chatrooms"
msgstr "Salas de chat moderadas"
-#: ../../Zotlabs/Module/Chat.php:194
+#: ../../Zotlabs/Module/Chat.php:196
msgid "Room not found"
msgstr "Sala no encontrada"
-#: ../../Zotlabs/Module/Chat.php:210
+#: ../../Zotlabs/Module/Chat.php:212
msgid "Leave Room"
msgstr "Abandonar la sala"
-#: ../../Zotlabs/Module/Chat.php:211
+#: ../../Zotlabs/Module/Chat.php:213
msgid "Delete Room"
msgstr "Eliminar esta sala"
-#: ../../Zotlabs/Module/Chat.php:212
+#: ../../Zotlabs/Module/Chat.php:214
msgid "I am away right now"
msgstr "Estoy ausente momentáneamente"
-#: ../../Zotlabs/Module/Chat.php:213
+#: ../../Zotlabs/Module/Chat.php:215
msgid "I am online"
msgstr "Estoy conectado/a"
-#: ../../Zotlabs/Module/Chat.php:215
+#: ../../Zotlabs/Module/Chat.php:217
msgid "Bookmark this room"
msgstr "Añadir esta sala a Marcadores"
-#: ../../Zotlabs/Module/Chat.php:238
+#: ../../Zotlabs/Module/Chat.php:240
msgid "New Chatroom"
msgstr "Nueva sala de chat"
-#: ../../Zotlabs/Module/Chat.php:239
+#: ../../Zotlabs/Module/Chat.php:241
msgid "Chatroom name"
msgstr "Nombre de la sala de chat"
-#: ../../Zotlabs/Module/Chat.php:240
+#: ../../Zotlabs/Module/Chat.php:242
msgid "Expiration of chats (minutes)"
msgstr "Caducidad de los mensajes en los chats (en minutos)"
-#: ../../Zotlabs/Module/Chat.php:256
+#: ../../Zotlabs/Module/Chat.php:258
#, php-format
msgid "%1$s's Chatrooms"
msgstr "Salas de chat de %1$s"
-#: ../../Zotlabs/Module/Chat.php:261
+#: ../../Zotlabs/Module/Chat.php:263
msgid "No chatrooms available"
msgstr "No hay salas de chat disponibles"
-#: ../../Zotlabs/Module/Chat.php:262 ../../Zotlabs/Module/Manage.php:145
-#: ../../Zotlabs/Module/Profiles.php:833 ../../Zotlabs/Module/Wiki.php:214
+#: ../../Zotlabs/Module/Chat.php:264 ../../Zotlabs/Module/Manage.php:145
+#: ../../Zotlabs/Module/Profiles.php:831 ../../Zotlabs/Module/Wiki.php:214
msgid "Create New"
msgstr "Crear"
-#: ../../Zotlabs/Module/Chat.php:265
+#: ../../Zotlabs/Module/Chat.php:267
msgid "Expiration"
msgstr "Caducidad"
-#: ../../Zotlabs/Module/Chat.php:266
+#: ../../Zotlabs/Module/Chat.php:268
msgid "min"
msgstr "min"
-#: ../../Zotlabs/Module/Channel_calendar.php:57
+#: ../../Zotlabs/Module/Channel_calendar.php:51
#: ../../Zotlabs/Module/Events.php:113
msgid "Event can not end before it has started."
msgstr "Un evento no puede terminar antes de que haya comenzado."
-#: ../../Zotlabs/Module/Channel_calendar.php:59
-#: ../../Zotlabs/Module/Channel_calendar.php:67
-#: ../../Zotlabs/Module/Channel_calendar.php:84
+#: ../../Zotlabs/Module/Channel_calendar.php:53
+#: ../../Zotlabs/Module/Channel_calendar.php:61
+#: ../../Zotlabs/Module/Channel_calendar.php:78
#: ../../Zotlabs/Module/Events.php:115 ../../Zotlabs/Module/Events.php:124
#: ../../Zotlabs/Module/Events.php:146
msgid "Unable to generate preview."
msgstr "No se puede crear la vista previa."
-#: ../../Zotlabs/Module/Channel_calendar.php:65
+#: ../../Zotlabs/Module/Channel_calendar.php:59
#: ../../Zotlabs/Module/Events.php:122
msgid "Event title and start time are required."
msgstr "Se requieren el título del evento y su hora de inicio."
-#: ../../Zotlabs/Module/Channel_calendar.php:82
-#: ../../Zotlabs/Module/Channel_calendar.php:224
+#: ../../Zotlabs/Module/Channel_calendar.php:76
+#: ../../Zotlabs/Module/Channel_calendar.php:218
#: ../../Zotlabs/Module/Events.php:144 ../../Zotlabs/Module/Events.php:271
msgid "Event not found."
msgstr "Evento no encontrado."
-#: ../../Zotlabs/Module/Channel_calendar.php:371
+#: ../../Zotlabs/Module/Channel_calendar.php:370
#: ../../Zotlabs/Module/Events.php:641
msgid "Edit event"
msgstr "Editar evento"
-#: ../../Zotlabs/Module/Channel_calendar.php:373
+#: ../../Zotlabs/Module/Channel_calendar.php:372
#: ../../Zotlabs/Module/Events.php:643
msgid "Delete event"
msgstr "Borrar evento"
-#: ../../Zotlabs/Module/Channel_calendar.php:393
-#: ../../Zotlabs/Module/Cdav.php:939 ../../Zotlabs/Module/Cal.php:167
+#: ../../Zotlabs/Module/Channel_calendar.php:387
+#: ../../Zotlabs/Module/Cdav.php:966 ../../Zotlabs/Module/Cal.php:167
msgid "Link to source"
msgstr "Enlace a la fuente"
-#: ../../Zotlabs/Module/Channel_calendar.php:407
+#: ../../Zotlabs/Module/Channel_calendar.php:401
#: ../../Zotlabs/Module/Events.php:677
msgid "calendar"
msgstr "calendario"
-#: ../../Zotlabs/Module/Channel_calendar.php:494
+#: ../../Zotlabs/Module/Channel_calendar.php:488
#: ../../Zotlabs/Module/Events.php:742
msgid "Failed to remove event"
msgstr "Error al eliminar el evento"
-#: ../../Zotlabs/Module/Like.php:57
+#: ../../Zotlabs/Module/Like.php:56
msgid "Like/Dislike"
msgstr "Me gusta/No me gusta"
-#: ../../Zotlabs/Module/Like.php:62
+#: ../../Zotlabs/Module/Like.php:61
msgid "This action is restricted to members."
msgstr "Esta acción está restringida solo para miembros."
-#: ../../Zotlabs/Module/Like.php:63
+#: ../../Zotlabs/Module/Like.php:62
msgid ""
"Please <a href=\"rmagic\">login with your $Projectname ID</a> or <a "
"href=\"register\">register as a new $Projectname member</a> to continue."
msgstr "Por favor, <a href=\"rmagic\">identifíquese con su $Projectname ID</a> o <a href=\"register\">rregístrese como un nuevo $Projectname member</a> para continuar."
-#: ../../Zotlabs/Module/Like.php:117 ../../Zotlabs/Module/Like.php:143
-#: ../../Zotlabs/Module/Like.php:181
+#: ../../Zotlabs/Module/Like.php:111 ../../Zotlabs/Module/Like.php:137
+#: ../../Zotlabs/Module/Like.php:175
msgid "Invalid request."
msgstr "Solicitud incorrecta."
-#: ../../Zotlabs/Module/Like.php:158
+#: ../../Zotlabs/Module/Like.php:152
msgid "thing"
msgstr "elemento"
-#: ../../Zotlabs/Module/Like.php:204
+#: ../../Zotlabs/Module/Like.php:198
msgid "Channel unavailable."
msgstr "Canal no disponible."
-#: ../../Zotlabs/Module/Like.php:240
+#: ../../Zotlabs/Module/Like.php:246
msgid "Previous action reversed."
msgstr "Acción anterior revocada."
-#: ../../Zotlabs/Module/Like.php:426
+#: ../../Zotlabs/Module/Like.php:451
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s está de acuerdo"
-#: ../../Zotlabs/Module/Like.php:428
+#: ../../Zotlabs/Module/Like.php:453
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s no está de acuerdo"
-#: ../../Zotlabs/Module/Like.php:430
+#: ../../Zotlabs/Module/Like.php:455
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s se abstiene"
-#: ../../Zotlabs/Module/Like.php:547
+#: ../../Zotlabs/Module/Like.php:572
msgid "Action completed."
msgstr "Acción completada."
-#: ../../Zotlabs/Module/Like.php:548
+#: ../../Zotlabs/Module/Like.php:573
msgid "Thank you."
msgstr "Gracias."
@@ -9464,168 +9341,187 @@ msgstr "Elegir qué desea enviar al destinatario"
msgid "Make this post private"
msgstr "Convertir en privado este envío"
-#: ../../Zotlabs/Module/Cdav.php:814 ../../Zotlabs/Module/Events.php:28
+#: ../../Zotlabs/Module/Cdav.php:807 ../../Zotlabs/Module/Events.php:28
msgid "Calendar entries imported."
msgstr "Entradas de calendario importadas."
-#: ../../Zotlabs/Module/Cdav.php:816 ../../Zotlabs/Module/Events.php:30
+#: ../../Zotlabs/Module/Cdav.php:809 ../../Zotlabs/Module/Events.php:30
msgid "No calendar entries found."
msgstr "No se han encontrado entradas de calendario."
+#: ../../Zotlabs/Module/Cdav.php:870
+msgid "INVALID EVENT DISMISSED!"
+msgstr "¡EVENTO NO VÁLIDO RECHAZADO!"
+
+#: ../../Zotlabs/Module/Cdav.php:871
+msgid "Summary: "
+msgstr "Resumen: "
+
#: ../../Zotlabs/Module/Cdav.php:872
+msgid "Date: "
+msgstr "Fecha: "
+
+#: ../../Zotlabs/Module/Cdav.php:873 ../../Zotlabs/Module/Cdav.php:880
+msgid "Reason: "
+msgstr "Razón: "
+
+#: ../../Zotlabs/Module/Cdav.php:878
+msgid "INVALID CARD DISMISSED!"
+msgstr "¡TARJETA NO VÁLIDA RECHAZADA!"
+
+#: ../../Zotlabs/Module/Cdav.php:879
+msgid "Name: "
+msgstr "Nombre: "
+
+#: ../../Zotlabs/Module/Cdav.php:899
msgid "CardDAV App"
msgstr "App CarDav"
-#: ../../Zotlabs/Module/Cdav.php:873
+#: ../../Zotlabs/Module/Cdav.php:900
msgid "CalDAV capable addressbook"
msgstr "Libreta de direcciones compatible con CalDav"
-#: ../../Zotlabs/Module/Cdav.php:1005 ../../Zotlabs/Module/Events.php:468
+#: ../../Zotlabs/Module/Cdav.php:1032 ../../Zotlabs/Module/Events.php:468
msgid "Event title"
msgstr "Título del evento"
-#: ../../Zotlabs/Module/Cdav.php:1006 ../../Zotlabs/Module/Events.php:474
+#: ../../Zotlabs/Module/Cdav.php:1033 ../../Zotlabs/Module/Events.php:474
msgid "Start date and time"
msgstr "Fecha y hora de comienzo"
-#: ../../Zotlabs/Module/Cdav.php:1007
+#: ../../Zotlabs/Module/Cdav.php:1034
msgid "End date and time"
msgstr "Fecha y hora de finalización"
-#: ../../Zotlabs/Module/Cdav.php:1008 ../../Zotlabs/Module/Events.php:497
+#: ../../Zotlabs/Module/Cdav.php:1035 ../../Zotlabs/Module/Events.php:497
msgid "Timezone:"
msgstr "Zona horaria: "
-#: ../../Zotlabs/Module/Cdav.php:1031 ../../Zotlabs/Module/Events.php:697
+#: ../../Zotlabs/Module/Cdav.php:1058 ../../Zotlabs/Module/Events.php:697
#: ../../Zotlabs/Module/Events.php:706 ../../Zotlabs/Module/Cal.php:205
-#: ../../Zotlabs/Module/Photos.php:946
+#: ../../Zotlabs/Module/Photos.php:944
msgid "Previous"
msgstr "Anterior"
-#: ../../Zotlabs/Module/Cdav.php:1033 ../../Zotlabs/Module/Events.php:708
+#: ../../Zotlabs/Module/Cdav.php:1060 ../../Zotlabs/Module/Events.php:708
#: ../../Zotlabs/Module/Cal.php:207
msgid "Today"
msgstr "Hoy"
-#: ../../Zotlabs/Module/Cdav.php:1034 ../../Zotlabs/Module/Events.php:703
+#: ../../Zotlabs/Module/Cdav.php:1061 ../../Zotlabs/Module/Events.php:703
msgid "Month"
msgstr "Mes"
-#: ../../Zotlabs/Module/Cdav.php:1035 ../../Zotlabs/Module/Events.php:704
+#: ../../Zotlabs/Module/Cdav.php:1062 ../../Zotlabs/Module/Events.php:704
msgid "Week"
msgstr "Semana"
-#: ../../Zotlabs/Module/Cdav.php:1036 ../../Zotlabs/Module/Events.php:705
+#: ../../Zotlabs/Module/Cdav.php:1063 ../../Zotlabs/Module/Events.php:705
msgid "Day"
msgstr "Día"
-#: ../../Zotlabs/Module/Cdav.php:1037
+#: ../../Zotlabs/Module/Cdav.php:1064
msgid "List month"
msgstr "Lista mensual"
-#: ../../Zotlabs/Module/Cdav.php:1038
+#: ../../Zotlabs/Module/Cdav.php:1065
msgid "List week"
msgstr "Lista semanal"
-#: ../../Zotlabs/Module/Cdav.php:1039
+#: ../../Zotlabs/Module/Cdav.php:1066
msgid "List day"
msgstr "Lista diaria"
-#: ../../Zotlabs/Module/Cdav.php:1047
+#: ../../Zotlabs/Module/Cdav.php:1074
msgid "More"
msgstr "Más"
-#: ../../Zotlabs/Module/Cdav.php:1048
+#: ../../Zotlabs/Module/Cdav.php:1075
msgid "Less"
msgstr "Menos"
-#: ../../Zotlabs/Module/Cdav.php:1050
+#: ../../Zotlabs/Module/Cdav.php:1077
msgid "Select calendar"
msgstr "Seleccionar un calendario"
-#: ../../Zotlabs/Module/Cdav.php:1053
+#: ../../Zotlabs/Module/Cdav.php:1080
msgid "Delete all"
msgstr "Eliminar todos"
-#: ../../Zotlabs/Module/Cdav.php:1056
+#: ../../Zotlabs/Module/Cdav.php:1083
msgid "Sorry! Editing of recurrent events is not yet implemented."
msgstr "¡Disculpas! La edición de eventos recurrentes aún no se ha implementado."
-#: ../../Zotlabs/Module/Cdav.php:1369 ../../Zotlabs/Module/Connedit.php:925
+#: ../../Zotlabs/Module/Cdav.php:1374 ../../Zotlabs/Module/Connedit.php:924
msgid "Organisation"
msgstr "Organización"
-#: ../../Zotlabs/Module/Cdav.php:1371 ../../Zotlabs/Module/Profiles.php:788
-#: ../../Zotlabs/Module/Connedit.php:927
+#: ../../Zotlabs/Module/Cdav.php:1376 ../../Zotlabs/Module/Profiles.php:786
+#: ../../Zotlabs/Module/Connedit.php:926
msgid "Phone"
msgstr "Teléfono"
-#: ../../Zotlabs/Module/Cdav.php:1373 ../../Zotlabs/Module/Profiles.php:790
-#: ../../Zotlabs/Module/Connedit.php:929
+#: ../../Zotlabs/Module/Cdav.php:1378 ../../Zotlabs/Module/Profiles.php:788
+#: ../../Zotlabs/Module/Connedit.php:928
msgid "Instant messenger"
msgstr "Mensajería instantánea"
-#: ../../Zotlabs/Module/Cdav.php:1374 ../../Zotlabs/Module/Profiles.php:791
-#: ../../Zotlabs/Module/Connedit.php:930
+#: ../../Zotlabs/Module/Cdav.php:1379 ../../Zotlabs/Module/Profiles.php:789
+#: ../../Zotlabs/Module/Connedit.php:929
msgid "Website"
msgstr "Sitio web"
-#: ../../Zotlabs/Module/Cdav.php:1375
+#: ../../Zotlabs/Module/Cdav.php:1380
#: ../../Zotlabs/Module/Admin/Channels.php:160
-#: ../../Zotlabs/Module/Profiles.php:504 ../../Zotlabs/Module/Profiles.php:792
-#: ../../Zotlabs/Module/Connedit.php:931 ../../Zotlabs/Module/Locs.php:118
+#: ../../Zotlabs/Module/Profiles.php:502 ../../Zotlabs/Module/Profiles.php:790
+#: ../../Zotlabs/Module/Connedit.php:930 ../../Zotlabs/Module/Locs.php:118
msgid "Address"
msgstr "Dirección"
-#: ../../Zotlabs/Module/Cdav.php:1376 ../../Zotlabs/Module/Profiles.php:793
-#: ../../Zotlabs/Module/Connedit.php:932
+#: ../../Zotlabs/Module/Cdav.php:1381 ../../Zotlabs/Module/Profiles.php:791
+#: ../../Zotlabs/Module/Connedit.php:931
msgid "Note"
msgstr "Nota"
-#: ../../Zotlabs/Module/Cdav.php:1381 ../../Zotlabs/Module/Profiles.php:798
+#: ../../Zotlabs/Module/Cdav.php:1387 ../../Zotlabs/Module/Profiles.php:797
#: ../../Zotlabs/Module/Connedit.php:937
-msgid "Add Contact"
-msgstr "Añadir un contacto"
-
-#: ../../Zotlabs/Module/Cdav.php:1382 ../../Zotlabs/Module/Profiles.php:799
-#: ../../Zotlabs/Module/Connedit.php:938
msgid "Add Field"
msgstr "Añadir un campo"
-#: ../../Zotlabs/Module/Cdav.php:1387 ../../Zotlabs/Module/Connedit.php:943
+#: ../../Zotlabs/Module/Cdav.php:1392 ../../Zotlabs/Module/Connedit.php:942
msgid "P.O. Box"
msgstr "Buzón de correos"
-#: ../../Zotlabs/Module/Cdav.php:1388 ../../Zotlabs/Module/Connedit.php:944
+#: ../../Zotlabs/Module/Cdav.php:1393 ../../Zotlabs/Module/Connedit.php:943
msgid "Additional"
msgstr "Adicional"
-#: ../../Zotlabs/Module/Cdav.php:1389 ../../Zotlabs/Module/Connedit.php:945
+#: ../../Zotlabs/Module/Cdav.php:1394 ../../Zotlabs/Module/Connedit.php:944
msgid "Street"
msgstr "Calle"
-#: ../../Zotlabs/Module/Cdav.php:1390 ../../Zotlabs/Module/Connedit.php:946
+#: ../../Zotlabs/Module/Cdav.php:1395 ../../Zotlabs/Module/Connedit.php:945
msgid "Locality"
msgstr "Localidad"
-#: ../../Zotlabs/Module/Cdav.php:1391 ../../Zotlabs/Module/Connedit.php:947
+#: ../../Zotlabs/Module/Cdav.php:1396 ../../Zotlabs/Module/Connedit.php:946
msgid "Region"
msgstr "Provincia, región o estado"
-#: ../../Zotlabs/Module/Cdav.php:1392 ../../Zotlabs/Module/Connedit.php:948
+#: ../../Zotlabs/Module/Cdav.php:1397 ../../Zotlabs/Module/Connedit.php:947
msgid "ZIP Code"
msgstr "Código postal"
-#: ../../Zotlabs/Module/Cdav.php:1393 ../../Zotlabs/Module/Profiles.php:759
-#: ../../Zotlabs/Module/Connedit.php:949
+#: ../../Zotlabs/Module/Cdav.php:1398 ../../Zotlabs/Module/Profiles.php:757
+#: ../../Zotlabs/Module/Connedit.php:948
msgid "Country"
msgstr "País"
-#: ../../Zotlabs/Module/Cdav.php:1452
+#: ../../Zotlabs/Module/Cdav.php:1445
msgid "Default Calendar"
msgstr "Calendario por defecto"
-#: ../../Zotlabs/Module/Cdav.php:1463
+#: ../../Zotlabs/Module/Cdav.php:1456
msgid "Default Addressbook"
msgstr "Agenda de direcciones por defecto"
@@ -9637,32 +9533,36 @@ msgstr "La información privada remota no está disponible."
msgid "Visible to:"
msgstr "Visible para:"
-#: ../../Zotlabs/Module/Item.php:634
+#: ../../Zotlabs/Module/Item.php:382
+msgid "Unable to locate original post."
+msgstr "No ha sido posible encontrar la entrada original."
+
+#: ../../Zotlabs/Module/Item.php:668
msgid "Empty post discarded."
msgstr "La entrada vacía ha sido desechada."
-#: ../../Zotlabs/Module/Item.php:1086
+#: ../../Zotlabs/Module/Item.php:1077
msgid "Duplicate post suppressed."
msgstr "Se ha suprimido la entrada duplicada."
-#: ../../Zotlabs/Module/Item.php:1231
+#: ../../Zotlabs/Module/Item.php:1222
msgid "System error. Post not saved."
msgstr "Error del sistema. La entrada no se ha podido salvar."
-#: ../../Zotlabs/Module/Item.php:1265
+#: ../../Zotlabs/Module/Item.php:1252
msgid "Your comment is awaiting approval."
msgstr "Su comentario está pendiente de aprobación."
-#: ../../Zotlabs/Module/Item.php:1382
+#: ../../Zotlabs/Module/Item.php:1369
msgid "Unable to obtain post information from database."
msgstr "No ha sido posible obtener información de la entrada en la base de datos."
-#: ../../Zotlabs/Module/Item.php:1389
+#: ../../Zotlabs/Module/Item.php:1376
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr "Ha alcanzado su límite de %1$.0f entradas en la página principal."
-#: ../../Zotlabs/Module/Item.php:1396
+#: ../../Zotlabs/Module/Item.php:1383
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr "Ha alcanzado su límite de %1$.0f páginas web."
@@ -9693,7 +9593,7 @@ msgid "Menu Item Permissions"
msgstr "Permisos del elemento del menú"
#: ../../Zotlabs/Module/Mitem.php:168 ../../Zotlabs/Module/Mitem.php:247
-#: ../../Zotlabs/Module/Settings/Channel.php:527
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "(click to open/close)"
msgstr "(pulsar para abrir o cerrar)"
@@ -9797,24 +9697,24 @@ msgstr "Texto del enlace"
msgid "vcard"
msgstr "vcard"
-#: ../../Zotlabs/Module/Sharedwithme.php:105
+#: ../../Zotlabs/Module/Sharedwithme.php:103
msgid "Files: shared with me"
msgstr "Ficheros: compartidos conmigo"
-#: ../../Zotlabs/Module/Sharedwithme.php:107
+#: ../../Zotlabs/Module/Sharedwithme.php:105
msgid "NEW"
msgstr "NUEVO"
-#: ../../Zotlabs/Module/Sharedwithme.php:109
+#: ../../Zotlabs/Module/Sharedwithme.php:107
#: ../../Zotlabs/Storage/Browser.php:294
msgid "Last Modified"
msgstr "Última modificación"
-#: ../../Zotlabs/Module/Sharedwithme.php:110
+#: ../../Zotlabs/Module/Sharedwithme.php:108
msgid "Remove all files"
msgstr "Eliminar todos los ficheros"
-#: ../../Zotlabs/Module/Sharedwithme.php:111
+#: ../../Zotlabs/Module/Sharedwithme.php:109
msgid "Remove this file"
msgstr "Eliminar este fichero"
@@ -9822,23 +9722,23 @@ msgstr "Eliminar este fichero"
msgid "Documentation Search"
msgstr "Búsqueda de Documentación"
-#: ../../Zotlabs/Module/Help.php:85
+#: ../../Zotlabs/Module/Help.php:82
msgid "Administrators"
msgstr "Administradores"
-#: ../../Zotlabs/Module/Help.php:86
+#: ../../Zotlabs/Module/Help.php:83
msgid "Developers"
msgstr "Desarrolladores"
-#: ../../Zotlabs/Module/Help.php:87
+#: ../../Zotlabs/Module/Help.php:84
msgid "Tutorials"
msgstr "Tutoriales"
-#: ../../Zotlabs/Module/Help.php:98
+#: ../../Zotlabs/Module/Help.php:95
msgid "$Projectname Documentation"
msgstr "Documentación de $Projectname"
-#: ../../Zotlabs/Module/Help.php:99
+#: ../../Zotlabs/Module/Help.php:96
msgid "Contents"
msgstr "Contenidos"
@@ -9961,46 +9861,56 @@ msgstr "Eliminar etiqueta del elemento."
msgid "Select a tag to remove: "
msgstr "Seleccionar una etiqueta para eliminar:"
-#: ../../Zotlabs/Module/Connect.php:65 ../../Zotlabs/Module/Connect.php:118
+#: ../../Zotlabs/Module/Connect.php:73 ../../Zotlabs/Module/Connect.php:135
msgid "Continue"
msgstr "Continuar"
-#: ../../Zotlabs/Module/Connect.php:99
+#: ../../Zotlabs/Module/Connect.php:104
+msgid "Premium Channel App"
+msgstr "App Canal premium"
+
+#: ../../Zotlabs/Module/Connect.php:105
+msgid ""
+"Allows you to set restrictions and terms on those that connect with your "
+"channel"
+msgstr "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal"
+
+#: ../../Zotlabs/Module/Connect.php:116
msgid "Premium Channel Setup"
msgstr "Configuración del canal premium"
-#: ../../Zotlabs/Module/Connect.php:101
+#: ../../Zotlabs/Module/Connect.php:118
msgid "Enable premium channel connection restrictions"
msgstr "Habilitar restricciones de conexión del canal premium"
-#: ../../Zotlabs/Module/Connect.php:102
+#: ../../Zotlabs/Module/Connect.php:119
msgid ""
"Please enter your restrictions or conditions, such as paypal receipt, usage "
"guidelines, etc."
msgstr "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc."
-#: ../../Zotlabs/Module/Connect.php:104 ../../Zotlabs/Module/Connect.php:124
+#: ../../Zotlabs/Module/Connect.php:121 ../../Zotlabs/Module/Connect.php:141
msgid ""
"This channel may require additional steps or acknowledgement of the "
"following conditions prior to connecting:"
msgstr "Este canal puede requerir antes de conectar unos pasos adicionales o el conocimiento de las siguientes condiciones:"
-#: ../../Zotlabs/Module/Connect.php:105
+#: ../../Zotlabs/Module/Connect.php:122
msgid ""
"Potential connections will then see the following text before proceeding:"
msgstr "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:"
-#: ../../Zotlabs/Module/Connect.php:106 ../../Zotlabs/Module/Connect.php:127
+#: ../../Zotlabs/Module/Connect.php:123 ../../Zotlabs/Module/Connect.php:144
msgid ""
"By continuing, I certify that I have complied with any instructions provided"
" on this page."
msgstr "Al continuar, certifico que he cumplido con todas las instrucciones proporcionadas en esta página."
-#: ../../Zotlabs/Module/Connect.php:115
+#: ../../Zotlabs/Module/Connect.php:132
msgid "(No specific instructions have been provided by the channel owner.)"
msgstr "(No ha sido proporcionada ninguna instrucción específica por el propietario del canal.)"
-#: ../../Zotlabs/Module/Connect.php:123
+#: ../../Zotlabs/Module/Connect.php:140
msgid "Restricted or Premium Channel"
msgstr "Canal premium o restringido"
@@ -10016,16 +9926,16 @@ msgstr "Por favor, recargue la página"
msgid "Unknown error"
msgstr "Error desconocido"
-#: ../../Zotlabs/Module/Share.php:104 ../../Zotlabs/Lib/Activity.php:2068
+#: ../../Zotlabs/Module/Share.php:103 ../../Zotlabs/Lib/Activity.php:1671
#, php-format
msgid "&#x1f501; Repeated %1$s's %2$s"
msgstr "&#x1f501; Repetidos %2$sde %1$s"
-#: ../../Zotlabs/Module/Share.php:120
+#: ../../Zotlabs/Module/Share.php:119
msgid "Post repeated"
msgstr "Entrada repetida"
-#: ../../Zotlabs/Module/Acl.php:361
+#: ../../Zotlabs/Module/Acl.php:360
msgid "network"
msgstr "red"
@@ -10037,11 +9947,11 @@ msgstr "El elemento no es editable"
msgid "Edit post"
msgstr "Editar la entrada"
-#: ../../Zotlabs/Module/Tagger.php:50
+#: ../../Zotlabs/Module/Tagger.php:48
msgid "Post not found."
msgstr "Mensaje no encontrado."
-#: ../../Zotlabs/Module/Tagger.php:121
+#: ../../Zotlabs/Module/Tagger.php:119
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s ha etiquetado %3$s de %2$s con %4$s"
@@ -10120,9 +10030,9 @@ msgstr "Instantánea de pantalla"
#: ../../Zotlabs/Module/Admin/Themes.php:122
#: ../../Zotlabs/Module/Admin/Themes.php:156
-#: ../../Zotlabs/Module/Admin/Security.php:98
+#: ../../Zotlabs/Module/Admin/Security.php:92
#: ../../Zotlabs/Module/Admin/Accounts.php:166
-#: ../../Zotlabs/Module/Admin/Site.php:285
+#: ../../Zotlabs/Module/Admin/Site.php:287
#: ../../Zotlabs/Module/Admin/Logs.php:82
#: ../../Zotlabs/Module/Admin/Channels.php:145
#: ../../Zotlabs/Module/Admin/Addons.php:342
@@ -10163,139 +10073,127 @@ msgstr "Bloquear la funcionalidad %s"
msgid "Manage Additional Features"
msgstr "Gestionar las funcionalidades"
-#: ../../Zotlabs/Module/Admin/Security.php:89
+#: ../../Zotlabs/Module/Admin/Security.php:83
msgid ""
"By default, unfiltered HTML is allowed in embedded media. This is inherently"
" insecure."
msgstr "De forma predeterminada, el HTML sin filtrar está permitido en el contenido multimedia incorporado en una publicación. Esto es siempre inseguro."
-#: ../../Zotlabs/Module/Admin/Security.php:92
+#: ../../Zotlabs/Module/Admin/Security.php:86
msgid ""
"The recommended setting is to only allow unfiltered HTML from the following "
"sites:"
msgstr "La configuración recomendada es que sólo se permita HTML sin filtrar desde los siguientes sitios: "
-#: ../../Zotlabs/Module/Admin/Security.php:93
+#: ../../Zotlabs/Module/Admin/Security.php:87
msgid ""
"https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br"
" />https://vimeo.com/<br />https://soundcloud.com/<br />"
msgstr "https://youtube.com/<br />https://www.youtube.com/<br />https://youtu.be/<br />https://vimeo.com/<br />https://soundcloud.com/<br />"
-#: ../../Zotlabs/Module/Admin/Security.php:94
+#: ../../Zotlabs/Module/Admin/Security.php:88
msgid ""
"All other embedded content will be filtered, <strong>unless</strong> "
"embedded content from that site is explicitly blocked."
msgstr "El resto del contenido incrustado se filtrará, <strong>excepto</ strong> si el contenido incorporado desde ese sitio está bloqueado de forma explícita."
-#: ../../Zotlabs/Module/Admin/Security.php:101
+#: ../../Zotlabs/Module/Admin/Security.php:95
msgid "Block public"
msgstr "Bloquear páginas públicas"
-#: ../../Zotlabs/Module/Admin/Security.php:101
+#: ../../Zotlabs/Module/Admin/Security.php:95
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently authenticated."
msgstr "Habilitar para impedir ver las páginas personales de este sitio a quien no esté actualmente autenticado."
-#: ../../Zotlabs/Module/Admin/Security.php:102
+#: ../../Zotlabs/Module/Admin/Security.php:96
msgid "Provide a cloud root directory"
msgstr "Proporcionar un directorio raíz de la nube"
-#: ../../Zotlabs/Module/Admin/Security.php:102
+#: ../../Zotlabs/Module/Admin/Security.php:96
msgid ""
"The cloud root directory lists all channel names which provide public files"
msgstr "El directorio raíz de la nube lista todos los nombres de canales que proporcionan archivos públicos"
-#: ../../Zotlabs/Module/Admin/Security.php:103
+#: ../../Zotlabs/Module/Admin/Security.php:97
msgid "Show total disk space available to cloud uploads"
msgstr "Mostrar el espacio total disponible en el disco para las cargas en la nube"
-#: ../../Zotlabs/Module/Admin/Security.php:104
+#: ../../Zotlabs/Module/Admin/Security.php:98
msgid "Set \"Transport Security\" HTTP header"
msgstr "Habilitar \"Seguridad de transporte\" (\"Transport Security\") en la cabecera HTTP"
-#: ../../Zotlabs/Module/Admin/Security.php:105
+#: ../../Zotlabs/Module/Admin/Security.php:99
msgid "Set \"Content Security Policy\" HTTP header"
msgstr "Habilitar la \"Política de seguridad del contenido\" (\"Content Security Policy\") en la cabecera HTTP"
-#: ../../Zotlabs/Module/Admin/Security.php:106
+#: ../../Zotlabs/Module/Admin/Security.php:100
msgid "Allowed email domains"
msgstr "Se aceptan dominios de correo electrónico"
-#: ../../Zotlabs/Module/Admin/Security.php:106
+#: ../../Zotlabs/Module/Admin/Security.php:100
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 "Lista separada por comas de los dominios de los que se acepta una dirección de correo electrónico para registros en este sitio. Se permiten comodines. Dejar en claro para aceptar cualquier dominio. "
-#: ../../Zotlabs/Module/Admin/Security.php:107
+#: ../../Zotlabs/Module/Admin/Security.php:101
msgid "Not allowed email domains"
msgstr "No se permiten dominios de correo electrónico"
-#: ../../Zotlabs/Module/Admin/Security.php:107
+#: ../../Zotlabs/Module/Admin/Security.php:101
msgid ""
"Comma separated list of domains which are not allowed in email addresses for"
" registrations to this site. Wildcards are accepted. Empty to allow any "
"domains, unless allowed domains have been defined."
msgstr "Lista separada por comas de los dominios de los que no se acepta una dirección de correo electrónico para registros en este sitio. Se permiten comodines. Dejar en claro para no aceptar cualquier dominio, excepto los que se hayan autorizado."
-#: ../../Zotlabs/Module/Admin/Security.php:108
+#: ../../Zotlabs/Module/Admin/Security.php:102
msgid "Allow communications only from these sites"
msgstr "Permitir la comunicación solo desde estos sitios"
-#: ../../Zotlabs/Module/Admin/Security.php:108
+#: ../../Zotlabs/Module/Admin/Security.php:102
msgid ""
"One site per line. Leave empty to allow communication from anywhere by "
"default"
msgstr "Un sitio por línea. Dejar en blanco para permitir por defecto la comunicación desde cualquiera"
-#: ../../Zotlabs/Module/Admin/Security.php:109
+#: ../../Zotlabs/Module/Admin/Security.php:103
msgid "Block communications from these sites"
msgstr "Bloquear la comunicación desde estos sitios"
-#: ../../Zotlabs/Module/Admin/Security.php:110
+#: ../../Zotlabs/Module/Admin/Security.php:104
msgid "Allow communications only from these channels"
msgstr "Permitir la comunicación solo desde estos canales"
-#: ../../Zotlabs/Module/Admin/Security.php:110
+#: ../../Zotlabs/Module/Admin/Security.php:104
msgid ""
"One channel (hash) per line. Leave empty to allow from any channel by "
"default"
msgstr "Un canal (hash) por línea. Dejar en blanco para permitir por defecto la comunicación desde cualquiera"
-#: ../../Zotlabs/Module/Admin/Security.php:111
+#: ../../Zotlabs/Module/Admin/Security.php:105
msgid "Block communications from these channels"
msgstr "Bloquear la comunicación desde estos canales"
-#: ../../Zotlabs/Module/Admin/Security.php:112
+#: ../../Zotlabs/Module/Admin/Security.php:106
msgid "Only allow embeds from secure (SSL) websites and links."
msgstr "Sólo se permite contenido multimedia incorporado desde sitios y enlaces seguros (SSL)."
-#: ../../Zotlabs/Module/Admin/Security.php:113
+#: ../../Zotlabs/Module/Admin/Security.php:107
msgid "Allow unfiltered embedded HTML content only from these domains"
msgstr "Permitir contenido HTML sin filtrar sólo desde estos dominios "
-#: ../../Zotlabs/Module/Admin/Security.php:113
+#: ../../Zotlabs/Module/Admin/Security.php:107
msgid "One site per line. By default embedded content is filtered."
msgstr "Un sitio por línea. El contenido incorporado se filtra de forma predeterminada."
-#: ../../Zotlabs/Module/Admin/Security.php:114
+#: ../../Zotlabs/Module/Admin/Security.php:108
msgid "Block embedded HTML from these domains"
msgstr "Bloquear contenido con HTML incorporado desde estos dominios"
-#: ../../Zotlabs/Module/Admin/Security.php:115
-msgid "Allow SVG thumbnails in file browser"
-msgstr "Permitir miniaturas SVG en el navegador de archivos"
-
-#: ../../Zotlabs/Module/Admin/Security.php:115
-msgid "WARNING: SVG images may contain malicious code."
-msgstr "ADVERTENCIA: Las imágenes SVG pueden contener código malicioso."
-
-#: ../../Zotlabs/Module/Admin/Security.php:116
-msgid "Allow embedded (inline) PDF files"
-msgstr "Permitir ficheros PDF incrustados (en línea)"
-
#: ../../Zotlabs/Module/Admin/Accounts.php:37
#, php-format
msgid "%s account blocked/unblocked"
@@ -10342,12 +10240,12 @@ msgid "No registrations."
msgstr "Sin registros."
#: ../../Zotlabs/Module/Admin/Accounts.php:176
-#: ../../Zotlabs/Module/Connedit.php:637
+#: ../../Zotlabs/Module/Connedit.php:636
msgid "Block"
msgstr "Bloquear"
#: ../../Zotlabs/Module/Admin/Accounts.php:177
-#: ../../Zotlabs/Module/Connedit.php:637
+#: ../../Zotlabs/Module/Connedit.php:636
msgid "Unblock"
msgstr "Desbloquear"
@@ -10387,422 +10285,430 @@ msgid ""
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "¡La cuenta {0} va a ser eliminada!\\n\\n¡Todo lo que esta cuenta ha publicado en este sitio será borrado de forma permanente!\\n\\n¿Está seguro de querer hacerlo?"
-#: ../../Zotlabs/Module/Admin/Site.php:159
+#: ../../Zotlabs/Module/Admin/Site.php:161
msgid "Site settings updated."
msgstr "Ajustes del sitio actualizados."
-#: ../../Zotlabs/Module/Admin/Site.php:196
-#: ../../Zotlabs/Module/Settings/Display.php:120
+#: ../../Zotlabs/Module/Admin/Site.php:198
+#: ../../Zotlabs/Module/Settings/Display.php:119
#, php-format
msgid "%s - (Incompatible)"
msgstr "%s - (Incompatible)"
-#: ../../Zotlabs/Module/Admin/Site.php:203
+#: ../../Zotlabs/Module/Admin/Site.php:205
msgid "mobile"
msgstr "móvil"
-#: ../../Zotlabs/Module/Admin/Site.php:205
+#: ../../Zotlabs/Module/Admin/Site.php:207
msgid "experimental"
msgstr "experimental"
-#: ../../Zotlabs/Module/Admin/Site.php:207
+#: ../../Zotlabs/Module/Admin/Site.php:209
msgid "unsupported"
msgstr "no soportado"
-#: ../../Zotlabs/Module/Admin/Site.php:254
+#: ../../Zotlabs/Module/Admin/Site.php:256
msgid "Yes - with approval"
msgstr "Sí - con aprobación"
-#: ../../Zotlabs/Module/Admin/Site.php:260
+#: ../../Zotlabs/Module/Admin/Site.php:262
msgid "My site is not a public server"
msgstr "Mi sitio no es un servidor público"
-#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Admin/Site.php:263
msgid "My site has paid access only"
msgstr "Mi sitio es un servicio de pago"
-#: ../../Zotlabs/Module/Admin/Site.php:262
+#: ../../Zotlabs/Module/Admin/Site.php:264
msgid "My site has free access only"
msgstr "Mi sitio es un servicio gratuito"
-#: ../../Zotlabs/Module/Admin/Site.php:263
+#: ../../Zotlabs/Module/Admin/Site.php:265
msgid "My site offers free accounts with optional paid upgrades"
msgstr "Mi sitio ofrece cuentas gratuitas con opciones extra de pago"
-#: ../../Zotlabs/Module/Admin/Site.php:277
+#: ../../Zotlabs/Module/Admin/Site.php:279
msgid "Default permission role for new accounts"
msgstr "Permisos de rol por defecto para las nuevas cuentas"
-#: ../../Zotlabs/Module/Admin/Site.php:277
+#: ../../Zotlabs/Module/Admin/Site.php:279
msgid ""
"This role will be used for the first channel created after registration."
msgstr "Este rol se utilizará para el primer canal creado después del registro."
-#: ../../Zotlabs/Module/Admin/Site.php:289
+#: ../../Zotlabs/Module/Admin/Site.php:291
msgid "File upload"
msgstr "Subir fichero"
-#: ../../Zotlabs/Module/Admin/Site.php:290
+#: ../../Zotlabs/Module/Admin/Site.php:292
msgid "Policies"
msgstr "Políticas"
-#: ../../Zotlabs/Module/Admin/Site.php:297
+#: ../../Zotlabs/Module/Admin/Site.php:299
msgid "Banner/Logo"
msgstr "Banner/Logo"
-#: ../../Zotlabs/Module/Admin/Site.php:297
+#: ../../Zotlabs/Module/Admin/Site.php:299
msgid "Unfiltered HTML/CSS/JS is allowed"
msgstr "Se permite HTML/CSS/JS sin filtrar"
-#: ../../Zotlabs/Module/Admin/Site.php:298
+#: ../../Zotlabs/Module/Admin/Site.php:300
msgid "Administrator Information"
msgstr "Información del Administrador"
-#: ../../Zotlabs/Module/Admin/Site.php:298
+#: ../../Zotlabs/Module/Admin/Site.php:300
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Información de contacto de los administradores del sitio. Visible en la página \"siteinfo\". Se puede usar BBCode"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:301
#: ../../Zotlabs/Module/Siteinfo.php:24
msgid "Site Information"
msgstr "Información sobre el sitio"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:301
msgid ""
"Publicly visible description of this site. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Descripción pública de este sitio. Visible en la página \"siteinfo\". Se puede usar BBCode"
-#: ../../Zotlabs/Module/Admin/Site.php:300
+#: ../../Zotlabs/Module/Admin/Site.php:302
msgid "System language"
msgstr "Idioma del sistema"
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:303
msgid "System theme"
msgstr "Tema gráfico del sistema"
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:303
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - <a href='#' id='cnftheme'>modificar los ajustes del tema</a>"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Allow Feeds as Connections"
msgstr "Permitir contenidos RSS como conexiones"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "(Heavy system resource usage)"
msgstr "(Uso intenso de los recursos del sistema)"
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:307
msgid "Maximum image size"
msgstr "Tamaño máximo de la imagen"
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:307
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Tamaño máximo en bytes de la imagen subida. Por defecto, es 0, lo que significa que no hay límites."
-#: ../../Zotlabs/Module/Admin/Site.php:306
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Does this site allow new member registration?"
msgstr "¿Debe este sitio permitir el registro de nuevos miembros?"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:309
msgid "Invitation only"
msgstr "Solo con una invitación"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:309
msgid ""
"Only allow new member registrations with an invitation code. Above register "
"policy must be set to Yes."
msgstr "Solo se permiten inscripciones de nuevos miembros con un código de invitación. Además, deben aceptarse los términos del registro marcando \"Sí\"."
-#: ../../Zotlabs/Module/Admin/Site.php:308
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Minimum age"
msgstr "Edad mínima"
-#: ../../Zotlabs/Module/Admin/Site.php:308
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Minimum age (in years) for who may register on this site."
msgstr "Edad mínima (en años) para poder registrarse en este sitio."
-#: ../../Zotlabs/Module/Admin/Site.php:309
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid "Which best describes the types of account offered by this hub?"
msgstr "¿Cómo describiría el tipo de servicio ofrecido por este servidor?"
-#: ../../Zotlabs/Module/Admin/Site.php:309
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid "This is displayed on the public server site list."
msgstr "Esto se muestra en la lista de sitios de servidores públicos."
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:312
msgid "Register text"
msgstr "Texto del registro"
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:312
msgid "Will be displayed prominently on the registration page."
msgstr "Se mostrará de forma destacada en la página de registro."
-#: ../../Zotlabs/Module/Admin/Site.php:312
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid "Site homepage to show visitors (default: login box)"
msgstr "Página personal que se mostrará a los visitantes (por defecto: la página de identificación)"
-#: ../../Zotlabs/Module/Admin/Site.php:312
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid ""
"example: 'pubstream' to show public stream, 'page/sys/home' to show a system"
" webpage called 'home' or 'include:home.html' to include a file."
msgstr "ejemplo: 'pubstream' para mostrar el stream público, 'page/sys/home' para mostrar una página web del sistema llamada 'home' o 'include:home.html' para incluir un archivo."
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:315
msgid "Preserve site homepage URL"
msgstr "Preservar la dirección de la página personal"
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:315
msgid ""
"Present the site homepage in a frame at the original location instead of "
"redirecting"
msgstr "Presenta la página personal del sitio en un marco en la ubicación original, en vez de redirigirla."
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:316
msgid "Accounts abandoned after x days"
msgstr "Cuentas abandonadas después de x días"
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:316
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Para evitar consumir recursos del sistema intentando poner al día las cuentas abandonadas. Introduzca 0 para no tener límite de tiempo."
-#: ../../Zotlabs/Module/Admin/Site.php:315
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "Allowed friend domains"
msgstr "Dominios amigos permitidos"
-#: ../../Zotlabs/Module/Admin/Site.php:315
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Lista separada por comas de dominios a los que está permitido establecer relaciones de amistad con este sitio. Se permiten comodines. Dejar en claro para aceptar cualquier dominio."
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid "Verify Email Addresses"
msgstr "Verificar las direcciones de correo electrónico"
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid ""
"Check to verify email addresses used in account registration (recommended)."
msgstr "Activar para la verificación de la dirección de correo electrónico en el registro de una cuenta (recomendado)."
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:319
msgid "Force publish"
msgstr "Forzar la publicación"
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:319
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Intentar forzar todos los perfiles para que sean listados en el directorio de este sitio."
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid "Import Public Streams"
msgstr "Importar contenido público"
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid ""
"Import and allow access to public content pulled from other sites. Warning: "
"this content is unmoderated."
msgstr "Importar y permitir acceso al contenido público sacado de otros sitios. Advertencia: este contenido no está moderado, por lo que podría encontrar cosas inapropiadas u ofensivas."
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Site only Public Streams"
msgstr "Solo contenido público en este sitio"
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid ""
"Allow access to public content originating only from this site if Imported "
"Public Streams are disabled."
msgstr "Permitir el acceso al contenido público originado sólo desde este sitio si los \"streams\" públicos Importados están deshabilitados."
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:322
msgid "Allow anybody on the internet to access the Public streams"
msgstr "Permitir que cualquiera en Internet pueda acceder a los \"streams\" públicos"
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:322
msgid ""
"Disable to require authentication before viewing. Warning: this content is "
"unmoderated."
msgstr "Desactivar para requerir autenticación antes de la visualización. Advertencia: este contenido no está moderado."
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Only import Public stream posts with this text"
msgstr "Importar solo entradas del stream púlbico con este texto "
-#: ../../Zotlabs/Module/Admin/Site.php:321
-#: ../../Zotlabs/Module/Admin/Site.php:322
-#: ../../Zotlabs/Module/Connedit.php:893 ../../Zotlabs/Module/Connedit.php:894
+#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Connedit.php:892 ../../Zotlabs/Module/Connedit.php:893
msgid ""
"words one per line or #tags or /patterns/ or lang=xx, leave blank to import "
"all posts"
msgstr "Una sola opción por línea: palabras, #etiquetas, /patrones/ o lang=xx. Dejar en blanco para importarlo todo"
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid "Do not import Public stream posts with this text"
msgstr "No importar entradas del stream público con este texto "
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid "Login on Homepage"
msgstr "Iniciar sesión en la página personal"
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid ""
"Present a login box to visitors on the home page if no other content has "
"been configured."
msgstr "Presentar a los visitantes una casilla de identificación en la página de inicio, si no se ha configurado otro tipo de contenido."
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid "Enable context help"
msgstr "Habilitar la ayuda contextual"
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid ""
"Display contextual help for the current page when the help button is "
"pressed."
msgstr "Ver la ayuda contextual para la página actual cuando se pulse el botón de Ayuda."
-#: ../../Zotlabs/Module/Admin/Site.php:328
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid "Reply-to email address for system generated email."
msgstr "Dirección de respuesta para el correo electrónico generado por el sistema."
-#: ../../Zotlabs/Module/Admin/Site.php:329
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid "Sender (From) email address for system generated email."
msgstr "Dirección del remitente (From) para el correo electrónico generado por el sistema."
-#: ../../Zotlabs/Module/Admin/Site.php:330
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid "Name of email sender for system generated email."
msgstr "Nombre del remitente del correo electrónico generado por el sistema."
-#: ../../Zotlabs/Module/Admin/Site.php:332
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid "Directory Server URL"
msgstr "URL del servidor de directorio"
-#: ../../Zotlabs/Module/Admin/Site.php:332
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid "Default directory server"
msgstr "Servidor de directorio predeterminado"
-#: ../../Zotlabs/Module/Admin/Site.php:334
+#: ../../Zotlabs/Module/Admin/Site.php:336
msgid "Proxy user"
msgstr "Usuario del proxy"
-#: ../../Zotlabs/Module/Admin/Site.php:335
+#: ../../Zotlabs/Module/Admin/Site.php:337
msgid "Proxy URL"
msgstr "Dirección del proxy"
-#: ../../Zotlabs/Module/Admin/Site.php:336
+#: ../../Zotlabs/Module/Admin/Site.php:338
msgid "Network timeout"
msgstr "Tiempo de espera de la red"
-#: ../../Zotlabs/Module/Admin/Site.php:336
+#: ../../Zotlabs/Module/Admin/Site.php:338
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Valor en segundos. Poner a 0 para que no haya tiempo límite (no recomendado)"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:339
msgid "Delivery interval"
msgstr "Intervalo de entrega"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:339
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 "Retrasar los procesos de transmisión en segundo plano por esta cantidad de segundos para reducir la carga del sistema. Recomendado: 4-5 para sitios compartidos, 2-3 para servidores virtuales privados, 0-1 para grandes servidores dedicados."
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Deliveries per process"
msgstr "Intentos de envío por proceso"
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid ""
"Number of deliveries to attempt in a single operating system process. Adjust"
" if necessary to tune system performance. Recommend: 1-5."
msgstr "Numero de envíos a intentar en un único proceso del sistema operativo. Ajustar si es necesario mejorar el rendimiento. Se recomienda: 1-5."
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:341
msgid "Queue Threshold"
msgstr "Umbral de la cola de espera"
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:341
msgid ""
"Always defer immediate delivery if queue contains more than this number of "
"entries."
msgstr "Aplazar siempre la entrega inmediata si la cola contiene más de este número de entradas."
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:342
msgid "Poll interval"
msgstr "Intervalo máximo de tiempo entre dos mensajes sucesivos"
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:342
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "Retrasar el intervalo de envío en segundo plano, en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, usar el intervalo de entrega."
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:343
msgid "Path to ImageMagick convert program"
msgstr "Ruta al programa de conversión de ImageMagick"
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:343
msgid ""
"If set, use this program to generate photo thumbnails for huge images ( > "
"4000 pixels in either dimension), otherwise memory exhaustion may occur. "
"Example: /usr/bin/convert"
msgstr "Si está configurado, utilice este programa para generar miniaturas de fotos para imágenes de gran tamaño ( > 4000 píxeles en cualquiera de las dos dimensiones), de lo contrario se puede agotar la memoria. Ejemplo: /usr/bin/convert"
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:344
+msgid "Allow SVG thumbnails in file browser"
+msgstr "Permitir miniaturas SVG en el navegador de archivos"
+
+#: ../../Zotlabs/Module/Admin/Site.php:344
+msgid "WARNING: SVG images may contain malicious code."
+msgstr "ADVERTENCIA: Las imágenes SVG pueden contener código malicioso."
+
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid "Maximum Load Average"
msgstr "Carga media máxima"
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Carga máxima del sistema antes de que los procesos de entrega y envío se hayan retardado - por defecto, 50."
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid "Expiration period in days for imported (grid/network) content"
msgstr "Caducidad del contenido importado de otros sitios (en días)"
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid "0 for no expiration of imported content"
msgstr "0 para que no caduque el contenido importado"
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid ""
"Do not expire any posts which have comments less than this many days ago"
msgstr "No caduque ningún mensaje que tenga menos comentarios que este hace muchos días"
-#: ../../Zotlabs/Module/Admin/Site.php:346
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid ""
"Public servers: Optional landing (marketing) webpage for new registrants"
msgstr "Servidores públicos: Página web de acogida (marketing) opcional para nuevos registros"
-#: ../../Zotlabs/Module/Admin/Site.php:346
+#: ../../Zotlabs/Module/Admin/Site.php:349
#, php-format
msgid "Create this page first. Default is %s/register"
msgstr "Crear esta página primero. Por defecto es %s/register"
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "Page to display after creating a new channel"
msgstr "Página a mostrar después de la creación de un nuevo canal"
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "Default: profiles"
msgstr "Perfiles predeterminados"
-#: ../../Zotlabs/Module/Admin/Site.php:349
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "Optional: site location"
msgstr "Opcional: ubicación del sitio"
-#: ../../Zotlabs/Module/Admin/Site.php:349
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "Region or country"
msgstr "Región o país"
@@ -10883,12 +10789,10 @@ msgid "Channel '%s' code disallowed"
msgstr "Código no permitido al canal '%s'"
#: ../../Zotlabs/Module/Admin/Channels.php:150
-#: ../../Zotlabs/Module/Directory.php:360
msgid "Censor"
msgstr "Censurar"
#: ../../Zotlabs/Module/Admin/Channels.php:151
-#: ../../Zotlabs/Module/Directory.php:360
msgid "Uncensor"
msgstr "No censurar"
@@ -11221,7 +11125,7 @@ msgid ""
msgstr "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red"
#: ../../Zotlabs/Module/Removeme.php:64
-#: ../../Zotlabs/Module/Settings/Channel.php:595
+#: ../../Zotlabs/Module/Settings/Channel.php:594
msgid "Remove Channel"
msgstr "Eliminar el canal"
@@ -11335,7 +11239,7 @@ msgstr "%d nuevas solicitudes de conexión"
msgid "Delegated Channel"
msgstr "Canal delegado"
-#: ../../Zotlabs/Module/Chanview.php:128
+#: ../../Zotlabs/Module/Chanview.php:139
msgid "toggle full screen mode"
msgstr "cambiar al modo de pantalla completa"
@@ -11355,33 +11259,33 @@ msgstr "Ausente"
msgid "Online"
msgstr "Conectado/a"
-#: ../../Zotlabs/Module/Permcats.php:29
+#: ../../Zotlabs/Module/Permcats.php:28
msgid "Permission category name is required."
msgstr "El nombre de la categoría de permiso es obligatorio."
-#: ../../Zotlabs/Module/Permcats.php:48
+#: ../../Zotlabs/Module/Permcats.php:47
msgid "Permission category saved."
msgstr "Se ha guardado la categoría del permiso."
-#: ../../Zotlabs/Module/Permcats.php:63
+#: ../../Zotlabs/Module/Permcats.php:62
msgid "Permission Categories App"
msgstr "App Categorías de permisos"
-#: ../../Zotlabs/Module/Permcats.php:64
+#: ../../Zotlabs/Module/Permcats.php:63
msgid "Create custom connection permission limits"
msgstr "Crear límites de permisos de conexión personalizados"
-#: ../../Zotlabs/Module/Permcats.php:80
+#: ../../Zotlabs/Module/Permcats.php:79
msgid ""
"Use this form to create permission rules for various classes of people or "
"connections."
msgstr "Utilice este formulario para crear reglas de permiso para varias clases de personas o conexiones."
-#: ../../Zotlabs/Module/Permcats.php:113 ../../Zotlabs/Lib/Apps.php:374
+#: ../../Zotlabs/Module/Permcats.php:112 ../../Zotlabs/Lib/Apps.php:373
msgid "Permission Categories"
msgstr "Tipos de permisos"
-#: ../../Zotlabs/Module/Permcats.php:121
+#: ../../Zotlabs/Module/Permcats.php:120
msgid "Permission category name"
msgstr "Nombre de categoría de permiso"
@@ -11448,11 +11352,11 @@ msgstr "No se puede encontrar su servidor."
msgid "Post successful."
msgstr "Enviado con éxito."
-#: ../../Zotlabs/Module/Moderate.php:67
+#: ../../Zotlabs/Module/Moderate.php:65
msgid "Comment approved"
msgstr "El comentario ha sido aprobado"
-#: ../../Zotlabs/Module/Moderate.php:71
+#: ../../Zotlabs/Module/Moderate.php:69
msgid "Comment deleted"
msgstr "Se ha eliminado el comentario"
@@ -11563,11 +11467,11 @@ msgid ""
" please import or restore these in date order (oldest first)."
msgstr "Estos ficheros pueden ser importados o restaurados visitando <a href=\"%1$s\">%2$s</a> o cualquier sitio que contenga su canal. Para obtener los mejores resultados, por favor, importar o restaurar estos ficheros en orden de fecha (la más antigua primero)."
-#: ../../Zotlabs/Module/Display.php:401
+#: ../../Zotlabs/Module/Display.php:396
msgid "Article"
msgstr "Artículo"
-#: ../../Zotlabs/Module/Display.php:453
+#: ../../Zotlabs/Module/Display.php:448
msgid "Item has been removed."
msgstr "Se ha eliminado el elemento."
@@ -11645,51 +11549,42 @@ msgstr "Validar"
msgid "Hub not found."
msgstr "Servidor no encontrado"
-#: ../../Zotlabs/Module/Ping.php:337 ../../Zotlabs/Lib/Enotify.php:948
+#: ../../Zotlabs/Module/Ping.php:337
msgid "sent you a private message"
msgstr "le ha enviado un mensaje privado"
-#: ../../Zotlabs/Module/Ping.php:393 ../../Zotlabs/Lib/Enotify.php:914
+#: ../../Zotlabs/Module/Ping.php:393
msgid "added your channel"
msgstr "añadió este canal a sus conexiones"
-#: ../../Zotlabs/Module/Ping.php:418 ../../Zotlabs/Lib/Enotify.php:986
+#: ../../Zotlabs/Module/Ping.php:418
msgid "requires approval"
msgstr "requiere aprobación"
-#: ../../Zotlabs/Module/Ping.php:428 ../../Zotlabs/Lib/Enotify.php:957
+#: ../../Zotlabs/Module/Ping.php:428
msgid "g A l F d"
msgstr "g A l d F"
-#: ../../Zotlabs/Module/Ping.php:446 ../../Zotlabs/Lib/Enotify.php:960
+#: ../../Zotlabs/Module/Ping.php:446
msgid "[today]"
msgstr "[hoy]"
-#: ../../Zotlabs/Module/Ping.php:456 ../../Zotlabs/Lib/Enotify.php:970
+#: ../../Zotlabs/Module/Ping.php:456
msgid "posted an event"
msgstr "publicó un evento"
-#: ../../Zotlabs/Module/Ping.php:490 ../../Zotlabs/Lib/Enotify.php:829
-#: ../../Zotlabs/Lib/Enotify.php:931
+#: ../../Zotlabs/Module/Ping.php:490
msgid "shared a file with you"
msgstr "compartió un archivo con usted"
-#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:510
+#: ../../Zotlabs/Module/Ping.php:672
msgid "Private forum"
msgstr "Foro privado"
-#: ../../Zotlabs/Module/Ping.php:672 ../../Zotlabs/Module/Sse_bs.php:510
+#: ../../Zotlabs/Module/Ping.php:672
msgid "Public forum"
msgstr "Foro público"
-#: ../../Zotlabs/Module/Dircensor.php:42
-msgid "Entry censored"
-msgstr "Entrada censurada"
-
-#: ../../Zotlabs/Module/Dircensor.php:45
-msgid "Entry uncensored"
-msgstr "Entrada sin censurar"
-
#: ../../Zotlabs/Module/Service_limits.php:23
msgid "No service class restrictions found."
msgstr "No se han encontrado restricciones sobre esta clase de servicio."
@@ -11702,7 +11597,7 @@ msgstr "App Estados de ánimo"
msgid "Set your current mood and tell your friends"
msgstr "Describir su estado de ánimo para comunicárselo a sus amigos"
-#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:350
+#: ../../Zotlabs/Module/Mood.php:154 ../../Zotlabs/Lib/Apps.php:349
msgid "Mood"
msgstr "Estado de ánimo"
@@ -11864,90 +11759,90 @@ msgstr "Crear fichas de planificación personal"
msgid "Add Card"
msgstr "Añadir una ficha"
-#: ../../Zotlabs/Module/Directory.php:120
+#: ../../Zotlabs/Module/Directory.php:116
msgid "No default suggestions were found."
msgstr "No se encontraron sugerencias por defecto."
-#: ../../Zotlabs/Module/Directory.php:280
+#: ../../Zotlabs/Module/Directory.php:270
#, php-format
msgid "%d rating"
msgid_plural "%d ratings"
msgstr[0] "%d valoración"
msgstr[1] "%d valoraciones"
-#: ../../Zotlabs/Module/Directory.php:291
+#: ../../Zotlabs/Module/Directory.php:281
msgid "Gender: "
msgstr "Género:"
-#: ../../Zotlabs/Module/Directory.php:293
+#: ../../Zotlabs/Module/Directory.php:283
msgid "Status: "
msgstr "Estado:"
-#: ../../Zotlabs/Module/Directory.php:295
+#: ../../Zotlabs/Module/Directory.php:285
msgid "Homepage: "
msgstr "Página personal:"
-#: ../../Zotlabs/Module/Directory.php:358
+#: ../../Zotlabs/Module/Directory.php:345
msgid "Description:"
msgstr "Descripción:"
-#: ../../Zotlabs/Module/Directory.php:369
+#: ../../Zotlabs/Module/Directory.php:354
msgid "Public Forum:"
msgstr "Foro público:"
-#: ../../Zotlabs/Module/Directory.php:372
+#: ../../Zotlabs/Module/Directory.php:357
msgid "Keywords: "
msgstr "Palabras clave:"
-#: ../../Zotlabs/Module/Directory.php:375
+#: ../../Zotlabs/Module/Directory.php:360
msgid "Don't suggest"
msgstr "No sugerir:"
-#: ../../Zotlabs/Module/Directory.php:377
+#: ../../Zotlabs/Module/Directory.php:362
msgid "Common connections (estimated):"
msgstr "Conexiones comunes (estimadas): "
-#: ../../Zotlabs/Module/Directory.php:426
+#: ../../Zotlabs/Module/Directory.php:411
msgid "Global Directory"
msgstr "Directorio global:"
-#: ../../Zotlabs/Module/Directory.php:426
+#: ../../Zotlabs/Module/Directory.php:411
msgid "Local Directory"
msgstr "Directorio local:"
-#: ../../Zotlabs/Module/Directory.php:432
+#: ../../Zotlabs/Module/Directory.php:417
msgid "Finding:"
msgstr "Encontrar:"
-#: ../../Zotlabs/Module/Directory.php:437
+#: ../../Zotlabs/Module/Directory.php:422
msgid "next page"
msgstr "siguiente página"
-#: ../../Zotlabs/Module/Directory.php:437
+#: ../../Zotlabs/Module/Directory.php:422
msgid "previous page"
msgstr "página anterior"
-#: ../../Zotlabs/Module/Directory.php:438
+#: ../../Zotlabs/Module/Directory.php:423
msgid "Sort options"
msgstr "Ordenar opciones"
-#: ../../Zotlabs/Module/Directory.php:439
+#: ../../Zotlabs/Module/Directory.php:424
msgid "Alphabetic"
msgstr "Alfabético"
-#: ../../Zotlabs/Module/Directory.php:440
+#: ../../Zotlabs/Module/Directory.php:425
msgid "Reverse Alphabetic"
msgstr "Alfabético inverso"
-#: ../../Zotlabs/Module/Directory.php:441
+#: ../../Zotlabs/Module/Directory.php:426
msgid "Newest to Oldest"
msgstr "De más nuevo a más antiguo"
-#: ../../Zotlabs/Module/Directory.php:442
+#: ../../Zotlabs/Module/Directory.php:427
msgid "Oldest to Newest"
msgstr "De más antiguo a más nuevo"
-#: ../../Zotlabs/Module/Directory.php:459
+#: ../../Zotlabs/Module/Directory.php:444
msgid "No entries (some entries may be hidden)."
msgstr "Sin entradas (algunas entradas pueden estar ocultas)."
@@ -12006,108 +11901,96 @@ msgstr "Token de validación"
msgid "Item not available."
msgstr "Elemento no disponible"
-#: ../../Zotlabs/Module/Vote.php:40
-msgid "Poll not found."
-msgstr "Encuesta no encontrada."
-
-#: ../../Zotlabs/Module/Vote.php:71
-msgid "Invalid response."
-msgstr "respuesta no válida."
-
-#: ../../Zotlabs/Module/Vote.php:132
-msgid "Response submitted. Updates may not appear instantly."
-msgstr "Respuesta enviada. Las actualizaciones pueden no aparecer al instante."
-
-#: ../../Zotlabs/Module/Profile_photo.php:93
-#: ../../Zotlabs/Module/Cover_photo.php:85
+#: ../../Zotlabs/Module/Profile_photo.php:91
+#: ../../Zotlabs/Module/Cover_photo.php:83
msgid "Image uploaded but image cropping failed."
msgstr "Imagen actualizada, pero el recorte de la imagen ha fallado. "
-#: ../../Zotlabs/Module/Profile_photo.php:166
-#: ../../Zotlabs/Module/Cover_photo.php:212
+#: ../../Zotlabs/Module/Profile_photo.php:164
+#: ../../Zotlabs/Module/Cover_photo.php:210
msgid "Image resize failed."
msgstr "El ajuste del tamaño de la imagen ha fallado."
-#: ../../Zotlabs/Module/Profile_photo.php:296
-#: ../../Zotlabs/Module/Cover_photo.php:265
+#: ../../Zotlabs/Module/Profile_photo.php:294
+#: ../../Zotlabs/Module/Cover_photo.php:263
msgid "Image upload failed."
msgstr "La carga de la imagen ha fallado."
-#: ../../Zotlabs/Module/Profile_photo.php:315
-#: ../../Zotlabs/Module/Cover_photo.php:282
+#: ../../Zotlabs/Module/Profile_photo.php:313
+#: ../../Zotlabs/Module/Cover_photo.php:280
msgid "Unable to process image."
msgstr "No ha sido posible procesar la imagen."
-#: ../../Zotlabs/Module/Profile_photo.php:379
-#: ../../Zotlabs/Module/Profile_photo.php:431
-#: ../../Zotlabs/Module/Cover_photo.php:367
-#: ../../Zotlabs/Module/Cover_photo.php:382
+#: ../../Zotlabs/Module/Profile_photo.php:377
+#: ../../Zotlabs/Module/Profile_photo.php:429
+#: ../../Zotlabs/Module/Cover_photo.php:373
+#: ../../Zotlabs/Module/Cover_photo.php:388
msgid "Photo not available."
msgstr "Foto no disponible."
-#: ../../Zotlabs/Module/Profile_photo.php:495
+#: ../../Zotlabs/Module/Profile_photo.php:493
msgid ""
"Your default profile photo is visible to anybody on the internet. Profile "
"photos for alternate profiles will inherit the permissions of the profile"
msgstr "Su foto de perfil predeterminada es visible para cualquiera en Internet. Las fotos de perfil para perfiles alternativos heredarán los permisos del predeterminado."
-#: ../../Zotlabs/Module/Profile_photo.php:495
+#: ../../Zotlabs/Module/Profile_photo.php:493
msgid ""
"Your profile photo is visible to anybody on the internet and may be "
"distributed to other websites."
msgstr "La foto de su perfil es visible para cualquiera en Internet y puede ser distribuida en otros sitios web."
-#: ../../Zotlabs/Module/Profile_photo.php:497
-#: ../../Zotlabs/Module/Cover_photo.php:420
+#: ../../Zotlabs/Module/Profile_photo.php:495
+#: ../../Zotlabs/Module/Cover_photo.php:426
msgid "Upload File:"
msgstr "Subir fichero:"
-#: ../../Zotlabs/Module/Profile_photo.php:498
-#: ../../Zotlabs/Module/Cover_photo.php:421
+#: ../../Zotlabs/Module/Profile_photo.php:496
+#: ../../Zotlabs/Module/Cover_photo.php:427
msgid "Select a profile:"
msgstr "Seleccionar un perfil:"
-#: ../../Zotlabs/Module/Profile_photo.php:499
+#: ../../Zotlabs/Module/Profile_photo.php:497
msgid "Use Photo for Profile"
msgstr "Usar la fotografía para el perfil"
-#: ../../Zotlabs/Module/Profile_photo.php:499
+#: ../../Zotlabs/Module/Profile_photo.php:497
msgid "Change Profile Photo"
msgstr "Cambiar la foto del perfil"
-#: ../../Zotlabs/Module/Profile_photo.php:500
+#: ../../Zotlabs/Module/Profile_photo.php:498
msgid "Use"
msgstr "Usar"
-#: ../../Zotlabs/Module/Profile_photo.php:505
-#: ../../Zotlabs/Module/Profile_photo.php:506
-#: ../../Zotlabs/Module/Cover_photo.php:426
-#: ../../Zotlabs/Module/Cover_photo.php:427
+#: ../../Zotlabs/Module/Profile_photo.php:503
+#: ../../Zotlabs/Module/Profile_photo.php:504
+#: ../../Zotlabs/Module/Cover_photo.php:432
+#: ../../Zotlabs/Module/Cover_photo.php:433
msgid "Use a photo from your albums"
msgstr "Usar una foto de sus álbumes"
-#: ../../Zotlabs/Module/Profile_photo.php:511
-#: ../../Zotlabs/Module/Cover_photo.php:432 ../../Zotlabs/Module/Wiki.php:405
+#: ../../Zotlabs/Module/Profile_photo.php:509
+#: ../../Zotlabs/Module/Cover_photo.php:438 ../../Zotlabs/Module/Wiki.php:405
msgid "Choose a different album"
msgstr "Elegir un álbum diferente..."
-#: ../../Zotlabs/Module/Profile_photo.php:516
-#: ../../Zotlabs/Module/Cover_photo.php:438
+#: ../../Zotlabs/Module/Profile_photo.php:514
+#: ../../Zotlabs/Module/Cover_photo.php:444
msgid "Select existing photo"
msgstr "Seleccionar una foto"
-#: ../../Zotlabs/Module/Profile_photo.php:535
-#: ../../Zotlabs/Module/Cover_photo.php:455
+#: ../../Zotlabs/Module/Profile_photo.php:533
+#: ../../Zotlabs/Module/Cover_photo.php:461
msgid "Crop Image"
msgstr "Recortar imagen"
-#: ../../Zotlabs/Module/Profile_photo.php:536
-#: ../../Zotlabs/Module/Cover_photo.php:456
+#: ../../Zotlabs/Module/Profile_photo.php:534
+#: ../../Zotlabs/Module/Cover_photo.php:462
msgid "Please adjust the image cropping for optimum viewing."
msgstr "Por favor ajuste el recorte de la imagen para una visión óptima."
-#: ../../Zotlabs/Module/Profile_photo.php:538
-#: ../../Zotlabs/Module/Cover_photo.php:458
+#: ../../Zotlabs/Module/Profile_photo.php:536
+#: ../../Zotlabs/Module/Cover_photo.php:464
msgid "Done Editing"
msgstr "Edición completada"
@@ -12123,7 +12006,7 @@ msgstr "Escriba un nombre de carpeta"
msgid "or select an existing folder (doubleclick)"
msgstr "o seleccione una (con un doble click)"
-#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:184
+#: ../../Zotlabs/Module/Filer.php:54 ../../Zotlabs/Lib/ThreadItem.php:182
msgid "Save to Folder"
msgstr "Guardar en carpeta"
@@ -12220,218 +12103,218 @@ msgstr "Archivadas"
msgid "Not connected at this location"
msgstr "No está conectado/a en esta ubicación"
-#: ../../Zotlabs/Module/Connections.php:318
+#: ../../Zotlabs/Module/Connections.php:296
#, php-format
msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
-#: ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Connections.php:297
msgid "Edit connection"
msgstr "Editar conexión"
-#: ../../Zotlabs/Module/Connections.php:321
+#: ../../Zotlabs/Module/Connections.php:299
msgid "Delete connection"
msgstr "Eliminar conexión"
-#: ../../Zotlabs/Module/Connections.php:330
+#: ../../Zotlabs/Module/Connections.php:308
msgid "Channel address"
msgstr "Dirección del canal"
-#: ../../Zotlabs/Module/Connections.php:335
+#: ../../Zotlabs/Module/Connections.php:313
msgid "Call"
msgstr "Llamar"
-#: ../../Zotlabs/Module/Connections.php:337
+#: ../../Zotlabs/Module/Connections.php:315
msgid "Status"
msgstr "Estado"
-#: ../../Zotlabs/Module/Connections.php:339
+#: ../../Zotlabs/Module/Connections.php:317
msgid "Connected"
msgstr "Conectado/a"
-#: ../../Zotlabs/Module/Connections.php:341
+#: ../../Zotlabs/Module/Connections.php:319
msgid "Approve connection"
msgstr "Aprobar esta conexión"
-#: ../../Zotlabs/Module/Connections.php:343
+#: ../../Zotlabs/Module/Connections.php:321
msgid "Ignore connection"
msgstr "Ignorar esta conexión"
-#: ../../Zotlabs/Module/Connections.php:344
-#: ../../Zotlabs/Module/Connedit.php:645
+#: ../../Zotlabs/Module/Connections.php:322
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Ignore"
msgstr "Ignorar"
-#: ../../Zotlabs/Module/Connections.php:345
+#: ../../Zotlabs/Module/Connections.php:323
msgid "Recent activity"
msgstr "Actividad reciente"
-#: ../../Zotlabs/Module/Connections.php:351
+#: ../../Zotlabs/Module/Connections.php:328
msgid "Connect at this location"
msgstr "Conectar en esta ubicación "
-#: ../../Zotlabs/Module/Connections.php:379
+#: ../../Zotlabs/Module/Connections.php:356
msgid "Search your connections"
msgstr "Buscar sus conexiones"
-#: ../../Zotlabs/Module/Connections.php:380
+#: ../../Zotlabs/Module/Connections.php:357
msgid "Connections search"
msgstr "Buscar conexiones"
-#: ../../Zotlabs/Module/Cover_photo.php:196
-#: ../../Zotlabs/Module/Cover_photo.php:254
+#: ../../Zotlabs/Module/Cover_photo.php:194
+#: ../../Zotlabs/Module/Cover_photo.php:252
msgid "Cover Photos"
msgstr "Imágenes de portada del perfil"
-#: ../../Zotlabs/Module/Cover_photo.php:418
+#: ../../Zotlabs/Module/Cover_photo.php:424
msgid "Your cover photo may be visible to anybody on the internet"
msgstr "La foto de la portada puede ser visible para cualquiera en Internet"
-#: ../../Zotlabs/Module/Cover_photo.php:422
+#: ../../Zotlabs/Module/Cover_photo.php:428
msgid "Change Cover Photo"
msgstr "Cambiar la foto de portada del perfil"
-#: ../../Zotlabs/Module/Photos.php:80
+#: ../../Zotlabs/Module/Photos.php:78
msgid "Page owner information could not be retrieved."
msgstr "La información del propietario de la página no pudo ser recuperada."
-#: ../../Zotlabs/Module/Photos.php:96 ../../Zotlabs/Module/Photos.php:115
+#: ../../Zotlabs/Module/Photos.php:94 ../../Zotlabs/Module/Photos.php:113
msgid "Album not found."
msgstr "Álbum no encontrado."
-#: ../../Zotlabs/Module/Photos.php:105
+#: ../../Zotlabs/Module/Photos.php:103
msgid "Delete Album"
msgstr "Borrar álbum"
-#: ../../Zotlabs/Module/Photos.php:176 ../../Zotlabs/Module/Photos.php:1058
+#: ../../Zotlabs/Module/Photos.php:174 ../../Zotlabs/Module/Photos.php:1056
msgid "Delete Photo"
msgstr "Borrar foto"
-#: ../../Zotlabs/Module/Photos.php:529
+#: ../../Zotlabs/Module/Photos.php:527
msgid "No photos selected"
msgstr "No hay fotos seleccionadas"
-#: ../../Zotlabs/Module/Photos.php:578
+#: ../../Zotlabs/Module/Photos.php:576
msgid "Access to this item is restricted."
msgstr "El acceso a este elemento está restringido."
-#: ../../Zotlabs/Module/Photos.php:621
+#: ../../Zotlabs/Module/Photos.php:619
#, php-format
msgid "%1$.2f MB of %2$.2f MB photo storage used."
msgstr "%1$.2f MB de %2$.2f MB de almacenamiento de fotos utilizado."
-#: ../../Zotlabs/Module/Photos.php:624
+#: ../../Zotlabs/Module/Photos.php:622
#, php-format
msgid "%1$.2f MB photo storage used."
msgstr "%1$.2f MB de almacenamiento de fotos utilizado."
-#: ../../Zotlabs/Module/Photos.php:666
+#: ../../Zotlabs/Module/Photos.php:664
msgid "Upload Photos"
msgstr "Subir fotos"
-#: ../../Zotlabs/Module/Photos.php:670
+#: ../../Zotlabs/Module/Photos.php:668
msgid "Enter an album name"
msgstr "Introducir un nombre de álbum"
-#: ../../Zotlabs/Module/Photos.php:671
+#: ../../Zotlabs/Module/Photos.php:669
msgid "or select an existing album (doubleclick)"
msgstr "o seleccionar un álbum (con un doble click)"
-#: ../../Zotlabs/Module/Photos.php:672
+#: ../../Zotlabs/Module/Photos.php:670
msgid "Create a status post for this upload"
msgstr "Crear un mensaje de estado para esta subida"
-#: ../../Zotlabs/Module/Photos.php:674
+#: ../../Zotlabs/Module/Photos.php:672
msgid "Description (optional)"
msgstr "Descripción (opcional)"
-#: ../../Zotlabs/Module/Photos.php:760
+#: ../../Zotlabs/Module/Photos.php:758
msgid "Show Newest First"
msgstr "Mostrar lo más reciente primero"
-#: ../../Zotlabs/Module/Photos.php:762
+#: ../../Zotlabs/Module/Photos.php:760
msgid "Show Oldest First"
msgstr "Mostrar lo más antiguo primero"
-#: ../../Zotlabs/Module/Photos.php:819 ../../Zotlabs/Module/Photos.php:1363
+#: ../../Zotlabs/Module/Photos.php:817 ../../Zotlabs/Module/Photos.php:1363
msgid "Add Photos"
msgstr "Añadir fotos"
-#: ../../Zotlabs/Module/Photos.php:867
+#: ../../Zotlabs/Module/Photos.php:865
msgid "Permission denied. Access to this item may be restricted."
msgstr "Permiso denegado. El acceso a este elemento puede estar restringido."
-#: ../../Zotlabs/Module/Photos.php:869
+#: ../../Zotlabs/Module/Photos.php:867
msgid "Photo not available"
msgstr "Foto no disponible"
-#: ../../Zotlabs/Module/Photos.php:927
+#: ../../Zotlabs/Module/Photos.php:925
msgid "Use as profile photo"
msgstr "Usar como foto del perfil"
-#: ../../Zotlabs/Module/Photos.php:928
+#: ../../Zotlabs/Module/Photos.php:926
msgid "Use as cover photo"
msgstr "Usar como imagen de portada del perfil"
-#: ../../Zotlabs/Module/Photos.php:935
+#: ../../Zotlabs/Module/Photos.php:933
msgid "Private Photo"
msgstr "Foto privada"
-#: ../../Zotlabs/Module/Photos.php:950
+#: ../../Zotlabs/Module/Photos.php:948
msgid "View Full Size"
msgstr "Ver tamaño completo"
-#: ../../Zotlabs/Module/Photos.php:1032
+#: ../../Zotlabs/Module/Photos.php:1030
msgid "Edit photo"
msgstr "Editar foto"
-#: ../../Zotlabs/Module/Photos.php:1034
+#: ../../Zotlabs/Module/Photos.php:1032
msgid "Rotate CW (right)"
msgstr "Girar CW (a la derecha)"
-#: ../../Zotlabs/Module/Photos.php:1035
+#: ../../Zotlabs/Module/Photos.php:1033
msgid "Rotate CCW (left)"
msgstr "Girar CCW (a la izquierda)"
-#: ../../Zotlabs/Module/Photos.php:1038
+#: ../../Zotlabs/Module/Photos.php:1036
msgid "Move photo to album"
msgstr "Mover la foto a un álbum"
-#: ../../Zotlabs/Module/Photos.php:1039
+#: ../../Zotlabs/Module/Photos.php:1037
msgid "Enter a new album name"
msgstr "Introducir un nuevo nombre de álbum"
-#: ../../Zotlabs/Module/Photos.php:1040
+#: ../../Zotlabs/Module/Photos.php:1038
msgid "or select an existing one (doubleclick)"
msgstr "o seleccionar un álbum (con un doble click)"
-#: ../../Zotlabs/Module/Photos.php:1045
+#: ../../Zotlabs/Module/Photos.php:1043
msgid "Add a Tag"
msgstr "Añadir una etiqueta"
-#: ../../Zotlabs/Module/Photos.php:1053
+#: ../../Zotlabs/Module/Photos.php:1051
msgid "Example: @bob, @Barbara_Jensen, @jim@example.com"
msgstr "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com"
-#: ../../Zotlabs/Module/Photos.php:1056
+#: ../../Zotlabs/Module/Photos.php:1054
msgid "Flag as adult in album view"
msgstr "Marcar como \"solo para adultos\" en el álbum"
-#: ../../Zotlabs/Module/Photos.php:1075 ../../Zotlabs/Lib/ThreadItem.php:317
+#: ../../Zotlabs/Module/Photos.php:1073 ../../Zotlabs/Lib/ThreadItem.php:307
msgid "I like this (toggle)"
msgstr "Me gusta (cambiar)"
-#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:318
+#: ../../Zotlabs/Module/Photos.php:1074 ../../Zotlabs/Lib/ThreadItem.php:308
msgid "I don't like this (toggle)"
msgstr "No me gusta esto (cambiar)"
-#: ../../Zotlabs/Module/Photos.php:1094 ../../Zotlabs/Module/Photos.php:1212
-#: ../../Zotlabs/Lib/ThreadItem.php:822
+#: ../../Zotlabs/Module/Photos.php:1093 ../../Zotlabs/Module/Photos.php:1212
+#: ../../Zotlabs/Lib/ThreadItem.php:793
msgid "This is you"
msgstr "Este es usted"
#: ../../Zotlabs/Module/Photos.php:1131 ../../Zotlabs/Module/Photos.php:1143
-#: ../../Zotlabs/Lib/ThreadItem.php:238 ../../Zotlabs/Lib/ThreadItem.php:250
+#: ../../Zotlabs/Lib/ThreadItem.php:232 ../../Zotlabs/Lib/ThreadItem.php:244
msgid "View all"
msgstr "Ver todo"
@@ -12447,12 +12330,12 @@ msgstr "En esta foto:"
msgid "Map"
msgstr "Mapa"
-#: ../../Zotlabs/Module/Photos.php:1268 ../../Zotlabs/Lib/ThreadItem.php:489
+#: ../../Zotlabs/Module/Photos.php:1268 ../../Zotlabs/Lib/ThreadItem.php:457
msgctxt "noun"
msgid "Likes"
msgstr "Me gusta"
-#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:490
+#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:458
msgctxt "noun"
msgid "Dislikes"
msgstr "No me gusta"
@@ -12481,7 +12364,7 @@ msgid ""
"Password reset failed."
msgstr "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado."
-#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1707
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1683
msgid "Password Reset"
msgstr "Restablecer la contraseña"
@@ -12526,11 +12409,11 @@ msgstr "Introduzca y envíe su dirección de correo electrónico para el restabl
msgid "Email Address"
msgstr "Dirección de correo electrónico"
-#: ../../Zotlabs/Module/Lostpass.php:133 ../../Zotlabs/Module/Pdledit.php:78
+#: ../../Zotlabs/Module/Lostpass.php:133 ../../Zotlabs/Module/Pdledit.php:77
msgid "Reset"
msgstr "Reiniciar"
-#: ../../Zotlabs/Module/Follow.php:93
+#: ../../Zotlabs/Module/Follow.php:36
msgid "Connection added."
msgstr "Se ha incorporado una conexión."
@@ -12548,248 +12431,248 @@ msgid ""
"non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
-#: ../../Zotlabs/Module/Profiles.php:26 ../../Zotlabs/Module/Profiles.php:186
-#: ../../Zotlabs/Module/Profiles.php:243 ../../Zotlabs/Module/Profiles.php:661
+#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:184
+#: ../../Zotlabs/Module/Profiles.php:241 ../../Zotlabs/Module/Profiles.php:659
msgid "Profile not found."
msgstr "Perfil no encontrado."
-#: ../../Zotlabs/Module/Profiles.php:46
+#: ../../Zotlabs/Module/Profiles.php:44
msgid "Profile deleted."
msgstr "Perfil eliminado."
-#: ../../Zotlabs/Module/Profiles.php:70 ../../Zotlabs/Module/Profiles.php:107
+#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:105
msgid "Profile-"
msgstr "Perfil-"
-#: ../../Zotlabs/Module/Profiles.php:92 ../../Zotlabs/Module/Profiles.php:129
+#: ../../Zotlabs/Module/Profiles.php:90 ../../Zotlabs/Module/Profiles.php:127
msgid "New profile created."
msgstr "El nuevo perfil ha sido creado."
-#: ../../Zotlabs/Module/Profiles.php:113
+#: ../../Zotlabs/Module/Profiles.php:111
msgid "Profile unavailable to clone."
msgstr "Perfil no disponible para clonar."
-#: ../../Zotlabs/Module/Profiles.php:148
+#: ../../Zotlabs/Module/Profiles.php:146
msgid "Profile unavailable to export."
msgstr "Perfil no disponible para exportar."
-#: ../../Zotlabs/Module/Profiles.php:254
+#: ../../Zotlabs/Module/Profiles.php:252
msgid "Profile Name is required."
msgstr "Se necesita el nombre del perfil."
-#: ../../Zotlabs/Module/Profiles.php:461
+#: ../../Zotlabs/Module/Profiles.php:459
msgid "Marital Status"
msgstr "Estado civil"
-#: ../../Zotlabs/Module/Profiles.php:465
+#: ../../Zotlabs/Module/Profiles.php:463
msgid "Romantic Partner"
msgstr "Pareja sentimental"
-#: ../../Zotlabs/Module/Profiles.php:469 ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:772
msgid "Likes"
msgstr "Me gusta"
-#: ../../Zotlabs/Module/Profiles.php:473 ../../Zotlabs/Module/Profiles.php:775
+#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:773
msgid "Dislikes"
msgstr "No me gusta"
-#: ../../Zotlabs/Module/Profiles.php:477 ../../Zotlabs/Module/Profiles.php:782
+#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:780
msgid "Work/Employment"
msgstr "Trabajo:"
-#: ../../Zotlabs/Module/Profiles.php:480
+#: ../../Zotlabs/Module/Profiles.php:478
msgid "Religion"
msgstr "Religión"
-#: ../../Zotlabs/Module/Profiles.php:484
+#: ../../Zotlabs/Module/Profiles.php:482
msgid "Political Views"
msgstr "Ideas políticas"
-#: ../../Zotlabs/Module/Profiles.php:492
+#: ../../Zotlabs/Module/Profiles.php:490
msgid "Sexual Preference"
msgstr "Preferencia sexual"
-#: ../../Zotlabs/Module/Profiles.php:496
+#: ../../Zotlabs/Module/Profiles.php:494
msgid "Homepage"
msgstr "Página personal"
-#: ../../Zotlabs/Module/Profiles.php:500
+#: ../../Zotlabs/Module/Profiles.php:498
msgid "Interests"
msgstr "Intereses"
-#: ../../Zotlabs/Module/Profiles.php:596
+#: ../../Zotlabs/Module/Profiles.php:594
msgid "Profile updated."
msgstr "Perfil actualizado."
-#: ../../Zotlabs/Module/Profiles.php:680
+#: ../../Zotlabs/Module/Profiles.php:678
msgid "Hide your connections list from viewers of this profile"
msgstr "Ocultar la lista de conexiones a los visitantes del perfil"
-#: ../../Zotlabs/Module/Profiles.php:724
+#: ../../Zotlabs/Module/Profiles.php:722
msgid "Edit Profile Details"
msgstr "Modificar los detalles de este perfil"
-#: ../../Zotlabs/Module/Profiles.php:726
+#: ../../Zotlabs/Module/Profiles.php:724
msgid "View this profile"
msgstr "Ver este perfil"
-#: ../../Zotlabs/Module/Profiles.php:728
+#: ../../Zotlabs/Module/Profiles.php:726
msgid "Profile Tools"
msgstr "Gestión del perfil"
-#: ../../Zotlabs/Module/Profiles.php:729
+#: ../../Zotlabs/Module/Profiles.php:727
msgid "Change cover photo"
msgstr "Cambiar la imagen de portada del perfil"
-#: ../../Zotlabs/Module/Profiles.php:731
+#: ../../Zotlabs/Module/Profiles.php:729
msgid "Create a new profile using these settings"
msgstr "Crear un nuevo perfil usando estos ajustes"
-#: ../../Zotlabs/Module/Profiles.php:732
+#: ../../Zotlabs/Module/Profiles.php:730
msgid "Clone this profile"
msgstr "Clonar este perfil"
-#: ../../Zotlabs/Module/Profiles.php:733
+#: ../../Zotlabs/Module/Profiles.php:731
msgid "Delete this profile"
msgstr "Eliminar este perfil"
-#: ../../Zotlabs/Module/Profiles.php:734
+#: ../../Zotlabs/Module/Profiles.php:732
msgid "Add profile things"
msgstr "Añadir cosas al perfil"
-#: ../../Zotlabs/Module/Profiles.php:735
+#: ../../Zotlabs/Module/Profiles.php:733
msgid "Personal"
msgstr "Personales"
-#: ../../Zotlabs/Module/Profiles.php:737
+#: ../../Zotlabs/Module/Profiles.php:735
msgid "Relationship"
msgstr "Relación"
-#: ../../Zotlabs/Module/Profiles.php:740
+#: ../../Zotlabs/Module/Profiles.php:738
msgid "Import profile from file"
msgstr "Importar perfil desde un fichero"
-#: ../../Zotlabs/Module/Profiles.php:741
+#: ../../Zotlabs/Module/Profiles.php:739
msgid "Export profile to file"
msgstr "Exportar perfil a un fichero"
-#: ../../Zotlabs/Module/Profiles.php:742
+#: ../../Zotlabs/Module/Profiles.php:740
msgid "Your gender"
msgstr "Género"
-#: ../../Zotlabs/Module/Profiles.php:743
+#: ../../Zotlabs/Module/Profiles.php:741
msgid "Marital status"
msgstr "Estado civil"
-#: ../../Zotlabs/Module/Profiles.php:744
+#: ../../Zotlabs/Module/Profiles.php:742
msgid "Sexual preference"
msgstr "Preferencia sexual"
-#: ../../Zotlabs/Module/Profiles.php:747
+#: ../../Zotlabs/Module/Profiles.php:745
msgid "Profile name"
msgstr "Nombre del perfil"
-#: ../../Zotlabs/Module/Profiles.php:749
+#: ../../Zotlabs/Module/Profiles.php:747
msgid "This is your default profile."
msgstr "Este es su perfil principal."
-#: ../../Zotlabs/Module/Profiles.php:751
+#: ../../Zotlabs/Module/Profiles.php:749
msgid "Your full name"
msgstr "Nombre completo"
-#: ../../Zotlabs/Module/Profiles.php:752
+#: ../../Zotlabs/Module/Profiles.php:750
msgid "Title/Description"
msgstr "Título o descripción"
-#: ../../Zotlabs/Module/Profiles.php:755
+#: ../../Zotlabs/Module/Profiles.php:753
msgid "Street address"
msgstr "Dirección"
-#: ../../Zotlabs/Module/Profiles.php:756
+#: ../../Zotlabs/Module/Profiles.php:754
msgid "Locality/City"
msgstr "Ciudad"
-#: ../../Zotlabs/Module/Profiles.php:757
+#: ../../Zotlabs/Module/Profiles.php:755
msgid "Region/State"
msgstr "Región o Estado"
-#: ../../Zotlabs/Module/Profiles.php:758
+#: ../../Zotlabs/Module/Profiles.php:756
msgid "Postal/Zip code"
msgstr "Código postal"
-#: ../../Zotlabs/Module/Profiles.php:764
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Who (if applicable)"
msgstr "Quién (si es pertinente)"
-#: ../../Zotlabs/Module/Profiles.php:764
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Por ejemplo: ana123, María González, sara@ejemplo.com"
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:763
msgid "Since (date)"
msgstr "Desde (fecha)"
-#: ../../Zotlabs/Module/Profiles.php:768
+#: ../../Zotlabs/Module/Profiles.php:766
msgid "Tell us about yourself"
msgstr "Háblenos de usted"
-#: ../../Zotlabs/Module/Profiles.php:770
+#: ../../Zotlabs/Module/Profiles.php:768
msgid "Hometown"
msgstr "Lugar de nacimiento"
-#: ../../Zotlabs/Module/Profiles.php:771
+#: ../../Zotlabs/Module/Profiles.php:769
msgid "Political views"
msgstr "Ideas políticas"
-#: ../../Zotlabs/Module/Profiles.php:772
+#: ../../Zotlabs/Module/Profiles.php:770
msgid "Religious views"
msgstr "Creencias religiosas"
-#: ../../Zotlabs/Module/Profiles.php:773
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Keywords used in directory listings"
msgstr "Palabras clave utilizadas en los listados de directorios"
-#: ../../Zotlabs/Module/Profiles.php:773
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Example: fishing photography software"
msgstr "Por ejemplo: software de fotografía submarina"
-#: ../../Zotlabs/Module/Profiles.php:776
+#: ../../Zotlabs/Module/Profiles.php:774
msgid "Musical interests"
msgstr "Preferencias musicales"
-#: ../../Zotlabs/Module/Profiles.php:777
+#: ../../Zotlabs/Module/Profiles.php:775
msgid "Books, literature"
msgstr "Libros, literatura"
-#: ../../Zotlabs/Module/Profiles.php:778
+#: ../../Zotlabs/Module/Profiles.php:776
msgid "Television"
msgstr "Televisión"
-#: ../../Zotlabs/Module/Profiles.php:779
+#: ../../Zotlabs/Module/Profiles.php:777
msgid "Film/Dance/Culture/Entertainment"
msgstr "Cine, danza, cultura, entretenimiento"
-#: ../../Zotlabs/Module/Profiles.php:780
+#: ../../Zotlabs/Module/Profiles.php:778
msgid "Hobbies/Interests"
msgstr "Aficiones o intereses"
-#: ../../Zotlabs/Module/Profiles.php:781
+#: ../../Zotlabs/Module/Profiles.php:779
msgid "Love/Romance"
msgstr "Vida sentimental o amorosa"
-#: ../../Zotlabs/Module/Profiles.php:783
+#: ../../Zotlabs/Module/Profiles.php:781
msgid "School/Education"
msgstr "Estudios"
-#: ../../Zotlabs/Module/Profiles.php:784
+#: ../../Zotlabs/Module/Profiles.php:782
msgid "Contact information and social networks"
msgstr "Información de contacto y redes sociales"
-#: ../../Zotlabs/Module/Profiles.php:785
+#: ../../Zotlabs/Module/Profiles.php:783
msgid "My other channels"
msgstr "Mis otros canales"
-#: ../../Zotlabs/Module/Profiles.php:787
+#: ../../Zotlabs/Module/Profiles.php:785
msgid "Communications"
msgstr "Comunicaciones"
@@ -12909,6 +12792,10 @@ msgstr "Enviar invitaciones"
msgid "Enter email addresses, one per line:"
msgstr "Introduzca las direcciones de correo electrónico, una por línea:"
+#: ../../Zotlabs/Module/Invite.php:157 ../../Zotlabs/Module/Mail.php:289
+msgid "Your message:"
+msgstr "Su mensaje:"
+
#: ../../Zotlabs/Module/Invite.php:158
msgid "Please join my community on $Projectname."
msgstr "Por favor, únase a mi comunidad en $Projectname."
@@ -12934,11 +12821,11 @@ msgstr "o visitar"
msgid "3. Click [Connect]"
msgstr "3. Pulse [conectar]"
-#: ../../Zotlabs/Module/Notes.php:57
+#: ../../Zotlabs/Module/Notes.php:56
msgid "Notes App"
msgstr "App Notas"
-#: ../../Zotlabs/Module/Notes.php:58
+#: ../../Zotlabs/Module/Notes.php:57
msgid "A simple notes app with a widget (note: notes are not encrypted)"
msgstr "Una simple aplicación de notas con un widget (aviso: las notas no están encriptadas)"
@@ -12950,6 +12837,101 @@ msgstr "Búsqueda de canales"
msgid "Lookup xchan beginning with (or webbie): "
msgstr "Buscar un canal (o un \"webbie\") que comience por:"
+#: ../../Zotlabs/Module/Mail.php:77
+msgid "Unable to lookup recipient."
+msgstr "No se puede asociar a un destinatario."
+
+#: ../../Zotlabs/Module/Mail.php:84
+msgid "Unable to communicate with requested channel."
+msgstr "No se puede establecer la comunicación con el canal solicitado."
+
+#: ../../Zotlabs/Module/Mail.php:91
+msgid "Cannot verify requested channel."
+msgstr "No se puede verificar el canal solicitado."
+
+#: ../../Zotlabs/Module/Mail.php:109
+msgid "Selected channel has private message restrictions. Send failed."
+msgstr "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló."
+
+#: ../../Zotlabs/Module/Mail.php:164
+msgid "Messages"
+msgstr "Mensajes"
+
+#: ../../Zotlabs/Module/Mail.php:177
+msgid "message"
+msgstr "mensaje"
+
+#: ../../Zotlabs/Module/Mail.php:218
+msgid "Message recalled."
+msgstr "Mensaje revocado."
+
+#: ../../Zotlabs/Module/Mail.php:231
+msgid "Conversation removed."
+msgstr "Conversación eliminada."
+
+#: ../../Zotlabs/Module/Mail.php:246 ../../Zotlabs/Module/Mail.php:367
+msgid "Expires YYYY-MM-DD HH:MM"
+msgstr "Caduca YYYY-MM-DD HH:MM"
+
+#: ../../Zotlabs/Module/Mail.php:274
+msgid "Requested channel is not in this network"
+msgstr "El canal solicitado no existe en esta red"
+
+#: ../../Zotlabs/Module/Mail.php:282
+msgid "Send Private Message"
+msgstr "Enviar un mensaje privado"
+
+#: ../../Zotlabs/Module/Mail.php:283 ../../Zotlabs/Module/Mail.php:426
+msgid "To:"
+msgstr "Para:"
+
+#: ../../Zotlabs/Module/Mail.php:286 ../../Zotlabs/Module/Mail.php:428
+msgid "Subject:"
+msgstr "Asunto:"
+
+#: ../../Zotlabs/Module/Mail.php:291 ../../Zotlabs/Module/Mail.php:434
+msgid "Attach file"
+msgstr "Adjuntar fichero"
+
+#: ../../Zotlabs/Module/Mail.php:293
+msgid "Send"
+msgstr "Enviar"
+
+#: ../../Zotlabs/Module/Mail.php:397
+msgid "Delete message"
+msgstr "Borrar mensaje"
+
+#: ../../Zotlabs/Module/Mail.php:398
+msgid "Delivery report"
+msgstr "Informe de transmisión"
+
+#: ../../Zotlabs/Module/Mail.php:399
+msgid "Recall message"
+msgstr "Revocar el mensaje"
+
+#: ../../Zotlabs/Module/Mail.php:401
+msgid "Message has been recalled."
+msgstr "El mensaje ha sido revocado."
+
+#: ../../Zotlabs/Module/Mail.php:419
+msgid "Delete Conversation"
+msgstr "Eliminar conversación"
+
+#: ../../Zotlabs/Module/Mail.php:421
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente."
+
+#: ../../Zotlabs/Module/Mail.php:425
+msgid "Send Reply"
+msgstr "Responder"
+
+#: ../../Zotlabs/Module/Mail.php:430
+#, php-format
+msgid "Your message for %s (%s):"
+msgstr "Su mensaje para %s (%s):"
+
#: ../../Zotlabs/Module/Affinity.php:35
msgid "Affinity Tool settings updated."
msgstr "Actualización de los ajustes de Affinity Tool."
@@ -13019,411 +13001,404 @@ msgstr "Valoración (esta información es pública)"
msgid "Optionally explain your rating (this information is public)"
msgstr "Opcionalmente puede explicar su valoración (esta información es pública)"
-#: ../../Zotlabs/Module/Settings/Network.php:42
-#: ../../Zotlabs/Module/Settings/Channel_home.php:46
+#: ../../Zotlabs/Module/Settings/Network.php:41
+#: ../../Zotlabs/Module/Settings/Channel_home.php:44
msgid "Max height of content (in pixels)"
msgstr "Altura máxima del contenido (en píxeles)"
-#: ../../Zotlabs/Module/Settings/Network.php:44
-#: ../../Zotlabs/Module/Settings/Channel_home.php:48
+#: ../../Zotlabs/Module/Settings/Network.php:43
+#: ../../Zotlabs/Module/Settings/Channel_home.php:46
msgid "Click to expand content exceeding this height"
msgstr "Haga clic para expandir el contenido que exceda esta altura"
-#: ../../Zotlabs/Module/Settings/Network.php:59
+#: ../../Zotlabs/Module/Settings/Network.php:58
msgid "Stream Settings"
msgstr "Ajustes del stream"
-#: ../../Zotlabs/Module/Settings/Features.php:45
+#: ../../Zotlabs/Module/Settings/Features.php:43
msgid "Additional Features"
msgstr "Funcionalidades"
-#: ../../Zotlabs/Module/Settings/Channel.php:328
+#: ../../Zotlabs/Module/Settings/Channel.php:327
msgid "Nobody except yourself"
msgstr "Nadie excepto usted"
-#: ../../Zotlabs/Module/Settings/Channel.php:329
+#: ../../Zotlabs/Module/Settings/Channel.php:328
msgid "Only those you specifically allow"
msgstr "Solo aquellos a los que usted permita explícitamente"
-#: ../../Zotlabs/Module/Settings/Channel.php:330
+#: ../../Zotlabs/Module/Settings/Channel.php:329
msgid "Approved connections"
msgstr "Conexiones aprobadas"
-#: ../../Zotlabs/Module/Settings/Channel.php:331
+#: ../../Zotlabs/Module/Settings/Channel.php:330
msgid "Any connections"
msgstr "Cualquier conexión"
-#: ../../Zotlabs/Module/Settings/Channel.php:332
+#: ../../Zotlabs/Module/Settings/Channel.php:331
msgid "Anybody on this website"
msgstr "Cualquiera en este sitio web"
-#: ../../Zotlabs/Module/Settings/Channel.php:333
+#: ../../Zotlabs/Module/Settings/Channel.php:332
msgid "Anybody in this network"
msgstr "Cualquiera en esta red"
-#: ../../Zotlabs/Module/Settings/Channel.php:334
+#: ../../Zotlabs/Module/Settings/Channel.php:333
msgid "Anybody authenticated"
msgstr "Cualquiera que esté autenticado"
-#: ../../Zotlabs/Module/Settings/Channel.php:335
+#: ../../Zotlabs/Module/Settings/Channel.php:334
msgid "Anybody on the internet"
msgstr "Cualquiera en internet"
-#: ../../Zotlabs/Module/Settings/Channel.php:410
+#: ../../Zotlabs/Module/Settings/Channel.php:409
msgid "Publish your default profile in the network directory"
msgstr "Publicar su perfil principal en el directorio de la red"
-#: ../../Zotlabs/Module/Settings/Channel.php:415
+#: ../../Zotlabs/Module/Settings/Channel.php:414
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?"
-#: ../../Zotlabs/Module/Settings/Channel.php:419
+#: ../../Zotlabs/Module/Settings/Channel.php:418
msgid "or"
msgstr "o"
-#: ../../Zotlabs/Module/Settings/Channel.php:428
+#: ../../Zotlabs/Module/Settings/Channel.php:427
msgid "Your channel address is"
msgstr "Su dirección de canal es"
-#: ../../Zotlabs/Module/Settings/Channel.php:431
+#: ../../Zotlabs/Module/Settings/Channel.php:430
msgid "Your files/photos are accessible via WebDAV at"
msgstr "Sus archivos y fotos son accesibles a través de WebDAV en "
-#: ../../Zotlabs/Module/Settings/Channel.php:471
+#: ../../Zotlabs/Module/Settings/Channel.php:470
msgid "Automatic membership approval"
msgstr "Aprobación automática de nuevos miembros"
-#: ../../Zotlabs/Module/Settings/Channel.php:471
-#: ../../Zotlabs/Module/Defperms.php:256
+#: ../../Zotlabs/Module/Settings/Channel.php:470
+#: ../../Zotlabs/Module/Defperms.php:255
msgid ""
"If enabled, connection requests will be approved without your interaction"
msgstr "Si está habilitado, las solicitudes de conexión serán aprobadas sin su intervención."
-#: ../../Zotlabs/Module/Settings/Channel.php:492
+#: ../../Zotlabs/Module/Settings/Channel.php:491
msgid "Channel Settings"
msgstr "Ajustes del canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:499
+#: ../../Zotlabs/Module/Settings/Channel.php:498
msgid "Basic Settings"
msgstr "Configuración básica"
-#: ../../Zotlabs/Module/Settings/Channel.php:501
+#: ../../Zotlabs/Module/Settings/Channel.php:500
#: ../../Zotlabs/Module/Settings/Account.php:104
msgid "Email Address:"
msgstr "Dirección de correo electrónico:"
-#: ../../Zotlabs/Module/Settings/Channel.php:502
+#: ../../Zotlabs/Module/Settings/Channel.php:501
msgid "Your Timezone:"
msgstr "Su huso horario:"
-#: ../../Zotlabs/Module/Settings/Channel.php:503
+#: ../../Zotlabs/Module/Settings/Channel.php:502
msgid "Default Post Location:"
msgstr "Localización geográfica predeterminada para sus publicaciones:"
-#: ../../Zotlabs/Module/Settings/Channel.php:503
+#: ../../Zotlabs/Module/Settings/Channel.php:502
msgid "Geographical location to display on your posts"
msgstr "Localización geográfica que debe mostrarse en sus publicaciones"
-#: ../../Zotlabs/Module/Settings/Channel.php:504
+#: ../../Zotlabs/Module/Settings/Channel.php:503
msgid "Use Browser Location:"
msgstr "Usar la localización geográfica del navegador:"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:505
msgid "Adult Content"
msgstr "Contenido solo para adultos"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:505
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
msgstr "Este canal publica contenido solo para adultos con frecuencia o regularmente. (Por favor etiquete cualquier material para adultos con la etiqueta #NSFW)"
-#: ../../Zotlabs/Module/Settings/Channel.php:508
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid "Security and Privacy Settings"
msgstr "Configuración de seguridad y privacidad"
-#: ../../Zotlabs/Module/Settings/Channel.php:510
+#: ../../Zotlabs/Module/Settings/Channel.php:509
msgid "Your permissions are already configured. Click to view/adjust"
msgstr "Sus permisos ya están configurados. Pulse para ver/ajustar"
-#: ../../Zotlabs/Module/Settings/Channel.php:512
+#: ../../Zotlabs/Module/Settings/Channel.php:511
msgid "Hide my online presence"
msgstr "Ocultar mi presencia en línea"
-#: ../../Zotlabs/Module/Settings/Channel.php:512
+#: ../../Zotlabs/Module/Settings/Channel.php:511
msgid "Prevents displaying in your profile that you are online"
msgstr "Evitar mostrar en su perfil que está en línea"
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Simple Privacy Settings:"
msgstr "Configuración de privacidad sencilla:"
-#: ../../Zotlabs/Module/Settings/Channel.php:515
+#: ../../Zotlabs/Module/Settings/Channel.php:514
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr "Muy Público - <em>extremadamente permisivo (debería ser usado con precaución)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:516
+#: ../../Zotlabs/Module/Settings/Channel.php:515
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr "Típico - <em>por defecto público, privado cuando se desee (similar a los permisos de una red social pero con privacidad mejorada)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:517
+#: ../../Zotlabs/Module/Settings/Channel.php:516
msgid "Private - <em>default private, never open or public</em>"
msgstr "Privado - <em>por defecto, privado, nunca abierto o público</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:517
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr "Bloqueado - <em>por defecto, bloqueado/a para cualquiera</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:520
+#: ../../Zotlabs/Module/Settings/Channel.php:519
msgid "Allow others to tag your posts"
msgstr "Permitir a otros etiquetar sus publicaciones"
-#: ../../Zotlabs/Module/Settings/Channel.php:520
+#: ../../Zotlabs/Module/Settings/Channel.php:519
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr "A menudo usado por la comunidad para marcar contenido inapropiado de forma retroactiva."
-#: ../../Zotlabs/Module/Settings/Channel.php:522
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid "Channel Permission Limits"
msgstr "Límites de los permisos del canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:524
+#: ../../Zotlabs/Module/Settings/Channel.php:523
msgid "Expire other channel content after this many days"
msgstr "Caducar contenido de otros canales después de este número de días"
-#: ../../Zotlabs/Module/Settings/Channel.php:524
+#: ../../Zotlabs/Module/Settings/Channel.php:523
msgid "0 or blank to use the website limit."
msgstr "0 o en blanco para usar el límite del sitio web."
-#: ../../Zotlabs/Module/Settings/Channel.php:524
+#: ../../Zotlabs/Module/Settings/Channel.php:523
#, php-format
msgid "This website expires after %d days."
msgstr "Este sitio web caduca después de %d días."
-#: ../../Zotlabs/Module/Settings/Channel.php:524
+#: ../../Zotlabs/Module/Settings/Channel.php:523
msgid "This website does not expire imported content."
msgstr "Este sitio web no caduca el contenido importado."
-#: ../../Zotlabs/Module/Settings/Channel.php:524
+#: ../../Zotlabs/Module/Settings/Channel.php:523
msgid "The website limit takes precedence if lower than your limit."
msgstr "El límite del sitio web tiene prioridad si es inferior a su propio límite."
-#: ../../Zotlabs/Module/Settings/Channel.php:525
+#: ../../Zotlabs/Module/Settings/Channel.php:524
msgid "Maximum Friend Requests/Day:"
msgstr "Máximo de solicitudes de amistad por día:"
-#: ../../Zotlabs/Module/Settings/Channel.php:525
+#: ../../Zotlabs/Module/Settings/Channel.php:524
msgid "May reduce spam activity"
msgstr "Podría reducir la actividad de spam"
-#: ../../Zotlabs/Module/Settings/Channel.php:526
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "Default Privacy Group"
msgstr "Grupo de canales predeterminado"
-#: ../../Zotlabs/Module/Settings/Channel.php:528
+#: ../../Zotlabs/Module/Settings/Channel.php:527
msgid "Use my default audience setting for the type of object published"
msgstr "Usar los ajustes de mi audiencia predeterminada para el tipo de publicación"
-#: ../../Zotlabs/Module/Settings/Channel.php:537
+#: ../../Zotlabs/Module/Settings/Channel.php:536
msgid "Default permissions category"
msgstr "Categoría de permisos por defecto"
-#: ../../Zotlabs/Module/Settings/Channel.php:543
+#: ../../Zotlabs/Module/Settings/Channel.php:542
msgid "Maximum private messages per day from unknown people:"
msgstr "Máximo de mensajes privados por día de gente desconocida:"
-#: ../../Zotlabs/Module/Settings/Channel.php:543
+#: ../../Zotlabs/Module/Settings/Channel.php:542
msgid "Useful to reduce spamming"
msgstr "Útil para reducir el envío de correo no deseado"
-#: ../../Zotlabs/Module/Settings/Channel.php:546
+#: ../../Zotlabs/Module/Settings/Channel.php:545
#: ../../Zotlabs/Lib/Enotify.php:68
msgid "Notification Settings"
msgstr "Configuración de las notificaciones"
-#: ../../Zotlabs/Module/Settings/Channel.php:547
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "By default post a status message when:"
msgstr "Por defecto, enviar un mensaje de estado cuando:"
-#: ../../Zotlabs/Module/Settings/Channel.php:548
+#: ../../Zotlabs/Module/Settings/Channel.php:547
msgid "accepting a friend request"
msgstr "Acepte una solicitud de amistad"
-#: ../../Zotlabs/Module/Settings/Channel.php:549
+#: ../../Zotlabs/Module/Settings/Channel.php:548
msgid "joining a forum/community"
msgstr "al unirse a un foro o comunidad"
-#: ../../Zotlabs/Module/Settings/Channel.php:550
+#: ../../Zotlabs/Module/Settings/Channel.php:549
msgid "making an <em>interesting</em> profile change"
msgstr "Realice un cambio <em>interesante</em> en su perfil"
-#: ../../Zotlabs/Module/Settings/Channel.php:551
+#: ../../Zotlabs/Module/Settings/Channel.php:550
msgid "Send a notification email when:"
msgstr "Enviar una notificación por correo electrónico cuando:"
-#: ../../Zotlabs/Module/Settings/Channel.php:552
+#: ../../Zotlabs/Module/Settings/Channel.php:551
msgid "You receive a connection request"
msgstr "Reciba una solicitud de conexión"
-#: ../../Zotlabs/Module/Settings/Channel.php:553
+#: ../../Zotlabs/Module/Settings/Channel.php:552
msgid "Your connections are confirmed"
msgstr "Sus conexiones hayan sido confirmadas"
-#: ../../Zotlabs/Module/Settings/Channel.php:554
+#: ../../Zotlabs/Module/Settings/Channel.php:553
msgid "Someone writes on your profile wall"
msgstr "Alguien escriba en la página de su perfil (\"muro\")"
-#: ../../Zotlabs/Module/Settings/Channel.php:555
+#: ../../Zotlabs/Module/Settings/Channel.php:554
msgid "Someone writes a followup comment"
msgstr "Alguien escriba un comentario sobre sus publicaciones"
-#: ../../Zotlabs/Module/Settings/Channel.php:556
+#: ../../Zotlabs/Module/Settings/Channel.php:555
msgid "You receive a private message"
msgstr "Reciba un mensaje privado"
-#: ../../Zotlabs/Module/Settings/Channel.php:557
+#: ../../Zotlabs/Module/Settings/Channel.php:556
msgid "You receive a friend suggestion"
msgstr "Reciba una sugerencia de amistad"
-#: ../../Zotlabs/Module/Settings/Channel.php:558
+#: ../../Zotlabs/Module/Settings/Channel.php:557
msgid "You are tagged in a post"
msgstr "Usted sea etiquetado en una publicación"
-#: ../../Zotlabs/Module/Settings/Channel.php:559
+#: ../../Zotlabs/Module/Settings/Channel.php:558
msgid "You are poked/prodded/etc. in a post"
msgstr "Reciba un toque o incitación en una publicación"
-#: ../../Zotlabs/Module/Settings/Channel.php:561
+#: ../../Zotlabs/Module/Settings/Channel.php:560
msgid "Someone likes your post/comment"
msgstr "Alguien muestre agrado por su entrada o comentario"
-#: ../../Zotlabs/Module/Settings/Channel.php:564
+#: ../../Zotlabs/Module/Settings/Channel.php:563
msgid "Show visual notifications including:"
msgstr "Mostrar notificaciones visuales que incluyan:"
-#: ../../Zotlabs/Module/Settings/Channel.php:566
+#: ../../Zotlabs/Module/Settings/Channel.php:565
msgid "Unseen stream activity"
msgstr "Actividad del stream no vista"
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:566
msgid "Unseen channel activity"
msgstr "Actividad no vista en el canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:568
+#: ../../Zotlabs/Module/Settings/Channel.php:567
msgid "Unseen private messages"
msgstr "Mensajes privados no leídos"
#: ../../Zotlabs/Module/Settings/Channel.php:568
-#: ../../Zotlabs/Module/Settings/Channel.php:573
-#: ../../Zotlabs/Module/Settings/Channel.php:574
-#: ../../Zotlabs/Module/Settings/Channel.php:575
-msgid "Recommended"
-msgstr "Recomendado"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:569
msgid "Upcoming events"
msgstr "Próximos eventos"
-#: ../../Zotlabs/Module/Settings/Channel.php:570
+#: ../../Zotlabs/Module/Settings/Channel.php:569
msgid "Events today"
msgstr "Eventos de hoy"
-#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:570
msgid "Upcoming birthdays"
msgstr "Próximos cumpleaños"
-#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:570
msgid "Not available in all themes"
msgstr "No disponible en todos los temas"
-#: ../../Zotlabs/Module/Settings/Channel.php:572
+#: ../../Zotlabs/Module/Settings/Channel.php:571
msgid "System (personal) notifications"
msgstr "Notificaciones del sistema (personales)"
-#: ../../Zotlabs/Module/Settings/Channel.php:573
+#: ../../Zotlabs/Module/Settings/Channel.php:572
msgid "System info messages"
msgstr "Mensajes de información del sistema"
-#: ../../Zotlabs/Module/Settings/Channel.php:574
+#: ../../Zotlabs/Module/Settings/Channel.php:573
msgid "System critical alerts"
msgstr "Alertas críticas del sistema"
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "New connections"
msgstr "Nuevas conexiones"
-#: ../../Zotlabs/Module/Settings/Channel.php:576
+#: ../../Zotlabs/Module/Settings/Channel.php:575
msgid "System Registrations"
msgstr "Registros del sistema"
-#: ../../Zotlabs/Module/Settings/Channel.php:577
+#: ../../Zotlabs/Module/Settings/Channel.php:576
msgid "Unseen shared files"
msgstr "Ficheros compartidos no vistos"
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:577
msgid "Unseen public stream activity"
msgstr "Actividad del stream público no vista"
-#: ../../Zotlabs/Module/Settings/Channel.php:579
+#: ../../Zotlabs/Module/Settings/Channel.php:578
msgid "Unseen likes and dislikes"
msgstr "Los \"me gusta\" y \"no me gusta\" no vistos"
-#: ../../Zotlabs/Module/Settings/Channel.php:580
+#: ../../Zotlabs/Module/Settings/Channel.php:579
msgid "Unseen forum posts"
msgstr "Entradas no vistas en el foro"
-#: ../../Zotlabs/Module/Settings/Channel.php:581
+#: ../../Zotlabs/Module/Settings/Channel.php:580
msgid "Email notification hub (hostname)"
msgstr "Email de notificación del hub (nombre del host)"
-#: ../../Zotlabs/Module/Settings/Channel.php:581
+#: ../../Zotlabs/Module/Settings/Channel.php:580
#, php-format
msgid ""
"If your channel is mirrored to multiple hubs, set this to your preferred "
"location. This will prevent duplicate email notifications. Example: %s"
msgstr "Si su canal está replicado en múltiples hubs, colóquelo en su ubicación preferida. Esto evitará la duplicación de notificaciones por correo electrónico. Ejemplo: %s"
-#: ../../Zotlabs/Module/Settings/Channel.php:582
+#: ../../Zotlabs/Module/Settings/Channel.php:581
msgid "Show new wall posts, private messages and connections under Notices"
msgstr "Mostrar nuevos mensajes en el muro, mensajes privados y conexiones en Avisos"
-#: ../../Zotlabs/Module/Settings/Channel.php:584
+#: ../../Zotlabs/Module/Settings/Channel.php:583
msgid "Notify me of events this many days in advance"
msgstr "Avisarme de los eventos con algunos días de antelación"
-#: ../../Zotlabs/Module/Settings/Channel.php:584
+#: ../../Zotlabs/Module/Settings/Channel.php:583
msgid "Must be greater than 0"
msgstr "Debe ser mayor que 0"
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:588
msgid "Advanced Account/Page Type Settings"
msgstr "Ajustes avanzados de la cuenta y de los tipos de página"
-#: ../../Zotlabs/Module/Settings/Channel.php:590
+#: ../../Zotlabs/Module/Settings/Channel.php:589
msgid "Change the behaviour of this account for special situations"
msgstr "Cambiar el comportamiento de esta cuenta en situaciones especiales"
-#: ../../Zotlabs/Module/Settings/Channel.php:592
+#: ../../Zotlabs/Module/Settings/Channel.php:591
msgid "Miscellaneous Settings"
msgstr "Ajustes diversos"
-#: ../../Zotlabs/Module/Settings/Channel.php:593
+#: ../../Zotlabs/Module/Settings/Channel.php:592
msgid "Default photo upload folder"
msgstr "Carpeta por defecto de las fotos subidas"
+#: ../../Zotlabs/Module/Settings/Channel.php:592
#: ../../Zotlabs/Module/Settings/Channel.php:593
-#: ../../Zotlabs/Module/Settings/Channel.php:594
msgid "%Y - current year, %m - current month"
msgstr "%Y - año en curso, %m - mes actual"
-#: ../../Zotlabs/Module/Settings/Channel.php:594
+#: ../../Zotlabs/Module/Settings/Channel.php:593
msgid "Default file upload folder"
msgstr "Carpeta por defecto de los ficheros subidos"
-#: ../../Zotlabs/Module/Settings/Channel.php:596
+#: ../../Zotlabs/Module/Settings/Channel.php:595
msgid "Remove this channel."
msgstr "Eliminar este canal."
@@ -13483,154 +13458,154 @@ msgstr "Dejar en blanco la contraseña a menos que desee cambiarla."
msgid "Remove this account including all its channels"
msgstr "Eliminar esta cuenta incluyendo todos sus canales"
-#: ../../Zotlabs/Module/Settings/Featured.php:25
+#: ../../Zotlabs/Module/Settings/Featured.php:24
msgid "No feature settings configured"
msgstr "No se ha establecido la configuración de los complementos"
-#: ../../Zotlabs/Module/Settings/Featured.php:34
+#: ../../Zotlabs/Module/Settings/Featured.php:33
msgid "Addon Settings"
msgstr "Ajustes de los complementos"
-#: ../../Zotlabs/Module/Settings/Featured.php:35
+#: ../../Zotlabs/Module/Settings/Featured.php:34
msgid "Please save/submit changes to any panel before opening another."
msgstr "Guarde o envíe los cambios a cualquier panel antes de abrir otro."
-#: ../../Zotlabs/Module/Settings/Events.php:40
+#: ../../Zotlabs/Module/Settings/Events.php:39
msgid "Events Settings"
msgstr "Gestión de eventos"
-#: ../../Zotlabs/Module/Settings/Manage.php:41
+#: ../../Zotlabs/Module/Settings/Manage.php:39
msgid "Channel Manager Settings"
msgstr "Ajustes del administrador de canales"
-#: ../../Zotlabs/Module/Settings/Channel_home.php:61
+#: ../../Zotlabs/Module/Settings/Channel_home.php:59
msgid "Personal menu to display in your channel pages"
msgstr "Menú personal que debe mostrarse en las páginas de su canal"
-#: ../../Zotlabs/Module/Settings/Channel_home.php:88
+#: ../../Zotlabs/Module/Settings/Channel_home.php:86
msgid "Channel Home Settings"
msgstr "Ajustes del canal"
-#: ../../Zotlabs/Module/Settings/Calendar.php:40
+#: ../../Zotlabs/Module/Settings/Calendar.php:39
msgid "Calendar Settings"
msgstr "Ajustes del calendario"
-#: ../../Zotlabs/Module/Settings/Display.php:129
+#: ../../Zotlabs/Module/Settings/Display.php:128
#, php-format
msgid "%s - (Experimental)"
msgstr "%s - (Experimental)"
-#: ../../Zotlabs/Module/Settings/Display.php:185
+#: ../../Zotlabs/Module/Settings/Display.php:184
msgid "Display Settings"
msgstr "Ajustes de visualización"
-#: ../../Zotlabs/Module/Settings/Display.php:186
+#: ../../Zotlabs/Module/Settings/Display.php:185
msgid "Theme Settings"
msgstr "Ajustes del tema"
-#: ../../Zotlabs/Module/Settings/Display.php:187
+#: ../../Zotlabs/Module/Settings/Display.php:186
msgid "Custom Theme Settings"
msgstr "Ajustes personalizados del tema"
-#: ../../Zotlabs/Module/Settings/Display.php:188
+#: ../../Zotlabs/Module/Settings/Display.php:187
msgid "Content Settings"
msgstr "Ajustes del contenido"
-#: ../../Zotlabs/Module/Settings/Display.php:194
+#: ../../Zotlabs/Module/Settings/Display.php:193
msgid "Display Theme:"
msgstr "Tema gráfico del perfil:"
-#: ../../Zotlabs/Module/Settings/Display.php:195
+#: ../../Zotlabs/Module/Settings/Display.php:194
msgid "Select scheme"
msgstr "Elegir un esquema"
-#: ../../Zotlabs/Module/Settings/Display.php:197
+#: ../../Zotlabs/Module/Settings/Display.php:196
msgid "Preload images before rendering the page"
msgstr "Carga previa de las imágenes antes de generar la página"
-#: ../../Zotlabs/Module/Settings/Display.php:197
+#: ../../Zotlabs/Module/Settings/Display.php:196
msgid ""
"The subjective page load time will be longer but the page will be ready when"
" displayed"
msgstr "El tiempo subjetivo de carga de la página será más largo, pero la página estará lista cuando se muestre."
-#: ../../Zotlabs/Module/Settings/Display.php:198
+#: ../../Zotlabs/Module/Settings/Display.php:197
msgid "Enable user zoom on mobile devices"
msgstr "Habilitar zoom de usuario en dispositivos móviles"
-#: ../../Zotlabs/Module/Settings/Display.php:199
+#: ../../Zotlabs/Module/Settings/Display.php:198
msgid "Update browser every xx seconds"
msgstr "Actualizar navegador cada xx segundos"
-#: ../../Zotlabs/Module/Settings/Display.php:199
+#: ../../Zotlabs/Module/Settings/Display.php:198
msgid "Minimum of 10 seconds, no maximum"
msgstr "Mínimo de 10 segundos, sin máximo"
-#: ../../Zotlabs/Module/Settings/Display.php:200
+#: ../../Zotlabs/Module/Settings/Display.php:199
msgid "Maximum number of conversations to load at any time:"
msgstr "Máximo número de conversaciones a cargar en cualquier momento:"
-#: ../../Zotlabs/Module/Settings/Display.php:200
-msgid "Maximum of 30 items"
-msgstr "Máximo de 30 elementos"
+#: ../../Zotlabs/Module/Settings/Display.php:199
+msgid "Maximum of 100 items"
+msgstr "Máximo de 100 elementos"
-#: ../../Zotlabs/Module/Settings/Display.php:201
+#: ../../Zotlabs/Module/Settings/Display.php:200
msgid "Show emoticons (smilies) as images"
msgstr "Mostrar emoticonos (smilies) como imágenes"
-#: ../../Zotlabs/Module/Settings/Display.php:202
+#: ../../Zotlabs/Module/Settings/Display.php:201
msgid "Provide channel menu in navigation bar"
msgstr "Proporcionar un menú de canales en la barra de navegación"
-#: ../../Zotlabs/Module/Settings/Display.php:202
+#: ../../Zotlabs/Module/Settings/Display.php:201
msgid "Default: channel menu located in app menu"
msgstr "Predeterminado: menú de canales ubicado en el menú de aplicaciones"
-#: ../../Zotlabs/Module/Settings/Display.php:203
+#: ../../Zotlabs/Module/Settings/Display.php:202
msgid "Manual conversation updates"
msgstr "Actualizaciones manuales de la conversación"
-#: ../../Zotlabs/Module/Settings/Display.php:203
+#: ../../Zotlabs/Module/Settings/Display.php:202
msgid "Default is on, turning this off may increase screen jumping"
msgstr "El valor predeterminado está activado, al desactivarlo puede aumentar el salto de pantalla"
-#: ../../Zotlabs/Module/Settings/Display.php:204
+#: ../../Zotlabs/Module/Settings/Display.php:203
msgid "Link post titles to source"
msgstr "Enlazar título de la publicación a la fuente original"
-#: ../../Zotlabs/Module/Settings/Display.php:206
+#: ../../Zotlabs/Module/Settings/Display.php:205
msgid "Display new member quick links menu"
msgstr "Mostrar el menú de enlaces rápidos para nuevos miembros"
-#: ../../Zotlabs/Module/Settings/Directory.php:40
+#: ../../Zotlabs/Module/Settings/Directory.php:39
msgid "Directory Settings"
msgstr "Configuración del directorio"
-#: ../../Zotlabs/Module/Settings/Editor.php:40
+#: ../../Zotlabs/Module/Settings/Editor.php:39
msgid "Editor Settings"
msgstr "Ajustes del editor"
-#: ../../Zotlabs/Module/Settings/Connections.php:40
+#: ../../Zotlabs/Module/Settings/Connections.php:39
msgid "Connections Settings"
msgstr "Gestión de las conexiones"
-#: ../../Zotlabs/Module/Settings/Photos.php:40
+#: ../../Zotlabs/Module/Settings/Photos.php:39
msgid "Photos Settings"
msgstr "Gestión de las fotos"
-#: ../../Zotlabs/Module/Settings/Profiles.php:49
+#: ../../Zotlabs/Module/Settings/Profiles.php:47
msgid "Profiles Settings"
msgstr "Gestión de los perfiles"
-#: ../../Zotlabs/Module/Settings/Conversation.php:23
+#: ../../Zotlabs/Module/Settings/Conversation.php:22
msgid "Settings saved."
msgstr "Configuración guardada."
-#: ../../Zotlabs/Module/Settings/Conversation.php:25
+#: ../../Zotlabs/Module/Settings/Conversation.php:24
msgid "Settings saved. Reload page please."
msgstr "Ajustes guardados. Recargue la página, por favor."
-#: ../../Zotlabs/Module/Settings/Conversation.php:47
+#: ../../Zotlabs/Module/Settings/Conversation.php:46
msgid "Conversation Settings"
msgstr "Ajustes de conversación"
@@ -13722,45 +13697,45 @@ msgstr "El título del menú tal como será visto por los demás"
msgid "Allow bookmarks"
msgstr "Permitir marcadores"
-#: ../../Zotlabs/Module/Defperms.php:68 ../../Zotlabs/Module/Connedit.php:82
+#: ../../Zotlabs/Module/Defperms.php:67 ../../Zotlabs/Module/Connedit.php:81
msgid "Could not access contact record."
msgstr "No se ha podido acceder al registro de contacto."
-#: ../../Zotlabs/Module/Defperms.php:190
+#: ../../Zotlabs/Module/Defperms.php:189
msgid "Default Permissions App"
msgstr "App Permisos por defecto"
-#: ../../Zotlabs/Module/Defperms.php:191
+#: ../../Zotlabs/Module/Defperms.php:190
msgid "Set custom default permissions for new connections"
msgstr "Establecer permisos predeterminados personalizados para nuevas conexiones"
-#: ../../Zotlabs/Module/Defperms.php:255 ../../Zotlabs/Module/Connedit.php:868
+#: ../../Zotlabs/Module/Defperms.php:254 ../../Zotlabs/Module/Connedit.php:867
msgid "Connection Default Permissions"
msgstr "Permisos predeterminados de conexión"
-#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:869
+#: ../../Zotlabs/Module/Defperms.php:255 ../../Zotlabs/Module/Connedit.php:868
msgid "Apply these permissions automatically"
msgstr "Aplicar estos permisos automaticamente"
-#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:870
+#: ../../Zotlabs/Module/Defperms.php:256 ../../Zotlabs/Module/Connedit.php:869
msgid "Permission role"
msgstr "Permisos de rol"
-#: ../../Zotlabs/Module/Defperms.php:258 ../../Zotlabs/Module/Connedit.php:871
+#: ../../Zotlabs/Module/Defperms.php:257 ../../Zotlabs/Module/Connedit.php:870
msgid "Add permission role"
msgstr "Añadir permisos de rol"
-#: ../../Zotlabs/Module/Defperms.php:262 ../../Zotlabs/Module/Connedit.php:884
+#: ../../Zotlabs/Module/Defperms.php:261 ../../Zotlabs/Module/Connedit.php:883
msgid ""
"The permissions indicated on this page will be applied to all new "
"connections."
msgstr "Los permisos indicados en esta página serán aplicados en todas las nuevas conexiones."
-#: ../../Zotlabs/Module/Defperms.php:263
+#: ../../Zotlabs/Module/Defperms.php:262
msgid "Automatic approval settings"
msgstr "Opciones de autorización automática"
-#: ../../Zotlabs/Module/Defperms.php:271
+#: ../../Zotlabs/Module/Defperms.php:270
msgid ""
"Some individual permissions may have been preset or locked based on your "
"channel type and privacy settings."
@@ -13890,60 +13865,60 @@ msgstr "Informe de entrega para %1$s"
msgid "Redeliver"
msgstr "Volver a enviar"
-#: ../../Zotlabs/Module/Thing.php:122
+#: ../../Zotlabs/Module/Thing.php:120
msgid "Thing updated"
msgstr "Elemento actualizado."
-#: ../../Zotlabs/Module/Thing.php:174
+#: ../../Zotlabs/Module/Thing.php:172
msgid "Object store: failed"
msgstr "Guardar objeto: ha fallado"
-#: ../../Zotlabs/Module/Thing.php:178
+#: ../../Zotlabs/Module/Thing.php:176
msgid "Thing added"
msgstr "Elemento añadido"
-#: ../../Zotlabs/Module/Thing.php:204
+#: ../../Zotlabs/Module/Thing.php:202
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../Zotlabs/Module/Thing.php:267
+#: ../../Zotlabs/Module/Thing.php:265
msgid "Show Thing"
msgstr "Mostrar elemento"
-#: ../../Zotlabs/Module/Thing.php:274
+#: ../../Zotlabs/Module/Thing.php:272
msgid "item not found."
msgstr "elemento no encontrado."
-#: ../../Zotlabs/Module/Thing.php:307
+#: ../../Zotlabs/Module/Thing.php:305
msgid "Edit Thing"
msgstr "Editar elemento"
-#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:366
+#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:364
msgid "Select a profile"
msgstr "Seleccionar un perfil"
-#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:369
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Post an activity"
msgstr "Publicar una actividad"
-#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:369
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Only sends to viewers of the applicable profile"
msgstr "Sólo enviar a espectadores del perfil pertinente."
-#: ../../Zotlabs/Module/Thing.php:315 ../../Zotlabs/Module/Thing.php:371
+#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:369
msgid "Name of thing e.g. something"
msgstr "Nombre del elemento, p. ej.:. \"algo\""
-#: ../../Zotlabs/Module/Thing.php:317 ../../Zotlabs/Module/Thing.php:372
+#: ../../Zotlabs/Module/Thing.php:315 ../../Zotlabs/Module/Thing.php:370
msgid "URL of thing (optional)"
msgstr "Dirección del elemento (opcional)"
-#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:373
+#: ../../Zotlabs/Module/Thing.php:317 ../../Zotlabs/Module/Thing.php:371
msgid "URL for photo of thing (optional)"
msgstr "Dirección para la foto o elemento (opcional)"
-#: ../../Zotlabs/Module/Thing.php:364
+#: ../../Zotlabs/Module/Thing.php:362
msgid "Add Thing to your Profile"
msgstr "Añadir alguna cosa a su perfil"
@@ -13951,43 +13926,43 @@ msgstr "Añadir alguna cosa a su perfil"
msgid "Authentication failed."
msgstr "Falló la autenticación."
-#: ../../Zotlabs/Module/Pdledit.php:27
+#: ../../Zotlabs/Module/Pdledit.php:26
msgid "Layout updated."
msgstr "Plantilla actualizada."
-#: ../../Zotlabs/Module/Pdledit.php:43
+#: ../../Zotlabs/Module/Pdledit.php:42
msgid "PDL Editor App"
msgstr "App Editor PDL"
-#: ../../Zotlabs/Module/Pdledit.php:44
+#: ../../Zotlabs/Module/Pdledit.php:43
msgid "Provides the ability to edit system page layouts"
msgstr "Proporciona la capacidad de editar los diseños de página del sistema"
-#: ../../Zotlabs/Module/Pdledit.php:57 ../../Zotlabs/Module/Pdledit.php:100
+#: ../../Zotlabs/Module/Pdledit.php:56 ../../Zotlabs/Module/Pdledit.php:99
msgid "Edit System Page Description"
msgstr "Editor del Sistema de Descripción de Páginas"
-#: ../../Zotlabs/Module/Pdledit.php:78
+#: ../../Zotlabs/Module/Pdledit.php:77
msgid "(modified)"
msgstr "(modificado)"
-#: ../../Zotlabs/Module/Pdledit.php:95
+#: ../../Zotlabs/Module/Pdledit.php:94
msgid "Layout not found."
msgstr "Plantilla no encontrada"
-#: ../../Zotlabs/Module/Pdledit.php:101
+#: ../../Zotlabs/Module/Pdledit.php:100
msgid "Module Name:"
msgstr "Nombre del módulo:"
-#: ../../Zotlabs/Module/Pdledit.php:102
+#: ../../Zotlabs/Module/Pdledit.php:101
msgid "Layout Help"
msgstr "Ayuda para el diseño de plantillas de página"
-#: ../../Zotlabs/Module/Pdledit.php:103
+#: ../../Zotlabs/Module/Pdledit.php:102
msgid "Edit another layout"
msgstr "Editar otro diseño"
-#: ../../Zotlabs/Module/Pdledit.php:104
+#: ../../Zotlabs/Module/Pdledit.php:103
msgid "System layout"
msgstr "Diseño del sistema"
@@ -14067,6 +14042,10 @@ msgstr "Comparación de revisiones"
msgid "Short description of your changes (optional)"
msgstr "Breve descripción de sus cambios (opcional)"
+#: ../../Zotlabs/Module/Wiki.php:384
+msgid "Source"
+msgstr "Fuente"
+
#: ../../Zotlabs/Module/Wiki.php:394
msgid "New page name"
msgstr "Nombre de la nueva página"
@@ -14152,244 +14131,244 @@ msgid ""
"hours."
msgstr "No hay sugerencias disponibles. Si es un sitio nuevo, espere 24 horas y pruebe de nuevo."
-#: ../../Zotlabs/Module/Connedit.php:113
+#: ../../Zotlabs/Module/Connedit.php:112
msgid "Could not locate selected profile."
msgstr "No se ha podido localizar el perfil seleccionado."
-#: ../../Zotlabs/Module/Connedit.php:257
+#: ../../Zotlabs/Module/Connedit.php:256
msgid "Connection updated."
msgstr "Conexión actualizada."
-#: ../../Zotlabs/Module/Connedit.php:259
+#: ../../Zotlabs/Module/Connedit.php:258
msgid "Failed to update connection record."
msgstr "Error al actualizar el registro de la conexión."
-#: ../../Zotlabs/Module/Connedit.php:313
+#: ../../Zotlabs/Module/Connedit.php:312
msgid "is now connected to"
msgstr "ahora está conectado/a"
-#: ../../Zotlabs/Module/Connedit.php:438
+#: ../../Zotlabs/Module/Connedit.php:437
msgid "Could not access address book record."
msgstr "No se pudo acceder al registro en su libreta de direcciones."
-#: ../../Zotlabs/Module/Connedit.php:486 ../../Zotlabs/Module/Connedit.php:490
+#: ../../Zotlabs/Module/Connedit.php:485 ../../Zotlabs/Module/Connedit.php:489
msgid "Refresh failed - channel is currently unavailable."
msgstr "Recarga fallida - no se puede encontrar el canal en este momento."
-#: ../../Zotlabs/Module/Connedit.php:505 ../../Zotlabs/Module/Connedit.php:514
-#: ../../Zotlabs/Module/Connedit.php:523 ../../Zotlabs/Module/Connedit.php:532
-#: ../../Zotlabs/Module/Connedit.php:545
+#: ../../Zotlabs/Module/Connedit.php:504 ../../Zotlabs/Module/Connedit.php:513
+#: ../../Zotlabs/Module/Connedit.php:522 ../../Zotlabs/Module/Connedit.php:531
+#: ../../Zotlabs/Module/Connedit.php:544
msgid "Unable to set address book parameters."
msgstr "No ha sido posible establecer los parámetros de la libreta de direcciones."
-#: ../../Zotlabs/Module/Connedit.php:569
+#: ../../Zotlabs/Module/Connedit.php:568
msgid "Connection has been removed."
msgstr "La conexión ha sido eliminada."
-#: ../../Zotlabs/Module/Connedit.php:612
+#: ../../Zotlabs/Module/Connedit.php:611
#, php-format
msgid "View %s's profile"
msgstr "Ver el perfil de %s"
-#: ../../Zotlabs/Module/Connedit.php:616
+#: ../../Zotlabs/Module/Connedit.php:615
msgid "Refresh Permissions"
msgstr "Recargar los permisos"
-#: ../../Zotlabs/Module/Connedit.php:619
+#: ../../Zotlabs/Module/Connedit.php:618
msgid "Fetch updated permissions"
msgstr "Obtener los permisos actualizados"
-#: ../../Zotlabs/Module/Connedit.php:623
+#: ../../Zotlabs/Module/Connedit.php:622
msgid "Refresh Photo"
msgstr "Actualizar la foto"
-#: ../../Zotlabs/Module/Connedit.php:626
+#: ../../Zotlabs/Module/Connedit.php:625
msgid "Fetch updated photo"
msgstr "Obtener una foto actualizada"
-#: ../../Zotlabs/Module/Connedit.php:633
+#: ../../Zotlabs/Module/Connedit.php:632
msgid "View recent posts and comments"
msgstr "Ver publicaciones y comentarios recientes"
-#: ../../Zotlabs/Module/Connedit.php:640
+#: ../../Zotlabs/Module/Connedit.php:639
msgid "Block (or Unblock) all communications with this connection"
msgstr "Bloquear (o desbloquear) todas las comunicaciones con esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:641
+#: ../../Zotlabs/Module/Connedit.php:640
msgid "This connection is blocked!"
msgstr "¡Esta conexión está bloqueada!"
-#: ../../Zotlabs/Module/Connedit.php:645
+#: ../../Zotlabs/Module/Connedit.php:644
msgid "Unignore"
msgstr "Dejar de ignorar"
-#: ../../Zotlabs/Module/Connedit.php:648
+#: ../../Zotlabs/Module/Connedit.php:647
msgid "Ignore (or Unignore) all inbound communications from this connection"
msgstr "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:649
+#: ../../Zotlabs/Module/Connedit.php:648
msgid "This connection is ignored!"
msgstr "¡Esta conexión es ignorada!"
-#: ../../Zotlabs/Module/Connedit.php:653
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Unarchive"
msgstr "Desarchivar"
-#: ../../Zotlabs/Module/Connedit.php:653
+#: ../../Zotlabs/Module/Connedit.php:652
msgid "Archive"
msgstr "Archivar"
-#: ../../Zotlabs/Module/Connedit.php:656
+#: ../../Zotlabs/Module/Connedit.php:655
msgid ""
"Archive (or Unarchive) this connection - mark channel dead but keep content"
msgstr "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos"
-#: ../../Zotlabs/Module/Connedit.php:657
+#: ../../Zotlabs/Module/Connedit.php:656
msgid "This connection is archived!"
msgstr "¡Esta conexión esta archivada!"
-#: ../../Zotlabs/Module/Connedit.php:661
+#: ../../Zotlabs/Module/Connedit.php:660
msgid "Unhide"
msgstr "Mostrar"
-#: ../../Zotlabs/Module/Connedit.php:661
+#: ../../Zotlabs/Module/Connedit.php:660
msgid "Hide"
msgstr "Ocultar"
-#: ../../Zotlabs/Module/Connedit.php:664
+#: ../../Zotlabs/Module/Connedit.php:663
msgid "Hide or Unhide this connection from your other connections"
msgstr "Ocultar o mostrar esta conexión a sus otras conexiones"
-#: ../../Zotlabs/Module/Connedit.php:665
+#: ../../Zotlabs/Module/Connedit.php:664
msgid "This connection is hidden!"
msgstr "¡Esta conexión está oculta!"
-#: ../../Zotlabs/Module/Connedit.php:672
+#: ../../Zotlabs/Module/Connedit.php:671
msgid "Delete this connection"
msgstr "Eliminar esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:680
+#: ../../Zotlabs/Module/Connedit.php:679
msgid "Fetch Vcard"
msgstr "Obtener una vcard"
-#: ../../Zotlabs/Module/Connedit.php:683
+#: ../../Zotlabs/Module/Connedit.php:682
msgid "Fetch electronic calling card for this connection"
msgstr "Obtener una tarjeta de llamada electrónica para esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:694
+#: ../../Zotlabs/Module/Connedit.php:693
msgid "Open Individual Permissions section by default"
msgstr "Abrir la sección de permisos individuales por defecto"
-#: ../../Zotlabs/Module/Connedit.php:717
+#: ../../Zotlabs/Module/Connedit.php:716
msgid "Affinity"
msgstr "Afinidad"
-#: ../../Zotlabs/Module/Connedit.php:720
+#: ../../Zotlabs/Module/Connedit.php:719
msgid "Open Set Affinity section by default"
msgstr "Abrir por defecto la sección para definir la afinidad"
-#: ../../Zotlabs/Module/Connedit.php:757
+#: ../../Zotlabs/Module/Connedit.php:756
msgid "Filter"
msgstr "Filtrar"
-#: ../../Zotlabs/Module/Connedit.php:760
+#: ../../Zotlabs/Module/Connedit.php:759
msgid "Open Custom Filter section by default"
msgstr "Abrir por defecto la sección de personalización de filtros"
-#: ../../Zotlabs/Module/Connedit.php:797
+#: ../../Zotlabs/Module/Connedit.php:796
msgid "Approve this connection"
msgstr "Aprobar esta conexión"
-#: ../../Zotlabs/Module/Connedit.php:797
+#: ../../Zotlabs/Module/Connedit.php:796
msgid "Accept connection to allow communication"
msgstr "Aceptar la conexión para permitir la comunicación"
-#: ../../Zotlabs/Module/Connedit.php:802
+#: ../../Zotlabs/Module/Connedit.php:801
msgid "Set Affinity"
msgstr "Ajustar la afinidad"
-#: ../../Zotlabs/Module/Connedit.php:805
+#: ../../Zotlabs/Module/Connedit.php:804
msgid "Set Profile"
msgstr "Ajustar el perfil"
-#: ../../Zotlabs/Module/Connedit.php:808
+#: ../../Zotlabs/Module/Connedit.php:807
msgid "Set Affinity & Profile"
msgstr "Ajustar la afinidad y el perfil"
-#: ../../Zotlabs/Module/Connedit.php:856
+#: ../../Zotlabs/Module/Connedit.php:855
msgid "This connection is unreachable from this location."
msgstr "No se puede acceder a la conexión desde este sitio."
-#: ../../Zotlabs/Module/Connedit.php:857
+#: ../../Zotlabs/Module/Connedit.php:856
msgid "This connection may be unreachable from other channel locations."
msgstr "Esta conexión puede ser inaccesible desde otras ubicaciones del canal."
-#: ../../Zotlabs/Module/Connedit.php:859
+#: ../../Zotlabs/Module/Connedit.php:858
msgid "Location independence is not supported by their network."
msgstr "La independencia de ubicación no es compatible con su red."
-#: ../../Zotlabs/Module/Connedit.php:865
+#: ../../Zotlabs/Module/Connedit.php:864
msgid ""
"This connection is unreachable from this location. Location independence is "
"not supported by their network."
msgstr "Esta conexión no es accesible desde este sitio. La independencia de ubicación no es compatible con su red."
-#: ../../Zotlabs/Module/Connedit.php:869
+#: ../../Zotlabs/Module/Connedit.php:868
msgid "Connection requests will be approved without your interaction"
msgstr "Las solicitudes de conexión serán aprobadas sin su intervención"
-#: ../../Zotlabs/Module/Connedit.php:878
+#: ../../Zotlabs/Module/Connedit.php:877
msgid "This connection's primary address is"
msgstr "La dirección primaria de esta conexión es"
-#: ../../Zotlabs/Module/Connedit.php:879
+#: ../../Zotlabs/Module/Connedit.php:878
msgid "Available locations:"
msgstr "Ubicaciones disponibles:"
-#: ../../Zotlabs/Module/Connedit.php:885
+#: ../../Zotlabs/Module/Connedit.php:884
msgid "Connection Tools"
msgstr "Gestión de las conexiones"
-#: ../../Zotlabs/Module/Connedit.php:887
+#: ../../Zotlabs/Module/Connedit.php:886
msgid "Slide to adjust your degree of friendship"
msgstr "Deslizar para ajustar el grado de amistad"
-#: ../../Zotlabs/Module/Connedit.php:889
+#: ../../Zotlabs/Module/Connedit.php:888
msgid "Slide to adjust your rating"
msgstr "Deslizar para ajustar su valoración"
-#: ../../Zotlabs/Module/Connedit.php:890 ../../Zotlabs/Module/Connedit.php:895
+#: ../../Zotlabs/Module/Connedit.php:889 ../../Zotlabs/Module/Connedit.php:894
msgid "Optionally explain your rating"
msgstr "Opcionalmente, puede explicar su valoración"
-#: ../../Zotlabs/Module/Connedit.php:892
+#: ../../Zotlabs/Module/Connedit.php:891
msgid "Custom Filter"
msgstr "Filtro personalizado"
-#: ../../Zotlabs/Module/Connedit.php:893
+#: ../../Zotlabs/Module/Connedit.php:892
msgid "Only import posts with this text"
msgstr "Importar solo entradas que contengan este texto"
-#: ../../Zotlabs/Module/Connedit.php:894
+#: ../../Zotlabs/Module/Connedit.php:893
msgid "Do not import posts with this text"
msgstr "No importar entradas que contengan este texto"
-#: ../../Zotlabs/Module/Connedit.php:896
+#: ../../Zotlabs/Module/Connedit.php:895
msgid "This information is public!"
msgstr "¡Esta información es pública!"
-#: ../../Zotlabs/Module/Connedit.php:901
+#: ../../Zotlabs/Module/Connedit.php:900
msgid "Connection Pending Approval"
msgstr "Conexión pendiente de aprobación"
-#: ../../Zotlabs/Module/Connedit.php:906
+#: ../../Zotlabs/Module/Connedit.php:905
#, php-format
msgid ""
"Please choose the profile you would like to display to %s when viewing your "
"profile securely."
msgstr "Por favor, escoja el perfil que quiere mostrar a %s cuando esté viendo su perfil de forma segura."
-#: ../../Zotlabs/Module/Connedit.php:913
+#: ../../Zotlabs/Module/Connedit.php:912
msgid ""
"Some permissions may be inherited from your channel's <a "
"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
@@ -14397,11 +14376,11 @@ msgid ""
"they wont have any impact unless the inherited setting changes."
msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><strong>ajustes de privacidad</strong></a> de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. Puede cambiar estos ajustes aquí, pero no tendrán ningún consecuencia hasta que cambie los ajustes heredados."
-#: ../../Zotlabs/Module/Connedit.php:914
+#: ../../Zotlabs/Module/Connedit.php:913
msgid "Last update:"
msgstr "Última actualización:"
-#: ../../Zotlabs/Module/Connedit.php:922
+#: ../../Zotlabs/Module/Connedit.php:921
msgid "Details"
msgstr "Detalles"
@@ -14416,7 +14395,7 @@ msgid "System Notifications"
msgstr "Notificaciones del sistema"
#: ../../Zotlabs/Module/Notifications.php:60
-#: ../../Zotlabs/Lib/ThreadItem.php:482
+#: ../../Zotlabs/Lib/ThreadItem.php:450
msgid "Mark all seen"
msgstr "Marcar todo como visto"
@@ -14500,7 +14479,7 @@ msgstr "Importar automáticamente contenido de otros canales o \"feeds\""
msgid "*"
msgstr "*"
-#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:368
+#: ../../Zotlabs/Module/Sources.php:107 ../../Zotlabs/Lib/Apps.php:367
msgid "Channel Sources"
msgstr "Orígenes de los contenidos del canal"
@@ -14586,33 +14565,6 @@ msgid ""
" logout and retry."
msgstr "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo."
-#: ../../Zotlabs/Lib/AccessList.php:28
-msgid ""
-"A deleted list with this name was revived. Existing item permissions "
-"<strong>may</strong> apply to this list and any future members. If this is "
-"not what you intended, please create another list with a different name."
-msgstr "Una lista eliminada con este nombre ha sido reactivada. Los permisos <strong>de los elementos existentes pueden </strong>aplicarse a esta lista y a cualquier miembro futuro. Si esto no es lo que pretendía, por favor, cree otra lista con un nombre diferente."
-
-#: ../../Zotlabs/Lib/AccessList.php:286
-msgid "Add new connections to this access list"
-msgstr "Añadir nuevas conexiones a esta lista de acceso"
-
-#: ../../Zotlabs/Lib/AccessList.php:331
-msgid "Lists"
-msgstr "Listas"
-
-#: ../../Zotlabs/Lib/AccessList.php:332
-msgid "Edit list"
-msgstr "Editar lista"
-
-#: ../../Zotlabs/Lib/AccessList.php:333
-msgid "Create new list"
-msgstr "Crear una nueva lista"
-
-#: ../../Zotlabs/Lib/AccessList.php:334
-msgid "Channels not in any access list"
-msgstr "No hay canales en ninguna lista de acceso"
-
#: ../../Zotlabs/Lib/Permcat.php:82
msgctxt "permcat"
msgid "default"
@@ -14633,35 +14585,30 @@ msgctxt "permcat"
msgid "publisher"
msgstr "editor"
-#: ../../Zotlabs/Lib/Activity.php:2045
+#: ../../Zotlabs/Lib/Activity.php:1656
#, php-format
msgid "Likes %1$s's %2$s"
msgstr "Gusta de %2$sde %1$s"
-#: ../../Zotlabs/Lib/Activity.php:2048
+#: ../../Zotlabs/Lib/Activity.php:1659
#, php-format
msgid "Doesn't like %1$s's %2$s"
msgstr "No le gusta %2$sde %1$s"
-#: ../../Zotlabs/Lib/Activity.php:2054
-#, php-format
-msgid "Will attend %s's event"
-msgstr "Asistirá al evento de %s"
-
-#: ../../Zotlabs/Lib/Activity.php:2057
+#: ../../Zotlabs/Lib/Activity.php:1662
#, php-format
-msgid "Will not attend %s's event"
-msgstr "No asistirá al evento de %s"
+msgid "Will attend %1$s's %2$s"
+msgstr "Asistirá %2$sde %1$s"
-#: ../../Zotlabs/Lib/Activity.php:2060
+#: ../../Zotlabs/Lib/Activity.php:1665
#, php-format
-msgid "May attend %s's event"
-msgstr "Puede asistir al evento de %s"
+msgid "Will not attend %1$s's %2$s"
+msgstr "No asistirá %2$sde %1$s"
-#: ../../Zotlabs/Lib/Activity.php:2063
+#: ../../Zotlabs/Lib/Activity.php:1668
#, php-format
-msgid "May not attend %s's event"
-msgstr "Puede no asistir al evento de %s"
+msgid "May attend %1$s's %2$s"
+msgstr "Puede asistir %2$sde %1$s"
#: ../../Zotlabs/Lib/Enotify.php:60
msgid "$Projectname Notification"
@@ -14721,340 +14668,327 @@ msgstr "Por favor visite %s para ver y/o responder a su mensaje privado."
msgid "commented on"
msgstr "ha comentado sobre "
-#: ../../Zotlabs/Lib/Enotify.php:157
+#: ../../Zotlabs/Lib/Enotify.php:155
msgid "liked"
msgstr "ha gustado de "
-#: ../../Zotlabs/Lib/Enotify.php:160
+#: ../../Zotlabs/Lib/Enotify.php:158
msgid "disliked"
msgstr "no ha gustado de "
-#: ../../Zotlabs/Lib/Enotify.php:165
-msgid "voted on"
-msgstr "votado en "
-
-#: ../../Zotlabs/Lib/Enotify.php:208
+#: ../../Zotlabs/Lib/Enotify.php:201
#, php-format
msgid "%1$s %2$s [zrl=%3$s]a %4$s[/zrl]"
msgstr "%1$s%2$s [zrl=%3$s ]un %4$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:216
+#: ../../Zotlabs/Lib/Enotify.php:209
#, php-format
msgid "%1$s %2$s [zrl=%3$s]%4$s's %5$s[/zrl]"
msgstr "%1$s %2$s[zrl=%3$s]%5$s de %4$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:225
+#: ../../Zotlabs/Lib/Enotify.php:218
#, php-format
msgid "%1$s %2$s [zrl=%3$s]your %4$s[/zrl]"
msgstr "%1$s %2$s [zrl=%3$s]su %4$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:237
+#: ../../Zotlabs/Lib/Enotify.php:230
#, php-format
msgid "[$Projectname:Notify] Moderated Comment to conversation #%1$d by %2$s"
msgstr "[$Projectname:Aviso] Comentario moderado en la conversación #%1$d por %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:239
+#: ../../Zotlabs/Lib/Enotify.php:232
#, php-format
msgid "[$Projectname:Notify] Comment to conversation #%1$d by %2$s"
msgstr "[$Projectname:Aviso] Nuevo comentario de %2$s en la conversación #%1$d"
-#: ../../Zotlabs/Lib/Enotify.php:240
+#: ../../Zotlabs/Lib/Enotify.php:233
#, php-format
msgid "%1$s commented on an item/conversation you have been following."
msgstr "%1$sha comentado un elemento/conversación que ha estado siguiendo."
-#: ../../Zotlabs/Lib/Enotify.php:243 ../../Zotlabs/Lib/Enotify.php:324
-#: ../../Zotlabs/Lib/Enotify.php:340 ../../Zotlabs/Lib/Enotify.php:365
-#: ../../Zotlabs/Lib/Enotify.php:382 ../../Zotlabs/Lib/Enotify.php:395
+#: ../../Zotlabs/Lib/Enotify.php:236 ../../Zotlabs/Lib/Enotify.php:317
+#: ../../Zotlabs/Lib/Enotify.php:333 ../../Zotlabs/Lib/Enotify.php:358
+#: ../../Zotlabs/Lib/Enotify.php:375 ../../Zotlabs/Lib/Enotify.php:388
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr "Para ver o comentar la conversación, visite %s"
-#: ../../Zotlabs/Lib/Enotify.php:247 ../../Zotlabs/Lib/Enotify.php:248
+#: ../../Zotlabs/Lib/Enotify.php:240 ../../Zotlabs/Lib/Enotify.php:241
#, php-format
msgid "Please visit %s to approve or reject this comment."
msgstr "Por favor, visite %s para aprobar o rechazar este comentario."
-#: ../../Zotlabs/Lib/Enotify.php:306
+#: ../../Zotlabs/Lib/Enotify.php:299
#, php-format
msgid "%1$s liked [zrl=%2$s]your %3$s[/zrl]"
msgstr "A %1$sle ha gustado [zrl=%2$s]su %3$s [/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:320
+#: ../../Zotlabs/Lib/Enotify.php:313
#, php-format
msgid "[$Projectname:Notify] Like received to conversation #%1$d by %2$s"
msgstr "[$Projectname:Aviso] \"Me gusta\" de %2$s en la conversación #%1$d"
-#: ../../Zotlabs/Lib/Enotify.php:321
+#: ../../Zotlabs/Lib/Enotify.php:314
#, php-format
msgid "%1$s liked an item/conversation you created."
msgstr "A %1$s le ha gustado un elemento o conversación que ha creado usted."
-#: ../../Zotlabs/Lib/Enotify.php:332
+#: ../../Zotlabs/Lib/Enotify.php:325
#, php-format
msgid "[$Projectname:Notify] %s posted to your profile wall"
msgstr "[$Projectname:Aviso] %s ha publicado una entrada en su página de inicio del perfil (\"muro\")"
-#: ../../Zotlabs/Lib/Enotify.php:334
+#: ../../Zotlabs/Lib/Enotify.php:327
#, php-format
msgid "%1$s posted to your profile wall at %2$s"
msgstr "%1$s ha publicado en su muro en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:336
+#: ../../Zotlabs/Lib/Enotify.php:329
#, php-format
msgid "%1$s posted to [zrl=%2$s]your wall[/zrl]"
msgstr "%1$sha publicado en [zrl=%2$s]su muro[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:359
+#: ../../Zotlabs/Lib/Enotify.php:352
#, php-format
msgid "[$Projectname:Notify] %s tagged you"
msgstr "[$Projectname:Aviso] %s le ha etiquetado"
-#: ../../Zotlabs/Lib/Enotify.php:360
+#: ../../Zotlabs/Lib/Enotify.php:353
#, php-format
msgid "%1$s tagged you at %2$s"
msgstr "%1$sle ha etiquetado en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:361
+#: ../../Zotlabs/Lib/Enotify.php:354
#, php-format
msgid "%1$s [zrl=%2$s]tagged you[/zrl]."
msgstr "%1$s [zrl=%2$s]le ha etiquetado[/zrl]."
-#: ../../Zotlabs/Lib/Enotify.php:372
+#: ../../Zotlabs/Lib/Enotify.php:365
#, php-format
msgid "[$Projectname:Notify] %1$s poked you"
msgstr "[$Projectname:Aviso] %1$s le ha dado un toque"
-#: ../../Zotlabs/Lib/Enotify.php:373
+#: ../../Zotlabs/Lib/Enotify.php:366
#, php-format
msgid "%1$s poked you at %2$s"
msgstr "%1$sle ha dado un toque en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:374
+#: ../../Zotlabs/Lib/Enotify.php:367
#, php-format
msgid "%1$s [zrl=%2$s]poked you[/zrl]."
msgstr "%1$s [zrl=%2$s] le ha dado un toque[/zrl]."
-#: ../../Zotlabs/Lib/Enotify.php:389
+#: ../../Zotlabs/Lib/Enotify.php:382
#, php-format
msgid "[$Projectname:Notify] %s tagged your post"
msgstr "[$Projectname:Aviso] %s ha etiquetado su entrada"
-#: ../../Zotlabs/Lib/Enotify.php:390
+#: ../../Zotlabs/Lib/Enotify.php:383
#, php-format
msgid "%1$s tagged your post at %2$s"
msgstr "%1$sha etiquetado su entrada en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:391
+#: ../../Zotlabs/Lib/Enotify.php:384
#, php-format
msgid "%1$s tagged [zrl=%2$s]your post[/zrl]"
msgstr "%1$s ha etiquetado [zrl=%2$s]su entrada[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:402
+#: ../../Zotlabs/Lib/Enotify.php:395
msgid "[$Projectname:Notify] Introduction received"
msgstr "[$Projectname:Aviso] Ha recibido una solicitud de conexión"
-#: ../../Zotlabs/Lib/Enotify.php:403
+#: ../../Zotlabs/Lib/Enotify.php:396
#, php-format
msgid "You've received an new connection request from '%1$s' at %2$s"
msgstr "Ha recibido una nueva solicitud de conexión de '%1$s' en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:404
+#: ../../Zotlabs/Lib/Enotify.php:397
#, php-format
msgid "You've received [zrl=%1$s]a new connection request[/zrl] from %2$s."
msgstr "Ha recibido [zrl=%1$s]una nueva solicitud de conexión[/zrl] de %2$s."
-#: ../../Zotlabs/Lib/Enotify.php:407 ../../Zotlabs/Lib/Enotify.php:425
+#: ../../Zotlabs/Lib/Enotify.php:400 ../../Zotlabs/Lib/Enotify.php:418
#, php-format
msgid "You may visit their profile at %s"
msgstr "Puede visitar su perfil en %s"
-#: ../../Zotlabs/Lib/Enotify.php:409
+#: ../../Zotlabs/Lib/Enotify.php:402
#, php-format
msgid "Please visit %s to approve or reject the connection request."
msgstr "Por favor, visite %s para permitir o rechazar la solicitad de conexión."
-#: ../../Zotlabs/Lib/Enotify.php:416
+#: ../../Zotlabs/Lib/Enotify.php:409
msgid "[$Projectname:Notify] Friend suggestion received"
msgstr "[$Projectname:Aviso] Ha recibido una sugerencia de conexión"
-#: ../../Zotlabs/Lib/Enotify.php:417
+#: ../../Zotlabs/Lib/Enotify.php:410
#, php-format
msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr "Ha recibido una sugerencia de amistad de '%1$s' en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:418
+#: ../../Zotlabs/Lib/Enotify.php:411
#, php-format
msgid ""
"You've received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s."
msgstr "Ha recibido [zrl=%1$s]una sugerencia de amistad[/zrl] para %2$s de %3$s."
-#: ../../Zotlabs/Lib/Enotify.php:423
+#: ../../Zotlabs/Lib/Enotify.php:416
msgid "Name:"
msgstr "Nombre:"
-#: ../../Zotlabs/Lib/Enotify.php:424
+#: ../../Zotlabs/Lib/Enotify.php:417
msgid "Photo:"
msgstr "Foto:"
-#: ../../Zotlabs/Lib/Enotify.php:427
+#: ../../Zotlabs/Lib/Enotify.php:420
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr "Por favor, visite %s para aprobar o rechazar la sugerencia."
-#: ../../Zotlabs/Lib/Enotify.php:652
+#: ../../Zotlabs/Lib/Enotify.php:640
msgid "[$Projectname:Notify]"
msgstr "[$Projectname:Aviso]"
-#: ../../Zotlabs/Lib/Enotify.php:820
-msgid "created a new poll"
-msgstr "se ha creado una nueva encuesta"
-
-#: ../../Zotlabs/Lib/Enotify.php:820
+#: ../../Zotlabs/Lib/Enotify.php:808
msgid "created a new post"
msgstr "ha creado una nueva entrada"
-#: ../../Zotlabs/Lib/Enotify.php:821
-#, php-format
-msgid "voted on %s's poll"
-msgstr "votado en la encuesta de %s"
-
-#: ../../Zotlabs/Lib/Enotify.php:821
+#: ../../Zotlabs/Lib/Enotify.php:809
#, php-format
msgid "commented on %s's post"
msgstr "ha comentado la entrada de %s"
-#: ../../Zotlabs/Lib/Enotify.php:825
+#: ../../Zotlabs/Lib/Enotify.php:812
#, php-format
msgid "repeated %s's post"
msgstr "repetida la entrada de %s"
-#: ../../Zotlabs/Lib/Enotify.php:837
+#: ../../Zotlabs/Lib/Enotify.php:821
#, php-format
msgid "edited a post dated %s"
msgstr "ha editado una entrada %s"
-#: ../../Zotlabs/Lib/Enotify.php:841
+#: ../../Zotlabs/Lib/Enotify.php:825
#, php-format
msgid "edited a comment dated %s"
msgstr "ha editado un comentario %s"
-#: ../../Zotlabs/Lib/Connect.php:275
-msgid "error saving data"
-msgstr "error guardando los datos"
-
-#: ../../Zotlabs/Lib/Chatroom.php:25
+#: ../../Zotlabs/Lib/Chatroom.php:23
msgid "Missing room name"
msgstr "Sala de chat sin nombre"
-#: ../../Zotlabs/Lib/Chatroom.php:34
+#: ../../Zotlabs/Lib/Chatroom.php:32
msgid "Duplicate room name"
msgstr "Nombre de sala duplicado."
-#: ../../Zotlabs/Lib/Chatroom.php:84 ../../Zotlabs/Lib/Chatroom.php:92
+#: ../../Zotlabs/Lib/Chatroom.php:82 ../../Zotlabs/Lib/Chatroom.php:90
msgid "Invalid room specifier."
msgstr "Especificador de sala no válido."
-#: ../../Zotlabs/Lib/Chatroom.php:124
+#: ../../Zotlabs/Lib/Chatroom.php:122
msgid "Room not found."
msgstr "Sala no encontrada."
-#: ../../Zotlabs/Lib/Chatroom.php:145
+#: ../../Zotlabs/Lib/Chatroom.php:143
msgid "Room is full"
msgstr "La sala está llena."
-#: ../../Zotlabs/Lib/NativeWiki.php:145
+#: ../../Zotlabs/Lib/NativeWiki.php:143
msgid "Wiki updated successfully"
msgstr "El wiki se ha actualizado con éxito"
-#: ../../Zotlabs/Lib/NativeWiki.php:199
+#: ../../Zotlabs/Lib/NativeWiki.php:197
msgid "Wiki files deleted successfully"
msgstr "Se han borrado con éxito los ficheros del wiki"
-#: ../../Zotlabs/Lib/Apps.php:323
+#: ../../Zotlabs/Lib/Apps.php:322
msgid "Apps"
msgstr "Aplicaciones (apps)"
-#: ../../Zotlabs/Lib/Apps.php:324
+#: ../../Zotlabs/Lib/Apps.php:323
msgid "Affinity Tool"
msgstr "Herramienta de afinidad"
-#: ../../Zotlabs/Lib/Apps.php:327
+#: ../../Zotlabs/Lib/Apps.php:326
msgid "Site Admin"
msgstr "Administrador del sitio"
-#: ../../Zotlabs/Lib/Apps.php:331
+#: ../../Zotlabs/Lib/Apps.php:330
msgid "Content Filter"
msgstr "Filtro de contenido"
-#: ../../Zotlabs/Lib/Apps.php:334
+#: ../../Zotlabs/Lib/Apps.php:333
msgid "Remote Diagnostics"
msgstr "Diagnóstico remoto"
-#: ../../Zotlabs/Lib/Apps.php:335
+#: ../../Zotlabs/Lib/Apps.php:334
msgid "Suggest Channels"
msgstr "Sugerir canales"
-#: ../../Zotlabs/Lib/Apps.php:338
+#: ../../Zotlabs/Lib/Apps.php:337
msgid "Stream"
msgstr "Stream"
-#: ../../Zotlabs/Lib/Apps.php:349
+#: ../../Zotlabs/Lib/Apps.php:348
msgid "Mail"
msgstr "Correo"
-#: ../../Zotlabs/Lib/Apps.php:352
+#: ../../Zotlabs/Lib/Apps.php:351
msgid "Chat"
msgstr "Chat"
-#: ../../Zotlabs/Lib/Apps.php:354
+#: ../../Zotlabs/Lib/Apps.php:353
msgid "Probe"
msgstr "Probar"
-#: ../../Zotlabs/Lib/Apps.php:355
+#: ../../Zotlabs/Lib/Apps.php:354
msgid "Suggest"
msgstr "Sugerir"
-#: ../../Zotlabs/Lib/Apps.php:356
+#: ../../Zotlabs/Lib/Apps.php:355
msgid "Random Channel"
msgstr "Canal aleatorio"
-#: ../../Zotlabs/Lib/Apps.php:357
+#: ../../Zotlabs/Lib/Apps.php:356
msgid "Invite"
msgstr "Invitar"
-#: ../../Zotlabs/Lib/Apps.php:360
+#: ../../Zotlabs/Lib/Apps.php:359
msgid "Post"
msgstr "Publicación"
-#: ../../Zotlabs/Lib/Apps.php:365
+#: ../../Zotlabs/Lib/Apps.php:364
msgid "Notifications"
msgstr "Notificaciones"
-#: ../../Zotlabs/Lib/Apps.php:366
+#: ../../Zotlabs/Lib/Apps.php:365
msgid "Order Apps"
msgstr "Ordenar las apps"
-#: ../../Zotlabs/Lib/Apps.php:367
+#: ../../Zotlabs/Lib/Apps.php:366
msgid "CardDAV"
msgstr "CardDAV"
-#: ../../Zotlabs/Lib/Apps.php:369
+#: ../../Zotlabs/Lib/Apps.php:368
msgid "Guest Access"
msgstr "Acceso para invitados"
-#: ../../Zotlabs/Lib/Apps.php:371
+#: ../../Zotlabs/Lib/Apps.php:370
msgid "OAuth Apps Manager"
msgstr "Administrador de apps OAuth"
-#: ../../Zotlabs/Lib/Apps.php:372
+#: ../../Zotlabs/Lib/Apps.php:371
msgid "OAuth2 Apps Manager"
msgstr "Administrador de apps OAuth2"
-#: ../../Zotlabs/Lib/Apps.php:373
+#: ../../Zotlabs/Lib/Apps.php:372
msgid "PDL Editor"
msgstr "Editor PDL"
+#: ../../Zotlabs/Lib/Apps.php:374
+msgid "Premium Channel"
+msgstr "Canal premium"
+
#: ../../Zotlabs/Lib/Apps.php:376
msgid "My Chatrooms"
msgstr "Mis salas de chat"
@@ -15071,19 +15005,19 @@ msgstr "Comprar"
msgid "Undelete"
msgstr "Recuperar"
-#: ../../Zotlabs/Lib/Apps.php:569
+#: ../../Zotlabs/Lib/Apps.php:568
msgid "Add to app-tray"
msgstr "Añadir a la bandeja de aplicaciones"
-#: ../../Zotlabs/Lib/Apps.php:570
+#: ../../Zotlabs/Lib/Apps.php:569
msgid "Remove from app-tray"
msgstr "Quitar de la bandeja de aplicaciones"
-#: ../../Zotlabs/Lib/Apps.php:571
+#: ../../Zotlabs/Lib/Apps.php:570
msgid "Pin to navbar"
msgstr "Fijar en la barra de navegación"
-#: ../../Zotlabs/Lib/Apps.php:572
+#: ../../Zotlabs/Lib/Apps.php:571
msgid "Unpin from navbar"
msgstr "Quitar de la barra de navegación"
@@ -15172,83 +15106,135 @@ msgstr "Se necesita Wiki resource_id para el git commit"
msgid "Privacy conflict. Discretion advised."
msgstr "Conflicto de privacidad. Se aconseja discreción."
-#: ../../Zotlabs/Lib/ThreadItem.php:174 ../../Zotlabs/Storage/Browser.php:286
+#: ../../Zotlabs/Lib/ThreadItem.php:172 ../../Zotlabs/Storage/Browser.php:286
msgid "Admin Delete"
msgstr "Eliminar admin"
-#: ../../Zotlabs/Lib/ThreadItem.php:319
+#: ../../Zotlabs/Lib/ThreadItem.php:203
+msgid "I will attend"
+msgstr "Participaré"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:203
+msgid "I will not attend"
+msgstr "No participaré"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:203
+msgid "I might attend"
+msgstr "Quizá participe"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:213
+msgid "I agree"
+msgstr "Estoy de acuerdo"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:213
+msgid "I disagree"
+msgstr "No estoy de acuerdo"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:213
+msgid "I abstain"
+msgstr "Me abstengo"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:287
+msgid "Add Tag"
+msgstr "Añadir etiqueta"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:309
msgid "Reply on this comment"
msgstr "Responder a este comentario"
-#: ../../Zotlabs/Lib/ThreadItem.php:319
+#: ../../Zotlabs/Lib/ThreadItem.php:309
msgid "reply"
msgstr "responder"
-#: ../../Zotlabs/Lib/ThreadItem.php:319
+#: ../../Zotlabs/Lib/ThreadItem.php:309
msgid "Reply to"
msgstr "Responder a "
-#: ../../Zotlabs/Lib/ThreadItem.php:339
+#: ../../Zotlabs/Lib/ThreadItem.php:319
+msgid "Share This"
+msgstr "Compartir esto"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:319
+msgid "share"
+msgstr "compartir"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:329
msgid "Delivery Report"
msgstr "Informe de transmisión"
-#: ../../Zotlabs/Lib/ThreadItem.php:358
+#: ../../Zotlabs/Lib/ThreadItem.php:348
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d comentario"
msgstr[1] "%d comentarios"
-#: ../../Zotlabs/Lib/ThreadItem.php:359
+#: ../../Zotlabs/Lib/ThreadItem.php:380 ../../Zotlabs/Lib/ThreadItem.php:381
#, php-format
-msgid "%d unseen"
-msgstr "%dno visto/a vistos/as"
+msgid "View %s's profile - %s"
+msgstr "Ver el perfil de %s - %s"
-#: ../../Zotlabs/Lib/ThreadItem.php:412
+#: ../../Zotlabs/Lib/ThreadItem.php:384
msgid "to"
msgstr "a"
-#: ../../Zotlabs/Lib/ThreadItem.php:414
+#: ../../Zotlabs/Lib/ThreadItem.php:385
+msgid "via"
+msgstr "mediante"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:386
msgid "Wall-to-Wall"
msgstr "De página del perfil a página del perfil (de \"muro\" a \"muro\")"
-#: ../../Zotlabs/Lib/ThreadItem.php:415
+#: ../../Zotlabs/Lib/ThreadItem.php:387
msgid "via Wall-To-Wall:"
msgstr "Mediante el procedimiento página del perfil a página del perfil (de \"muro\" a \"muro\")"
-#: ../../Zotlabs/Lib/ThreadItem.php:442
+#: ../../Zotlabs/Lib/ThreadItem.php:413
msgid "Attend"
msgstr "Participar o asistir"
-#: ../../Zotlabs/Lib/ThreadItem.php:460
+#: ../../Zotlabs/Lib/ThreadItem.php:414
+msgid "Attendance Options"
+msgstr "Opciones de participación o asistencia"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:415
+msgid "Vote"
+msgstr "Votar"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:416
+msgid "Voting Options"
+msgstr "Opciones de votación"
+
+#: ../../Zotlabs/Lib/ThreadItem.php:431
msgid "Go to previous comment"
msgstr "Ir al comentario anterior"
-#: ../../Zotlabs/Lib/ThreadItem.php:473
+#: ../../Zotlabs/Lib/ThreadItem.php:441
msgid "Add to Calendar"
msgstr "Añadir al calendario"
-#: ../../Zotlabs/Lib/ThreadItem.php:831
+#: ../../Zotlabs/Lib/ThreadItem.php:802
msgid "Image"
msgstr "Imagen"
-#: ../../Zotlabs/Lib/ThreadItem.php:833
+#: ../../Zotlabs/Lib/ThreadItem.php:804
msgid "Insert Link"
msgstr "Insertar enlace"
-#: ../../Zotlabs/Lib/ThreadItem.php:834
+#: ../../Zotlabs/Lib/ThreadItem.php:805
msgid "Video"
msgstr "Vídeo"
-#: ../../Zotlabs/Lib/ThreadItem.php:844
+#: ../../Zotlabs/Lib/ThreadItem.php:815
msgid "Your full name (required)"
msgstr "Su nombre completo (requerido)"
-#: ../../Zotlabs/Lib/ThreadItem.php:845
+#: ../../Zotlabs/Lib/ThreadItem.php:816
msgid "Your email address (required)"
msgstr "Su dirección de correo electrónico (requerido)"
-#: ../../Zotlabs/Lib/ThreadItem.php:846
+#: ../../Zotlabs/Lib/ThreadItem.php:817
msgid "Your website URL (optional)"
msgstr "La URL de su sitio web (opcional)"
@@ -15319,67 +15305,67 @@ msgstr "Este es su ajuste predeterminado para establecer quién puede ver su rep
msgid "This is your default setting for the audience of your webpages"
msgstr "Este es el ajuste predeterminado para establecer la audiencia de sus páginas web"
-#: ../../Zotlabs/Access/PermissionRoles.php:287
+#: ../../Zotlabs/Access/PermissionRoles.php:283
msgid "Social Networking"
msgstr "Redes sociales"
-#: ../../Zotlabs/Access/PermissionRoles.php:288
+#: ../../Zotlabs/Access/PermissionRoles.php:284
msgid "Social - Federation"
msgstr "Social - Federación"
-#: ../../Zotlabs/Access/PermissionRoles.php:289
+#: ../../Zotlabs/Access/PermissionRoles.php:285
msgid "Social - Mostly Public"
msgstr "Social - Público en su mayor parte"
-#: ../../Zotlabs/Access/PermissionRoles.php:290
+#: ../../Zotlabs/Access/PermissionRoles.php:286
msgid "Social - Restricted"
msgstr "Social - Restringido"
-#: ../../Zotlabs/Access/PermissionRoles.php:291
+#: ../../Zotlabs/Access/PermissionRoles.php:287
msgid "Social - Private"
msgstr "Social - Privado"
-#: ../../Zotlabs/Access/PermissionRoles.php:294
+#: ../../Zotlabs/Access/PermissionRoles.php:290
msgid "Community Forum"
msgstr "Foro de discusión"
-#: ../../Zotlabs/Access/PermissionRoles.php:295
+#: ../../Zotlabs/Access/PermissionRoles.php:291
msgid "Forum - Mostly Public"
msgstr "Foro - Público en su mayor parte"
-#: ../../Zotlabs/Access/PermissionRoles.php:296
+#: ../../Zotlabs/Access/PermissionRoles.php:292
msgid "Forum - Restricted"
msgstr "Foro - Restringido"
-#: ../../Zotlabs/Access/PermissionRoles.php:297
+#: ../../Zotlabs/Access/PermissionRoles.php:293
msgid "Forum - Private"
msgstr "Foro - Privado"
-#: ../../Zotlabs/Access/PermissionRoles.php:300
+#: ../../Zotlabs/Access/PermissionRoles.php:296
msgid "Feed Republish"
msgstr "Republicar un \"feed\""
-#: ../../Zotlabs/Access/PermissionRoles.php:301
+#: ../../Zotlabs/Access/PermissionRoles.php:297
msgid "Feed - Mostly Public"
msgstr "Feed - Público en su mayor parte"
-#: ../../Zotlabs/Access/PermissionRoles.php:302
+#: ../../Zotlabs/Access/PermissionRoles.php:298
msgid "Feed - Restricted"
msgstr "Feed - Restringido"
-#: ../../Zotlabs/Access/PermissionRoles.php:305
+#: ../../Zotlabs/Access/PermissionRoles.php:301
msgid "Special Purpose"
msgstr "Propósito especial"
-#: ../../Zotlabs/Access/PermissionRoles.php:306
+#: ../../Zotlabs/Access/PermissionRoles.php:302
msgid "Special - Celebrity/Soapbox"
msgstr "Especial - Celebridad / Tribuna improvisada"
-#: ../../Zotlabs/Access/PermissionRoles.php:307
+#: ../../Zotlabs/Access/PermissionRoles.php:303
msgid "Special - Group Repository"
msgstr "Especial - Repositorio de grupo"
-#: ../../Zotlabs/Access/PermissionRoles.php:311
+#: ../../Zotlabs/Access/PermissionRoles.php:307
msgid "Custom/Expert Mode"
msgstr "Modo personalizado/experto"
@@ -15513,40 +15499,40 @@ msgstr "Subir fichero"
msgid "Drop files here to immediately upload"
msgstr "Arrastre los ficheros aquí para subirlos de forma inmediata"
-#: ../../boot.php:1677
+#: ../../boot.php:1653
msgid "Create an account to access services and applications"
msgstr "Crear una cuenta para acceder a los servicios y aplicaciones"
-#: ../../boot.php:1701
+#: ../../boot.php:1677
msgid "Login/Email"
msgstr "Inicio de sesión / Correo electrónico"
-#: ../../boot.php:1702
+#: ../../boot.php:1678
msgid "Password"
msgstr "Contraseña"
-#: ../../boot.php:1703
+#: ../../boot.php:1679
msgid "Remember me"
msgstr "Recordarme"
-#: ../../boot.php:1706
+#: ../../boot.php:1682
msgid "Forgot your password?"
msgstr "¿Olvidó su contraseña?"
-#: ../../boot.php:2575
+#: ../../boot.php:2478
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr "[$Projectname] Error SSL del sitio web en %s"
-#: ../../boot.php:2580
+#: ../../boot.php:2483
msgid "Website SSL certificate is not valid. Please correct."
msgstr "El certificado SSL del sitio web no es válido. Por favor, solucione el problema."
-#: ../../boot.php:2696
+#: ../../boot.php:2599
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr "[$Projectname] Las tareas de Cron no están funcionando en %s"
-#: ../../boot.php:2701
+#: ../../boot.php:2604
msgid "Cron/Scheduled tasks not running."
msgstr "Las tareas del Planificador/Cron no están funcionando."
diff --git a/view/es-es/hstrings.php b/view/es-es/hstrings.php
index 2eb593936..1ce5cd3aa 100644
--- a/view/es-es/hstrings.php
+++ b/view/es-es/hstrings.php
@@ -101,6 +101,41 @@ App::$strings["Assume workers dead after ___ seconds"] = "Asumir que el proceso
App::$strings["Pause before starting next task: (microseconds. Minimum 100 = .0001 seconds)"] = "Haga una pausa antes de comenzar la siguiente tarea: (microsegundos. Mínimo 100 =.0001 segundos)";
App::$strings["Queueworker Settings"] = "Configuración del gestor de procesos de trabajo en cola";
App::$strings["Save"] = "Guardar";
+App::$strings["Edit your profile and change settings."] = "Editar su perfil y cambiar los ajustes.";
+App::$strings["Click here to see activity from your connections."] = "Pulsar aquí para ver la actividad de sus conexiones.";
+App::$strings["Click here to see your channel home."] = "Pulsar aquí para ver la página de inicio de su canal.";
+App::$strings["You can access your private messages from here."] = "Puede acceder a sus mensajes privados desde aquí.";
+App::$strings["Create new events here."] = "Crear nuevos eventos aquí.";
+App::$strings["You can accept new connections and change permissions for existing ones here. You can also e.g. create groups of contacts."] = "Puede aceptar nuevas conexiones y cambiar permisos para las que ya existen aquí. También puede, por ejemplo, crear grupos de contactos.";
+App::$strings["System notifications will arrive here"] = "Las notificaciones del sistema llegarán aquí";
+App::$strings["Search for content and users"] = "Buscar contenido y usuarios";
+App::$strings["Browse for new contacts"] = "Buscar nuevos contactos";
+App::$strings["Launch installed apps"] = "Iniciar aplicaciones instaladas";
+App::$strings["Looking for help? Click here."] = "¿Busca ayuda? Pulse aquí.";
+App::$strings["New events have occurred in your network. Click here to see what has happened!"] = "Se han producido nuevos eventos en su red. ¡Haga clic aquí para ver lo que ha sucedido!";
+App::$strings["You have received a new private message. Click here to see from who!"] = "Ha recibido un nuevo mensaje privado. Haga clic aquí para ver de quién!";
+App::$strings["There are events this week. Click here too see which!"] = "Hay eventos esta semana. Haga clic aquí para ver cuáles!";
+App::$strings["You have received a new introduction. Click here to see who!"] = "Ha recibido una nueva solicitud de conexión. ¡Pulse aquí para ver de quién!";
+App::$strings["There is a new system notification. Click here to see what has happened!"] = "Hay una nueva notificación del sistema. ¡Haga clic aquí para ver lo que ha sucedido!";
+App::$strings["Click here to share text, images, videos and sound."] = "Haga clic aquí para compartir texto, imágenes, vídeos y sonido.";
+App::$strings["You can write an optional title for your update (good for long posts)."] = "Puede escribir un título opcional para su actualización (bueno para los mensajes largos).";
+App::$strings["Entering some categories here makes it easier to find your post later."] = "Al ingresar algunos temas aquí, es más fácil encontrar su publicación más tarde.";
+App::$strings["Share photos, links, location, etc."] = "Compartir fotos, enlaces, ubicación, etc.";
+App::$strings["Only want to share content for a while? Make it expire at a certain date."] = "¿Solo quieres compartir contenido durante un tiempo? Haga que expire en una fecha determinada.";
+App::$strings["You can password protect content."] = "Puede proteger contenido con una contraseña.";
+App::$strings["Choose who you share with."] = "Elegir con quién compartir.";
+App::$strings["Click here when you are done."] = "Haga clic aquí cuando haya terminado.";
+App::$strings["Adjust from which channels posts should be displayed."] = "Ajustar de qué canales se deben mostrar las publicaciones.";
+App::$strings["Only show posts from channels in the specified privacy group."] = "Mostrar solo las entradas de los canales de un grupo específico de canales.";
+App::$strings["Easily find posts containing tags (keywords preceded by the \"#\" symbol)."] = "Encuentre fácilmente entradas que contengan etiquetas (palabras clave precedidas del símbolo \"#\").";
+App::$strings["Easily find posts in given category."] = "Encuentre fácilmente las publicaciones en una categoría dada.";
+App::$strings["Easily find posts by date."] = "Encuentre fácilmente entradas por fechas.";
+App::$strings["Suggested users who have volounteered to be shown as suggestions, and who we think you might find interesting."] = "Se sugiere a los usuarios que se han ofrecido voluntariamente que se muestren como sugerencias, y que creemos que podrían resultar interesantes.";
+App::$strings["Here you see channels you have connected to."] = "Aquí puede ver los canales a los que está conectado.";
+App::$strings["Save your search so you can repeat it at a later date."] = "Guarde su búsqueda para poder repetirla en una fecha posterior.";
+App::$strings["If you see this icon you can be sure that the sender is who it say it is. It is normal that it is not always possible to verify the sender, so the icon will be missing sometimes. There is usually no need to worry about that."] = "Si ve este icono puede estar seguro de que el remitente es quien dice ser. Es normal que no siempre sea posible verificar el remitente, por lo que el icono faltará en ocasiones. Por lo general, no hay necesidad de preocuparse por eso.";
+App::$strings["Danger! It seems someone tried to forge a message! This message is not necessarily from who it says it is from!"] = "¡Peligro! ¡Parece que alguien intentó falsificar un mensaje! ¡Este mensaje no es necesariamente de quien dice que es!";
+App::$strings["Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can pause it at any time and continue where you left off by reloading the page, or navigting to another page.</p><p>You can also advance by pressing the return key"] = "¡Bienvenido/a a Hubzilla! ¿Quiere hacer un recorrido por la interfaz de usuario?</p> <p> Puede detenerlo en cualquier momento y continuar donde lo dejó recargando la página o navegando a otra.</p> <p> También puede avanzar pulsando la tecla de retorno";
App::$strings["Add some colour to tag clouds"] = "Añadir color a las nubes de etiquetas";
App::$strings["Rainbow Tag App"] = "App Etiqueta Arcoiris";
App::$strings["Rainbow Tag"] = "Etiqueta Arcoiris";
@@ -237,6 +272,11 @@ App::$strings["API URL"] = "URL de la API";
App::$strings["Consumer Secret"] = "Consumer Secret";
App::$strings["Consumer Key"] = "Consumer Key";
App::$strings["Application name"] = "Nombre de la aplicación";
+App::$strings["Friendica Photo Album Import"] = "Importar un álbum de fotos de Friendica";
+App::$strings["This will import all your Friendica photo albums to this Red channel."] = "Esto importará todos sus álbumes de fotos de Friendica a este canal de Hubzilla.";
+App::$strings["Friendica Server base URL"] = "URL base del servidor de Friendica";
+App::$strings["Friendica Login Username"] = "Nombre de inicio de sesión en Friendica";
+App::$strings["Friendica Login Password"] = "Contraseña de inicio de sesión en Friendica";
App::$strings["Friendica Crosspost Connector Settings saved."] = "Se han guardado los ajustes del conector de publicación cruzada con Friendica.";
App::$strings["Friendica Crosspost Connector App"] = "App Friendica Crosspost Connector";
App::$strings["Relay public postings to a connected Friendica account"] = "Retransmisión de entradas públicas a una cuenta Friendica conectada";
@@ -247,7 +287,6 @@ App::$strings["Friendica password"] = "Contraseña de Friendica";
App::$strings["Friendica Crosspost Connector"] = "Friendica Crosspost Connector";
App::$strings["Post to Friendica"] = "Publicar en Friendica";
App::$strings["Post to WordPress"] = "Publicar en WordPress";
-App::$strings["Source"] = "Fuente";
App::$strings["Wordpress Settings saved."] = "Se han guardado los ajustes de WordPress.";
App::$strings["Wordpress Post App"] = "App Publicar en Wordpress";
App::$strings["Post to WordPress or anything else which uses the wordpress XMLRPC API"] = "Publicar en WordPress o cualquier otra cosa que utilice la API XMLRPC de wordpress";
@@ -259,8 +298,6 @@ App::$strings["WordPress blogid"] = "Blog de WordPress";
App::$strings["For multi-user sites such as wordpress.com, otherwise leave blank"] = "Para sitios multiusuario como wordpress.com, de lo contrario, dejar en blanco";
App::$strings["Post to WordPress by default"] = "Publicar en WordPress por defecto";
App::$strings["Forward comments (requires hubzilla_wp plugin)"] = "Reenviar comentarios (requerido por el plugin hubzilla_wp)";
-App::$strings["Add link to original post"] = "Añadir enlace a la entrada original";
-App::$strings["Link description (default:"] = "Descripción del enlace (por defecto: ";
App::$strings["Wordpress Post"] = "Publicar en Wordpress";
App::$strings["No server specified"] = "No se ha especificado ningún servidor";
App::$strings["Posts imported"] = "Entradas importadas";
@@ -355,7 +392,7 @@ App::$strings["An account has been created for you."] = "Se ha creado una cuenta
App::$strings["Authentication successful but rejected: account creation is disabled."] = "Autenticación correcta pero rechazada: la creación de cuentas está deshabilitada.";
App::$strings["Dreamwidth Crosspost Connector Settings saved."] = "Se han guardado los ajustes del conector de publicación cruzada Dreamwidth.";
App::$strings["Dreamwidth Crosspost Connector App"] = "App Dreamwidth Crosspost Connector";
-App::$strings["Relay public posts to Dreamwidth"] = "Reenviar las entradas públicas a Dreamwidth";
+App::$strings["Relay public postings to Dreamwidth"] = "Retransmisión de entradas públicas a Dreamwidth";
App::$strings["Dreamwidth username"] = "Nombre de usuario en Dreamwidth";
App::$strings["Dreamwidth password"] = "Contraseña en Dreamwidth";
App::$strings["Post to Dreamwidth by default"] = "Publicar en Dreamwidth de forma predeterminada";
@@ -434,30 +471,6 @@ App::$strings["Set a preferred page to load on login from home page"] = "Estable
App::$strings["Page to load after login"] = "Página para cargar tras el inicio de sesión";
App::$strings["Examples: &quot;apps&quot;, &quot;network?f=&gid=37&quot; (privacy collection), &quot;channel&quot; or &quot;notifications/system&quot; (leave blank for default network page (grid)."] = "Ejemplos: &quot;aplicaciones&quot;, &quot;mi red?f=&gid=37&quot; (grupo de canales), &quot;mi canal&quot; or &quot;notificaciones del sistema&quot; (dejar en blanco para la página de mi red por defecto (grid).";
App::$strings["Startpage"] = "Startpage";
-App::$strings["Messages"] = "Mensajes";
-App::$strings["message"] = "mensaje";
-App::$strings["Message recalled."] = "Mensaje revocado.";
-App::$strings["Conversation removed."] = "Conversación eliminada.";
-App::$strings["Expires YYYY-MM-DD HH:MM"] = "Caduca YYYY-MM-DD HH:MM";
-App::$strings["Requested channel is not in this network"] = "El canal solicitado no existe en esta red";
-App::$strings["Send Private Message"] = "Enviar un mensaje privado";
-App::$strings["To:"] = "Para:";
-App::$strings["Subject:"] = "Asunto:";
-App::$strings["Your message:"] = "Su mensaje:";
-App::$strings["Attach file"] = "Adjuntar fichero";
-App::$strings["Send"] = "Enviar";
-App::$strings["Delete message"] = "Borrar mensaje";
-App::$strings["Delivery report"] = "Informe de transmisión";
-App::$strings["Recall message"] = "Revocar el mensaje";
-App::$strings["Message has been recalled."] = "El mensaje ha sido revocado.";
-App::$strings["Delete Conversation"] = "Eliminar conversación";
-App::$strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente.";
-App::$strings["Send Reply"] = "Responder";
-App::$strings["Your message for %s (%s):"] = "Su mensaje para %s (%s):";
-App::$strings["Unable to lookup recipient."] = "No se puede asociar a un destinatario.";
-App::$strings["Unable to communicate with requested channel."] = "No se puede establecer la comunicación con el canal solicitado.";
-App::$strings["Cannot verify requested channel."] = "No se puede verificar el canal solicitado.";
-App::$strings["Selected channel has private message restrictions. Send failed."] = "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló.";
App::$strings["Flag Adult Photos"] = "Indicador (\"flag\") de fotos de adultos";
App::$strings["Provide photo edit option to hide inappropriate photos from default album view"] = "Proporcionar una opción de edición de fotos para ocultar las fotos inapropiadas de la vista de álbum predeterminada";
App::$strings["Your channel has been upgraded to \$Projectname version"] = "Su canal ha sido actualizado a la versión \$Projectname";
@@ -547,10 +560,6 @@ App::$strings["Photo URL"] = "URL de la foto";
App::$strings["Add buyer to privacy group"] = "Agregar comprador al grupo de canales";
App::$strings["Add buyer as connection"] = "Añadir comprador como conexión";
App::$strings["Set Service Class"] = "Establecer clase de servicio";
-App::$strings["Enable Order/Item Options"] = "Habilitar las opciones de pedido/artículo";
-App::$strings["Label"] = "Etiqueta";
-App::$strings["Required"] = "Obligatorio";
-App::$strings["Instructions"] = "Instrucciones";
App::$strings["Enable Paypal Button Module"] = "Habilitar el módulo del botón de Paypal";
App::$strings["Use Production Key"] = "Utilizar clave en entorno de producción";
App::$strings["Paypal Sandbox Client Key"] = "Clave de cliente en el entorno de pruebas de Paypal";
@@ -559,7 +568,6 @@ App::$strings["Paypal Production Client Key"] = "Clave de cliente en el entorno
App::$strings["Paypal Production Secret Key"] = "Clave secreta en el entorno de producción de Paypal";
App::$strings["Paypal button payments are not enabled."] = "Los pagos con el botón de Paypal no están habilitados.";
App::$strings["Paypal button payments are not properly configured. Please choose another payment option."] = "Los pagos con el botón de Paypal no están configurados correctamente. Por favor, elija otra opción de pago.";
-App::$strings["Enable Paypal Button Module (API-v2)"] = "Habilitar el módulo de botones de Paypal (API-v2)";
App::$strings["Enable Manual Cart Module"] = "Habilitar el módulo de carro manual";
App::$strings["Access Denied."] = "Acceso denegado";
App::$strings["Order Not Found"] = "No se ha encontrado el pedido";
@@ -579,8 +587,6 @@ App::$strings["You must be logged into the Grid to shop."] = "Debe iniciar sesi
App::$strings["Access denied."] = "Acceso denegado";
App::$strings["No Order Found"] = "No se ha encontrado ningún pedido";
App::$strings["An unknown error has occurred Please start again."] = "Se ha producido un error desconocido Vuelva a empezar.";
-App::$strings["Requirements not met."] = "No se cumplen los requisitos.";
-App::$strings["Review your order and complete any needed requirements."] = "Revise su pedido y complete los requisitos necesarios.";
App::$strings["Invalid Payment Type. Please start again."] = "Tipo de pago no válido. Por favor, empiece de nuevo.";
App::$strings["Order not found"] = "El pedido no se ha encontrado";
App::$strings["nofed Settings saved."] = "Se han guardado los ajustes de nofed.";
@@ -596,10 +602,6 @@ App::$strings["Smileybutton Settings"] = "Ajustes de Smileybutton";
App::$strings["file"] = "fichero";
App::$strings["Redmatrix File Storage Import"] = "Importar repositorio de ficheros de Redmatrix";
App::$strings["This will import all your Redmatrix cloud files to this channel."] = "Esto importará todos sus ficheros de la nube de Redmatrix a este canal.";
-App::$strings["Please install the statistics addon to be able to configure a diaspora relay"] = "Por favor, instale el complemento de estadísticas para poder configurar el reenvío de diaspora";
-App::$strings["Diaspora Relay Handle"] = "Gestionar el reenvío de Diaspora";
-App::$strings["Address of a diaspora relay. Example: relay@diasporarelay.tld"] = "La dirección de una transmisión de diaspora. Ejemplo: relay@diasporarelay.tld";
-App::$strings["Diaspora relay could not be imported"] = "El reenvío de Diaspora no ha podido ser importado";
App::$strings["\$projectname"] = "\$projectname";
App::$strings["No username found in import file."] = "No se ha encontrado el nombre de usuario en el fichero de importación.";
App::$strings["Unable to create a unique channel address. Import failed."] = "No se ha podido crear una dirección de canal única. Ha fallado la importación.";
@@ -629,7 +631,6 @@ App::$strings["Workflow user."] = "Usuario de Workflow.";
App::$strings["This channel"] = "Este canal";
App::$strings["Primary"] = "Primario";
App::$strings["Workflow"] = "Workflow";
-App::$strings["No Workflows Available"] = "No hay flujos de trabajo disponibles";
App::$strings["Add item to which workflow"] = "A qué Workflow añadir un elemento";
App::$strings["Create Workflow Item"] = "Crear elemento de Workflow";
App::$strings["Link"] = "Enlazar";
@@ -659,6 +660,15 @@ App::$strings["Fontsize (px):"] = "Tamaño de fuente (px): ";
App::$strings["Link:"] = "Enlace: ";
App::$strings["Like us on Hubzilla"] = "Múestrenos su agrado en Hubzilla";
App::$strings["Embed:"] = "Incorporado: ";
+App::$strings["Quick Reference"] = "Referencia rápida";
+App::$strings["This is a fairly comprehensive and complete guitar chord dictionary which will list most of the available ways to play a certain chord, starting from the base of the fingerboard up to a few frets beyond the twelfth fret (beyond which everything repeats). A couple of non-standard tunings are provided for the benefit of slide players, etc."] = "Se trata de un diccionario bastante amplio y completo de acordes de guitarra que enumerará la mayor parte de las formas disponibles para tocar un acorde determinado, partiendo de la base del diapasón hasta unos pocos trastes más allá del traste doce (más allá del cual todo se repite). Se proporcionan un par de afinaciones no convencionales para provecho de los guitarristas con \"slides\" ( barras de acero), etc.";
+App::$strings["Chord names start with a root note (A-G) and may include sharps (#) and flats (b). This software will parse most of the standard naming conventions such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."] = "Los nombres de acordes comienzan con una nota fundamental (La-Sol) y pueden incluir sostenidos (#) y bemoles (b). Este software analizará la mayor parte de las convenciones de nomenclatura estándar como maj, min, tenue, SUS (2 ó 4), aug, con la repetición de elementos opcionales.";
+App::$strings["Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."] = "Ejemplos válidos son A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ...";
+App::$strings["Guitar Chords"] = "Acordes de guitarra";
+App::$strings["The complete online chord dictionary"] = "El diccionario completo de acordes en línea";
+App::$strings["Tuning"] = "Afinación";
+App::$strings["Chord name: example: Em7"] = "Nombre del acorde, por ejemplo: Em7";
+App::$strings["Show for left handed stringing"] = "Mostrar para tocadores zurdos";
App::$strings["__ctx:opensearch__ Search %1\$s (%2\$s)"] = "Buscar %1\$s (%2\$s)";
App::$strings["__ctx:opensearch__ \$Projectname"] = "\$Projectname";
App::$strings["\$Projectname"] = "\$Projectname";
@@ -669,6 +679,22 @@ App::$strings["Blur your precise location if your channel uses browser location
App::$strings["Minimum offset in meters"] = "Offset mínimo en metros";
App::$strings["Maximum offset in meters"] = "Offset máximo en metros";
App::$strings["Fuzzy Location"] = "Fuzzy Location";
+App::$strings["Flattr this!"] = "¡Apoyar esto en Flattr!";
+App::$strings["Flattr widget settings updated."] = "Los ajustes del widget Flattr han sido actualizados.";
+App::$strings["Flattr Widget App"] = "App Flattr Widget";
+App::$strings["Add a Flattr button to your channel page"] = "Proporcionar un botón Flattr a la página de su canal";
+App::$strings["Flattr user"] = "Usuario en Flattr";
+App::$strings["URL of the Thing to flattr"] = "URL de la Cosa para apoyar en flattr";
+App::$strings["If empty channel URL is used"] = "Si está vacío, se usa la URL del canal";
+App::$strings["Title of the Thing to flattr"] = "Título de la Cosa para apoyar en flattr";
+App::$strings["If empty \"channel name on The Hubzilla\" will be used"] = "Si está vacío, se usará \"nombre del canal en Hubzilla\"";
+App::$strings["Static or dynamic flattr button"] = "Botón de flattr estático o dinámico";
+App::$strings["static"] = "estático";
+App::$strings["dynamic"] = "dinámico";
+App::$strings["Alignment of the widget"] = "Alineamiento del widget";
+App::$strings["left"] = "izquierda";
+App::$strings["right"] = "derecha";
+App::$strings["Flattr Widget"] = "Flattr Widget";
App::$strings["Send email to all members"] = "Enviar un correo electrónico a todos los miembros";
App::$strings["%s Administrator"] = "%s Administrador";
App::$strings["No recipients found."] = "No se han encontrado destinatarios.";
@@ -722,31 +748,11 @@ App::$strings["Logfile size in bytes before rotating"] = "Tamaño del fichero de
App::$strings["Number of logfiles to retain"] = "Número de ficheros de informe que se deben retener";
App::$strings["Your account on %s will expire in a few days."] = "Su cuenta en %s caducará en unos pocos días.";
App::$strings["Your $Productname test account is about to expire."] = "Su cuenta de prueba de $Productname está a punto de caducar.";
-App::$strings["Hide Aside App"] = "App de ocultamiento del panel lateral";
-App::$strings["Fade out aside areas after a while when using endless scroll"] = "Se desvanecen las áreas laterales cuando se usa un scroll sin fin";
App::$strings["Skeleton App"] = "App Skeleton";
App::$strings["A skeleton for addons, you can copy/paste"] = "Skeleton para los addons, puede copiar/pegar";
App::$strings["Some setting"] = "Algunos ajustes";
App::$strings["A setting"] = "Un ajuste";
App::$strings["Skeleton Settings"] = "Ajustes de Skeleton";
-App::$strings["Network error"] = "Error de red";
-App::$strings["API error"] = "Error de API";
-App::$strings["Unknown issue"] = "Problema desconocido";
-App::$strings["Unable to login using email address "] = "Imposible iniciar sesión usando la dirección de correo electrónico";
-App::$strings["Sign in to Hubzilla using a social account"] = "Iniciar sesión en Hubzilla usando una cuenta social";
-App::$strings["Social Authentication using your social media account"] = "Autenticación usando su cuenta de medios sociales";
-App::$strings["This app enables one or more social provider sign-in buttons on the login page."] = "Esta aplicación habilita uno o más botones de inicio de sesión de proveedores sociales en la página de inicio de sesión.";
-App::$strings["Add an identity provider"] = "Añadir un proveedor de identidad";
-App::$strings["Enable "] = "Habilitar";
-App::$strings["Key"] = "Clave";
-App::$strings["Word"] = "Palabra";
-App::$strings["Secret"] = "Secret";
-App::$strings["Add a custom provider"] = "Añadir un proveedor personalizado";
-App::$strings["Remove an identity provider"] = "Eliminar un proveedor de identidad";
-App::$strings["Social authentication"] = "Autenticación social";
-App::$strings["Error while saving provider settings"] = "Se ha producido un error mientras se guardaban los ajustes";
-App::$strings["Custom provider already exists"] = "Ya existe un proveedor personalizado";
-App::$strings["Social authentication settings saved."] = "Se han guardado los ajustes de la autenticación social.";
App::$strings["Possible adult content"] = "Posible contenido para adultos";
App::$strings["%s - view"] = "ver - %s";
App::$strings["NSFW Settings saved."] = "Se han guardado los ajustes de NSFW.";
@@ -790,11 +796,38 @@ App::$strings["Send wall-to-wall posts to Livejournal"] = "Enviar entradas de Mu
App::$strings["Livejournal Crosspost Connector"] = "Livejournal Crosspost Connector";
App::$strings["Post to Livejournal"] = "Publicar en Livejournal";
App::$strings["Posted by"] = "Publicado por ";
+App::$strings["Invalid game."] = "Juego no válido.";
+App::$strings["You are not a player in this game."] = "Usted no participa en este juego.";
+App::$strings["You must be a local channel to create a game."] = "Debe ser un canal local para crear un juego";
+App::$strings["You must select one opponent that is not yourself."] = "Debe seleccionar un oponente que no sea usted mismo.";
+App::$strings["Random color chosen."] = "Elegido un color aleatorio.";
+App::$strings["Error creating new game."] = "Error al crear un nuevo juego.";
+App::$strings["Requested channel is not available."] = "El canal solicitado no está disponible.";
+App::$strings["Chess not installed."] = "Chess no está instalado.";
+App::$strings["You must select a local channel /chess/channelname"] = "Debe seleccionar un canal local /chess/nombredelcanal";
+App::$strings["You must be logged in to see this page."] = "Debe haber iniciado sesión para poder ver esta página.";
+App::$strings["Page not found."] = "Página no encontrada.";
+App::$strings["Enable notifications"] = "Habilitar notificaciones";
App::$strings["Markdown"] = "Markdown";
App::$strings["Use markdown for editing posts"] = "Usar markdown para editar las entradas";
App::$strings["Hubzilla File Storage Import"] = "Importar del depósito de ficheros de Hubzilla";
App::$strings["This will import all your cloud files from another server."] = "Esto importará todos sus ficheros en la nube desde otro servidor.";
App::$strings["Hubzilla Server base URL"] = "URL base del servidor Hubzilla";
+App::$strings["Jappixmini App"] = "App Jappixmini";
+App::$strings["Provides a Facebook-like chat using Jappix Mini"] = "Proporciona un chat similar al de Facebook utilizando Jappix Mini";
+App::$strings["Status:"] = "Estado:";
+App::$strings["Hide Jappixmini Chat-Widget from the webinterface"] = "Ocultar el widget de chat Jappixmini en la interfaz web";
+App::$strings["Jabber username"] = "Nombre de usuario en Jabber";
+App::$strings["Jabber server"] = "Servidor de Jabber";
+App::$strings["Jabber BOSH host URL"] = "URL del host BOSH de Jabber";
+App::$strings["Jabber password"] = "Contraseña en Jabber";
+App::$strings["Encrypt Jabber password with Hubzilla password"] = "Cifrar la contraseña de Jabber con la contraseña de Hubzilla";
+App::$strings["Recommended"] = "Recomendado";
+App::$strings["Approve subscription requests from Hubzilla contacts automatically"] = "Aprobar automáticamente las solicitudes de suscripción de los contactos de Hubzilla";
+App::$strings["Purge internal list of jabber addresses of contacts"] = "Purgar la lista interna de las direcciones de contactos de jabber";
+App::$strings["Configuration Help"] = "Ayuda para los ajustes";
+App::$strings["Add Contact"] = "Añadir un contacto";
+App::$strings["Jappixmini Settings"] = "Ajustes de Jappixmini";
App::$strings["Allow magic authentication only to websites of your immediate connections"] = "Permitir la autenticación mágica sólo a los sitios web de sus conexiones próximas";
App::$strings["Authchoose App"] = "App Authchoose";
App::$strings["Authchoose"] = "Autoseleccionar";
@@ -830,11 +863,6 @@ App::$strings["older"] = "más antiguas";
App::$strings["newer"] = "más recientes";
App::$strings["No connections"] = "Sin conexiones";
App::$strings["Connections"] = "Conexiones";
-App::$strings["Accepts"] = "Se acepta";
-App::$strings["Comments"] = "Comentarios";
-App::$strings["Stream items"] = "Elementos del stream";
-App::$strings["Wall posts"] = "Entradas del Muro";
-App::$strings["Nothing"] = "Nada";
App::$strings["View all %s connections"] = "Ver todas las %s conexiones";
App::$strings["Network: %s"] = "Red %s";
App::$strings["Search"] = "Buscar";
@@ -896,9 +924,6 @@ App::$strings["unknown"] = "desconocido";
App::$strings["remove category"] = "eliminar el tema";
App::$strings["remove from file"] = "eliminar del fichero";
App::$strings["Download binary/encrypted content"] = "Descargar contenido binario o cifrado";
-App::$strings["Poll has ended."] = "La encuesta ha terminado";
-App::$strings["Poll ends: %s"] = "Finales de la encuesta: %s";
-App::$strings["Vote"] = "Votar";
App::$strings["Link to Source"] = "Enlazar con la entrada en su ubicación original";
App::$strings["default"] = "por defecto";
App::$strings["Page layout"] = "Plantilla de la página";
@@ -912,7 +937,6 @@ App::$strings["Page content type"] = "Tipo de contenido de la página";
App::$strings["event"] = "el/su evento";
App::$strings["comment"] = "el comentario";
App::$strings["activity"] = "la/su actividad";
-App::$strings["poll"] = "encuesta";
App::$strings["a-z, 0-9, -, and _ only"] = "a-z, 0-9, -, and _ only";
App::$strings["Design Tools"] = "Herramientas de diseño web";
App::$strings["Blocks"] = "Bloques";
@@ -975,6 +999,8 @@ App::$strings["Comments will be displayed separately"] = "Los comentarios se mos
App::$strings["Connection Filtering"] = "Filtrado de conexiones";
App::$strings["Filter incoming posts from connections based on keywords/content"] = "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido";
App::$strings["Conversation"] = "Conversación";
+App::$strings["Community Tagging"] = "Etiquetas de la comunidad";
+App::$strings["Ability to tag existing posts"] = "Capacidad de etiquetar entradas";
App::$strings["Emoji Reactions"] = "Emoticonos \"emoji\"";
App::$strings["Add emoji reaction ability to posts"] = "Activar la capacidad de añadir un emoticono \"emoji\" a las entradas";
App::$strings["Dislike Posts"] = "Desagrado de publicaciones";
@@ -993,6 +1019,8 @@ App::$strings["Large Photos"] = "Fotos de gran tamaño";
App::$strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Incluir miniaturas de fotos grandes (1024px) en publicaciones. Si no está habilitado, usar miniaturas pequeñas (640px)";
App::$strings["Even More Encryption"] = "Más cifrado todavía";
App::$strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Permitir cifrado adicional de contenido \"punto-a-punto\" con una clave secreta compartida.";
+App::$strings["Enable Voting Tools"] = "Permitir entradas con votación";
+App::$strings["Provide a class of post which others can vote on"] = "Proveer una clase de publicación en la que otros puedan votar";
App::$strings["Disable Comments"] = "Deshabilitar comentarios";
App::$strings["Provide the option to disable comments for a post"] = "Proporcionar la opción de desactivar los comentarios para una entrada";
App::$strings["Delayed Posting"] = "Publicación aplazada";
@@ -1007,10 +1035,6 @@ App::$strings["Manage"] = "Gestionar";
App::$strings["Navigation Channel Select"] = "Navegación por el selector de canales";
App::$strings["Change channels directly from within the navigation dropdown menu"] = "Cambiar de canales directamente desde el menú de navegación desplegable";
App::$strings["Network"] = "Red";
-App::$strings["Events Filter"] = "Filtro de eventos";
-App::$strings["Ability to display only events"] = "Capacidad para mostrar solo eventos";
-App::$strings["Polls Filter"] = "Filtro de encuestas";
-App::$strings["Ability to display only polls"] = "Capacidad para mostrar solo encuestas";
App::$strings["Saved Searches"] = "Búsquedas guardadas";
App::$strings["Save search terms for re-use"] = "Guardar términos de búsqueda para su reutilización";
App::$strings["Saved Folders"] = "Carpetas guardadas";
@@ -1065,9 +1089,6 @@ App::$strings["A channel name is required."] = "Se requiere un nombre de canal";
App::$strings["This is a "] = "Esto es un ";
App::$strings[" channel name"] = "nombre de canal";
App::$strings["Back to reply"] = "Volver a la respuesta";
-App::$strings["Pinned"] = "Anclado/a";
-App::$strings["Pin to the top"] = "Anclar en la parte superior";
-App::$strings["Unpin from the top"] = "Desanclar de la parte superior";
App::$strings["%d minutes"] = array(
0 => "%d minutos",
1 => "%d minutos",
@@ -1128,7 +1149,6 @@ App::$strings["__ctx:calendar__ All day"] = "Todos los días";
App::$strings["Help:"] = "Ayuda:";
App::$strings["Help"] = "Ayuda";
App::$strings["Not Found"] = "No encontrado";
-App::$strings["Page not found."] = "Página no encontrada.";
App::$strings["Image exceeds website size limit of %lu bytes"] = "La imagen excede el límite de %lu bytes del sitio";
App::$strings["Image file is empty."] = "El fichero de imagen está vacío. ";
App::$strings["Unable to process image"] = "No ha sido posible procesar la imagen";
@@ -1230,6 +1250,7 @@ App::$strings["Miscellaneous"] = "Varios";
App::$strings["Birthday"] = "Cumpleaños";
App::$strings["Age: "] = "Edad:";
App::$strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-DD o MM-DD";
+App::$strings["Required"] = "Obligatorio";
App::$strings["never"] = "nunca";
App::$strings["less than a second ago"] = "hace un instante";
App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "hace %1\$d %2\$s";
@@ -1263,12 +1284,6 @@ App::$strings["__ctx:relative_date__ second"] = array(
);
App::$strings["%1\$s's birthday"] = "Cumpleaños de %1\$s";
App::$strings["Happy Birthday %1\$s"] = "Feliz cumpleaños %1\$s";
-App::$strings["INVALID EVENT DISMISSED!"] = "¡EVENTO NO VÁLIDO RECHAZADO!";
-App::$strings["Summary: "] = "Resumen: ";
-App::$strings["Date: "] = "Fecha: ";
-App::$strings["Reason: "] = "Razón: ";
-App::$strings["INVALID CARD DISMISSED!"] = "¡TARJETA NO VÁLIDA RECHAZADA!";
-App::$strings["Name: "] = "Nombre: ";
App::$strings["Channel is blocked on this site."] = "El canal está bloqueado en este sitio.";
App::$strings["Channel location missing."] = "Falta la dirección del canal.";
App::$strings["Response from remote channel was incomplete."] = "Respuesta incompleta del canal.";
@@ -1338,13 +1353,6 @@ App::$strings[", and %d other people"] = array(
);
App::$strings["%s like this."] = "A %s le gusta esto.";
App::$strings["%s don't like this."] = "A %s no le gusta esto.";
-App::$strings["Toggle poll"] = "Activar o desactivar encuestas";
-App::$strings["Option"] = "Opción";
-App::$strings["Add option"] = "Añadir una opción";
-App::$strings["Minutes"] = "Minutos ";
-App::$strings["Hours"] = "Horas ";
-App::$strings["Days"] = "Días ";
-App::$strings["Allow multiple answers"] = "Permitir respuestas múltiples";
App::$strings["__ctx:noun__ Like"] = array(
0 => "Me gusta",
1 => "Me gusta",
@@ -1515,7 +1523,6 @@ App::$strings["Path not found."] = "Ruta no encontrada";
App::$strings["mkdir failed."] = "mkdir ha fallado.";
App::$strings["database storage failed."] = "el almacenamiento en la base de datos ha fallado.";
App::$strings["Empty path"] = "Ruta vacía";
-App::$strings["%s shared a %s with you"] = "%sha compartido un/una %scon usted";
App::$strings["%1\$s's bookmarks"] = "Marcadores de %1\$s";
App::$strings["Edit"] = "Editar";
App::$strings["Image/photo"] = "Imagen/foto";
@@ -1546,14 +1553,12 @@ App::$strings["Nickname has unsupported characters or is already being used on t
App::$strings["Unable to retrieve created identity"] = "No ha sido posible recuperar la identidad creada";
App::$strings["Default Profile"] = "Perfil principal";
App::$strings["Unable to retrieve modified identity"] = "No se puede recuperar la identidad modficada";
-App::$strings["Requested channel is not available."] = "El canal solicitado no está disponible.";
App::$strings["Change profile photo"] = "Cambiar la foto del perfil";
App::$strings["Create New Profile"] = "Crear un nuevo perfil";
App::$strings["Profile Image"] = "Imagen del perfil";
App::$strings["Visible to everybody"] = "Visible para todos";
App::$strings["Edit visibility"] = "Editar visibilidad";
App::$strings["Gender:"] = "Género:";
-App::$strings["Status:"] = "Estado:";
App::$strings["Homepage:"] = "Página personal:";
App::$strings["Online Now"] = "Ahora en línea";
App::$strings["Change your profile photo"] = "Cambiar su foto del perfil";
@@ -1637,19 +1642,6 @@ App::$strings["Conversations"] = "Conversaciones";
App::$strings["No messages."] = "Sin mensajes.";
App::$strings["Delete conversation"] = "Eliminar conversación";
App::$strings["Chat Members"] = "Miembros del chat";
-App::$strings["I will attend"] = "Participaré";
-App::$strings["I will not attend"] = "No participaré";
-App::$strings["I might attend"] = "Quizá participe";
-App::$strings["I agree"] = "Estoy de acuerdo";
-App::$strings["I disagree"] = "No estoy de acuerdo";
-App::$strings["I abstain"] = "Me abstengo";
-App::$strings["Share This"] = "Compartir esto";
-App::$strings["share"] = "compartir";
-App::$strings["View %s's profile - %s"] = "Ver el perfil de %s - %s";
-App::$strings["via"] = "mediante";
-App::$strings["Attendance Options"] = "Opciones de participación o asistencia";
-App::$strings["Voting Options"] = "Opciones de votación";
-App::$strings["Pinned post"] = "Entradas ancladas";
App::$strings["__ctx:widget__ Activity"] = "Actividad";
App::$strings["Select Channel"] = "Seleccionar un canal";
App::$strings["Read-write"] = "Lectura y escritura";
@@ -1710,12 +1702,6 @@ App::$strings["Profile Fields"] = "Campos del perfil";
App::$strings["DB updates"] = "Actualizaciones de la base de datos";
App::$strings["Logs"] = "Informes";
App::$strings["Addon Features"] = "Características del addon";
-App::$strings["Direct Messages"] = "Mensajes directos";
-App::$strings["Show direct (private) messages"] = "Mostrar mensajes (privados) directos";
-App::$strings["Events"] = "Eventos";
-App::$strings["Show posts that include events"] = "Mostrar entradas que incluyan eventos";
-App::$strings["Polls"] = "Encuestas";
-App::$strings["Show posts that include polls"] = "Mostrar entradas que incluyan encuestas";
App::$strings["Show posts related to the %s privacy group"] = "Mostrar entradas relacionadas con el grupo %s";
App::$strings["Show my privacy groups"] = "Mostrar mis grupos de canales";
App::$strings["Show posts to this forum"] = "Mostrar las entradas en este foro";
@@ -1775,9 +1761,6 @@ App::$strings["New Home Activity"] = "Nueva actividad en su página principal";
App::$strings["New Home Activity Notifications"] = "Avisos de nueva actividad en su página principal";
App::$strings["View your home activity"] = "Ver la actividad de su página principal";
App::$strings["Mark all notifications seen"] = "Marcar todas las notificaciones como vistas";
-App::$strings["New Direct Messages"] = "Nuevos mensajes directos";
-App::$strings["New Direct Messages Notifications"] = "Nuevas notificaciones de mensajes directos";
-App::$strings["View your direct messages"] = "Ver sus mensajes directos";
App::$strings["New Mails"] = "Nuevos mensajes de correo";
App::$strings["New Mails Notifications"] = "Avisos de nuevos mensajes de correo";
App::$strings["View your private mails"] = "Ver sus correos privados";
@@ -1849,10 +1832,6 @@ App::$strings["Move this channel (disable all previous locations)"] = "Mover est
App::$strings["Use this channel nickname instead of the one provided"] = "Usa este alias de canal en lugar del que se proporciona";
App::$strings["Leave blank to keep your existing channel nickname. You will be randomly assigned a similar nickname if either name is already allocated on this site."] = "Dejar en blanco para mantener su alias de canal . Se le asignará aleatoriamente uno similar si cualquiera de los dos nombres ya está asignado en este sitio.";
App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Este proceso puede tardar varios minutos en completarse. Por favor envíe el formulario una sola vez y mantenga esta página abierta hasta que termine.";
-App::$strings["You must be logged in to see this page."] = "Debe haber iniciado sesión para poder ver esta página.";
-App::$strings["Update to Hubzilla 5.0 setp 2"] = "Actualizar a Hubzilla 5.0. Paso 2";
-App::$strings["To complete the update please run"] = "Para completar la actualización, ejecutar ";
-App::$strings["INFO: this command can take a very long time depending on your DB size."] = "INFO; este comando puede tardar en ejecutarse mucho tiempo dependiendo del tamaño de su base de datos.";
App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Se ha superado el límite máximo de inscripciones diarias de este sitio. Por favor, pruebe de nuevo mañana.";
App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Por favor, confirme que acepta los Términos del servicio. El registro ha fallado.";
App::$strings["Passwords do not match."] = "Las contraseñas no coinciden.";
@@ -2052,7 +2031,6 @@ App::$strings["This site is not a directory server"] = "Este sitio no es un serv
App::$strings["This directory server requires an access token"] = "El servidor de este directorio necesita un \"token\" de acceso";
App::$strings["Welcome to Hubzilla!"] = "¡Bienvenido a Hubzilla!";
App::$strings["You have got no unseen posts..."] = "No tiene ningún mensaje sin leer...";
-App::$strings["Unable to locate original post."] = "No ha sido posible encontrar la entrada original.";
App::$strings["Chatrooms App"] = "App Salas de chat";
App::$strings["Access Controlled Chatrooms"] = "Salas de chat moderadas";
App::$strings["Room not found"] = "Sala no encontrada";
@@ -2100,6 +2078,12 @@ App::$strings["Choose what you wish to do to recipient"] = "Elegir qué desea en
App::$strings["Make this post private"] = "Convertir en privado este envío";
App::$strings["Calendar entries imported."] = "Entradas de calendario importadas.";
App::$strings["No calendar entries found."] = "No se han encontrado entradas de calendario.";
+App::$strings["INVALID EVENT DISMISSED!"] = "¡EVENTO NO VÁLIDO RECHAZADO!";
+App::$strings["Summary: "] = "Resumen: ";
+App::$strings["Date: "] = "Fecha: ";
+App::$strings["Reason: "] = "Razón: ";
+App::$strings["INVALID CARD DISMISSED!"] = "¡TARJETA NO VÁLIDA RECHAZADA!";
+App::$strings["Name: "] = "Nombre: ";
App::$strings["CardDAV App"] = "App CarDav";
App::$strings["CalDAV capable addressbook"] = "Libreta de direcciones compatible con CalDav";
App::$strings["Event title"] = "Título del evento";
@@ -2125,7 +2109,6 @@ App::$strings["Instant messenger"] = "Mensajería instantánea";
App::$strings["Website"] = "Sitio web";
App::$strings["Address"] = "Dirección";
App::$strings["Note"] = "Nota";
-App::$strings["Add Contact"] = "Añadir un contacto";
App::$strings["Add Field"] = "Añadir un campo";
App::$strings["P.O. Box"] = "Buzón de correos";
App::$strings["Additional"] = "Adicional";
@@ -2138,6 +2121,7 @@ App::$strings["Default Calendar"] = "Calendario por defecto";
App::$strings["Default Addressbook"] = "Agenda de direcciones por defecto";
App::$strings["Remote privacy information not available."] = "La información privada remota no está disponible.";
App::$strings["Visible to:"] = "Visible para:";
+App::$strings["Unable to locate original post."] = "No ha sido posible encontrar la entrada original.";
App::$strings["Empty post discarded."] = "La entrada vacía ha sido desechada.";
App::$strings["Duplicate post suppressed."] = "Se ha suprimido la entrada duplicada.";
App::$strings["System error. Post not saved."] = "Error del sistema. La entrada no se ha podido salvar.";
@@ -2218,6 +2202,8 @@ App::$strings["Tag removed"] = "Etiqueta eliminada.";
App::$strings["Remove Item Tag"] = "Eliminar etiqueta del elemento.";
App::$strings["Select a tag to remove: "] = "Seleccionar una etiqueta para eliminar:";
App::$strings["Continue"] = "Continuar";
+App::$strings["Premium Channel App"] = "App Canal premium";
+App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal";
App::$strings["Premium Channel Setup"] = "Configuración del canal premium";
App::$strings["Enable premium channel connection restrictions"] = "Habilitar restricciones de conexión del canal premium";
App::$strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Por favor introduzca sus restricciones o condiciones, como recibo de paypal, normas de uso, etc.";
@@ -2286,9 +2272,6 @@ App::$strings["Only allow embeds from secure (SSL) websites and links."] = "Sól
App::$strings["Allow unfiltered embedded HTML content only from these domains"] = "Permitir contenido HTML sin filtrar sólo desde estos dominios ";
App::$strings["One site per line. By default embedded content is filtered."] = "Un sitio por línea. El contenido incorporado se filtra de forma predeterminada.";
App::$strings["Block embedded HTML from these domains"] = "Bloquear contenido con HTML incorporado desde estos dominios";
-App::$strings["Allow SVG thumbnails in file browser"] = "Permitir miniaturas SVG en el navegador de archivos";
-App::$strings["WARNING: SVG images may contain malicious code."] = "ADVERTENCIA: Las imágenes SVG pueden contener código malicioso.";
-App::$strings["Allow embedded (inline) PDF files"] = "Permitir ficheros PDF incrustados (en línea)";
App::$strings["%s account blocked/unblocked"] = array(
0 => "%s cuenta bloqueada/desbloqueada",
1 => "%s cuenta bloqueada/desbloqueada",
@@ -2394,6 +2377,8 @@ App::$strings["Poll interval"] = "Intervalo máximo de tiempo entre dos mensajes
App::$strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Retrasar el intervalo de envío en segundo plano, en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, usar el intervalo de entrega.";
App::$strings["Path to ImageMagick convert program"] = "Ruta al programa de conversión de ImageMagick";
App::$strings["If set, use this program to generate photo thumbnails for huge images ( > 4000 pixels in either dimension), otherwise memory exhaustion may occur. Example: /usr/bin/convert"] = "Si está configurado, utilice este programa para generar miniaturas de fotos para imágenes de gran tamaño ( > 4000 píxeles en cualquiera de las dos dimensiones), de lo contrario se puede agotar la memoria. Ejemplo: /usr/bin/convert";
+App::$strings["Allow SVG thumbnails in file browser"] = "Permitir miniaturas SVG en el navegador de archivos";
+App::$strings["WARNING: SVG images may contain malicious code."] = "ADVERTENCIA: Las imágenes SVG pueden contener código malicioso.";
App::$strings["Maximum Load Average"] = "Carga media máxima";
App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carga máxima del sistema antes de que los procesos de entrega y envío se hayan retardado - por defecto, 50.";
App::$strings["Expiration period in days for imported (grid/network) content"] = "Caducidad del contenido importado de otros sitios (en días)";
@@ -2606,8 +2591,6 @@ App::$strings["posted an event"] = "publicó un evento";
App::$strings["shared a file with you"] = "compartió un archivo con usted";
App::$strings["Private forum"] = "Foro privado";
App::$strings["Public forum"] = "Foro público";
-App::$strings["Entry censored"] = "Entrada censurada";
-App::$strings["Entry uncensored"] = "Entrada sin censurar";
App::$strings["No service class restrictions found."] = "No se han encontrado restricciones sobre esta clase de servicio.";
App::$strings["Mood App"] = "App Estados de ánimo";
App::$strings["Set your current mood and tell your friends"] = "Describir su estado de ánimo para comunicárselo a sus amigos";
@@ -2687,9 +2670,6 @@ App::$strings["A verification token was sent to your email address [%s]. Enter t
App::$strings["Resend Email"] = "Reenvío de correo electrónico";
App::$strings["Validation token"] = "Token de validación";
App::$strings["Item not available."] = "Elemento no disponible";
-App::$strings["Poll not found."] = "Encuesta no encontrada.";
-App::$strings["Invalid response."] = "respuesta no válida.";
-App::$strings["Response submitted. Updates may not appear instantly."] = "Respuesta enviada. Las actualizaciones pueden no aparecer al instante.";
App::$strings["Image uploaded but image cropping failed."] = "Imagen actualizada, pero el recorte de la imagen ha fallado. ";
App::$strings["Image resize failed."] = "El ajuste del tamaño de la imagen ha fallado.";
App::$strings["Image upload failed."] = "La carga de la imagen ha fallado.";
@@ -2899,6 +2879,7 @@ App::$strings["Send email invitations to join this network"] = "Enviar invitacio
App::$strings["You have no more invitations available"] = "No tiene más invitaciones disponibles";
App::$strings["Send invitations"] = "Enviar invitaciones";
App::$strings["Enter email addresses, one per line:"] = "Introduzca las direcciones de correo electrónico, una por línea:";
+App::$strings["Your message:"] = "Su mensaje:";
App::$strings["Please join my community on \$Projectname."] = "Por favor, únase a mi comunidad en \$Projectname.";
App::$strings["You will need to supply this invitation code:"] = "Tendrá que suministrar este código de invitación:";
App::$strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Regístrese en cualquier sitio de \$Projectname (están todos interconectados)";
@@ -2909,6 +2890,29 @@ App::$strings["Notes App"] = "App Notas";
App::$strings["A simple notes app with a widget (note: notes are not encrypted)"] = "Una simple aplicación de notas con un widget (aviso: las notas no están encriptadas)";
App::$strings["Xchan Lookup"] = "Búsqueda de canales";
App::$strings["Lookup xchan beginning with (or webbie): "] = "Buscar un canal (o un \"webbie\") que comience por:";
+App::$strings["Unable to lookup recipient."] = "No se puede asociar a un destinatario.";
+App::$strings["Unable to communicate with requested channel."] = "No se puede establecer la comunicación con el canal solicitado.";
+App::$strings["Cannot verify requested channel."] = "No se puede verificar el canal solicitado.";
+App::$strings["Selected channel has private message restrictions. Send failed."] = "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló.";
+App::$strings["Messages"] = "Mensajes";
+App::$strings["message"] = "mensaje";
+App::$strings["Message recalled."] = "Mensaje revocado.";
+App::$strings["Conversation removed."] = "Conversación eliminada.";
+App::$strings["Expires YYYY-MM-DD HH:MM"] = "Caduca YYYY-MM-DD HH:MM";
+App::$strings["Requested channel is not in this network"] = "El canal solicitado no existe en esta red";
+App::$strings["Send Private Message"] = "Enviar un mensaje privado";
+App::$strings["To:"] = "Para:";
+App::$strings["Subject:"] = "Asunto:";
+App::$strings["Attach file"] = "Adjuntar fichero";
+App::$strings["Send"] = "Enviar";
+App::$strings["Delete message"] = "Borrar mensaje";
+App::$strings["Delivery report"] = "Informe de transmisión";
+App::$strings["Recall message"] = "Revocar el mensaje";
+App::$strings["Message has been recalled."] = "El mensaje ha sido revocado.";
+App::$strings["Delete Conversation"] = "Eliminar conversación";
+App::$strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Comunicación segura no disponible. Pero <strong>puede</strong> responder desde la página del perfil del remitente.";
+App::$strings["Send Reply"] = "Responder";
+App::$strings["Your message for %s (%s):"] = "Su mensaje para %s (%s):";
App::$strings["Affinity Tool settings updated."] = "Actualización de los ajustes de Affinity Tool.";
App::$strings["This app presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship (affinity) with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream."] = "Esta aplicación presenta un control deslizante en su editor de conexión y también en su página de red. El control deslizante representa su grado de amistad (afinidad) con cada conexión. Le permite acercar o alejar y mostrar conversaciones sólo de sus amigos más cercanos o de todo el mundo en su stream.";
App::$strings["Affinity Tool App"] = "App Affinity Tool ";
@@ -2995,7 +2999,6 @@ App::$strings["Show visual notifications including:"] = "Mostrar notificaciones
App::$strings["Unseen stream activity"] = "Actividad del stream no vista";
App::$strings["Unseen channel activity"] = "Actividad no vista en el canal";
App::$strings["Unseen private messages"] = "Mensajes privados no leídos";
-App::$strings["Recommended"] = "Recomendado";
App::$strings["Upcoming events"] = "Próximos eventos";
App::$strings["Events today"] = "Eventos de hoy";
App::$strings["Upcoming birthdays"] = "Próximos cumpleaños";
@@ -3056,7 +3059,7 @@ App::$strings["Enable user zoom on mobile devices"] = "Habilitar zoom de usuario
App::$strings["Update browser every xx seconds"] = "Actualizar navegador cada xx segundos";
App::$strings["Minimum of 10 seconds, no maximum"] = "Mínimo de 10 segundos, sin máximo";
App::$strings["Maximum number of conversations to load at any time:"] = "Máximo número de conversaciones a cargar en cualquier momento:";
-App::$strings["Maximum of 30 items"] = "Máximo de 30 elementos";
+App::$strings["Maximum of 100 items"] = "Máximo de 100 elementos";
App::$strings["Show emoticons (smilies) as images"] = "Mostrar emoticonos (smilies) como imágenes";
App::$strings["Provide channel menu in navigation bar"] = "Proporcionar un menú de canales en la barra de navegación";
App::$strings["Default: channel menu located in app menu"] = "Predeterminado: menú de canales ubicado en el menú de aplicaciones";
@@ -3178,6 +3181,7 @@ App::$strings["Error retrieving page content"] = "Error al recuperar el contenid
App::$strings["New page"] = "Nueva página";
App::$strings["Revision Comparison"] = "Comparación de revisiones";
App::$strings["Short description of your changes (optional)"] = "Breve descripción de sus cambios (opcional)";
+App::$strings["Source"] = "Fuente";
App::$strings["New page name"] = "Nombre de la nueva página";
App::$strings["Embed image from photo albums"] = "Incluir una imagen de los álbumes de fotos";
App::$strings["History"] = "Historial";
@@ -3300,22 +3304,15 @@ App::$strings["Save Bookmark"] = "Guardar marcador";
App::$strings["URL of bookmark"] = "Dirección del marcador";
App::$strings["Or enter new bookmark folder name"] = "O introduzca un nuevo nombre para la carpeta de marcadores";
App::$strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo.";
-App::$strings["A deleted list with this name was revived. Existing item permissions <strong>may</strong> apply to this list and any future members. If this is not what you intended, please create another list with a different name."] = "Una lista eliminada con este nombre ha sido reactivada. Los permisos <strong>de los elementos existentes pueden </strong>aplicarse a esta lista y a cualquier miembro futuro. Si esto no es lo que pretendía, por favor, cree otra lista con un nombre diferente.";
-App::$strings["Add new connections to this access list"] = "Añadir nuevas conexiones a esta lista de acceso";
-App::$strings["Lists"] = "Listas";
-App::$strings["Edit list"] = "Editar lista";
-App::$strings["Create new list"] = "Crear una nueva lista";
-App::$strings["Channels not in any access list"] = "No hay canales en ninguna lista de acceso";
App::$strings["__ctx:permcat__ default"] = "por defecto";
App::$strings["__ctx:permcat__ follower"] = "seguidor";
App::$strings["__ctx:permcat__ contributor"] = "contribuidor";
App::$strings["__ctx:permcat__ publisher"] = "editor";
App::$strings["Likes %1\$s's %2\$s"] = "Gusta de %2\$sde %1\$s";
App::$strings["Doesn't like %1\$s's %2\$s"] = "No le gusta %2\$sde %1\$s";
-App::$strings["Will attend %s's event"] = "Asistirá al evento de %s";
-App::$strings["Will not attend %s's event"] = "No asistirá al evento de %s";
-App::$strings["May attend %s's event"] = "Puede asistir al evento de %s";
-App::$strings["May not attend %s's event"] = "Puede no asistir al evento de %s";
+App::$strings["Will attend %1\$s's %2\$s"] = "Asistirá %2\$sde %1\$s";
+App::$strings["Will not attend %1\$s's %2\$s"] = "No asistirá %2\$sde %1\$s";
+App::$strings["May attend %1\$s's %2\$s"] = "Puede asistir %2\$sde %1\$s";
App::$strings["\$Projectname Notification"] = "Notificación de \$Projectname";
App::$strings["Thank You,"] = "Gracias,";
App::$strings["This email was sent by %1\$s at %2\$s."] = "Este email ha sido enviado por %1\$s a %2\$s.";
@@ -3330,7 +3327,6 @@ App::$strings["Please visit %s to view and/or reply to your private messages."]
App::$strings["commented on"] = "ha comentado sobre ";
App::$strings["liked"] = "ha gustado de ";
App::$strings["disliked"] = "no ha gustado de ";
-App::$strings["voted on"] = "votado en ";
App::$strings["%1\$s %2\$s [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s%2\$s [zrl=%3\$s ]un %4\$s[/zrl]";
App::$strings["%1\$s %2\$s [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s %2\$s[zrl=%3\$s]%5\$s de %4\$s[/zrl]";
App::$strings["%1\$s %2\$s [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s %2\$s [zrl=%3\$s]su %4\$s[/zrl]";
@@ -3366,14 +3362,11 @@ App::$strings["Name:"] = "Nombre:";
App::$strings["Photo:"] = "Foto:";
App::$strings["Please visit %s to approve or reject the suggestion."] = "Por favor, visite %s para aprobar o rechazar la sugerencia.";
App::$strings["[\$Projectname:Notify]"] = "[\$Projectname:Aviso]";
-App::$strings["created a new poll"] = "se ha creado una nueva encuesta";
App::$strings["created a new post"] = "ha creado una nueva entrada";
-App::$strings["voted on %s's poll"] = "votado en la encuesta de %s";
App::$strings["commented on %s's post"] = "ha comentado la entrada de %s";
App::$strings["repeated %s's post"] = "repetida la entrada de %s";
App::$strings["edited a post dated %s"] = "ha editado una entrada %s";
App::$strings["edited a comment dated %s"] = "ha editado un comentario %s";
-App::$strings["error saving data"] = "error guardando los datos";
App::$strings["Missing room name"] = "Sala de chat sin nombre";
App::$strings["Duplicate room name"] = "Nombre de sala duplicado.";
App::$strings["Invalid room specifier."] = "Especificador de sala no válido.";
@@ -3402,6 +3395,7 @@ App::$strings["Guest Access"] = "Acceso para invitados";
App::$strings["OAuth Apps Manager"] = "Administrador de apps OAuth";
App::$strings["OAuth2 Apps Manager"] = "Administrador de apps OAuth2";
App::$strings["PDL Editor"] = "Editor PDL";
+App::$strings["Premium Channel"] = "Canal premium";
App::$strings["My Chatrooms"] = "Mis salas de chat";
App::$strings["Channel Export"] = "Exportar canal";
App::$strings["Purchase"] = "Comprar";
@@ -3431,19 +3425,32 @@ App::$strings["Untitled"] = "Sin título";
App::$strings["Wiki resource_id required for git commit"] = "Se necesita Wiki resource_id para el git commit";
App::$strings["Privacy conflict. Discretion advised."] = "Conflicto de privacidad. Se aconseja discreción.";
App::$strings["Admin Delete"] = "Eliminar admin";
+App::$strings["I will attend"] = "Participaré";
+App::$strings["I will not attend"] = "No participaré";
+App::$strings["I might attend"] = "Quizá participe";
+App::$strings["I agree"] = "Estoy de acuerdo";
+App::$strings["I disagree"] = "No estoy de acuerdo";
+App::$strings["I abstain"] = "Me abstengo";
+App::$strings["Add Tag"] = "Añadir etiqueta";
App::$strings["Reply on this comment"] = "Responder a este comentario";
App::$strings["reply"] = "responder";
App::$strings["Reply to"] = "Responder a ";
+App::$strings["Share This"] = "Compartir esto";
+App::$strings["share"] = "compartir";
App::$strings["Delivery Report"] = "Informe de transmisión";
App::$strings["%d comment"] = array(
0 => "%d comentario",
1 => "%d comentarios",
);
-App::$strings["%d unseen"] = "%dno visto/a vistos/as";
+App::$strings["View %s's profile - %s"] = "Ver el perfil de %s - %s";
App::$strings["to"] = "a";
+App::$strings["via"] = "mediante";
App::$strings["Wall-to-Wall"] = "De página del perfil a página del perfil (de \"muro\" a \"muro\")";
App::$strings["via Wall-To-Wall:"] = "Mediante el procedimiento página del perfil a página del perfil (de \"muro\" a \"muro\")";
App::$strings["Attend"] = "Participar o asistir";
+App::$strings["Attendance Options"] = "Opciones de participación o asistencia";
+App::$strings["Vote"] = "Votar";
+App::$strings["Voting Options"] = "Opciones de votación";
App::$strings["Go to previous comment"] = "Ir al comentario anterior";
App::$strings["Add to Calendar"] = "Añadir al calendario";
App::$strings["Image"] = "Imagen";
diff --git a/view/js/main.js b/view/js/main.js
index 7df705603..cd95a8a0b 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -1152,7 +1152,10 @@ function dolike(ident, verb) {
if(typeof conv_mode == typeof undefined)
conv_mode = '';
- $.get('like/' + ident.toString() + '?verb=' + verb + '&conv_mode=' + conv_mode, function (data) {
+ if(typeof page_mode == typeof undefined)
+ page_mode = '';
+
+ $.get('like/' + ident.toString() + '?verb=' + verb + '&conv_mode=' + conv_mode + '&page_mode=' + page_mode, function (data) {
if(data.success) {
// this is a bit tricky since the top level thread wrapper wraps the whole thread
if($('#thread-wrapper-' + data.orig_id).hasClass('toplevel_item')) {
@@ -1997,3 +2000,13 @@ function sse_fallback() {
sse_handleNotifications(obj, false, false);
});
}
+
+function makeid(length) {
+ var result = '';
+ var characters = 'abcdef0123456789';
+ var charactersLength = characters.length;
+ for ( var i = 0; i < length; i++ ) {
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
+ }
+ return result;
+}
diff --git a/view/js/mod_cloud.js b/view/js/mod_cloud.js
index aa9d308eb..5ca1f52a9 100644
--- a/view/js/mod_cloud.js
+++ b/view/js/mod_cloud.js
@@ -68,7 +68,7 @@ $(document).ready(function () {
close_and_deactivate_all_panels();
$('body').css('cursor', 'wait');
- $.jGrowl('Please stand by while your download is being prepared...', { sticky: false, theme: 'info', life: 10000 });
+ $.jGrowl(aStr.download_info, { sticky: false, theme: 'info', life: 10000 });
let data = [
{name: 'attach_path', value: window.location.pathname},
@@ -296,11 +296,11 @@ $(document).ready(function () {
close_and_deactivate_all_panels();
$('body').css('cursor', 'wait');
- $.jGrowl('Please stand by while your download is being prepared...', { sticky: false, theme: 'info', life: 10000 });
+ $.jGrowl(aStr.download_info, { sticky: false, theme: 'info', life: 10000 });
post_data.push(
{name: 'attach_path', value: window.location.pathname},
- {name: 'channel_id', value: channelId},
+ {name: 'channel_id', value: channelId}
);
$.post('attach', post_data, function (data) {
diff --git a/view/tpl/build_query.tpl b/view/tpl/build_query.tpl
index 83e756367..af70a9595 100755
--- a/view/tpl/build_query.tpl
+++ b/view/tpl/build_query.tpl
@@ -1,4 +1,4 @@
-<script>
+<script>
var bParam_cmd = "{{$baseurl}}/update/{{$pgtype}}";
@@ -6,6 +6,10 @@
var conv_mode = '{{$conv_mode}}';
{{/if}}
+ {{if $page_mode}}
+ var page_mode = '{{$page_mode}}';
+ {{/if}}
+
var bParam_uid = {{$uid}};
var bParam_gid = {{$gid}};
var bParam_cid = {{$cid}};
diff --git a/view/tpl/cloud_actionspanel.tpl b/view/tpl/cloud_actionspanel.tpl
index 039d19fac..8cab175ff 100644
--- a/view/tpl/cloud_actionspanel.tpl
+++ b/view/tpl/cloud_actionspanel.tpl
@@ -31,7 +31,7 @@
<input type="hidden" name="return_url" value="{{$return_url}}" />
{{include file="field_checkbox.tpl" field=$notify}}
<div class="cloud-index attach-drop attach-drop-zone text-center p-4 mb-3" data-folder="{{$folder}}">
- <span class="text-muted">You can select files via the upload button or drop them right here or into an existing folder.</span>
+ <span class="text-muted">{{$drop_area_label}}</span>
</div>
<div class="pull-right btn-group">
<div class="btn-group">
diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl
index 5886391bb..ac8304b96 100644
--- a/view/tpl/cloud_directory.tpl
+++ b/view/tpl/cloud_directory.tpl
@@ -1,46 +1,42 @@
-<div class="section-content-wrapper-np">
+<div class="{{if $tiles}}section-content-wrapper{{else}}section-content-wrapper-np{{/if}}">
{{if $tiles}}
<table id="cloud-index">
<tr id="new-upload-progress-bar-1"></tr> {{* this is needed to append the upload files in the right order *}}
</table>
-
- {{if $parentpath}}
- <div class="cloud-container" >
- <div class="cloud-icon tiles">
- <a href="{{$parentpath}}">
- <div class="cloud-icon-container">
- <i class="fa fa-fw fa-level-up" ></i>
- </div>
- </a>
- </div>
- <div class="cloud-title">
- <a href="{{$parentpath}}">..</a>
- </div>
- </div>
- {{/if}}
-
- {{foreach $entries as $item}}
- <div class="cloud-container">
- <div class="cloud-icon tiles"><a href="{{$item.rel_path}}">
- {{if $item.photo_icon}}
- <img src="{{$item.photo_icon}}" title="{{$item.type}}" >
- {{else}}
- <div class="cloud-icon-container">
- <i class="fa fa-fw {{$item.icon_from_type}}" title="{{$item.type}}"></i>
+ <div class="row row-cols-2 row-cols-md-4">
+ {{if $parentpath}}
+ <div class="col mb-4">
+ <div class="card h-100">
+ <a href="{{$parentpath}}" class="text-decoration-none">
+ <div class="d-flex align-items-center justify-content-center m-1" style="height: 4.5rem;">
+ <i class="fa fa-fw fa-level-up fa-5x" style="font-size: 4rem"></i>
+ </div>
+ <div class="card-footer text-center">
+ <small class="text-muted text-truncate">..</small>
+ </div>
+ </a>
+ </div>
</div>
{{/if}}
+ {{foreach $entries as $item}}
+ <div class="col mb-4">
+ <div class="card h-100">
+ <a href="{{$item.rel_path}}" title="{{$item.name}}" class="text-decoration-none">
+ <div class="d-flex align-items-center justify-content-center m-1" style="height: 4.5rem;">
+ {{if $item.photo_icon}}
+ <img src="{{$item.photo_icon}}" class="rounded" alt="{{$item.photo_icon}}" title="{{$item.size_formatted}}" style="max-height: 4rem; width: auto; max-width: 100%;">
+ {{else}}
+ <i class="fa fa-fw {{$item.icon_from_type}}" title="{{$item.size_formatted}}" style="font-size: 4rem"></i>
+ {{/if}}
+ </div>
+ <div class="card-footer text-truncate text-center">
+ <small class="text-muted">{{$item.name}}</small>
+ </div>
+ </a>
+ </div>
</div>
- <div class="cloud-title">
- <a href="{{$item.rel_path}}">
- {{$item.name}}
- </a>
- </div>
- {{if $item.is_owner}}
- {{* add file tools here*}}
- {{/if}}
+ {{/foreach}}
</div>
- {{/foreach}}
- <div class="clear"></div>
{{else}}
<table id="cloud-index">
<tr>
@@ -67,37 +63,37 @@
<tr id="cloud-multi-actions">
<td colspan="2">
<div class="form-check form-check-inline">
- <input class="form-check-input" type="checkbox" id="cloud-multi-tool-select-all" value="" title="Select all">
+ <input class="form-check-input" type="checkbox" id="cloud-multi-tool-select-all" value="" title="{{$select_all_label}}">
</div>
</td>
<td colspan="3">
<div class="form-check form-check-inline">
- <label class="form-check-label" for="cloud-multi-tool-select-all">Select all</label>
+ <label class="form-check-label" for="cloud-multi-tool-select-all">{{$select_all_label}}</label>
</div>
</td>
<td colspan="3">
{{if $is_owner}}
<div class="dropdown">
<button class="btn btn-warning btn-sm" id="multi-dropdown-button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-fw fa-ellipsis-v d-table-cell"></i><span class="d-none d-md-table-cell">Bulk Actions</span>
+ <i class="fa fa-fw fa-ellipsis-v d-table-cell"></i><span class="d-none d-md-table-cell">{{$bulk_actions_label}}</span>
</button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown-button">
{{if $is_owner}}
- <a id="cloud-multi-tool-perms-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-lock"></i> Adjust permissions</a>
+ <a id="cloud-multi-tool-perms-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-lock"></i> {{$adjust_permissions_label}}</a>
{{/if}}
- <a id="cloud-multi-tool-move-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-copy"></i> Move or copy</a>
- <a id="cloud-multi-tool-categories-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-asterisk"></i> Categories</a>
- <a id="cloud-multi-tool-download-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-cloud-download"></i> Download</a>
- <a id="cloud-multi-tool-delete-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-trash-o"></i> {{$delete}}</a>
+ <a id="cloud-multi-tool-move-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-copy"></i> {{$move_copy_label}}</a>
+ <a id="cloud-multi-tool-categories-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-asterisk"></i> {{$categories_label}}</a>
+ <a id="cloud-multi-tool-download-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
+ <a id="cloud-multi-tool-delete-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-trash-o"></i> {{$delete_label}}</a>
</div>
</div>
{{else if $is_admin}}
<div class="dropdown">
<button class="btn btn-warning btn-sm" id="multi-dropdown-button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <i class="fa fa-fw fa-ellipsis-v d-table-cell"></i><span class="d-none d-md-table-cell">Bulk Actions</span>
+ <i class="fa fa-fw fa-ellipsis-v d-table-cell"></i><span class="d-none d-md-table-cell">{{$bulk_actions_label}}</span>
</button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown-button">
- <a id="cloud-multi-tool-delete-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-trash-o"></i> {{$admin_delete}}</a>
+ <a id="cloud-multi-tool-delete-btn" class="dropdown-item" href="#"><i class="fa fa-fw fa-trash-o"></i> {{$admin_delete_label}}</a>
</div>
</div>
{{/if}}
@@ -122,7 +118,7 @@
{{/if}}
<div id="attach-multi-submit" class="form-group">
<button id="cloud-multi-tool-cancel-btn" class="btn btn-outline-secondary btn-sm cloud-multi-tool-cancel-btn" type="button">
- Cancel
+ {{$cancel_label}}
</button>
<div id="attach-multi-edit-perms" class="btn-group float-right">
{{if $is_owner}}
@@ -131,7 +127,7 @@
</button>
{{/if}}
<button id="multi-dbtn-submit" class="btn btn-primary btn-sm" type="submit" name="submit">
- {{$edit}}
+ {{$submit_label}}
</button>
</div>
</div>
@@ -160,28 +156,28 @@
{{/if}}
</td>
<td class="cloud-index-tool">
- {{if ($item.is_owner || $item.is_creator) && $item.attach_id}}
+ {{if ($is_owner || $item.is_creator) && $item.attach_id}}
<div class="dropdown">
<button class="btn btn-link btn-sm" id="dropdown-button-{{$item.attach_id}}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-fw fa-ellipsis-v"></i>
</button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown-button-{{$item.attach_id}}">
- <a id="cloud-tool-info-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-info-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-info"></i> Info</a>
- {{if $item.is_owner}}
- <a id="cloud-tool-perms-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-perms-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-{{$item.lockstate}}"></i> Adjust permissions</a>
- {{/if}}
- <a id="cloud-tool-rename-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-rename-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-pencil"></i> Rename</a>
- <a id="cloud-tool-move-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-move-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-copy"></i> Move or copy</a>
- <a id="cloud-tool-categories-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-categories-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-asterisk"></i> Categories</a>
- {{if $item.is_owner}}
- <a id="cloud-tool-share-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-share-btn" href="/rpost?attachment=[attachment]{{$item.resource}},{{$item.revision}}[/attachment]&acl[allow_cid]={{$item.raw_allow_cid}}&acl[allow_gid]={{$item.raw_allow_gid}}&acl[deny_cid]={{$item.raw_deny_cid}}&acl[deny_gid]={{$item.raw_deny_gid}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-share-square-o"></i> Post</a>
+ <a id="cloud-tool-info-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-info-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-info"></i> {{$info_label}}</a>
+ {{if $is_owner}}
+ <a id="cloud-tool-perms-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-perms-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-{{$item.lockstate}}"></i> {{$adjust_permissions_label}}</a>
{{/if}}
+ <a id="cloud-tool-rename-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-rename-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-pencil"></i> {{$rename_label}}</a>
+ <a id="cloud-tool-move-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-move-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-copy"></i> {{$move_copy_label}}</a>
+ <a id="cloud-tool-categories-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-categories-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-asterisk"></i> {{$categories_label}}</a>
{{if $item.collection}}
- <a id="cloud-tool-dir-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-dir-download-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> Download</a>
+ <a id="cloud-tool-dir-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-dir-download-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
{{else}}
- <a id="cloud-tool-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-download-btn" href="/attach/{{$item.resource}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> Download</a>
+ {{if $is_owner}}
+ <a id="cloud-tool-share-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-share-btn" href="/rpost?attachment=[attachment]{{$item.resource}},{{$item.revision}}[/attachment]&acl[allow_cid]={{$item.raw_allow_cid}}&acl[allow_gid]={{$item.raw_allow_gid}}&acl[deny_cid]={{$item.raw_deny_cid}}&acl[deny_gid]={{$item.raw_deny_gid}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-share-square-o"></i> {{$post_label}}</a>
+ {{/if}}
+ <a id="cloud-tool-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-download-btn" href="/attach/{{$item.resource}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
{{/if}}
- <a id="cloud-tool-delete-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-delete-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-trash-o"></i> {{$delete}}</a>
+ <a id="cloud-tool-delete-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-delete-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-trash-o"></i> {{$delete_label}}</a>
</div>
</div>
{{else}}
@@ -192,12 +188,12 @@
</button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdown-button-{{$item.attach_id}}">
{{if $item.collection}}
- <a id="cloud-tool-dir-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-dir-download-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> Download</a>
+ <a id="cloud-tool-dir-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-dir-download-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
{{else}}
- <a id="cloud-tool-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-download-btn" href="/attach/{{$item.resource}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> Download</a>
+ <a id="cloud-tool-download-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-download-btn" href="/attach/{{$item.resource}}" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-cloud-download"></i> {{$download_label}}</a>
{{/if}}
{{if $is_admin}}
- <a id="cloud-tool-delete-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-delete-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-trash-o"></i> {{$admin_delete}}</a>
+ <a id="cloud-tool-delete-btn-{{$item.attach_id}}" class="dropdown-item cloud-tool-delete-btn" href="#" data-id="{{$item.attach_id}}"><i class="fa fa-fw fa-trash-o"></i> {{$admin_delete_label}}</a>
{{/if}}
</div>
</div>
@@ -219,23 +215,23 @@
<div id="cloud-tool-info-{{$item.attach_id}}" class="cloud-tool">
{{if ! $item.collection}}
<div class="form-group">
- <label for="attach-code-input-{{$item.attach_id}}">Attachment BBcode</label>
+ <label for="attach-code-input-{{$item.attach_id}}">{{$attach_bbcode_label}}</label>
<input type="text" class="form-control" id="attach-code-input-{{$item.attach_id}}" name="attach-code-input-{{$item.attach_id}}" value="{{$item.attach_bbcode}}" onclick="this.select();" />
</div>
{{if $item.embed_bbcode}}
<div class="form-group">
- <label for="embed-code-input-{{$item.attach_id}}">Embed BBcode</label>
+ <label for="embed-code-input-{{$item.attach_id}}">{{$embed_bbcode_label}}</label>
<input type="text" class="form-control" id="embed-code-input-{{$item.attach_id}}" name="embed-code-input-{{$item.attach_id}}" value="{{$item.embed_bbcode}}" onclick="this.select();" />
</div>
{{/if}}
{{/if}}
<div class="form-group">
- <label for="link-code-input-{{$item.attach_id}}">Link BBcode</label>
+ <label for="link-code-input-{{$item.attach_id}}">{{$link_bbcode_label}}</label>
<input type="text" class="form-control" id="link-code-input-{{$item.attach_id}}" name="link-code-input-{{$item.attach_id}}" value="{{$item.link_bbcode}}" onclick="this.select();" />
</div>
<div class="form-group">
<button id="cloud-tool-close-btn-{{$item.attach_id}}" class="btn btn-outline-secondary btn-sm cloud-tool-cancel-btn" type="button" data-id="{{$item.attach_id}}">
- Close
+ {{$close_label}}
</button>
</div>
</div>
@@ -247,22 +243,22 @@
{{include file="field_input.tpl" field=$item.categories}}
</div>
<div id="cloud-tool-submit-{{$item.attach_id}}" class="cloud-tool">
- {{if $item.is_owner}}
+ {{if $is_owner}}
{{if !$item.collection}}{{include file="field_checkbox.tpl" field=$item.notify}}{{/if}}
{{if $item.collection}}{{include file="field_checkbox.tpl" field=$item.recurse}}{{/if}}
{{/if}}
<div id="attach-submit-{{$item.attach_id}}" class="form-group">
<button id="cloud-tool-cancel-btn-{{$item.attach_id}}" class="btn btn-outline-secondary btn-sm cloud-tool-cancel-btn" type="button" data-id="{{$item.attach_id}}">
- Cancel
+ {{$cancel_label}}
</button>
<div id="attach-edit-perms-{{$item.attach_id}}" class="btn-group float-right">
- {{if $item.is_owner}}
+ {{if $is_owner}}
<button id="dbtn-acl-{{$item.attach_id}}" class="btn btn-outline-secondary btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" type="button">
<i id="jot-perms-icon-{{$item.attach_id}}" class="fa fa-{{$item.lockstate}} jot-icons jot-perms-icon"></i>
</button>
{{/if}}
<button id="dbtn-submit-{{$item.attach_id}}" class="btn btn-primary btn-sm" type="submit" name="submit">
- {{$edit}}
+ {{$submit_label}}
</button>
</div>
</div>
diff --git a/view/tpl/cloud_header.tpl b/view/tpl/cloud_header.tpl
index 642fb1866..285363a12 100644
--- a/view/tpl/cloud_header.tpl
+++ b/view/tpl/cloud_header.tpl
@@ -1,6 +1,6 @@
<div class="section-title-wrapper">
<div class="pull-right">
- <a href="cloud_tiles/{{$cpath}}" class="btn btn-sm btn-outline-secondary"><i class="fa fa-fw {{if $tiles}}fa-list-ul{{else}}fa-table{{/if}}"></i></a>
+ <a href="cloud_tiles/{{$cpath}}" class="btn btn-sm btn-outline-secondary"><i class="fa fa-fw {{if $tiles}}fa-th-list{{else}}fa-th-large{{/if}}"></i></a>
{{if $actionspanel}}
{{if $is_owner}}
<a href="/sharedwithme" class="btn btn-sm btn-outline-secondary"><i class="fa fa-cloud-download"></i>&nbsp;{{$shared}}</a>
diff --git a/view/tpl/js_strings.tpl b/view/tpl/js_strings.tpl
index 58426e20c..291d78fb2 100755
--- a/view/tpl/js_strings.tpl
+++ b/view/tpl/js_strings.tpl
@@ -66,8 +66,13 @@
'month' : "{{$month}}",
'week' : "{{$week}}",
'day' : "{{$day}}",
- 'allday' : "{{$allday}}"
+ 'allday' : "{{$allday}}",
+
+ // mod cloud
+
+ 'download_info' : "{{$download_info}}"
+
};
</script>
-
+