aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md10
-rwxr-xr-xboot.php4
-rw-r--r--doc/bugs.bb45
-rw-r--r--doc/dav_dolphin.bb4
-rw-r--r--doc/dav_mount.bb8
-rw-r--r--doc/dav_nautilus.bb4
-rw-r--r--doc/dav_nemo.bb10
-rw-r--r--doc/dav_windows.bb6
-rw-r--r--doc/members.bb1
-rw-r--r--doc/to_do_code.bb4
-rw-r--r--images/hubzilla_house_arrows.pngbin0 -> 22076 bytes
-rw-r--r--include/Import/import_diaspora.php5
-rw-r--r--include/api.php49
-rw-r--r--include/attach.php44
-rw-r--r--include/chat.php2
-rw-r--r--include/conversation.php1
-rw-r--r--include/event.php16
-rw-r--r--include/identity.php60
-rw-r--r--include/import.php430
-rwxr-xr-xinclude/items.php38
-rw-r--r--include/menu.php14
-rw-r--r--include/message.php1
-rw-r--r--include/network.php2
-rw-r--r--include/photos.php7
-rw-r--r--include/security.php4
-rw-r--r--include/widgets.php65
-rw-r--r--include/zot.php41
-rw-r--r--install/update.php28
-rw-r--r--mod/admin.php42
-rw-r--r--mod/chat.php4
-rw-r--r--mod/editblock.php1
-rw-r--r--mod/editlayout.php1
-rw-r--r--mod/editpost.php1
-rw-r--r--mod/editwebpage.php1
-rwxr-xr-xmod/events.php23
-rw-r--r--mod/import.php69
-rw-r--r--mod/import_items.php49
-rw-r--r--mod/item.php38
-rwxr-xr-xmod/like.php31
-rw-r--r--mod/menu.php8
-rw-r--r--mod/mitem.php4
-rw-r--r--mod/network.php19
-rw-r--r--mod/photos.php2
-rw-r--r--mod/profile_photo.php37
-rw-r--r--mod/public.php8
-rw-r--r--mod/rpost.php15
-rw-r--r--mod/zfinger.php2
-rw-r--r--version.inc2
-rw-r--r--view/es/messages.po888
-rw-r--r--view/es/strings.php38
-rw-r--r--view/js/mod_rpost.js1
-rw-r--r--view/pdl/mod_admin.pdl3
-rw-r--r--view/theme/redbasic/css/style.css31
-rw-r--r--view/theme/redbasic/php/style.php10
-rw-r--r--view/theme/redbasic/schema/boxy.css4
-rw-r--r--view/theme/redbasic/schema/boxy.php2
-rw-r--r--view/theme/redbasic/schema/dark.css6
-rw-r--r--view/theme/redbasic/schema/focus.css22
-rw-r--r--view/theme/redbasic/schema/focus.php63
-rw-r--r--view/theme/redbasic/schema/simple_black_on_white.css6
-rw-r--r--view/theme/redbasic/schema/simple_green_on_black.css6
-rw-r--r--view/theme/redbasic/schema/simple_white_on_black.css10
-rwxr-xr-xview/tpl/jot-header.tpl3
-rw-r--r--view/tpl/uexport.tpl15
64 files changed, 1535 insertions, 833 deletions
diff --git a/README.md b/README.md
index ac62f721a..9de6393b1 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
-Hubzilla
-========
+Hubzilla - Community Server
+===========================
-###Websites. Redefined.
+Websites. Redefined.
+--------------------
-
-![Hubzilla](images/ghash-32.png)
+![Hubzilla](images/hubzilla_house_arrows.png)
**What are Hubs?**
diff --git a/boot.php b/boot.php
index e7ed7dcee..bc8baf818 100755
--- a/boot.php
+++ b/boot.php
@@ -50,7 +50,7 @@ define ( 'PLATFORM_NAME', 'hubzilla' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'H');
define ( 'ZOT_REVISION', 1 );
-define ( 'DB_UPDATE_VERSION', 1151 );
+define ( 'DB_UPDATE_VERSION', 1152 );
/**
* @brief Constant with a HTML line break.
@@ -82,7 +82,7 @@ $DIRECTORY_FALLBACK_SERVERS = array(
'https://zotid.net',
'https://red.zottel.red',
'https://gravizot.de',
- 'https://my.federated.social',
+ 'https://my.federated.social'
);
diff --git a/doc/bugs.bb b/doc/bugs.bb
new file mode 100644
index 000000000..1a27e66ba
--- /dev/null
+++ b/doc/bugs.bb
@@ -0,0 +1,45 @@
+[h2]Bugs, Issues, and things that go bump in the night...[/h2]
+[h3]Something went wrong! Who is charge of fixing it?[/h3]
+
+[b]Hubzilla Community Server[/b]
+
+Hubzilla Community Server is open source software which is maintained by "the community" - essentially unpaid volunteers.
+
+[b]Hubzilla Enterprise Server[/b]
+
+Hubzilla Enterprise Server is commercial software with a variety of support plans depending on the specific license terms.
+
+
+The first thing you need to do is talk to your hub administrator - the person who runs and manages your site. They are in the unique position of having access to the internal software and database and [b]logfiles[/b] and will need to be involved in fixing your problem. Other people "on the net" can't really help with this. The first thing the hub administrator needs to do is look at their logs and/or try to reproduce the problem. So try to be as helpful and courteous as possible in helping them look into the problem.
+
+To find your hub administrator (if you don't know who they are) please look at [url=[baseurl]/siteinfo]this page[/url]. If they have not provided any contact info on that page or provided an "Impressum" there, see [url=[baseurl]/siteinfo/json]this site info summary[/url] under the heading "admin:".
+
+[h3]I'm a hub administrator; what do I do?[/h3]
+
+The software instructions which provide this server are open source and are available for your inspection. If an error message was reported, often one can do a search on the source files for that error message and find out what triggered it. With this information and the site logfiles it may be possible to figure out the sequence of events leading to the error. There could also be other sites involved, and the problem may not even be on your site but elsewhere in the network. Try to pin down the communication endpoints (hubs or sites) involved in the problem and contact the administrator of that site or those sites. Please try and provide an event time of when things went wrong so it can be found in the logs. Work with the other administrator(s) to try and find the cause of the problem. Logfiles are your friend. When something happens in the software that we didn't expect, it is nearly always logged.
+
+[h3]The white screen of death[/h3]
+
+If you get a blank white screen when doing something, this is almost always a code or syntax error. There are instructions in your .htconfig.php file for enabling syntax logging. We recommend all sites use this. With syntax logging enabled repeat the sequence which led to the error and it should log the offending line of code. Hopefully you will be able to fix the problem with this information. When you do, please submit the fix "upstream" so that we can share the fix with the rest of the project members and other communities. This is a key benefit of using open source software - we share with each other and everybody benefits.
+
+[h3]I'm stumped. I can't figure out what is wrong.[/h3]
+
+[b]Hubzilla Enterprise Server[/b]
+
+Please make contact with the vendor - who will have provided you with support contact details. Preferably this contact will be made by the hub administrator so that he/she can assist us in collecting the necessary issue details. We will assign a ticket and notify you of progress.
+
+
+[b]Hubzilla Community Server[/b]
+
+At this point it might be worthwhile discussing the issue on one of the online forums. There may be several of these and some may be more suited to your spoken language. As a last resort, try "Channel One", which is in English.
+
+If the community developers can't help you right away, understand that they are volunteers and may have a lot of other work and demands on their time. At this point you need to file a bug report. You will need an account on github.com to do this. So register, and then visit https://github.com/redmatrix/hubzilla/issues
+. Create an issue here and provide all the same information that you provided online. Don't leave out anything.
+
+Then you wait. If it's a high profile issue, it may get fixed quickly. But nobody is in charge of fixing bugs. If it lingers without resolution, please spend some more time investigating the problem. Ask about anything you don't understand related to the behaviour. You will learn more about how the software works and quite possibly figure out why it isn't working now. Ultimately it is somebody in the community who is going to fix this and you are a member of the community; and this is how the open source process works.
+
+
+[b]In either case[/b]
+
+Other developers working to fix the problem may need to find out more, so do your homework and document what is happening and everything you've tried. Don't say "I did xyz and it didn't work." That doesn't tell us anything. Tell us precisely what steps you took and what you expected the result to be, and precisely what happened as a result. If there were any error messages, don't say "there was an error message". Tell us exactly what the message said.
+ \ No newline at end of file
diff --git a/doc/dav_dolphin.bb b/doc/dav_dolphin.bb
index a1ebba394..ae60a6d52 100644
--- a/doc/dav_dolphin.bb
+++ b/doc/dav_dolphin.bb
@@ -1,8 +1,8 @@
[b]Using The Cloud - Dolphin[/b]
-Visit webdavs://example.com/cloud where "example.com" is the URL of your hub.
+Visit webdavs://example.com/dav where "example.com" is the URL of your hub.
-When prompted for a username and password, enter your username (the first part of your webbie - no @ or domain name) and password for your normal account.
+When prompted for a username and password, enter your channel name (the first part of your webbie - no @ or domain name) and password for your normal account.
Note, if you are already logged in to the web interface via Konqueror, you will not be prompted for further authentication.
diff --git a/doc/dav_mount.bb b/doc/dav_mount.bb
index d8cb2e08e..0fd3d4691 100644
--- a/doc/dav_mount.bb
+++ b/doc/dav_mount.bb
@@ -25,14 +25,14 @@ Edit /etc/fstab
to include your cloud directory by adding
[code]
-[baseurl]/cloud/ /mount/point davfs user,noauto,uid=<DesktopUser>,file_mode=600,dir_mode=700 0 1
+[baseurl]/dav/ /mount/point davfs user,noauto,uid=<DesktopUser>,file_mode=600,dir_mode=700 0 1
[/code]
Where [baseurl] is the URL of your hub, /mount/point is the location you want to mount the cloud, and <DesktopUser> is the user you log in to one your computer. Note that if you are mounting as a normal user (not root) the mount point must be in your home directory.
For example, if I wanted to mount my cloud to a directory called 'cloud' in my home directory, and my username was bob, my fstab would be
-[code][baseurl]/cloud/ /home/bob/cloud davfs user,noauto,uid=bob,file_mode=600,dir_mode=700 0 1[/code]
+[code][baseurl]/dav/ /home/bob/cloud davfs user,noauto,uid=bob,file_mode=600,dir_mode=700 0 1[/code]
Now, create the mount point.
@@ -49,7 +49,7 @@ Create a file called 'secrets'
and add your cloud login credentials
[code]
-[baseurl]/cloud <username> <password>
+[baseurl]/dav <username> <password>
[/code]
Where <username> and <password> are the username and password [i]for your hub[/i].
@@ -60,7 +60,7 @@ Don't let this file be writeable by anyone who doesn't need it with
Finally, mount the drive.
-[code]mount [baseurl]/cloud[/code]
+[code]mount [baseurl]/dav[/code]
You can now find your cloud at /home/bob/cloud and use it as though it were part of your local filesystem - even if the applications you are using have no dav support themselves.
diff --git a/doc/dav_nautilus.bb b/doc/dav_nautilus.bb
index 51663b6de..c8911cda8 100644
--- a/doc/dav_nautilus.bb
+++ b/doc/dav_nautilus.bb
@@ -2,8 +2,8 @@
1. Open a File browsing window (that's Nautilus)
2. Select File > Connect to server from the menu
-3. Type davs://<domain_name>/cloud/<your_username> and click Connect
-4. You will be prompted for your username (same as above) and password
+3. Type davs://<domain_name>/dav/<your_channelname> and click Connect
+4. You will be prompted for your channel name (same as above) and password
5. Your personal DAV directory will be shown in the window
#include doc/macros/cloud_footer.bb;
diff --git a/doc/dav_nemo.bb b/doc/dav_nemo.bb
index 2c88b0782..f2d994fbb 100644
--- a/doc/dav_nemo.bb
+++ b/doc/dav_nemo.bb
@@ -3,16 +3,16 @@
For (file browser) Nemo 1.8.2 under Linux Mint 15, Cinnamon 1.8.8. Nemo ist the standard file browser there.
1st way
-type "davs://yourusername@friendicared.net/cloud" in the address bar
+type "davs://<domain_name>/dav/<your_channelname>" in the address bar.
2nd way
Menu > file > connect to server
Fill the dialog
-- Server: friendicared.net
+- Server: hubzilla_domain_name
- Type: Secure WebDAV (https)
-- Folder: /cloud
-- Username: yourusername
-- Passwort: yourpasswort
+- Folder: /dav
+- Username: yourchannelname
+- Password: yourpassword
Once open you can set a bookmark.
diff --git a/doc/dav_windows.bb b/doc/dav_windows.bb
index 0eaffd4d0..96862e2b5 100644
--- a/doc/dav_windows.bb
+++ b/doc/dav_windows.bb
@@ -4,8 +4,8 @@ RedDav using Windows 7 graphical user interface wizard:
1. Left-click the Start-button to open the start menu.
2. Right-click the My computer icon to access its menu.
3. Left-click Map network drive... to open the connection dialog wizard.
-4. Type #^[url=https://example.net/cloud/your_user_name]https://example.net/cloud/your_user_name[/url] in the textbox and click the Complete button where "example.net" is the URL of your hub.
-5. Type your Red account's user name. IMPORTANT - NO at-sign or domain name.
-6. Type your Red password
+4. Type #^[url=https://example.net/dav/your_channel_name]https://example.net/dav/your_channel_name[/url] in the textbox and click the Complete button where "example.net" is the URL of your hub.
+5. Type your Hubzilla account's user name. IMPORTANT - NO at-sign or domain name.
+6. Type your Hubzilla password
#include doc/macros/cloud_footer.bb;
diff --git a/doc/members.bb b/doc/members.bb
index 705154b56..13339ef2d 100644
--- a/doc/members.bb
+++ b/doc/members.bb
@@ -22,3 +22,4 @@
[zrl=[baseurl]/help/addons]Help With Addons[/zrl]
[zrl=[baseurl]/help/diaspora_compat]Diaspora Communications Compatibility (Diaspora and Friendica)[/zrl]
[zrl=[baseurl]/help/faq_members]FAQ For Members[/zrl]
+[zrl=[baseurl]/help/bugs]Bugs, Issues, and things that go bump in the night...[/zrl]
diff --git a/doc/to_do_code.bb b/doc/to_do_code.bb
index 94421bab0..b5c7b9903 100644
--- a/doc/to_do_code.bb
+++ b/doc/to_do_code.bb
@@ -4,7 +4,7 @@ We need much more than this, but here are areas where developers can help. Pleas
[li]Documentation - see Red Documentation Project To-Do List[/li]
[li]Include TOS link in registration/verification email[/li]
-[li](done) forum widget with unread counts (requires the DB schema changes from v3/hubzilla to be viable)[/li]
+[li]Auto preview posts/comments (configurable timer kicks in the preview if not 0)[/li]
[li]Create bug tracker module[/li]
[li]translation plugins - moses or apertium[/li]
[li]plugins - provide 'disable' which is softer than 'uninstall' for those plugins which create additional DB tables[/li]
@@ -45,7 +45,7 @@ We need much more than this, but here are areas where developers can help. Pleas
[li]Create mobile clients for the top platforms - which involves extending the API so that we can do stuff far beyond the current crop of Twitter/Statusnet clients. Ditto for mobile themes. We can probably use something like the Friendica Android app as a base to start from.[/li]
[li](in progress Habeas Codice) Implement owned and exchangeable "things".[/li]
[li]Family Account creation - using service classes (an account holder can create a certain number of sub-accounts which are all tied to their subscription - if the subscription lapses they all go away).[/li]
-[li]Put mod_admin under Comanche[/li]
+
In many cases some of the work has already been started and code exists so that you needn't start from scratch. Please contact one of the developer channels like Channel One (one@zothub.com) before embarking and we can tell you what we already have and provide some insights on how we envision these features fitting together.
diff --git a/images/hubzilla_house_arrows.png b/images/hubzilla_house_arrows.png
new file mode 100644
index 000000000..56402a96b
--- /dev/null
+++ b/images/hubzilla_house_arrows.png
Binary files differ
diff --git a/include/Import/import_diaspora.php b/include/Import/import_diaspora.php
index fca9fa4f2..a0f473b50 100644
--- a/include/Import/import_diaspora.php
+++ b/include/Import/import_diaspora.php
@@ -57,6 +57,10 @@ function import_diaspora($data) {
$channel_id = $c['channel']['channel_id'];
+ // Hubzilla only: Turn on the Diaspora protocol so that follow requests will be sent.
+
+ set_pconfig($channel_id,'system','diaspora_allowed','1');
+
// todo - add auto follow settings, (and strip exif in hubzilla)
$location = escape_tags($data['user']['profile']['location']);
@@ -70,7 +74,6 @@ function import_diaspora($data) {
);
if($data['user']['profile']['nsfw']) {
- // fixme for hubzilla which doesn't use pageflags any more
q("update channel set channel_pageflags = (channel_pageflags | %d) where channel_id = %d",
intval(PAGE_ADULT),
intval($channel_id)
diff --git a/include/api.php b/include/api.php
index 6d71cfc33..a77bf15f7 100644
--- a/include/api.php
+++ b/include/api.php
@@ -896,6 +896,55 @@ require_once('include/items.php');
api_register_func('api/red/item/new','red_item_new', true);
+ function red_item(&$a, $type) {
+
+ if (api_user() === false) {
+ logger('api_red_item_new: no user');
+ return false;
+ }
+
+ if($_REQUEST['mid']) {
+ $arr = array('mid' => $_REQUEST['mid']);
+ }
+ elseif($_REQUEST['item_id']) {
+ $arr = array('item_id' => $_REQUEST['item_id']);
+ }
+ else
+ json_return_and_die(array());
+
+ $arr['start'] = 0;
+ $arr['records'] = 999999;
+ $arr['item_type'] = '*';
+
+ $i = items_fetch($arr,$a->get_channel(),get_observer_hash());
+
+ if(! $i)
+ json_return_and_die(array());
+
+ $ret = array();
+ $tmp = array();
+ $str = '';
+ foreach($i as $ii) {
+ $tmp[] = encode_item($ii,true);
+ if($str)
+ $str .= ',';
+ $str .= $ii['id'];
+ }
+ $ret['item'] = $tmp;
+ if($str) {
+ $r = q("select item_id.*, item.mid from item_id left join item on item_id.iid = item.id where item.id in ( $str ) ");
+
+ if($r)
+ $ret['item_id'] = $r;
+ }
+
+ json_return_and_die($ret);
+ }
+
+ api_register_func('api/red/item/full','red_item', true);
+
+
+
function api_get_status($xchan_hash) {
require_once('include/security.php');
diff --git a/include/attach.php b/include/attach.php
index 620c7620c..513486bfc 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -405,6 +405,9 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
require_once('include/photos.php');
+
+ call_hooks('photo_upload_begin',$arr);
+
$ret = array('success' => false);
$channel_id = $channel['channel_id'];
$sql_options = '';
@@ -451,15 +454,28 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
$hash = $arr['resource_id'];
}
elseif($options !== 'update') {
- if(! x($_FILES,'userfile')) {
- $ret['message'] = t('No source file.');
- return $ret;
- }
+ $f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => '');
- $src = $_FILES['userfile']['tmp_name'];
- $filename = basename($_FILES['userfile']['name']);
- $filesize = intval($_FILES['userfile']['size']);
+ call_hooks('photo_upload_file',$f);
+ call_hooks('attach_upload_file',$f);
+ if (x($f,'src') && x($f,'filesize')) {
+ $src = $f['src'];
+ $filename = $f['filename'];
+ $filesize = $f['filesize'];
+ $type = $f['type'];
+
+ } else {
+
+ if(! x($_FILES,'userfile')) {
+ $ret['message'] = t('No source file.');
+ return $ret;
+ }
+
+ $src = $_FILES['userfile']['tmp_name'];
+ $filename = basename($_FILES['userfile']['name']);
+ $filesize = intval($_FILES['userfile']['size']);
+ }
}
$existing_size = 0;
@@ -615,6 +631,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
if(($maxfilesize) && ($filesize > $maxfilesize)) {
$ret['message'] = sprintf( t('File exceeds size limit of %d'), $maxfilesize);
@unlink($src);
+ call_hooks('photo_upload_end',$ret);
return $ret;
}
@@ -627,10 +644,11 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
if(($r) && (($r[0]['total'] + $filesize) > ($limit - $existing_size))) {
$ret['message'] = upgrade_message(true) . sprintf(t("You have reached your limit of %1$.0f Mbytes attachment storage."), $limit / 1024000);
@unlink($src);
+ call_hooks('photo_upload_end',$ret);
return $ret;
}
}
- $mimetype = z_mime_content_type($filename);
+ $mimetype = ((isset($type) && $type) ? $type : z_mime_content_type($filename));
}
$os_basepath = 'store/' . $channel['channel_address'] . '/' ;
@@ -658,7 +676,6 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
else
$edited = $created;
-
if($options === 'replace') {
$r = q("update attach set filename = '%s', filetype = '%s', folder = '%s', filesize = %d, os_storage = %d, is_photo = %d, data = '%s', edited = '%s' where id = %d and uid = %d",
dbesc($filename),
@@ -714,6 +731,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
);
}
else {
+
$r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, folder, filesize, revision, os_storage, is_photo, data, created, edited, allow_cid, allow_gid,deny_cid, deny_gid )
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ",
intval($channel['channel_account_id']),
@@ -738,6 +756,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
}
if($is_photo) {
+
$args = array( 'source' => $source, 'visible' => 0, 'resource_id' => $hash, 'album' => basename($pathname), 'os_path' => $os_basepath . $os_relpath, 'filename' => $filename, 'getimagesize' => $gis, 'directory' => $direct);
if($arr['contact_allow'])
$args['contact_allow'] = $arr['contact_allow'];
@@ -772,6 +791,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
if(! $r) {
$ret['message'] = t('File upload failed. Possible system limit or action terminated.');
+ call_hooks('photo_upload_end',$ret);
return $ret;
}
@@ -784,13 +804,17 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
if(! $r) {
$ret['message'] = t('Stored file could not be verified. Upload failed.');
+ call_hooks('photo_upload_end',$ret);
return $ret;
}
$ret['success'] = true;
$ret['data'] = $r[0];
-
+ if(! $is_photo) {
+ // This would've been called already with a success result in photos_upload() if it was a photo.
+ call_hooks('photo_upload_end',$ret);
+ }
return $ret;
}
diff --git a/include/chat.php b/include/chat.php
index 05bb02bb9..a0646265a 100644
--- a/include/chat.php
+++ b/include/chat.php
@@ -91,6 +91,8 @@ function chatroom_destroy($channel,$arr) {
return $ret;
}
+ create_sync_packet($channel['channel_id'],array('chatroom' => $r));
+
q("delete from chatroom where cr_id = %d",
intval($r[0]['cr_id'])
);
diff --git a/include/conversation.php b/include/conversation.php
index a3fdf39df..fb8ef8585 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1137,6 +1137,7 @@ function status_editor($a, $x, $popup = false) {
'$newpost' => 'true',
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$pretext' => ((x($x,'pretext')) ? $x['pretext'] : ''),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
'$ispublic' => t('Visible to <strong>everybody</strong>'),
diff --git a/include/event.php b/include/event.php
index 6670bc53b..44c172e98 100644
--- a/include/event.php
+++ b/include/event.php
@@ -446,6 +446,20 @@ function event_addtocal($item_id, $uid) {
intval($channel['channel_id'])
);
+ $item['resource_id'] = $event['event_hash'];
+ $item['resource_type'] = 'event';
+
+ $i = array($item);
+ xchan_query($i);
+ $sync_item = fetch_post_tags($i);
+ $z = q("select * from event where event_hash = '%s' and uid = %d limit 1",
+ dbesc($event['event_hash']),
+ intval($channel['channel_id'])
+ );
+ if($z) {
+ build_sync_packet($channel['channel_id'],array('event_item' => array(encode_item($sync_item[0],true)),'event' => $z));
+ }
+
return true;
}
}
@@ -959,4 +973,4 @@ function tasks_fetch($arr) {
return $ret;
-} \ No newline at end of file
+}
diff --git a/include/identity.php b/include/identity.php
index 115baddc1..b5235e7ff 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -5,7 +5,7 @@
require_once('include/zot.php');
require_once('include/crypto.php');
-
+require_once('include/menu.php');
/**
* @brief Called when creating a new channel.
@@ -566,13 +566,57 @@ function identity_basic_export($channel_id, $items = false) {
if($r)
$ret['obj'] = $r;
-
$r = q("select * from app where app_channel = %d",
intval($channel_id)
);
if($r)
$ret['app'] = $r;
+ $r = q("select * from chatroom where cr_uid = %d",
+ intval($channel_id)
+ );
+ if($r)
+ $ret['chatroom'] = $r;
+
+
+ $r = q("select * from event where uid = %d",
+ intval($channel_id)
+ );
+ if($r)
+ $ret['event'] = $r;
+
+ $r = q("select * from item where resource_type = 'event' and uid = %d",
+ intval($channel_id)
+ );
+ if($r) {
+ $ret['event_item'] = array();
+ xchan_query($r);
+ $r = fetch_post_tags($r,true);
+ foreach($r as $rr)
+ $ret['event_item'][] = encode_item($rr,true);
+ }
+
+ $x = menu_list($channel_id);
+ if($x) {
+ $ret['menu'] = array();
+ for($y = 0; $y < count($x); $y ++) {
+ $m = menu_fetch($x[$y]['menu_name'],$channel_id,$ret['channel']['channel_hash']);
+ if($m)
+ $ret['menu'][] = menu_element($m);
+ }
+ }
+
+ $x = menu_list($channel_id);
+ if($x) {
+ $ret['menu'] = array();
+ for($y = 0; $y < count($x); $y ++) {
+ $m = menu_fetch($x[$y]['menu_name'],$channel_id,$ret['channel']['channel_hash']);
+ if($m)
+ $ret['menu'][] = menu_element($m);
+ }
+ }
+
+
if(! $items)
return $ret;
@@ -594,14 +638,17 @@ function identity_basic_export($channel_id, $items = false) {
/** @warning this may run into memory limits on smaller systems */
- /** export one year of posts. If you want to export and import all posts you have to start with
+
+ /** export three months of posts. If you want to export and import all posts you have to start with
* the first year and export/import them in ascending order.
+ *
+ * Don't export linked resource items. we'll have to pull those out separately.
*/
- $r = q("select * from item where item_wall = 1 and item_deleted = 0 and uid = %d and created > %s - INTERVAL %s",
+ $r = q("select * from item where item_wall = 1 and item_deleted = 0 and uid = %d and created > %s - INTERVAL %s and resource_type = '' order by created",
intval($channel_id),
db_utcnow(),
- db_quoteinterval('1 YEAR')
+ db_quoteinterval('3 MONTH')
);
if($r) {
$ret['item'] = array();
@@ -635,7 +682,7 @@ function identity_export_year($channel_id,$year,$month = 0) {
else
$maxdate = datetime_convert('UTC','UTC',$year+1 . '-01-01 00:00:00');
- $r = q("select * from item where item_wall = 1 and item_deleted = 0 and uid = %d and created >= '%s' and created < '%s' order by created",
+ $r = q("select * from item where item_wall = 1 and item_deleted = 0 and uid = %d and created >= '%s' and created < '%s' and resource_type = '' order by created",
intval($channel_id),
dbesc($mindate),
dbesc($maxdate)
@@ -649,7 +696,6 @@ function identity_export_year($channel_id,$year,$month = 0) {
$ret['item'][] = encode_item($rr,true);
}
-
$r = q("select item_id.*, item.mid from item_id left join item on item_id.iid = item.id where item_id.uid = %d
and item.created >= '%s' and item.created < '%s' order by created ",
intval($channel_id),
diff --git a/include/import.php b/include/import.php
index 6ce572ea2..ad8bcd84e 100644
--- a/include/import.php
+++ b/include/import.php
@@ -1,5 +1,6 @@
<?php
+require_once('include/menu.php');
function import_channel($channel) {
@@ -49,6 +50,11 @@ function import_channel($channel) {
unset($channel['channel_id']);
$channel['channel_account_id'] = get_account_id();
$channel['channel_primary'] = (($seize) ? 1 : 0);
+
+ if($channel['channel_pageflags'] & PAGE_ALLOWCODE) {
+ if(! is_site_admin())
+ $channel['channel_pageflags'] = $channel['channel_pageflags'] ^ PAGE_ALLOWCODE;
+ }
dbesc_array($channel);
@@ -349,7 +355,7 @@ function sync_apps($channel,$apps) {
intval($channel['channel_id'])
);
if($x) {
- if($x[0]['app_edited'] >= $obj['app_edited'])
+ if($x[0]['app_edited'] >= $app['app_edited'])
continue;
$exists = true;
}
@@ -377,4 +383,424 @@ function sync_apps($channel,$apps) {
}
}
}
-} \ No newline at end of file
+}
+
+
+
+function import_chatrooms($channel,$chatrooms) {
+
+ if($channel && $chatrooms) {
+ foreach($chatrooms as $chatroom) {
+
+ if(! $chatroom['cr_name'])
+ continue;
+
+ unset($chatroom['cr_id']);
+ unset($chatroom['cr_aid']);
+ unset($chatroom['cr_uid']);
+
+ $chatroom['cr_aid'] = $channel['channel_account_id'];
+ $chatroom['cr_uid'] = $channel['channel_id'];
+
+ dbesc_array($chatroom);
+ $r = dbq("INSERT INTO chatroom (`"
+ . implode("`, `", array_keys($chatroom))
+ . "`) VALUES ('"
+ . implode("', '", array_values($chatroom))
+ . "')"
+ );
+ }
+ }
+}
+
+
+
+function sync_chatrooms($channel,$chatrooms) {
+
+ if($channel && $chatrooms) {
+ foreach($chatrooms as $chatroom) {
+
+ if(! $chatroom['cr_name'])
+ continue;
+
+ if(array_key_exists('cr_deleted',$chatroom) && $chatroom['cr_deleted']) {
+ q("delete from chatroom where cr_name = '%s' and cr_uid = %d limit 1",
+ dbesc($chatroom['cr_name']),
+ intval($channel['channel_id'])
+ );
+ continue;
+ }
+
+
+ unset($chatroom['cr_id']);
+ unset($chatroom['cr_aid']);
+ unset($chatroom['cr_uid']);
+
+ if(! $chatroom['cr_created'] || $chatroom['cr_created'] === NULL_DATE)
+ $chatroom['cr_created'] = datetime_convert();
+ if(! $chatroom['cr_edited'] || $chatroom['cr_edited'] === NULL_DATE)
+ $chatroom['cr_edited'] = datetime_convert();
+
+ $chatroom['cr_aid'] = $channel['channel_account_id'];
+ $chatroom['cr_uid'] = $channel['channel_id'];
+
+ $exists = false;
+
+ $x = q("select * from chatroom where cr_name = '%s' and cr_uid = %d limit 1",
+ dbesc($chatroom['cr_name']),
+ intval($channel['channel_id'])
+ );
+ if($x) {
+ if($x[0]['cr_edited'] >= $chatroom['cr_edited'])
+ continue;
+ $exists = true;
+ }
+ $name = $chatroom['cr_name'];
+
+ if($exists) {
+ foreach($chatroom as $k => $v) {
+ $r = q("UPDATE chatroom SET `%s` = '%s' WHERE cr_name = '%s' AND cr_uid = %d",
+ dbesc($k),
+ dbesc($v),
+ dbesc($name),
+ intval($channel['channel_id'])
+ );
+ }
+ }
+ else {
+ dbesc_array($chatroom);
+ $r = dbq("INSERT INTO chatroom (`"
+ . implode("`, `", array_keys($chatroom))
+ . "`) VALUES ('"
+ . implode("', '", array_values($chatroom))
+ . "')"
+ );
+ }
+ }
+ }
+}
+
+
+
+function import_items($channel,$items) {
+
+ if($channel && $items) {
+ $allow_code = false;
+ $r = q("select account_id, account_roles, channel_pageflags from account left join channel on channel_account_id = account_id
+ where channel_id = %d limit 1",
+ intval($channel['channel_id'])
+ );
+ if($r) {
+ if(($r[0]['account_roles'] & ACCOUNT_ROLE_ALLOWCODE) || ($r[0]['channel_pageflags'] & PAGE_ALLOWCODE)) {
+ $allow_code = true;
+ }
+ }
+
+ foreach($items as $i) {
+ $item = get_item_elements($i,$allow_code);
+ if(! $item)
+ continue;
+
+ $r = q("select id, edited from item where mid = '%s' and uid = %d limit 1",
+ dbesc($item['mid']),
+ intval($channel['channel_id'])
+ );
+ if($r) {
+ if($item['edited'] > $r[0]['edited']) {
+ $item['id'] = $r[0]['id'];
+ $item['uid'] = $channel['channel_id'];
+ item_store_update($item);
+ continue;
+ }
+ }
+ else {
+ $item['aid'] = $channel['channel_account_id'];
+ $item['uid'] = $channel['channel_id'];
+ $item_result = item_store($item);
+ }
+
+ }
+ }
+}
+
+
+function sync_items($channel,$items) {
+ import_items($channel,$items);
+}
+
+
+
+function import_item_ids($channel,$itemids) {
+ if($channel && $itemids) {
+ foreach($itemids as $i) {
+ $r = q("select id from item where mid = '%s' and uid = %d limit 1",
+ dbesc($i['mid']),
+ intval($channel['channel_id'])
+ );
+ if(! $r)
+ continue;
+ $z = q("select * from item_id where service = '%s' and sid = '%s' and iid = %d and uid = %d limit 1",
+ dbesc($i['service']),
+ dbesc($i['sid']),
+ intval($r[0]['id']),
+ intval($channel['channel_id'])
+ );
+ if(! $z) {
+ q("insert into item_id (iid,uid,sid,service) values(%d,%d,'%s','%s')",
+ intval($r[0]['id']),
+ intval($channel['channel_id']),
+ dbesc($i['sid']),
+ dbesc($i['service'])
+ );
+ }
+ }
+ }
+}
+
+function import_events($channel,$events) {
+
+ if($channel && $events) {
+ foreach($events as $event) {
+ unset($event['id']);
+ $event['aid'] = $channel['channel_account_id'];
+ $event['uid'] = $channel['channel_id'];
+
+ dbesc_array($event);
+ $r = dbq("INSERT INTO event (`"
+ . implode("`, `", array_keys($event))
+ . "`) VALUES ('"
+ . implode("', '", array_values($event))
+ . "')"
+ );
+ }
+ }
+}
+
+
+function sync_events($channel,$events) {
+
+ if($channel && $events) {
+ foreach($events as $event) {
+
+ if((! $event['event_hash']) || (! $event['start']))
+ continue;
+
+ if($event['event_deleted']) {
+ $r = q("delete from event where event_hash = '%s' and uid = %d limit 1",
+ dbesc($event['event_hash']),
+ intval($channel['channel_id'])
+ );
+ continue;
+ }
+
+ unset($event['id']);
+ $event['aid'] = $channel['channel_account_id'];
+ $event['uid'] = $channel['channel_id'];
+
+ $exists = false;
+
+ $x = q("select * from event where event_hash = '%s' and uid = %d limit 1",
+ dbesc($event['event_hash']),
+ intval($channel['channel_id'])
+ );
+ if($x) {
+ if($x[0]['edited'] >= $event['edited'])
+ continue;
+ $exists = true;
+ }
+
+ if($exists) {
+ foreach($event as $k => $v) {
+ $r = q("UPDATE event SET `%s` = '%s' WHERE event_hash = '%s' AND uid = %d",
+ dbesc($k),
+ dbesc($v),
+ dbesc($event['event_hash']),
+ intval($channel['channel_id'])
+ );
+ }
+ }
+ else {
+ dbesc_array($event);
+ $r = dbq("INSERT INTO event (`"
+ . implode("`, `", array_keys($event))
+ . "`) VALUES ('"
+ . implode("', '", array_values($event))
+ . "')"
+ );
+ }
+ }
+ }
+}
+
+
+function import_menus($channel,$menus) {
+
+ if($channel && $menus) {
+ foreach($menus as $menu) {
+ $m = array();
+ $m['menu_channel_id'] = $channel['channel_id'];
+ $m['menu_name'] = $menu['pagetitle'];
+ $m['menu_desc'] = $menu['desc'];
+ if($menu['created'])
+ $m['menu_created'] = datetime_convert($menu['created']);
+ if($menu['edited'])
+ $m['menu_edited'] = datetime_convert($menu['edited']);
+
+ $m['menu_flags'] = 0;
+ if($menu['flags']) {
+ if(in_array('bookmark',$menu['flags']))
+ $m['menu_flags'] |= MENU_BOOKMARK;
+ if(in_array('system',$menu['flags']))
+ $m['menu_flags'] |= MENU_SYSTEM;
+
+ }
+
+ $menu_id = menu_create($m);
+
+ if($menu_id) {
+ if(is_array($menu['items'])) {
+ foreach($menu['items'] as $it) {
+ $mitem = array();
+
+ $mitem['mitem_link'] = str_replace('[baseurl]',z_root(),$it['link']);
+ $mitem['mitem_desc'] = escape_tags($it['desc']);
+ $mitem['mitem_order'] = intval($it['order']);
+ if(is_array($it['flags'])) {
+ $mitem['mitem_flags'] = 0;
+ if(in_array('zid',$it['flags']))
+ $mitem['mitem_flags'] |= MENU_ITEM_ZID;
+ if(in_array('new-window',$it['flags']))
+ $mitem['mitem_flags'] |= MENU_ITEM_NEWWIN;
+ if(in_array('chatroom',$it['flags']))
+ $mitem['mitem_flags'] |= MENU_ITEM_CHATROOM;
+ }
+ menu_add_item($menu_id,$channel['channel_id'],$mitem);
+ }
+ }
+ }
+ }
+ }
+}
+
+
+function sync_menus($channel,$menus) {
+
+ if($channel && $menus) {
+ foreach($menus as $menu) {
+ $m = array();
+ $m['menu_channel_id'] = $channel['channel_id'];
+ $m['menu_name'] = $menu['pagetitle'];
+ $m['menu_desc'] = $menu['desc'];
+ if($menu['created'])
+ $m['menu_created'] = datetime_convert($menu['created']);
+ if($menu['edited'])
+ $m['menu_edited'] = datetime_convert($menu['edited']);
+
+ $m['menu_flags'] = 0;
+ if($menu['flags']) {
+ if(in_array('bookmark',$menu['flags']))
+ $m['menu_flags'] |= MENU_BOOKMARK;
+ if(in_array('system',$menu['flags']))
+ $m['menu_flags'] |= MENU_SYSTEM;
+
+ }
+
+ $editing = false;
+
+ $r = q("select * from menu where menu_name = '%s' and menu_channel_id = %d limit 1",
+ dbesc($m['menu_name']),
+ intval($channel['channel_id'])
+ );
+ if($r) {
+ if($r[0]['menu_edited'] >= $m['menu_edited'])
+ continue;
+ if($menu['menu_deleted']) {
+ menu_delete_id($r[0]['menu_id'],$channel['channel_id']);
+ continue;
+ }
+ $menu_id = $r[0]['menu_id'];
+ $m['menu_id'] = $r[0]['menu_id'];
+ $x = menu_edit($m);
+ if(! $x)
+ continue;
+ $editing = true;
+ }
+ if(! $editing) {
+ $menu_id = menu_create($m);
+ }
+ if($menu_id) {
+ if($editing) {
+ // don't try syncing - just delete all the entries and start over
+ q("delete from menu_item where mitem_menu_id = %d",
+ intval($menu_id)
+ );
+ }
+
+ if(is_array($menu['items'])) {
+ foreach($menu['items'] as $it) {
+ $mitem = array();
+
+ $mitem['mitem_link'] = str_replace('[baseurl]',z_root(),$it['link']);
+ $mitem['mitem_desc'] = escape_tags($it['desc']);
+ $mitem['mitem_order'] = intval($it['order']);
+ if(is_array($it['flags'])) {
+ $mitem['mitem_flags'] = 0;
+ if(in_array('zid',$it['flags']))
+ $mitem['mitem_flags'] |= MENU_ITEM_ZID;
+ if(in_array('new-window',$it['flags']))
+ $mitem['mitem_flags'] |= MENU_ITEM_NEWWIN;
+ if(in_array('chatroom',$it['flags']))
+ $mitem['mitem_flags'] |= MENU_ITEM_CHATROOM;
+ }
+ menu_add_item($menu_id,$channel['channel_id'],$mitem);
+ }
+ }
+ }
+ }
+ }
+}
+
+
+
+function import_likes($channel,$likes) {
+ if($channel && $likes) {
+ foreach($likes as $like) {
+ if($like['deleted']) {
+ q("delete from likes where liker = '%s' and likee = '%s' and verb = '%s' and target_type = '%s' and target_id = '%s'",
+ dbesc($like['liker']),
+ dbesc($like['likee']),
+ dbesc($like['verb']),
+ dbesc($like['target_type']),
+ dbesc($like['target_id'])
+ );
+ continue;
+ }
+
+ unset($like['id']);
+ unset($like['iid']);
+ $like['channel_id'] = $channel['channel_id'];
+ $r = q("select * from likes where liker = '%s' and likee = '%s' and verb = '%s' and target_type = '%s' and target_id = '%s' and i_mid = '%s'",
+ dbesc($like['liker']),
+ dbesc($like['likee']),
+ dbesc($like['verb']),
+ dbesc($like['target_type']),
+ dbesc($like['target_id']),
+ dbesc($like['i_mid'])
+ );
+ if($r)
+ continue;
+
+ dbesc_array($config);
+ $r = dbq("INSERT INTO likes (`"
+ . implode("`, `", array_keys($like))
+ . "`) VALUES ('"
+ . implode("', '", array_values($like))
+ . "')" );
+ }
+ }
+}
+
+
+
+
+
diff --git a/include/items.php b/include/items.php
index 9807831e3..28fd8502b 100755
--- a/include/items.php
+++ b/include/items.php
@@ -833,10 +833,13 @@ function title_is_body($title, $body) {
}
-function get_item_elements($x) {
+function get_item_elements($x,$allow_code = false) {
$arr = array();
- $arr['body'] = (($x['body']) ? htmlspecialchars($x['body'],ENT_COMPAT,'UTF-8',false) : '');
+ if($allow_code)
+ $arr['body'] = $x['body'];
+ else
+ $arr['body'] = (($x['body']) ? htmlspecialchars($x['body'],ENT_COMPAT,'UTF-8',false) : '');
$key = get_config('system','pubkey');
@@ -1309,7 +1312,7 @@ function encode_item($item,$mirror = false) {
$x['comment_scope'] = $c_scope;
if($item['term'])
- $x['tags'] = encode_item_terms($item['term']);
+ $x['tags'] = encode_item_terms($item['term'],$mirror);
if($item['diaspora_meta']) {
$z = json_decode($item['diaspora_meta'],true);
@@ -1401,11 +1404,16 @@ function encode_item_xchan($xchan) {
return $ret;
}
-function encode_item_terms($terms) {
+function encode_item_terms($terms,$mirror = false) {
$ret = array();
$allowed_export_terms = array( TERM_UNKNOWN, TERM_HASHTAG, TERM_MENTION, TERM_CATEGORY, TERM_BOOKMARK );
+ if($mirror) {
+ $allowed_export_terms[] = TERM_PCATEGORY;
+ $allowed_export_terms[] = TERM_FILE;
+ }
+
if($terms) {
foreach($terms as $term) {
if(in_array($term['type'],$allowed_export_terms))
@@ -3322,7 +3330,7 @@ function start_delivery_chain($channel, $item, $item_id, $parent) {
dbesc($title),
dbesc($body),
intval($item_wall),
- $intval($item_origin),
+ intval($item_origin),
intval($item_id)
);
@@ -4632,10 +4640,12 @@ function zot_feed($uid,$observer_hash,$arr) {
$items = array();
- /** @FIXME fix this part for PostgreSQL */
+ /** @FIXME re-unite these SQL statements. There is no need for them to be separate. The mySQL is convoluted with misuse of group by. As it stands, there is a slight difference where the postgres version doesn't remove the duplicate parents up to 100. In practice this doesn't matter. It could be made to match behavior by adding "distinct on (parent) " to the front of the selection list, at a not-worth-it performance penalty (page temp results to disk). duplicates are still ignored in the in() clause, you just get less than 100 parents if there are many children. */
if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
- return array();
+ $groupby = '';
+ } else {
+ $groupby = 'GROUP BY parent';
}
$item_normal = item_normal();
@@ -4645,7 +4655,7 @@ function zot_feed($uid,$observer_hash,$arr) {
WHERE uid != %d
$item_normal
AND item_wall = 1
- and item_private = 0 $sql_extra GROUP BY parent ORDER BY created ASC $limit",
+ and item_private = 0 $sql_extra $groupby ORDER BY created ASC $limit",
intval($uid)
);
}
@@ -4653,7 +4663,7 @@ function zot_feed($uid,$observer_hash,$arr) {
$r = q("SELECT parent, created, postopts from item
WHERE uid = %d $item_normal
AND item_wall = 1
- $sql_extra GROUP BY parent ORDER BY created ASC $limit",
+ $sql_extra $groupby ORDER BY created ASC $limit",
intval($uid)
);
}
@@ -4724,6 +4734,12 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
if($arr['wall'])
$sql_options .= " and item_wall = 1 ";
+
+ if($arr['item_id'])
+ $sql_options .= " and parent = " . intval($arr['item_id']) . " ";
+
+ if($arr['mid'])
+ $sql_options .= " and parent_mid = '" . dbesc($arr['mid']) . "' ";
$sql_extra = " AND item.parent IN ( SELECT parent FROM item WHERE item_thread_top = 1 $sql_options ) ";
@@ -4850,11 +4866,15 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
require_once('include/security.php');
$sql_extra .= item_permissions_sql($channel['channel_id'],$observer_hash);
+
if($arr['pages'])
$item_restrict = " AND item_type = " . ITEM_TYPE_WEBPAGE . " ";
else
$item_restrict = " AND item_type = 0 ";
+ if($arr['item_type'] === '*')
+ $item_restrict = '';
+
if ($arr['nouveau'] && ($client_mode & CLIENT_MODE_LOAD) && $channel) {
// "New Item View" - show all items unthreaded in reverse created date order
diff --git a/include/menu.php b/include/menu.php
index 7ed931a59..075372515 100644
--- a/include/menu.php
+++ b/include/menu.php
@@ -6,7 +6,7 @@ require_once('include/bbcode.php');
function menu_fetch($name,$uid,$observer_xchan) {
- $sql_options = permissions_sql($uid);
+ $sql_options = permissions_sql($uid,$observer_xchan);
$r = q("select * from menu where menu_channel_id = %d and menu_name = '%s' limit 1",
intval($uid),
@@ -238,7 +238,6 @@ function menu_edit($arr) {
return false;
}
-
$r = q("select * from menu where menu_id = %d and menu_channel_id = %d limit 1",
intval($menu_id),
intval($menu_channel_id)
@@ -388,3 +387,14 @@ function menu_del_item($menu_id,$uid,$item_id) {
return $r;
}
+function menu_sync_packet($uid,$observer_hash,$menu_id,$delete = false) {
+ $r = menu_fetch_id($menu_id,$uid);
+ if($r) {
+ $m = menu_fetch($r['menu_name'],$uid,$observer_hash);
+ if($m) {
+ if($delete)
+ $m['menu_delete'] = 1;
+ build_sync_packet($uid,array('menu' => array(menu_element($m))));
+ }
+ }
+}
diff --git a/include/message.php b/include/message.php
index 396e3162c..efe1a7710 100644
--- a/include/message.php
+++ b/include/message.php
@@ -49,6 +49,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
// look for any existing conversation structure
+
if(strlen($replyto)) {
$r = q("select convid from mail where channel_id = %d and ( mid = '%s' or parent_mid = '%s' ) limit 1",
intval(local_channel()),
diff --git a/include/network.php b/include/network.php
index 75729d6e4..d3320f3ee 100644
--- a/include/network.php
+++ b/include/network.php
@@ -1137,6 +1137,8 @@ function discover_by_webbie($webbie) {
if($hcard) {
$vcard = scrape_vcard($hcard);
$vcard['nick'] = substr($webbie,0,strpos($webbie,'@'));
+ if(! $vcard['fn'])
+ $vcard['fn'] = $webbie;
}
$r = q("select * from xchan where xchan_hash = '%s' limit 1",
diff --git a/include/photos.php b/include/photos.php
index b4129fbf1..49aab6865 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -27,7 +27,7 @@ function photo_upload($channel, $observer, $args) {
return $ret;
}
- call_hooks('photo_upload_begin', $args);
+// call_hooks('photo_upload_begin', $args);
/*
* Determine the album to use
@@ -84,7 +84,7 @@ function photo_upload($channel, $observer, $args) {
} else {
$f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => '');
- call_hooks('photo_upload_file',$f);
+// call_hooks('photo_upload_file',$f);
if (x($f,'src') && x($f,'filesize')) {
$src = $f['src'];
@@ -226,11 +226,8 @@ function photo_upload($channel, $observer, $args) {
$width_x_height = $ph->getWidth() . 'x' . $ph->getHeight();
- $mid = item_message_id();
-
// Create item container
-
$item_hidden = (($visible) ? 0 : 1 );
$lat = $lon = null;
diff --git a/include/security.php b/include/security.php
index 7cc93fc06..380505a79 100644
--- a/include/security.php
+++ b/include/security.php
@@ -256,7 +256,7 @@ function item_permissions_sql($owner_id, $remote_observer = null) {
$regexop = db_getfunc('REGEXP');
$sql = sprintf(
" AND ( NOT (deny_cid like '%s' OR deny_gid $regexop '%s')
- AND ( allow_cid like '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '') )
+ AND ( allow_cid like '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '' AND item_private = 0 ) )
)
",
dbesc(protect_sprintf( '%<' . $observer . '>%')),
@@ -291,7 +291,7 @@ function public_permissions_sql($observer_hash) {
$regexop = db_getfunc('REGEXP');
$sql = sprintf(
" OR (( NOT (deny_cid like '%s' OR deny_gid $regexop '%s')
- AND ( allow_cid like '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '') )
+ AND ( allow_cid like '%s' OR allow_gid $regexop '%s' OR ( allow_cid = '' AND allow_gid = '' AND item_private = 0 ) )
))
",
dbesc(protect_sprintf( '%<' . $observer_hash . '>%')),
diff --git a/include/widgets.php b/include/widgets.php
index 42d9db19a..5e40bf54a 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -1007,7 +1007,9 @@ function widget_forums($arr) {
$perms_sql = item_permissions_sql(local_channel()) . item_normal();
- $r1 = q("select * from abook left join xchan on abook_xchan = xchan_hash where xchan_pubforum = 1 and abook_channel = %d order by xchan_name $limit ",
+ $r1 = q("select * from abook left join xchan on abook_xchan = xchan_hash where ( xchan_pubforum = 1 or ((abook_their_perms & %d ) != 0 and (abook_their_perms & %d ) = 0) ) and abook_channel = %d order by xchan_name $limit ",
+ intval(PERMS_W_TAGWALL),
+ intval(PERMS_W_STREAM),
intval(local_channel())
);
if(! $r1)
@@ -1034,7 +1036,7 @@ function widget_forums($arr) {
foreach($r1 as $rr) {
if($unseen && (! intval($rr['unseen'])))
continue;
- $o .= '<li><span class="pull-right">' . ((intval($rr['unseen'])) ? intval($rr['unseen']) : '') . '</span><a href="network?f=&cid=' . $rr['abook_id'] . '" ><img src="' . $rr['xchan_photo_s'] . '" style="width: 16px; height: 16px;" /> ' . $rr['xchan_name'] . '</a></li>';
+ $o .= '<li><span class="pull-right">' . ((intval($rr['unseen'])) ? intval($rr['unseen']) : '') . '</span><a href="network?f=&pf=1&cid=' . $rr['abook_id'] . '" ><img src="' . $rr['xchan_photo_s'] . '" style="width: 16px; height: 16px;" /> ' . $rr['xchan_name'] . '</a></li>';
}
$o .= '</ul></div>';
}
@@ -1074,4 +1076,63 @@ function widget_helpindex($arr) {
$o .= '</ul></div>';
return $o;
+}
+
+
+
+function widget_admin($arr) {
+
+ /*
+ * Side bar links
+ */
+
+ if(! is_site_admin()) {
+ return login(false);
+ }
+
+
+ $a = get_app();
+ $o = '';
+
+ // array( url, name, extra css classes )
+
+ $aside = array(
+ 'site' => array(z_root() . '/admin/site/', t('Site'), 'site'),
+ 'users' => array(z_root() . '/admin/users/', t('Accounts'), 'users'),
+ 'channels' => array(z_root() . '/admin/channels/', t('Channels'), 'channels'),
+ 'plugins' => array(z_root() . '/admin/plugins/', t('Plugins'), 'plugins'),
+ 'themes' => array(z_root() . '/admin/themes/', t('Themes'), 'themes'),
+ 'queue' => array(z_root() . '/admin/queue', t('Inspect queue'), 'queue'),
+ 'profs' => array(z_root() . '/admin/profs', t('Profile Config'), 'profs'),
+ 'dbsync' => array(z_root() . '/admin/dbsync/', t('DB updates'), 'dbsync')
+
+ );
+
+ /* get plugins admin page */
+
+ $r = q("SELECT * FROM addon WHERE plugin_admin = 1");
+
+ $aside['plugins_admin'] = array();
+ if($r) {
+ foreach ($r as $h){
+ $plugin = $h['name'];
+ $aside['plugins_admin'][] = array(z_root() . '/admin/plugins/' . $plugin, $plugin, 'plugin');
+ // temp plugins with admin
+ $a->plugins_admin[] = $plugin;
+ }
+ }
+
+ $aside['logs'] = array(z_root() . '/admin/logs/', t('Logs'), 'logs');
+
+ $o .= replace_macros(get_markup_template('admin_aside.tpl'), array(
+ '$admin' => $aside,
+ '$admtxt' => t('Admin'),
+ '$plugadmtxt' => t('Plugin Features'),
+ '$logtxt' => t('Logs'),
+ '$h_pending' => t('User registrations waiting for confirmation'),
+ '$admurl'=> z_root() . '/admin/'
+ ));
+
+ return $o;
+
} \ No newline at end of file
diff --git a/include/zot.php b/include/zot.php
index fecaa7ad2..0e00f39b4 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -294,9 +294,19 @@ function zot_refresh($them, $channel = null, $force = false) {
if ($them['hubloc_url']) {
$url = $them['hubloc_url'];
} else {
- $r = q("select hubloc_url, hubloc_primary from hubloc where hubloc_hash = '%s'",
- dbesc($them['xchan_hash'])
- );
+ $r = null;
+
+ if(array_key_exists('xchan_addr',$them) && $them['xchan_addr']) {
+ $r = q("select hubloc_url, hubloc_primary from hubloc where hubloc_addr = '%s'",
+ dbesc($them['xchan_addr'])
+ );
+ }
+ if(! $r) {
+ $r = q("select hubloc_url, hubloc_primary from hubloc where hubloc_hash = '%s'",
+ dbesc($them['xchan_hash'])
+ );
+ }
+
if ($r) {
foreach ($r as $rr) {
if (intval($rr['hubloc_primary'])) {
@@ -962,7 +972,7 @@ function zot_process_response($hub, $arr, $outq) {
);
}
- logger('zot_process_response: ' . print_r($x,true), LOGGER_DATA);
+ logger('zot_process_response: ' . print_r($x,true), LOGGER_DEBUG);
}
/**
@@ -2226,7 +2236,7 @@ function sync_locations($sender, $arr, $absolute = false) {
// Absolute sync - make sure the current primary is correctly reflected in the xchan
$pr = hubloc_change_primary($r[0]);
if($pr) {
- $what .= 'xchan_primary';
+ $what .= 'xchan_primary ';
$changed = true;
}
}
@@ -2878,9 +2888,30 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
if(array_key_exists('obj',$arr) && $arr['obj'])
sync_objs($channel,$arr['obj']);
+ if(array_key_exists('likes',$arr) && $arr['likes'])
+ import_likes($channel,$arr['likes']);
+
if(array_key_exists('app',$arr) && $arr['app'])
sync_apps($channel,$arr['app']);
+ if(array_key_exists('chatroom',$arr) && $arr['chatroom'])
+ sync_chatrooms($channel,$arr['chatroom']);
+
+ if(array_key_exists('event',$arr) && $arr['event'])
+ sync_events($channel,$arr['event']);
+
+ if(array_key_exists('event_item',$arr) && $arr['event_item'])
+ sync_items($channel,$arr['event_item']);
+
+ if(array_key_exists('item',$arr) && $arr['item'])
+ sync_items($channel,$arr['item']);
+
+ if(array_key_exists('item_id',$arr) && $arr['item_id'])
+ sync_items($channel,$arr['item_id']);
+
+ if(array_key_exists('menu',$arr) && $arr['menu'])
+ sync_menus($channel,$arr['menu']);
+
if(array_key_exists('channel',$arr) && is_array($arr['channel']) && count($arr['channel'])) {
if(array_key_exists('channel_page_flags',$arr['channel']) && intval($arr['channel']['channel_pageflags'])) {
$arr['channel']['channel_removed'] = (($arr['channel']['channel_pageflags'] & 0x8000) ? 1 : 0);
diff --git a/install/update.php b/install/update.php
index 8e531b595..339d0cb25 100644
--- a/install/update.php
+++ b/install/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1151 );
+define( 'UPDATE_VERSION' , 1152 );
/**
*
@@ -1733,16 +1733,6 @@ function update_r1148() {
$r1 = q("alter table likes add i_mid char(255) not null default '' ");
$r2 = q("create index i_mid on likes ( i_mid ) ");
- $r3 = q("select likes.*, item.mid from from likes left join item on likes.iid = item.id");
- if($r3) {
- foreach($r3 as $rr) {
- q("update likes set i_mid = '%s' where id = $d",
- dbesc($rr['mid']),
- intval($rr['id'])
- );
- }
- }
-
if($r1 && $r2)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
@@ -1798,3 +1788,19 @@ function update_r1150() {
}
+function update_r1151() {
+
+ $r3 = q("select likes.*, item.mid from likes left join item on likes.iid = item.id");
+ if($r3) {
+ foreach($r3 as $rr) {
+ q("update likes set i_mid = '%s' where id = $d",
+ dbesc($rr['mid']),
+ intval($rr['id'])
+ );
+ }
+ }
+
+
+ return UPDATE_SUCCESS;
+
+}
diff --git a/mod/admin.php b/mod/admin.php
index 89207e4fa..2b7bb007d 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -84,48 +84,6 @@ function admin_content(&$a) {
return login(false);
}
- /*
- * Side bar links
- */
-
- // array( url, name, extra css classes )
-
- $aside = array(
- 'site' => array($a->get_baseurl(true)."/admin/site/", t("Site") , "site"),
- 'users' => array($a->get_baseurl(true)."/admin/users/", t("Accounts") , "users"),
- 'channels' => array($a->get_baseurl(true)."/admin/channels/", t("Channels") , "channels"),
- 'plugins' => array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"),
- 'themes' => array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"),
- 'queue' => array(z_root() . '/admin/queue', t('Inspect queue'), 'queue'),
-// 'hubloc' => array($a->get_baseurl(true)."/admin/hubloc/", t("Server") , "server"),
- 'profs' => array(z_root() . '/admin/profs', t('Profile Config'), 'profs'),
- 'dbsync' => array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync")
-
- );
-
- /* get plugins admin page */
-
- $r = q("SELECT * FROM addon WHERE plugin_admin = 1");
- $aside['plugins_admin'] = array();
- foreach ($r as $h){
- $plugin = $h['name'];
- $aside['plugins_admin'][] = array($a->get_baseurl(true) . '/admin/plugins/' . $plugin, $plugin, 'plugin');
- // temp plugins with admin
- $a->plugins_admin[] = $plugin;
- }
-
- $aside['logs'] = Array($a->get_baseurl(true)."/admin/logs/", t("Logs"), "logs");
-
- $t = get_markup_template("admin_aside.tpl");
- $a->page['aside'] .= replace_macros( $t, array(
- '$admin' => $aside,
- '$admtxt' => t('Admin'),
- '$plugadmtxt' => t('Plugin Features'),
- '$logtxt' => t('Logs'),
- '$h_pending' => t('User registrations waiting for confirmation'),
- '$admurl'=> $a->get_baseurl(true)."/admin/"
- ));
-
/*
* Page content
diff --git a/mod/chat.php b/mod/chat.php
index c2c11d0ab..9ad58bc32 100644
--- a/mod/chat.php
+++ b/mod/chat.php
@@ -62,11 +62,13 @@ function chat_post(&$a) {
chatroom_create($channel,$arr);
- $x = q("select cr_id from chatroom where cr_name = '%s' and cr_uid = %d limit 1",
+ $x = q("select * from chatroom where cr_name = '%s' and cr_uid = %d limit 1",
dbesc($room),
intval(local_channel())
);
+ create_sync_packet(0, array('chatroom' => $x));
+
if($x)
goaway(z_root() . '/chat/' . $channel['channel_address'] . '/' . $x[0]['cr_id']);
diff --git a/mod/editblock.php b/mod/editblock.php
index b4d954ef5..9269676b1 100644
--- a/mod/editblock.php
+++ b/mod/editblock.php
@@ -111,6 +111,7 @@ function editblock_content(&$a) {
$a->page['htmlhead'] .= replace_macros(get_markup_template('jot-header.tpl'), array(
'$baseurl' => $a->get_baseurl(),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$pretext' => '',
'$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => '',
'$nickname' => $channel['channel_address'],
diff --git a/mod/editlayout.php b/mod/editlayout.php
index 6ea7f4100..fc68cfe3c 100644
--- a/mod/editlayout.php
+++ b/mod/editlayout.php
@@ -105,6 +105,7 @@ function editlayout_content(&$a) {
$a->page['htmlhead'] .= replace_macros(get_markup_template('jot-header.tpl'), array(
'$baseurl' => $a->get_baseurl(),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$pretext' => '',
'$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
'$nickname' => $channel['channel_address'],
diff --git a/mod/editpost.php b/mod/editpost.php
index daca7c154..d4dc35ef8 100644
--- a/mod/editpost.php
+++ b/mod/editpost.php
@@ -47,6 +47,7 @@ function editpost_content(&$a) {
$a->page['htmlhead'] .= replace_macros(get_markup_template('jot-header.tpl'), array(
'$baseurl' => $a->get_baseurl(),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$pretext' => '',
'$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
'$nickname' => $channel['channel_address'],
diff --git a/mod/editwebpage.php b/mod/editwebpage.php
index 974e8cc38..0192fd9c0 100644
--- a/mod/editwebpage.php
+++ b/mod/editwebpage.php
@@ -146,6 +146,7 @@ function editwebpage_content(&$a) {
$a->page['htmlhead'] .= replace_macros(get_markup_template('jot-header.tpl'), array(
'$baseurl' => $a->get_baseurl(),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$pretext' => '',
'$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
'$nickname' => $channel['channel_address'],
diff --git a/mod/events.php b/mod/events.php
index 9120f8713..d76602a33 100755
--- a/mod/events.php
+++ b/mod/events.php
@@ -205,6 +205,23 @@ function events_post(&$a) {
$item_id = event_store_item($datarray,$event);
+ if($item_id) {
+ $r = q("select * from item where id = %d",
+ intval($item_id)
+ );
+ 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",
+ dbesc($r[0]['resource_id']),
+ intval($channel['channel_id'])
+ );
+ if($z) {
+ build_sync_packet($channel['channel_id'],array('event_item' => array(encode_item($sync_item[0],true)),'event' => $z));
+ }
+ }
+ }
+
if($share)
proc_run('php',"include/notifier.php","event","$item_id");
@@ -528,6 +545,9 @@ function events_content(&$a) {
dbesc($event_id),
intval(local_channel())
);
+
+ $sync_event = $r[0];
+
if($r) {
$r = q("delete from event where event_hash = '%s' and uid = %d limit 1",
dbesc($event_id),
@@ -538,6 +558,9 @@ function events_content(&$a) {
dbesc($event_id),
intval(local_channel())
);
+ $sync_event['event_deleted'] = 1;
+ build_sync_packet(0,array('event' => array($sync_event)));
+
info( t('Event removed') . EOL);
}
else {
diff --git a/mod/import.php b/mod/import.php
index c2ed82a0a..563967aa2 100644
--- a/mod/import.php
+++ b/mod/import.php
@@ -161,7 +161,6 @@ function import_post(&$a) {
}
-
if($completed < 3) {
if($data['photo']) {
@@ -169,8 +168,8 @@ function import_post(&$a) {
import_channel_photo(base64url_decode($data['photo']['data']),$data['photo']['type'],get_account_id(),$channel['channel_id']);
}
- if(is_array($data['profiles']))
- import_profiles($channel,$data['profiles']);
+ if(is_array($data['profile']))
+ import_profiles($channel,$data['profile']);
logger('import step 3');
$_SESSION['import_step'] = 3;
@@ -433,65 +432,35 @@ function import_post(&$a) {
if(is_array($data['obj']))
import_objs($channel,$data['obj']);
+ if(is_array($data['likes']))
+ import_likes($channel,$data['likes']);
+
if(is_array($data['app']))
import_apps($channel,$data['app']);
- $saved_notification_flags = notifications_off($channel['channel_id']);
+ if(is_array($data['chatroom']))
+ import_chatrooms($channel,$data['chatroom']);
- if($import_posts && array_key_exists('item',$data) && $data['item']) {
+ if(is_array($data['event']))
+ import_events($channel,$data['event']);
- foreach($data['item'] as $i) {
- $item = get_item_elements($i);
+ if(is_array($data['event_item']))
+ import_items($channel,$data['event_item']);
- $r = q("select id, edited from item where mid = '%s' and uid = %d limit 1",
- dbesc($item['mid']),
- intval($channel['channel_id'])
- );
- if($r) {
- if($item['edited'] > $r[0]['edited']) {
- $item['id'] = $r[0]['id'];
- $item['uid'] = $channel['channel_id'];
- item_store_update($item);
- continue;
- }
- }
- else {
- $item['aid'] = $channel['channel_account_id'];
- $item['uid'] = $channel['channel_id'];
- $item_result = item_store($item);
- }
+ if(is_array($data['menu']))
+ import_menus($channel,$data['menu']);
+
- }
+ $saved_notification_flags = notifications_off($channel['channel_id']);
- }
+ if($import_posts && array_key_exists('item',$data) && $data['item'])
+ import_items($channel,$data['item']);
notifications_on($channel['channel_id'],$saved_notification_flags);
- if(array_key_exists('item_id',$data) && $data['item_id']) {
- foreach($data['item_id'] as $i) {
- $r = q("select id from item where mid = '%s' and uid = %d limit 1",
- dbesc($i['mid']),
- intval($channel['channel_id'])
- );
- if(! $r)
- continue;
- $z = q("select * from item_id where service = '%s' and sid = '%s' and iid = %d and uid = %d limit 1",
- dbesc($i['service']),
- dbesc($i['sid']),
- intval($r[0]['id']),
- intval($channel['channel_id'])
- );
- if(! $z) {
- q("insert into item_id (iid,uid,sid,service) values(%d,%d,'%s','%s')",
- intval($r[0]['id']),
- intval($channel['channel_id']),
- dbesc($i['sid']),
- dbesc($i['service'])
- );
- }
- }
- }
+ if(array_key_exists('item_id',$data) && $data['item_id'])
+ import_item_ids($channel,$data['item_id']);
// FIXME - ensure we have a self entry if somebody is trying to pull a fast one
diff --git a/mod/import_items.php b/mod/import_items.php
index 1e54c0deb..6b97939c9 100644
--- a/mod/import_items.php
+++ b/mod/import_items.php
@@ -1,5 +1,6 @@
<?php
+require_once('include/import.php');
function import_items_post(&$a) {
@@ -88,57 +89,13 @@ function import_items_post(&$a) {
$saved_notification_flags = notifications_off($channel['channel_id']);
if(array_key_exists('item',$data) && $data['item']) {
-
- foreach($data['item'] as $i) {
- $item = get_item_elements($i);
-
- $r = q("select id, edited from item where mid = '%s' and uid = %d limit 1",
- dbesc($item['mid']),
- intval($channel['channel_id'])
- );
- if($r) {
- if($item['edited'] > $r[0]['edited']) {
- $item['id'] = $r[0]['id'];
- $item['uid'] = $channel['channel_id'];
- item_store_update($item);
- continue;
- }
- }
- else {
- $item['aid'] = $channel['channel_account_id'];
- $item['uid'] = $channel['channel_id'];
- $item_result = item_store($item);
- }
-
- }
-
+ import_items($channel,$data['item']);
}
notifications_on($channel['channel_id'],$saved_notification_flags);
if(array_key_exists('item_id',$data) && $data['item_id']) {
- foreach($data['item_id'] as $i) {
- $r = q("select id from item where mid = '%s' and uid = %d limit 1",
- dbesc($i['mid']),
- intval($channel['channel_id'])
- );
- if(! $r)
- continue;
- $z = q("select * from item_id where service = '%s' and sid = '%s' and iid = %d and uid = %d limit 1",
- dbesc($i['service']),
- dbesc($i['sid']),
- intval($r[0]['id']),
- intval($channel['channel_id'])
- );
- if(! $z) {
- q("insert into item_id (iid,uid,sid,service) values(%d,%d,'%s','%s')",
- intval($r[0]['id']),
- intval($channel['channel_id']),
- dbesc($i['sid']),
- dbesc($i['service'])
- );
- }
- }
+ import_item_ids($channel,$data['item_id']);
}
info( t('Import completed') . EOL);
diff --git a/mod/item.php b/mod/item.php
index c93560771..d0cf59091 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -805,6 +805,19 @@ function item_post(&$a) {
update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid);
+ if(! $parent) {
+ $r = q("select * from item where id = %d",
+ intval($post_id)
+ );
+ if($r) {
+ xchan_query($r);
+ $sync_item = fetch_post_tags($r);
+ $rid = q("select * from item_id where iid = %d",
+ intval($post_id)
+ );
+ build_sync_packet($uid,array('item' => array(encode_item($sync_item[0],true)),'item_id' => $rid));
+ }
+ }
if(! $nopush)
proc_run('php', "include/notifier.php", 'edit_post', $post_id);
@@ -884,14 +897,28 @@ function item_post(&$a) {
// NOTREACHED
}
- if($parent) {
+
+ update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid);
+
+ if(($parent) && ($parent != $post_id)) {
// Store the comment signature information in case we need to relay to Diaspora
$ditem = $datarray;
$ditem['author'] = $observer;
store_diaspora_comment_sig($ditem,$channel,$parent_item, $post_id, (($walltowall_comment) ? 1 : 0));
}
-
- update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid);
+ else {
+ $r = q("select * from item where id = %d",
+ intval($post_id)
+ );
+ if($r) {
+ xchan_query($r);
+ $sync_item = fetch_post_tags($r);
+ $rid = q("select * from item_id where iid = %d",
+ intval($post_id)
+ );
+ build_sync_packet($uid,array('item' => array(encode_item($sync_item[0],true)),'item_id' => $rid));
+ }
+ }
$datarray['id'] = $post_id;
$datarray['llink'] = $a->get_baseurl() . '/display/' . $channel['channel_address'] . '/' . $post_id;
@@ -903,6 +930,11 @@ function item_post(&$a) {
logger('post_complete');
+
+
+
+
+
// figure out how to return, depending on from whence we came
if($api_source)
diff --git a/mod/like.php b/mod/like.php
index 42ff9bb8a..ce8bc3063 100755
--- a/mod/like.php
+++ b/mod/like.php
@@ -219,13 +219,23 @@ function like_content(&$a) {
);
if($z) {
+ $z[0]['deleted'] = 1;
+ build_sync_packet($ch[0]['channel_id'],array('likes' => $z));
+
q("delete from likes where id = %d limit 1",
intval($z[0]['id'])
);
- drop_item($z[0]['iid'],false);
- if($interactive) {
- notice( t('Previous action reversed.') . EOL);
- return $o;
+ 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);
+ return $o;
+ }
}
killme();
}
@@ -490,7 +500,18 @@ function like_content(&$a) {
dbesc($obj_id),
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($mid),
+ dbesc($activity),
+ dbesc(($tgttype)? $tgttype : $objtype),
+ dbesc($obj_id)
+ );
+ if($r)
+ build_sync_packet($ch[0]['channel_id'],array('likes' => $r));
+
+ }
proc_run('php',"include/notifier.php","like","$post_id");
diff --git a/mod/menu.php b/mod/menu.php
index 7763c4ed1..bfc45adef 100644
--- a/mod/menu.php
+++ b/mod/menu.php
@@ -37,6 +37,7 @@ function menu_post(&$a) {
$_REQUEST['menu_id'] = intval(argv(1));
$r = menu_edit($_REQUEST);
if($r) {
+ menu_sync_packet($uid,get_observer_hash(),$menu_id);
//info( t('Menu updated.') . EOL);
goaway(z_root() . '/mitem/' . $menu_id . (($a->is_sys) ? '?f=&sys=1' : ''));
}
@@ -45,7 +46,9 @@ function menu_post(&$a) {
}
else {
$r = menu_create($_REQUEST);
- if($r) {
+ if($r) {
+ menu_sync_packet($uid,get_observer_hash(),$r);
+
//info( t('Menu created.') . EOL);
goaway(z_root() . '/mitem/' . $r . (($a->is_sys) ? '?f=&sys=1' : ''));
}
@@ -56,6 +59,8 @@ function menu_post(&$a) {
}
+
+
function menu_content(&$a) {
$uid = local_channel();
@@ -121,6 +126,7 @@ function menu_content(&$a) {
if(intval(argv(1))) {
if(argc() == 3 && argv(2) == 'drop') {
+ menu_sync_packet($uid,get_observer_hash(),intval(argv(1)),true);
$r = menu_delete_id(intval(argv(1)),$uid);
if(!$r)
notice( t('Menu could not be deleted.'). EOL);
diff --git a/mod/mitem.php b/mod/mitem.php
index 0fadd1548..d6572bd56 100644
--- a/mod/mitem.php
+++ b/mod/mitem.php
@@ -64,6 +64,7 @@ function mitem_post(&$a) {
$_REQUEST['mitem_id'] = $mitem_id;
$r = menu_edit_item($_REQUEST['menu_id'],$uid,$_REQUEST);
if($r) {
+ menu_sync_packet($uid,get_observer_hash(),$_REQUEST['menu_id']);
//info( t('Menu element updated.') . EOL);
goaway(z_root() . '/mitem/' . $_REQUEST['menu_id'] . (($a->is_sys) ? '?f=&sys=1' : ''));
}
@@ -74,6 +75,7 @@ function mitem_post(&$a) {
else {
$r = menu_add_item($_REQUEST['menu_id'],$uid,$_REQUEST);
if($r) {
+ menu_sync_packet($uid,get_observer_hash(),$_REQUEST['menu_id']);
//info( t('Menu element added.') . EOL);
if($_REQUEST['submit']) {
goaway(z_root() . '/menu' . (($a->is_sys) ? '?f=&sys=1' : ''));
@@ -202,7 +204,9 @@ function mitem_content(&$a) {
$lockstate = (($mitem['allow_cid'] || $mitem['allow_gid'] || $mitem['deny_cid'] || $mitem['deny_gid']) ? 'lock' : 'unlock');
if(argc() == 4 && argv(3) == 'drop') {
+ menu_sync_packet($uid,get_observer_hash(),$mitem['mitem_menu_id']);
$r = menu_del_item($mitem['mitem_menu_id'], $uid, intval(argv(2)));
+ menu_sync_packet($uid,get_observer_hash(),$mitem['mitem_menu_id']);
if($r)
info( t('Menu item deleted.') . EOL);
else
diff --git a/mod/network.php b/mod/network.php
index d5e305687..53de975a4 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -115,6 +115,8 @@ function network_content(&$a, $update = 0, $load = false) {
$file = ((x($_GET,'file')) ? $_GET['file'] : '');
+ $deftag = '';
+
if(x($_GET,'search') || x($_GET,'file'))
$nouveau = true;
if($cid) {
@@ -130,7 +132,10 @@ function network_content(&$a, $update = 0, $load = false) {
goaway($a->get_baseurl(true) . '/network');
// NOTREACHED
}
- $def_acl = array('allow_cid' => '<' . $r[0]['abook_xchan'] . '>');
+ if($_GET['pf'] === '1')
+ $deftag = '@' . t('forum') . '+' . intval($cid) . '+';
+ else
+ $def_acl = array('allow_cid' => '<' . $r[0]['abook_xchan'] . '>');
}
if(! $update) {
@@ -153,17 +158,21 @@ function network_content(&$a, $update = 0, $load = false) {
'deny_gid' => $channel['channel_deny_gid']
);
+ $private_editing = ((($group || $cid) && (! intval($_GET['pf']))) ? true : false);
+
$x = array(
'is_owner' => true,
'allow_location' => ((intval(get_pconfig($channel['channel_id'],'system','use_browser_location'))) ? '1' : ''),
'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((($group || $cid) ? $def_acl : $channel_acl)),
- 'bang' => (($group || $cid) ? '!' : ''),
+ 'lockstate' => (($private_editing || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
+ 'acl' => populate_acl((($private_editing) ? $def_acl : $channel_acl)),
+ 'bang' => (($private_editing) ? '!' : ''),
'visitor' => true,
'profile_uid' => local_channel()
);
+ if($deftag)
+ $x['pretext'] = $deftag;
$status_editor = status_editor($a,$x);
$o .= $status_editor;
@@ -223,7 +232,7 @@ function network_content(&$a, $update = 0, $load = false) {
if($r) {
$sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND uid = " . intval(local_channel()) . " AND ( author_xchan = '" . dbesc($r[0]['abook_xchan']) . "' or owner_xchan = '" . dbesc($r[0]['abook_xchan']) . "' ) $item_normal ) ";
$title = replace_macros(get_markup_template("section_title.tpl"),array(
- '$title' => t('Connection: ') . $r[0]['xchan_name']
+ '$title' => '<a href="' . zid($r[0]['xchan_url']) . '" ><img src="' . zid($r[0]['xchan_photo_s']) . '" alt="' . urlencode($r[0]['xchan_name']) . '" /></a> <a href="' . zid($r[0]['xchan_url']) . '" >' . $r[0]['xchan_name'] . '</a>'
));
$o = $tabs;
$o .= $title;
diff --git a/mod/photos.php b/mod/photos.php
index d06a8e69c..f48603d71 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -85,7 +85,7 @@ function photos_post(&$a) {
$owner_record = $s[0];
- $acl = AccessList($a->data['channel']);
+ $acl = new AccessList($a->data['channel']);
if((argc() > 3) && (argv(2) === 'album')) {
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index 13923a655..7564a3f69 100644
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -130,7 +130,7 @@ function profile_photo_post(&$a) {
if($r) {
$base_image = $r[0];
- $base_image['data'] = dbunescbin($base_image['data']);
+ $base_image['data'] = (($r[0]['os_storage']) ? @file_get_contents($base_image['data']) : dbunescbin($base_image['data']));
$im = photo_factory($base_image['data'], $base_image['type']);
if($im->is_valid()) {
@@ -238,16 +238,19 @@ function profile_photo_post(&$a) {
notice( t('Image upload failed.') . EOL );
return;
}
+ $os_storage = false;
+
foreach($i as $ii) {
if(intval($ii['scale']) < 2) {
$smallest = intval($ii['scale']);
+ $os_storage = intval($ii['os_storage']);
$imagedata = $ii['data'];
$filetype = $ii['type'];
}
}
}
-// $imagedata = @file_get_contents($src);
+ $imagedata = (($os_storage) ? @file_get_contents($imagedata) : $imagedata);
$ph = photo_factory($imagedata, $filetype);
if(! $ph->is_valid()) {
@@ -332,7 +335,7 @@ function profile_photo_content(&$a) {
goaway($a->get_baseurl() . '/profiles');
}
- $r = q("SELECT `data`, `type` FROM photo WHERE id = %d and uid = %d limit 1",
+ $r = q("SELECT `data`, `type`, resource_id, os_storage FROM photo WHERE id = %d and uid = %d limit 1",
intval($r[0]['id']),
intval(local_channel())
@@ -342,9 +345,31 @@ function profile_photo_content(&$a) {
return;
}
- $ph = photo_factory(dbunescbin($r[0]['data']), $r[0]['type']);
- // go ahead as if we have just uploaded a new photo to crop
- profile_photo_crop_ui_head($a, $ph);
+ if(intval($r[0]['os_storage']))
+ $data = @file_get_contents($r[0]['data']);
+ else
+ $data = dbunescbin($r[0]['data']);
+
+ $ph = photo_factory($data, $r[0]['type']);
+ $smallest = 0;
+ if($ph->is_valid()) {
+ // go ahead as if we have just uploaded a new photo to crop
+ $i = q("select resource_id, scale from photo where resource_id = '%s' and uid = %d order by scale",
+ dbesc($r[0]['resource_id']),
+ intval(local_channel())
+ );
+
+ if($i) {
+ $hash = $i[0]['resource_id'];
+ foreach($i as $ii) {
+ if(intval($ii['scale']) < 2) {
+ $smallest = intval($ii['scale']);
+ }
+ }
+ }
+ }
+
+ profile_photo_crop_ui_head($a, $ph, $hash, $smallest);
}
$profiles = q("select id, profile_name as name, is_default from profile where uid = %d",
diff --git a/mod/public.php b/mod/public.php
index 2106be7a6..45edda6c0 100644
--- a/mod/public.php
+++ b/mod/public.php
@@ -22,7 +22,7 @@ function public_content(&$a, $update = 0, $load = false) {
$maxheight = get_config('system','home_divmore_height');
if(! $maxheight)
- $maxheight = 75;
+ $maxheight = 400;
$o .= '<div id="live-public"></div>' . "\r\n";
$o .= "<script> var profile_uid = " . ((intval(local_channel())) ? local_channel() : (-1))
@@ -80,10 +80,12 @@ function public_content(&$a, $update = 0, $load = false) {
$a->data['firehose'] = intval($sys['channel_id']);
}
+ if(get_config('system','public_list_mode'))
+ $page_mode = 'list';
+ else
+ $page_mode = 'client';
- $page_mode = 'list';
-
$simple_update = (($update) ? " and item.item_unseen = 1 " : '');
if($update && $_SESSION['loadtime'])
diff --git a/mod/rpost.php b/mod/rpost.php
index 4a6b87cc6..d519a996b 100644
--- a/mod/rpost.php
+++ b/mod/rpost.php
@@ -94,15 +94,13 @@ function rpost_content(&$a) {
$channel = $a->get_channel();
- $channel_acl = array(
- 'allow_cid' => $channel['channel_allow_cid'],
- 'allow_gid' => $channel['channel_allow_gid'],
- 'deny_cid' => $channel['channel_deny_cid'],
- 'deny_gid' => $channel['channel_deny_gid']
- );
+
+ $acl = new AccessList($channel);
+
+ $channel_acl = $acl->get();
if($_REQUEST['url']) {
- $x = z_fetch_url(z_root() . '/urlinfo?f=&url=' . urlencode($_REQUEST['url']));
+ $x = z_fetch_url(z_root() . '/linkinfo?f=&url=' . urlencode($_REQUEST['url']));
if($x['success'])
$_REQUEST['body'] = $_REQUEST['body'] . $x['body'];
}
@@ -112,8 +110,7 @@ function rpost_content(&$a) {
'allow_location' => ((intval(get_pconfig($channel['channel_id'],'system','use_browser_location'))) ? '1' : ''),
'default_location' => $channel['channel_location'],
'nickname' => $channel['channel_address'],
- 'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid']
- || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
+ 'lockstate' => (($acl->is_private()) ? 'lock' : 'unlock'),
'acl' => populate_acl($channel_acl),
'bang' => '',
'visitor' => true,
diff --git a/mod/zfinger.php b/mod/zfinger.php
index ba80fc9b6..54ea52bc9 100644
--- a/mod/zfinger.php
+++ b/mod/zfinger.php
@@ -116,7 +116,7 @@ function zfinger_init(&$a) {
$t = q("select abook_my_perms from abook where abook_channel = %d and abook_self = 1 limit 1",
intval($e['channel_id'])
);
- if($t && ($t[0]['abook_my_perms'] & PERMS_W_TAGWALL))
+ if(($t) && (($t[0]['abook_my_perms'] & PERMS_W_TAGWALL) && (! ($t[0]['abook_my_perms'] & PERMS_W_STREAM))))
$public_forum = true;
}
diff --git a/version.inc b/version.inc
index da2499cde..763c01a75 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2015-09-02.1143
+2015-09-10.1151
diff --git a/view/es/messages.po b/view/es/messages.po
index 995124a85..044a6c49c 100644
--- a/view/es/messages.po
+++ b/view/es/messages.po
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-08-21 00:04-0700\n"
-"PO-Revision-Date: 2015-08-29 14:42+0000\n"
+"POT-Creation-Date: 2015-09-04 00:04-0700\n"
+"PO-Revision-Date: 2015-09-08 11:08+0000\n"
"Last-Translator: Manuel Jiménez Friaza <mjfriaza@openmailbox.org>\n"
"Language-Team: Spanish (http://www.transifex.com/Friendica/red-matrix/language/es/)\n"
"MIME-Version: 1.0\n"
@@ -37,9 +37,9 @@ msgstr "Fotos de perfil"
#: ../../include/menu.php:107 ../../include/page_widgets.php:8
#: ../../include/page_widgets.php:36 ../../include/RedDAV/RedBrowser.php:266
#: ../../include/ItemObject.php:100 ../../include/apps.php:254
-#: ../../mod/webpages.php:181 ../../mod/thing.php:227
-#: ../../mod/connections.php:382 ../../mod/connections.php:395
-#: ../../mod/connections.php:414 ../../mod/blocks.php:153
+#: ../../mod/webpages.php:181 ../../mod/thing.php:255
+#: ../../mod/connections.php:242 ../../mod/connections.php:255
+#: ../../mod/connections.php:274 ../../mod/blocks.php:153
#: ../../mod/editpost.php:106 ../../mod/editlayout.php:133
#: ../../mod/editwebpage.php:178 ../../mod/editblock.php:134
#: ../../mod/menu.php:103 ../../mod/settings.php:650 ../../mod/layouts.php:183
@@ -84,7 +84,7 @@ msgstr "RSS/Atom"
#: ../../include/contact_selectors.php:79 ../../mod/admin.php:822
#: ../../mod/admin.php:831 ../../mod/id.php:15 ../../mod/id.php:16
-#: ../../boot.php:1553
+#: ../../boot.php:1552
msgid "Email"
msgstr "Correo electrónico"
@@ -129,7 +129,7 @@ msgstr "No se ha encontrado el nombre de usuario en el fichero importado."
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."
-#: ../../include/Import/import_diaspora.php:140 ../../mod/import.php:530
+#: ../../include/Import/import_diaspora.php:140 ../../mod/import.php:562
msgid "Import completed."
msgstr "Importación completada."
@@ -262,7 +262,7 @@ msgstr "AAAA-MM-DD o MM-DD"
msgid "Required"
msgstr "Obligatorio"
-#: ../../include/datetime.php:262 ../../boot.php:2354
+#: ../../include/datetime.php:262 ../../boot.php:2353
msgid "never"
msgstr "nunca"
@@ -357,9 +357,9 @@ msgstr "Modo seguro"
#: ../../mod/menu.php:147 ../../mod/filestorage.php:151
#: ../../mod/filestorage.php:159 ../../mod/admin.php:428
#: ../../mod/settings.php:579 ../../mod/removeme.php:60
-#: ../../mod/connedit.php:635 ../../mod/connedit.php:663
+#: ../../mod/connedit.php:647 ../../mod/connedit.php:675
#: ../../view/theme/redbasic/php/config.php:104
-#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1555
+#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1554
msgid "No"
msgstr "No"
@@ -371,7 +371,7 @@ msgstr "No"
#: ../../mod/filestorage.php:159 ../../mod/admin.php:430
#: ../../mod/settings.php:579 ../../mod/removeme.php:60
#: ../../view/theme/redbasic/php/config.php:104
-#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1555
+#: ../../view/theme/redbasic/php/config.php:129 ../../boot.php:1554
msgid "Yes"
msgstr "Sí"
@@ -393,7 +393,7 @@ msgid "View"
msgstr "Ver"
#: ../../include/page_widgets.php:40 ../../include/ItemObject.php:677
-#: ../../include/conversation.php:1155 ../../mod/webpages.php:188
+#: ../../include/conversation.php:1166 ../../mod/webpages.php:188
#: ../../mod/events.php:667 ../../mod/editpost.php:143
#: ../../mod/photos.php:982 ../../mod/editwebpage.php:214
#: ../../mod/editblock.php:170
@@ -422,7 +422,7 @@ msgstr "Creado"
msgid "Edited"
msgstr "Editado"
-#: ../../include/api.php:1214
+#: ../../include/api.php:1234
msgid "Public Timeline"
msgstr "Cronología pública"
@@ -442,7 +442,7 @@ msgstr "Comentar"
#: ../../include/js_strings.php:7 ../../include/ItemObject.php:384
msgid "[+] show all"
-msgstr "[+] mostrar todo"
+msgstr "[+] mostrar todo:"
#: ../../include/js_strings.php:8
msgid "[-] show less"
@@ -493,7 +493,7 @@ msgid "Rate This Channel (this is public)"
msgstr "Valorar este canal (esto es público)"
#: ../../include/js_strings.php:20 ../../mod/rate.php:156
-#: ../../mod/connedit.php:671
+#: ../../mod/connedit.php:683
msgid "Rating"
msgstr "Valoración"
@@ -502,11 +502,11 @@ msgid "Describe (optional)"
msgstr "Describir (opcional)"
#: ../../include/js_strings.php:22 ../../include/ItemObject.php:668
-#: ../../mod/xchan.php:11 ../../mod/connect.php:93 ../../mod/thing.php:275
-#: ../../mod/thing.php:318 ../../mod/events.php:494 ../../mod/events.php:670
+#: ../../mod/xchan.php:11 ../../mod/connect.php:93 ../../mod/thing.php:303
+#: ../../mod/thing.php:346 ../../mod/events.php:494 ../../mod/events.php:670
#: ../../mod/group.php:81 ../../mod/photos.php:577 ../../mod/photos.php:654
#: ../../mod/photos.php:941 ../../mod/photos.php:981 ../../mod/photos.php:1099
-#: ../../mod/pdledit.php:58 ../../mod/import.php:560 ../../mod/chat.php:177
+#: ../../mod/pdledit.php:58 ../../mod/import.php:592 ../../mod/chat.php:177
#: ../../mod/chat.php:211 ../../mod/mitem.php:232 ../../mod/rate.php:167
#: ../../mod/invite.php:142 ../../mod/locs.php:105 ../../mod/sources.php:104
#: ../../mod/sources.php:138 ../../mod/filestorage.php:156
@@ -518,7 +518,7 @@ msgstr "Describir (opcional)"
#: ../../mod/settings.php:718 ../../mod/settings.php:746
#: ../../mod/settings.php:769 ../../mod/settings.php:854
#: ../../mod/settings.php:1050 ../../mod/mood.php:134
-#: ../../mod/connedit.php:692 ../../mod/mail.php:355 ../../mod/appman.php:99
+#: ../../mod/connedit.php:704 ../../mod/mail.php:355 ../../mod/appman.php:99
#: ../../mod/pconfig.php:108 ../../mod/poll.php:68
#: ../../mod/bulksetclose.php:24 ../../view/theme/apw/php/config.php:256
#: ../../view/theme/redbasic/php/config.php:99
@@ -606,358 +606,358 @@ msgstr " "
msgid "timeago.numbers"
msgstr "timeago.numbers"
-#: ../../include/text.php:395
+#: ../../include/text.php:391
msgid "prev"
msgstr "anterior"
-#: ../../include/text.php:397
+#: ../../include/text.php:393
msgid "first"
msgstr "primera"
-#: ../../include/text.php:426
+#: ../../include/text.php:422
msgid "last"
msgstr "última"
-#: ../../include/text.php:429
+#: ../../include/text.php:425
msgid "next"
msgstr "próxima"
-#: ../../include/text.php:439
+#: ../../include/text.php:435
msgid "older"
msgstr "más antiguas"
-#: ../../include/text.php:441
+#: ../../include/text.php:437
msgid "newer"
msgstr "más recientes"
-#: ../../include/text.php:834
+#: ../../include/text.php:830
msgid "No connections"
msgstr "Sin conexiones"
-#: ../../include/text.php:848
+#: ../../include/text.php:844
#, php-format
msgid "%d Connection"
msgid_plural "%d Connections"
msgstr[0] "%d Conexión"
msgstr[1] "%d Conexiones"
-#: ../../include/text.php:861 ../../mod/viewconnections.php:104
+#: ../../include/text.php:857 ../../mod/viewconnections.php:104
msgid "View Connections"
msgstr "Ver conexiones"
-#: ../../include/text.php:918 ../../include/text.php:930
+#: ../../include/text.php:914 ../../include/text.php:926
#: ../../include/nav.php:165 ../../include/apps.php:147
#: ../../mod/search.php:38
msgid "Search"
msgstr "Buscar"
-#: ../../include/text.php:919 ../../include/text.php:931
+#: ../../include/text.php:915 ../../include/text.php:927
#: ../../include/widgets.php:192 ../../mod/rbmark.php:28
#: ../../mod/rbmark.php:98 ../../mod/filer.php:50 ../../mod/admin.php:1457
#: ../../mod/admin.php:1477
msgid "Save"
msgstr "Guardar"
-#: ../../include/text.php:994
+#: ../../include/text.php:990
msgid "poke"
msgstr "dar un toque"
-#: ../../include/text.php:994 ../../include/conversation.php:243
+#: ../../include/text.php:990 ../../include/conversation.php:243
msgid "poked"
msgstr "ha recibido un toque"
-#: ../../include/text.php:995
+#: ../../include/text.php:991
msgid "ping"
msgstr "avisar"
-#: ../../include/text.php:995
+#: ../../include/text.php:991
msgid "pinged"
msgstr "avisado/a"
-#: ../../include/text.php:996
+#: ../../include/text.php:992
msgid "prod"
msgstr "incitar"
-#: ../../include/text.php:996
+#: ../../include/text.php:992
msgid "prodded"
msgstr "incitado/a"
-#: ../../include/text.php:997
+#: ../../include/text.php:993
msgid "slap"
msgstr "abofetear"
-#: ../../include/text.php:997
+#: ../../include/text.php:993
msgid "slapped"
msgstr "abofeteado/a"
-#: ../../include/text.php:998
+#: ../../include/text.php:994
msgid "finger"
msgstr "señalar"
-#: ../../include/text.php:998
+#: ../../include/text.php:994
msgid "fingered"
msgstr "señalado/a"
-#: ../../include/text.php:999
+#: ../../include/text.php:995
msgid "rebuff"
msgstr "desairar"
-#: ../../include/text.php:999
+#: ../../include/text.php:995
msgid "rebuffed"
msgstr "desairado/a"
-#: ../../include/text.php:1009
+#: ../../include/text.php:1005
msgid "happy"
msgstr "feliz"
-#: ../../include/text.php:1010
+#: ../../include/text.php:1006
msgid "sad"
msgstr "triste"
-#: ../../include/text.php:1011
+#: ../../include/text.php:1007
msgid "mellow"
msgstr "amable"
-#: ../../include/text.php:1012
+#: ../../include/text.php:1008
msgid "tired"
msgstr "cansado/a"
-#: ../../include/text.php:1013
+#: ../../include/text.php:1009
msgid "perky"
msgstr "fesco/a"
-#: ../../include/text.php:1014
+#: ../../include/text.php:1010
msgid "angry"
msgstr "enfadado/a"
-#: ../../include/text.php:1015
+#: ../../include/text.php:1011
msgid "stupified"
msgstr "estupefacto/a"
-#: ../../include/text.php:1016
+#: ../../include/text.php:1012
msgid "puzzled"
msgstr "perplejo/a"
-#: ../../include/text.php:1017
+#: ../../include/text.php:1013
msgid "interested"
msgstr "interesado/a"
-#: ../../include/text.php:1018
+#: ../../include/text.php:1014
msgid "bitter"
msgstr "amargado/a"
-#: ../../include/text.php:1019
+#: ../../include/text.php:1015
msgid "cheerful"
msgstr "alegre"
-#: ../../include/text.php:1020
+#: ../../include/text.php:1016
msgid "alive"
msgstr "vivo/a"
-#: ../../include/text.php:1021
+#: ../../include/text.php:1017
msgid "annoyed"
msgstr "molesto/a"
-#: ../../include/text.php:1022
+#: ../../include/text.php:1018
msgid "anxious"
msgstr "ansioso/a"
-#: ../../include/text.php:1023
+#: ../../include/text.php:1019
msgid "cranky"
msgstr "de mal humor"
-#: ../../include/text.php:1024
+#: ../../include/text.php:1020
msgid "disturbed"
msgstr "perturbado/a"
-#: ../../include/text.php:1025
+#: ../../include/text.php:1021
msgid "frustrated"
msgstr "frustrado/a"
-#: ../../include/text.php:1026
+#: ../../include/text.php:1022
msgid "depressed"
msgstr "deprimido/a"
-#: ../../include/text.php:1027
+#: ../../include/text.php:1023
msgid "motivated"
msgstr "motivado/a"
-#: ../../include/text.php:1028
+#: ../../include/text.php:1024
msgid "relaxed"
msgstr "relajado/a"
-#: ../../include/text.php:1029
+#: ../../include/text.php:1025
msgid "surprised"
msgstr "sorprendido/a"
-#: ../../include/text.php:1201
+#: ../../include/text.php:1197
msgid "Monday"
msgstr "lunes"
-#: ../../include/text.php:1201
+#: ../../include/text.php:1197
msgid "Tuesday"
msgstr "martes"
-#: ../../include/text.php:1201
+#: ../../include/text.php:1197
msgid "Wednesday"
msgstr "miércoles"
-#: ../../include/text.php:1201
+#: ../../include/text.php:1197
msgid "Thursday"
msgstr "jueves"
-#: ../../include/text.php:1201
+#: ../../include/text.php:1197
msgid "Friday"
msgstr "viernes"
-#: ../../include/text.php:1201
+#: ../../include/text.php:1197
msgid "Saturday"
msgstr "sábado"
-#: ../../include/text.php:1201
+#: ../../include/text.php:1197
msgid "Sunday"
msgstr "domingo"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "January"
msgstr "enero"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "February"
msgstr "febrero"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "March"
msgstr "marzo"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "April"
msgstr "abril"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "May"
msgstr "mayo"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "June"
msgstr "junio"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "July"
msgstr "julio"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "August"
msgstr "agosto"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "September"
msgstr "septiembre"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "October"
msgstr "octubre"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "November"
msgstr "noviembre"
-#: ../../include/text.php:1205
+#: ../../include/text.php:1201
msgid "December"
msgstr "diciembre"
-#: ../../include/text.php:1310
+#: ../../include/text.php:1306
msgid "unknown.???"
msgstr "desconocido???"
-#: ../../include/text.php:1311
+#: ../../include/text.php:1307
msgid "bytes"
msgstr "bytes"
-#: ../../include/text.php:1347
+#: ../../include/text.php:1343
msgid "remove category"
msgstr "eliminar categoría"
-#: ../../include/text.php:1422
+#: ../../include/text.php:1418
msgid "remove from file"
msgstr "eliminar del fichero"
-#: ../../include/text.php:1498 ../../include/text.php:1509
+#: ../../include/text.php:1494 ../../include/text.php:1505
msgid "Click to open/close"
msgstr "Pulsar para abrir/cerrar"
-#: ../../include/text.php:1665 ../../mod/events.php:457
+#: ../../include/text.php:1661 ../../mod/events.php:457
msgid "Link to Source"
-msgstr "Ir al mensaje original"
+msgstr "Enlazar con la entrada en su ubicación original"
-#: ../../include/text.php:1686 ../../include/text.php:1757
+#: ../../include/text.php:1682 ../../include/text.php:1753
msgid "default"
msgstr "por defecto"
-#: ../../include/text.php:1694
+#: ../../include/text.php:1690
msgid "Page layout"
msgstr "Formato de la página"
-#: ../../include/text.php:1694
+#: ../../include/text.php:1690
msgid "You can create your own with the layouts tool"
msgstr "Puede crear su propio formato gráfico con las herramientas de diseño"
-#: ../../include/text.php:1735
+#: ../../include/text.php:1731
msgid "Page content type"
msgstr "Tipo de contenido de página"
-#: ../../include/text.php:1769
+#: ../../include/text.php:1765
msgid "Select an alternate language"
msgstr "Selecciona un idioma alternativo"
-#: ../../include/text.php:1888 ../../include/diaspora.php:2119
+#: ../../include/text.php:1884 ../../include/diaspora.php:2119
#: ../../include/conversation.php:120 ../../mod/like.php:346
#: ../../mod/subthread.php:72 ../../mod/subthread.php:174
#: ../../mod/tagger.php:43
msgid "photo"
msgstr "foto"
-#: ../../include/text.php:1891 ../../include/conversation.php:123
+#: ../../include/text.php:1887 ../../include/conversation.php:123
#: ../../mod/like.php:348 ../../mod/tagger.php:47
msgid "event"
msgstr "evento"
-#: ../../include/text.php:1894 ../../include/diaspora.php:2119
+#: ../../include/text.php:1890 ../../include/diaspora.php:2119
#: ../../include/conversation.php:148 ../../mod/like.php:346
#: ../../mod/subthread.php:72 ../../mod/subthread.php:174
msgid "status"
msgstr "estado"
-#: ../../include/text.php:1896 ../../include/conversation.php:150
+#: ../../include/text.php:1892 ../../include/conversation.php:150
#: ../../mod/tagger.php:53
msgid "comment"
msgstr "comentario"
-#: ../../include/text.php:1901
+#: ../../include/text.php:1897
msgid "activity"
msgstr "actividad"
-#: ../../include/text.php:2196
+#: ../../include/text.php:2192
msgid "Design Tools"
msgstr "Herramientas de diseño"
-#: ../../include/text.php:2199 ../../mod/blocks.php:147
+#: ../../include/text.php:2195 ../../mod/blocks.php:147
msgid "Blocks"
msgstr "Bloques"
-#: ../../include/text.php:2200 ../../mod/menu.php:98
+#: ../../include/text.php:2196 ../../mod/menu.php:98
msgid "Menus"
msgstr "Menús"
-#: ../../include/text.php:2201 ../../mod/layouts.php:174
+#: ../../include/text.php:2197 ../../mod/layouts.php:174
msgid "Layouts"
msgstr "Formato gráfico"
-#: ../../include/text.php:2202
+#: ../../include/text.php:2198
msgid "Pages"
msgstr "Páginas"
-#: ../../include/text.php:2553 ../../include/RedDAV/RedBrowser.php:131
+#: ../../include/text.php:2549 ../../include/RedDAV/RedBrowser.php:131
msgid "Collection"
msgstr "Colección"
@@ -986,7 +986,7 @@ msgstr "Programar bandeja de entrada"
msgid "Schedule Outbox"
msgstr "Programar bandeja de salida"
-#: ../../include/RedDAV/RedBrowser.php:164 ../../include/conversation.php:1019
+#: ../../include/RedDAV/RedBrowser.php:164 ../../include/conversation.php:1030
#: ../../include/apps.php:336 ../../include/apps.php:387
#: ../../mod/photos.php:693 ../../mod/photos.php:1131
msgid "Unknown"
@@ -1003,7 +1003,7 @@ msgid "%1$s used of %2$s (%3$s&#37;)"
msgstr "%1$s usado de %2$s (%3$s&#37;)"
#: ../../include/RedDAV/RedBrowser.php:251 ../../include/nav.php:98
-#: ../../include/conversation.php:1609 ../../include/apps.php:135
+#: ../../include/conversation.php:1620 ../../include/apps.php:135
#: ../../mod/fbrowser.php:114
msgid "Files"
msgstr "Ficheros"
@@ -1048,12 +1048,12 @@ msgid "Last Modified"
msgstr "Última modificación"
#: ../../include/RedDAV/RedBrowser.php:267 ../../include/ItemObject.php:120
-#: ../../include/conversation.php:660 ../../include/apps.php:255
-#: ../../mod/webpages.php:183 ../../mod/thing.php:228 ../../mod/group.php:176
+#: ../../include/conversation.php:671 ../../include/apps.php:255
+#: ../../mod/webpages.php:183 ../../mod/thing.php:256 ../../mod/group.php:176
#: ../../mod/blocks.php:155 ../../mod/photos.php:1062
#: ../../mod/editlayout.php:178 ../../mod/editwebpage.php:225
#: ../../mod/editblock.php:180 ../../mod/admin.php:826 ../../mod/admin.php:988
-#: ../../mod/settings.php:651 ../../mod/connedit.php:551
+#: ../../mod/settings.php:651 ../../mod/connedit.php:563
msgid "Delete"
msgstr "Borrar"
@@ -1366,7 +1366,7 @@ msgstr "Aplicaciones"
msgid "System"
msgstr "Sistema"
-#: ../../include/widgets.php:94 ../../include/conversation.php:1504
+#: ../../include/widgets.php:94 ../../include/conversation.php:1515
msgid "Personal"
msgstr "Personales"
@@ -1379,8 +1379,8 @@ msgid "Edit Personal App"
msgstr "Editar una aplicación personal"
#: ../../include/widgets.php:136 ../../include/widgets.php:175
-#: ../../include/Contact.php:107 ../../include/conversation.php:945
-#: ../../include/identity.php:880 ../../mod/directory.php:316
+#: ../../include/Contact.php:107 ../../include/conversation.php:956
+#: ../../include/identity.php:903 ../../mod/directory.php:316
#: ../../mod/match.php:64 ../../mod/suggest.php:52
msgid "Connect"
msgstr "Conectar"
@@ -1389,7 +1389,7 @@ msgstr "Conectar"
msgid "Ignore/Hide"
msgstr "Ignorar/Ocultar"
-#: ../../include/widgets.php:143 ../../mod/connections.php:268
+#: ../../include/widgets.php:143 ../../mod/connections.php:128
msgid "Suggestions"
msgstr "Sugerencias"
@@ -1431,11 +1431,11 @@ msgstr "Todo"
msgid "Archives"
msgstr "Hemeroteca"
-#: ../../include/widgets.php:429 ../../mod/connedit.php:571
+#: ../../include/widgets.php:429 ../../mod/connedit.php:583
msgid "Me"
msgstr "Yo"
-#: ../../include/widgets.php:430 ../../mod/connedit.php:572
+#: ../../include/widgets.php:430 ../../mod/connedit.php:584
msgid "Family"
msgstr "Familia"
@@ -1444,16 +1444,16 @@ msgstr "Familia"
#: ../../include/profile_selectors.php:80 ../../mod/settings.php:345
#: ../../mod/settings.php:349 ../../mod/settings.php:350
#: ../../mod/settings.php:353 ../../mod/settings.php:364
-#: ../../mod/connedit.php:573
+#: ../../mod/connedit.php:585
msgid "Friends"
msgstr "Amigos"
-#: ../../include/widgets.php:432 ../../mod/connedit.php:574
+#: ../../include/widgets.php:432 ../../mod/connedit.php:586
msgid "Acquaintances"
msgstr "Conocidos/as"
-#: ../../include/widgets.php:433 ../../mod/connections.php:231
-#: ../../mod/connections.php:246 ../../mod/connedit.php:575
+#: ../../include/widgets.php:433 ../../mod/connections.php:91
+#: ../../mod/connections.php:106 ../../mod/connedit.php:587
msgid "All"
msgstr "Todas"
@@ -1489,7 +1489,7 @@ msgstr "Aplicaciones conectadas"
msgid "Export channel"
msgstr "Exportar canal"
-#: ../../include/widgets.php:532 ../../mod/connedit.php:662
+#: ../../include/widgets.php:532 ../../mod/connedit.php:674
msgid "Connection Default Permissions"
msgstr "Permisos predeterminados de conexión"
@@ -1538,7 +1538,7 @@ msgstr "Valorar este canal"
#: ../../include/widgets.php:978
msgid "View Ratings"
-msgstr "Ver valoraciones"
+msgstr "Mostrar las valoraciones"
#: ../../include/widgets.php:989
msgid "Public Hubs"
@@ -1557,7 +1557,7 @@ msgid "Finishes:"
msgstr "Finaliza:"
#: ../../include/event.php:50 ../../include/bb2diaspora.php:481
-#: ../../include/identity.php:931 ../../mod/directory.php:302
+#: ../../include/identity.php:954 ../../mod/directory.php:302
#: ../../mod/events.php:661
msgid "Location:"
msgstr "Ubicación:"
@@ -1598,17 +1598,17 @@ msgstr "Por favor visite %s para ver y/o responder a su mensaje privado."
#: ../../include/enotify.php:158
#, php-format
msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]"
-msgstr "%1$s, %2$s comentó [zrl=%3$s]a %4$s[/zrl]"
+msgstr "%1$s, %2$s comentó en [zrl=%3$s]a %4$s[/zrl]"
#: ../../include/enotify.php:166
#, php-format
msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]"
-msgstr "%1$s, %2$s comentó [zrl=%3$s]%4$s de %5$s[/zrl]"
+msgstr "%1$s, %2$s comentó en [zrl=%3$s]%4$s de %5$s[/zrl]"
#: ../../include/enotify.php:175
#, php-format
msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]"
-msgstr "%1$s, %2$s comentó [zrl=%3$s]su %4$s[/zrl]"
+msgstr "%1$s, %2$s comentó en [zrl=%3$s]su %4$s[/zrl]"
#: ../../include/enotify.php:186
#, php-format
@@ -1765,7 +1765,7 @@ msgstr "No se han podido verificar las entradas guardadas."
#: ../../mod/like.php:394
#, php-format
msgid "%1$s likes %2$s's %3$s"
-msgstr "a %1$s le gusta %3$s de %2$s"
+msgstr "a %1$s le gusta el %3$s de %2$s"
#: ../../include/diaspora.php:2494
msgid "Please choose"
@@ -1819,11 +1819,11 @@ msgstr "No se ha encontrado la cuenta local."
msgid "Cannot connect to yourself."
msgstr "No puede conectarse consigo mismo."
-#: ../../include/ItemObject.php:89 ../../include/conversation.php:667
+#: ../../include/ItemObject.php:89 ../../include/conversation.php:678
msgid "Private Message"
msgstr "Mensaje Privado"
-#: ../../include/ItemObject.php:126 ../../include/conversation.php:659
+#: ../../include/ItemObject.php:126 ../../include/conversation.php:670
msgid "Select"
msgstr "Seleccionar"
@@ -1856,13 +1856,13 @@ msgid "I abstain"
msgstr "Me abstengo"
#: ../../include/ItemObject.php:175 ../../include/ItemObject.php:187
-#: ../../include/conversation.php:1677 ../../mod/photos.php:1015
+#: ../../include/conversation.php:1688 ../../mod/photos.php:1015
#: ../../mod/photos.php:1027
msgid "View all"
msgstr "Ver todo"
#: ../../include/ItemObject.php:179 ../../include/taxonomy.php:396
-#: ../../include/conversation.php:1701 ../../include/identity.php:1190
+#: ../../include/conversation.php:1712 ../../include/identity.php:1213
#: ../../mod/photos.php:1019
msgctxt "noun"
msgid "Like"
@@ -1870,7 +1870,7 @@ msgid_plural "Likes"
msgstr[0] "Me gusta"
msgstr[1] "Me gusta"
-#: ../../include/ItemObject.php:184 ../../include/conversation.php:1704
+#: ../../include/ItemObject.php:184 ../../include/conversation.php:1715
#: ../../mod/photos.php:1024
msgctxt "noun"
msgid "Dislike"
@@ -1888,17 +1888,17 @@ msgstr "Eliminar estrella"
#: ../../include/ItemObject.php:214
msgid "Toggle Star Status"
-msgstr "Activar o desactivar el estado de preferido"
+msgstr "Activar o desactivar el estado de entrada preferida"
#: ../../include/ItemObject.php:218
msgid "starred"
-msgstr "preferidos"
+msgstr "preferidas"
-#: ../../include/ItemObject.php:227 ../../include/conversation.php:674
+#: ../../include/ItemObject.php:227 ../../include/conversation.php:685
msgid "Message signature validated"
msgstr "Firma de mensaje validada"
-#: ../../include/ItemObject.php:228 ../../include/conversation.php:675
+#: ../../include/ItemObject.php:228 ../../include/conversation.php:686
msgid "Message signature incorrect"
msgstr "Firma de mensaje incorrecta"
@@ -1958,17 +1958,17 @@ msgstr "De página de perfil a página de perfil (de Muro a Muro)"
msgid "via Wall-To-Wall:"
msgstr "Mediante el procedimiento página de perfil a página de perfil (de Muro a Muro)"
-#: ../../include/ItemObject.php:312 ../../include/conversation.php:716
+#: ../../include/ItemObject.php:312 ../../include/conversation.php:727
#, php-format
msgid "from %s"
msgstr "desde %s"
-#: ../../include/ItemObject.php:315 ../../include/conversation.php:719
+#: ../../include/ItemObject.php:315 ../../include/conversation.php:730
#, php-format
msgid "last edited: %s"
msgstr "último cambio: %s"
-#: ../../include/ItemObject.php:316 ../../include/conversation.php:720
+#: ../../include/ItemObject.php:316 ../../include/conversation.php:731
#, php-format
msgid "Expires: %s"
msgstr "Caduca: %s"
@@ -2000,8 +2000,8 @@ msgstr "No me gusta"
msgid "Close"
msgstr "Cerrar"
-#: ../../include/ItemObject.php:364 ../../include/conversation.php:737
-#: ../../include/conversation.php:1209 ../../mod/editpost.php:123
+#: ../../include/ItemObject.php:364 ../../include/conversation.php:748
+#: ../../include/conversation.php:1220 ../../mod/editpost.php:123
#: ../../mod/photos.php:962 ../../mod/editlayout.php:147
#: ../../mod/editwebpage.php:192 ../../mod/editblock.php:149
#: ../../mod/mail.php:241 ../../mod/mail.php:356
@@ -2013,31 +2013,31 @@ msgstr "Espera por favor"
msgid "This is you"
msgstr "Este es usted"
-#: ../../include/ItemObject.php:669 ../../include/conversation.php:1181
+#: ../../include/ItemObject.php:669 ../../include/conversation.php:1192
#: ../../mod/editpost.php:107 ../../mod/editlayout.php:134
#: ../../mod/editwebpage.php:179 ../../mod/editblock.php:135
msgid "Bold"
msgstr "Negrita"
-#: ../../include/ItemObject.php:670 ../../include/conversation.php:1182
+#: ../../include/ItemObject.php:670 ../../include/conversation.php:1193
#: ../../mod/editpost.php:108 ../../mod/editlayout.php:135
#: ../../mod/editwebpage.php:180 ../../mod/editblock.php:136
msgid "Italic"
msgstr "Itálico "
-#: ../../include/ItemObject.php:671 ../../include/conversation.php:1183
+#: ../../include/ItemObject.php:671 ../../include/conversation.php:1194
#: ../../mod/editpost.php:109 ../../mod/editlayout.php:136
#: ../../mod/editwebpage.php:181 ../../mod/editblock.php:137
msgid "Underline"
msgstr "Subrayar"
-#: ../../include/ItemObject.php:672 ../../include/conversation.php:1184
+#: ../../include/ItemObject.php:672 ../../include/conversation.php:1195
#: ../../mod/editpost.php:110 ../../mod/editlayout.php:137
#: ../../mod/editwebpage.php:182 ../../mod/editblock.php:138
msgid "Quote"
msgstr "Citar"
-#: ../../include/ItemObject.php:673 ../../include/conversation.php:1185
+#: ../../include/ItemObject.php:673 ../../include/conversation.php:1196
#: ../../mod/editpost.php:111 ../../mod/editlayout.php:138
#: ../../mod/editwebpage.php:183 ../../mod/editblock.php:139
msgid "Code"
@@ -2055,7 +2055,7 @@ msgstr "Insertar enlace"
msgid "Video"
msgstr "Vídeo"
-#: ../../include/ItemObject.php:680 ../../include/conversation.php:1236
+#: ../../include/ItemObject.php:680 ../../include/conversation.php:1247
#: ../../mod/editpost.php:151 ../../mod/mail.php:247 ../../mod/mail.php:361
msgid "Encrypt text"
msgstr "Cifrar texto"
@@ -2068,7 +2068,7 @@ msgstr "Nueva ventana"
msgid "Open the selected location in a different window or browser tab"
msgstr "Abrir la ubicación seleccionada en una ventana o pestaña aparte"
-#: ../../include/Contact.php:215
+#: ../../include/Contact.php:212
#, php-format
msgid "User '%s' deleted"
msgstr "El usuario '%s' ha sido eliminado"
@@ -2081,7 +2081,7 @@ msgstr "Ficheros adjuntos:"
msgid "$Projectname event notification:"
msgstr "Notificación de eventos de $Projectname:"
-#: ../../include/nav.php:87 ../../include/nav.php:120 ../../boot.php:1550
+#: ../../include/nav.php:87 ../../include/nav.php:120 ../../boot.php:1549
msgid "Logout"
msgstr "Finalizar sesión"
@@ -2097,8 +2097,8 @@ msgstr "Inicio"
msgid "Your posts and conversations"
msgstr "Sus entradas y conversaciones"
-#: ../../include/nav.php:91 ../../include/conversation.php:942
-#: ../../mod/connedit.php:498
+#: ../../include/nav.php:91 ../../include/conversation.php:953
+#: ../../mod/connedit.php:510
msgid "View Profile"
msgstr "Ver el perfil"
@@ -2114,7 +2114,7 @@ msgstr "Editar perfiles"
msgid "Manage/Edit profiles"
msgstr "Administrar/editar perfiles"
-#: ../../include/nav.php:95 ../../include/identity.php:903
+#: ../../include/nav.php:95 ../../include/identity.php:926
msgid "Edit Profile"
msgstr "Editar perfil"
@@ -2122,7 +2122,7 @@ msgstr "Editar perfil"
msgid "Edit your profile"
msgstr "Editar su perfil"
-#: ../../include/nav.php:97 ../../include/conversation.php:1600
+#: ../../include/nav.php:97 ../../include/conversation.php:1611
#: ../../include/apps.php:139 ../../mod/fbrowser.php:25
msgid "Photos"
msgstr "Fotos"
@@ -2143,7 +2143,7 @@ msgstr "Chat"
msgid "Your chatrooms"
msgstr "Sus salas de chat"
-#: ../../include/nav.php:109 ../../include/conversation.php:1635
+#: ../../include/nav.php:109 ../../include/conversation.php:1646
#: ../../include/apps.php:129
msgid "Bookmarks"
msgstr "Marcadores"
@@ -2152,7 +2152,7 @@ msgstr "Marcadores"
msgid "Your bookmarks"
msgstr "Sus marcadores"
-#: ../../include/nav.php:113 ../../include/conversation.php:1645
+#: ../../include/nav.php:113 ../../include/conversation.php:1656
#: ../../include/apps.php:136 ../../mod/webpages.php:178
msgid "Webpages"
msgstr "Páginas web"
@@ -2161,7 +2161,7 @@ msgstr "Páginas web"
msgid "Your webpages"
msgstr "Sus páginas web"
-#: ../../include/nav.php:117 ../../include/apps.php:131 ../../boot.php:1551
+#: ../../include/nav.php:117 ../../include/apps.php:131 ../../boot.php:1550
msgid "Login"
msgstr "Iniciar sesión"
@@ -2186,7 +2186,7 @@ msgstr "Pulsar para identificarse en su servidor de inicio"
msgid "Home Page"
msgstr "Página de inicio"
-#: ../../include/nav.php:155 ../../mod/register.php:224 ../../boot.php:1527
+#: ../../include/nav.php:155 ../../mod/register.php:224 ../../boot.php:1526
msgid "Register"
msgstr "Registrarse"
@@ -2243,7 +2243,7 @@ msgstr "Mi canal"
msgid "Mark all channel notifications seen"
msgstr "Marcar todas las notificaciones del canal como leídas"
-#: ../../include/nav.php:187 ../../mod/connections.php:407
+#: ../../include/nav.php:187 ../../mod/connections.php:267
msgid "Connections"
msgstr "Conexiones"
@@ -2325,7 +2325,7 @@ msgstr "Administrador"
msgid "Site Setup and Configuration"
msgstr "Ajustes y configuración del sitio"
-#: ../../include/nav.php:247 ../../include/conversation.php:850
+#: ../../include/nav.php:247 ../../include/conversation.php:861
msgid "Loading..."
msgstr "Cargando..."
@@ -2561,441 +2561,441 @@ msgctxt "mood"
msgid "%1$s is %2$s"
msgstr "%1$s está %2$s"
-#: ../../include/conversation.php:572 ../../mod/photos.php:996
+#: ../../include/conversation.php:583 ../../mod/photos.php:996
msgctxt "title"
msgid "Likes"
msgstr "Me gusta"
-#: ../../include/conversation.php:572 ../../mod/photos.php:996
+#: ../../include/conversation.php:583 ../../mod/photos.php:996
msgctxt "title"
msgid "Dislikes"
msgstr "No me gusta"
-#: ../../include/conversation.php:573 ../../mod/photos.php:997
+#: ../../include/conversation.php:584 ../../mod/photos.php:997
msgctxt "title"
msgid "Agree"
msgstr "De acuerdo"
-#: ../../include/conversation.php:573 ../../mod/photos.php:997
+#: ../../include/conversation.php:584 ../../mod/photos.php:997
msgctxt "title"
msgid "Disagree"
msgstr "En desacuerdo"
-#: ../../include/conversation.php:573 ../../mod/photos.php:997
+#: ../../include/conversation.php:584 ../../mod/photos.php:997
msgctxt "title"
msgid "Abstain"
msgstr "Abstención"
-#: ../../include/conversation.php:574 ../../mod/photos.php:998
+#: ../../include/conversation.php:585 ../../mod/photos.php:998
msgctxt "title"
msgid "Attending"
msgstr "Participar"
-#: ../../include/conversation.php:574 ../../mod/photos.php:998
+#: ../../include/conversation.php:585 ../../mod/photos.php:998
msgctxt "title"
msgid "Not attending"
msgstr "No participar"
-#: ../../include/conversation.php:574 ../../mod/photos.php:998
+#: ../../include/conversation.php:585 ../../mod/photos.php:998
msgctxt "title"
msgid "Might attend"
msgstr "Quizá participe"
-#: ../../include/conversation.php:692
+#: ../../include/conversation.php:703
#, php-format
msgid "View %s's profile @ %s"
msgstr "Ver el perfil @ %s de %s"
-#: ../../include/conversation.php:707
+#: ../../include/conversation.php:718
msgid "Categories:"
msgstr "Categorías:"
-#: ../../include/conversation.php:708
+#: ../../include/conversation.php:719
msgid "Filed under:"
msgstr "Archivado bajo:"
-#: ../../include/conversation.php:735
+#: ../../include/conversation.php:746
msgid "View in context"
msgstr "Mostrar en su contexto"
-#: ../../include/conversation.php:846
+#: ../../include/conversation.php:857
msgid "remove"
msgstr "eliminar"
-#: ../../include/conversation.php:851
+#: ../../include/conversation.php:862
msgid "Delete Selected Items"
msgstr "Eliminar elementos seleccionados"
-#: ../../include/conversation.php:939
+#: ../../include/conversation.php:950
msgid "View Source"
-msgstr "Ver la fuente original de esta entrada"
+msgstr "Ver la fuente original de la entrada"
-#: ../../include/conversation.php:940
+#: ../../include/conversation.php:951
msgid "Follow Thread"
msgstr "Seguir el hilo"
-#: ../../include/conversation.php:941
+#: ../../include/conversation.php:952
msgid "View Status"
msgstr "Ver estado"
-#: ../../include/conversation.php:943
+#: ../../include/conversation.php:954
msgid "View Photos"
msgstr "Ver fotos"
-#: ../../include/conversation.php:944
+#: ../../include/conversation.php:955
msgid "Matrix Activity"
msgstr "Actividad en la red de esta conexión"
-#: ../../include/conversation.php:946
+#: ../../include/conversation.php:957
msgid "Edit Contact"
msgstr "Editar contacto"
-#: ../../include/conversation.php:947
+#: ../../include/conversation.php:958
msgid "Send PM"
msgstr "Enviar Mensaje Privado"
-#: ../../include/conversation.php:948 ../../include/apps.php:145
+#: ../../include/conversation.php:959 ../../include/apps.php:145
msgid "Poke"
msgstr "Dar un toque"
-#: ../../include/conversation.php:1062
+#: ../../include/conversation.php:1073
#, php-format
msgid "%s likes this."
msgstr "a %s le gusta esto."
-#: ../../include/conversation.php:1062
+#: ../../include/conversation.php:1073
#, php-format
msgid "%s doesn't like this."
msgstr "a %s no le gusta esto."
-#: ../../include/conversation.php:1066
+#: ../../include/conversation.php:1077
#, 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:1068
+#: ../../include/conversation.php:1079
#, 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:1074
+#: ../../include/conversation.php:1085
msgid "and"
msgstr "y"
-#: ../../include/conversation.php:1077
+#: ../../include/conversation.php:1088
#, 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:1078
+#: ../../include/conversation.php:1089
#, php-format
msgid "%s like this."
msgstr "a %s le gusta esto."
-#: ../../include/conversation.php:1078
+#: ../../include/conversation.php:1089
#, php-format
msgid "%s don't like this."
msgstr "a %s no le gusta esto."
-#: ../../include/conversation.php:1140
+#: ../../include/conversation.php:1151
msgid "Visible to <strong>everybody</strong>"
msgstr "Visible para <strong>cualquiera</strong>"
-#: ../../include/conversation.php:1141 ../../mod/mail.php:174
+#: ../../include/conversation.php:1152 ../../mod/mail.php:174
#: ../../mod/mail.php:289
msgid "Please enter a link URL:"
msgstr "Por favor, introduzca la dirección del enlace:"
-#: ../../include/conversation.php:1142
+#: ../../include/conversation.php:1153
msgid "Please enter a video link/URL:"
msgstr "Por favor, introduzca un enlace de vídeo:"
-#: ../../include/conversation.php:1143
+#: ../../include/conversation.php:1154
msgid "Please enter an audio link/URL:"
msgstr "Por favor, introduzca un enlace de audio:"
-#: ../../include/conversation.php:1144
+#: ../../include/conversation.php:1155
msgid "Tag term:"
msgstr "Término de la etiqueta:"
-#: ../../include/conversation.php:1145 ../../mod/filer.php:49
+#: ../../include/conversation.php:1156 ../../mod/filer.php:49
msgid "Save to Folder:"
msgstr "Guardar en carpeta:"
-#: ../../include/conversation.php:1146
+#: ../../include/conversation.php:1157
msgid "Where are you right now?"
msgstr "¿Donde está ahora?"
-#: ../../include/conversation.php:1147 ../../mod/editpost.php:47
+#: ../../include/conversation.php:1158 ../../mod/editpost.php:47
#: ../../mod/mail.php:175 ../../mod/mail.php:290
msgid "Expires YYYY-MM-DD HH:MM"
msgstr "Caduca YYYY-MM-DD HH:MM"
-#: ../../include/conversation.php:1174 ../../mod/webpages.php:182
+#: ../../include/conversation.php:1185 ../../mod/webpages.php:182
#: ../../mod/blocks.php:154 ../../mod/photos.php:961 ../../mod/layouts.php:184
msgid "Share"
msgstr "Compartir"
-#: ../../include/conversation.php:1176
+#: ../../include/conversation.php:1187
msgid "Page link name"
msgstr "Nombre de enlace de página"
-#: ../../include/conversation.php:1179
+#: ../../include/conversation.php:1190
msgid "Post as"
msgstr "Publicar como"
-#: ../../include/conversation.php:1186 ../../mod/editpost.php:112
+#: ../../include/conversation.php:1197 ../../mod/editpost.php:112
#: ../../mod/editlayout.php:139 ../../mod/editwebpage.php:184
#: ../../mod/editblock.php:141 ../../mod/mail.php:238 ../../mod/mail.php:352
msgid "Upload photo"
msgstr "Subir foto"
-#: ../../include/conversation.php:1187
+#: ../../include/conversation.php:1198
msgid "upload photo"
msgstr "subir foto"
-#: ../../include/conversation.php:1188 ../../mod/editpost.php:113
+#: ../../include/conversation.php:1199 ../../mod/editpost.php:113
#: ../../mod/editlayout.php:140 ../../mod/editwebpage.php:185
#: ../../mod/editblock.php:142 ../../mod/mail.php:239 ../../mod/mail.php:353
msgid "Attach file"
msgstr "Adjuntar fichero"
-#: ../../include/conversation.php:1189
+#: ../../include/conversation.php:1200
msgid "attach file"
msgstr "adjuntar fichero"
-#: ../../include/conversation.php:1190 ../../mod/editpost.php:114
+#: ../../include/conversation.php:1201 ../../mod/editpost.php:114
#: ../../mod/editlayout.php:141 ../../mod/editwebpage.php:186
#: ../../mod/editblock.php:143 ../../mod/mail.php:240 ../../mod/mail.php:354
msgid "Insert web link"
msgstr "Insertar enlace web"
-#: ../../include/conversation.php:1191
+#: ../../include/conversation.php:1202
msgid "web link"
msgstr "enlace web"
-#: ../../include/conversation.php:1192
+#: ../../include/conversation.php:1203
msgid "Insert video link"
msgstr "Insertar enlace de vídeo"
-#: ../../include/conversation.php:1193
+#: ../../include/conversation.php:1204
msgid "video link"
msgstr "enlace de vídeo"
-#: ../../include/conversation.php:1194
+#: ../../include/conversation.php:1205
msgid "Insert audio link"
msgstr "Insertar enlace de audio"
-#: ../../include/conversation.php:1195
+#: ../../include/conversation.php:1206
msgid "audio link"
msgstr "enlace de audio"
-#: ../../include/conversation.php:1196 ../../mod/editpost.php:118
+#: ../../include/conversation.php:1207 ../../mod/editpost.php:118
#: ../../mod/editlayout.php:145 ../../mod/editwebpage.php:190
#: ../../mod/editblock.php:147
msgid "Set your location"
msgstr "Configure su localización"
-#: ../../include/conversation.php:1197
+#: ../../include/conversation.php:1208
msgid "set location"
msgstr "configure localización"
-#: ../../include/conversation.php:1198 ../../mod/editpost.php:120
+#: ../../include/conversation.php:1209 ../../mod/editpost.php:120
msgid "Toggle voting"
msgstr "Cambiar votación"
-#: ../../include/conversation.php:1201 ../../mod/editpost.php:119
+#: ../../include/conversation.php:1212 ../../mod/editpost.php:119
#: ../../mod/editlayout.php:146 ../../mod/editwebpage.php:191
#: ../../mod/editblock.php:148
msgid "Clear browser location"
msgstr "Eliminar localización del navegador"
-#: ../../include/conversation.php:1202
+#: ../../include/conversation.php:1213
msgid "clear location"
msgstr "eliminar localización"
-#: ../../include/conversation.php:1204 ../../mod/editpost.php:135
+#: ../../include/conversation.php:1215 ../../mod/editpost.php:135
#: ../../mod/editwebpage.php:207 ../../mod/editblock.php:161
msgid "Title (optional)"
msgstr "Título (opcional)"
-#: ../../include/conversation.php:1208 ../../mod/editpost.php:137
+#: ../../include/conversation.php:1219 ../../mod/editpost.php:137
#: ../../mod/editlayout.php:162 ../../mod/editwebpage.php:209
#: ../../mod/editblock.php:164
msgid "Categories (optional, comma-separated list)"
msgstr "Categorías (opcional, lista separada por comas)"
-#: ../../include/conversation.php:1210 ../../mod/editpost.php:124
+#: ../../include/conversation.php:1221 ../../mod/editpost.php:124
#: ../../mod/editlayout.php:148 ../../mod/editwebpage.php:193
#: ../../mod/editblock.php:150
msgid "Permission settings"
msgstr "Configuración de permisos"
-#: ../../include/conversation.php:1211
+#: ../../include/conversation.php:1222
msgid "permissions"
msgstr "permisos"
-#: ../../include/conversation.php:1219 ../../mod/editpost.php:132
+#: ../../include/conversation.php:1230 ../../mod/editpost.php:132
#: ../../mod/editlayout.php:155 ../../mod/editwebpage.php:202
#: ../../mod/editblock.php:158
msgid "Public post"
msgstr "Entrada pública"
-#: ../../include/conversation.php:1221 ../../mod/editpost.php:138
+#: ../../include/conversation.php:1232 ../../mod/editpost.php:138
#: ../../mod/editlayout.php:163 ../../mod/editwebpage.php:210
#: ../../mod/editblock.php:165
msgid "Example: bob@example.com, mary@example.com"
msgstr "Ejemplo: roberto@ejemplo.com, maría@ejemplo.com"
-#: ../../include/conversation.php:1234 ../../mod/editpost.php:149
+#: ../../include/conversation.php:1245 ../../mod/editpost.php:149
#: ../../mod/editlayout.php:172 ../../mod/editwebpage.php:219
#: ../../mod/editblock.php:175 ../../mod/mail.php:245 ../../mod/mail.php:359
msgid "Set expiration date"
msgstr "Configurar fecha de caducidad"
-#: ../../include/conversation.php:1238 ../../mod/events.php:651
+#: ../../include/conversation.php:1249 ../../mod/events.php:651
#: ../../mod/editpost.php:153
msgid "OK"
msgstr "OK"
-#: ../../include/conversation.php:1239 ../../mod/tagrm.php:11
+#: ../../include/conversation.php:1250 ../../mod/tagrm.php:11
#: ../../mod/tagrm.php:134 ../../mod/events.php:650 ../../mod/fbrowser.php:82
#: ../../mod/fbrowser.php:117 ../../mod/editpost.php:154
#: ../../mod/settings.php:589 ../../mod/settings.php:615
msgid "Cancel"
msgstr "Cancelar"
-#: ../../include/conversation.php:1481
+#: ../../include/conversation.php:1492
msgid "Discover"
msgstr "Descubrir"
-#: ../../include/conversation.php:1484
+#: ../../include/conversation.php:1495
msgid "Imported public streams"
msgstr "Flujos públicos importados"
-#: ../../include/conversation.php:1489
+#: ../../include/conversation.php:1500
msgid "Commented Order"
msgstr "Comentarios recientes"
-#: ../../include/conversation.php:1492
+#: ../../include/conversation.php:1503
msgid "Sort by Comment Date"
msgstr "Ordenar por fecha de comentario"
-#: ../../include/conversation.php:1496
+#: ../../include/conversation.php:1507
msgid "Posted Order"
msgstr "Publicaciones recientes"
-#: ../../include/conversation.php:1499
+#: ../../include/conversation.php:1510
msgid "Sort by Post Date"
msgstr "Ordenar por fecha de publicación"
-#: ../../include/conversation.php:1507
+#: ../../include/conversation.php:1518
msgid "Posts that mention or involve you"
msgstr "Publicaciones que le mencionan o involucran"
-#: ../../include/conversation.php:1513 ../../mod/connections.php:212
-#: ../../mod/connections.php:225 ../../mod/menu.php:107
+#: ../../include/conversation.php:1524 ../../mod/connections.php:72
+#: ../../mod/connections.php:85 ../../mod/menu.php:107
msgid "New"
-msgstr "Novedades"
+msgstr "Nuevas"
-#: ../../include/conversation.php:1516
+#: ../../include/conversation.php:1527
msgid "Activity Stream - by date"
msgstr "Flujo de actividad - por fecha"
-#: ../../include/conversation.php:1522
+#: ../../include/conversation.php:1533
msgid "Starred"
-msgstr "Preferidos"
+msgstr "Preferidas"
-#: ../../include/conversation.php:1525
+#: ../../include/conversation.php:1536
msgid "Favourite Posts"
msgstr "Publicaciones favoritas"
-#: ../../include/conversation.php:1532
+#: ../../include/conversation.php:1543
msgid "Spam"
msgstr "Correo basura"
-#: ../../include/conversation.php:1535
+#: ../../include/conversation.php:1546
msgid "Posts flagged as SPAM"
msgstr "Publicaciones marcadas como basura"
-#: ../../include/conversation.php:1579 ../../mod/admin.php:993
+#: ../../include/conversation.php:1590 ../../mod/admin.php:993
msgid "Channel"
msgstr "Canal"
-#: ../../include/conversation.php:1582
+#: ../../include/conversation.php:1593
msgid "Status Messages and Posts"
msgstr "Mensajes de estado y publicaciones"
-#: ../../include/conversation.php:1591
+#: ../../include/conversation.php:1602
msgid "About"
msgstr "Sobre mí"
-#: ../../include/conversation.php:1594
+#: ../../include/conversation.php:1605
msgid "Profile Details"
msgstr "Detalles del perfil"
-#: ../../include/conversation.php:1603 ../../include/photos.php:359
+#: ../../include/conversation.php:1614 ../../include/photos.php:359
msgid "Photo Albums"
msgstr "Álbumes de fotos"
-#: ../../include/conversation.php:1612
+#: ../../include/conversation.php:1623
msgid "Files and Storage"
msgstr "Ficheros y carpetas"
-#: ../../include/conversation.php:1622 ../../include/conversation.php:1625
+#: ../../include/conversation.php:1633 ../../include/conversation.php:1636
msgid "Chatrooms"
msgstr "Salas de chat"
-#: ../../include/conversation.php:1638
+#: ../../include/conversation.php:1649
msgid "Saved Bookmarks"
msgstr "Marcadores guardados"
-#: ../../include/conversation.php:1648
+#: ../../include/conversation.php:1659
msgid "Manage Webpages"
msgstr "Administrar páginas web"
-#: ../../include/conversation.php:1707
+#: ../../include/conversation.php:1718
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] "Asistir"
msgstr[1] "Participar"
-#: ../../include/conversation.php:1710
+#: ../../include/conversation.php:1721
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] "No asistir"
msgstr[1] "No participar"
-#: ../../include/conversation.php:1713
+#: ../../include/conversation.php:1724
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] "Indeciso/a"
msgstr[1] "Indecisos/as"
-#: ../../include/conversation.php:1716
+#: ../../include/conversation.php:1727
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] "Está de acuerdo"
msgstr[1] "Están de acuerdo"
-#: ../../include/conversation.php:1719
+#: ../../include/conversation.php:1730
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] "No está de acuerdo"
msgstr[1] "No están de acuerdo"
-#: ../../include/conversation.php:1722
+#: ../../include/conversation.php:1733
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -3060,13 +3060,13 @@ msgstr "Elemento no encontrado."
#: ../../include/chat.php:131 ../../include/photos.php:26
#: ../../mod/profile.php:64 ../../mod/profile.php:72
#: ../../mod/achievements.php:30 ../../mod/manage.php:6 ../../mod/api.php:26
-#: ../../mod/api.php:31 ../../mod/webpages.php:69 ../../mod/thing.php:241
-#: ../../mod/thing.php:256 ../../mod/thing.php:290
+#: ../../mod/api.php:31 ../../mod/webpages.php:69 ../../mod/thing.php:269
+#: ../../mod/thing.php:284 ../../mod/thing.php:318
#: ../../mod/profile_photo.php:264 ../../mod/profile_photo.php:277
#: ../../mod/block.php:22 ../../mod/block.php:72 ../../mod/like.php:178
#: ../../mod/events.php:232 ../../mod/group.php:9 ../../mod/item.php:206
#: ../../mod/item.php:214 ../../mod/item.php:978 ../../mod/network.php:12
-#: ../../mod/common.php:35 ../../mod/connections.php:169
+#: ../../mod/common.php:35 ../../mod/connections.php:29
#: ../../mod/blocks.php:69 ../../mod/blocks.php:76 ../../mod/editpost.php:13
#: ../../mod/photos.php:69 ../../mod/pdledit.php:21 ../../mod/authtest.php:13
#: ../../mod/editlayout.php:63 ../../mod/editlayout.php:87
@@ -3082,7 +3082,7 @@ msgstr "Elemento no encontrado."
#: ../../mod/profiles.php:576 ../../mod/viewsrc.php:14 ../../mod/setup.php:223
#: ../../mod/viewconnections.php:22 ../../mod/viewconnections.php:27
#: ../../mod/register.php:72 ../../mod/settings.php:570 ../../mod/id.php:71
-#: ../../mod/message.php:16 ../../mod/mood.php:111 ../../mod/connedit.php:336
+#: ../../mod/message.php:16 ../../mod/mood.php:111 ../../mod/connedit.php:348
#: ../../mod/mail.php:114 ../../mod/notifications.php:66
#: ../../mod/regmod.php:17 ../../mod/new_channel.php:68
#: ../../mod/new_channel.php:99 ../../mod/appman.php:66
@@ -3109,7 +3109,7 @@ msgstr "La colección está vacía."
msgid "Collection: %s"
msgstr "Colección: %s"
-#: ../../include/items.php:4726 ../../mod/connedit.php:662
+#: ../../include/items.php:4726 ../../mod/connedit.php:674
#, php-format
msgid "Connection: %s"
msgstr "Conexión: %s"
@@ -3179,7 +3179,7 @@ msgid "Examples: Robert Morgenstein, Fishing"
msgstr "Ejemplos: José Fernández, Pesca"
#: ../../include/contact_widgets.php:26 ../../mod/directory.php:379
-#: ../../mod/directory.php:384 ../../mod/connections.php:413
+#: ../../mod/directory.php:384 ../../mod/connections.php:273
msgid "Find"
msgstr "Encontrar"
@@ -3324,11 +3324,11 @@ msgstr "No ha sido posible recuperar la identidad creada"
msgid "Default Profile"
msgstr "Perfil principal"
-#: ../../include/identity.php:683
+#: ../../include/identity.php:706
msgid "Requested channel is not available."
msgstr "El canal solicitado no está disponible."
-#: ../../include/identity.php:730 ../../mod/profile.php:16
+#: ../../include/identity.php:753 ../../mod/profile.php:16
#: ../../mod/achievements.php:11 ../../mod/webpages.php:29
#: ../../mod/connect.php:13 ../../mod/hcard.php:8 ../../mod/blocks.php:29
#: ../../mod/editlayout.php:27 ../../mod/editwebpage.php:28
@@ -3337,193 +3337,193 @@ msgstr "El canal solicitado no está disponible."
msgid "Requested profile is not available."
msgstr "El perfil solicitado no está disponible."
-#: ../../include/identity.php:893 ../../mod/profiles.php:774
+#: ../../include/identity.php:916 ../../mod/profiles.php:774
msgid "Change profile photo"
msgstr "Cambiar foto de perfil"
-#: ../../include/identity.php:899
+#: ../../include/identity.php:922
msgid "Profiles"
msgstr "Perfiles"
-#: ../../include/identity.php:899
+#: ../../include/identity.php:922
msgid "Manage/edit profiles"
msgstr "Administrar/editar perfiles"
-#: ../../include/identity.php:900 ../../mod/profiles.php:775
+#: ../../include/identity.php:923 ../../mod/profiles.php:775
msgid "Create New Profile"
msgstr "Crear nuevo perfil"
-#: ../../include/identity.php:915 ../../mod/profiles.php:786
+#: ../../include/identity.php:938 ../../mod/profiles.php:786
msgid "Profile Image"
msgstr "Imagen de perfil"
-#: ../../include/identity.php:918
+#: ../../include/identity.php:941
msgid "visible to everybody"
msgstr "visible para cualquiera"
-#: ../../include/identity.php:919 ../../mod/profiles.php:669
+#: ../../include/identity.php:942 ../../mod/profiles.php:669
#: ../../mod/profiles.php:790
msgid "Edit visibility"
msgstr "Editar visibilidad"
-#: ../../include/identity.php:935 ../../include/identity.php:1174
+#: ../../include/identity.php:958 ../../include/identity.php:1197
msgid "Gender:"
msgstr "Género:"
-#: ../../include/identity.php:936 ../../include/identity.php:1218
+#: ../../include/identity.php:959 ../../include/identity.php:1241
msgid "Status:"
msgstr "Estado:"
-#: ../../include/identity.php:937 ../../include/identity.php:1229
+#: ../../include/identity.php:960 ../../include/identity.php:1252
msgid "Homepage:"
msgstr "Página personal:"
-#: ../../include/identity.php:938
+#: ../../include/identity.php:961
msgid "Online Now"
msgstr "Ahora en línea"
-#: ../../include/identity.php:1021 ../../include/identity.php:1099
+#: ../../include/identity.php:1044 ../../include/identity.php:1122
#: ../../mod/ping.php:324
msgid "g A l F d"
msgstr "g A l d F"
-#: ../../include/identity.php:1022 ../../include/identity.php:1100
+#: ../../include/identity.php:1045 ../../include/identity.php:1123
msgid "F d"
msgstr "d F"
-#: ../../include/identity.php:1067 ../../include/identity.php:1139
+#: ../../include/identity.php:1090 ../../include/identity.php:1162
#: ../../mod/ping.php:346
msgid "[today]"
msgstr "[hoy]"
-#: ../../include/identity.php:1078
+#: ../../include/identity.php:1101
msgid "Birthday Reminders"
msgstr "Recordatorios de cumpleaños"
-#: ../../include/identity.php:1079
+#: ../../include/identity.php:1102
msgid "Birthdays this week:"
msgstr "Cumpleaños esta semana:"
-#: ../../include/identity.php:1132
+#: ../../include/identity.php:1155
msgid "[No description]"
msgstr "[Sin descripción]"
-#: ../../include/identity.php:1150
+#: ../../include/identity.php:1173
msgid "Event Reminders"
msgstr "Recordatorios de eventos"
-#: ../../include/identity.php:1151
+#: ../../include/identity.php:1174
msgid "Events this week:"
msgstr "Eventos de esta semana:"
-#: ../../include/identity.php:1164 ../../include/identity.php:1281
+#: ../../include/identity.php:1187 ../../include/identity.php:1304
#: ../../include/apps.php:138 ../../mod/profperm.php:112
msgid "Profile"
msgstr "Perfil"
-#: ../../include/identity.php:1172 ../../mod/settings.php:1056
+#: ../../include/identity.php:1195 ../../mod/settings.php:1056
msgid "Full Name:"
msgstr "Nombre completo:"
-#: ../../include/identity.php:1179
+#: ../../include/identity.php:1202
msgid "Like this channel"
msgstr "Me gusta este canal"
-#: ../../include/identity.php:1203
+#: ../../include/identity.php:1226
msgid "j F, Y"
msgstr "j F Y"
-#: ../../include/identity.php:1204
+#: ../../include/identity.php:1227
msgid "j F"
msgstr "j F"
-#: ../../include/identity.php:1211
+#: ../../include/identity.php:1234
msgid "Birthday:"
msgstr "Cumpleaños:"
-#: ../../include/identity.php:1215 ../../mod/directory.php:297
+#: ../../include/identity.php:1238 ../../mod/directory.php:297
msgid "Age:"
msgstr "Edad:"
-#: ../../include/identity.php:1224
+#: ../../include/identity.php:1247
#, php-format
msgid "for %1$d %2$s"
msgstr "por %1$d %2$s"
-#: ../../include/identity.php:1227 ../../mod/profiles.php:691
+#: ../../include/identity.php:1250 ../../mod/profiles.php:691
msgid "Sexual Preference:"
msgstr "Orientación sexual:"
-#: ../../include/identity.php:1231 ../../mod/directory.php:313
+#: ../../include/identity.php:1254 ../../mod/directory.php:313
#: ../../mod/profiles.php:693
msgid "Hometown:"
msgstr "Ciudad de origen:"
-#: ../../include/identity.php:1233
+#: ../../include/identity.php:1256
msgid "Tags:"
msgstr "Etiquetas:"
-#: ../../include/identity.php:1235 ../../mod/profiles.php:694
+#: ../../include/identity.php:1258 ../../mod/profiles.php:694
msgid "Political Views:"
msgstr "Posición política:"
-#: ../../include/identity.php:1237
+#: ../../include/identity.php:1260
msgid "Religion:"
msgstr "Religión:"
-#: ../../include/identity.php:1239 ../../mod/directory.php:315
+#: ../../include/identity.php:1262 ../../mod/directory.php:315
msgid "About:"
msgstr "Sobre mí:"
-#: ../../include/identity.php:1241
+#: ../../include/identity.php:1264
msgid "Hobbies/Interests:"
msgstr "Aficciones/Intereses:"
-#: ../../include/identity.php:1243 ../../mod/profiles.php:697
+#: ../../include/identity.php:1266 ../../mod/profiles.php:697
msgid "Likes:"
msgstr "Me gusta:"
-#: ../../include/identity.php:1245 ../../mod/profiles.php:698
+#: ../../include/identity.php:1268 ../../mod/profiles.php:698
msgid "Dislikes:"
msgstr "No me gusta:"
-#: ../../include/identity.php:1247
+#: ../../include/identity.php:1270
msgid "Contact information and Social Networks:"
msgstr "Información de contacto y redes sociales:"
-#: ../../include/identity.php:1249
+#: ../../include/identity.php:1272
msgid "My other channels:"
msgstr "Mis otros canales:"
-#: ../../include/identity.php:1251
+#: ../../include/identity.php:1274
msgid "Musical interests:"
msgstr "Intereses musicales:"
-#: ../../include/identity.php:1253
+#: ../../include/identity.php:1276
msgid "Books, literature:"
msgstr "Libros, literatura:"
-#: ../../include/identity.php:1255
+#: ../../include/identity.php:1278
msgid "Television:"
msgstr "Televisión:"
-#: ../../include/identity.php:1257
+#: ../../include/identity.php:1280
msgid "Film/dance/culture/entertainment:"
msgstr "Cine/danza/cultura/entretenimiento:"
-#: ../../include/identity.php:1259
+#: ../../include/identity.php:1282
msgid "Love/Romance:"
msgstr "Vida sentimental/amorosa:"
-#: ../../include/identity.php:1261
+#: ../../include/identity.php:1284
msgid "Work/employment:"
msgstr "Trabajo:"
-#: ../../include/identity.php:1263
+#: ../../include/identity.php:1286
msgid "School/education:"
msgstr "Estudios:"
-#: ../../include/identity.php:1283
+#: ../../include/identity.php:1306
msgid "Like this thing"
msgstr "Me gusta esto"
@@ -4162,56 +4162,56 @@ msgstr "Canal premium o restringido"
msgid "Thing updated"
msgstr "Elemento actualizado."
-#: ../../mod/thing.php:153
+#: ../../mod/thing.php:167
msgid "Object store: failed"
msgstr "Guardar objeto: ha fallado"
-#: ../../mod/thing.php:157
+#: ../../mod/thing.php:171
msgid "Thing added"
msgstr "Elemento añadido"
-#: ../../mod/thing.php:175
+#: ../../mod/thing.php:203
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../mod/thing.php:226
+#: ../../mod/thing.php:254
msgid "Show Thing"
msgstr "Mostrar elemento"
-#: ../../mod/thing.php:233
+#: ../../mod/thing.php:261
msgid "item not found."
msgstr "elemento no encontrado."
-#: ../../mod/thing.php:261
+#: ../../mod/thing.php:289
msgid "Edit Thing"
msgstr "Editar elemento"
-#: ../../mod/thing.php:263 ../../mod/thing.php:310
+#: ../../mod/thing.php:291 ../../mod/thing.php:338
msgid "Select a profile"
msgstr "Seleccionar un perfil"
-#: ../../mod/thing.php:267 ../../mod/thing.php:313
+#: ../../mod/thing.php:295 ../../mod/thing.php:341
msgid "Post an activity"
msgstr "Publicar una actividad"
-#: ../../mod/thing.php:267 ../../mod/thing.php:313
+#: ../../mod/thing.php:295 ../../mod/thing.php:341
msgid "Only sends to viewers of the applicable profile"
msgstr "Sólo envíos a espectadores del perfil pertinente."
-#: ../../mod/thing.php:269 ../../mod/thing.php:315
+#: ../../mod/thing.php:297 ../../mod/thing.php:343
msgid "Name of thing e.g. something"
msgstr "Nombre del elemento p. ej.:. \"algo\""
-#: ../../mod/thing.php:271 ../../mod/thing.php:316
+#: ../../mod/thing.php:299 ../../mod/thing.php:344
msgid "URL of thing (optional)"
msgstr "Dirección del elemento (opcional)"
-#: ../../mod/thing.php:273 ../../mod/thing.php:317
+#: ../../mod/thing.php:301 ../../mod/thing.php:345
msgid "URL for photo of thing (optional)"
msgstr "Dirección para la foto o elemento (opcional)"
-#: ../../mod/thing.php:308
+#: ../../mod/thing.php:336
msgid "Add Thing to your Profile"
msgstr "Añadir elemento a su perfil"
@@ -4373,11 +4373,11 @@ msgstr "%1$s no participará en el %3$s de %2$s"
msgid "%1$s may attend %2$s's %3$s"
msgstr "%1$s tal vez participe en el %3$s de %2$s"
-#: ../../mod/like.php:492
+#: ../../mod/like.php:493
msgid "Action completed."
msgstr "Acción completada."
-#: ../../mod/like.php:493
+#: ../../mod/like.php:494
msgid "Thank you."
msgstr "Gracias."
@@ -4507,7 +4507,7 @@ msgid ""
"membership in the network as a whole. Some sites may require subscription or"
" provide tiered service plans. The provider links <strong>may</strong> "
"provide additional details."
-msgstr "Los sitios listados permiten el registro público de la red $Projectname. Todos los sitios de la red están vinculados entre sí por lo que sus miembros, en ninguna de ellas, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los enlaces de los proveedores de <strong> pueden </strong> proporcionar detalles adicionales."
+msgstr "Los sitios listados permiten el registro público de la red $Projectname. Todos los sitios de la red están vinculados entre sí por lo que sus miembros, en ninguna de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los enlaces de los proveedores <strong> pueden </strong> proporcionar detalles adicionales."
#: ../../mod/pubsites.php:25
msgid "Rate this hub"
@@ -4730,96 +4730,80 @@ msgstr "Ninguna conexión en común."
msgid "This site is not a directory server"
msgstr "Este sitio no es un servidor de directorio"
-#: ../../mod/connections.php:37 ../../mod/connedit.php:75
-msgid "Could not access contact record."
-msgstr "No se ha podido acceder al registro de contacto."
-
-#: ../../mod/connections.php:51 ../../mod/connedit.php:99
-msgid "Could not locate selected profile."
-msgstr "No se ha podido localizar el perfil seleccionado."
-
-#: ../../mod/connections.php:94 ../../mod/connedit.php:219
-msgid "Connection updated."
-msgstr "Conexión actualizada."
-
-#: ../../mod/connections.php:96 ../../mod/connedit.php:221
-msgid "Failed to update connection record."
-msgstr "Error al actualizar el registro de la conexión."
-
-#: ../../mod/connections.php:192 ../../mod/connections.php:293
+#: ../../mod/connections.php:52 ../../mod/connections.php:153
msgid "Blocked"
msgstr "Bloqueadas"
-#: ../../mod/connections.php:197 ../../mod/connections.php:300
+#: ../../mod/connections.php:57 ../../mod/connections.php:160
msgid "Ignored"
msgstr "Ignoradas"
-#: ../../mod/connections.php:202 ../../mod/connections.php:314
+#: ../../mod/connections.php:62 ../../mod/connections.php:174
msgid "Hidden"
msgstr "Ocultas"
-#: ../../mod/connections.php:207 ../../mod/connections.php:307
+#: ../../mod/connections.php:67 ../../mod/connections.php:167
msgid "Archived"
msgstr "Archivadas"
-#: ../../mod/connections.php:271
+#: ../../mod/connections.php:131
msgid "Suggest new connections"
msgstr "Sugerir nuevas conexiones"
-#: ../../mod/connections.php:274
+#: ../../mod/connections.php:134
msgid "New Connections"
msgstr "Nuevas conexiones"
-#: ../../mod/connections.php:277
+#: ../../mod/connections.php:137
msgid "Show pending (new) connections"
msgstr "Mostrar conexiones (nuevas) pendientes"
-#: ../../mod/connections.php:280 ../../mod/profperm.php:139
+#: ../../mod/connections.php:140 ../../mod/profperm.php:139
msgid "All Connections"
msgstr "Todas las conexiones"
-#: ../../mod/connections.php:283
+#: ../../mod/connections.php:143
msgid "Show all connections"
msgstr "Mostrar todas las conexiones"
-#: ../../mod/connections.php:286
+#: ../../mod/connections.php:146
msgid "Unblocked"
msgstr "Desbloqueadas"
-#: ../../mod/connections.php:289
+#: ../../mod/connections.php:149
msgid "Only show unblocked connections"
msgstr "Mostrar solo las conexiones desbloqueadas"
-#: ../../mod/connections.php:296
+#: ../../mod/connections.php:156
msgid "Only show blocked connections"
msgstr "Mostrar solo las conexiones bloqueadas"
-#: ../../mod/connections.php:303
+#: ../../mod/connections.php:163
msgid "Only show ignored connections"
msgstr "Mostrar solo conexiones ignoradas"
-#: ../../mod/connections.php:310
+#: ../../mod/connections.php:170
msgid "Only show archived connections"
msgstr "Mostrar solo las conexiones archivadas"
-#: ../../mod/connections.php:317
+#: ../../mod/connections.php:177
msgid "Only show hidden connections"
msgstr "Mostrar solo las conexiones ocultas"
-#: ../../mod/connections.php:372
+#: ../../mod/connections.php:232
#, php-format
msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
-#: ../../mod/connections.php:373
+#: ../../mod/connections.php:233
msgid "Edit connection"
msgstr "Editar conexión"
-#: ../../mod/connections.php:411
+#: ../../mod/connections.php:271
msgid "Search your connections"
msgstr "Buscar sus conexiones"
-#: ../../mod/connections.php:412
+#: ../../mod/connections.php:272
msgid "Finding: "
msgstr "Búsqueda:"
@@ -5136,42 +5120,42 @@ msgstr "No se ha podido importar el canal porque el canal no se ha podido clonar
msgid "Cloned channel not found. Import failed."
msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado."
-#: ../../mod/import.php:542
+#: ../../mod/import.php:574
msgid "You must be logged in to use this feature."
msgstr "Debe estar registrado para poder usar esta funcionalidad."
-#: ../../mod/import.php:547
+#: ../../mod/import.php:579
msgid "Import Channel"
msgstr "Importar canal"
-#: ../../mod/import.php:548
+#: ../../mod/import.php:580
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."
-#: ../../mod/import.php:549
+#: ../../mod/import.php:581
msgid "File to Upload"
msgstr "Fichero para subir"
-#: ../../mod/import.php:550
+#: ../../mod/import.php:582
msgid "Or provide the old server/hub details"
msgstr "O proporcione los detalles de su antiguo servidor/hub"
-#: ../../mod/import.php:551
+#: ../../mod/import.php:583
msgid "Your old identity address (xyz@example.com)"
msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)"
-#: ../../mod/import.php:552
+#: ../../mod/import.php:584
msgid "Your old login email address"
msgstr "Su antigua dirección de correo electrónico"
-#: ../../mod/import.php:553
+#: ../../mod/import.php:585
msgid "Your old login password"
msgstr "Su antigua contraseña"
-#: ../../mod/import.php:554
+#: ../../mod/import.php:586
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"
@@ -5179,17 +5163,17 @@ 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 ubicació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."
-#: ../../mod/import.php:555
+#: ../../mod/import.php:587
msgid "Make this hub my primary location"
msgstr "Convertir este servidor en mi ubicación primaria"
-#: ../../mod/import.php:556
+#: ../../mod/import.php:588
msgid ""
"Import existing posts if possible (experimental - limited by available "
"memory"
msgstr "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible"
-#: ../../mod/import.php:557
+#: ../../mod/import.php:589
msgid ""
"This process may take several minutes to complete. Please submit the form "
"only once and leave this page open until finished."
@@ -5413,7 +5397,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."
-#: ../../mod/lostpass.php:86 ../../boot.php:1559
+#: ../../mod/lostpass.php:86 ../../boot.php:1558
msgid "Password Reset"
msgstr "Restablecer la contraseña"
@@ -7139,7 +7123,7 @@ msgstr "Fecha de solicitud"
msgid "No registrations."
msgstr "Sin registros."
-#: ../../mod/admin.php:824 ../../mod/connedit.php:687
+#: ../../mod/admin.php:824 ../../mod/connedit.php:699
msgid "Approve"
msgstr "Aprobar"
@@ -7147,11 +7131,11 @@ msgstr "Aprobar"
msgid "Deny"
msgstr "Rechazar"
-#: ../../mod/admin.php:827 ../../mod/connedit.php:519
+#: ../../mod/admin.php:827 ../../mod/connedit.php:531
msgid "Block"
msgstr "Bloquear"
-#: ../../mod/admin.php:828 ../../mod/connedit.php:519
+#: ../../mod/admin.php:828 ../../mod/connedit.php:531
msgid "Unblock"
msgstr "Desbloquear"
@@ -8223,220 +8207,236 @@ msgid ""
"removed from the network"
msgstr "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red"
+#: ../../mod/connedit.php:75
+msgid "Could not access contact record."
+msgstr "No se ha podido acceder al registro de contacto."
+
+#: ../../mod/connedit.php:99
+msgid "Could not locate selected profile."
+msgstr "No se ha podido localizar el perfil seleccionado."
+
+#: ../../mod/connedit.php:219
+msgid "Connection updated."
+msgstr "Conexión actualizada."
+
+#: ../../mod/connedit.php:221
+msgid "Failed to update connection record."
+msgstr "Error al actualizar el registro de la conexión."
+
#: ../../mod/connedit.php:267
msgid "is now connected to"
msgstr "ahora está conectado a"
-#: ../../mod/connedit.php:380
+#: ../../mod/connedit.php:392
msgid "Could not access address book record."
msgstr "No se pudo acceder a la entrada en su libreta de direcciones."
-#: ../../mod/connedit.php:394
+#: ../../mod/connedit.php:406
msgid "Refresh failed - channel is currently unavailable."
msgstr "Recarga fallida - no se puede encontrar actualmente el canal"
-#: ../../mod/connedit.php:406 ../../mod/connedit.php:418
-#: ../../mod/connedit.php:430 ../../mod/connedit.php:442
-#: ../../mod/connedit.php:458
+#: ../../mod/connedit.php:418 ../../mod/connedit.php:430
+#: ../../mod/connedit.php:442 ../../mod/connedit.php:454
+#: ../../mod/connedit.php:470
msgid "Unable to set address book parameters."
msgstr "No ha sido posible establecer los parámetros de la libreta de direcciones."
-#: ../../mod/connedit.php:482
+#: ../../mod/connedit.php:494
msgid "Connection has been removed."
msgstr "La conexión ha sido eliminada."
-#: ../../mod/connedit.php:501
+#: ../../mod/connedit.php:513
#, php-format
msgid "View %s's profile"
msgstr "Ver el perfil de %s"
-#: ../../mod/connedit.php:505
+#: ../../mod/connedit.php:517
msgid "Refresh Permissions"
msgstr "Recargar los permisos"
-#: ../../mod/connedit.php:508
+#: ../../mod/connedit.php:520
msgid "Fetch updated permissions"
msgstr "Obtener los permisos actualizados"
-#: ../../mod/connedit.php:512
+#: ../../mod/connedit.php:524
msgid "Recent Activity"
msgstr "Actividad reciente"
-#: ../../mod/connedit.php:515
+#: ../../mod/connedit.php:527
msgid "View recent posts and comments"
msgstr "Ver publicaciones y comentarios recientes"
-#: ../../mod/connedit.php:522
+#: ../../mod/connedit.php:534
msgid "Block (or Unblock) all communications with this connection"
msgstr "Bloquear (o desbloquear) todas las comunicaciones con esta conexión"
-#: ../../mod/connedit.php:523
+#: ../../mod/connedit.php:535
msgid "This connection is blocked!"
msgstr "¡Esta conexión está bloqueada!"
-#: ../../mod/connedit.php:527
+#: ../../mod/connedit.php:539
msgid "Unignore"
msgstr "Dejar de ignorar"
-#: ../../mod/connedit.php:527 ../../mod/notifications.php:51
+#: ../../mod/connedit.php:539 ../../mod/notifications.php:51
msgid "Ignore"
msgstr "Ignorar"
-#: ../../mod/connedit.php:530
+#: ../../mod/connedit.php:542
msgid "Ignore (or Unignore) all inbound communications from this connection"
msgstr "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión"
-#: ../../mod/connedit.php:531
+#: ../../mod/connedit.php:543
msgid "This connection is ignored!"
msgstr "¡Esta conexión es ignorada!"
-#: ../../mod/connedit.php:535
+#: ../../mod/connedit.php:547
msgid "Unarchive"
msgstr "Desarchivar"
-#: ../../mod/connedit.php:535
+#: ../../mod/connedit.php:547
msgid "Archive"
msgstr "Archivar"
-#: ../../mod/connedit.php:538
+#: ../../mod/connedit.php:550
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"
-#: ../../mod/connedit.php:539
+#: ../../mod/connedit.php:551
msgid "This connection is archived!"
msgstr "¡Esta conexión esta archivada!"
-#: ../../mod/connedit.php:543
+#: ../../mod/connedit.php:555
msgid "Unhide"
msgstr "Mostrar"
-#: ../../mod/connedit.php:543
+#: ../../mod/connedit.php:555
msgid "Hide"
msgstr "Ocultar"
-#: ../../mod/connedit.php:546
+#: ../../mod/connedit.php:558
msgid "Hide or Unhide this connection from your other connections"
msgstr "Ocultar o mostrar esta conexión a sus otras conexiones"
-#: ../../mod/connedit.php:547
+#: ../../mod/connedit.php:559
msgid "This connection is hidden!"
msgstr "¡Esta conexión está oculta!"
-#: ../../mod/connedit.php:554
+#: ../../mod/connedit.php:566
msgid "Delete this connection"
msgstr "Eliminar esta conexión"
-#: ../../mod/connedit.php:635
+#: ../../mod/connedit.php:647
msgid "Approve this connection"
msgstr "Aprobar esta conexión"
-#: ../../mod/connedit.php:635
+#: ../../mod/connedit.php:647
msgid "Accept connection to allow communication"
msgstr "Aceptar la conexión para permitir la comunicación"
-#: ../../mod/connedit.php:640
+#: ../../mod/connedit.php:652
msgid "Set Affinity"
msgstr "Ajustar Afinidad"
-#: ../../mod/connedit.php:643
+#: ../../mod/connedit.php:655
msgid "Set Profile"
msgstr "Ajustar Perfil"
-#: ../../mod/connedit.php:646
+#: ../../mod/connedit.php:658
msgid "Set Affinity & Profile"
msgstr "Ajustar Afinidad y Perfil"
-#: ../../mod/connedit.php:663
+#: ../../mod/connedit.php:675
msgid "Apply these permissions automatically"
msgstr "Aplicar estos permisos automaticamente"
-#: ../../mod/connedit.php:665
+#: ../../mod/connedit.php:677
msgid "This connection's address is"
msgstr "La dirección de esta conexión es"
-#: ../../mod/connedit.php:668
+#: ../../mod/connedit.php:680
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."
-#: ../../mod/connedit.php:670
+#: ../../mod/connedit.php:682
msgid "Slide to adjust your degree of friendship"
msgstr "Deslizar para ajustar el grado de amistad"
-#: ../../mod/connedit.php:672
+#: ../../mod/connedit.php:684
msgid "Slide to adjust your rating"
msgstr "Deslizar para ajustar su valoración"
-#: ../../mod/connedit.php:673 ../../mod/connedit.php:678
+#: ../../mod/connedit.php:685 ../../mod/connedit.php:690
msgid "Optionally explain your rating"
msgstr "Opcionalmente, puede explicar su valoración"
-#: ../../mod/connedit.php:675
+#: ../../mod/connedit.php:687
msgid "Custom Filter"
msgstr "Filtro Personalizado"
-#: ../../mod/connedit.php:676
+#: ../../mod/connedit.php:688
msgid "Only import posts with this text"
msgstr "Importar solo entradas que contengan este texto"
-#: ../../mod/connedit.php:676 ../../mod/connedit.php:677
+#: ../../mod/connedit.php:688 ../../mod/connedit.php:689
msgid ""
"words one per line or #tags or /patterns/, leave blank to import all posts"
msgstr "Palabras, una por línea o #etiquetas o /patrones/, dejar en blanco para importar todas las entradas"
-#: ../../mod/connedit.php:677
+#: ../../mod/connedit.php:689
msgid "Do not import posts with this text"
msgstr "No importar entradas que contienen este texto"
-#: ../../mod/connedit.php:679
+#: ../../mod/connedit.php:691
msgid "This information is public!"
msgstr "¡Esta información es pública!"
-#: ../../mod/connedit.php:684
+#: ../../mod/connedit.php:696
msgid "Connection Pending Approval"
msgstr "Conexión pendiente de aprobación"
-#: ../../mod/connedit.php:685
+#: ../../mod/connedit.php:697
msgid "Connection Request"
msgstr "Solicitud de conexión"
-#: ../../mod/connedit.php:686
+#: ../../mod/connedit.php:698
#, php-format
msgid ""
"(%s) would like to connect with you. Please approve this connection to allow"
" communication."
msgstr "(%s) desearía conectar con usted. por favor, apruebe esta conexión para permitir la comunicación."
-#: ../../mod/connedit.php:688
+#: ../../mod/connedit.php:700
msgid "Approve Later"
msgstr "Aprobar más tarde"
-#: ../../mod/connedit.php:691
+#: ../../mod/connedit.php:703
msgid "inherited"
msgstr "heredado"
-#: ../../mod/connedit.php:693
+#: ../../mod/connedit.php:705
#, 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."
-#: ../../mod/connedit.php:695
+#: ../../mod/connedit.php:707
msgid "Their Settings"
msgstr "Sus ajustes"
-#: ../../mod/connedit.php:696
+#: ../../mod/connedit.php:708
msgid "My Settings"
msgstr "Mis ajustes"
-#: ../../mod/connedit.php:698
+#: ../../mod/connedit.php:710
msgid "Individual Permissions"
msgstr "Permisos individuales"
-#: ../../mod/connedit.php:699
+#: ../../mod/connedit.php:711
msgid ""
"Some permissions may be inherited from your channel's <a "
"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
@@ -8444,7 +8444,7 @@ msgid ""
" settings here."
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. <strong>No</strong> puede cambiar estos ajustes aquí."
-#: ../../mod/connedit.php:700
+#: ../../mod/connedit.php:712
msgid ""
"Some permissions may be inherited from your channel's <a "
"href=\"settings\"><strong>privacy settings</strong></a>, which have higher "
@@ -8452,7 +8452,7 @@ 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 impacto hasta que cambie los ajustes heredados."
-#: ../../mod/connedit.php:701
+#: ../../mod/connedit.php:713
msgid "Last update:"
msgstr "Última actualización:"
@@ -8550,7 +8550,7 @@ msgstr "Comunicación segura no disponible. Pero <strong>puede</strong> responde
#: ../../mod/mail.php:342
msgid "Send Reply"
-msgstr "Envía respuesta"
+msgstr "Responder"
#: ../../mod/notifications.php:26
msgid "Invalid request identifier."
@@ -8668,7 +8668,7 @@ msgstr "enviarle un mensaje privado"
#: ../../mod/ping.php:314
msgid "added your channel"
-msgstr "se añadió su canal"
+msgstr "añadió este canal a sus conexiones"
#: ../../mod/ping.php:355
msgid "posted an event"
@@ -9031,51 +9031,51 @@ msgstr "Ajustar el tamaño de la foto del autor de la conversación"
msgid "Set size of followup author photos"
msgstr "Ajustar el tamaño de foto de los seguidores del autor"
-#: ../../boot.php:1356
+#: ../../boot.php:1355
#, php-format
msgid "Update %s failed. See error logs."
msgstr "La actualización %s ha fallado. Mire el informe de errores."
-#: ../../boot.php:1359
+#: ../../boot.php:1358
#, php-format
msgid "Update Error at %s"
msgstr "Error de Actualización en %s"
-#: ../../boot.php:1526
+#: ../../boot.php:1525
msgid ""
"Create an account to access services and applications within the Red Matrix"
msgstr "Crear una cuenta para acceder a los servicios y aplicaciones dentro de la red"
-#: ../../boot.php:1554
+#: ../../boot.php:1553
msgid "Password"
msgstr "Contraseña"
-#: ../../boot.php:1555
+#: ../../boot.php:1554
msgid "Remember me"
msgstr "Recordarme"
-#: ../../boot.php:1558
+#: ../../boot.php:1557
msgid "Forgot your password?"
msgstr "¿Olvidó su contraseña?"
-#: ../../boot.php:2178
+#: ../../boot.php:2177
msgid "toggle mobile"
msgstr "cambiar a modo móvil"
-#: ../../boot.php:2313
+#: ../../boot.php:2312
msgid "Website SSL certificate is not valid. Please correct."
msgstr "El certificado SSL del sitio web no es válido. Por favor, corríjalo."
-#: ../../boot.php:2316
+#: ../../boot.php:2315
#, php-format
msgid "[red] Website SSL error for %s"
msgstr "[red] Error SSL del sitio web en %s"
-#: ../../boot.php:2353
+#: ../../boot.php:2352
msgid "Cron/Scheduled tasks not running."
msgstr "Las tareas del Planificador/Cron no se están funcionando."
-#: ../../boot.php:2357
+#: ../../boot.php:2356
#, php-format
msgid "[red] Cron tasks not running on %s"
msgstr "[red] Las tareas de Cron no están funcionando en %s"
diff --git a/view/es/strings.php b/view/es/strings.php
index 8088348f4..685a3417a 100644
--- a/view/es/strings.php
+++ b/view/es/strings.php
@@ -96,7 +96,7 @@ $a->strings["Public Timeline"] = "Cronología pública";
$a->strings["Default"] = "Predeterminado";
$a->strings["Delete this item?"] = "¿Borrar este elemento?";
$a->strings["Comment"] = "Comentar";
-$a->strings["[+] show all"] = "[+] mostrar todo";
+$a->strings["[+] show all"] = "[+] mostrar todo:";
$a->strings["[-] show less"] = "[-] mostrar menos";
$a->strings["[+] expand"] = "[+] expandir";
$a->strings["[-] collapse"] = "[-] contraer";
@@ -202,7 +202,7 @@ $a->strings["bytes"] = "bytes";
$a->strings["remove category"] = "eliminar categoría";
$a->strings["remove from file"] = "eliminar del fichero";
$a->strings["Click to open/close"] = "Pulsar para abrir/cerrar";
-$a->strings["Link to Source"] = "Ir al mensaje original";
+$a->strings["Link to Source"] = "Enlazar con la entrada en su ubicación original";
$a->strings["default"] = "por defecto";
$a->strings["Page layout"] = "Formato de la página";
$a->strings["You can create your own with the layouts tool"] = "Puede crear su propio formato gráfico con las herramientas de diseño";
@@ -351,7 +351,7 @@ $a->strings["Bookmarked Chatrooms"] = "Salas de chat preferidas";
$a->strings["Suggested Chatrooms"] = "Salas de chat sugeridas";
$a->strings["photo/image"] = "foto/imagen";
$a->strings["Rate Me"] = "Valorar este canal";
-$a->strings["View Ratings"] = "Ver valoraciones";
+$a->strings["View Ratings"] = "Mostrar las valoraciones";
$a->strings["Public Hubs"] = "Servidores públicos";
$a->strings["l F d, Y \\@ g:i A"] = "l d de F, Y \\@ G:i";
$a->strings["Starts:"] = "Comienza:";
@@ -364,9 +364,9 @@ $a->strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %
$a->strings["%1\$s sent you %2\$s."] = "%1\$s le envió %2\$s.";
$a->strings["a private message"] = "un mensaje privado";
$a->strings["Please visit %s to view and/or reply to your private messages."] = "Por favor visite %s para ver y/o responder a su mensaje privado.";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s comentó [zrl=%3\$s]a %4\$s[/zrl]";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s comentó [zrl=%3\$s]%4\$s de %5\$s[/zrl]";
-$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s comentó [zrl=%3\$s]su %4\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s comentó en [zrl=%3\$s]a %4\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s comentó en [zrl=%3\$s]%4\$s de %5\$s[/zrl]";
+$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s comentó en [zrl=%3\$s]su %4\$s[/zrl]";
$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red:Aviso] Nuevo comentario de %2\$s en la conversación #%1\$d";
$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s comentó un elemento/conversación que ha estado siguiendo.";
$a->strings["Please visit %s to view and/or reply to the conversation."] = "Para ver o comentar la conversación, visite %s";
@@ -398,7 +398,7 @@ $a->strings["No recipient provided."] = "No se ha especificado ningún destinata
$a->strings["[no subject]"] = "[sin asunto]";
$a->strings["Unable to determine sender."] = "No ha sido posible determinar el remitente. ";
$a->strings["Stored post could not be verified."] = "No se han podido verificar las entradas guardadas.";
-$a->strings["%1\$s likes %2\$s's %3\$s"] = "a %1\$s le gusta %3\$s de %2\$s";
+$a->strings["%1\$s likes %2\$s's %3\$s"] = "a %1\$s le gusta el %3\$s de %2\$s";
$a->strings["Please choose"] = "Por favor, elija";
$a->strings["Agree"] = "De acuerdo";
$a->strings["Disagree"] = "En desacuerdo";
@@ -432,8 +432,8 @@ $a->strings["__ctx:noun__ Dislike"] = array(
);
$a->strings["Add Star"] = "Destacar añadiendo una estrella";
$a->strings["Remove Star"] = "Eliminar estrella";
-$a->strings["Toggle Star Status"] = "Activar o desactivar el estado de preferido";
-$a->strings["starred"] = "preferidos";
+$a->strings["Toggle Star Status"] = "Activar o desactivar el estado de entrada preferida";
+$a->strings["starred"] = "preferidas";
$a->strings["Message signature validated"] = "Firma de mensaje validada";
$a->strings["Message signature incorrect"] = "Firma de mensaje incorrecta";
$a->strings["Add Tag"] = "Añadir etiqueta";
@@ -605,7 +605,7 @@ $a->strings["Filed under:"] = "Archivado bajo:";
$a->strings["View in context"] = "Mostrar en su contexto";
$a->strings["remove"] = "eliminar";
$a->strings["Delete Selected Items"] = "Eliminar elementos seleccionados";
-$a->strings["View Source"] = "Ver la fuente original de esta entrada";
+$a->strings["View Source"] = "Ver la fuente original de la entrada";
$a->strings["Follow Thread"] = "Seguir el hilo";
$a->strings["View Status"] = "Ver estado";
$a->strings["View Photos"] = "Ver fotos";
@@ -672,9 +672,9 @@ $a->strings["Sort by Comment Date"] = "Ordenar por fecha de comentario";
$a->strings["Posted Order"] = "Publicaciones recientes";
$a->strings["Sort by Post Date"] = "Ordenar por fecha de publicación";
$a->strings["Posts that mention or involve you"] = "Publicaciones que le mencionan o involucran";
-$a->strings["New"] = "Novedades";
+$a->strings["New"] = "Nuevas";
$a->strings["Activity Stream - by date"] = "Flujo de actividad - por fecha";
-$a->strings["Starred"] = "Preferidos";
+$a->strings["Starred"] = "Preferidas";
$a->strings["Favourite Posts"] = "Publicaciones favoritas";
$a->strings["Spam"] = "Correo basura";
$a->strings["Posts flagged as SPAM"] = "Publicaciones marcadas como basura";
@@ -1061,7 +1061,7 @@ $a->strings["Title:"] = "Título:";
$a->strings["Share this event"] = "Compartir este evento";
$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s está siguiendo %2\$s de %3\$s";
$a->strings["Public Sites"] = "Sitios públicos";
-$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Los sitios listados permiten el registro público de la red \$Projectname. Todos los sitios de la red están vinculados entre sí por lo que sus miembros, en ninguna de ellas, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los enlaces de los proveedores de <strong> pueden </strong> proporcionar detalles adicionales.";
+$a->strings["The listed sites allow public registration for the \$Projectname network. All sites in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some sites may require subscription or provide tiered service plans. The provider links <strong>may</strong> provide additional details."] = "Los sitios listados permiten el registro público de la red \$Projectname. Todos los sitios de la red están vinculados entre sí por lo que sus miembros, en ninguna de ellos, indican la pertenencia a la red en su conjunto. Algunos sitios pueden requerir suscripción o proporcionar planes de servicio por niveles. Los enlaces de los proveedores <strong> pueden </strong> proporcionar detalles adicionales.";
$a->strings["Rate this hub"] = "Valorar este sitio";
$a->strings["Site URL"] = "Dirección del sitio";
$a->strings["Access Type"] = "Tipo de Acceso";
@@ -1115,10 +1115,6 @@ $a->strings["No channel."] = "Ningún canal.";
$a->strings["Common connections"] = "Conexiones comunes";
$a->strings["No connections in common."] = "Ninguna conexión en común.";
$a->strings["This site is not a directory server"] = "Este sitio no es un servidor de directorio";
-$a->strings["Could not access contact record."] = "No se ha podido acceder al registro de contacto.";
-$a->strings["Could not locate selected profile."] = "No se ha podido localizar el perfil seleccionado.";
-$a->strings["Connection updated."] = "Conexión actualizada.";
-$a->strings["Failed to update connection record."] = "Error al actualizar el registro de la conexión.";
$a->strings["Blocked"] = "Bloqueadas";
$a->strings["Ignored"] = "Ignoradas";
$a->strings["Hidden"] = "Ocultas";
@@ -1945,6 +1941,10 @@ $a->strings["Remove This Channel"] = "Eliminar este canal";
$a->strings["This channel will be completely removed from the network. "] = "Este canal va a ser completamente eliminado de la red.";
$a->strings["Remove this channel and all its clones from the network"] = "Eliminar este canal y todos sus clones de la red";
$a->strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red";
+$a->strings["Could not access contact record."] = "No se ha podido acceder al registro de contacto.";
+$a->strings["Could not locate selected profile."] = "No se ha podido localizar el perfil seleccionado.";
+$a->strings["Connection updated."] = "Conexión actualizada.";
+$a->strings["Failed to update connection record."] = "Error al actualizar el registro de la conexión.";
$a->strings["is now connected to"] = "ahora está conectado a";
$a->strings["Could not access address book record."] = "No se pudo acceder a la entrada en su libreta de direcciones.";
$a->strings["Refresh failed - channel is currently unavailable."] = "Recarga fallida - no se puede encontrar actualmente el canal";
@@ -2020,7 +2020,7 @@ $a->strings["Recall message"] = "Recuperar el mensaje";
$a->strings["Message has been recalled."] = "El mensaje ha sido recuperado.";
$a->strings["Private Conversation"] = "Conversación privada";
$a->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 de perfil del remitente.";
-$a->strings["Send Reply"] = "Envía respuesta";
+$a->strings["Send Reply"] = "Responder";
$a->strings["Invalid request identifier."] = "Petición inválida del identificador.";
$a->strings["Discard"] = "Descartar";
$a->strings["Please login."] = "Por favor, inicie sesión.";
@@ -2047,7 +2047,7 @@ $a->strings["Version ID"] = "Versión";
$a->strings["Price of app"] = "Precio de la aplicación";
$a->strings["Location (URL) to purchase app"] = "Ubicación (URL) donde adquirir la aplicación";
$a->strings["sent you a private message"] = "enviarle un mensaje privado";
-$a->strings["added your channel"] = "se añadió su canal";
+$a->strings["added your channel"] = "añadió este canal a sus conexiones";
$a->strings["posted an event"] = "publicó un evento";
$a->strings["Comanche page description language help"] = "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche";
$a->strings["Layout Description"] = "Descripción del formato";
diff --git a/view/js/mod_rpost.js b/view/js/mod_rpost.js
new file mode 100644
index 000000000..06b67136b
--- /dev/null
+++ b/view/js/mod_rpost.js
@@ -0,0 +1 @@
+$(document).ready(function() { initEditor(); });
diff --git a/view/pdl/mod_admin.pdl b/view/pdl/mod_admin.pdl
new file mode 100644
index 000000000..5bd47ea37
--- /dev/null
+++ b/view/pdl/mod_admin.pdl
@@ -0,0 +1,3 @@
+[region=aside]
+[widget=admin][/widget]
+[/region] \ No newline at end of file
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index 25436db5f..0446269c7 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -347,7 +347,7 @@ footer {
.vcard {
margin-bottom: 10px;
padding: 10px;
- background-color: $comment_item_colour;
+ background-color: rgba(254,254,254,0.5);
border-bottom: 1px solid rgba(238,238,238,0.8);
-moz-border-radius: $radiuspx;
-webkit-border-radius: $radiuspx;
@@ -698,7 +698,7 @@ a.rateme, div.rateme {
#contact-block {
width: 100%;
float: left;
- background-color: $comment_item_colour;
+ background-color: rgba(254,254,254,0.5);
border-bottom: 1px solid rgba(238,238,238,0.8);
-moz-border-radius: $radiuspx;
-webkit-border-radius: $radiuspx;
@@ -751,8 +751,8 @@ a.rateme, div.rateme {
}
.wall-item-conv {
- padding-top: 5px;
- padding-bottom: 10px;
+ padding-top: 10px;
+ padding-left: 10px;
}
@@ -1655,12 +1655,6 @@ img.mail-list-sender-photo {
border-top-left-radius: $radiuspx;
}
-.generic-content-wrapper-styled {
- background-color: $comment_item_colour;
- padding: 10px;
- border-radius: $radiuspx;
-}
-
.wall-item-content-wrapper.comment {
background-color: $comment_item_colour;
border-color: $comment_border_colour;
@@ -1786,7 +1780,7 @@ img.mail-list-sender-photo {
/* widgets */
.widget {
- background-color: $comment_item_colour;
+ background-color: rgba(254,254,254,0.5);
border-bottom: 1px solid rgba(238,238,238,0.8);
-moz-border-radius: $radiuspx;
-webkit-border-radius: $radiuspx;
@@ -1867,6 +1861,19 @@ nav .dropdown-menu {
margin: 7px 0px;
}
+.generic-content-wrapper-styled {
+ background-color: $bgcolour;
+ padding: 10px;
+ border-radius: $radiuspx;
+}
+
+.generic-content-wrapper {
+ border: 1px solid #ccc;
+ box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.2);
+ border-radius: $radiuspx;
+ background-color: #fff;
+}
+
.section-title-wrapper {
padding: 7px 10px;
background-color: $item_colour;
@@ -2303,4 +2310,4 @@ nav .badge.mail-update:hover {
.help-searchlist a {
font-size: 130%;
-} \ No newline at end of file
+}
diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php
index 96dba59e5..f542e8e12 100644
--- a/view/theme/redbasic/php/style.php
+++ b/view/theme/redbasic/php/style.php
@@ -107,15 +107,15 @@ if (! $link_colour)
if (! $banner_colour)
$banner_colour = "#fff";
if (! $bgcolour)
- $bgcolour = "#fdfdfd";
+ $bgcolour = "rgb(254,254,254)";
if (! $background_image)
$background_image ='';
if (! $item_colour)
- $item_colour = "rgba(238,238,238,0.8)";
+ $item_colour = "rgb(238,238,238)";
if (! $comment_item_colour)
- $comment_item_colour = "rgba(254,254,254,0.4)";
+ $comment_item_colour = "rgb(255,255,255)";
if (! $comment_border_colour)
- $comment_border_colour = "rgba(238,238,238,0.8)";
+ $comment_border_colour = "rgb(255,255,255)";
if (! $toolicon_colour)
$toolicon_colour = '#777';
if (! $toolicon_activecolour)
@@ -133,7 +133,7 @@ if (! $radius)
if (! $shadow)
$shadow = "0";
if (! $converse_width)
- $converse_width = "1024";
+ $converse_width = "790";
if(! $top_photo)
$top_photo = '48px';
if(! $comment_indent)
diff --git a/view/theme/redbasic/schema/boxy.css b/view/theme/redbasic/schema/boxy.css
index f3da9b262..ad3e587f0 100644
--- a/view/theme/redbasic/schema/boxy.css
+++ b/view/theme/redbasic/schema/boxy.css
@@ -3,9 +3,9 @@
}
.wall-item-content-wrapper.comment {
- border-width: 0px 1px 1px 1px;
+ border-width: 0px 0px 1px 0px;
}
.hide-comments-outer {
- border-width: 1px 1px 1px 1px;
+ border-width: 1px 0px 1px 0px;
}
diff --git a/view/theme/redbasic/schema/boxy.php b/view/theme/redbasic/schema/boxy.php
index d609ccd25..f298a0def 100644
--- a/view/theme/redbasic/schema/boxy.php
+++ b/view/theme/redbasic/schema/boxy.php
@@ -2,3 +2,5 @@
if (! $radiuspx)
$radiuspx = "4";
+if (! $comment_border_colour)
+ $comment_border_colour = "rgb(238,238,238)";
diff --git a/view/theme/redbasic/schema/dark.css b/view/theme/redbasic/schema/dark.css
index 02ee4707e..4e8e23de5 100644
--- a/view/theme/redbasic/schema/dark.css
+++ b/view/theme/redbasic/schema/dark.css
@@ -1,4 +1,10 @@
+.generic-content-wrapper {
+ border: 1px solid #111;
+ background-color: transparent;
+}
+
.vcard, #contact-block, .widget {
+ background-color: transparent;
border-bottom: 1px solid #fff;
}
diff --git a/view/theme/redbasic/schema/focus.css b/view/theme/redbasic/schema/focus.css
deleted file mode 100644
index ea983ffc8..000000000
--- a/view/theme/redbasic/schema/focus.css
+++ /dev/null
@@ -1,22 +0,0 @@
-.generic-content-wrapper {
- border: 1px solid #ccc;
- box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.2);
- border-radius: 4px;
- background-color: #fff;
-}
-
-.wall-item-content-wrapper.comment {
- background-color: #fff;
-}
-
-.section-content-tools-wrapper,
-.section-content-wrapper,
-.section-content-wrapper-np,
-.hide-comments-outer {
- background-color: #fff;
-}
-
-.wall-item-conv {
- padding-top: 10px;
- padding-left: 10px;
-}
diff --git a/view/theme/redbasic/schema/focus.php b/view/theme/redbasic/schema/focus.php
deleted file mode 100644
index 1f1963764..000000000
--- a/view/theme/redbasic/schema/focus.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-if (! $nav_bg)
- $nav_bg = "#222";
-if (! $nav_gradient_top)
- $nav_gradient_top = "#3c3c3c";
-if (! $nav_gradient_bottom)
- $nav_gradient_bottom = "#222";
-if (! $nav_active_gradient_top)
- $nav_active_gradient_top = "#222";
-if (! $nav_active_gradient_bottom)
- $nav_active_gradient_bottom = "#282828";
-if (! $nav_bd)
- $nav_bd = "#222";
-if (! $nav_icon_colour)
- $nav_icon_colour = "#999";
-if (! $nav_active_icon_colour)
- $nav_active_icon_colour = "#fff";
-if (! $link_colour)
- $link_colour = "#337AB7";
-if (! $banner_colour)
- $banner_colour = "#fff";
-if (! $bgcolour)
- $bgcolour = "#fdfdfd";
-if (! $background_image)
- $background_image ='';
-if (! $item_colour)
- $item_colour = "rgb(238,238,238)";
-if (! $comment_item_colour)
- $comment_item_colour = "rgba(254,254,254,0.4)";
-if (! $comment_border_colour)
- $comment_border_colour = "transparent";
-if (! $toolicon_colour)
- $toolicon_colour = '#777';
-if (! $toolicon_activecolour)
- $toolicon_activecolour = '#000';
-if (! $item_opacity)
- $item_opacity = "1";
-if (! $font_size)
- $font_size = "0.9rem";
-if (! $body_font_size)
- $body_font_size = "0.75rem";
-if (! $font_colour)
- $font_colour = "#4d4d4d";
-if (! $radius)
- $radius = "4";
-if (! $shadow)
- $shadow = "0";
-if (! $converse_width)
- $converse_width = "790";
-if(! $top_photo)
- $top_photo = '48px';
-if(! $comment_indent)
- $comment_indent = '0px';
-if(! $reply_photo)
- $reply_photo = '32px';
-if($nav_min_opacity === false || $nav_min_opacity === '') {
- $nav_float_min_opacity = 1.0;
- $nav_percent_min_opacity = 100;
-}
-else {
- $nav_float_min_opacity = (float) $nav_min_opacity;
- $nav_percent_min_opacity = (int) 100 * $nav_min_opacity;
-}
diff --git a/view/theme/redbasic/schema/simple_black_on_white.css b/view/theme/redbasic/schema/simple_black_on_white.css
index c00f3c260..f69ba3450 100644
--- a/view/theme/redbasic/schema/simple_black_on_white.css
+++ b/view/theme/redbasic/schema/simple_black_on_white.css
@@ -1,4 +1,10 @@
+.generic-content-wrapper {
+ border: 1px solid #fff;
+ background-color: transparent;
+}
+
.vcard, #contact-block, .widget {
+ background-color: transparent;
border-bottom: 1px solid #fff;
}
diff --git a/view/theme/redbasic/schema/simple_green_on_black.css b/view/theme/redbasic/schema/simple_green_on_black.css
index ce4465930..1f0a2f1e6 100644
--- a/view/theme/redbasic/schema/simple_green_on_black.css
+++ b/view/theme/redbasic/schema/simple_green_on_black.css
@@ -1,4 +1,10 @@
+.generic-content-wrapper {
+ border: 1px solid #000;
+ background-color: transparent;
+}
+
.vcard, #contact-block, .widget {
+ background-color: transparent;
border-bottom: 1px solid #fff;
}
diff --git a/view/theme/redbasic/schema/simple_white_on_black.css b/view/theme/redbasic/schema/simple_white_on_black.css
index 3504265b9..627f3ee5c 100644
--- a/view/theme/redbasic/schema/simple_white_on_black.css
+++ b/view/theme/redbasic/schema/simple_white_on_black.css
@@ -1,9 +1,11 @@
-.vcard, #contact-block, .widget {
- border-bottom: 1px solid #fff;
+.generic-content-wrapper {
+ border: 1px solid #000;
+ background-color: transparent;
}
-.abook-pending-contact, .abook-permschange {
- background: #000;
+.vcard, #contact-block, .widget {
+ background-color: transparent;
+ border-bottom: 1px solid #fff;
}
#cboxContent a {
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index 49369ab63..7e12c6bb3 100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -3,6 +3,7 @@
var editor = false;
var textlen = 0;
var plaintext = '{{$editselect}}';
+var pretext = '{{$pretext}}';
function initEditor(cb){
if (editor==false){
@@ -21,6 +22,8 @@ function initEditor(cb){
});
$(".jothidden").show();
if (typeof cb!="undefined") cb();
+ if(pretext.length)
+ addeditortext(pretext);
return;
}
tinyMCE.init({
diff --git a/view/tpl/uexport.tpl b/view/tpl/uexport.tpl
index 5de995ba0..b9a1b9572 100644
--- a/view/tpl/uexport.tpl
+++ b/view/tpl/uexport.tpl
@@ -1,9 +1,12 @@
<div class="generic-content-wrapper">
-<h1>{{$title}}</h1>
-<b><a href="uexport/basic">{{$basictitle}}</a></b></p>
-<p>{{$basic}}</p>
-
-<p><b><a href="uexport/complete">{{$fulltitle}}</a></b></p>
-<p>{{$full}}</p>
+ <div class="section-title-wrapper">
+ <h2>{{$title}}</h2>
+ </div>
+ <div class="section-content-wrapper">
+ <b><a href="uexport/basic">{{$basictitle}}</a></b></p>
+ <p>{{$basic}}</p>
+ <p><b><a href="uexport/complete">{{$fulltitle}}</a></b></p>
+ <p>{{$full}}</p>
+ </div>
</div>