Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Haakon Meland Eriksen 2015-11-10 07:36:51 +01:00
commit b782c46e51
39 changed files with 2226 additions and 1959 deletions

View File

@ -937,26 +937,6 @@ class App {
return $this->groups;
}
function set_widget($title,$html, $location = 'aside') {
$this->widgets[] = array('title' => $title, 'html' => $html, 'location' => $location);
}
function get_widgets($location = '') {
if($location && count($this->widgets)) {
$ret = array();
foreach($this->widgets as $w) {
if ($w['location'] == $location)
$ret[] = $w;
}
$arr = array('location' => $location, 'widgets' => $ret);
call_hooks('get_widgets', $arr);
return $arr['widgets'];
}
$arr = array('location' => $location, 'widgets' => $this->widgets);
call_hooks('get_widgets', $arr);
return $arr['widgets'];
}
function set_pager_total($n) {
$this->pager['total'] = intval($n);
}
@ -2076,17 +2056,6 @@ function construct_page(&$a) {
$a->build_pagehead();
$arr = $a->get_widgets();
ksort($arr, SORT_NUMERIC);
if(count($arr)) {
foreach($arr as $x) {
if(! array_key_exists($x['location'], $a->page))
$a->page[$x['location']] = '';
$a->page[$x['location']] .= $x['html'];
}
}
// Let's say we have a comanche declaration '[region=nav][/region][region=content]$nav $content[/region]'.
// The text 'region=' identifies a section of the layout by that name. So what we want to do here is leave
// $a->page['nav'] empty and put the default content from $a->page['nav'] and $a->page['section']

View File

@ -7,11 +7,11 @@
<li>[u]underlined[/u] - <u>underlined</u><br />
<li>[s]strike[/s] - <strike>strike</strike><br />
<li>[color=red]red[/color] - <span style="color: red;">red</span><br />
<li>[url=https://redmatrix.me]$Projectname[/url] <a href="https://redmatrix.me">$Projectname</a><br />
<li>[img]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg" alt="Image/photo" /><br />
<li>[img float=left]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg" style="float:left;" alt="Image/photo" /><br />
<li>[url=https://zothub.com]$Projectname[/url] <a href="https://zothub.com">$Projectname</a><br />
<li>[img]https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg" alt="Image/photo" /><br />
<li>[img float=left]https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg" style="float:left;" alt="Image/photo" /><br />
<div style="clear:both;"></div>
<li>[img float=right]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg" style="float:right;" alt="Image/photo" /><br />
<li>[img float=right]https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg" style="float:right;" alt="Image/photo" /><br />
<div style="clear:both;"></div>
<li>[code]code[/code] <code>code</code><br />
<li>[quote]quote[/quote] <blockquote>quote</blockquote><br />
@ -50,8 +50,8 @@
<p>$Projectname specific codes</p>
<ul class="listbullet" style="list-style-type: circle;">
<li>[&amp;copy;] &copy; This works for many HTML entities</li>
<li>[zrl]https://redmatrix.me[/zrl] Magic-auth version of [url] tag</li>
<li>[zmg]https://redmatrix.me/some/photo.jpg[/zmg] Magic-auth version of [img] tag<br /></li>
<li>[zrl]https://zothub.com[/zrl] Magic-auth version of [url] tag</li>
<li>[zmg]https://zothub.com/some/photo.jpg[/zmg] Magic-auth version of [img] tag<br /></li>
<li>[observer=1]Text to display if observer is authenticated in the matrix[/observer]</li>
<li>[observer=0]Text to display if observer is <strong>not</strong> authenticated in the matrix[/observer]</li>

View File

@ -1,21 +1,24 @@
Used in Diaspora private mails
[table]
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
[/th][/tr]
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[/td][/tr]
[tr][td]guid[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[tr][td]guid[/td][td]A unique identifier for this conversation[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]recips[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[tr][td]recips[/td][td]sender_handle;recipient_handle[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]uid[/td][td][/td][td]int(11)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[tr][td]uid[/td][td]channel.channel_id of the owner of this data[/td][td]int(11)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]creator[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[tr][td]creator[/td][td]handle of creator[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]created[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
[tr][td]created[/td][td]creation timestamp[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
[/td][/tr]
[tr][td]updated[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
[tr][td]updated[/td][td]edited timestamp[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
[/td][/tr]
[tr][td]subject[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[tr][td]subject[/td][td]subject of initial message (obscured for privacy)[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[/td][/tr]
[/table]

View File

@ -1,13 +1,13 @@
[table]
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
[/th][/tr]
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[/td][/tr]
[tr][td]uid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[tr][td]uid[/td][td]channel.channel_id of the owner of this data[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]gid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[tr][td]gid[/td][td]groups.id of the associated group[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
[tr][td]xchan[/td][td]xchan.xchan_hash of the member assigned to the associated group[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
[/td][/tr]
[/table]

View File

@ -1,17 +1,17 @@
[table]
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
[/th][/tr]
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[/td][/tr]
[tr][td]hash[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
[tr][td]hash[/td][td]unique hash representing this group with the group name appended[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
[/td][/tr]
[tr][td]uid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[tr][td]uid[/td][td]channel.channel_id owning this data[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]visible[/td][td][/td][td]tinyint(1)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
[tr][td]visible[/td][td]1 indicates the member list is not private[/td][td]tinyint(1)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
[/td][/tr]
[tr][td]deleted[/td][td][/td][td]tinyint(1)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
[tr][td]deleted[/td][td]1 indicates the group has been deleted[/td][td]tinyint(1)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
[/td][/tr]
[tr][td]name[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[tr][td]name[/td][td]human readable name of group[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[/td][/tr]
[/table]

View File

@ -1,15 +1,15 @@
[table]
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
[/th][/tr]
[tr][td]id[/td][td][/td][td]int(11)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[tr][td]id[/td][td]sequential ID[/td][td]int(11)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[/td][/tr]
[tr][td]hook[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[tr][td]hook[/td][td]name of hook[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]file[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[tr][td]file[/td][td]relative filename of hook handler[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]function[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[tr][td]function[/td][td]function name of hook handler[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]priority[/td][td][/td][td]int(11) unsigned[/td][td]NO[/td][td][/td][td]0[/td][td]
[tr][td]priority[/td][td]not yet implemented - can be used to sort conflicts in hook handling by calling handlers in priority order[/td][td]int(11) unsigned[/td][td]NO[/td][td][/td][td]0[/td][td]
[/td][/tr]
[/table]

View File

@ -1,15 +1,15 @@
[table]
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
[/th][/tr]
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
[/td][/tr]
[tr][td]iid[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[tr][td]iid[/td][td]item.id of the referenced item[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]uid[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[tr][td]uid[/td][td]channel.channel_id of the owner of this data[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]sid[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[tr][td]sid[/td][td]an additional identifier to attach or link to the referenced item (often used to store a message_id from another system in order to suppress duplicates)[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[/td][/tr]
[tr][td]service[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[tr][td]service[/td][td]the name or description of the service which generated this identifier[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
[/td][/tr]
[/table]

View File

@ -1 +0,0 @@
[h2]app_menu[/h2]

View File

@ -1 +0,0 @@
[h2]avatar_lookup[/h2]

View File

@ -1 +1,5 @@
[h2]cron[/h2]
Called when cron task (include/poller.php) is executed. The hook data is a string representing the current time (UTC).

View File

@ -1 +1,3 @@
[h2]cron_daily[/h2]
Called when cron task (include/poller.php) performs a cron_daily operation. The hook data is a string representing the current time (UTC).

View File

@ -1 +1,3 @@
[h2]cron_weekly[/h2]
Called when cron task (include/poller.php) performs a cron_weekly operation. The hook data is a string representing the current time (UTC).

View File

@ -1 +0,0 @@
[h2]get_widgets[/h2]

View File

@ -1 +1,3 @@
[h2]probe_well_known[/h2]
This hook is under construction and not currently used - see include/probe.php

View File

@ -1 +1,19 @@
[h2]smilie[/h2]
Called when processing translation of emoticons. It is passed an array containing two sub-arrays:
array(
'texts' => array('text1','text2',...),
'icons' => array('icon1','icon2',...)
);
texts is the emoticon text - for example ':-)' for a traditional smile face.
icons is the HTML used as a replacement. For example
'&lt;img class="smiley" src="https://localhost/images/smiley-smile.gif" alt=":-)" /&gt;'
If adding or removing an entry from either array, the corresponding element from the matching array must also
be added or removed. Emoticons less than three characters in length or not recommended as they get triggered
incorrectly quite often. Extended emoticons are indicated by convention using a preceding colon, for example
:walrus_kissing_a_baby

View File

@ -1 +1,16 @@
[h2]tagged[/h2]
This hook is called when a delivery is made which results in the recipient being tagged.
The hook data is an array containing
array(
'channel_id' => int,
'item' => item structure of the delivered item from database,
'body' => the body of the referenced item
);
Note: This hook is called before secondary delivery chains are invoked in the case of tagging a forum. This means that permissions and some item attributes will be those of the item before being re-packaged and before ownership of this item is given to the forum.

View File

@ -1 +1,23 @@
[h2]validate_channelname[/h2]
Called when creating a new channel or changing the channel name in mod/settings.php
Hook data consists of an array
array(
'name' => supplied name
);
If the hook handler determines the name is valid, do nothing. If there is an issue with the name,
set $hook_data['message'] to the message text which should be displayed to the member - and the name will
not be accepted.
Example:
[code]
if(mb_strlen($hook_data['name']) < 3)
$hook_data['message'] = t('Name too short.');
[/code]

View File

@ -40,9 +40,6 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/api_perm_is_allowed]api_perm_is_allowed[/zrl]
Called when perm_is_allowed() is executed from an API call.
[zrl=[baseurl]/help/hook/app_menu]app_menu[/zrl]
Used to register plugins as apps
[zrl=[baseurl]/help/hook/atom_author]atom_author[/zrl]
Called when generating an author or owner element for an Atom ActivityStream feed
@ -61,9 +58,6 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/authenticate]authenticate[/zrl]
Can provide alternate authentication mechanisms
[zrl=[baseurl]/help/hook/avatar_lookup]avatar_lookup[/zrl]
Used for "gravatar" or libravatar profile photo lookup.
[zrl=[baseurl]/help/hook/bb2diaspora]bb2diaspora[/zrl]
called when converting bbcode to markdown
@ -212,9 +206,6 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/get_role_perms]get_role_perms[/zrl]
Called when get_role_perms() is called to obtain permissions for named permission roles
[zrl=[baseurl]/help/hook/get_widgets]get_widgets[/zrl]
No longer used - now widget placement is managed by Comanche
[zrl=[baseurl]/help/hook/global_permissions]global_permissions[/zrl]
Called when the global permissions list is generated

17
hubzilla_er/Makefile Normal file
View File

@ -0,0 +1,17 @@
#makefile for schemaspy
#NOTE: This makefile sucks. It needs to have all run the script, and check that schemaspy and mysqlconn are present.
schemaspy::
wget "http://downloads.sourceforge.net/project/schemaspy/schemaspy/SchemaSpy%205.0.0/schemaSpy_5.0.0.jar?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fschemaspy%2F&ts=1447051240&use_mirror=iweb"
mysqlconn::
wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.17/mysql-connector-java-5.1.17.jar
#TODO: install java and graphviz or check it is there
install: schemaspy mysqlconn
run:
../util/schemaspy

View File

@ -328,7 +328,9 @@
<child column="channel_id" foreignKey="Implied Constraint" implied="true" onDeleteCascade="false" table="mail"/>
<child column="channel_id" foreignKey="Implied Constraint" implied="true" onDeleteCascade="false" table="profext"/>
</column>
<column autoUpdated="false" defaultValue="0" digits="0" id="1" name="channel_account_id" nullable="false" remarks="" size="10" type="INT UNSIGNED"/>
<column autoUpdated="false" defaultValue="0" digits="0" id="1" name="channel_account_id" nullable="false" remarks="" size="10" type="INT UNSIGNED">
<foreignKey table="account" column="account_id"/>
</column>
<column autoUpdated="false" defaultValue="0" digits="0" id="2" name="channel_primary" nullable="false" remarks="" size="0" type="BIT"/>
<column autoUpdated="false" defaultValue="" digits="0" id="3" name="channel_name" nullable="false" remarks="" size="255" type="CHAR"/>
<column autoUpdated="false" defaultValue="" digits="0" id="4" name="channel_address" nullable="false" remarks="" size="255" type="CHAR"/>

View File

@ -362,6 +362,27 @@ class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota {
}
}
/**
* @brief delete directory
*/
public function delete() {
logger('delete file ' . basename($this->red_path), LOGGER_DEBUG);
if ((! $this->auth->owner_id) || (! perm_is_allowed($this->auth->owner_id, $this->auth->observer, 'write_storage'))) {
throw new DAV\Exception\Forbidden('Permission denied.');
}
if ($this->auth->owner_id !== $this->auth->channel_id) {
if (($this->auth->observer !== $this->data['creator']) || intval($this->data['is_dir'])) {
throw new DAV\Exception\Forbidden('Permission denied.');
}
}
attach_delete($this->auth->owner_id, $this->folder_hash);
}
/**
* @brief Checks if a child exists.
*

View File

@ -231,6 +231,7 @@ function populate_acl($defaults = null,$show_jotnets = true) {
$jotnets = '';
if($show_jotnets) {
logger('jot_networks');
call_hooks('jot_networks', $jotnets);
}
@ -243,6 +244,7 @@ function populate_acl($defaults = null,$show_jotnets = true) {
'$allowgid' => json_encode($allow_gid),
'$denycid' => json_encode($deny_cid),
'$denygid' => json_encode($deny_gid),
'$jnetModalTitle' => t('Other networks and post services'),
'$jotnets' => $jotnets,
'$aclModalTitle' => t('Permissions'),
'$aclModalDismiss' => t('Close')

View File

@ -2416,6 +2416,96 @@ logger('Req: ' . var_export($req,true));
api_register_func('api/oauth/request_token', 'api_oauth_request_token', false);
api_register_func('api/oauth/access_token', 'api_oauth_access_token', false);
function api_export_users(&$a,$type) {
if (! is_site_admin()){
header('HTTP/1.0 401 Unauthorized');
die('Only admin accounts may use this endpoint.');
}
$r = q("SELECT * FROM account");
// TODO: paginating!
$ret = array();
foreach($r as $u){
$ret[] = $u;
}
json_return_and_die(array('status' => 'OK',
'users' => $u));
}
api_register_func('api/export/users','api_export_users', true);
function api_export_channel_hashes(&$a, $type) {
if (! is_site_admin()){
header('HTTP/1.0 401 Unauthorized');
die('Only admin accounts may use this endpoint.');
}
if( $_REQUEST['account_id'] == ''){
header('HTTP/1.0 422 Unprocessable Entity');
die('Must supply account_id parameter.');
}
$c = q("select * from channel where channel_account_id = '%d'",
intval($_REQUEST['account_id']));
if(! $c){
header('HTTP/1.0 404 Not Found');
die('No such account_id '. $_REQUEST['account_id']);
}
$ret = array();
foreach ($c as $r){
$ret[] = $r['channel_hash'];
}
json_return_and_die(array('status' => 'OK',
'channel_hashes' => $ret));
}
api_register_func('api/export/channels','api_export_channel_hashes', true);
function api_export_identity(&$a, $type) {
if (! is_site_admin()){
header('HTTP/1.0 401 Unauthorized');
die('Only admin accounts may use this endpoint.');
}
if( $_REQUEST['channel_hash'] == ''){
header('HTTP/1.0 422 Unprocessable Entity');
die('Must supply channel_hash parameter.');
}
require_once('include/identity.php');
$c = q("select channel_id from channel where channel_hash = '%s' LIMIT 1",
dbesc($_REQUEST['channel_hash']));
if(! $c){
header('HTTP/1.0 404 Not Found');
die('No such channel '. $_REQUEST['channel_hash']);
}
json_return_and_die(
identity_basic_export($c[0]['channel_id'],
(($_REQUEST['posts']) ? intval($_REQUEST['posts']) : 0 )));
}
api_register_func('api/export/identity','api_export_identity', true);
/*
Not implemented by now:
statuses/retweets_of_me

View File

@ -1024,8 +1024,8 @@ function builtin_activity_puller($item, &$conv_responses) {
if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
$name = (($item['author']['xchan_name']) ? $item['author']['xchan_name'] : t('Unknown'));
$url = (($item['author']['xchan_url'])
? '<a href="' . chanlink_url($item['author']['xchan_url']) . '">' . $name . '</a>'
$url = (($item['author']['xchan_url'] && $item['author']['xchan_photo_s'])
? '<a href="' . chanlink_url($item['author']['xchan_url']) . '">' . '<img class="response-photo" src="' . zid($item['author']['xchan_photo_s']) . ' alt="' . urlencode($name) . '" /> ' . $name . '</a>'
: '<a href="#" class="disabled">' . $name . '</a>'
);

View File

@ -15,6 +15,19 @@ function find_upstream_directory($dirmode) {
global $DIRECTORY_FALLBACK_SERVERS;
$preferred = get_config('system','directory_server');
// Thwart attempts to use a private directory
if(($preferred) && ($prefered != z_root())) {
$r = q("select * from site where site_url = '%s' limit 1",
dbesc($preferred)
);
if(($r) && ($r[0]['site_flags'] & DIRECTORY_MODE_STADALONE)) {
$preferred = '';
}
}
if (! $preferred) {
/*

View File

@ -903,19 +903,6 @@ function profile_load(&$a, $nickname, $profile = '') {
// }
}
/**
* @brief
*
* @param App &$a
* @param boolean $connect
*/
function profile_create_sidebar(&$a, $connect = true) {
$block = (((get_config('system', 'block_public')) && (! local_channel()) && (! remote_channel())) ? true : false);
$a->set_widget('profile', profile_sidebar($a->profile, $block, $connect));
}
/**
* @brief Formats a profile for display in the sidebar.
*

View File

@ -526,28 +526,6 @@ function allowed_email($email) {
function avatar_img($email) {
$avatar = array();
$a = get_app();
$avatar['size'] = 300;
$avatar['email'] = $email;
$avatar['url'] = '';
$avatar['success'] = false;
call_hooks('avatar_lookup', $avatar);
if (! $avatar['success'])
$avatar['url'] = $a->get_baseurl() . '/' . get_default_profile_photo();
logger('Avatar: ' . $avatar['email'] . ' ' . $avatar['url'], LOGGER_DEBUG);
return $avatar['url'];
}
function parse_xml_string($s,$strict = true) {
if($strict) {
if(! strstr($s,'<?xml'))

View File

@ -872,15 +872,17 @@ function searchbox($s,$id='search-box',$url='/search',$save = false) {
));
}
function valid_email_regex($x){
if(preg_match('/^[_a-zA-Z0-9\-\+]+(\.[_a-zA-Z0-9\-\+]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x))
return true;
return false;
}
function valid_email($x){
if(get_config('system','disable_email_validation'))
return true;
if(preg_match('/^[_a-zA-Z0-9\-\+]+(\.[_a-zA-Z0-9\-\+]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',$x))
return true;
return false;
return valid_email_regex($x);
}
/**

View File

@ -37,7 +37,10 @@ function attach_init(&$a) {
header('Content-disposition: attachment; filename="' . $r['data']['filename'] . '"');
if(intval($r['data']['os_storage'])) {
$fname = dbunescbin($r['data']['data']);
$istream = fopen('store/' . $c[0]['channel_address'] . '/' . $fname,'rb');
if(strpos($fname,'store') !== false)
$istream = fopen($fname,'rb');
else
$istream = fopen('store/' . $c[0]['channel_address'] . '/' . $fname,'rb');
$ostream = fopen('php://output','wb');
if($istream && $ostream) {
pipe_streams($istream,$ostream);

View File

@ -177,16 +177,21 @@ function connedit_post(&$a) {
if(($_REQUEST['pending']) && intval($orig_record[0]['abook_pending'])) {
$new_friend = true;
if(! $abook_my_perms) {
$abook_my_perms = get_channel_default_perms(local_channel());
// @fixme it won't be common, but when you accept a new connection request
// the permissions will now be that of your permissions role and ignore
// any you may have set manually on the form. We'll probably see a bug if somebody
// tries to set the permissions *and* approve the connection in the same
// request. The workaround is to approve the connection, then go back and
// adjust permissions as desired.
$role = get_pconfig(local_channel(),'system','permissions_role');
if($role) {
$x = get_role_perms($role);
if($x['perms_accept'])
$abook_my_perms = $x['perms_accept'];
}
$abook_my_perms = get_channel_default_perms(local_channel());
$role = get_pconfig(local_channel(),'system','permissions_role');
if($role) {
$x = get_role_perms($role);
if($x['perms_accept'])
$abook_my_perms = $x['perms_accept'];
}
}
@ -661,6 +666,10 @@ function connedit_content(&$a) {
if($locs) {
foreach($locs as $l) {
if(!($l['location']))
continue;
if(strpos($locstr,$l['location']) !== false)
continue;
if(strlen($locstr))
$locstr .= ', ';
$locstr .= $l['location'];

31
tests/text_test.php Normal file
View File

@ -0,0 +1,31 @@
<?php
/**
* this file contains tests for text.php
*
* @package test.util
*/
/** required, it is the file under test */
require_once('include/text.php');
/**
* TestCase for the texter
*
* @author ken restivo
* @package test.util
*/
class TextTest extends PHPUnit_Framework_TestCase {
public function testGoodEmail() {
$this->assertTrue(valid_email_regex('ken@spaz.org'));
}
public function testGoodEmail2() {
$this->assertTrue(valid_email_regex('ken@restivo.org'));
}
public function testGoodEmail3() {
$this->assertTrue(valid_email_regex('nobody@hubzilla.com'));
}
public function testBadEmail() {
$this->assertFalse(valid_email_regex('nobody!uses!these!any.more'));
}
}

9
util/schemaspy Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/env php
<?php
@include("../.htconfig.php");
# -port is useless, ignored
exec("java -jar schemaSpy_5.0.0.jar -t mysql -host $db_host -port $db_port -db $db_data -u $db_user -p $db_pass -dp mysql-connector-java-5.1.17.jar -meta zot.xml -o .");

View File

@ -1 +1,2 @@
2015-11-06.1208
2015-11-09.1211

View File

@ -246,3 +246,9 @@ a.wall-item-name-link {
color: #FF0000;
font-size: 1em !important;
}
.response-photo {
height: 18px !important;
width: 18px !important;
}

File diff suppressed because it is too large Load Diff

View File

@ -5,6 +5,173 @@ function string_plural_select_it($n){
return ($n != 1);;
}}
;
$a->strings["photo"] = "la foto";
$a->strings["event"] = "l'evento";
$a->strings["channel"] = "il canale";
$a->strings["status"] = "il messaggio di stato";
$a->strings["comment"] = "il commento";
$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s piace %3\$s di %2\$s";
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s non piace %3\$s di %2\$s";
$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s adesso è connesso con %2\$s";
$a->strings["%1\$s poked %2\$s"] = "%1\$s ha mandato un poke a %2\$s";
$a->strings["poked"] = "ha ricevuto un poke";
$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s è %2\$s";
$a->strings["__ctx:title__ Likes"] = "Mi piace";
$a->strings["__ctx:title__ Dislikes"] = "Non mi piace";
$a->strings["__ctx:title__ Agree"] = "D'accordo";
$a->strings["__ctx:title__ Disagree"] = "Non d'accordo";
$a->strings["__ctx:title__ Abstain"] = "Astenuti";
$a->strings["__ctx:title__ Attending"] = "Partecipano";
$a->strings["__ctx:title__ Not attending"] = "Non partecipano";
$a->strings["__ctx:title__ Might attend"] = "Forse partecipano";
$a->strings["Select"] = "Scegli";
$a->strings["Delete"] = "Elimina";
$a->strings["Private Message"] = "Messaggio privato";
$a->strings["Message signature validated"] = "Messaggio con firma verificata";
$a->strings["Message signature incorrect"] = "Massaggio con firma non corretta";
$a->strings["View %s's profile @ %s"] = "Vedi il profilo di %s @ %s";
$a->strings["Categories:"] = "Categorie:";
$a->strings["Filed under:"] = "Classificato come:";
$a->strings["from %s"] = "da %s";
$a->strings["last edited: %s"] = "ultima modifica: %s";
$a->strings["Expires: %s"] = "Scadenza: %s";
$a->strings["View in context"] = "Vedi nel contesto";
$a->strings["Please wait"] = "Attendere";
$a->strings["remove"] = "rimuovi";
$a->strings["Loading..."] = "Caricamento in corso...";
$a->strings["Delete Selected Items"] = "Elimina gli oggetti selezionati";
$a->strings["View Source"] = "Vedi il sorgente";
$a->strings["Follow Thread"] = "Segui la discussione";
$a->strings["Stop Following"] = "Non seguire più la discussione";
$a->strings["View Status"] = "Bacheca";
$a->strings["View Profile"] = "Profilo";
$a->strings["View Photos"] = "Foto";
$a->strings["Activity/Posts"] = "Attività e Post";
$a->strings["Connect"] = "Aggiungi";
$a->strings["Edit Connection"] = "Modifica il contatto";
$a->strings["Send PM"] = "Messaggio privato";
$a->strings["Poke"] = "Poke";
$a->strings["Unknown"] = "Sconosciuto";
$a->strings["%s likes this."] = "Piace a %s.";
$a->strings["%s doesn't like this."] = "Non piace a %s.";
$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
0 => "",
1 => "Piace a <span %1\$s>%2\$d persone</span>.",
);
$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
0 => "",
1 => "Non piace a <span %1\$s>%2\$d persone</span>.",
);
$a->strings["and"] = "e";
$a->strings[", and %d other people"] = array(
0 => "",
1 => "e altre %d persone",
);
$a->strings["%s like this."] = "Piace a %s.";
$a->strings["%s don't like this."] = "Non piace a %s.";
$a->strings["Visible to <strong>everybody</strong>"] = "Visibile a <strong>tutti</strong>";
$a->strings["Please enter a link URL:"] = "Inserisci l'indirizzo del link:";
$a->strings["Please enter a video link/URL:"] = "Inserisci l'indirizzo del video:";
$a->strings["Please enter an audio link/URL:"] = "Inserisci l'indirizzo dell'audio:";
$a->strings["Tag term:"] = "Tag:";
$a->strings["Save to Folder:"] = "Salva nella cartella:";
$a->strings["Where are you right now?"] = "Dove sei ora?";
$a->strings["Expires YYYY-MM-DD HH:MM"] = "Scade il YYYY-MM-DD HH:MM";
$a->strings["Preview"] = "Anteprima";
$a->strings["Share"] = "Condividi";
$a->strings["Page link name"] = "Nome del link alla pagina";
$a->strings["Post as"] = "Pubblica come ";
$a->strings["Bold"] = "Grassetto";
$a->strings["Italic"] = "Corsivo";
$a->strings["Underline"] = "Sottolineato";
$a->strings["Quote"] = "Citazione";
$a->strings["Code"] = "Codice";
$a->strings["Upload photo"] = "Carica foto";
$a->strings["upload photo"] = "carica foto";
$a->strings["Attach file"] = "Allega file";
$a->strings["attach file"] = "allega file";
$a->strings["Insert web link"] = "Inserisci un indirizzo web";
$a->strings["web link"] = "link web";
$a->strings["Insert video link"] = "Inserisci l'indirizzo del video";
$a->strings["video link"] = "link video";
$a->strings["Insert audio link"] = "Inserisci l'indirizzo dell'audio";
$a->strings["audio link"] = "link audio";
$a->strings["Set your location"] = "La tua località";
$a->strings["set location"] = "la tua località";
$a->strings["Toggle voting"] = "Abilita/disabilita il voto";
$a->strings["Clear browser location"] = "Rimuovi la località data dal browser";
$a->strings["clear location"] = "rimuovi la località";
$a->strings["Title (optional)"] = "Titolo (facoltativo)";
$a->strings["Categories (optional, comma-separated list)"] = "Categorie (facoltative, lista separata da virgole)";
$a->strings["Permission settings"] = "Permessi dei tuoi contatti";
$a->strings["permissions"] = "permessi";
$a->strings["Public post"] = "Post pubblico";
$a->strings["Example: bob@example.com, mary@example.com"] = "Per esempio: mario@esempio.com, simona@esempio.com";
$a->strings["Set expiration date"] = "Data di scadenza";
$a->strings["Set publish date"] = "Data di uscita programmata";
$a->strings["Encrypt text"] = "Cifratura del messaggio";
$a->strings["OK"] = "OK";
$a->strings["Cancel"] = "Annulla";
$a->strings["Discover"] = "Scopri";
$a->strings["Imported public streams"] = "Contenuti pubblici importati";
$a->strings["Commented Order"] = "Ultimi commenti";
$a->strings["Sort by Comment Date"] = "Per data del commento";
$a->strings["Posted Order"] = "Ultimi post";
$a->strings["Sort by Post Date"] = "Per data di creazione";
$a->strings["Personal"] = "Personali";
$a->strings["Posts that mention or involve you"] = "Post che ti riguardano";
$a->strings["New"] = "Novità";
$a->strings["Activity Stream - by date"] = "Elenco attività - per data";
$a->strings["Starred"] = "Preferiti";
$a->strings["Favourite Posts"] = "Post preferiti";
$a->strings["Spam"] = "Spam";
$a->strings["Posts flagged as SPAM"] = "Post marcati come spam";
$a->strings["Channel"] = "Canale";
$a->strings["Status Messages and Posts"] = "Post e messaggi di stato";
$a->strings["About"] = "Informazioni";
$a->strings["Profile Details"] = "Dettagli del profilo";
$a->strings["Photos"] = "Foto";
$a->strings["Photo Albums"] = "Album foto";
$a->strings["Files"] = "Archivio file";
$a->strings["Files and Storage"] = "Archivio file";
$a->strings["Chatrooms"] = "Chat";
$a->strings["Bookmarks"] = "Segnalibri";
$a->strings["Saved Bookmarks"] = "Segnalibri salvati";
$a->strings["Webpages"] = "Pagine web";
$a->strings["Manage Webpages"] = "Gestisci le pagine web";
$a->strings["View all"] = "Vedi tutto";
$a->strings["__ctx:noun__ Like"] = array(
0 => "Mi piace",
1 => "Mi piace",
);
$a->strings["__ctx:noun__ Dislike"] = array(
0 => "Non mi piace",
1 => "Non mi piace",
);
$a->strings["__ctx:noun__ Attending"] = array(
0 => "Partecipa",
1 => "Partecipano",
);
$a->strings["__ctx:noun__ Not Attending"] = array(
0 => "Non partecipa",
1 => "Non partecipano",
);
$a->strings["__ctx:noun__ Undecided"] = array(
0 => "Indeciso",
1 => "Indecisi",
);
$a->strings["__ctx:noun__ Agree"] = array(
0 => "D'accordo",
1 => "D'accordo",
);
$a->strings["__ctx:noun__ Disagree"] = array(
0 => "Non d'accordo",
1 => "Non d'accordo",
);
$a->strings["__ctx:noun__ Abstain"] = array(
0 => "Astenuto",
1 => "Astenuti",
);
$a->strings["No username found in import file."] = "Impossibile trovare il nome utente nel file da importare.";
$a->strings["Unable to create a unique channel address. Import failed."] = "Impossibile creare un indirizzo univoco per il canale. L'import è fallito.";
$a->strings["Import completed."] = "L'importazione è terminata con successo.";
@ -15,8 +182,6 @@ $a->strings["Addressbook"] = "Rubrica";
$a->strings["Calendar"] = "Calendario";
$a->strings["Schedule Inbox"] = "Appuntamenti ricevuti";
$a->strings["Schedule Outbox"] = "Appuntamenti inviati";
$a->strings["Unknown"] = "Sconosciuto";
$a->strings["Files"] = "Archivio file";
$a->strings["Total"] = "Totale";
$a->strings["Shared"] = "Condiviso";
$a->strings["Create"] = "Crea";
@ -26,7 +191,6 @@ $a->strings["Type"] = "Tipo";
$a->strings["Size"] = "Dimensione";
$a->strings["Last Modified"] = "Ultima modifica";
$a->strings["Edit"] = "Modifica";
$a->strings["Delete"] = "Elimina";
$a->strings["You are using %1\$s of your available file storage."] = "Stai usando %1\$s dello spazio disponibile per i tuoi file.";
$a->strings["You are using %1\$s of %2\$s available file storage. (%3\$s&#37;)"] = "Stai usando %1\$s di %2\$s che hai a disposizione per i file. (%3\$s&#37;)";
$a->strings["WARNING:"] = "ATTENZIONE:";
@ -121,7 +285,7 @@ $a->strings["Channel Sources"] = "Sorgenti del canale";
$a->strings["Automatically import channel content from other channels or feeds"] = "Importa automaticamente il contenuto del canale da altri canali o feed";
$a->strings["Even More Encryption"] = "Cifratura addizionale";
$a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Rendi possibile la crifratura aggiuntiva tra mittente e destinatario usando una parola chiave conosciuta a entrambi";
$a->strings["Enable Voting Tools"] = "Abilita gli strumenti per votare";
$a->strings["Enable Voting Tools"] = "Permetti i post con votazione";
$a->strings["Provide a class of post which others can vote on"] = "Rende possibile la creazione di post in cui sarà possibile votare";
$a->strings["Delayed Posting"] = "Pubblicazione ritardata";
$a->strings["Allow posts to be published at a later date"] = "Per scegliere una data e un'ora a cui far uscire i post";
@ -257,7 +421,6 @@ $a->strings["public profile"] = "profilo pubblico";
$a->strings["%1\$s changed %2\$s to &ldquo;%3\$s&rdquo;"] = "%1\$s ha cambiato %2\$s in &ldquo;%3\$s&rdquo;";
$a->strings["Visit %1\$s's %2\$s"] = "Guarda %2\$s di %1\$s ";
$a->strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha aggiornato %2\$s cambiando %3\$s.";
$a->strings["Connect"] = "Aggiungi";
$a->strings["New window"] = "Nuova finestra";
$a->strings["Open the selected location in a different window or browser tab"] = "Apri l'indirizzo selezionato in una nuova scheda o finestra";
$a->strings["User '%s' deleted"] = "Utente '%s' eliminato";
@ -278,7 +441,6 @@ $a->strings["Collection is empty."] = "L'insieme di canali è vuoto.";
$a->strings["Collection: %s"] = "Insieme: %s";
$a->strings["Connection: %s"] = "Contatto: %s";
$a->strings["Connection not found."] = "Contatto non trovato.";
$a->strings["Public Timeline"] = "Diario pubblico";
$a->strings["view full size"] = "guarda nelle dimensioni reali";
$a->strings["\$Projectname Notification"] = "Notifica \$Projectname";
$a->strings["\$projectname"] = "\$projectname";
@ -299,13 +461,11 @@ $a->strings["Image exceeds website size limit of %lu bytes"] = "L'immagine super
$a->strings["Image file is empty."] = "Il file dell'immagine è vuoto.";
$a->strings["Unable to process image"] = "Impossibile elaborare l'immagine";
$a->strings["Photo storage failed."] = "Impossibile salvare la foto.";
$a->strings["Photo Albums"] = "Album foto";
$a->strings["Upload New Photos"] = "Carica nuove foto";
$a->strings["created a new post"] = "Ha creato un nuovo post";
$a->strings["commented on %s's post"] = "ha commentato il post di %s";
$a->strings["New Page"] = "Nuova pagina web";
$a->strings["View"] = "Guarda";
$a->strings["Preview"] = "Anteprima";
$a->strings["Actions"] = "Azioni";
$a->strings["Page Link"] = "Link alla pagina";
$a->strings["Title"] = "Titolo";
@ -376,29 +536,24 @@ $a->strings["Starts:"] = "Inizio:";
$a->strings["Finishes:"] = "Fine:";
$a->strings["Location:"] = "Luogo:";
$a->strings["This event has been added to your calendar."] = "Questo evento è stato aggiunto al tuo calendario";
$a->strings["event"] = "l'evento";
$a->strings["Not specified"] = "Non specificato";
$a->strings["Needs Action"] = "Necessita di un intervento";
$a->strings["Completed"] = "Completato";
$a->strings["In Process"] = "In corso";
$a->strings["Cancelled"] = "Annullato";
$a->strings["Site Admin"] = "Amministrazione sito";
$a->strings["Bookmarks"] = "Segnalibri";
$a->strings["Address Book"] = "Rubrica";
$a->strings["Login"] = "Accedi";
$a->strings["Channel Manager"] = "Gestione canali";
$a->strings["Grid"] = "Rete";
$a->strings["Settings"] = "Impostazioni";
$a->strings["Webpages"] = "Pagine web";
$a->strings["Channel Home"] = "Bacheca del canale";
$a->strings["Profile"] = "Profilo";
$a->strings["Photos"] = "Foto";
$a->strings["Events"] = "Eventi";
$a->strings["Directory"] = "Elenchi pubblici dei canali";
$a->strings["Help"] = "Guida";
$a->strings["Mail"] = "Messaggi";
$a->strings["Mood"] = "Umore";
$a->strings["Poke"] = "Poke";
$a->strings["Chat"] = "Chat";
$a->strings["Search"] = "Cerca";
$a->strings["Probe"] = "Diagnostica";
@ -412,21 +567,6 @@ $a->strings["Profile Photo"] = "Foto del profilo";
$a->strings["Update"] = "Aggiorna";
$a->strings["Install"] = "Installa";
$a->strings["Purchase"] = "Acquista";
$a->strings["Item was not found."] = "Elemento non trovato.";
$a->strings["No source file."] = "Nessun file di origine.";
$a->strings["Cannot locate file to replace"] = "Il file da sostituire non è stato trovato";
$a->strings["Cannot locate file to revise/update"] = "Il file da aggiornare non è stato trovato";
$a->strings["File exceeds size limit of %d"] = "Il file supera la dimensione massima di %d";
$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati.";
$a->strings["File upload failed. Possible system limit or action terminated."] = "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato.";
$a->strings["Stored file could not be verified. Upload failed."] = "Il file non può essere verificato. Caricamento fallito.";
$a->strings["Path not available."] = "Percorso non disponibile.";
$a->strings["Empty pathname"] = "Il percorso del file è vuoto";
$a->strings["duplicate filename or path"] = "il file o il percorso del file è duplicato";
$a->strings["Path not found."] = "Percorso del file non trovato.";
$a->strings["mkdir failed."] = "mkdir fallito.";
$a->strings["database storage failed."] = "scrittura su database fallita.";
$a->strings["Empty path"] = "La posizione è vuota";
$a->strings["Logged out."] = "Uscita effettuata.";
$a->strings["Failed authentication"] = "Autenticazione fallita";
$a->strings["Login failed."] = "Accesso fallito.";
@ -466,8 +606,6 @@ $a->strings["Name:"] = "Nome:";
$a->strings["Photo:"] = "Foto:";
$a->strings["Please visit %s to approve or reject the suggestion."] = "Visita %s per approvare o rifiutare il suggerimento.";
$a->strings["[Hubzilla:Notify]"] = "[Hubzilla]";
$a->strings["Private Message"] = "Messaggio privato";
$a->strings["Select"] = "Scegli";
$a->strings["Save to Folder"] = "Salva nella cartella";
$a->strings["I will attend"] = "Parteciperò";
$a->strings["I will not attend"] = "Non parteciperò";
@ -475,21 +613,10 @@ $a->strings["I might attend"] = "Forse parteciperò";
$a->strings["I agree"] = "Sono d'accordo";
$a->strings["I disagree"] = "Non sono d'accordo";
$a->strings["I abstain"] = "Mi astengo";
$a->strings["View all"] = "Vedi tutto";
$a->strings["__ctx:noun__ Like"] = array(
0 => "Mi piace",
1 => "Mi piace",
);
$a->strings["__ctx:noun__ Dislike"] = array(
0 => "Non mi piace",
1 => "Non mi piace",
);
$a->strings["Add Star"] = "Aggiungi ai preferiti";
$a->strings["Remove Star"] = "Rimuovi dai preferiti";
$a->strings["Toggle Star Status"] = "Attiva/disattiva preferito";
$a->strings["starred"] = "preferito";
$a->strings["Message signature validated"] = "Messaggio con firma verificata";
$a->strings["Message signature incorrect"] = "Massaggio con firma non corretta";
$a->strings["Add Tag"] = "Aggiungi un tag";
$a->strings["I like this (toggle)"] = "Attiva/disattiva Mi piace";
$a->strings["like"] = "mi piace";
@ -507,100 +634,27 @@ $a->strings["via"] = "via";
$a->strings["Wall-to-Wall"] = "Da bacheca a bacheca";
$a->strings["via Wall-To-Wall:"] = "da bacheca a bacheca:";
$a->strings["Delivery Report"] = "Rapporto di trasmissione";
$a->strings["from %s"] = "da %s";
$a->strings["last edited: %s"] = "ultima modifica: %s";
$a->strings["Expires: %s"] = "Scadenza: %s";
$a->strings["Save Bookmarks"] = "Salva segnalibro";
$a->strings["Add to Calendar"] = "Aggiungi al calendario";
$a->strings["Mark all seen"] = "Marca tutto come letto";
$a->strings["__ctx:noun__ Likes"] = "Mi piace";
$a->strings["__ctx:noun__ Dislikes"] = "Non mi piace";
$a->strings["Please wait"] = "Attendere";
$a->strings["This is you"] = "Questo sei tu";
$a->strings["Bold"] = "Grassetto";
$a->strings["Italic"] = "Corsivo";
$a->strings["Underline"] = "Sottolineato";
$a->strings["Quote"] = "Citazione";
$a->strings["Code"] = "Codice";
$a->strings["Image"] = "Immagine";
$a->strings["Insert Link"] = "Collegamento";
$a->strings["Video"] = "Video";
$a->strings["Encrypt text"] = "Cifratura del messaggio";
$a->strings["prev"] = "prec";
$a->strings["first"] = "inizio";
$a->strings["last"] = "fine";
$a->strings["next"] = "succ";
$a->strings["older"] = "più recenti";
$a->strings["newer"] = "più nuovi";
$a->strings["No connections"] = "Nessun contatto";
$a->strings["%d Connection"] = array(
0 => "%d contatto",
1 => "%d contatti",
);
$a->strings["View Connections"] = "Elenco contatti";
$a->strings["Save"] = "Salva";
$a->strings["poke"] = "poke";
$a->strings["poked"] = "ha ricevuto un poke";
$a->strings["ping"] = "ping";
$a->strings["pinged"] = "ha ricevuto un ping";
$a->strings["prod"] = "spintone";
$a->strings["prodded"] = "ha ricevuto uno spintone";
$a->strings["slap"] = "schiaffo";
$a->strings["slapped"] = "ha ricevuto uno schiaffo";
$a->strings["finger"] = "finger";
$a->strings["fingered"] = "ha ricevuto un finger";
$a->strings["rebuff"] = "rifiuto";
$a->strings["rebuffed"] = "ha ricevuto un rifiuto";
$a->strings["happy"] = "felice";
$a->strings["sad"] = "triste";
$a->strings["mellow"] = "calmo";
$a->strings["tired"] = "stanco";
$a->strings["perky"] = "vivace";
$a->strings["angry"] = "arrabbiato";
$a->strings["stupified"] = "stordito";
$a->strings["puzzled"] = "confuso";
$a->strings["interested"] = "attento";
$a->strings["bitter"] = "amaro";
$a->strings["cheerful"] = "allegro";
$a->strings["alive"] = "vivace";
$a->strings["annoyed"] = "seccato";
$a->strings["anxious"] = "ansioso";
$a->strings["cranky"] = "irritabile";
$a->strings["disturbed"] = "turbato";
$a->strings["frustrated"] = "frustrato";
$a->strings["depressed"] = "in depressione";
$a->strings["motivated"] = "motivato";
$a->strings["relaxed"] = "rilassato";
$a->strings["surprised"] = "sorpreso";
$a->strings["May"] = "maggio";
$a->strings["Unknown Attachment"] = "Allegato non riconoscuto";
$a->strings["Attachment"] = "Allegato";
$a->strings["Size Unknown"] = "Dimensioni non note";
$a->strings["remove category"] = "rimuovi la categoria";
$a->strings["remove from file"] = "rimuovi dal file";
$a->strings["Click to open/close"] = "Clicca per aprire/chiudere";
$a->strings["Link to Source"] = "Link al sito d'origine";
$a->strings["default"] = "predefinito";
$a->strings["Page layout"] = "Layout della pagina";
$a->strings["You can create your own with the layouts tool"] = "Con la configurazione del layout puoi crearne uno tuo";
$a->strings["Page content type"] = "Tipo di contenuto della pagina";
$a->strings["Select an alternate language"] = "Seleziona una lingua diversa";
$a->strings["photo"] = "la foto";
$a->strings["status"] = "il messaggio di stato";
$a->strings["comment"] = "il commento";
$a->strings["activity"] = "l'attività";
$a->strings["Design Tools"] = "Strumenti di design";
$a->strings["Blocks"] = "Riquadri";
$a->strings["Menus"] = "Menù";
$a->strings["Layouts"] = "Layout";
$a->strings["Pages"] = "Pagine";
$a->strings["Invalid data packet"] = "Dati ricevuti non validi";
$a->strings["Unable to verify channel signature"] = "Impossibile verificare la firma elettronica del canale";
$a->strings["Unable to verify site signature for %s"] = "Impossibile verificare la firma elettronica del sito %s";
$a->strings["invalid target signature"] = "la firma ricevuta non è valida";
$a->strings["Public Timeline"] = "Diario pubblico";
$a->strings["Image/photo"] = "Immagine";
$a->strings["Encrypted content"] = "Contenuto cifrato";
$a->strings["Install %s element: "] = "Installa l'elemento %s:";
$a->strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Questo post contiene un elemento %s installabile, tuttavia non hai i permessi necessari per l'installazione.";
$a->strings["webpage"] = "pagina web";
$a->strings["layout"] = "layout";
$a->strings["block"] = "riquadro";
$a->strings["block"] = "block";
$a->strings["menu"] = "menu";
$a->strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s ha scritto %2\$s %3\$s";
$a->strings["post"] = "il post";
@ -663,10 +717,6 @@ $a->strings["Edit collection"] = "Modifica l'insieme di canali";
$a->strings["Add new collection"] = "Nuovo insieme";
$a->strings["Channels not in any collection"] = "Canali che non sono in un insieme";
$a->strings["add"] = "aggiungi";
$a->strings["Invalid data packet"] = "Dati ricevuti non validi";
$a->strings["Unable to verify channel signature"] = "Impossibile verificare la firma elettronica del canale";
$a->strings["Unable to verify site signature for %s"] = "Impossibile verificare la firma elettronica del sito %s";
$a->strings["invalid target signature"] = "la firma ricevuta non è valida";
$a->strings["No recipient provided."] = "Devi scegliere un destinatario.";
$a->strings["[no subject]"] = "[nessun titolo]";
$a->strings["Unable to determine sender."] = "Impossibile determinare il mittente.";
@ -728,8 +778,6 @@ $a->strings["Love/Romance:"] = "Amore:";
$a->strings["Work/employment:"] = "Lavoro:";
$a->strings["School/education:"] = "Scuola:";
$a->strings["Like this thing"] = "Mi piace";
$a->strings["Attachments:"] = "Allegati:";
$a->strings["\$Projectname event notification:"] = "Notifica evento \$Projectname:";
$a->strings["Tags"] = "Tag";
$a->strings["Keywords"] = "Parole chiave";
$a->strings["have"] = "ho";
@ -738,134 +786,23 @@ $a->strings["want"] = "voglio";
$a->strings["wants"] = "vuole";
$a->strings["likes"] = "gli piace";
$a->strings["dislikes"] = "non gli piace";
$a->strings["channel"] = "il canale";
$a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s piace %3\$s di %2\$s";
$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s non piace %3\$s di %2\$s";
$a->strings["%1\$s is now connected with %2\$s"] = "%1\$s adesso è connesso con %2\$s";
$a->strings["%1\$s poked %2\$s"] = "%1\$s ha mandato un poke a %2\$s";
$a->strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s è %2\$s";
$a->strings["__ctx:title__ Likes"] = "Mi piace";
$a->strings["__ctx:title__ Dislikes"] = "Non mi piace";
$a->strings["__ctx:title__ Agree"] = "D'accordo";
$a->strings["__ctx:title__ Disagree"] = "Non d'accordo";
$a->strings["__ctx:title__ Abstain"] = "Astenuti";
$a->strings["__ctx:title__ Attending"] = "Partecipano";
$a->strings["__ctx:title__ Not attending"] = "Non partecipano";
$a->strings["__ctx:title__ Might attend"] = "Forse partecipano";
$a->strings["View %s's profile @ %s"] = "Vedi il profilo di %s @ %s";
$a->strings["Categories:"] = "Categorie:";
$a->strings["Filed under:"] = "Classificato come:";
$a->strings["View in context"] = "Vedi nel contesto";
$a->strings["remove"] = "rimuovi";
$a->strings["Loading..."] = "Caricamento in corso...";
$a->strings["Delete Selected Items"] = "Elimina gli oggetti selezionati";
$a->strings["View Source"] = "Vedi il sorgente";
$a->strings["Follow Thread"] = "Segui la discussione";
$a->strings["View Status"] = "Stato attuale";
$a->strings["View Profile"] = "Profilo";
$a->strings["View Photos"] = "Foto";
$a->strings["Activity/Posts"] = "Attività e Post";
$a->strings["Edit Connection"] = "Modifica il contatto";
$a->strings["Send PM"] = "Messaggio privato";
$a->strings["%s likes this."] = "Piace a %s.";
$a->strings["%s doesn't like this."] = "Non piace a %s.";
$a->strings["<span %1\$s>%2\$d people</span> like this."] = array(
0 => "",
1 => "Piace a <span %1\$s>%2\$d persone</span>.",
);
$a->strings["<span %1\$s>%2\$d people</span> don't like this."] = array(
0 => "",
1 => "Non piace a <span %1\$s>%2\$d persone</span>.",
);
$a->strings["and"] = "e";
$a->strings[", and %d other people"] = array(
0 => "",
1 => "e altre %d persone",
);
$a->strings["%s like this."] = "Piace a %s.";
$a->strings["%s don't like this."] = "Non piace a %s.";
$a->strings["Visible to <strong>everybody</strong>"] = "Visibile a <strong>tutti</strong>";
$a->strings["Please enter a link URL:"] = "Inserisci l'indirizzo del link:";
$a->strings["Please enter a video link/URL:"] = "Inserisci l'indirizzo del video:";
$a->strings["Please enter an audio link/URL:"] = "Inserisci l'indirizzo dell'audio:";
$a->strings["Tag term:"] = "Tag:";
$a->strings["Save to Folder:"] = "Salva nella cartella:";
$a->strings["Where are you right now?"] = "Dove sei ora?";
$a->strings["Expires YYYY-MM-DD HH:MM"] = "Scade il YYYY-MM-DD HH:MM";
$a->strings["Share"] = "Condividi";
$a->strings["Page link name"] = "Nome del link alla pagina";
$a->strings["Post as"] = "Pubblica come ";
$a->strings["Upload photo"] = "Carica foto";
$a->strings["upload photo"] = "carica foto";
$a->strings["Attach file"] = "Allega file";
$a->strings["attach file"] = "allega file";
$a->strings["Insert web link"] = "Inserisci un indirizzo web";
$a->strings["web link"] = "link web";
$a->strings["Insert video link"] = "Inserisci l'indirizzo del video";
$a->strings["video link"] = "link video";
$a->strings["Insert audio link"] = "Inserisci l'indirizzo dell'audio";
$a->strings["audio link"] = "link audio";
$a->strings["Set your location"] = "La tua località";
$a->strings["set location"] = "la tua località";
$a->strings["Toggle voting"] = "Abilita/disabilita il voto";
$a->strings["Clear browser location"] = "Rimuovi la località data dal browser";
$a->strings["clear location"] = "rimuovi la località";
$a->strings["Title (optional)"] = "Titolo (facoltativo)";
$a->strings["Categories (optional, comma-separated list)"] = "Categorie (facoltative, lista separata da virgole)";
$a->strings["Permission settings"] = "Permessi dei tuoi contatti";
$a->strings["permissions"] = "permessi";
$a->strings["Public post"] = "Post pubblico";
$a->strings["Example: bob@example.com, mary@example.com"] = "Per esempio: mario@esempio.com, simona@esempio.com";
$a->strings["Set expiration date"] = "Data di scadenza";
$a->strings["Set publish date"] = "Data di uscita programmata";
$a->strings["OK"] = "OK";
$a->strings["Cancel"] = "Annulla";
$a->strings["Discover"] = "Scopri";
$a->strings["Imported public streams"] = "Contenuti pubblici importati";
$a->strings["Commented Order"] = "Ultimi commenti";
$a->strings["Sort by Comment Date"] = "Per data del commento";
$a->strings["Posted Order"] = "Ultimi post";
$a->strings["Sort by Post Date"] = "Per data di creazione";
$a->strings["Personal"] = "Personali";
$a->strings["Posts that mention or involve you"] = "Post che ti riguardano";
$a->strings["New"] = "Novità";
$a->strings["Activity Stream - by date"] = "Elenco attività - per data";
$a->strings["Starred"] = "Preferiti";
$a->strings["Favourite Posts"] = "Post preferiti";
$a->strings["Spam"] = "Spam";
$a->strings["Posts flagged as SPAM"] = "Post marcati come spam";
$a->strings["Channel"] = "Canale";
$a->strings["Status Messages and Posts"] = "Post e messaggi di stato";
$a->strings["About"] = "Informazioni";
$a->strings["Profile Details"] = "Dettagli del profilo";
$a->strings["Files and Storage"] = "Archivio file";
$a->strings["Chatrooms"] = "Chat";
$a->strings["Saved Bookmarks"] = "Segnalibri salvati";
$a->strings["Manage Webpages"] = "Gestisci le pagine web";
$a->strings["__ctx:noun__ Attending"] = array(
0 => "Partecipa",
1 => "Partecipano",
);
$a->strings["__ctx:noun__ Not Attending"] = array(
0 => "Non partecipa",
1 => "Non partecipano",
);
$a->strings["__ctx:noun__ Undecided"] = array(
0 => "Indeciso",
1 => "Indecisi",
);
$a->strings["__ctx:noun__ Agree"] = array(
0 => "D'accordo",
1 => "D'accordo",
);
$a->strings["__ctx:noun__ Disagree"] = array(
0 => "Non d'accordo",
1 => "Non d'accordo",
);
$a->strings["__ctx:noun__ Abstain"] = array(
0 => "Astenuto",
1 => "Astenuti",
);
$a->strings["Item was not found."] = "Elemento non trovato.";
$a->strings["No source file."] = "Nessun file di origine.";
$a->strings["Cannot locate file to replace"] = "Il file da sostituire non è stato trovato";
$a->strings["Cannot locate file to revise/update"] = "Il file da aggiornare non è stato trovato";
$a->strings["File exceeds size limit of %d"] = "Il file supera la dimensione massima di %d";
$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati.";
$a->strings["File upload failed. Possible system limit or action terminated."] = "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato.";
$a->strings["Stored file could not be verified. Upload failed."] = "Il file non può essere verificato. Caricamento fallito.";
$a->strings["Path not available."] = "Percorso non disponibile.";
$a->strings["Empty pathname"] = "Il percorso del file è vuoto";
$a->strings["duplicate filename or path"] = "il file o il percorso del file è duplicato";
$a->strings["Path not found."] = "Percorso del file non trovato.";
$a->strings["mkdir failed."] = "mkdir fallito.";
$a->strings["database storage failed."] = "scrittura su database fallita.";
$a->strings["Empty path"] = "La posizione è vuota";
$a->strings["Attachments:"] = "Allegati:";
$a->strings["\$Projectname event notification:"] = "Notifica evento \$Projectname:";
$a->strings["Apps"] = "App";
$a->strings["System"] = "Sistema";
$a->strings["Create Personal App"] = "Crea app personale";
@ -878,6 +815,7 @@ $a->strings["Add New Connection"] = "Aggiungi un contatto";
$a->strings["Enter the channel address"] = "Scrivi l'indirizzo del canale";
$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Per esempio: mario@pippo.it oppure http://pluto.com/barbara";
$a->strings["Notes"] = "Note";
$a->strings["Save"] = "Salva";
$a->strings["Remove term"] = "Rimuovi termine";
$a->strings["Archives"] = "Archivi";
$a->strings["Me"] = "Me";
@ -904,7 +842,6 @@ $a->strings["Received Messages"] = "Ricevuti";
$a->strings["Sent Messages"] = "Inviati";
$a->strings["No messages."] = "Nessun messaggio.";
$a->strings["Delete conversation"] = "Elimina la conversazione";
$a->strings["D, d M Y - g:i A"] = "D d M Y - G:i";
$a->strings["Chat Rooms"] = "Chat";
$a->strings["Bookmarked Chatrooms"] = "Chat nei segnalibri";
$a->strings["Suggested Chatrooms"] = "Chat suggerite";
@ -931,6 +868,68 @@ $a->strings["Logs"] = "Log";
$a->strings["Admin"] = "Amministrazione";
$a->strings["Plugin Features"] = "Plugin";
$a->strings["User registrations waiting for confirmation"] = "Registrazioni in attesa";
$a->strings["prev"] = "prec";
$a->strings["first"] = "inizio";
$a->strings["last"] = "fine";
$a->strings["next"] = "succ";
$a->strings["older"] = "più recenti";
$a->strings["newer"] = "più nuovi";
$a->strings["No connections"] = "Nessun contatto";
$a->strings["%d Connection"] = array(
0 => "%d contatto",
1 => "%d contatti",
);
$a->strings["View Connections"] = "Elenco contatti";
$a->strings["poke"] = "poke";
$a->strings["ping"] = "ping";
$a->strings["pinged"] = "ha ricevuto un ping";
$a->strings["prod"] = "spintone";
$a->strings["prodded"] = "ha ricevuto uno spintone";
$a->strings["slap"] = "schiaffo";
$a->strings["slapped"] = "ha ricevuto uno schiaffo";
$a->strings["finger"] = "finger";
$a->strings["fingered"] = "ha ricevuto un finger";
$a->strings["rebuff"] = "rifiuto";
$a->strings["rebuffed"] = "ha ricevuto un rifiuto";
$a->strings["happy"] = "felice";
$a->strings["sad"] = "triste";
$a->strings["mellow"] = "calmo";
$a->strings["tired"] = "stanco";
$a->strings["perky"] = "vivace";
$a->strings["angry"] = "arrabbiato";
$a->strings["stupified"] = "stordito";
$a->strings["puzzled"] = "confuso";
$a->strings["interested"] = "attento";
$a->strings["bitter"] = "amaro";
$a->strings["cheerful"] = "allegro";
$a->strings["alive"] = "vivace";
$a->strings["annoyed"] = "seccato";
$a->strings["anxious"] = "ansioso";
$a->strings["cranky"] = "irritabile";
$a->strings["disturbed"] = "turbato";
$a->strings["frustrated"] = "frustrato";
$a->strings["depressed"] = "in depressione";
$a->strings["motivated"] = "motivato";
$a->strings["relaxed"] = "rilassato";
$a->strings["surprised"] = "sorpreso";
$a->strings["May"] = "maggio";
$a->strings["Unknown Attachment"] = "Allegato non riconoscuto";
$a->strings["unknown"] = "sconosciuta";
$a->strings["remove category"] = "rimuovi la categoria";
$a->strings["remove from file"] = "rimuovi dal file";
$a->strings["Click to open/close"] = "Clicca per aprire/chiudere";
$a->strings["Link to Source"] = "Link al sito d'origine";
$a->strings["default"] = "predefinito";
$a->strings["Page layout"] = "Layout della pagina";
$a->strings["You can create your own with the layouts tool"] = "Con la configurazione del layout puoi crearne uno tuo";
$a->strings["Page content type"] = "Tipo di contenuto della pagina";
$a->strings["Select an alternate language"] = "Seleziona una lingua diversa";
$a->strings["activity"] = "l'attività";
$a->strings["Design Tools"] = "Strumenti di design";
$a->strings["Blocks"] = "Block";
$a->strings["Menus"] = "Menù";
$a->strings["Layouts"] = "Layout";
$a->strings["Pages"] = "Pagine";
$a->strings["Logout"] = "Esci";
$a->strings["End this session"] = "Chiudi questa sessione";
$a->strings["Home"] = "Bacheca";
@ -975,7 +974,7 @@ $a->strings["Account/Channel Settings"] = "Impostazioni dell'account e del canal
$a->strings["Site Setup and Configuration"] = "Installazione e configurazione del sito";
$a->strings["@name, #tag, ?doc, content"] = "@nome, #tag, ?guida, contenuto";
$a->strings["Please wait..."] = "Attendere...";
$a->strings["Directory Options"] = "Opzioni per elenchi pubblici";
$a->strings["Directory Options"] = "Visibilità negli elenchi pubblici";
$a->strings["Safe Mode"] = "Modalità SafeSearch";
$a->strings["No"] = "No";
$a->strings["Yes"] = "Si";
@ -1226,27 +1225,6 @@ $a->strings["Website:"] = "Sito web:";
$a->strings["Remote Channel [%s] (not yet known on this site)"] = "Canale remoto [%s] (non ancora conosciuto da questo sito)";
$a->strings["Rating (this information is public)"] = "Valutazione (visibile a tutti)";
$a->strings["Optionally explain your rating (this information is public)"] = "Commento alla valutazione (facoltativo, visibile a tutti)";
$a->strings["Unable to lookup recipient."] = "Impossibile associare un destinatario.";
$a->strings["Unable to communicate with requested channel."] = "Impossibile comunicare con il canale richiesto.";
$a->strings["Cannot verify requested channel."] = "Impossibile verificare il canale richiesto.";
$a->strings["Selected channel has private message restrictions. Send failed."] = "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito.";
$a->strings["Messages"] = "Messaggi";
$a->strings["Message recalled."] = "Messaggio revocato.";
$a->strings["Conversation removed."] = "Conversazione rimossa.";
$a->strings["Requested channel is not in this network"] = "Il canale cercato non è in questa rete";
$a->strings["Send Private Message"] = "Invia un messaggio privato";
$a->strings["To:"] = "A:";
$a->strings["Subject:"] = "Oggetto:";
$a->strings["Your message:"] = "Il tuo messaggio:";
$a->strings["Send"] = "Invia";
$a->strings["Delete message"] = "Elimina il messaggio";
$a->strings["Delivery report"] = "Rapporto di trasmissione";
$a->strings["Recall message"] = "Revoca il messaggio";
$a->strings["Message has been recalled."] = "Il messaggio è stato revocato.";
$a->strings["Delete Conversation"] = "Elimina la conversazione";
$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Non è disponibile alcun modo sicuro di comunicare con questo canale. <strong>Se possibile</strong>, prova a rispondere direttamente dalla pagina del profilo del mittente.";
$a->strings["Send Reply"] = "Invia la risposta";
$a->strings["Your message for %s (%s):"] = "Il tuo messaggio per %s (%s):";
$a->strings["Page owner information could not be retrieved."] = "Impossibile ottenere informazioni sul proprietario della pagina.";
$a->strings["Album not found."] = "Album non trovato.";
$a->strings["Delete Album"] = "Elimina album";
@ -1303,12 +1281,12 @@ $a->strings["mail recalled"] = "messaggio richiamato dal mittente";
$a->strings["duplicate mail received"] = "ricevuto messaggio duplicato";
$a->strings["mail delivered"] = "messaggio recapitato";
$a->strings["Item not found"] = "Elemento non trovato";
$a->strings["Delete block?"] = "Vuoi eliminare questo riquadro?";
$a->strings["Delete block?"] = "Vuoi eliminare questo block?";
$a->strings["Insert YouTube video"] = "Inserisci video da YouTube";
$a->strings["Insert Vorbis [.ogg] video"] = "Inserisci video Vorbis [.ogg]";
$a->strings["Insert Vorbis [.ogg] audio"] = "Inserisci audio Vorbis [.ogg]";
$a->strings["Edit Block"] = "Modifica il riquadro";
$a->strings["This directory server requires an access token"] = "Questo server di elenchi pubblici necessita di un token di autenticazione";
$a->strings["Edit Block"] = "Modifica il block";
$a->strings["This directory server requires an access token"] = "Questo directory server necessita di un token di autenticazione";
$a->strings["Item is not editable"] = "L'elemento non è modificabile";
$a->strings["Delete item?"] = "Eliminare questo elemento?";
$a->strings["Edit post"] = "Modifica post";
@ -1376,11 +1354,13 @@ $a->strings["Check to block public access to all otherwise public personal pages
$a->strings["Verify Email Addresses"] = "Verifica l'indirizzo email";
$a->strings["Check to verify email addresses used in account registration (recommended)."] = "Attiva per richiedere la verifica degli indirizzi email dei nuovi utenti (consigliato).";
$a->strings["Force publish"] = "Forza la publicazione del profilo";
$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Seleziona per mostrare negli elenchi pubblici <strong>tutti</strong> i profili registrati su questo sito.";
$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Seleziona per pubblicare sui directory server <strong>tutti</strong> i profili registrati su questo sito.";
$a->strings["Disable discovery tab"] = "Disabilita la funzione 'scopri'";
$a->strings["Remove the tab in the network view with public content pulled from sources chosen for this site."] = "Nell'area della rete personale non comparirà più la scheda con i contenuti acquisiti da altri siti.";
$a->strings["login on Homepage"] = "Mostra il login sulla homepage";
$a->strings["Present a login box to visitors on the home page if no other content has been configured."] = "Presenta il modulo di login ai visitatori sulla homepage in mancanza di altri contenuti.";
$a->strings["Directory Server URL"] = "URL del directory server";
$a->strings["Default directory server"] = "Directory server predefinito";
$a->strings["Proxy user"] = "Utente proxy";
$a->strings["Proxy URL"] = "URL proxy";
$a->strings["Network timeout"] = "Timeout rete";
@ -1550,6 +1530,7 @@ $a->strings["Layout not found."] = "Layout non trovato.";
$a->strings["Module Name:"] = "Nome del modulo:";
$a->strings["Layout Help"] = "Guida al layout";
$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s sta seguendo %3\$s di %2\$s";
$a->strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s non segue più %3\$s di %2\$s";
$a->strings["No valid account found."] = "Nessun account valido trovato.";
$a->strings["Password reset request issued. Check your email."] = "La richiesta per reimpostare la password è stata inviata. Controlla la tua email.";
$a->strings["Site Member (%s)"] = "Utente del sito (%s)";
@ -1656,8 +1637,8 @@ $a->strings["Please enter your invitation code"] = "Inserisci il codice dell'inv
$a->strings["Your email address"] = "Il tuo indirizzo email";
$a->strings["Choose a password"] = "Scegli una password";
$a->strings["Please re-enter your password"] = "Ripeti la password per verifica";
$a->strings["Block Name"] = "Nome del riquadro";
$a->strings["Block Title"] = "Titolo del riquadro";
$a->strings["Block Name"] = "Nome del block";
$a->strings["Block Title"] = "Titolo del block";
$a->strings["Account removals are not allowed within 48 hours of changing the account password."] = "Non è possibile eliminare il tuo account prima di 48 ore dall'ultimo cambio password.";
$a->strings["Remove This Account"] = "Elimina questo account";
$a->strings["This account and all its channels will be completely removed from the network. "] = "Questo account e tutti i suoi canali saranno completamente eliminati dalla rete.";
@ -1760,12 +1741,33 @@ $a->strings["%d message sent."] = array(
$a->strings["You have no more invitations available"] = "Non hai altri inviti disponibili";
$a->strings["Send invitations"] = "Spedisci inviti";
$a->strings["Enter email addresses, one per line:"] = "Inserisci gli indirizzi email, uno per riga:";
$a->strings["Your message:"] = "Il tuo messaggio:";
$a->strings["Please join my community on \$Projectname."] = "Entra nella mia comunità su \$Projectname.";
$a->strings["You will need to supply this invitation code: "] = "Dovrai fornire questo codice di invito:";
$a->strings["1. Register at any \$Projectname location (they are all inter-connected)"] = "1. Registrati su qualsiasi server \$Projectname (sono tutti interconnessi)";
$a->strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Inserisci il mio indirizzo \$Projectname nel riquadro di ricerca del sito.";
$a->strings["or visit "] = "oppure visita ";
$a->strings["3. Click [Connect]"] = "3. Clicca su [Aggiungi]";
$a->strings["Unable to lookup recipient."] = "Impossibile associare un destinatario.";
$a->strings["Unable to communicate with requested channel."] = "Impossibile comunicare con il canale richiesto.";
$a->strings["Cannot verify requested channel."] = "Impossibile verificare il canale richiesto.";
$a->strings["Selected channel has private message restrictions. Send failed."] = "Il canale ha delle regole restrittive per la ricezione dei messaggi privati. Invio fallito.";
$a->strings["Messages"] = "Messaggi";
$a->strings["Message recalled."] = "Messaggio revocato.";
$a->strings["Conversation removed."] = "Conversazione rimossa.";
$a->strings["Requested channel is not in this network"] = "Il canale cercato non è in questa rete";
$a->strings["Send Private Message"] = "Invia un messaggio privato";
$a->strings["To:"] = "A:";
$a->strings["Subject:"] = "Oggetto:";
$a->strings["Send"] = "Invia";
$a->strings["Delete message"] = "Elimina il messaggio";
$a->strings["Delivery report"] = "Rapporto di trasmissione";
$a->strings["Recall message"] = "Revoca il messaggio";
$a->strings["Message has been recalled."] = "Il messaggio è stato revocato.";
$a->strings["Delete Conversation"] = "Elimina la conversazione";
$a->strings["No secure communications available. You <strong>may</strong> be able to respond from the sender's profile page."] = "Non è disponibile alcun modo sicuro di comunicare con questo canale. <strong>Se possibile</strong>, prova a rispondere direttamente dalla pagina del profilo del mittente.";
$a->strings["Send Reply"] = "Invia la risposta";
$a->strings["Your message for %s (%s):"] = "Il tuo messaggio per %s (%s):";
$a->strings["[Embedded content - reload page to view]"] = "[Contenuto incorporato - ricarica la pagina per visualizzarlo correttamente]";
$a->strings["Source of Item"] = "Sorgente";
$a->strings["Name is required"] = "Il nome è obbligatorio";
@ -1901,9 +1903,11 @@ $a->strings["Change the behaviour of this account for special situations"] = "Ca
$a->strings["Please enable expert mode (in <a href=\"settings/features\">Settings > Additional features</a>) to adjust!"] = "Abilita la modalità esperto per fare cambiamenti! (in <a href=\"settings/features\">Impostazioni > Funzionalità opzionali</a>)";
$a->strings["Miscellaneous Settings"] = "Impostazioni varie";
$a->strings["Default photo upload folder"] = "Cartella predefinita per le foto caricate";
$a->strings["%Y - current year, %m - current month"] = "%Y - anno corrente, %m - mese corrente";
$a->strings["Default file upload folder"] = "Cartella predefinita per i file caricati";
$a->strings["Personal menu to display in your channel pages"] = "Menu personale da mostrare sulle pagine del tuo canale";
$a->strings["Remove this channel."] = "Elimina questo canale.";
$a->strings["Firefox Share \$Projectname provider"] = "Funzionalità Firefox Share per \$Projectname";
$a->strings["Xchan Lookup"] = "Ricerca canale";
$a->strings["Lookup xchan beginning with (or webbie): "] = "Cerca un canale (o un webbie) che inizia per:";
$a->strings["You have created %1$.0f of %2$.0f allowed channels."] = "Hai creato %1$.0f dei %2$.0f canali permessi.";
@ -1969,12 +1973,19 @@ $a->strings["Visit %s's profile [%s]"] = "Visita il profilo di %s [%s]";
$a->strings["Location not found."] = "Indirizzo non trovato.";
$a->strings["Location lookup failed."] = "La ricerca dell'indirizzo è fallita.";
$a->strings["Please select another location to become primary before removing the primary location."] = "Prima di rimuovere il tuo canale primario assicurati di avere scelto una sua copia (clone) come primaria.";
$a->strings["Syncing locations"] = "Sincronizzazione tra hub";
$a->strings["No locations found."] = "Nessun indirizzo trovato.";
$a->strings["Manage Channel Locations"] = "Modifica gli indirizzi del canale";
$a->strings["Location (address)"] = "Indirizzo";
$a->strings["Primary Location"] = "Indirizzo primario";
$a->strings["Drop location"] = "Elimina un indirizzo";
$a->strings["Sync now"] = "Sincronizza ora";
$a->strings["Please wait several minutes between consecutive operations."] = "Si raccomanda di attendere alcuni minuti prima di effettuare una nuova sincronizzazione.";
$a->strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Quando possibile, riduci il numero di cloni del tuo canale effettuando il login sui loro hub e rimuovendoli.";
$a->strings["Use this form to drop the location if the hub is no longer operating."] = "Usa questo modulo per abbandonare un canale su un hub che non è più funzionante.";
$a->strings["Remote authentication blocked. You are logged into this site locally. Please logout and retry."] = "L'autenticazione tramite il tuo hub non è disponibile. Puoi provare a disconnetterti per tentare di nuovo.";
$a->strings["Share content from Firefox to \$Projectname"] = "Condividi i contenuti su \$Projectname da Firefox";
$a->strings["Activate the Firefox \$Projectname provider"] = "Attiva Firefox Share per \$Projectname";
$a->strings["\$Projectname Server - Setup"] = "Server \$Projectname - Installazione";
$a->strings["Could not connect to database."] = " Impossibile connettersi al database.";
$a->strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Non è possibile raggiungere l'indirizzo del sito specificato. Potrebbe essere un problema di SSL o DNS.";
@ -2109,7 +2120,7 @@ $a->strings["Homepage URL:"] = "Indirizzo home page:";
$a->strings["Religious Views:"] = "Orientamento religioso:";
$a->strings["Keywords:"] = "Parole chiave, tag:";
$a->strings["Example: fishing photography software"] = "Per esempio: pesca fotografia programmazione";
$a->strings["Used in directory listings"] = "Visibile sugli elenchi pubblici di canali";
$a->strings["Used in directory listings"] = "Visibile negli elenchi pubblici di canali";
$a->strings["Tell us about yourself..."] = "Raccontaci di te...";
$a->strings["Hobbies/Interests"] = "Hobby/interessi";
$a->strings["Contact information and Social Networks"] = "Contatti personali e i tuoi social network";

View File

@ -1382,6 +1382,10 @@ a.rconnect:hover, a.rateme:hover, div.rateme:hover {
border-radius: $radiuspx;
}
#jotnets-wrapper, #jotnets-collapse {
margin-bottom: 18px;
}
.acl-list-item {
width: 48%; /* fallback if browser does not support calc() */
width: calc(50% - 10px);
@ -2311,3 +2315,7 @@ nav .badge.mail-update:hover {
.help-searchlist a {
font-size: 130%;
}
.response-list ul {
list-style-type: none;
}

View File

@ -6,22 +6,32 @@
<h4 class="modal-title">{{$aclModalTitle}}</h4>
</div>
<div class="modal-body">
{{if $jotnets}}
<div class="jotnets-wrapper" role="tab" id="jotnets-wrapper">
<a data-toggle="collapse" class="btn btn-block btn-default" href="#jotnets-collapse" aria-expanded="false" aria-controls="jotnets-collapse">{{$jnetModalTitle}} <span class="caret"></span></a>
</div>
<div id="jotnets-collapse" class="panel-collapse collapse" role="tabpanel" aria-labelledby="acl-select">
{{$jotnets}}
<div class="clear"></div>
</div>
{{/if}}
<div id="acl-wrapper">
<button id="acl-showall" class="btn btn-block btn-default"><i class="icon-globe"></i> {{$showall}}</button>
<input type="text" id="acl-search" placeholder="&#xf002;">
<div id="acl-list">
<div id="acl-list-content"></div>
</div>
<span id="acl-fields"></span>
</div>
<div class="acl-list-item" rel="acl-template" style="display:none">
<img data-src="{0}"><p>{1}</p>
<button class="acl-button-hide btn btn-xs btn-default"><i class="icon-remove"></i> {{$hide}}</button>
<button class="acl-button-show btn btn-xs btn-default"><i class="icon-ok"></i> {{$show}}</button>
</div>
{{if $jotnets}}
{{$jotnets}}
{{/if}}
</div>
<div class="modal-footer clear">
<button type="button" class="btn btn-default" data-dismiss="modal">{{$aclModalDismiss}}</button>

View File

@ -177,7 +177,7 @@
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">{{$response.title}}</h4>
</div>
<div class="modal-body">
<div class="modal-body response-list">
<ul>{{foreach $response.list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
</div>
<div class="modal-footer clear">