Merge remote-tracking branch 'upstream/master'

This commit is contained in:
zottel 2015-09-29 12:40:24 +02:00
commit f950d27b3d
67 changed files with 137383 additions and 3105 deletions

View File

@ -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', 1155 );
define ( 'DB_UPDATE_VERSION', 1156 );
/**
* @brief Constant with a HTML line break.
@ -333,6 +333,12 @@ define ( 'MENU_ITEM_ZID', 0x0001);
define ( 'MENU_ITEM_NEWWIN', 0x0002);
define ( 'MENU_ITEM_CHATROOM', 0x0004);
define ( 'SITE_TYPE_ZOT', 0);
define ( 'SITE_TYPE_NOTZOT', 1);
define ( 'SITE_TYPE_UNKNOWN', 2);
/**
* Poll/Survey types
*/

View File

@ -25,8 +25,9 @@ function checksites_run($argv, $argc){
if($days < 1)
$days = 30;
$r = q("select * from site where site_dead = 0 and site_update < %s - INTERVAL %s $sql_options ",
db_utcnow(), db_quoteinterval($days . ' DAY')
$r = q("select * from site where site_dead = 0 and site_update < %s - INTERVAL %s and site_type = %d $sql_options ",
db_utcnow(), db_quoteinterval($days . ' DAY'),
intval(SITE_TYPE_ZOT)
);
if(! $r)

View File

@ -53,16 +53,33 @@ function deliver_run($argv, $argc) {
continue;
}
}
else {
// zot sites should all have a site record, unless they've been dead for as long as
// your site has existed. Since we don't know for sure what these sites are,
// call them unknown
q("insert into site (site_url, site_update, site_dead, site_type) values ('%s','%s',0,%d) ",
dbesc($base),
dbesc(datetime_convert()),
intval(($r[0]['outq_driver'] === 'post') ? SITE_TYPE_NOTZOT : SITE_TYPE_UNKNOWN)
);
}
}
}
// "post" queue driver - used for diaspora and friendica-over-diaspora communications.
if($r[0]['outq_driver'] === 'post') {
$result = z_post_url($r[0]['outq_posturl'],$r[0]['outq_msg']);
if($result['success'] && $result['return_code'] < 300) {
logger('deliver: queue post success to ' . $r[0]['outq_posturl'], LOGGER_DEBUG);
q("update site set site_update = '%s', site_dead = 0 where site_url = '%s' ",
dbesc(datetime_convert()),
dbesc($site_url)
);
q("update dreport set status = '%s', dreport_time = '%s' where dreport_queue = '%s' limit 1",
dbesc('accepted for delivery'),
dbesc(datetime_convert()),

View File

@ -151,16 +151,18 @@ function sync_directories($dirmode) {
$realm = get_directory_realm();
if ($realm == DIRECTORY_REALM) {
$r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and ( site_realm = '%s' or site_realm = '') ",
$r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_type = %d and ( site_realm = '%s' or site_realm = '') ",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
intval(SITE_TYPE_ZOT),
dbesc($realm)
);
} else {
$r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_realm like '%s' ",
$r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_realm like '%s' and site_type = %d ",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root()),
dbesc(protect_sprintf('%' . $realm . '%'))
dbesc(protect_sprintf('%' . $realm . '%')),
intval(SITE_TYPE_ZOT)
);
}
@ -187,9 +189,10 @@ function sync_directories($dirmode) {
intval($r[0]['site_valid'])
);
$r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s'",
$r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_type = %d ",
intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY),
dbesc(z_root())
dbesc(z_root()),
intval(SITE_TYPE_ZOT)
);
}
if (! $r)

View File

@ -28,9 +28,10 @@ function externals_run($argv, $argc){
}
else {
$randfunc = db_getfunc('RAND');
$r = q("select site_url, site_pull from site where site_url != '%s' and site_flags != %d order by $randfunc limit 1",
$r = q("select site_url, site_pull from site where site_url != '%s' and site_flags != %d and site_type = %d order by $randfunc limit 1",
dbesc(z_root()),
intval(DIRECTORY_MODE_STANDALONE)
intval(DIRECTORY_MODE_STANDALONE),
intval(SITE_TYPE_ZOT)
);
if($r)
$url = $r[0]['site_url'];

View File

@ -16,7 +16,9 @@ function is_matrix_url($url) {
function prune_hub_reinstalls() {
$r = q("select site_url from site where true");
$r = q("select site_url from site where site_type = %d",
intval(SITE_TYPE_ZOT)
);
if($r) {
foreach($r as $rr) {
$x = q("select count(*) as t, hubloc_sitekey, max(hubloc_connected) as c from hubloc where hubloc_url = '%s' group by hubloc_sitekey order by c",

View File

@ -3522,11 +3522,17 @@ function mail_store($arr) {
dbesc($arr['mid']),
intval($arr['channel_id'])
);
if($r) {
logger('mail_store: duplicate item ignored. ' . print_r($arr,true));
return 0;
}
if(! $r && $arr['mail_recalled'] == 1) {
logger('mail_store: recalled item not found. ' . print_r($arr,true));
return 0;
}
call_hooks('post_mail',$arr);
if(x($arr,'cancel')) {

View File

@ -120,7 +120,11 @@ function load_translation_table($lang, $install = false) {
global $a;
$a->strings = array();
if(file_exists("view/$lang/strings.php")) {
if(file_exists("view/$lang/hstrings.php")) {
include("view/$lang/hstrings.php");
}
elseif(file_exists("view/$lang/strings.php")) {
include("view/$lang/strings.php");
}
@ -129,7 +133,10 @@ function load_translation_table($lang, $install = false) {
if ($plugins !== false) {
foreach($plugins as $p) {
$name = $p['name'];
if(file_exists("addon/$name/lang/$lang/strings.php")) {
if(file_exists("addon/$name/lang/$lang/hstrings.php")) {
include("addon/$name/lang/$lang/hstrings.php");
}
elseif(file_exists("addon/$name/lang/$lang/strings.php")) {
include("addon/$name/lang/$lang/strings.php");
}
}
@ -139,7 +146,10 @@ function load_translation_table($lang, $install = false) {
// Allow individual strings to be over-ridden on this site
// Either for the default language or for all languages
if(file_exists("view/local-$lang/strings.php")) {
if(file_exists("view/local-$lang/hstrings.php")) {
include("view/local-$lang/hstrings.php");
}
elseif(file_exists("view/local-$lang/strings.php")) {
include("view/local-$lang/strings.php");
}
}

View File

@ -591,68 +591,86 @@ function import_xchan_photo($photo,$xchan,$thing = false) {
if(! $type)
$type = 'image/jpeg';
$result = z_fetch_url($photo,true);
if($result['success'])
if($result['success']) {
$img_str = $result['body'];
}
$img = photo_factory($img_str, $type);
if($img->is_valid()) {
$width = $img->getWidth();
$height = $img->getHeight();
if($width && $height) {
if(($width / $height) > 1.2) {
// crop out the sides
$margin = $width - $height;
$img->cropImage(300,($margin / 2),0,$height,$height);
$h = explode("\n",$result['header']);
if($h) {
foreach($h as $hl) {
if(stristr($hl,'content-type:')) {
if(! stristr($hl,'image/')) {
$photo_failure = true;
}
}
}
}
elseif(($height / $width) > 1.2) {
// crop out the bottom
$margin = $height - $width;
$img->cropImage(300,0,0,$width,$width);
}
else {
$img->scaleImageSquare(300);
}
}
else
$photo_failure = true;
$p = array('xchan' => $xchan,'resource_id' => $hash, 'filename' => basename($photo), 'album' => $album, 'photo_usage' => $flags, 'scale' => 4);
$r = $img->save($p);
if($r === false)
$photo_failure = true;
$img->scaleImage(80);
$p['scale'] = 5;
$r = $img->save($p);
if($r === false)
$photo_failure = true;
$img->scaleImage(48);
$p['scale'] = 6;
$r = $img->save($p);
if($r === false)
$photo_failure = true;
$photo = $a->get_baseurl() . '/photo/' . $hash . '-4';
$thumb = $a->get_baseurl() . '/photo/' . $hash . '-5';
$micro = $a->get_baseurl() . '/photo/' . $hash . '-6';
}
else {
logger('import_xchan_photo: invalid image from ' . $photo);
$photo_failure = true;
}
if(! $photo_failure) {
$img = photo_factory($img_str, $type);
if($img->is_valid()) {
$width = $img->getWidth();
$height = $img->getHeight();
if($width && $height) {
if(($width / $height) > 1.2) {
// crop out the sides
$margin = $width - $height;
$img->cropImage(300,($margin / 2),0,$height,$height);
}
elseif(($height / $width) > 1.2) {
// crop out the bottom
$margin = $height - $width;
$img->cropImage(300,0,0,$width,$width);
}
else {
$img->scaleImageSquare(300);
}
}
else
$photo_failure = true;
$p = array('xchan' => $xchan,'resource_id' => $hash, 'filename' => basename($photo), 'album' => $album, 'photo_usage' => $flags, 'scale' => 4);
$r = $img->save($p);
if($r === false)
$photo_failure = true;
$img->scaleImage(80);
$p['scale'] = 5;
$r = $img->save($p);
if($r === false)
$photo_failure = true;
$img->scaleImage(48);
$p['scale'] = 6;
$r = $img->save($p);
if($r === false)
$photo_failure = true;
$photo = $a->get_baseurl() . '/photo/' . $hash . '-4';
$thumb = $a->get_baseurl() . '/photo/' . $hash . '-5';
$micro = $a->get_baseurl() . '/photo/' . $hash . '-6';
}
else {
logger('import_xchan_photo: invalid image from ' . $photo);
$photo_failure = true;
}
}
if($photo_failure) {
$photo = $a->get_baseurl() . '/' . get_default_profile_photo();
$thumb = $a->get_baseurl() . '/' . get_default_profile_photo(80);

View File

@ -22,6 +22,22 @@ function queue_run($argv, $argc){
logger('queue: start');
$r = q("select outq_posturl from outq where outq_created < %s - INTERVAL %s",
db_utcnow(), db_quoteinterval('3 DAY')
);
if($r) {
foreach($r as $rr) {
$site_url = '';
$h = parse_url($rr['outq_posturl']);
$desturl = $h['scheme'] . '://' . $h['host'] . (($h['port']) ? ':' . $h['port'] : '');
q("update site set site_dead = 1 where site_dead = 0 and site_url = '%s' and site_update < %s - INTERVAL %s",
dbesc($desturl),
db_utcnow(), db_quoteinterval('1 MONTH')
);
}
}
$r = q("DELETE FROM outq WHERE outq_created < %s - INTERVAL %s",
db_utcnow(), db_quoteinterval('3 DAY')
);

View File

@ -245,6 +245,9 @@ function item_permissions_sql($owner_id, $remote_observer = null) {
$observer = (($remote_observer) ? $remote_observer : get_observer_hash());
if($observer) {
$s = scopes_sql($owner_id,$observer);
$groups = init_groups_visitor($observer);
$gs = '<<>>'; // should be impossible to match
@ -255,9 +258,9 @@ 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 item_private = 0 ) )
)
" 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 item_private = 0 ))
) OR ( item_private = 1 $s ))
",
dbesc(protect_sprintf( '%<' . $observer . '>%')),
dbesc($gs),
@ -270,6 +273,39 @@ function item_permissions_sql($owner_id, $remote_observer = null) {
return $sql;
}
/**
* Remote visitors also need to be checked against the public_scope parameter if item_private is set.
* This function checks the various permutations of that field for any which apply to this observer.
*
*/
function scopes_sql($uid,$observer) {
$str = " and ( public_policy = 'authenticated' ";
if(! is_foreigner($observer))
$str .= " or public_policy = 'network: red' ";
if(local_channel())
$str .= " or public_policy = 'site: " . get_app()->get_hostname() . "' ";
$ab = q("select * from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
dbesc($observer),
intval($uid)
);
if(! $ab)
return $str . " ) ";
if($ab[0]['abook_pending'])
$str .= " or public_policy = 'any connections' ";
$str .= " or public_policy = 'contacts' ) ";
return $str;
}
/**
* @param string $observer_hash
*

View File

@ -1686,14 +1686,14 @@ function mimetype_select($channel_id, $current = 'text/bbcode') {
function lang_selector() {
global $a;
$langs = glob('view/*/strings.php');
$langs = glob('view/*/hstrings.php');
$lang_options = array();
$selected = "";
if(is_array($langs) && count($langs)) {
$langs[] = '';
if(! in_array('view/en/strings.php',$langs))
if(! in_array('view/en/hstrings.php',$langs))
$langs[] = 'view/en/';
asort($langs);
foreach($langs as $l) {

View File

@ -637,6 +637,7 @@ function widget_conversations($arr) {
foreach($r as $rr) {
$messages[] = array(
'mailbox' => $mailbox,
'id' => $rr['id'],
'from_name' => $rr['from']['xchan_name'],
'from_url' => chanlink_hash($rr['from_xchan']),
@ -648,7 +649,8 @@ function widget_conversations($arr) {
'delete' => t('Delete conversation'),
'body' => $rr['body'],
'date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], t('D, d M Y - g:i A')),
'seen' => $rr['seen']
'seen' => $rr['seen'],
'selected' => ((argv(2)) ? (argv(2) == $rr['id']) : ($r[0]['id'] == $rr['id']))
);
}

View File

@ -398,11 +398,6 @@ function zot_refresh($them, $channel = null, $force = false) {
}
}
$r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d and abook_self = 0 limit 1",
dbesc($x['hash']),
intval($channel['channel_id'])
);
if(array_key_exists('profile',$j) && array_key_exists('next_birthday',$j['profile'])) {
$next_birthday = datetime_convert('UTC','UTC',$j['profile']['next_birthday']);
}
@ -410,8 +405,15 @@ function zot_refresh($them, $channel = null, $force = false) {
$next_birthday = NULL_DATE;
}
$r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d and abook_self = 0 limit 1",
dbesc($x['hash']),
intval($channel['channel_id'])
);
if($r) {
// connection exists
// if the dob is the same as what we have stored (disregarding the year), keep the one
// we have as we may have updated the year after sending a notification; and resetting
// to the one we just received would cause us to create duplicated events.
@ -453,6 +455,9 @@ function zot_refresh($them, $channel = null, $force = false) {
}
}
else {
// new connection
$role = get_pconfig($channel['channel_id'],'system','permissions_role');
if($role) {
$xx = get_role_perms($role);
@ -1582,14 +1587,11 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
$channel = $r[0];
$DR->addto_recipient($channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>');
// uncomment this once we find out what's stopping the clone sync of the item from working
// if($d['hash'] === $sender['hash']) {
// $DR->update('self delivery ignored');
// $result[] = $DR->get();
// continue;
// }
if($d['hash'] === $sender['hash']) {
$DR->update('self delivery ignored');
$result[] = $DR->get();
continue;
}
// allow public postings to the sys channel regardless of permissions, but not
// for comments travelling upstream. Wait and catch them on the way down.
@ -2738,7 +2740,7 @@ function import_site($arr, $pubkey) {
// logger('import_site: input: ' . print_r($arr,true));
// logger('import_site: stored: ' . print_r($siterecord,true));
$r = q("update site set site_dead = 0, site_location = '%s', site_flags = %d, site_access = %d, site_directory = '%s', site_register = %d, site_update = '%s', site_sellpage = '%s', site_realm = '%s'
$r = q("update site set site_dead = 0, site_location = '%s', site_flags = %d, site_access = %d, site_directory = '%s', site_register = %d, site_update = '%s', site_sellpage = '%s', site_realm = '%s', site_type = %d
where site_url = '%s'",
dbesc($site_location),
intval($site_directory),
@ -2748,6 +2750,7 @@ function import_site($arr, $pubkey) {
dbesc(datetime_convert()),
dbesc($sellpage),
dbesc($site_realm),
intval(SITE_TYPE_ZOT),
dbesc($url)
);
if(! $r) {
@ -2764,7 +2767,7 @@ function import_site($arr, $pubkey) {
}
else {
$update = true;
$r = q("insert into site ( site_location, site_url, site_access, site_flags, site_update, site_directory, site_register, site_sellpage, site_realm )
$r = q("insert into site ( site_location, site_url, site_access, site_flags, site_update, site_directory, site_register, site_sellpage, site_realm, site_type )
values ( '%s', '%s', %d, %d, '%s', '%s', %d, '%s', '%s' )",
dbesc($site_location),
dbesc($url),
@ -2774,7 +2777,8 @@ function import_site($arr, $pubkey) {
dbesc($directory_url),
intval($register_policy),
dbesc($sellpage),
dbesc($site_realm)
dbesc($site_realm),
intval(SITE_TYPE_ZOT)
);
if(! $r) {
logger('import_site: record create failed. ' . print_r($arr,true));
@ -2816,6 +2820,9 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
$channel = $r[0];
if(intval($channel['channel_removed']))
return;
$h = q("select * from hubloc where hubloc_hash = '%s' and hubloc_deleted = 0",
dbesc($channel['channel_hash'])
);
@ -2866,7 +2873,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
// don't pass these elements, they should not be synchronised
$disallowed = array('channel_id','channel_account_id','channel_primary','channel_prvkey','channel_address');
$disallowed = array('channel_id','channel_account_id','channel_primary','channel_prvkey','channel_address','channel_deleted','channel_removed','channel_system');
if(in_array($k,$disallowed))
continue;
@ -2993,10 +3000,12 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
// These flags cannot be sync'd.
// remove the bits from the incoming flags.
if($arr['channel_pageflags'] & 0x8000)
$arr['channel_pageflags'] = $arr['channel_pageflags'] - 0x8000;
if($arr['channel_pageflags'] & 0x1000)
$arr['channel_pageflags'] = $arr['channel_pageflags'] - 0x1000;
// These correspond to PAGE_REMOVED and PAGE_SYSTEM on redmatrix
if($arr['channel']['channel_pageflags'] & 0x8000)
$arr['channel']['channel_pageflags'] = $arr['channel']['channel_pageflags'] - 0x8000;
if($arr['channel']['channel_pageflags'] & 0x1000)
$arr['channel']['channel_pageflags'] = $arr['channel']['channel_pageflags'] - 0x1000;
}

View File

@ -1131,6 +1131,7 @@ CREATE TABLE IF NOT EXISTS `site` (
`site_realm` char(255) NOT NULL DEFAULT '',
`site_valid` smallint NOT NULL DEFAULT '0',
`site_dead` smallint NOT NULL DEFAULT '0',
`site_type` smallint NOT NULL DEFAULT '0',
PRIMARY KEY (`site_url`),
KEY `site_flags` (`site_flags`),
KEY `site_update` (`site_update`),
@ -1141,7 +1142,8 @@ CREATE TABLE IF NOT EXISTS `site` (
KEY `site_pull` (`site_pull`),
KEY `site_realm` (`site_realm`),
KEY `site_valid` (`site_valid`),
KEY `site_dead` (`site_dead`)
KEY `site_dead` (`site_dead`),
KEY `site_type` (`site_type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `source` (

View File

@ -1122,6 +1122,7 @@ CREATE TABLE "site" (
"site_realm" text NOT NULL DEFAULT '',
"site_valid" smallint NOT NULL DEFAULT '0',
"site_dead" smallint NOT NULL DEFAULT '0',
"site_type" smallint NOT NULL DEFAULT '0',
PRIMARY KEY ("site_url")
);
create index "site_flags" on site ("site_flags");
@ -1133,6 +1134,7 @@ create index "site_sellpage" on site ("site_sellpage");
create index "site_realm" on site ("site_realm");
create index "site_valid" on site ("site_valid");
create index "site_dead" on site ("site_dead");
create index "site_type" on site ("site_type");
CREATE TABLE "source" (
"src_id" serial NOT NULL,

View File

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1155 );
define( 'UPDATE_VERSION' , 1156 );
/**
*
@ -1875,3 +1875,13 @@ function update_r1154() {
}
function update_r1155() {
$r1 = q("alter table site add site_type smallint not null default '0' ");
$r2 = q("create index site_type on site ( site_type ) ");
if($r1 && $r2)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}

View File

@ -332,10 +332,10 @@ function admin_page_site(&$a) {
/* Installed langs */
$lang_choices = array();
$langs = glob('view/*/strings.php');
$langs = glob('view/*/hstrings.php');
if(is_array($langs) && count($langs)) {
if(! in_array('view/en/strings.php',$langs))
if(! in_array('view/en/hstrings.php',$langs))
$langs[] = 'view/en/';
asort($langs);
foreach($langs as $l) {

View File

@ -153,7 +153,6 @@ function channel_content(&$a, $update = 0, $load = false) {
else
$page_mode = 'client';
$abook_uids = " and abook.abook_channel = " . intval($a->profile['profile_uid']) . " ";
$simple_update = (($update) ? " AND item_unseen = 1 " : '');
@ -260,9 +259,6 @@ function channel_content(&$a, $update = 0, $load = false) {
}
if((! $update) && (! $load)) {
// This is ugly, but we can't pass the profile_uid through the session to the ajax updater,

View File

@ -398,13 +398,15 @@ function list_public_sites() {
$rand = db_getfunc('rand');
$realm = get_directory_realm();
if($realm == DIRECTORY_REALM) {
$r = q("select * from site where site_access != 0 and site_register !=0 and ( site_realm = '%s' or site_realm = '') order by $rand",
dbesc($realm)
$r = q("select * from site where site_access != 0 and site_register !=0 and ( site_realm = '%s' or site_realm = '') and site_type = %d order by $rand",
dbesc($realm),
intval(SITE_TYPE_ZOT)
);
}
else {
$r = q("select * from site where site_access != 0 and site_register !=0 and site_realm = '%s' order by $rand",
dbesc($realm)
$r = q("select * from site where site_access != 0 and site_register !=0 and site_realm = '%s' and site_type = %d order by $rand",
dbesc($realm),
intval(SITE_TYPE_ZOT)
);
}

View File

@ -128,35 +128,47 @@ function mail_content(&$a) {
'$header' => t('Messages'),
));
if((argc() == 3) && (argv(1) === 'drop')) {
if(! intval(argv(2)))
if((argc() == 4) && (argv(2) === 'drop')) {
if(! intval(argv(3)))
return;
$cmd = argv(1);
$r = private_messages_drop(local_channel(), argv(2));
$cmd = argv(2);
$mailbox = argv(1);
$r = private_messages_drop(local_channel(), argv(3));
if($r) {
info( t('Message deleted.') . EOL );
//info( t('Message deleted.') . EOL );
}
goaway($a->get_baseurl(true) . '/mail/combined' );
goaway($a->get_baseurl(true) . '/mail/' . $mailbox);
}
if((argc() == 3) && (argv(1) === 'recall')) {
if(! intval(argv(2)))
if((argc() == 4) && (argv(2) === 'recall')) {
if(! intval(argv(3)))
return;
$cmd = argv(1);
$cmd = argv(2);
$mailbox = argv(1);
$r = q("update mail set mail_recalled = 1 where id = %d and channel_id = %d",
intval(argv(2)),
intval(argv(3)),
intval(local_channel())
);
proc_run('php','include/notifier.php','mail',intval(argv(2)));
proc_run('php','include/notifier.php','mail',intval(argv(3)));
if($r) {
info( t('Message recalled.') . EOL );
}
goaway($a->get_baseurl(true) . '/mail/combined' );
goaway($a->get_baseurl(true) . '/mail/' . $mailbox . '/' . argv(3));
}
if((argc() == 4) && (argv(2) === 'dropconv')) {
if(! intval(argv(3)))
return;
$cmd = argv(2);
$mailbox = argv(1);
$r = private_messages_drop(local_channel(), argv(3), true);
if($r)
info( t('Conversation removed.') . EOL );
goaway($a->get_baseurl(true) . '/mail/' . $mailbox);
}
if((argc() > 1) && (argv(1) === 'new')) {
$plaintext = true;
@ -266,7 +278,7 @@ function mail_content(&$a) {
$last_message = private_messages_list(local_channel(), $mailbox, 0, 1);
$mid = ((argc() > 1) && (intval(argv(1)))) ? argv(1) : $last_message[0]['id'];
$mid = ((argc() > 2) && (intval(argv(2)))) ? argv(2) : $last_message[0]['id'];
$plaintext = true;
@ -310,13 +322,14 @@ function mail_content(&$a) {
$s = theme_attachments($message);
$mails[] = array(
'mailbox' => $mailbox,
'id' => $message['id'],
'from_name' => $message['from']['xchan_name'],
'from_url' => chanlink_hash($message['from_xchan']),
'from_photo' => $message['from']['xchan_photo_m'],
'from_photo' => $message['from']['xchan_photo_s'],
'to_name' => $message['to']['xchan_name'],
'to_url' => chanlink_hash($message['to_xchan']),
'to_photo' => $message['to']['xchan_photo_m'],
'to_photo' => $message['to']['xchan_photo_s'],
'subject' => $message['title'],
'body' => smilies(bbcode($message['body']) . $s),
'delete' => t('Delete message'),
@ -338,7 +351,8 @@ function mail_content(&$a) {
$parent = '<input type="hidden" name="replyto" value="' . $message['parent_mid'] . '" />';
$tpl = get_markup_template('mail_display.tpl');
$o = replace_macros($tpl, array(
'$prvmsg_header' => t('Subject:') . ' ' . $message['title'],
'$mailbox' => $mailbox,
'$prvmsg_header' => $message['title'],
'$thread_id' => $mid,
'$thread_subject' => $message['title'],
'$thread_seen' => $seen,
@ -353,7 +367,7 @@ function mail_content(&$a) {
'$showinputs' => '',
'$subject' => t('Subject:'),
'$subjtxt' => $message['title'],
'$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
'$readonly' => 'readonly="readonly"',
'$yourmessage' => t('Your message:'),
'$text' => '',
'$select' => $select,

View File

@ -24,7 +24,7 @@ function message_content(&$a) {
if(! $cipher)
$cipher = 'aes256';
/*
if((argc() == 3) && (argv(1) === 'dropconv')) {
if(! intval(argv(2)))
return;
@ -34,7 +34,7 @@ function message_content(&$a) {
info( t('Conversation removed.') . EOL );
goaway($a->get_baseurl(true) . '/mail/combined' );
}
/*
if(argc() == 2) {
switch(argv(1)) {

View File

@ -22,8 +22,9 @@ function rate_init(&$a) {
$a->poi = $r[0];
}
else {
$r = q("select * from site where site_url like '%s' ",
dbesc('%' . $target)
$r = q("select * from site where site_url like '%s' and site_type = %d",
dbesc('%' . $target),
intval(SITE_TYPE_ZOT)
);
if($r) {
$a->data['site'] = $r[0];

View File

@ -35,8 +35,9 @@ function ratingsearch_init(&$a) {
if($p)
$target = $p[0]['xchan_hash'];
else {
$p = q("select * from site where site_url like '%s' ",
dbesc('%' . $hash)
$p = q("select * from site where site_url like '%s' and site_type = %d ",
dbesc('%' . $hash),
intval(SITE_TYPE_ZOT)
);
if($p) {
$target = strtolower($hash);

View File

@ -86,8 +86,9 @@ function regdir_init(&$a) {
if ($dirmode == DIRECTORY_MODE_STANDALONE) {
$r = array(array('site_url' => z_root()));
} else {
$r = q("select site_url from site where site_flags in ( 1, 2 ) and site_realm = '%s' $sql_extra ",
dbesc(get_directory_realm())
$r = q("select site_url from site where site_flags in ( 1, 2 ) and site_realm = '%s' and site_type = %d $sql_extra ",
dbesc(get_directory_realm()),
intval(SITE_TYPE_ZOT)
);
}
if ($r) {

View File

@ -28,7 +28,9 @@ function sitelist_init(&$a) {
$result = array('success' => false);
$r = q("select count(site_url) as total from site where true $sql_extra ");
$r = q("select count(site_url) as total from site where site_type = %d $sql_extra ",
intval(SITE_TYPE_ZOT)
);
if($r)
$result['total'] = intval($r[0]['total']);
@ -36,7 +38,9 @@ function sitelist_init(&$a) {
$result['start'] = $start;
$result['limit'] = $limit;
$r = q("select * from site where true $sql_extra $sql_order $sql_limit");
$r = q("select * from site where site_type = %d $sql_extra $sql_order $sql_limit",
intval(SITE_TYPE_ZOT)
);
$result['results'] = 0;
$result['entries'] = array();

9170
util/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

2120
util/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -8,12 +8,12 @@
}
if ($argc!=2) {
print "Usage: ".$argv[0]." <strings.php>\n\n";
print "Usage: ".$argv[0]." <hstrings.php>\n\n";
return;
}
$phpfile = $argv[1];
$pofile = dirname($phpfile)."/messages.po";
$pofile = dirname($phpfile)."/hmessages.po";
if (!file_exists($phpfile)){
print "Unable to find '$phpfile'\n";

View File

@ -9,7 +9,7 @@ function po2php_run($argv, $argc) {
}
$pofile = $argv[1];
$outfile = dirname($pofile)."/strings.php";
$outfile = dirname($pofile)."/hstrings.php";
if(strstr($outfile,'util'))
$lang = 'en';

View File

@ -16,12 +16,12 @@ if [ $ADDONMODE ]
then
cd "$FULLPATH/../addon/$ADDONNAME"
mkdir -p "$FULLPATH/../addon/$ADDONNAME/lang/C"
OUTFILE="$FULLPATH/../addon/$ADDONNAME/lang/C/messages.po"
OUTFILE="$FULLPATH/../addon/$ADDONNAME/lang/C/hmessages.po"
FINDSTARTDIR="."
FINDOPTS=
else
cd "$FULLPATH/../view/en/"
OUTFILE="$FULLPATH/messages.po"
OUTFILE="$FULLPATH/hmessages.po"
FINDSTARTDIR="../../"
# skip addon folder
FINDOPTS="-wholename */addon -prune -o"

View File

@ -67,11 +67,11 @@
echo "String files\n";
echo 'util/strings.php' . "\n";
include_once('util/strings.php');
echo 'util/hstrings.php' . "\n";
include_once('util/hstrings.php');
echo count($a->strings) . ' strings' . "\n";
$files = glob('view/*/strings.php');
$files = glob('view/*/hstrings.php');
foreach($files as $file) {
echo $file . "\n";

View File

@ -1 +1 @@
2015-09-23.1164
2015-09-28.1169

9074
view/ca/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

2148
view/ca/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

4618
view/cs/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

1044
view/cs/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +1,3 @@
/* message */
#mail-list-wrapper {
border-top: 1px solid #ccc;
padding: 5px 5px 5px 5px;
}
span.mail-list {
float: left;
width: 20%;
}
img.mail-list-sender-photo {
height: 24px;
width: 24px;
float: left;
margin-right: 30px;
}
.mail-list-remove {
width: 5% !important;
}
/* message/new */
#prvmail-to-label,
@ -48,49 +25,26 @@ img.mail-list-sender-photo {
cursor: pointer;
}
#prvmail-end {
clear: both;
}
/* message/id */
.mail-conv-outside-wrapper {
margin-top: 30px;
display: table;
table-layout: fixed;
}
.mail-conv-sender,
.mail-conv-detail {
float: left;
}
.mail-conv-detail {
margin-left: 20px;
width: 500px;
}
.mail-conv-subject {
font-size: 1.4em;
margin: 10px 0;
}
.mail-conv-delete-wrapper {
float: right;
margin-right: 30px;
margin-top: 15px;
margin-bottom: 5px;
}
.mail-conv-recall-wrapper {
float: right;
.mail-conv-sender {
display: table-cell;
vertical-align: top;
margin-right: 10px;
margin-top: 15px;
margin-bottom: 5px;
}
.mail-conv-outside-wrapper-end {
clear: both;
.mail-conv-sender-name {
font-weight: bold;
}
.mail-conv-break {
clear: both;
.mail-conv-detail {
display: table-cell;
vertical-align: top;
width: 100%;
padding-left: 10px;
}

8769
view/de/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

2079
view/de/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

7714
view/eo/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

1771
view/eo/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

9081
view/es/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

2149
view/es/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-11 00:05-0700\n"
"PO-Revision-Date: 2015-09-14 18:21+0000\n"
"POT-Creation-Date: 2015-09-18 00:04-0700\n"
"PO-Revision-Date: 2015-09-22 14:10+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"
@ -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ó en [zrl=%3$s]a %4$s[/zrl]"
msgstr "%1$s, %2$s ha comentado sobre [zrl=%3$s]%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ó en [zrl=%3$s]%4$s de %5$s[/zrl]"
msgstr "%1$s, %2$s ha comentado sobre el [zrl=%3$s]%5$s de %4$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ó en [zrl=%3$s]su %4$s[/zrl]"
msgstr "%1$s, %2$s ha comentado [zrl=%3$s]su %4$s[/zrl]"
#: ../../include/enotify.php:186
#, php-format
@ -1665,7 +1665,7 @@ msgstr "[Red:Aviso] %1$s le ha dado un toque"
#: ../../include/enotify.php:239
#, php-format
msgid "%1$s, %2$s poked you at %3$s"
msgstr "%1$s, %2$s le dio un toque en %3$s"
msgstr "%1$s, %2$s le dio un toque sobre %3$s"
#: ../../include/enotify.php:240
#, php-format
@ -1680,12 +1680,12 @@ msgstr "[Red:Aviso] %s etiquetó su entrada"
#: ../../include/enotify.php:257
#, php-format
msgid "%1$s, %2$s tagged your post at %3$s"
msgstr "%1$s, %2$s etiquetó su publicación en %3$s"
msgstr "%1$s, %2$s ha etiquetado su publicación sobre %3$s"
#: ../../include/enotify.php:258
#, php-format
msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
msgstr "%1$s, %2$s etiquetó [zrl=%3$s]su publicación[/zrl]"
msgstr "%1$s, %2$s ha etiquetado [zrl=%3$s]su publicación[/zrl]"
#: ../../include/enotify.php:270
msgid "[Red:Notify] Introduction received"
@ -3118,15 +3118,15 @@ msgstr "Conexión: %s"
msgid "Connection not found."
msgstr "Conexión no encontrada"
#: ../../include/zot.php:675
#: ../../include/zot.php:677
msgid "Invalid data packet"
msgstr "Paquete de datos no válido"
#: ../../include/zot.php:691
#: ../../include/zot.php:693
msgid "Unable to verify channel signature"
msgstr "No ha sido posible de verificar la signatura del canal"
#: ../../include/zot.php:2142
#: ../../include/zot.php:2161
#, php-format
msgid "Unable to verify site signature for %s"
msgstr "No ha sido posible de verificar la signatura del sitio para %s"
@ -4640,7 +4640,7 @@ msgstr "Por favor, visite <a href=\"https://redmatrix.me\">redmatrix.me </a> par
#: ../../mod/siteinfo.php:165
msgid "Bug reports and issues: please visit"
msgstr "Informes de errores e incidencias: por, favor visite"
msgstr "Informes de errores e incidencias: por favor visite"
#: ../../mod/siteinfo.php:167
msgid "$projectname issues"
@ -5275,7 +5275,7 @@ msgstr "Introduzca la dirección del enlace o seleccione el nombre de un submen
#: ../../mod/mitem.php:159 ../../mod/mitem.php:232
msgid "Use magic-auth if available"
msgstr "Use la autenticación mágica si está disponible"
msgstr "Usar la autenticación mágica si está disponible"
#: ../../mod/mitem.php:160 ../../mod/mitem.php:233
msgid "Open link in new window"
@ -6188,7 +6188,7 @@ msgstr "Puerto de la base de datos"
#: ../../mod/setup.php:312
msgid "Communication port number - use 0 for default"
msgstr "Número del puerto de comunicaciones - use 0 como valor por defecto"
msgstr "Número del puerto de comunicaciones - usar 0 como valor por defecto"
#: ../../mod/setup.php:313
msgid "Database Login Name"
@ -6532,7 +6532,7 @@ msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo
#: ../../mod/tagger.php:96
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s ha etiquetado el %3$s de %2$s con %4$s"
msgstr "%1$s ha etiquetado la %3$s de %2$s con %4$s"
#: ../../mod/uexport.php:45 ../../mod/uexport.php:46
msgid "Export Channel"
@ -6958,7 +6958,7 @@ msgstr "Intervalo de sondeo"
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "Retrasar el sondeo en segundo plano en esta cantidad de segundo para reducir la carga del sistema. Si es 0, use el intervalo de entrega."
msgstr "Retrasar el sondeo en segundo plano en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, se usará el intervalo de entrega."
#: ../../mod/admin.php:491
msgid "Maximum Load Average"
@ -7985,7 +7985,7 @@ msgstr "Reciba una sugerencia de amistad"
#: ../../mod/settings.php:1108
msgid "You are tagged in a post"
msgstr "Usted sea etiquetado en una publicación"
msgstr "Usted ha sido etiquetado en una publicación"
#: ../../mod/settings.php:1109
msgid "You are poked/prodded/etc. in a post"
@ -8305,7 +8305,7 @@ msgstr "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunqu
#: ../../mod/connedit.php:551
msgid "This connection is archived!"
msgstr "¡Esta conexión esta archivada!"
msgstr "¡Esta conexión está archivada!"
#: ../../mod/connedit.php:555
msgid "Unhide"

View File

@ -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ó 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["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s ha comentado sobre [zrl=%3\$s]%4\$s[/zrl]";
$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s ha comentado sobre el [zrl=%3\$s]%5\$s de %4\$s[/zrl]";
$a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha comentado [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";
@ -377,11 +377,11 @@ $a->strings["[Red:Notify] %s tagged you"] = "[Red:Aviso] %s le etiquetó";
$a->strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s le etiquetó en %3\$s";
$a->strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]le etiquetó[/zrl].";
$a->strings["[Red:Notify] %1\$s poked you"] = "[Red:Aviso] %1\$s le ha dado un toque";
$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s le dio un toque en %3\$s";
$a->strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s le dio un toque sobre %3\$s";
$a->strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]le dio un toque[/zrl].";
$a->strings["[Red:Notify] %s tagged your post"] = "[Red:Aviso] %s etiquetó su entrada";
$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s etiquetó su publicación en %3\$s";
$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s etiquetó [zrl=%3\$s]su publicación[/zrl]";
$a->strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha etiquetado su publicación sobre %3\$s";
$a->strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha etiquetado [zrl=%3\$s]su publicación[/zrl]";
$a->strings["[Red:Notify] Introduction received"] = "[Red:Aviso] Solicitud de conexión recibida";
$a->strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, ha recibido una nueva solicitud de conexión de '%2\$s' en %3\$s";
$a->strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, ha recibido [zrl=%2\$s]una nueva solicitud de conexión[/zrl] de %3\$s.";
@ -1093,7 +1093,7 @@ $a->strings["Tag: "] = "Etiqueta:";
$a->strings["Last background fetch: "] = "Última actualización en segundo plano:";
$a->strings["Running at web location"] = "Corriendo en el sitio web";
$a->strings["Please visit <a href=\"https://redmatrix.me\">redmatrix.me</a> to learn more about \$Projectname."] = "Por favor, visite <a href=\"https://redmatrix.me\">redmatrix.me </a> para aprender más sobre \$Projectname.";
$a->strings["Bug reports and issues: please visit"] = "Informes de errores e incidencias: por, favor visite";
$a->strings["Bug reports and issues: please visit"] = "Informes de errores e incidencias: por favor visite";
$a->strings["\$projectname issues"] = "Problemas en \$projectname";
$a->strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Sugerencias, elogios, etc - por favor, un correo electrónico a \"redmatrix\" en librelist - punto com";
$a->strings["Site Administrators"] = "Administradores del sitio";
@ -1244,7 +1244,7 @@ $a->strings["(click to open/close)"] = "(pulse para abrir/cerrar)";
$a->strings["Link Name"] = "Nombre del enlace";
$a->strings["Link or Submenu Target"] = "Destino del enlace o submenú";
$a->strings["Enter URL of the link or select a menu name to create a submenu"] = "Introduzca la dirección del enlace o seleccione el nombre de un submenú";
$a->strings["Use magic-auth if available"] = "Use la autenticación mágica si está disponible";
$a->strings["Use magic-auth if available"] = "Usar la autenticación mágica si está disponible";
$a->strings["Open link in new window"] = "Abrir el enlace en una nueva ventana";
$a->strings["Order in list"] = "Orden en la lista";
$a->strings["Higher numbers will sink to bottom of listing"] = "Los números más altos irán al final de la lista";
@ -1467,7 +1467,7 @@ $a->strings["The database you specify below should already exist. If it does not
$a->strings["Database Server Name"] = "Nombre del servidor de base de datos";
$a->strings["Default is localhost"] = "Por defecto es localhost";
$a->strings["Database Port"] = "Puerto de la base de datos";
$a->strings["Communication port number - use 0 for default"] = "Número del puerto de comunicaciones - use 0 como valor por defecto";
$a->strings["Communication port number - use 0 for default"] = "Número del puerto de comunicaciones - usar 0 como valor por defecto";
$a->strings["Database Login Name"] = "Nombre de acceso a la base de datos";
$a->strings["Database Login Password"] = "Contraseña de acceso a la base de datos";
$a->strings["Database Name"] = "Nombre de la base de datos";
@ -1537,7 +1537,7 @@ $a->strings["<h1>What next</h1>"] = "<h1>Siguiente paso</h1>";
$a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Debe crear [manualmente] una tarea programada para las actualizaciones.";
$a->strings["OpenID protocol error. No ID returned."] = "Error del protocolo OpenID. Ningún ID recibido como respuesta.";
$a->strings["Welcome %s. Remote authentication successful."] = "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente.";
$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha etiquetado el %3\$s de %2\$s con %4\$s";
$a->strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha etiquetado la %3\$s de %2\$s con %4\$s";
$a->strings["Export Channel"] = "Exportar el canal";
$a->strings["Export your basic channel information to a small file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new hub, but\tdoes not contain your content."] = "Exportar la base de datos de su canal a un pequeño fichero. Este podrá servir como una copia de seguridad de sus conexiones, permisos, perfil y datos básicos, que podrá importar a un nuevo canal, pero sin sus contenidos.";
$a->strings["Export Content"] = "Exportar contenidos";
@ -1632,7 +1632,7 @@ $a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] =
$a->strings["Delivery interval"] = "Intervalo de entrega";
$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Retrasar los procesos de entrega en segundo plano por esta cantidad de segundos para reducir la carga del sistema. Recomendado: 4-5 para hosts compartidos, 2-3 para servidores virtuales privados, 0-1 para grandes servidores dedicados.";
$a->strings["Poll interval"] = "Intervalo de sondeo";
$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Retrasar el sondeo en segundo plano en esta cantidad de segundo para reducir la carga del sistema. Si es 0, use el intervalo de entrega.";
$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Retrasar el sondeo en segundo plano en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, se usará el intervalo de entrega.";
$a->strings["Maximum Load Average"] = "Carga media máxima";
$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carga máxima del sistema antes de que los procesos de entrega y sondeo se hayan retardado - por defecto, 50.";
$a->strings["Expiration period in days for imported (matrix/network) content"] = "Periodo de caducidad en días para el contenido importado (red)";
@ -1887,7 +1887,7 @@ $a->strings["Someone writes on your profile wall"] = "Alguien escriba en la pág
$a->strings["Someone writes a followup comment"] = "Alguien escriba un comentario sobre sus publicaciones";
$a->strings["You receive a private message"] = "Reciba un mensaje privado";
$a->strings["You receive a friend suggestion"] = "Reciba una sugerencia de amistad";
$a->strings["You are tagged in a post"] = "Usted sea etiquetado en una publicación";
$a->strings["You are tagged in a post"] = "Usted ha sido etiquetado en una publicación";
$a->strings["You are poked/prodded/etc. in a post"] = "Recibir un toque o incitación en una publicación";
$a->strings["Show visual notifications including:"] = "Mostrar notificaciones visuales que incluyan:";
$a->strings["Unseen matrix activity"] = "Actividad no vista en la red";
@ -1964,7 +1964,7 @@ $a->strings["This connection is ignored!"] = "¡Esta conexión es ignorada!";
$a->strings["Unarchive"] = "Desarchivar";
$a->strings["Archive"] = "Archivar";
$a->strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos";
$a->strings["This connection is archived!"] = "¡Esta conexión esta archivada!";
$a->strings["This connection is archived!"] = "¡Esta conexión está archivada!";
$a->strings["Unhide"] = "Mostrar";
$a->strings["Hide"] = "Ocultar";
$a->strings["Hide or Unhide this connection from your other connections"] = "Ocultar o mostrar esta conexión a sus otras conexiones";

8034
view/fr/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

1898
view/fr/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

8934
view/it/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

2118
view/it/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

8893
view/nb-no/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

2111
view/nb-no/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

8940
view/nl/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

2124
view/nl/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

9250
view/pt-br/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

2326
view/pt-br/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

7842
view/ru/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

1865
view/ru/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

8550
view/sv/hmessages.po Normal file

File diff suppressed because it is too large Load Diff

2019
view/sv/hstrings.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1565,9 +1565,9 @@ th,td {
overflow: hidden;
}
/* message */
/* mail */
img.mail-list-sender-photo {
img.mail-conv-sender-photo {
-moz-border-radius: $radiuspx;
border-radius: $radiuspx;
}

View File

@ -1,18 +1,18 @@
<div class="mail-conv-outside-wrapper">
<div id="mail-{{$mail.id}}" class="mail-conv-outside-wrapper">
<div class="mail-conv-sender" >
<a href="{{$mail.from_url}}" class="mail-conv-sender-url" ><img class="mframe mail-conv-sender-photo{{$mail.sparkle}}" src="{{$mail.from_photo}}" heigth="80" width="80" alt="{{$mail.from_name}}" /></a>
<div class="mail-conv-sender-name" >{{$mail.from_name}}</div>
<a href="{{$mail.from_url}}"><img class="mail-conv-sender-photo" src="{{$mail.from_photo}}" alt="{{$mail.from_name}}" /></a>
</div>
<div class="mail-conv-detail" >
<div class="mail-conv-detail">
{{if $mail.is_recalled}}<strong>{{$mail.is_recalled}}</strong>{{/if}}
<div class="mail-conv-date">{{$mail.date}}</div>
<div class="mail-conv-subject">{{$mail.subject}}</div>
<div class="mail-conv-sender-name" ><a href="{{$mail.from_url}}">{{$mail.from_name}}</a></div>
<div class="mail-conv-date autotime wall-item-ago" title="{{$mail.date}}">{{$mail.date}}</div>
<div class="mail-conv-body">{{$mail.body}}</div>
<div class="mail-conv-delete-wrapper" id="mail-conv-delete-wrapper-{{$mail.id}}" ><a href="mail/drop/{{$mail.id}}" onclick="return confirmDelete();" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}" class="mail-conv-delete-icon btn btn-default" ><i class="icon-trash mail-icons drop-icons"></i></a></div><div class="mail-conv-delete-end"></div>
{{if $mail.can_recall}}
<div class="mail-conv-recall-wrapper" id="mail-conv-recall-wrapper-{{$mail.id}}" ><a href="mail/recall/{{$mail.id}}" title="{{$mail.recall}}" id="mail-conv-recall-icon-{{$mail.id}}" class="mail-conv-recall-icon btn btn-default" ><i class="icon-undo mail-icons drop-icons"></i></a></div><div class="mail-conv-recall-end"></div>
{{/if}}
<div class="mail-conv-outside-wrapper-end"></div>
<div class="btn-group pull-right" id="mail-conv-delete-wrapper-{{$mail.id}}" >
{{if $mail.can_recall}}
<a href="mail/{{$mail.mailbox}}/recall/{{$mail.id}}" title="{{$mail.recall}}" id="mail-conv-recall-icon-{{$mail.id}}" class="btn btn-default" ><i class="icon-undo mail-icons"></i></a>
{{/if}}
<a href="#" onclick="dropItem('mail/{{$mail.mailbox}}/drop/{{$mail.id}}', '#mail-{{$mail.id}}'); return false;" title="{{$mail.delete}}" id="mail-conv-delete-icon-{{$mail.id}}" class="btn btn-default" ><i class="icon-trash mail-icons"></i></a>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<hr class="mail-conv-break" />

View File

@ -1,8 +1,8 @@
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<a class="btn btn-xs btn-danger pull-right" href="message/dropconv/{{$thread_id}}" onclick="return confirmDelete();"><i class="icon-trash"></i> {{$delete}}</a>
<a class="btn btn-xs btn-danger pull-right" href="mail/{{$mailbox}}/dropconv/{{$thread_id}}" onclick="return confirmDelete();"><i class="icon-trash"></i> {{$delete}}</a>
<h2>{{$prvmsg_header}}</h2>
<div class="clear"></div>
</div>
<div class="section-content-wrapper">
{{foreach $mails as $mail}}

View File

@ -1,5 +1,5 @@
<li>
<a href="mail/{{$message.id}}" class="mail-link">
<a href="mail/{{$message.mailbox}}/{{$message.id}}" class="{{if $message.selected}}active{{/if}}">
<span class="{{if $message.seen}}seen{{else}}unseen{{/if}}">{{$message.subject}}</span><br>
<span class="conv-participants">{{$message.from_name}} > {{$message.to_name}}</span><br>
<span class="wall-item-ago autotime" title="{{$message.date}}">{{$message.date}}</span>

View File

@ -2,18 +2,9 @@
<h3>{{$title}}</h3>
<ul class="nav nav-pills nav-stacked">
<li><a href="{{$check.url}}"{{if $check.sel}} class="active"{{/if}}>{{$check.label}}</a></li>
{{*
<li><a href="{{$combined.url}}"{{if $combined.sel}} class="active"{{/if}}>{{$combined.label}}</a></li>
<li><a href="{{$inbox.url}}"{{if $inbox.sel}} class="active"{{/if}}>{{$inbox.label}}</a></li>
<li><a href="{{$outbox.url}}"{{if $outbox.sel}} class="active"{{/if}}>{{$outbox.label}}</a></li>
*}}
<li><a href="{{$new.url}}"{{if $new.sel}} class="active"{{/if}}>{{$new.label}}</a></li>
</ul>
{{if $tabs}}
<ul class="nav nav-pills nav-stacked">
{{foreach $tabs as $t}}
<li><a href="{{$t.url}}"{{if $t.sel}} class="active"{{/if}}>{{$t.label}}</a></li>
{{/foreach}}
</ul>
{{/if}}
</div>

View File

@ -8,7 +8,7 @@
<div id="prvmail-to-label">{{$to}}</div>
{{if $showinputs}}
<input type="text" id="recip" name="messagerecip" value="{{$prefill}}" maxlength="255" size="64" tabindex="10" />
<input class="form-control" type="text" id="recip" name="messagerecip" value="{{$prefill}}" maxlength="255" tabindex="10" />
<input type="hidden" id="recip-complete" name="messageto" value="{{$preid}}">
{{else}}
{{$select}}
@ -18,10 +18,10 @@
<input type="hidden" name="media_str" id="jot-media" value="" />
<div id="prvmail-subject-label">{{$subject}}</div>
<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="{{$subjtxt}}" {{$readonly}} tabindex="11" />
<input class="form-control" type="text" maxlength="255" id="prvmail-subject" name="subject" value="{{$subjtxt}}" {{$readonly}} tabindex="11" />
<div id="prvmail-message-label">{{$yourmessage}}</div>
<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">{{$text}}</textarea>
<textarea class="prvmail-text form-control" id="prvmail-text" name="body" tabindex="12">{{$text}}</textarea>
<div id="prvmail-submit-wrapper" >
@ -51,6 +51,6 @@
<div id="prvmail-rotator"></div>
</div>
</div>
<div id="prvmail-end"></div>
<div id="prvmail-end" class="clear"></div>
</form>
</div>