Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Haakon Meland Eriksen 2015-08-23 15:54:46 +02:00
commit 092e7378cd
33 changed files with 532 additions and 238 deletions

View file

@ -49,7 +49,7 @@ define ( 'PLATFORM_NAME', 'hubzilla' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'H');
define ( 'ZOT_REVISION', 1 );
define ( 'DB_UPDATE_VERSION', 1147 );
define ( 'DB_UPDATE_VERSION', 1148 );
/**
* @brief Constant with a HTML line break.
@ -1990,6 +1990,11 @@ function load_pdl(&$a) {
require_once('include/comanche.php');
if (! count($a->layout)) {
$arr = array('module' => $a->module, 'layout' => '');
call_hooks('load_pdl',$arr);
$s = $arr['layout'];
$n = 'mod_' . $a->module . '.pdl' ;
$u = comanche_get_channel_id();
if($u)
@ -2002,6 +2007,7 @@ function load_pdl(&$a) {
$a->pdl = $s;
}
}
}

View file

@ -99,6 +99,11 @@ Some/many of these widgets have restrictions which may restrict the type of page
* channel_id - if not your own
<br />&nbsp;<br />
* tasklist - provide a task or to-do list for the currently logged-in channel.
* args:
* all - display completed tasks if all is non-zero.
<br />&nbsp;<br />
Creating New Widgets
====================

View file

@ -56,7 +56,7 @@ Store photos in albums. All your photos may be protected by Access Control Lists
[b]Events Calendar[/b]
Create and manage events, which may also be protected with Access Control Lists. Events can be exported to other software using the industry standard vcalendar/iCal format and shared in posts with others. Birthday events are automatically added from your friends and converted to your correct timezone so that you will know precisely when the birthday occurs - no matter where you are located in the world in relation to the birthday person. Events are normally created with attendance counters so your friends and connections can RSVP instantly.
Create and manage events and tasks, which may also be protected with Access Control Lists. Events can be imported/exported to other software using the industry standard vcalendar/iCal format and shared in posts with others. Birthday events are automatically added from your friends and converted to your correct timezone so that you will know precisely when the birthday occurs - no matter where you are located in the world in relation to the birthday person. Events are normally created with attendance counters so your friends and connections can RSVP instantly.
[b]Chatrooms[/b]

View file

@ -7,6 +7,7 @@ We need much more than this, but here are areas where developers can help. Pleas
[li](done) forum widget with unread counts (requires the DB schema changes from v3/hubzilla to be viable)[/li]
[li]Create bug tracker module[/li]
[li]translation plugins - moses or apertium[/li]
[li]plugins - provide 'disable' which is softer than 'uninstall' for those plugins which create additional DB tables[/li]
[li]Infinite scroll improvements (i.e. embedded page links) see http://scrollsample.appspot.com/items [/li]
[li]Finish the anti-spam bayesian engine[/li]
[li]implement an email permission denied bounce message from the sys channel[/li]

View file

@ -631,6 +631,27 @@ require_once('include/items.php');
}
api_register_func('api/red/photos','api_photos', true);
function api_photo_detail(&$a,$type) {
if (api_user()===false) return false;
if(! $_REQUEST['photo_id']) return false;
$scale = ((array_key_exists('scale',$_REQUEST)) ? intval($_REQUEST['scale']) : 0);
$r = q("select * from photo where uid = %d and resource_id = '%s' and scale = %d limit 1",
intval(local_channel()),
dbesc($_REQUEST['photo_id']),
intval($scale)
);
if($r) {
$data = dbunescbin($r[0]['data']);
if(array_key_exists('os_storage',$r[0]) && intval($r[0]['os_storage']))
$data = file_get_contents($data);
$r[0]['data'] = base64_encode($data);
json_return_and_die($r[0]);
}
killme();
}
api_register_func('api/red/photo', 'api_photo_detail', true);
function api_group_members(&$a,$type) {
if(api_user() === false)
@ -686,7 +707,7 @@ require_once('include/items.php');
api_register_func('api/red/xchan','api_red_xchan',true);
function api_statuses_mediap(&$a, $type) {
function api_statuses_mediap(&$a, $type) {
if (api_user() === false) {
logger('api_statuses_update: no user');
return false;
@ -711,7 +732,7 @@ require_once('include/items.php');
}
$txt = html2bbcode($txt);
$a->argv[1] = $user_info['screen_name'];
$a->argv[1] = $user_info['screen_name'];
$_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo
$_FILES['userfile'] = $_FILES['media'];
@ -1178,7 +1199,7 @@ require_once('include/items.php');
and uid = " . $sys['channel_id'] . "
$sql_extra
AND id > %d group by mid
order by received desc LIMIT %d OFFSET %d ",
order by received desc LIMIT %d OFFSET %d ",
intval($since_id),
intval($count),
intval($start)
@ -1392,17 +1413,17 @@ require_once('include/items.php');
$diasp_url = str_replace('/channel/','/u/',$myurl);
if (get_config('system','use_fulltext_engine'))
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($diasp_url))
);
else
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ",
dbesc(protect_sprintf('%' . $myurl)),
dbesc(protect_sprintf('%' . $myurl . ']%')),
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
);
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where (MATCH(`author-link`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(`tag`) AGAINST ('".'"%s"'."' in boolean mode) or MATCH(tag) AGAINST ('".'"%s"'."' in boolean mode))) ",
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($myurl)),
dbesc(protect_sprintf($diasp_url))
);
else
$sql_extra .= sprintf(" AND `item`.`parent` IN (SELECT distinct(`parent`) from item where ( `author-link` like '%s' or `tag` like '%s' or tag like '%s' )) ",
dbesc(protect_sprintf('%' . $myurl)),
dbesc(protect_sprintf('%' . $myurl . ']%')),
dbesc(protect_sprintf('%' . $diasp_url . ']%'))
);
if ($max_id > 0)
$sql_extra .= ' AND `item`.`id` <= '.intval($max_id);
@ -1496,10 +1517,10 @@ require_once('include/items.php');
// );
$arr = array(
'uid' => api_user(),
'since_id' => $since_id,
'start' => $start,
'records' => $count);
'uid' => api_user(),
'since_id' => $since_id,
'start' => $start,
'records' => $count);
if ($user_info['self']==1)
$arr['wall'] = 1;
@ -1526,32 +1547,32 @@ require_once('include/items.php');
/**
* Star/unstar an item
* param: id : id of the item
*
* api v1 : https://web.archive.org/web/20131019055350/https://dev.twitter.com/docs/api/1/post/favorites/create/%3Aid
*/
function api_favorites_create_destroy(&$a, $type){
/**
* Star/unstar an item
* param: id : id of the item
*
* api v1 : https://web.archive.org/web/20131019055350/https://dev.twitter.com/docs/api/1/post/favorites/create/%3Aid
*/
function api_favorites_create_destroy(&$a, $type){
logger('favorites_create_destroy');
if (api_user()===false)
if (api_user()===false)
return false;
$action = str_replace(".".$type,"",argv(2));
if (argc() > 3) {
$itemid = intval(argv(3));
} else {
$itemid = intval($_REQUEST['id']);
}
$action = str_replace(".".$type,"",argv(2));
if (argc() > 3) {
$itemid = intval(argv(3));
} else {
$itemid = intval($_REQUEST['id']);
}
$item = q("SELECT * FROM item WHERE id = %d AND uid = %d",
intval($itemid),
intval(api_user())
);
if (! $item)
if (! $item)
return false;
switch($action){
@ -1581,22 +1602,22 @@ require_once('include/items.php');
xchan_query($item,true);
$user_info = api_get_user($a);
$rets = api_format_items($item,$user_info);
$ret = $rets[0];
$user_info = api_get_user($a);
$rets = api_format_items($item,$user_info);
$ret = $rets[0];
$data = array('$status' => $ret);
switch($type){
case "atom":
case "rss":
$data = api_rss_extra($a, $data, $user_info);
}
$data = array('$status' => $ret);
switch($type){
case "atom":
case "rss":
$data = api_rss_extra($a, $data, $user_info);
}
return api_apply_template("status", $type, $data);
}
return api_apply_template("status", $type, $data);
}
api_register_func('api/favorites/create', 'api_favorites_create_destroy', true);
api_register_func('api/favorites/destroy', 'api_favorites_create_destroy', true);
api_register_func('api/favorites/create', 'api_favorites_create_destroy', true);
api_register_func('api/favorites/destroy', 'api_favorites_create_destroy', true);
@ -1607,7 +1628,7 @@ require_once('include/items.php');
$user_info = api_get_user($a);
// params
$count = (x($_REQUEST,'count')?$_REQUEST['count']:20);
$count = (x($_REQUEST,'count')?$_REQUEST['count']:20);
$page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0);
if($page < 0)
$page = 0;

View file

@ -63,9 +63,9 @@ function ical_wrapper($ev) {
return '';
$o .= "BEGIN:VCALENDAR";
$o .= "\nVERSION:2.0";
$o .= "\nMETHOD:PUBLISH";
$o .= "\nPRODID:-//" . get_config('system','sitename') . "//" . PLATFORM_NAME . "//" . strtoupper(get_app()->language). "\n";
$o .= "\r\nVERSION:2.0";
$o .= "\r\nMETHOD:PUBLISH";
$o .= "\r\nPRODID:-//" . get_config('system','sitename') . "//" . PLATFORM_NAME . "//" . strtoupper(get_app()->language). "\r\n";
if(array_key_exists('start', $ev))
$o .= format_event_ical($ev);
else {
@ -73,7 +73,7 @@ function ical_wrapper($ev) {
$o .= format_event_ical($e);
}
}
$o .= "\nEND:VCALENDAR\n";
$o .= "\r\nEND:VCALENDAR\r\n";
return $o;
}
@ -85,23 +85,25 @@ function format_event_ical($ev) {
$o = '';
$o .= "\nBEGIN:VEVENT";
$o .= "\r\nBEGIN:VEVENT";
$o .= "\nCREATED:" . datetime_convert('UTC','UTC', $ev['created'],'Ymd\\THis\\Z');
$o .= "\nLAST-MODIFIED:" . datetime_convert('UTC','UTC', $ev['edited'],'Ymd\\THis\\Z');
$o .= "\nDTSTAMP:" . datetime_convert('UTC','UTC', $ev['edited'],'Ymd\\THis\\Z');
$o .= "\r\nCREATED:" . datetime_convert('UTC','UTC', $ev['created'],'Ymd\\THis\\Z');
$o .= "\r\nLAST-MODIFIED:" . datetime_convert('UTC','UTC', $ev['edited'],'Ymd\\THis\\Z');
$o .= "\r\nDTSTAMP:" . datetime_convert('UTC','UTC', $ev['edited'],'Ymd\\THis\\Z');
if($ev['start'])
$o .= "\nDTSTART:" . datetime_convert('UTC','UTC', $ev['start'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
$o .= "\r\nDTSTART:" . datetime_convert('UTC','UTC', $ev['start'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
if($ev['finish'] && ! $ev['nofinish'])
$o .= "\nDTEND:" . datetime_convert('UTC','UTC', $ev['finish'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
$o .= "\r\nDTEND:" . datetime_convert('UTC','UTC', $ev['finish'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
if($ev['summary'])
$o .= "\nSUMMARY:" . format_ical_text($ev['summary']);
$o .= "\r\nSUMMARY:" . format_ical_text($ev['summary']);
if($ev['location'])
$o .= "\nLOCATION:" . format_ical_text($ev['location']);
$o .= "\r\nLOCATION:" . format_ical_text($ev['location']);
if($ev['description'])
$o .= "\nDESCRIPTION:" . format_ical_text($ev['description']);
$o .= "\nUID:" . $ev['event_hash'] ;
$o .= "\nEND:VEVENT\n";
$o .= "\r\nDESCRIPTION:" . format_ical_text($ev['description']);
if($ev['event_priority'])
$o .= "\r\nPRIORITY:" . intval($ev['event_priority']);
$o .= "\r\nUID:" . $ev['event_hash'] ;
$o .= "\r\nEND:VEVENT\r\n";
return $o;
}
@ -111,31 +113,33 @@ function format_todo_ical($ev) {
$o = '';
$o .= "\nBEGIN:VTODO";
$o .= "\nCREATED:" . datetime_convert('UTC','UTC', $ev['created'],'Ymd\\THis\\Z');
$o .= "\nLAST-MODIFIED:" . datetime_convert('UTC','UTC', $ev['edited'],'Ymd\\THis\\Z');
$o .= "\nDTSTAMP:" . datetime_convert('UTC','UTC', $ev['edited'],'Ymd\\THis\\Z');
$o .= "\r\nBEGIN:VTODO";
$o .= "\r\nCREATED:" . datetime_convert('UTC','UTC', $ev['created'],'Ymd\\THis\\Z');
$o .= "\r\nLAST-MODIFIED:" . datetime_convert('UTC','UTC', $ev['edited'],'Ymd\\THis\\Z');
$o .= "\r\nDTSTAMP:" . datetime_convert('UTC','UTC', $ev['edited'],'Ymd\\THis\\Z');
if($ev['start'])
$o .= "\nDTSTART:" . datetime_convert('UTC','UTC', $ev['start'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
$o .= "\r\nDTSTART:" . datetime_convert('UTC','UTC', $ev['start'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
if($ev['finish'] && ! $ev['nofinish'])
$o .= "\nDUE:" . datetime_convert('UTC','UTC', $ev['finish'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
$o .= "\r\nDUE:" . datetime_convert('UTC','UTC', $ev['finish'],'Ymd\\THis' . (($ev['adjust']) ? '\\Z' : ''));
if($ev['summary'])
$o .= "\nSUMMARY:" . format_ical_text($ev['summary']);
$o .= "\r\nSUMMARY:" . format_ical_text($ev['summary']);
if($ev['event_status']) {
$o .= "\nSTATUS:" . $ev['event_status'];
$o .= "\r\nSTATUS:" . $ev['event_status'];
if($ev['event_status'] === 'COMPLETED')
$o .= "\nCOMPLETED:" . datetime_convert('UTC','UTC', $ev['event_status_date'],'Ymd\\THis\\Z');
$o .= "\r\nCOMPLETED:" . datetime_convert('UTC','UTC', $ev['event_status_date'],'Ymd\\THis\\Z');
}
if(intval($ev['event_percent']))
$o .= "\nPERCENT-COMPLETE:" . $ev['event_percent'];
$o .= "\r\nPERCENT-COMPLETE:" . $ev['event_percent'];
if(intval($ev['event_sequence']))
$o .= "\nSEQUENCE:" . $ev['event_sequence'];
$o .= "\r\nSEQUENCE:" . $ev['event_sequence'];
if($ev['location'])
$o .= "\nLOCATION:" . format_ical_text($ev['location']);
$o .= "\r\nLOCATION:" . format_ical_text($ev['location']);
if($ev['description'])
$o .= "\nDESCRIPTION:" . format_ical_text($ev['description']);
$o .= "\nUID:" . $ev['event_hash'] ;
$o .= "\nEND:VTODO\n";
$o .= "\r\nDESCRIPTION:" . format_ical_text($ev['description']);
$o .= "\r\nUID:" . $ev['event_hash'] ;
if($ev['event_priority'])
$o .= "\r\nPRIORITY:" . intval($ev['event_priority']);
$o .= "\r\nEND:VTODO\r\n";
return $o;
}
@ -146,7 +150,7 @@ function format_ical_text($s) {
require_once('include/bbcode.php');
require_once('include/html2plain.php');
return(wordwrap(str_replace(',','\\,',html2plain(bbcode($s))),72,"\n ",true));
return(wordwrap(str_replace(array(',',';','\\'),array('\\,','\\;','\\\\'),html2plain(bbcode($s))),72,"\r\n ",true));
}
@ -260,10 +264,11 @@ function ev_compare($a, $b) {
function event_store_event($arr) {
$arr['created'] = (($arr['created']) ? $arr['created'] : datetime_convert());
$arr['edited'] = (($arr['edited']) ? $arr['edited'] : datetime_convert());
$arr['type'] = (($arr['type']) ? $arr['type'] : 'event' );
$arr['event_xchan'] = (($arr['event_xchan']) ? $arr['event_xchan'] : '');
$arr['created'] = (($arr['created']) ? $arr['created'] : datetime_convert());
$arr['edited'] = (($arr['edited']) ? $arr['edited'] : datetime_convert());
$arr['type'] = (($arr['type']) ? $arr['type'] : 'event' );
$arr['event_xchan'] = (($arr['event_xchan']) ? $arr['event_xchan'] : '');
$arr['event_priority'] = (($arr['event_priority']) ? $arr['event_priority'] : 0);
if(array_key_exists('event_status_date',$arr))
@ -317,6 +322,7 @@ function event_store_event($arr) {
`event_percent` = %d,
`event_repeat` = '%s',
`event_sequence` = %d,
`event_priority` = %d,
`allow_cid` = '%s',
`allow_gid` = '%s',
`deny_cid` = '%s',
@ -337,6 +343,7 @@ function event_store_event($arr) {
intval($arr['event_percent']),
dbesc($arr['event_repeat']),
intval($arr['event_sequence']),
intval($arr['event_priority']),
dbesc($arr['allow_cid']),
dbesc($arr['allow_gid']),
dbesc($arr['deny_cid']),
@ -355,8 +362,8 @@ function event_store_event($arr) {
$hash = random_string() . '@' . get_app()->get_hostname();
$r = q("INSERT INTO event ( uid,aid,event_xchan,event_hash,created,edited,start,finish,summary,description,location,type,
adjust,nofinish, event_status, event_status_date, event_percent, event_repeat, event_sequence, allow_cid,allow_gid,deny_cid,deny_gid)
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, '%s', %d, '%s', '%s', '%s', '%s' ) ",
adjust,nofinish, event_status, event_status_date, event_percent, event_repeat, event_sequence, event_priority, allow_cid,allow_gid,deny_cid,deny_gid)
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, '%s', %d, %d, '%s', '%s', '%s', '%s' ) ",
intval($arr['uid']),
intval($arr['account']),
dbesc($arr['event_xchan']),
@ -376,6 +383,7 @@ function event_store_event($arr) {
intval($arr['event_percent']),
dbesc($arr['event_repeat']),
intval($arr['event_sequence']),
intval($arr['event_priority']),
dbesc($arr['allow_cid']),
dbesc($arr['allow_gid']),
dbesc($arr['deny_cid']),
@ -543,6 +551,8 @@ function event_import_ical($ical, $uid) {
$ev['description'] = (string) $ical->DESCRIPTION;
if(isset($ical->SUMMARY))
$ev['summary'] = (string) $ical->SUMMARY;
if(isset($ical->PRIORITY))
$ev['event_priority'] = intval((string) $ical->PRIORITY);
if(isset($ical->UID)) {
$evuid = (string) $ical->UID;
@ -641,6 +651,8 @@ function event_import_ical_task($ical, $uid) {
$ev['description'] = (string) $ical->DESCRIPTION;
if(isset($ical->SUMMARY))
$ev['summary'] = (string) $ical->SUMMARY;
if(isset($ical->PRIORITY))
$ev['event_priority'] = intval((string) $ical->PRIORITY);
$stored_event = null;
@ -850,6 +862,17 @@ function event_store_item($arr, $event) {
$item_arr['item_origin'] = $item_origin;
$item_arr['item_thread_top'] = $item_thread_top;;
$attach = array(array(
'href' => z_root() . '/events/ical/' . urlencode($event['event_hash']),
'length' => 0,
'type' => 'text/calendar',
'title' => t('event') . '-' . $event['event_hash'],
'revision' => ''
));
$item_arr['attach'] = $attach;
if(array_key_exists('term', $arr))
$item_arr['term'] = $arr['term'];
@ -907,3 +930,27 @@ function todo_stat() {
'CANCELLED' => t('Cancelled')
);
}
function tasks_fetch($arr) {
if(! local_channel())
return;
$ret = array();
$sql_extra = " and event_status != 'COMPLETED' ";
if($arr && $arr['all'] == 1)
$sql_extra = '';
$r = q("select * from event where type = 'task' and uid = %d $sql_extra order by created desc",
intval(local_channel())
);
$ret['success'] = (($r) ? true : false);
if($r) {
$ret['tasks'] = $r;
}
return $ret;
}

View file

@ -229,7 +229,7 @@ function mini_group_select($uid,$group = '') {
logger('mini_group_select: ' . print_r($grps,true), LOGGER_DATA);
$o = replace_macros(get_markup_template('group_selection.tpl'), array(
'$label' => t('Default privacy group for new contacts'),
'$label' => t('Add new connections to this collection (privacy group)'),
'$groups' => $grps
));
return $o;

View file

@ -3492,7 +3492,7 @@ function mail_store($arr) {
$arr['to_xchan'] = ((x($arr,'to_xchan')) ? notags(trim($arr['to_xchan'])) : '');
$arr['created'] = ((x($arr,'created') !== false) ? datetime_convert('UTC','UTC',$arr['created']) : datetime_convert());
$arr['expires'] = ((x($arr,'expires') !== false) ? datetime_convert('UTC','UTC',$arr['expires']) : NULL_DATE);
$arr['title'] = ((x($arr,'title')) ? notags(trim($arr['title'])) : '');
$arr['title'] = ((x($arr,'title')) ? trim($arr['title']) : '');
$arr['parent_mid'] = ((x($arr,'parent_mid')) ? notags(trim($arr['parent_mid'])) : '');
$arr['body'] = ((x($arr,'body')) ? trim($arr['body']) : '');

View file

@ -238,10 +238,12 @@ abstract class photo_driver {
if(! $this->is_valid())
return FALSE;
if((! function_exists('exif_read_data')) || ($this->getType() !== 'image/jpeg'))
return;
$exif = @exif_read_data($filename,null,true);
if($exif) {
$ort = $exif['IFD0']['Orientation'];
@ -281,7 +283,6 @@ abstract class photo_driver {
break;
}
// logger('exif: ' . print_r($exif,true));
return $exif;
}

View file

@ -166,7 +166,7 @@ function photo_upload($channel, $observer, $args) {
return $ret;
}
$exif = $ph->orient($src);
$exif = $ph->orient(($args['os_path']) ? $args['os_path'] : $src);
@unlink($src);
@ -579,6 +579,16 @@ function getGps($exifCoord, $hemi) {
return floatval($flip * ($degrees + ($minutes / 60) + ($seconds / 3600)));
}
function getGpstimestamp($exifCoord) {
$hours = count($exifCoord) > 0 ? gps2Num($exifCoord[0]) : 0;
$minutes = count($exifCoord) > 1 ? gps2Num($exifCoord[1]) : 0;
$seconds = count($exifCoord) > 2 ? gps2Num($exifCoord[2]) : 0;
return sprintf('%02d:%02d:%02d',$hours,$minutes,$seconds);
}
function gps2Num($coordPart) {
$parts = explode('/', $coordPart);

View file

@ -1305,7 +1305,7 @@ function theme_attachments(&$item) {
$title = htmlspecialchars($r['title'], ENT_COMPAT,'UTF-8');
if(! $title)
$title = t('unknown.???');
$title .= ' ' . $r['length'] . ' ' . t('bytes');
$title .= ' ' . (($r['length']) ? $r['length'] . ' ' . t('bytes') : '');
require_once('include/identity.php');
if(is_foreigner($item['author_xchan']))

View file

@ -1042,3 +1042,24 @@ function widget_forums($arr) {
}
function widget_tasklist($arr) {
require_once('include/event.php');
$o .= '<script>var tasksShowAll = 0; $(document).ready(function() { tasksFetch(); $("#tasklist-new-form").submit(function(event) { event.preventDefault(); $.post( "tasks/new", $("#tasklist-new-form").serialize(), function(data) { tasksFetch(); $("#tasklist-new-summary").val(""); } ); return false; } )});</script>';
$o .= '<script>function taskComplete(id) { $.post("tasks/complete/"+id, function(data) { tasksFetch();}); }
function tasksFetch() {
$.get("tasks/fetch" + ((tasksShowAll) ? "/all" : ""), function(data) {
$(".tasklist-tasks").html(data.html);
});
}
</script>';
$o .= '<div class="widget">' . '<h3>' . t('Tasks') . '</h3><div class="tasklist-tasks">';
$o .= '</div><form id="tasklist-new-form" action="" ><input id="tasklist-new-summary" type="text" name="summary" value="" /></form>';
$o .= '</div>';
return $o;
}

View file

@ -1688,7 +1688,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
$result[] = array($d['hash'],'update ignored',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>',$arr['mid']);
}
else {
update_imported_item($sender,$arr,$channel['channel_id']);
update_imported_item($sender,$arr,$r[0],$channel['channel_id']);
$result[] = array($d['hash'],'updated',$channel['channel_name'] . ' <' . $channel['channel_address'] . '@' . get_app()->get_hostname() . '>',$arr['mid']);
if(! $relay)
add_source_route($item_id,$sender['hash']);
@ -1825,9 +1825,20 @@ function remove_community_tag($sender, $arr, $uid) {
* @param array $item
* @param int $uid (unused)
*/
function update_imported_item($sender, $item, $uid) {
function update_imported_item($sender, $item, $orig, $uid) {
$x = item_store_update($item);
// If we're updating an event that we've saved locally, we store the item info first
// because event_addtocal will parse the body to get the 'new' event details
if($orig['resource_type'] === 'event') {
$res = event_addtocal($orig['id'],$uid);
if(! $res)
logger('update event: failed');
}
if(! $x['item_id'])
logger('update_imported_item: failed: ' . $x['message']);
else

View file

@ -372,6 +372,7 @@ CREATE TABLE IF NOT EXISTS `event` (
`event_percent` smallint(6) NOT NULL DEFAULT '0',
`event_repeat` text NOT NULL,
`event_sequence` smallint(6) NOT NULL DEFAULT '0',
`event_priority` smallint(6) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `type` (`type`),
@ -384,7 +385,8 @@ CREATE TABLE IF NOT EXISTS `event` (
KEY `event_hash` (`event_hash`),
KEY `event_xchan` (`event_xchan`),
KEY `event_status` (`event_status`),
KEY `event_sequence` (`event_sequence`)
KEY `event_sequence` (`event_sequence`),
KEY `event_priority` (`event_priority`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `fcontact` (

View file

@ -363,6 +363,7 @@ CREATE TABLE "event" (
"event_percent" smallint(6) NOT NULL DEFAULT '0',
"event_repeat" text NOT NULL,
"event_sequence" smallint NOT NULL DEFAULT '0',
"event_priority" smallint NOT NULL DEFAULT '0',
PRIMARY KEY ("id")
);
create index "event_uid_idx" on event ("uid");
@ -377,6 +378,7 @@ create index "event_hash_idx" on event ("event_hash");
create index "event_xchan_idx" on event ("event_xchan");
create index "event_status_idx" on event ("event_status");
create index "event_sequence_idx" on event ("event_sequence");
create index "event_priority_idx" on event ("event_priority");
CREATE TABLE "fcontact" (

View file

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1147 );
define( 'UPDATE_VERSION' , 1148 );
/**
*
@ -1720,3 +1720,11 @@ function update_r1146() {
return UPDATE_FAILED;
}
function update_r1147() {
$r1 = q("alter table event add event_priority smallint not null default '0' ");
$r2 = q("create index event_priority on event ( event_priority ) ");
if($r1 && $r2)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}

View file

@ -32,6 +32,12 @@ function editpost_content(&$a) {
return;
}
if($itm[0]['resource_type'] === 'event' && $itm[0]['resource_id']) {
goaway(z_root() . '/events/event/' . $itm[0]['resource_id']);
}
$plaintext = true;
// if(feature_enabled(local_channel(),'richtext'))
// $plaintext = false;

View file

@ -8,7 +8,7 @@ require_once('include/items.php');
function events_post(&$a) {
logger('post: ' . print_r($_REQUEST,true));
logger('post: ' . print_r($_REQUEST,true), LOGGER_DATA);
if(! local_channel())
return;
@ -89,14 +89,14 @@ function events_post(&$a) {
$summary = escape_tags(trim($_POST['summary']));
$desc = escape_tags(trim($_POST['desc']));
$location = escape_tags(trim($_POST['location']));
$type = 'event';
$type = escape_tags(trim($_POST['type']));
require_once('include/text.php');
linkify_tags($a, $desc, local_channel());
linkify_tags($a, $location, local_channel());
$action = ($event_hash == '') ? 'new' : "event/" . $event_hash;
$onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish";
$onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish&type=$type";
if(strcmp($finish,$start) < 0 && !$nofinish) {
notice( t('Event can not end before it has started.') . EOL);
if(intval($_REQUEST['preview'])) {
@ -228,6 +228,27 @@ function events_post(&$a) {
function events_content(&$a) {
if(argc() > 2 && argv(1) == 'ical') {
$event_id = argv(2);
require_once('include/security.php');
$sql_extra = permissions_sql(local_channel());
$r = q("select * from event where event_hash = '%s' $sql_extra limit 1",
dbesc($event_id)
);
if($r) {
header('Content-type: text/calendar');
header('content-disposition: attachment; filename="' . t('event') . '-' . $event_id . '.ics"' );
echo ical_wrapper($r);
killme();
}
else {
notice( t('Event not found.') . EOL );
return;
}
}
if(! local_channel()) {
notice( t('Permission denied.') . EOL);
return;
@ -306,6 +327,10 @@ function events_content(&$a) {
killme();
}
if($mode == 'view') {
@ -366,8 +391,18 @@ function events_content(&$a) {
intval(local_channel()),
intval($_GET['id'])
);
} else {
} elseif($export) {
$r = q("SELECT * from event where uid = %d
AND (( `adjust` = 0 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' )
OR ( `adjust` = 1 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' )) ",
intval(local_channel()),
dbesc($start),
dbesc($finish),
dbesc($adjust_start),
dbesc($adjust_finish)
);
}
else {
// fixed an issue with "nofinish" events not showing up in the calendar.
// There's still an issue if the finish date crosses the end of month.
// Noting this for now - it will need to be fixed here and in Friendica.
@ -384,17 +419,19 @@ function events_content(&$a) {
dbesc($adjust_start),
dbesc($adjust_finish)
);
}
$links = array();
if($r) {
if($r && ! $export) {
xchan_query($r);
$r = fetch_post_tags($r,true);
$r = sort_by_date($r);
}
if($r) {
foreach($r as $rr) {
$j = (($rr['adjust']) ? datetime_convert('UTC',date_default_timezone_get(),$rr['start'], 'j') : datetime_convert('UTC','UTC',$rr['start'],'j'));
if(! x($links,$j))
@ -402,7 +439,6 @@ function events_content(&$a) {
}
}
$events=array();
$last_date = '';
@ -547,9 +583,7 @@ function events_content(&$a) {
if(x($_REQUEST,'location')) $orig_event['location'] = $_REQUEST['location'];
if(x($_REQUEST,'start')) $orig_event['start'] = $_REQUEST['start'];
if(x($_REQUEST,'finish')) $orig_event['finish'] = $_REQUEST['finish'];
}
if($mode === 'edit' || $mode === 'new') {
if(x($_REQUEST,'type')) $orig_event['type'] = $_REQUEST['type'];
$n_checked = ((x($orig_event) && $orig_event['nofinish']) ? ' checked="checked" ' : '');
$a_checked = ((x($orig_event) && $orig_event['adjust']) ? ' checked="checked" ' : '');
@ -568,9 +602,6 @@ function events_content(&$a) {
if($orig_event['event_xchan'])
$sh_checked .= ' disabled="disabled" ';
$sdt = ((x($orig_event)) ? $orig_event['start'] : 'now');
$fdt = ((x($orig_event)) ? $orig_event['finish'] : 'now');
@ -596,6 +627,7 @@ function events_content(&$a) {
$fminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'i') : 0);
$ftext = datetime_convert('UTC',$tz,$fdt);
$ftext = substr($ftext,0,14) . "00:00";
$type = ((x($orig_event)) ? $orig_event['type'] : 'event');
$f = get_config('system','event_input_format');
if(! $f)
@ -635,6 +667,7 @@ function events_content(&$a) {
$o .= replace_macros($tpl,array(
'$post' => $a->get_baseurl() . '/events',
'$eid' => $eid,
'$type' => $type,
'$xchan' => $event_xchan,
'$mid' => $mid,
'$event_hash' => $event_id,

View file

@ -47,7 +47,7 @@ function oexchange_content(&$a) {
$tags = (((x($_REQUEST,'tags')) && strlen($_REQUEST['tags']))
? '&tags=' . urlencode(notags(trim($_REQUEST['tags']))) : '');
$ret = z_fetch_url($a->get_baseurl() . '/parse_url?f=&url=' . $url . $title . $description . $tags);
$ret = z_fetch_url($a->get_baseurl() . '/urlinfo?f=&url=' . $url . $title . $description . $tags);
if($ret['success'])
$s = $ret['body'];

View file

@ -321,6 +321,7 @@ function ping_init(&$a) {
$r = q("SELECT * FROM event left join xchan on event_xchan = xchan_hash
WHERE `event`.`uid` = %d AND start < '%s' AND start > '%s' and `ignore` = 0
and type in ( 'event', 'birthday' )
ORDER BY `start` DESC LIMIT 1000",
intval(local_channel()),
dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now + ' . intval($evdays) . ' days')),
@ -439,6 +440,7 @@ function ping_init(&$a) {
if($vnotify & (VNOTIFY_EVENT|VNOTIFY_EVENTTODAY|VNOTIFY_BIRTHDAY)) {
$events = q("SELECT type, start, adjust FROM `event`
WHERE `event`.`uid` = %d AND start < '%s' AND start > '%s' and `ignore` = 0
and type in ( 'event', 'birthday' )
ORDER BY `start` ASC ",
intval(local_channel()),
dbesc(datetime_convert('UTC', date_default_timezone_get(), 'now + ' . intval($evdays) . ' days')),

View file

@ -102,7 +102,7 @@ function rpost_content(&$a) {
);
if($_REQUEST['url']) {
$x = z_fetch_url(z_root() . '/parse_url?f=&url=' . urlencode($_REQUEST['url']));
$x = z_fetch_url(z_root() . '/urlinfo?f=&url=' . urlencode($_REQUEST['url']));
if($x['success'])
$_REQUEST['body'] = $_REQUEST['body'] . $x['body'];
}

107
mod/tasks.php Normal file
View file

@ -0,0 +1,107 @@
<?php
require_once('include/event.php');
function tasks_init(&$a) {
// logger('request: ' . print_r($_REQUEST,true));
$arr = array();
if(argc() > 1 && argv(1) === 'fetch') {
if(argc() > 2 && argv(2) === 'all')
$arr['all'] = 1;
$x = tasks_fetch($arr);
if($x['tasks']) {
$x['html'] = '';
foreach($x['tasks'] as $y) {
$x['html'] .= '<div class="tasklist-item"><input type="checkbox" onchange="taskComplete(' . $y['id'] . '); return false;" /> ' . $y['summary'] . '</div>';
}
}
json_return_and_die($x);
}
}
function tasks_post(&$a) {
// logger('post: ' . print_r($_POST,true));
if(! local_channel())
return;
$channel = $a->get_channel();
if((argc() > 2) && (argv(1) === 'complete') && intval(argv(2))) {
$ret = array('success' => false);
$r = q("select * from event where `type` = 'task' and uid = %d and id = %d limit 1",
intval(local_channel()),
intval(argv(2))
);
if($r) {
$event = $r[0];
if($event['event_status'] === 'COMPLETED') {
$event['event_status'] = 'IN-PROCESS';
$event['event_status_date'] = NULL_DATE;
$event['event_percent'] = 0;
$event['event_sequence'] = $event['event_sequence'] + 1;
$event['edited'] = datetime_convert();
}
else {
$event['event_status'] = 'COMPLETED';
$event['event_status_date'] = datetime_convert();
$event['event_percent'] = 100;
$event['event_sequence'] = $event['event_sequence'] + 1;
$event['edited'] = datetime_convert();
}
$x = event_store_event($event);
if($x)
$ret['success'] = true;
}
json_return_and_die($ret);
}
if(argc() == 2 && argv(1) === 'new') {
$text = escape_tags(trim($_REQUEST['summary']));
if(! $text)
return array('success' => false);
$event = array();
$event['aid'] = $channel['channel_account_id'];
$event['uid'] = $channel['channel_id'];
$event['event_xchan'] = $channel['channel_hash'];
$event['type'] = 'task';
$event['nofinish'] = true;
$event['created'] = $event['edited'] = $event['start'] = datetime_convert();
$event['adjust'] = 1;
$event['allow_cid'] = '<' . $channel['channel_hash'] . '>';
$event['summary'] = escape_tags($_REQUEST['summary']);
$x = event_store_event($event);
if($x)
$x['success'] = true;
else
$x = array('success' => false);
json_return_and_die($x);
}
}
function tasks_content(&$a) {
if(! local_channel())
return;
return '';
}

View file

@ -220,7 +220,9 @@ function arr_add_hashes(&$item,$k) {
$item = '#' . $item;
}
function parse_url_content(&$a) {
function urlinfo_content(&$a) {
logger('urlinfo: ' . print_r($_REQUEST,true));
$text = null;
$str_tags = '';
@ -251,7 +253,7 @@ function parse_url_content(&$a) {
}
}
logger('parse_url: ' . $url);
logger('urlinfo: ' . $url);
$result = z_fetch_url($url,false,0,array('novalidate' => true, 'nobody' => true));
if($result['success']) {
@ -315,7 +317,7 @@ function parse_url_content(&$a) {
$result = sprintf($template,$url,($title) ? $title : $url,$text) . $str_tags;
logger('parse_url (unparsed): returns: ' . $result);
logger('urlinfo (unparsed): returns: ' . $result);
echo $result;
killme();
@ -374,7 +376,7 @@ function parse_url_content(&$a) {
$result = sprintf($template,$url,($title) ? $title : $url,$text) . $str_tags;
logger('parse_url: returns: ' . $result, LOGGER_DEBUG);
logger('urlinfo: returns: ' . $result, LOGGER_DEBUG);
echo trim($result);
killme();

View file

@ -52,6 +52,7 @@ function wall_attach_post(&$a) {
echo "\n\n" . $r['body'] . "\n\n";
if($using_api)
return;
killme();
}
echo "\n\n" . '[attachment]' . $r['data']['hash'] . ',' . $r['data']['revision'] . '[/attachment]' . "\n";
killme();

View file

@ -1 +1 @@
2015-08-18.1128
2015-08-20.1130

View file

@ -110,3 +110,15 @@ li:hover .group-edit-icon {
.directory-rating-submit {
margin-top: 15px;
}
/* tasklist */
.tasklist-tasks {
max-height: 300px;
overflow-y: auto;
}
#tasklist-new-summary {
width: 250px;
}

View file

@ -14,7 +14,7 @@ msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-08-14 00:04-0700\n"
"PO-Revision-Date: 2015-08-17 16:39+0000\n"
"PO-Revision-Date: 2015-08-20 11:57+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"
@ -268,7 +268,7 @@ msgstr "nunca"
#: ../../include/datetime.php:268
msgid "less than a second ago"
msgstr "hace menos de un segundo"
msgstr "hace un instante"
#: ../../include/datetime.php:271
msgid "year"
@ -330,7 +330,7 @@ msgstr "segundos"
#, php-format
msgctxt "e.g. 22 hours ago, 1 minute ago"
msgid "%1$d %2$s ago"
msgstr "hace %1$d %2$s"
msgstr "Hace %1$d y %2$s"
#: ../../include/datetime.php:519
#, php-format
@ -543,7 +543,7 @@ msgstr "timeago.prefixFromNow"
#: ../../include/js_strings.php:28
msgid "ago"
msgstr "hace"
msgstr "de su publicación"
#: ../../include/js_strings.php:29
msgid "from now"
@ -555,7 +555,7 @@ msgstr "menos de un minuto"
#: ../../include/js_strings.php:31
msgid "about a minute"
msgstr "hace como un minuto"
msgstr "alrededor de un minuto"
#: ../../include/js_strings.php:32
#, php-format
@ -564,12 +564,12 @@ msgstr "%d minutos"
#: ../../include/js_strings.php:33
msgid "about an hour"
msgstr "hace como una hora"
msgstr "alrededor de una hora"
#: ../../include/js_strings.php:34
#, php-format
msgid "about %d hours"
msgstr "hace %d minutos"
msgstr "alrededor de %d horas"
#: ../../include/js_strings.php:35
msgid "a day"
@ -582,7 +582,7 @@ msgstr "%d días"
#: ../../include/js_strings.php:37
msgid "about a month"
msgstr "hace como un mes"
msgstr "alrededor de un mes"
#: ../../include/js_strings.php:38
#, php-format
@ -591,7 +591,7 @@ msgstr "%d meses"
#: ../../include/js_strings.php:39
msgid "about a year"
msgstr "hace un año"
msgstr "alrededor de un año"
#: ../../include/js_strings.php:40
#, php-format
@ -888,7 +888,7 @@ msgstr "Pulsar para abrir/cerrar"
#: ../../include/text.php:1665 ../../mod/events.php:457
msgid "Link to Source"
msgstr "Enlace a la fuente"
msgstr "Ir al mensaje original"
#: ../../include/text.php:1686 ../../include/text.php:1757
msgid "default"
@ -1483,7 +1483,7 @@ msgstr "Configuración de visualización"
#: ../../include/widgets.php:517
msgid "Connected apps"
msgstr "Apps conectadas"
msgstr "Aplicaciones conectadas"
#: ../../include/widgets.php:523
msgid "Export channel"
@ -1630,7 +1630,7 @@ msgstr "Para ver o comentar la conversación, visita %s"
#: ../../include/enotify.php:196
#, php-format
msgid "[Red:Notify] %s posted to your profile wall"
msgstr "[Red:aviso] %s escribió en su muro"
msgstr "[Red:Notify] %s escribió en su muro"
#: ../../include/enotify.php:198
#, php-format
@ -1765,7 +1765,7 @@ msgstr "No se ha podido verificar las entradas guardadas."
#: ../../mod/like.php:394
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "a %1$s le gusta el/la %3$s de %2$s"
msgstr "a %1$s le gusta el %3$s de %2$s"
#: ../../include/diaspora.php:2494
msgid "Please choose"
@ -1781,7 +1781,7 @@ msgstr "En desacuerdo"
#: ../../include/diaspora.php:2500
msgid "Abstain"
msgstr "Se abstiene"
msgstr "Abstención"
#: ../../include/follow.php:28
msgid "Channel is blocked on this site."
@ -1833,11 +1833,11 @@ msgstr "Guardar en carpeta"
#: ../../include/ItemObject.php:151
msgid "I will attend"
msgstr "Asistiré"
msgstr "Participaré"
#: ../../include/ItemObject.php:151
msgid "I will not attend"
msgstr "No asistiré"
msgstr "No participaré"
#: ../../include/ItemObject.php:151
msgid "I might attend"
@ -1867,7 +1867,7 @@ msgstr "Ver todo"
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
msgstr[0] "Le gusta"
msgstr[0] "Me gusta"
msgstr[1] "Me gusta"
#: ../../include/ItemObject.php:184 ../../include/conversation.php:1704
@ -1875,7 +1875,7 @@ msgstr[1] "Me gusta"
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] "No le gusta"
msgstr[0] "No me gusta"
msgstr[1] "No me gusta"
#: ../../include/ItemObject.php:212
@ -1888,7 +1888,7 @@ msgstr "Eliminar estrella"
#: ../../include/ItemObject.php:214
msgid "Toggle Star Status"
msgstr "Invertir estado de estrella"
msgstr "Activa o desactiva el estado de preferido"
#: ../../include/ItemObject.php:218
msgid "starred"
@ -1908,7 +1908,7 @@ msgstr "Añadir etiqueta"
#: ../../include/ItemObject.php:254 ../../mod/photos.php:959
msgid "I like this (toggle)"
msgstr "me gusta (conmutar)"
msgstr "me gusta (cambiar)"
#: ../../include/ItemObject.php:254 ../../include/taxonomy.php:310
msgid "like"
@ -1916,7 +1916,7 @@ msgstr "Me gusta"
#: ../../include/ItemObject.php:255 ../../mod/photos.php:960
msgid "I don't like this (toggle)"
msgstr "No me gusta (conmutar)"
msgstr "No me gusta (cambiar)"
#: ../../include/ItemObject.php:255 ../../include/taxonomy.php:311
msgid "dislike"
@ -1961,7 +1961,7 @@ msgstr "mediante Muro-a-Muro"
#: ../../include/ItemObject.php:312 ../../include/conversation.php:716
#, php-format
msgid "from %s"
msgstr "de %s"
msgstr "desde %s"
#: ../../include/ItemObject.php:315 ../../include/conversation.php:719
#, php-format
@ -2176,7 +2176,7 @@ msgstr "%s - pulsar para cerrar sesión"
#: ../../include/nav.php:137
msgid "Remote authentication"
msgstr "Autenticación remota"
msgstr "Acceder desde su servidor"
#: ../../include/nav.php:137
msgid "Click to authenticate to your home hub"
@ -2543,12 +2543,12 @@ msgstr "canal"
#: ../../include/conversation.php:167 ../../mod/like.php:396
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "a %1$s no le gusta el/la %3$s de %2$s"
msgstr "a %1$s no le gusta el %3$s de %2$s"
#: ../../include/conversation.php:204
#, php-format
msgid "%1$s is now connected with %2$s"
msgstr "%1$s ahora es conectada con %2$s"
msgstr "%1$s ahora está conectado con %2$s"
#: ../../include/conversation.php:239
#, php-format
@ -2589,17 +2589,17 @@ msgstr "Abstenerse"
#: ../../include/conversation.php:574 ../../mod/photos.php:998
msgctxt "title"
msgid "Attending"
msgstr "Asistir"
msgstr "Participar"
#: ../../include/conversation.php:574 ../../mod/photos.php:998
msgctxt "title"
msgid "Not attending"
msgstr "No asistir"
msgstr "No participar"
#: ../../include/conversation.php:574 ../../mod/photos.php:998
msgctxt "title"
msgid "Might attend"
msgstr "Quizá asista"
msgstr "Quizá participe"
#: ../../include/conversation.php:692
#, php-format
@ -2616,7 +2616,7 @@ msgstr "Archivado bajo:"
#: ../../include/conversation.php:735
msgid "View in context"
msgstr "Mostrar en contexto"
msgstr "Mostrar en su contexto"
#: ../../include/conversation.php:846
msgid "remove"
@ -2644,7 +2644,7 @@ msgstr "Ver fotos"
#: ../../include/conversation.php:944
msgid "Matrix Activity"
msgstr "Actvidad de Matrix"
msgstr "Actividad en la red"
#: ../../include/conversation.php:946
msgid "Edit Contact"
@ -2730,7 +2730,7 @@ msgstr "Guardar en carpeta:"
#: ../../include/conversation.php:1146
msgid "Where are you right now?"
msgstr "¿Donde estás ahora?"
msgstr "¿Donde está ahora?"
#: ../../include/conversation.php:1147 ../../mod/editpost.php:47
#: ../../mod/mail.php:175 ../../mod/mail.php:290
@ -2965,14 +2965,14 @@ msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] "Asistir"
msgstr[1] "Asistir"
msgstr[1] "Participar"
#: ../../include/conversation.php:1710
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] "No asistir"
msgstr[1] "No asistir"
msgstr[1] "No participar"
#: ../../include/conversation.php:1713
msgctxt "noun"
@ -3000,7 +3000,7 @@ msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
msgstr[0] "se abstiene"
msgstr[1] "se abstienen"
msgstr[1] "Abstenerse"
#: ../../include/items.php:413 ../../mod/like.php:270
#: ../../mod/subthread.php:49 ../../mod/group.php:68 ../../mod/profperm.php:23
@ -3414,7 +3414,7 @@ msgstr "Recordatorios de eventos"
#: ../../include/identity.php:1128
msgid "Events this week:"
msgstr "Eventos esta semana:"
msgstr "Eventos de esta semana:"
#: ../../include/identity.php:1141 ../../include/identity.php:1258
#: ../../include/apps.php:138 ../../mod/profperm.php:112
@ -3473,7 +3473,7 @@ msgstr "Religión:"
#: ../../include/identity.php:1216 ../../mod/directory.php:315
msgid "About:"
msgstr "Sobre usted:"
msgstr "Sobre :"
#: ../../include/identity.php:1218
msgid "Hobbies/Interests:"
@ -3521,7 +3521,7 @@ msgstr "Trabajo/empleo:"
#: ../../include/identity.php:1240
msgid "School/education:"
msgstr "Escuela/educación:"
msgstr "Estudios:"
#: ../../include/identity.php:1260
msgid "Like this thing"
@ -4346,32 +4346,32 @@ msgstr "Acción anterior revocada."
#: ../../mod/like.php:398
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr "%1$s está de acuerdo con %2$s de %3$s"
msgstr "%1$s está de acuerdo con %3$s de %2$s"
#: ../../mod/like.php:400
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr "%1$s no están de acuerdo con %2$s de %3$s"
msgstr "%1$s no está de acuerdo con %3$s de %2$s"
#: ../../mod/like.php:402
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr "%1$s se abstiene de pronunciarse sobre %2$s de %3$s"
msgstr "%1$s se abstiene en %3$s de %2$s"
#: ../../mod/like.php:404
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr "%1$s asistirá a %2$s de %3$s"
msgstr "%1$s participará en el %3$s de %2$s"
#: ../../mod/like.php:406
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr "%1$s no asistirá a %2$s de %3$s"
msgstr "%1$s no participará en el %3$s de %2$s"
#: ../../mod/like.php:408
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr "%1$s podrá asistir a %2$s de %3$s"
msgstr "%1$s tal vez participe en el %3$s de %2$s"
#: ../../mod/like.php:492
msgid "Action completed."
@ -4626,11 +4626,11 @@ msgstr "Etiqueta:"
#: ../../mod/siteinfo.php:160
msgid "Last background fetch: "
msgstr "Último fondo elegido:"
msgstr "Última actualización en segundo plano:"
#: ../../mod/siteinfo.php:163
msgid "Running at web location"
msgstr "Corriendo en un sitio web"
msgstr "Corriendo en el sitio web"
#: ../../mod/siteinfo.php:164
msgid ""
@ -4843,7 +4843,7 @@ msgstr "El elemento no es editable"
#: ../../mod/editpost.php:48
msgid "Delete item?"
msgstr "¿Borrar este elemento?"
msgstr "¿Borrar el elemento?"
#: ../../mod/editpost.php:115 ../../mod/editlayout.php:142
#: ../../mod/editwebpage.php:187 ../../mod/editblock.php:144
@ -6082,7 +6082,7 @@ msgstr "Trabajo"
#: ../../mod/profiles.php:711
msgid "School/education"
msgstr "Educación"
msgstr "Estudios"
#: ../../mod/profiles.php:717
msgid "This is your default profile."
@ -6543,7 +6543,7 @@ msgstr "Error del protocolo OpenID. Ningún ID recibido como respuesta."
#: ../../mod/openid.php:72 ../../mod/openid.php:180 ../../mod/post.php:286
#, php-format
msgid "Welcome %s. Remote authentication successful."
msgstr "Bienvenido %s. La identificación remota se ha llevado a cabo correctamente."
msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente."
#: ../../mod/tagger.php:96
#, php-format
@ -7960,7 +7960,7 @@ msgstr "acepte una solicitud de amistad"
#: ../../mod/settings.php:1099
msgid "joining a forum/community"
msgstr "se una a un foro o comunidad"
msgstr "unirse a un foro o comunidad"
#: ../../mod/settings.php:1100
msgid "making an <em>interesting</em> profile change"
@ -8467,7 +8467,7 @@ msgstr "Falló la autenticación."
#: ../../mod/rmagic.php:84
msgid "Remote Authentication"
msgstr "Autenticación Remota"
msgstr "Acceso desde su servidor"
#: ../../mod/rmagic.php:85
msgid "Enter your channel address (e.g. channel@example.com)"
@ -8563,7 +8563,7 @@ msgstr "Por favor, inicia sesión."
msgid ""
"Remote authentication blocked. You are logged into this site locally. Please"
" logout and retry."
msgstr "La autenticación remota está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo."
msgstr "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo."
#: ../../mod/new_channel.php:109
msgid "Add a Channel"
@ -8667,7 +8667,7 @@ msgstr "se añadió su canal"
#: ../../mod/ping.php:355
msgid "posted an event"
msgstr "Se publicó un evento"
msgstr "publicó un evento"
#: ../../mod/layouts.php:176
msgid "Comanche page description language help"
@ -8908,7 +8908,7 @@ msgstr "Elija un esquema"
#: ../../view/theme/redbasic/php/config.php:104
msgid "Narrow navbar"
msgstr "Limita la barra de navegación"
msgstr "Estrechar la barra de navegación"
#: ../../view/theme/redbasic/php/config.php:105
msgid "Navigation bar background color"

View file

@ -60,7 +60,7 @@ $a->strings["Miscellaneous"] = "Varios";
$a->strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD o MM-DD";
$a->strings["Required"] = "Obligatorio";
$a->strings["never"] = "nunca";
$a->strings["less than a second ago"] = "hace menos de un segundo";
$a->strings["less than a second ago"] = "hace un instante";
$a->strings["year"] = "año";
$a->strings["years"] = "años";
$a->strings["month"] = "mes";
@ -75,7 +75,7 @@ $a->strings["minute"] = "minuto";
$a->strings["minutes"] = "minutos";
$a->strings["second"] = "segundo";
$a->strings["seconds"] = "segundos";
$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "hace %1\$d %2\$s";
$a->strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "Hace %1\$d y %2\$s";
$a->strings["%1\$s's birthday"] = "Cumpleaños de %1\$s";
$a->strings["Happy Birthday %1\$s"] = "Feliz cumpleaños %1\$s";
$a->strings["Directory Options"] = "Opciones del directorio";
@ -116,18 +116,18 @@ $a->strings["Please enter a link URL"] = "Por favor, introduzca una dirección d
$a->strings["Unsaved changes. Are you sure you wish to leave this page?"] = "Cambios no guardados. ¿Está seguro que desea abandonar la página?";
$a->strings["timeago.prefixAgo"] = "timeago.prefixAgo";
$a->strings["timeago.prefixFromNow"] = "timeago.prefixFromNow";
$a->strings["ago"] = "hace";
$a->strings["ago"] = "de su publicación";
$a->strings["from now"] = "desde ahora";
$a->strings["less than a minute"] = "menos de un minuto";
$a->strings["about a minute"] = "hace como un minuto";
$a->strings["about a minute"] = "alrededor de un minuto";
$a->strings["%d minutes"] = "%d minutos";
$a->strings["about an hour"] = "hace como una hora";
$a->strings["about %d hours"] = "hace %d minutos";
$a->strings["about an hour"] = "alrededor de una hora";
$a->strings["about %d hours"] = "alrededor de %d horas";
$a->strings["a day"] = "un día";
$a->strings["%d days"] = "%d días";
$a->strings["about a month"] = "hace como un mes";
$a->strings["about a month"] = "alrededor de un mes";
$a->strings["%d months"] = "%d meses";
$a->strings["about a year"] = "hace un año";
$a->strings["about a year"] = "alrededor de un año";
$a->strings["%d years"] = "%d años";
$a->strings[" "] = " ";
$a->strings["timeago.numbers"] = "timeago.numbers";
@ -202,7 +202,7 @@ $a->strings["bytes"] = "bytes";
$a->strings["remove category"] = "eliminar categoría";
$a->strings["remove from file"] = "eliminar del archivo";
$a->strings["Click to open/close"] = "Pulsar para abrir/cerrar";
$a->strings["Link to Source"] = "Enlace a la fuente";
$a->strings["Link to Source"] = "Ir al mensaje original";
$a->strings["default"] = "por defecto";
$a->strings["Page layout"] = "Disposición de página";
$a->strings["You can create your own with the layouts tool"] = "Puede crear la suya propia con la herramienta de disposiciones";
@ -338,7 +338,7 @@ $a->strings["Channel settings"] = "Configuración del canal";
$a->strings["Additional features"] = "Características adicionales";
$a->strings["Feature/Addon settings"] = "Configuración de característica/complemento";
$a->strings["Display settings"] = "Configuración de visualización";
$a->strings["Connected apps"] = "Apps conectadas";
$a->strings["Connected apps"] = "Aplicaciones conectadas";
$a->strings["Export channel"] = "Exportar canal";
$a->strings["Connection Default Permissions"] = "Permisos predeterminados de conexión";
$a->strings["Premium Channel Settings"] = "Configuración del canal premium";
@ -370,7 +370,7 @@ $a->strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %
$a->strings["[Red:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Red notifica] Comentario en la conversación #%1\$d por %2\$s";
$a->strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s comentó sobre 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, visita %s";
$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:aviso] %s escribió en su muro";
$a->strings["[Red:Notify] %s posted to your profile wall"] = "[Red:Notify] %s escribió en su muro";
$a->strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s publicó en su muro de perfil en %3\$s";
$a->strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s publicó en [zrl=%3\$s]su muro[/zrl]";
$a->strings["[Red:Notify] %s tagged you"] = "[Red notifica] %s le etiquetó";
@ -398,11 +398,11 @@ $a->strings["No recipient provided."] = "No se ha especificado ningún destinata
$a->strings["[no subject]"] = "[sin asunto]";
$a->strings["Unable to determine sender."] = "No ha sido posible de determinar el remitente. ";
$a->strings["Stored post could not be verified."] = "No se ha podido verificar las entradas guardadas.";
$a->strings["%1\$s likes %2\$s's %3\$s"] = "a %1\$s le gusta el/la %3\$s de %2\$s";
$a->strings["%1\$s likes %2\$s's %3\$s"] = "a %1\$s le gusta el %3\$s de %2\$s";
$a->strings["Please choose"] = "Por favor selecciona";
$a->strings["Agree"] = "De acuerdo";
$a->strings["Disagree"] = "En desacuerdo";
$a->strings["Abstain"] = "Se abstiene";
$a->strings["Abstain"] = "Abstención";
$a->strings["Channel is blocked on this site."] = "El canal está bloqueado en éste sitio.";
$a->strings["Channel location missing."] = "Falta la dirección del canal ";
$a->strings["Response from remote channel was incomplete."] = "Respuesta del canal remoto incompleta.";
@ -415,31 +415,31 @@ $a->strings["Cannot connect to yourself."] = "No puede conectarse consigo mismo.
$a->strings["Private Message"] = "Mensaje Privado";
$a->strings["Select"] = "Seleccionar";
$a->strings["Save to Folder"] = "Guardar en carpeta";
$a->strings["I will attend"] = "Asisti";
$a->strings["I will not attend"] = "No asisti";
$a->strings["I will attend"] = "Participa";
$a->strings["I will not attend"] = "No participa";
$a->strings["I might attend"] = "Quizá asista";
$a->strings["I agree"] = "Estoy de acuerdo";
$a->strings["I disagree"] = "No estoy de acuerdo";
$a->strings["I abstain"] = "Me abstengo";
$a->strings["View all"] = "Ver todo";
$a->strings["__ctx:noun__ Like"] = array(
0 => "Le gusta",
0 => "Me gusta",
1 => "Me gusta",
);
$a->strings["__ctx:noun__ Dislike"] = array(
0 => "No le gusta",
0 => "No me gusta",
1 => "No me gusta",
);
$a->strings["Add Star"] = "Añadir estrella";
$a->strings["Remove Star"] = "Eliminar estrella";
$a->strings["Toggle Star Status"] = "Invertir estado de estrella";
$a->strings["Toggle Star Status"] = "Activa o desactiva el estado de preferido";
$a->strings["starred"] = "preferidos";
$a->strings["Message signature validated"] = "Firma de mensaje validada";
$a->strings["Message signature incorrect"] = "Firma de mensaje incorrecta";
$a->strings["Add Tag"] = "Añadir etiqueta";
$a->strings["I like this (toggle)"] = "me gusta (conmutar)";
$a->strings["I like this (toggle)"] = "me gusta (cambiar)";
$a->strings["like"] = "Me gusta";
$a->strings["I don't like this (toggle)"] = "No me gusta (conmutar)";
$a->strings["I don't like this (toggle)"] = "No me gusta (cambiar)";
$a->strings["dislike"] = "No me gusta";
$a->strings["Share This"] = "Compartir esto";
$a->strings["share"] = "Compartir";
@ -452,7 +452,7 @@ $a->strings["to"] = "a";
$a->strings["via"] = "mediante";
$a->strings["Wall-to-Wall"] = "Muro-a-Muro";
$a->strings["via Wall-To-Wall:"] = "mediante Muro-a-Muro";
$a->strings["from %s"] = "de %s";
$a->strings["from %s"] = "desde %s";
$a->strings["last edited: %s"] = "último cambio: %s";
$a->strings["Expires: %s"] = "Caduca: %s";
$a->strings["Save Bookmarks"] = "Guardar marcadores";
@ -499,7 +499,7 @@ $a->strings["Your webpages"] = "Sus páginas web";
$a->strings["Login"] = "Iniciar sesión";
$a->strings["Sign in"] = "Acceder";
$a->strings["%s - click to logout"] = "%s - pulsar para cerrar sesión";
$a->strings["Remote authentication"] = "Autenticación remota";
$a->strings["Remote authentication"] = "Acceder desde su servidor";
$a->strings["Click to authenticate to your home hub"] = "Pulsar para identificarse en su servidor";
$a->strings["Home Page"] = "Página de inicio";
$a->strings["Register"] = "Registrarse";
@ -587,8 +587,8 @@ $a->strings["Group Repository"] = "Repositorio de grupo";
$a->strings["Other"] = "Otro";
$a->strings["Custom/Expert Mode"] = "Modo personalizado/experto";
$a->strings["channel"] = "canal";
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "a %1\$s no le gusta el/la %3\$s de %2\$s";
$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s ahora es conectada con %2\$s";
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "a %1\$s no le gusta el %3\$s de %2\$s";
$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s ahora está conectado con %2\$s";
$a->strings["%1\$s poked %2\$s"] = "%1\$s dio un toque a %2\$s";
$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s está %2\$s";
$a->strings["__ctx:title__ Likes"] = "Me gusta";
@ -596,20 +596,20 @@ $a->strings["__ctx:title__ Dislikes"] = "No me gusta";
$a->strings["__ctx:title__ Agree"] = "De acuerdo";
$a->strings["__ctx:title__ Disagree"] = "En desacuerdo";
$a->strings["__ctx:title__ Abstain"] = "Abstenerse";
$a->strings["__ctx:title__ Attending"] = "Asistir";
$a->strings["__ctx:title__ Not attending"] = "No asistir";
$a->strings["__ctx:title__ Might attend"] = "Quizá asista";
$a->strings["__ctx:title__ Attending"] = "Participar";
$a->strings["__ctx:title__ Not attending"] = "No participar";
$a->strings["__ctx:title__ Might attend"] = "Quizá participe";
$a->strings["View %s's profile @ %s"] = "Ver perfil @ %s de %s";
$a->strings["Categories:"] = "Categorías:";
$a->strings["Filed under:"] = "Archivado bajo:";
$a->strings["View in context"] = "Mostrar en contexto";
$a->strings["View in context"] = "Mostrar en su contexto";
$a->strings["remove"] = "eliminar";
$a->strings["Delete Selected Items"] = "Eliminar elementos seleccionados";
$a->strings["View Source"] = "Ver fuente";
$a->strings["Follow Thread"] = "Seguir el hilo";
$a->strings["View Status"] = "Ver estado";
$a->strings["View Photos"] = "Ver fotos";
$a->strings["Matrix Activity"] = "Actvidad de Matrix";
$a->strings["Matrix Activity"] = "Actividad en la red";
$a->strings["Edit Contact"] = "Editar contacto";
$a->strings["Send PM"] = "Enviar Mensaje Privado";
$a->strings["Poke"] = "Dar un toque";
@ -636,7 +636,7 @@ $a->strings["Please enter a video link/URL:"] = "Por favor, introduzca un enlace
$a->strings["Please enter an audio link/URL:"] = "Por favor, introduzca un enlace/URL de audio:";
$a->strings["Tag term:"] = "Término de etiqueta:";
$a->strings["Save to Folder:"] = "Guardar en carpeta:";
$a->strings["Where are you right now?"] = "¿Donde estás ahora?";
$a->strings["Where are you right now?"] = "¿Donde está ahora?";
$a->strings["Expires YYYY-MM-DD HH:MM"] = "Caduca YYYY-MM-DD HH:MM";
$a->strings["Share"] = "Compartir";
$a->strings["Page link name"] = "Nombre de enlace de página";
@ -689,11 +689,11 @@ $a->strings["Saved Bookmarks"] = "Marcadores guardados";
$a->strings["Manage Webpages"] = "Administrar páginas web";
$a->strings["__ctx:noun__ Attending"] = array(
0 => "Asistir",
1 => "Asistir",
1 => "Participar",
);
$a->strings["__ctx:noun__ Not Attending"] = array(
0 => "No asistir",
1 => "No asistir",
1 => "No participar",
);
$a->strings["__ctx:noun__ Undecided"] = array(
0 => "Indeciso/a",
@ -709,7 +709,7 @@ $a->strings["__ctx:noun__ Disagree"] = array(
);
$a->strings["__ctx:noun__ Abstain"] = array(
0 => "se abstiene",
1 => "se abstienen",
1 => "Abstenerse",
);
$a->strings["Permission denied"] = "Permiso denegado";
$a->strings["(Unknown)"] = "(Desconocido)";
@ -802,7 +802,7 @@ $a->strings["Birthday Reminders"] = "Recordatorios de cumpleaños";
$a->strings["Birthdays this week:"] = "Cumpleaños esta semana:";
$a->strings["[No description]"] = "[Sin descripción]";
$a->strings["Event Reminders"] = "Recordatorios de eventos";
$a->strings["Events this week:"] = "Eventos esta semana:";
$a->strings["Events this week:"] = "Eventos de esta semana:";
$a->strings["Profile"] = "Perfil";
$a->strings["Full Name:"] = "Nombre completo:";
$a->strings["Like this channel"] = "Me gusta este canal";
@ -816,7 +816,7 @@ $a->strings["Hometown:"] = "Ciudad de origen:";
$a->strings["Tags:"] = "Etiquetas:";
$a->strings["Political Views:"] = "Posición política:";
$a->strings["Religion:"] = "Religión:";
$a->strings["About:"] = "Sobre usted:";
$a->strings["About:"] = "Sobre :";
$a->strings["Hobbies/Interests:"] = "Aficciones/Intereses:";
$a->strings["Likes:"] = "Me gusta:";
$a->strings["Dislikes:"] = "No me gusta:";
@ -828,7 +828,7 @@ $a->strings["Television:"] = "Televisión:";
$a->strings["Film/dance/culture/entertainment:"] = "Cine/baile/cultura/entretenimiento:";
$a->strings["Love/Romance:"] = "Amor/romance:";
$a->strings["Work/employment:"] = "Trabajo/empleo:";
$a->strings["School/education:"] = "Escuela/educación:";
$a->strings["School/education:"] = "Estudios:";
$a->strings["Like this thing"] = "Me gusta esto";
$a->strings["Male"] = "Hombre";
$a->strings["Female"] = "Mujer";
@ -1024,12 +1024,12 @@ $a->strings["Invalid request."] = "Solicitud incorrecta.";
$a->strings["thing"] = "elemento";
$a->strings["Channel unavailable."] = "Canal no disponible.";
$a->strings["Previous action reversed."] = "Acción anterior revocada.";
$a->strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s está de acuerdo con %2\$s de %3\$s";
$a->strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s no están de acuerdo con %2\$s de %3\$s";
$a->strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s se abstiene de pronunciarse sobre %2\$s de %3\$s";
$a->strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s asistirá a %2\$s de %3\$s";
$a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s no asistirá a %2\$s de %3\$s";
$a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s podrá asistir a %2\$s de %3\$s";
$a->strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s está de acuerdo con %3\$s de %2\$s";
$a->strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s no está de acuerdo con %3\$s de %2\$s";
$a->strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s se abstiene en %3\$s de %2\$s";
$a->strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s participará en el %3\$s de %2\$s";
$a->strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s no participará en el %3\$s de %2\$s";
$a->strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s tal vez participe en el %3\$s de %2\$s";
$a->strings["Action completed."] = "Acción completada.";
$a->strings["Thank you."] = "Gracias.";
$a->strings["Calendar entries imported."] = "Entradas de calendario importadas.";
@ -1090,8 +1090,8 @@ $a->strings["No installed plugins/addons/apps"] = "Extensiones/Aplicaciones no i
$a->strings["\$Projectname"] = "\$Projectname";
$a->strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Este es un sitio integrado en \$Projectname - una red cooperativa mundial de sitios web descentralizados de privacidad mejorada.";
$a->strings["Tag: "] = "Etiqueta:";
$a->strings["Last background fetch: "] = "Último fondo elegido:";
$a->strings["Running at web location"] = "Corriendo en un sitio web";
$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["\$projectname issues"] = "Problemas en \$projectname";
@ -1142,7 +1142,7 @@ $a->strings["Block Name"] = "Nombre del bloque";
$a->strings["Block Title"] = "Título del bloque";
$a->strings["Item not found"] = "Elemento no encontrado";
$a->strings["Item is not editable"] = "El elemento no es editable";
$a->strings["Delete item?"] = "¿Borrar este elemento?";
$a->strings["Delete item?"] = "¿Borrar el elemento?";
$a->strings["Insert YouTube video"] = "Insertar vídeo de YouTube";
$a->strings["Insert Vorbis [.ogg] video"] = "Insertar vídeo Vorbis [.ogg]";
$a->strings["Insert Vorbis [.ogg] audio"] = "Insertar audio Vorbis [.ogg]";
@ -1443,7 +1443,7 @@ $a->strings["Television"] = "Televisión";
$a->strings["Film/dance/culture/entertainment"] = "Cine/danza/cultura/entretenimiento";
$a->strings["Love/romance"] = "Vida sentimental/amorosa";
$a->strings["Work/employment"] = "Trabajo";
$a->strings["School/education"] = "Educación";
$a->strings["School/education"] = "Estudios";
$a->strings["This is your default profile."] = "Este es su perfil principal.";
$a->strings["Age: "] = "Edad:";
$a->strings["Edit/Manage Profiles"] = "Modificar/gestionar perfiles";
@ -1540,7 +1540,7 @@ $a->strings["Errors encountered creating database tables."] = "Se han encontrado
$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 remota se ha llevado a cabo correctamente.";
$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["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.";
@ -1881,7 +1881,7 @@ $a->strings["Useful to reduce spamming"] = "Útil para reducir el envío de corr
$a->strings["Notification Settings"] = "Configuración de notificaciones";
$a->strings["By default post a status message when:"] = "Por defecto, enviar un mensaje de estado cuando:";
$a->strings["accepting a friend request"] = "acepte una solicitud de amistad";
$a->strings["joining a forum/community"] = "se una a un foro o comunidad";
$a->strings["joining a forum/community"] = "unirse a un foro o comunidad";
$a->strings["making an <em>interesting</em> profile change"] = "realice un cambio <em>interesante</em> en su perfil";
$a->strings["Send a notification email when:"] = "Enviar una notificación por correo electrónico cuando:";
$a->strings["You receive a connection request"] = "Reciba una solicitud de conexión";
@ -2000,7 +2000,7 @@ $a->strings["Last update:"] = "Última actualización:";
$a->strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Encontramos un problema durante el inicio de sesión con la OpenID que proporcionaste. por favor, comprueba la escritura correcta de la ID.";
$a->strings["The error message was:"] = "El mensaje de error fue:";
$a->strings["Authentication failed."] = "Falló la autenticación.";
$a->strings["Remote Authentication"] = "Autenticación Remota";
$a->strings["Remote Authentication"] = "Acceso desde su servidor";
$a->strings["Enter your channel address (e.g. channel@example.com)"] = "Introduzca la dirección del canal (p.e. channel@example.com)";
$a->strings["Authenticate"] = "Identifíquese";
$a->strings["Unable to lookup recipient."] = "No ha sido posible de ";
@ -2023,7 +2023,7 @@ $a->strings["Send Reply"] = "Envía Respuesta";
$a->strings["Invalid request identifier."] = "Petición inválida del identificador.";
$a->strings["Discard"] = "Descarta";
$a->strings["Please login."] = "Por favor, inicia sesión.";
$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "La autenticación remota está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo.";
$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "La autenticación desde su servidor está bloqueada. Ha iniciado sesión localmente. Por favor, salga de la sesión y vuelva a intentarlo.";
$a->strings["Add a Channel"] = "Añade un Canal";
$a->strings["A channel is your own collection of related web pages. A channel can be used to hold social network profiles, blogs, conversation groups and forums, celebrity pages, and much more. You may create as many channels as your service provider allows."] = "Un canal es su propia colección de páginas web relacionadas. Un canal se puede utilizar para almacenar los perfiles sociales de la red, blogs, grupos de conversación y foros, páginas de famosos y mucho más. Puede crear tantos canales como su proveedor de servicio permita.";
$a->strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" "] = "Ejemplos: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\" ";
@ -2047,7 +2047,7 @@ $a->strings["Price of app"] = "Precio de la aplicación";
$a->strings["Location (URL) to purchase app"] = "Ubicación (URL) para conseguir la aplicación";
$a->strings["sent you a private message"] = "envia un mensaje privado";
$a->strings["added your channel"] = "se añadió su canal";
$a->strings["posted an event"] = "Se publicó un evento";
$a->strings["posted an event"] = "publicó un evento";
$a->strings["Comanche page description language help"] = "Página de ayuda de la descripción del lenguaje Comanche";
$a->strings["Layout Description"] = "Descripción del Formato Gráfico";
$a->strings["Download PDL file"] = "Descarga el fichero PDL";
@ -2105,7 +2105,7 @@ $a->strings["Left offset of the aside"] = "Desplazamiento izquierdo del lateral"
$a->strings["Right offset of the aside element"] = "Desplazamiento derecho del elemento lateral";
$a->strings["Light (Red Matrix default)"] = "Ligero (Red Matrix predeterminado)";
$a->strings["Select scheme"] = "Elija un esquema";
$a->strings["Narrow navbar"] = "Limita la barra de navegación";
$a->strings["Narrow navbar"] = "Estrechar la barra de navegación";
$a->strings["Navigation bar background color"] = "Color de fondo de la barra de navegación";
$a->strings["Navigation bar gradient top color"] = "Color superior del gradiente de la barra de navegación";
$a->strings["Navigation bar gradient bottom color"] = "Color inferior del gradiente de la barra de navegación";

View file

@ -135,7 +135,7 @@ function insertCommentURL(comment, id) {
if(reply && reply.length) {
reply = bin2hex(reply);
$('body').css('cursor', 'wait');
$.get('parse_url?binurl=' + reply, function(data) {
$.get('urlinfo?f=&binurl=' + reply, function(data) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == comment) {
tmpStr = "";

3
view/pdl/mod_events.pdl Normal file
View file

@ -0,0 +1,3 @@
[region=aside]
[widget=tasklist][/widget]
[/region]

View file

@ -12,6 +12,7 @@
<input type="hidden" name="event_hash" value="{{$event_hash}}" />
<input type="hidden" name="xchan" value="{{$xchan}}" />
<input type="hidden" name="mid" value="{{$mid}}" />
<input type="hidden" name="type" value="{{$type}}" />
<input type="hidden" name="preview" id="event-edit-preview" value="0" />
<div id="event-summary-text">{{$t_text}}</div>
@ -92,14 +93,6 @@
</div>
</div>
<!-- <div class="btn-group pull-right" id="comment-edit-submit-wrapper-desc">
{{if $preview}}
<button id="comment-edit-submit-desc" class="btn btn-default btn-xs" onclick="preview_comment(desc); return false;" title="{{$preview}}">
<i class="icon-eye-open comment-icon" ></i>
</button>
{{/if}}
-->
</div>
<div class="clear"></div>

View file

@ -191,7 +191,7 @@ function enableOnUser(){
if(reply && reply.length) {
reply = bin2hex(reply);
$('#profile-rotator').spin('tiny');
$.get('{{$baseurl}}/parse_url?binurl=' + reply, function(data) {
$.get('{{$baseurl}}/urlinfo?f=&binurl=' + reply, function(data) {
addeditortext(data);
$('#profile-rotator').spin(false);
});
@ -258,7 +258,7 @@ function enableOnUser(){
if(reply && reply.length) {
reply = bin2hex(reply);
$('#profile-rotator').spin('tiny');
$.get('{{$baseurl}}/parse_url?binurl=' + reply, function(data) {
$.get('{{$baseurl}}/urlinfo?f=&binurl=' + reply, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);

View file

@ -78,7 +78,7 @@ else
reply = prompt("{{$linkurl}}");
if(reply && reply.length) {
$('#prvmail-rotator').spin('tiny');
$.get('parse_url?url=' + reply, function(data) {
$.get('urlinfo?f=&url=' + reply, function(data) {
addmailtext(data);
$('#prvmail-rotator').spin(false);
});
@ -104,7 +104,7 @@ else
event.preventDefault();
if(reply && reply.length) {
$('#prvmail-rotator').spin('tiny');
$.get('parse_url?url=' + reply, function(data) {
$.get('urlinfo?f=&url=' + reply, function(data) {
addmailtext(data);
$('#prvmail-rotator').spin(false);
});