Merge remote-tracking branch 'upstream/master'
8
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', 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
|
||||
*/
|
||||
|
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 3.6 KiB |
BIN
images/default_profile_photos/hubzilla_avatar/300.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
images/default_profile_photos/hubzilla_avatar/48.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
images/default_profile_photos/hubzilla_avatar/80.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
images/hubzilla_logo_1.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
images/hubzilla_logo_2.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
images/hubzilla_logo_3.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
images/hubzilla_logo_4.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
images/hubzilla_logo_5.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
images/hubzilla_logo_6.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
images/hz-16.png
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 559 B |
BIN
images/hz-32.png
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 992 B |
BIN
images/hz-64.png
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.9 KiB |
@ -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)
|
||||
|
@ -29,6 +29,8 @@ function deliver_run($argv, $argc) {
|
||||
* If not, reduce the outq_priority.
|
||||
*/
|
||||
|
||||
$base = '';
|
||||
|
||||
$h = parse_url($r[0]['outq_posturl']);
|
||||
if($h) {
|
||||
$base = $h['scheme'] . '://' . $h['host'] . (($h['port']) ? ':' . $h['port'] : '');
|
||||
@ -53,17 +55,36 @@ 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 dreport set status = '%s', dreport_time = '%s' where dreport_queue = '%s' limit 1",
|
||||
if($base) {
|
||||
q("update site set site_update = '%s', site_dead = 0 where site_url = '%s' ",
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($base)
|
||||
);
|
||||
}
|
||||
q("update dreport set dreport_result = '%s', dreport_time = '%s' where dreport_queue = '%s' limit 1",
|
||||
dbesc('accepted for delivery'),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($argv[$x])
|
||||
|
@ -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)
|
||||
|
@ -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'];
|
||||
|
@ -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",
|
||||
|
@ -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')) {
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
@ -605,11 +605,16 @@ function notifier_run($argv, $argc){
|
||||
'request' => $request,
|
||||
'normal_mode' => $normal_mode,
|
||||
'packet_type' => $packet_type,
|
||||
'walltowall' => $walltowall
|
||||
'walltowall' => $walltowall,
|
||||
'queued' => array()
|
||||
);
|
||||
|
||||
|
||||
call_hooks('notifier_hub',$narr);
|
||||
if($narr['queued']) {
|
||||
foreach($narr['queued'] as $pq)
|
||||
$deliveries[] = $pq;
|
||||
}
|
||||
continue;
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -22,6 +22,25 @@ function queue_run($argv, $argc){
|
||||
|
||||
logger('queue: start');
|
||||
|
||||
|
||||
// delete all queue items more than 3 days old
|
||||
// but first mark these sites dead if we haven't heard from them in a month
|
||||
|
||||
$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')
|
||||
);
|
||||
@ -69,15 +88,34 @@ function queue_run($argv, $argc){
|
||||
return;
|
||||
|
||||
foreach($r as $rr) {
|
||||
|
||||
$dresult = null;
|
||||
|
||||
if(in_array($rr['outq_posturl'],$deadguys))
|
||||
continue;
|
||||
|
||||
$base = '';
|
||||
$h = parse_url($rr['outq_posturl']);
|
||||
if($h)
|
||||
$base = $h['scheme'] . '://' . $h['host'] . (($h['port']) ? ':' . $h['port'] : '');
|
||||
|
||||
if($rr['outq_driver'] === 'post') {
|
||||
$result = z_post_url($rr['outq_posturl'],$rr['outq_msg']);
|
||||
if($result['success'] && $result['return_code'] < 300) {
|
||||
logger('queue: queue post success to ' . $rr['outq_posturl'], LOGGER_DEBUG);
|
||||
if($base) {
|
||||
q("update site set site_update = '%s', site_dead = 0 where site_url = '%s' ",
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($base)
|
||||
);
|
||||
}
|
||||
q("update dreport set dreport_result = '%s', dreport_time = '%s' where dreport_queue = '%s' limit 1",
|
||||
dbesc('accepted for delivery'),
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($rr['outq_hash'])
|
||||
);
|
||||
$y = q("delete from outq where outq_hash = '%s'",
|
||||
dbesc($rr['ouq_hash'])
|
||||
dbesc($rr['outq_hash'])
|
||||
);
|
||||
}
|
||||
else {
|
||||
@ -86,6 +124,7 @@ function queue_run($argv, $argc){
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($rr['outq_hash'])
|
||||
);
|
||||
$deadguys[] = $rr['outq_posturl'];
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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) {
|
||||
|
@ -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']))
|
||||
);
|
||||
}
|
||||
|
||||
|
122
include/zot.php
@ -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.
|
||||
@ -2390,6 +2392,9 @@ function sync_locations($sender, $arr, $absolute = false) {
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
logger('No locations to sync!');
|
||||
}
|
||||
|
||||
$ret['change_message'] = $what;
|
||||
$ret['changed'] = $changed;
|
||||
@ -2738,7 +2743,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 +2753,7 @@ function import_site($arr, $pubkey) {
|
||||
dbesc(datetime_convert()),
|
||||
dbesc($sellpage),
|
||||
dbesc($site_realm),
|
||||
intval(SITE_TYPE_ZOT),
|
||||
dbesc($url)
|
||||
);
|
||||
if(! $r) {
|
||||
@ -2764,8 +2770,8 @@ 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 )
|
||||
values ( '%s', '%s', %d, %d, '%s', '%s', %d, '%s', '%s' )",
|
||||
$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', %d )",
|
||||
dbesc($site_location),
|
||||
dbesc($url),
|
||||
intval($access_policy),
|
||||
@ -2774,7 +2780,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 +2823,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 +2876,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 +3003,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;
|
||||
|
||||
}
|
||||
|
||||
@ -3774,7 +3786,73 @@ function zotinfo($arr) {
|
||||
$ret['site']['realm'] = get_directory_realm();
|
||||
|
||||
}
|
||||
|
||||
check_zotinfo($e,$x,$ret);
|
||||
|
||||
|
||||
call_hooks('zot_finger',$ret);
|
||||
return($ret);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function check_zotinfo($channel,$locations,&$ret) {
|
||||
|
||||
|
||||
// logger('locations: ' . print_r($locations,true),LOGGER_DATA);
|
||||
|
||||
// This function will likely expand as we find more things to detect and fix.
|
||||
// 1. Because magic-auth is reliant on it, ensure that the system channel has a valid hubloc
|
||||
// Force this to be the case if anything is found to be wrong with it.
|
||||
|
||||
// @FIXME ensure that the system channel exists in the first place and has an xchan
|
||||
|
||||
if($channel['channel_system']) {
|
||||
// the sys channel must have a location (hubloc)
|
||||
$valid_location = false;
|
||||
if((count($locations) === 1) && ($locations[0]['primary']) && (! $locations[0]['deleted'])) {
|
||||
if((rsa_verify($locations[0]['url'],base64url_decode($locations[0]['url_sig']),$channel['channel_pubkey']))
|
||||
&& ($locations[0]['sitekey'] === get_config('system','pubkey'))
|
||||
&& ($locations[0]['url'] === z_root()))
|
||||
$valid_location = true;
|
||||
else
|
||||
logger('sys channel: invalid url signature');
|
||||
}
|
||||
|
||||
if((! $locations) || (! $valid_location)) {
|
||||
|
||||
logger('System channel locations are not valid. Attempting repair.');
|
||||
|
||||
// Don't trust any existing records. Just get rid of them, but only do this
|
||||
// for the sys channel as normal channels will be trickier.
|
||||
|
||||
q("delete from hubloc where hubloc_hash = '%s'",
|
||||
dbesc($channel['channel_hash'])
|
||||
);
|
||||
$r = q("insert into hubloc ( hubloc_guid, hubloc_guid_sig, hubloc_hash, hubloc_addr, hubloc_primary,
|
||||
hubloc_url, hubloc_url_sig, hubloc_host, hubloc_callback, hubloc_sitekey, hubloc_network )
|
||||
values ( '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s' )",
|
||||
dbesc($channel['channel_guid']),
|
||||
dbesc($channel['channel_guid_sig']),
|
||||
dbesc($channel['channel_hash']),
|
||||
dbesc($channel['channel_address'] . '@' . get_app()->get_hostname()),
|
||||
intval(1),
|
||||
dbesc(z_root()),
|
||||
dbesc(base64url_encode(rsa_sign(z_root(),$channel['channel_prvkey']))),
|
||||
dbesc(get_app()->get_hostname()),
|
||||
dbesc(z_root() . '/post'),
|
||||
dbesc(get_config('system','pubkey')),
|
||||
dbesc('zot')
|
||||
);
|
||||
if($r) {
|
||||
$x = zot_encode_locations($channel);
|
||||
if($x) {
|
||||
$ret['locations'] = $x;
|
||||
}
|
||||
}
|
||||
else {
|
||||
logger('Unable to store sys hub location');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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` (
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -1 +1,12 @@
|
||||
This directory contains *browser valid* certs for use with hubzilla when using curl (server to server communication). The cacert.pem file in this directory is downloaded (when necessary) from the curl repository and tracks the Mozilla built-in certs. Additionally we've discovered we occasionally require intermediate certs from some cert providers which Mozilla and other browsers obtain automatically but curl does not. You may add these here if required. All these files are concatenated to create the library/cacert.pem file which we will use.
|
||||
This directory contains *browser valid* certs for use with hubzilla when using curl (server to server communication). The cacert.pem file in this directory is downloaded (when necessary) from the curl repository and tracks the Mozilla built-in certs. Additionally we've discovered we occasionally require intermediate certs from some cert providers which Mozilla and other browsers obtain automatically but curl does not. You may add these here if required. All these files are concatenated to create the library/cacert.pem file which we will use.
|
||||
|
||||
Obtain the converted mozilla certs here:
|
||||
http://curl.haxx.se/docs/caextract.html
|
||||
|
||||
Store as cacert.pem in this directory and then
|
||||
|
||||
cat *.pem > ../cacert.pem
|
||||
|
||||
to generate the master file in /library/cacert.pem
|
||||
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
);
|
||||
}
|
||||
|
||||
|
50
mod/mail.php
@ -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,
|
||||
|
@ -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)) {
|
||||
|
@ -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];
|
||||
|
@ -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);
|
||||
|
@ -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) {
|
||||
|
@ -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
2120
util/hstrings.php
Normal file
5216
util/messages.po
@ -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";
|
||||
|
@ -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';
|
||||
|
@ -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"
|
||||
|
@ -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";
|
||||
|
@ -1 +1 @@
|
||||
2015-09-23.1164
|
||||
2015-09-28.1169
|
||||
|
9074
view/ca/hmessages.po
Normal file
2148
view/ca/hstrings.php
Normal file
4618
view/cs/hmessages.po
Normal file
1044
view/cs/hstrings.php
Normal 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
2079
view/de/hstrings.php
Normal file
7714
view/eo/hmessages.po
Normal file
1771
view/eo/hstrings.php
Normal file
9081
view/es/hmessages.po
Normal file
2149
view/es/hstrings.php
Normal 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"
|
||||
|
@ -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
1898
view/fr/hstrings.php
Normal file
8934
view/it/hmessages.po
Normal file
2118
view/it/hstrings.php
Normal file
8893
view/nb-no/hmessages.po
Normal file
2111
view/nb-no/hstrings.php
Normal file
9179
view/nl/hmessages.po
Normal file
2169
view/nl/hstrings.php
Normal file
9250
view/pt-br/hmessages.po
Normal file
2326
view/pt-br/hstrings.php
Normal file
7842
view/ru/hmessages.po
Normal file
1865
view/ru/hstrings.php
Normal file
8550
view/sv/hmessages.po
Normal file
2019
view/sv/hstrings.php
Normal 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;
|
||||
}
|
||||
|
@ -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" />
|
||||
|
@ -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}}
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|