Merge remote-tracking branch 'main/master'

This commit is contained in:
Thomas 2012-03-19 21:53:13 +00:00
commit 4f927392f8
207 changed files with 11133 additions and 1628 deletions

3
.gitignore vendored
View file

@ -13,6 +13,9 @@ addon
#ignore documentation, it should be newly built
doc/api
#ignore reports, should be generted with every build
report/
#ignore config files from eclipse, we don't want IDE files in our repository
.project
.buildpath

View file

@ -1,10 +1,13 @@
#Options -Indexes
Options -Indexes
AddType application/x-java-archive .jar
AddType audio/ogg .oga
<FilesMatch "\.(out|log)$">
Deny from all
</FilesMatch>
<Files "(include|library)">
Deny from all
</Files>
<IfModule mod_rewrite.c>
RewriteEngine on

View file

@ -9,9 +9,9 @@ require_once('include/nav.php');
require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1275' );
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
define ( 'DB_UPDATE_VERSION', 1131 );
define ( 'FRIENDICA_VERSION', '2.3.1285' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1132 );
define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@ -286,7 +286,12 @@ class App {
startup();
$this->scheme = ((isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'])) ? 'https' : 'http' );
$this->scheme = 'http';
if(x($_SERVER,'HTTPS') && $_SERVER['HTTPS'])
$this->scheme = 'https';
elseif(x($_SERVER,'SERVER_PORT') && (intval($_SERVER['SERVER_PORT']) == 443))
$this->scheme = 'https';
if(x($_SERVER,'SERVER_NAME')) {
$this->hostname = $_SERVER['SERVER_NAME'];
@ -379,11 +384,22 @@ class App {
$scheme = $this->scheme;
if(x($this->config,'ssl_policy')) {
if(($ssl) || ($this->config['ssl_policy'] == SSL_POLICY_FULL))
$scheme = 'https';
if(($this->config['ssl_policy'] == SSL_POLICY_SELFSIGN) && (local_user() || x($_POST,'auth-params')))
if((x($this->config,'system')) && (x($this->config['system'],'ssl_policy'))) {
if(intval($this->config['system']['ssl_policy']) === intval(SSL_POLICY_FULL))
$scheme = 'https';
// We need to populate the $ssl flag across the entire program before turning this on.
// Basically, we'll have $ssl = true on any links which can only be seen by a logged in user
// (and also the login link). Anything seen by an outsider will have it turned off.
// At present, setting SSL_POLICY_SELFSIGN will only force remote contacts to update their
// contact links to this site with "http:" if they are currently using "https:"
// if($this->config['system']['ssl_policy'] == SSL_POLICY_SELFSIGN) {
// if($ssl)
// $scheme = 'https';
// else
// $scheme = 'http';
// }
}
$this->baseurl = $scheme . "://" . $this->hostname . ((isset($this->path) && strlen($this->path)) ? '/' . $this->path : '' );
@ -685,6 +701,7 @@ function get_guid($size=16) {
if(! function_exists('login')) {
function login($register = false, $hiddens=false) {
$a = get_app();
$o = "";
$reg = false;
if ($register) {
@ -696,31 +713,35 @@ function login($register = false, $hiddens=false) {
$noid = get_config('system','no_openid');
$dest_url = $a->get_baseurl(true) . '/' . $a->query_string;
if(local_user()) {
$tpl = get_markup_template("logout.tpl");
}
else {
$tpl = get_markup_template("login.tpl");
$_SESSION['return_url'] = $a->query_string;
}
$o .= replace_macros($tpl,array(
'$logout' => t('Logout'),
'$login' => t('Login'),
'$dest_url' => $dest_url,
'$logout' => t('Logout'),
'$login' => t('Login'),
'$lname' => array('username', t('Nickname or Email address: ') , '', ''),
'$lpassword' => array('password', t('Password: '), '', ''),
'$openid' => !$noid,
'$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''),
'$lopenid' => array('openid_url', t('Or login using OpenID: '),'',''),
'$hiddens' => $hiddens,
'$hiddens' => $hiddens,
'$register' => $reg,
'$register' => $reg,
'$lostpass' => t('Forgot your password?'),
'$lostlink' => t('Password Reset'),
'$lostpass' => t('Forgot your password?'),
'$lostlink' => t('Password Reset'),
));
call_hooks('login_hook',$o);
@ -1209,7 +1230,7 @@ function current_theme(){
$a = get_app();
$system_theme = ((isset($a->config['system']['theme'])) ? $a->config['system']['theme'] : '');
$theme_name = ((is_array($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
$theme_name = ((isset($_SESSION) && x($_SESSION,'theme')) ? $_SESSION['theme'] : $system_theme);
if($theme_name && file_exists('view/theme/' . $theme_name . '/style.css'))
return($theme_name);
@ -1335,7 +1356,7 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
array(
'label' => t('Profile'),
'url' => $url.'/?tab=profile',
'sel' => (($tab=='profile')?'active':''),
'sel' => ((isset($tab) && $tab=='profile')?'active':''),
),
array(
'label' => t('Photos'),

View file

@ -1,14 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="friendica" default="test">
<!-- ====================================================== -->
<!-- Target: clean-test -->
<!-- deletes directories with old test reports -->
<!-- ====================================================== -->
<target name="clean-test">
<delete dir="report" />
</target>
<!-- ====================================================== -->
<!-- Target: prepare-test -->
<!-- creates directories for test reports -->
<!-- ====================================================== -->
<target name="prepare-test" depends="clean-test">
<mkdir dir="report" />
</target>
<!-- =================================== -->
<!-- Target: test -->
<!-- this target runs all test files -->
<!-- =================================== -->
<target name="test">
<!-- there are no tests by now, so, nothing to do -->
<target name="test" depends="prepare-test">
<!-- coverage-setup database="./report/coverage-database">
<fileset dir=".">
<include name="**/*.php" />
<exclude name="*test.php"/>
<exclude name="index.php"/>
<exclude name="library/**"/>
<exclude name="doc/**"/>
<exclude name=".."/>
</fileset>
</coverage-setup -->
<phpunit printsummary="true">
<batchtest>
<fileset dir="tests">
<include name="*test.php" />
</fileset>
</batchtest>
<formatter type="xml" todir="report" outfile="testlog.xml" />
</phpunit>
<phpunitreport infile="report/testlog.xml" todir="report" />
<!-- coverage-report outfile="report/coverage-database">
<report todir="report" styledir="/home/phing/etc" />
</coverage-report -->
</target>
<!-- ===================================================== -->
@ -31,6 +66,9 @@
<docblox title="Friendica API" destdir="./doc/api">
<fileset dir=".">
<include name="**/*.php" />
<include name="README"/>
<include name="INSTALL.txt"/>
<include name="LICENSE"/>
</fileset>
</docblox>
</target>

View file

@ -92,6 +92,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
`blocked` tinyint(1) NOT NULL DEFAULT '1',
`readonly` tinyint(1) NOT NULL DEFAULT '0',
`writable` tinyint(1) NOT NULL DEFAULT '0',
`forum` tinyint(1) NOT NULL DEFAULT '0',
`hidden` tinyint(1) NOT NULL DEFAULT '0',
`pending` tinyint(1) NOT NULL DEFAULT '1',
`rating` tinyint(1) NOT NULL DEFAULT '0',
@ -116,6 +117,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
KEY `dfrn-id` (`dfrn-id`),
KEY `blocked` (`blocked`),
KEY `readonly` (`readonly`),
KEY `forum` (`forum`),
KEY `hidden` (`hidden`),
KEY `pending` (`pending`),
KEY `closeness` (`closeness`)
@ -636,6 +638,7 @@ CREATE TABLE IF NOT EXISTS `mailacct` (
`mailbox` CHAR( 255 ) NOT NULL,
`user` CHAR( 255 ) NOT NULL ,
`pass` TEXT NOT NULL ,
`reply_to` CHAR( 255 ) NOT NULL ,
`action` INT NOT NULL ,
`movetofolder` CHAR(255) NOT NULL ,
`pubmail` TINYINT(1) NOT NULL DEFAULT '0',

View file

@ -69,7 +69,7 @@ $a->config['system']['rino_encrypt'] = true;
// allowed themes (change this from admin panel after installation)
$a->config['system']['allowed_themes'] = 'dispy,quattro,testbubble,vier,darkbubble,darkzero,duepuntozero,greenzero,purplezero,quattro-green,slackr,diabook';
$a->config['system']['allowed_themes'] = 'dispy,quattro,testbubble,vier,darkbubble,darkzero,duepuntozero,greenzero,purplezero,quattro-green,slackr,diabook,diabook-blue';
// default system theme
@ -79,3 +79,9 @@ $a->config['system']['theme'] = 'duepuntozero';
// By default allow pseudonyms
$a->config['system']['no_regfullname'] = true;
// If set to true the priority settings of ostatus contacts are used
$a->config['system']['ostatus_use_priority'] = false;
// If enabled all items are cached in the given directory
$a->config['system']['itemcache'] = "";

View file

@ -113,11 +113,13 @@ function contact_selector($selname, $selclass, $preselected = false, $options) {
$str_nets = implode(',',$x['networks']);
$sql_extra .= " AND `network` IN ( $str_nets ) ";
}
$tabindex = (x($options, 'tabindex') ? "tabindex=\"" . $options["tabindex"] . "\"" : "");
if($x['single'])
$o .= "<select name=\"$selname\" id=\"$selclass\" class=\"$selclass\" size=\"" . $x['size'] . "\" >\r\n";
$o .= "<select name=\"$selname\" id=\"$selclass\" class=\"$selclass\" size=\"" . $x['size'] . "\" $tabindex >\r\n";
else
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"" . $x['size'] . "$\" >\r\n";
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"" . $x['size'] . "$\" $tabindex >\r\n";
$r = q("SELECT `id`, `name`, `url`, `network` FROM `contact`
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != ''
@ -156,7 +158,7 @@ function contact_selector($selname, $selclass, $preselected = false, $options) {
function contact_select($selname, $selclass, $preselected = false, $size = 4, $privmail = false, $celeb = false, $privatenet = false) {
function contact_select($selname, $selclass, $preselected = false, $size = 4, $privmail = false, $celeb = false, $privatenet = false, $tabindex = null) {
$a = get_app();
@ -178,12 +180,12 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
$sql_extra .= " AND `network` IN ( 'dfrn', 'mail', 'face', 'dspr' ) ";
}
$tabindex = ($tabindex > 0 ? "tabindex=\"$tabindex\"" : "");
if($privmail)
$o .= "<select name=\"$selname\" id=\"$selclass\" class=\"$selclass\" size=\"$size\" >\r\n";
$o .= "<select name=\"$selname\" id=\"$selclass\" class=\"$selclass\" size=\"$size\" $tabindex >\r\n";
else
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" >\r\n";
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" $tabindex >\r\n";
$r = q("SELECT `id`, `name`, `url`, `network` FROM `contact`
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != ''

View file

@ -216,6 +216,9 @@ function bbcode($Text,$preserve_nl = false) {
$Text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '<img src="$1" alt="' . t('Image/photo') . '" />', $Text);
$Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '<video src="$1" controls="controls" width="425" height="350"><a href="$1">$1</a></video>', $Text);
$Text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", '<audio src="$1" controls="controls"><a href="$1">$1</a></audio>', $Text);
// Try to Oembed
$Text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", 'tryoembed', $Text);
@ -224,9 +227,6 @@ function bbcode($Text,$preserve_nl = false) {
// html5 video and audio
$Text = preg_replace("/\[video\](.*?)\[\/video\]/ism", '<video src="$1" controls="controls" width="425" height="350"><a href="$1">$1</a></video>', $Text);
$Text = preg_replace("/\[audio\](.*?)\[\/audio\]/ism", '<audio src="$1" controls="controls"><a href="$1">$1</a></audio>', $Text);
$Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<iframe src="$1" width="425" height="350"><a href="$1">$1</a></iframe>', $Text);

View file

@ -75,4 +75,33 @@ function networks_widget($baseurl,$selected = '') {
));
}
function fileas_widget($baseurl,$selected = '') {
$a = get_app();
if(! local_user())
return '';
$saved = get_pconfig(local_user(),'system','filetags');
if(! strlen($saved))
return;
$matches = false;
$terms = array();
$cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
$unescaped = file_tag_decode($mtch[1]);
$terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : ''));
}
}
return replace_macros(get_markup_template('fileas_widget.tpl'),array(
'$title' => t('File Selections'),
'$desc' => '',
'$sel_all' => (($selected == '') ? 'selected' : ''),
'$all' => t('Everything'),
'$terms' => $terms,
'$base' => $baseurl,
));
}

View file

@ -179,11 +179,15 @@ function localize_item(&$item){
* that are based on unique features of the calling module.
*
*/
if(!function_exists('conversation')){
if(!function_exists('conversation')) {
function conversation(&$a, $items, $mode, $update, $preview = false) {
require_once('bbcode.php');
$ssl_state = ((local_user()) ? true : false);
$profile_owner = 0;
$page_writeable = false;
@ -343,7 +347,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'like' => '',
'dislike' => '',
'comment' => '',
'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl() . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))),
'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl($ssl_state) . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))),
'previewing' => $previewing,
'wait' => t('Please wait'),
);
@ -373,7 +377,8 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$comments[$item['parent']] = 1;
else
$comments[$item['parent']] += 1;
}
} elseif(! x($comments,$item['parent']))
$comments[$item['parent']] = 0; // avoid notices later on
}
// map all the like/dislike activities for each parent item
@ -418,26 +423,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$toplevelprivate = (($toplevelpost && $item['private']) ? true : false);
$item_writeable = (($item['writable'] || $item['self']) ? true : false);
// DISABLED
/*
if($blowhard == $item['cid'] && (! $item['self']) && ($mode != 'profile') && ($mode != 'notes')) {
$blowhard_count ++;
if($blowhard_count == 3) {
$o .= '<div class="icollapse-wrapper fakelink" id="icollapse-wrapper-' . $item['parent']
. '" onclick="openClose(' . '\'icollapse-' . $item['parent'] . '\'); $(\'#icollapse-wrapper-' . $item['parent'] . '\').hide();" >'
. t('See more posts like this') . '</div>' . '<div class="icollapse" id="icollapse-'
. $item['parent'] . '" style="display: none;" >';
}
}
else {
$blowhard = $item['cid'];
if($blowhard_count >= 3)
$o .= '</div>';
$blowhard_count = 0;
}
// END DISABLED
*/
$comments_seen = 0;
$comments_collapsed = false;
$comment_lastcollapsed = false;
@ -445,13 +430,16 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$threadsid++;
$threads[$threadsid]['id'] = $item['item_id'];
$threads[$threadsid]['private'] = $item['private'];
$threads[$threadsid]['items'] = array();
}
else {
// prevent private email from leaking into public conversation
if((! $toplevelpost) && (! $toplevelprivate) && ($item['private']) && ($profile_owner != local_user()))
// prevent private email reply to public conversation from leaking.
if($item['private'] && ! $threads[$threadsid]['private'])
continue;
$comments_seen ++;
$comment_lastcollapsed = false;
$comment_firstcollapsed = false;
@ -475,7 +463,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$comment_lastcollapsed = true;
}
$redirect_url = $a->get_baseurl() . '/redir/' . $item['cid'] ;
$redirect_url = $a->get_baseurl($ssl_state) . '/redir/' . $item['cid'] ;
$lock = ((($item['private']) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid'])
|| strlen($item['deny_cid']) || strlen($item['deny_gid']))))
@ -502,7 +490,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$template = $wallwall;
$commentww = 'ww';
}
if((! $item['wall']) && (strlen($item['owner-link'])) && ($item['owner-link'] != $item['author-link'])) {
if((! $item['wall']) && (strlen($item['owner-link'])) && (! link_compare($item['owner-link'],$item['author-link']))) {
// Could be anybody.
@ -557,7 +545,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
}
$edpost = (((($profile_owner == local_user()) && ($toplevelpost) && (intval($item['wall']) == 1)) || ($mode === 'notes'))
? array($a->get_baseurl()."/editpost/".$item['id'], t("Edit"))
? array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit"))
: False);
@ -574,24 +562,28 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
);
$star = false;
$filer = false;
$isstarred = "unstarred";
if ($profile_owner == local_user() && $toplevelpost) {
$isstarred = (($item['starred']) ? "starred" : "unstarred");
if ($profile_owner == local_user()) {
if($toplevelpost) {
$isstarred = (($item['starred']) ? "starred" : "unstarred");
$star = array(
'do' => t("add star"),
'undo' => t("remove star"),
'toggle' => t("toggle star status"),
'classdo' => (($item['starred']) ? "hidden" : ""),
'classundo' => (($item['starred']) ? "" : "hidden"),
'starred' => t('starred'),
'tagger' => t("add tag"),
'classtagger' => "",
);
$star = array(
'do' => t("add star"),
'undo' => t("remove star"),
'toggle' => t("toggle star status"),
'classdo' => (($item['starred']) ? "hidden" : ""),
'classundo' => (($item['starred']) ? "" : "hidden"),
'starred' => t('starred'),
'tagger' => t("add tag"),
'classtagger' => "",
);
}
$filer = t("file as");
}
$photo = $item['photo'];
$thumb = $item['thumb'];
@ -657,7 +649,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
// template to use to render item (wall, walltowall, search)
'template' => $template,
'type' => implode("",array_slice(split("/",$item['verb']),-1)),
'type' => implode("",array_slice(explode("/",$item['verb']),-1)),
'tags' => $tags,
'body' => template_escape($body),
'text' => strip_tags(template_escape($body)),
@ -685,6 +677,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
'edpost' => $edpost,
'isstarred' => $isstarred,
'star' => $star,
'filer' => $filer,
'drop' => $drop,
'vote' => $likebuttons,
'like' => $like,
@ -706,7 +699,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
$page_template = get_markup_template("conversation.tpl");
$o .= replace_macros($page_template, array(
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl($ssl_state),
'$mode' => $mode,
'$user' => $a->user,
'$threads' => $threads,
@ -716,7 +709,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
return $o;
}}
function best_link_url($item,&$sparkle) {
function best_link_url($item,&$sparkle,$ssl_state = false) {
$a = get_app();
@ -728,7 +721,7 @@ function best_link_url($item,&$sparkle) {
if((local_user()) && (local_user() == $item['uid'])) {
if(isset($a->contacts) && x($a->contacts,$clean_url)) {
if($a->contacts[$clean_url]['network'] === NETWORK_DFRN) {
$best_url = $a->get_baseurl() . '/redir/' . $a->contacts[$clean_url]['id'];
$best_url = $a->get_baseurl($ssl_state) . '/redir/' . $a->contacts[$clean_url]['id'];
$sparkle = true;
}
else
@ -749,10 +742,14 @@ function best_link_url($item,&$sparkle) {
if(! function_exists('item_photo_menu')){
function item_photo_menu($item){
$a = get_app();
if (local_user() && (! count($a->contacts)))
load_contact_links(local_user());
$ssl_state = false;
if(local_user()) {
$ssl_state = true;
if(! count($a->contacts))
load_contact_links(local_user());
}
$contact_url="";
$pm_url="";
$status_link="";
@ -760,7 +757,7 @@ function item_photo_menu($item){
$posts_link="";
$sparkle = false;
$profile_link = best_link_url($item,$sparkle);
$profile_link = best_link_url($item,$sparkle,$ssl_state);
if($profile_link === 'mailbox')
$profile_link = '';
@ -769,7 +766,7 @@ function item_photo_menu($item){
$status_link = $profile_link . "?url=status";
$photos_link = $profile_link . "?url=photos";
$profile_link = $profile_link . "?url=profile";
$pm_url = $a->get_baseurl() . '/message/new/' . $cid;
$pm_url = $a->get_baseurl($ssl_state) . '/message/new/' . $cid;
}
else {
if(local_user() && local_user() == $item['uid'] && link_compare($item['url'],$item['author-link'])) {
@ -780,8 +777,19 @@ function item_photo_menu($item){
}
}
if(($cid) && (! $item['self'])) {
$contact_url = $a->get_baseurl() . '/contacts/' . $cid;
$posts_link = $a->get_baseurl() . '/network/?cid=' . $cid;
$contact_url = $a->get_baseurl($ssl_state) . '/contacts/' . $cid;
$posts_link = $a->get_baseurl($ssl_state) . '/network/?cid=' . $cid;
$clean_url = normalise_link($item['author-link']);
if((local_user()) && (local_user() == $item['uid'])) {
if(isset($a->contacts) && x($a->contacts,$clean_url)) {
if($a->contacts[$clean_url]['network'] === NETWORK_DIASPORA) {
$pm_url = $a->get_baseurl($ssl_state) . '/message/new/' . $cid;
}
}
}
}
$menu = Array(
@ -817,7 +825,7 @@ function like_puller($a,$item,&$arr,$mode) {
if((activity_match($item['verb'],$verb)) && ($item['id'] != $item['parent'])) {
$url = $item['author-link'];
if((local_user()) && (local_user() == $item['uid']) && ($item['network'] === 'dfrn') && (! $item['self']) && (link_compare($item['author-link'],$item['url']))) {
$url = $a->get_baseurl() . '/redir/' . $item['contact-id'];
$url = $a->get_baseurl(true) . '/redir/' . $item['contact-id'];
$sparkle = ' class="sparkle" ';
}
if(! ((isset($arr[$item['parent'] . '-l'])) && (is_array($arr[$item['parent'] . '-l']))))
@ -879,7 +887,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$newpost' => 'true',
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
@ -888,6 +896,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
'$vidurl' => t("Please enter a video link/URL:"),
'$audurl' => t("Please enter an audio link/URL:"),
'$term' => t('Tag term:'),
'$fileas' => t('File as:'),
'$whereareu' => t('Where are you right now?'),
'$title' => t('Enter a title for this item')
));
@ -929,8 +938,8 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
$o .= replace_macros($tpl,array(
'$return_path' => $a->cmd,
'$action' => $a->get_baseurl().'/item',
'$share' => (($x['button']) ? $x['button'] : t('Share')),
'$action' => $a->get_baseurl(true) . '/item',
'$share' => (x($x,'button') ? $x['button'] : t('Share')),
'$upload' => t('Upload photo'),
'$shortupload' => t('upload photo'),
'$attach' => t('Attach file'),
@ -953,7 +962,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
'$ptyp' => (($notes_cid) ? 'note' : 'wall'),
'$content' => '',
'$post_id' => '',
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$defloc' => $x['default_location'],
'$visitor' => $x['visitor'],
'$pvisit' => (($notes_cid) ? 'none' : $x['visitor']),
@ -995,8 +1004,8 @@ function conv_sort($arr,$order) {
usort($parents,'sort_thr_commented');
if(count($parents))
foreach($parents as $x)
$x['children'] = array();
foreach($parents as $i=>$_x)
$parents[$i]['children'] = array();
foreach($arr as $x) {
if($x['id'] != $x['parent']) {

View file

@ -1,5 +1,7 @@
<?php
require_once('include/datetime.php');
/**
*
* MySQL database class
@ -104,19 +106,17 @@ class dba {
logger('dba: ' . $str );
}
else {
/**
* If dbfail.out exists, we will write any failed calls directly to it,
* regardless of any logging that may or may nor be in effect.
* These usually indicate SQL syntax errors that need to be resolved.
*/
/**
* If dbfail.out exists, we will write any failed calls directly to it,
* regardless of any logging that may or may nor be in effect.
* These usually indicate SQL syntax errors that need to be resolved.
*/
if($result === false) {
logger('dba: ' . printable($sql) . ' returned false.');
if(file_exists('dbfail.out'))
file_put_contents('dbfail.out', printable($sql) . ' returned false' . "\n", FILE_APPEND);
}
if($result === false) {
logger('dba: ' . printable($sql) . ' returned false.');
if(file_exists('dbfail.out'))
file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . ' returned false' . "\n", FILE_APPEND);
}
if(($result === true) || ($result === false))
@ -140,7 +140,7 @@ class dba {
if($this->debug)
logger('dba: ' . printable(print_r($r, true)), LOGGER_DATA);
logger('dba: ' . printable(print_r($r, true)));
return($r);
}

View file

@ -256,7 +256,8 @@ function delivery_run($argv, $argc){
'$picdate' => xmlify(datetime_convert('UTC','UTC',$owner['avatar-date'] . '+00:00' , ATOM_TIME)) ,
'$uridate' => xmlify(datetime_convert('UTC','UTC',$owner['uri-date'] . '+00:00' , ATOM_TIME)) ,
'$namdate' => xmlify(datetime_convert('UTC','UTC',$owner['name-date'] . '+00:00' , ATOM_TIME)) ,
'$birthday' => $birthday
'$birthday' => $birthday,
'$community' => (($owner['page-flags'] == PAGE_COMMUNITY) ? '<dfrn:community>1</dfrn:community>' : '')
));
foreach($items as $item) {
@ -435,8 +436,8 @@ function delivery_run($argv, $argc){
$headers .= 'Reply-to: ' . $reply_to . "\n";
// for testing purposes: Collect exported mails
$file = tempnam("/tmp/friendica/", "mail-out-");
file_put_contents($file, json_encode($it));
// $file = tempnam("/tmp/friendica/", "mail-out-");
// file_put_contents($file, json_encode($it));
$headers .= 'Message-Id: <' . iri2msgid($it['uri']). '>' . "\n";
@ -446,30 +447,16 @@ function delivery_run($argv, $argc){
if($it['uri'] !== $it['parent-uri']) {
$headers .= 'References: <' . iri2msgid($it['parent-uri']) . '>' . "\n";
if(! strlen($it['title'])) {
if(!strlen($it['title'])) {
$r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1",
dbesc($it['parent-uri'])
);
if(count($r)) {
$subtitle = $r[0]['title'];
if($subtitle) {
if(strncasecmp($subtitle,'RE:',3))
$subject = $subtitle;
else
$subject = 'Re: ' . $subtitle;
}
}
dbesc($it['parent-uri']));
if(count($r) AND ($r[0]['title'] != ''))
$subject = $r[0]['title'];
}
if(strncasecmp($subject,'RE:',3))
$subject = 'Re: '.$subject;
}
/*$headers .= 'MIME-Version: 1.0' . "\n";
//$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n";
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
$html = prepare_body($it);
//$message = '<html><body>' . $html . '</body></html>';
$message = html2plain($html);
logger('notifier: email delivery to ' . $addr);
mail($addr, $subject, $message, $headers);*/
email_send($addr, $subject, $headers, $it);
}
break;

View file

@ -1159,6 +1159,48 @@ function diaspora_comment($importer,$xml,$msg) {
proc_run('php','include/notifier.php','comment',$message_id);
}
$myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 ",
dbesc($parent_item['uri']),
intval($importer['uid'])
);
if(count($myconv)) {
$importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
foreach($myconv as $conv) {
// now if we find a match, it means we're in this conversation
if(! link_compare($conv['author-link'],$importer_url))
continue;
require_once('include/enotify.php');
$conv_parent = $conv['parent'];
notification(array(
'type' => NOTIFY_COMMENT,
'notify_flags' => $importer['notify-flags'],
'language' => $importer['language'],
'to_name' => $importer['username'],
'to_email' => $importer['email'],
'uid' => $importer['uid'],
'item' => $datarray,
'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $message_id,
'source_name' => $datarray['author-name'],
'source_link' => $datarray['author-link'],
'source_photo' => $datarray['author-avatar'],
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $conv_parent,
));
// only send one notification
break;
}
}
return;
}

View file

@ -1,5 +1,7 @@
<?php
require_once('include/html2plain.php');
require_once('include/msgclean.php');
require_once('include/quoteconvert.php');
function email_connect($mailbox,$username,$password) {
if(! function_exists('imap_open'))
@ -54,7 +56,7 @@ function email_msg_headers($mbox,$uid) {
$raw_header = (($mbox && $uid) ? @imap_fetchheader($mbox,$uid,FT_UID) : '');
$raw_header = str_replace("\r",'',$raw_header);
$ret = array();
$h = split("\n",$raw_header);
$h = explode("\n",$raw_header);
if(count($h))
foreach($h as $line ) {
if (preg_match("/^[a-zA-Z]/", $line)) {
@ -86,6 +88,7 @@ function email_get_msg($mbox,$uid) {
if(! $struc->parts) {
$ret['body'] = email_get_part($mbox,$uid,$struc,0, 'html');
$html = $ret['body'];
if (trim($ret['body']) == '')
$ret['body'] = email_get_part($mbox,$uid,$struc,0, 'plain');
@ -107,6 +110,17 @@ function email_get_msg($mbox,$uid) {
else
$ret['body'] = $text;
}
$ret['body'] = removegpg($ret['body']);
$msg = removesig($ret['body']);
$ret['body'] = $msg['body'];
$ret['body'] = convertquote($ret['body'], false);
if (trim($html) != '')
$ret['body'] = removelinebreak($ret['body']);
$ret['body'] = unifyattributionline($ret['body']);
return $ret;
}

View file

@ -163,7 +163,7 @@ function bbtoevent($s) {
if(preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",$s,$match))
$ev['adjust'] = $match[1];
$match = '';
$ev['nofinish'] = (($ev['start'] && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0);
$ev['nofinish'] = (((x($ev, 'start') && $ev['start']) && (!x($ev, 'finish') || !$ev['finish'])) ? 1 : 0);
return $ev;
}

View file

@ -142,18 +142,22 @@ function html2bbcode($message)
node2bbcode($doc, 'span', array('style'=>'font-style: italic;'), '[i]', '[/i]');
node2bbcode($doc, 'span', array('style'=>'font-weight: bold;'), '[b]', '[/b]');
node2bbcode($doc, 'font', array('face'=>'/([\w ]+)/', 'size'=>'/(\d+)/', 'color'=>'/(.+)/'), '[font=$1][size=$2][color=$3]', '[/color][/size][/font]');
/*node2bbcode($doc, 'font', array('face'=>'/([\w ]+)/', 'size'=>'/(\d+)/', 'color'=>'/(.+)/'), '[font=$1][size=$2][color=$3]', '[/color][/size][/font]');
node2bbcode($doc, 'font', array('size'=>'/(\d+)/', 'color'=>'/(.+)/'), '[size=$1][color=$2]', '[/color][/size]');
node2bbcode($doc, 'font', array('face'=>'/([\w ]+)/', 'size'=>'/(.+)/'), '[font=$1][size=$2]', '[/size][/font]');
node2bbcode($doc, 'font', array('face'=>'/([\w ]+)/', 'color'=>'/(.+)/'), '[font=$1][color=$3]', '[/color][/font]');
node2bbcode($doc, 'font', array('face'=>'/([\w ]+)/'), '[font=$1]', '[/font]');
node2bbcode($doc, 'font', array('size'=>'/(\d+)/'), '[size=$1]', '[/size]');
node2bbcode($doc, 'font', array('color'=>'/(.+)/'), '[color=$1]', '[/color]');
*/
// Untested
//node2bbcode($doc, 'span', array('style'=>'/.*font-size:\s*(.+?)[,;].*font-family:\s*(.+?)[,;].*color:\s*(.+?)[,;].*/'), '[size=$1][font=$2][color=$3]', '[/color][/font][/size]');
//node2bbcode($doc, 'span', array('style'=>'/.*font-size:\s*(\d+)[,;].*/'), '[size=$1]', '[/size]');
//node2bbcode($doc, 'span', array('style'=>'/.*font-size:\s*(.+?)[,;].*/'), '[size=$1]', '[/size]');
node2bbcode($doc, 'span', array('style'=>'/.*color:\s*(.+?)[,;].*/'), '[color="$1"]', '[/color]');
node2bbcode($doc, 'span', array('style'=>'/.*font-size:\s*(\d+)/'), '[size=$1]', '[/size]');
//node2bbcode($doc, 'span', array('style'=>'/.*font-family:\s*(.+?)[,;].*/'), '[font=$1]', '[/font]');
//node2bbcode($doc, 'div', array('style'=>'/.*font-family:\s*(.+?)[,;].*font-size:\s*(\d+?)pt.*/'), '[font=$1][size=$2]', '[/size][/font]');
//node2bbcode($doc, 'div', array('style'=>'/.*font-family:\s*(.+?)[,;].*font-size:\s*(\d+?)px.*/'), '[font=$1][size=$2]', '[/size][/font]');
//node2bbcode($doc, 'div', array('style'=>'/.*font-family:\s*(.+?)[,;].*/'), '[font=$1]', '[/font]');
@ -187,13 +191,13 @@ function html2bbcode($message)
node2bbcode($doc, 'hr', array(), "[hr]", "");
//node2bbcode($doc, 'table', array(), "", "");
//node2bbcode($doc, 'tr', array(), "\n", "");
//node2bbcode($doc, 'td', array(), "\t", "");
node2bbcode($doc, 'table', array(), "[table]", "[/table]");
node2bbcode($doc, 'th', array(), "[th]", "[/th]");
node2bbcode($doc, 'tr', array(), "[tr]", "[/tr]");
node2bbcode($doc, 'td', array(), "[td]", "[/td]");
node2bbcode($doc, 'table', array(), "", "");
node2bbcode($doc, 'tr', array(), "\n", "");
node2bbcode($doc, 'td', array(), "\t", "");
//node2bbcode($doc, 'table', array(), "[table]", "[/table]");
//node2bbcode($doc, 'th', array(), "[th]", "[/th]");
//node2bbcode($doc, 'tr', array(), "[tr]", "[/tr]");
//node2bbcode($doc, 'td', array(), "[td]", "[/td]");
node2bbcode($doc, 'h1', array(), "\n\n[size=xx-large][b]", "[/b][/size]\n");
node2bbcode($doc, 'h2', array(), "\n\n[size=x-large][b]", "[/b][/size]\n");

View file

@ -28,7 +28,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
$sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid` = '' AND `deny_gid` = '' ";
$r = q("SELECT `contact`.*, `user`.`uid` AS `user_uid`, `user`.`nickname`, `user`.`timezone`
$r = q("SELECT `contact`.*, `user`.`uid` AS `user_uid`, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`
FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
WHERE `contact`.`self` = 1 AND `user`.`nickname` = '%s' LIMIT 1",
dbesc($owner_nick)
@ -156,7 +156,8 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
'$picdate' => xmlify(datetime_convert('UTC','UTC',$owner['avatar-date'] . '+00:00' , ATOM_TIME)) ,
'$uridate' => xmlify(datetime_convert('UTC','UTC',$owner['uri-date'] . '+00:00' , ATOM_TIME)) ,
'$namdate' => xmlify(datetime_convert('UTC','UTC',$owner['name-date'] . '+00:00' , ATOM_TIME)) ,
'$birthday' => ((strlen($birthday)) ? '<dfrn:birthday>' . xmlify($birthday) . '</dfrn:birthday>' : '')
'$birthday' => ((strlen($birthday)) ? '<dfrn:birthday>' . xmlify($birthday) . '</dfrn:birthday>' : ''),
'$community' => (($owner['page-flags'] == PAGE_COMMUNITY) ? '<dfrn:community>1</dfrn:community>' : '')
));
call_hooks('atom_feed', $atom);
@ -682,7 +683,7 @@ function item_store($arr,$force_parent = false) {
unset($arr['dsprsig']);
}
if($arr['gravity'])
if(x($arr, 'gravity'))
$arr['gravity'] = intval($arr['gravity']);
elseif($arr['parent-uri'] === $arr['uri'])
$arr['gravity'] = 0;
@ -742,6 +743,7 @@ function item_store($arr,$force_parent = false) {
if($arr['parent-uri'] === $arr['uri']) {
$parent_id = 0;
$parent_deleted = 0;
$allow_cid = $arr['allow_cid'];
$allow_gid = $arr['allow_gid'];
$deny_cid = $arr['deny_cid'];
@ -800,6 +802,8 @@ function item_store($arr,$force_parent = false) {
logger('item_store: item parent was not found - ignoring item');
return 0;
}
$parent_deleted = 0;
}
}
@ -1043,6 +1047,22 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
if(! $rino_enable)
$rino = 0;
$ssl_val = intval(get_config('system','ssl_policy'));
$ssl_policy = '';
switch($ssl_val){
case SSL_POLICY_FULL:
$ssl_policy = 'full';
break;
case SSL_POLICY_SELFSIGN:
$ssl_policy = 'self';
break;
case SSL_POLICY_NONE:
default:
$ssl_policy = 'none';
break;
}
$url = $contact['notify'] . '&dfrn_id=' . $idtosend . '&dfrn_version=' . DFRN_PROTOCOL_VERSION . (($rino) ? '&rino=1' : '');
logger('dfrn_deliver: ' . $url);
@ -1074,6 +1094,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
$challenge = hex2bin((string) $res->challenge);
$dfrn_version = (float) (($res->dfrn_version) ? $res->dfrn_version : 2.0);
$rino_allowed = ((intval($res->rino) === 1) ? 1 : 0);
$page = (($owner['page-flags'] == PAGE_COMMUNITY) ? 1 : 0);
$final_dfrn_id = '';
@ -1115,6 +1136,11 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
$postvars['perm'] = 'r';
}
$postvars['ssl_policy'] = $ssl_policy;
if($page)
$postvars['page'] = '1';
if($rino && $rino_allowed && (! $dissolve)) {
$key = substr(random_string(),0,16);
$data = bin2hex(aes_encrypt($postvars['data'],$key));
@ -1379,6 +1405,19 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
}
$community_page = 0;
$rawtags = $feed->get_feed_tags( NAMESPACE_DFRN, 'community');
if($rawtags) {
$community_page = intval($rawtags[0]['data']);
}
if(is_array($contact) && intval($contact['forum']) != $community_page) {
q("update contact set forum = %d where id = %d limit 1",
intval($community_page),
intval($contact['id'])
);
$contact['forum'] = (string) $community_page;
}
// process any deleted entries
@ -1962,6 +2001,19 @@ function local_delivery($importer,$data) {
// NOTREACHED
}
$community_page = 0;
$rawtags = $feed->get_feed_tags( NAMESPACE_DFRN, 'community');
if($rawtags) {
$community_page = intval($rawtags[0]['data']);
}
if(intval($importer['forum']) != $community_page) {
q("update contact set forum = %d where id = %d limit 1",
intval($community_page),
intval($importer['id'])
);
$importer['forum'] = (string) $community_page;
}
logger('local_delivery: feed item count = ' . $feed->get_item_quantity());
@ -2001,6 +2053,7 @@ function local_delivery($importer,$data) {
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTVITY_OBJ_TAGTERM)) {
$xo = parse_xml_string($item['object'],false);
$xt = parse_xml_string($item['target'],false);
if($xt->type === ACTIVITY_OBJ_NOTE) {
$i = q("select * from `item` where uri = '%s' and uid = %d limit 1",
dbesc($xt->id),

225
include/msgclean.php Normal file
View file

@ -0,0 +1,225 @@
<?php
function savereplace($pattern, $replace, $text)
{
$save = $text;
$text = preg_replace($pattern, $replace, $text);
if ($text == '')
$text = $save;
return($text);
}
function unifyattributionline($message)
{
$quotestr = array('quote', 'collapsed');
foreach ($quotestr as $quote) {
$message = savereplace('/----- Original Message -----\s.*?From: "([^<"].*?)" <(.*?)>\s.*?To: (.*?)\s*?Cc: (.*?)\s*?Sent: (.*?)\s.*?Subject: ([^\n].*)\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/----- Original Message -----\s.*?From: "([^<"].*?)" <(.*?)>\s.*?To: (.*?)\s*?Sent: (.*?)\s.*?Subject: ([^\n].*)\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/-------- Original-Nachricht --------\s*\['.$quote.'\]\nDatum: (.*?)\nVon: (.*?) <(.*?)>\nAn: (.*?)\nBetreff: (.*?)\n/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/-------- Original-Nachricht --------\s*\['.$quote.'\]\sDatum: (.*?)\s.*Von: "([^<"].*?)" <(.*?)>\s.*An: (.*?)\n.*/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/-------- Original-Nachricht --------\s*\['.$quote.'\]\nDatum: (.*?)\nVon: (.*?)\nAn: (.*?)\nBetreff: (.*?)\n/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/-----Urspr.*?ngliche Nachricht-----\sVon: "([^<"].*?)" <(.*?)>\s.*Gesendet: (.*?)\s.*An: (.*?)\s.*Betreff: ([^\n].*?).*:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/-----Urspr.*?ngliche Nachricht-----\sVon: "([^<"].*?)" <(.*?)>\s.*Gesendet: (.*?)\s.*An: (.*?)\s.*Betreff: ([^\n].*?)\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/Am (.*?), schrieb (.*?):\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/Am .*?, \d+ .*? \d+ \d+:\d+:\d+ \+\d+\sschrieb\s(.*?)\s<(.*?)>:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/Am (.*?) schrieb (.*?) <(.*?)>:\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/Am (.*?) schrieb <(.*?)>:\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/Am (.*?) schrieb (.*?):\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/Am (.*?) schrieb (.*?)\n(.*?):\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/(\d+)\/(\d+)\/(\d+) ([^<"].*?) <(.*?)>\s*\['.$quote.'\]/i', "[".$quote."='$4']\n", $message);
$message = savereplace('/On .*?, \d+ .*? \d+ \d+:\d+:\d+ \+\d+\s(.*?)\s<(.*?)>\swrote:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/On (.*?) at (.*?), (.*?)\s<(.*?)>\swrote:\s*\['.$quote.'\]/i', "[".$quote."='$3']\n", $message);
$message = savereplace('/On (.*?)\n([^<].*?)\s<(.*?)>\swrote:\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/On (.*?), (.*?), (.*?)\s<(.*?)>\swrote:\s*\['.$quote.'\]/i', "[".$quote."='$3']\n", $message);
$message = savereplace('/On ([^,].*?), (.*?)\swrote:\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/On (.*?), (.*?)\swrote\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
// Der loescht manchmal den Body - was eigentlich unmoeglich ist
$message = savereplace('/On (.*?),(.*?),(.*?),(.*?), (.*?) wrote:\s*\['.$quote.'\]/i', "[".$quote."='$5']\n", $message);
$message = savereplace('/Zitat von ([^<].*?) <(.*?)>:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/Quoting ([^<].*?) <(.*?)>:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/From: "([^<"].*?)" <(.*?)>\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/From: <(.*?)>\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/Du \(([^)].*?)\) schreibst:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/--- (.*?) <.*?> schrieb am (.*?):\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/--- (.*?) schrieb am (.*?):\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/\* (.*?) <(.*?)> hat geschrieben:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(.*?) <(.*?)> schrieb (.*?)\):\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(.*?) <(.*?)> schrieb am (.*?) um (.*):\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(.*?) schrieb am (.*?) um (.*):\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(.*?) \((.*?)\) schrieb:\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/(.*?) schrieb:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(.*?) <(.*?)> writes:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(.*?) \((.*?)\) writes:\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
$message = savereplace('/(.*?) writes:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/\* (.*?) wrote:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(.*?) wrote \(.*?\):\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(.*?) wrote:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/([^<].*?) <.*?> hat am (.*?)\sum\s(.*)\sgeschrieben:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(\d+)\/(\d+)\/(\d+) ([^<"].*?) <(.*?)>:\s*\['.$quote.'\]/i', "[".$quote."='$4']\n", $message);
$message = savereplace('/(\d+)\/(\d+)\/(\d+) (.*?) <(.*?)>\s*\['.$quote.'\]/i', "[".$quote."='$4']\n", $message);
$message = savereplace('/(\d+)\/(\d+)\/(\d+) <(.*?)>:\s*\['.$quote.'\]/i', "[".$quote."='$4']\n", $message);
$message = savereplace('/(\d+)\/(\d+)\/(\d+) <(.*?)>\s*\['.$quote.'\]/i', "[".$quote."='$4']\n", $message);
$message = savereplace('/(.*?) <(.*?)> schrubselte:\s*\['.$quote.'\]/i', "[".$quote."='$1']\n", $message);
$message = savereplace('/(.*?) \((.*?)\) schrubselte:\s*\['.$quote.'\]/i', "[".$quote."='$2']\n", $message);
}
return($message);
}
function removegpg($message)
{
$pattern = '/(.*)\s*-----BEGIN PGP SIGNED MESSAGE-----\s*[\r\n].*Hash:.*?[\r\n](.*)'.
'[\r\n]\s*-----BEGIN PGP SIGNATURE-----\s*[\r\n].*'.
'[\r\n]\s*-----END PGP SIGNATURE-----(.*)/is';
preg_match($pattern, $message, $result);
$cleaned = trim($result[1].$result[2].$result[3]);
$cleaned = str_replace(array("\n- --\n", "\n- -"), array("\n-- \n", "\n-"), $cleaned);
if ($cleaned == '')
$cleaned = $message;
return($cleaned);
}
function removesig($message)
{
$sigpos = strrpos($message, "\n-- \n");
$quotepos = strrpos($message, "[/quote]");
if ($sigpos == 0) {
// Speziell fuer web.de, die das als Trenner verwenden
$message = str_replace("\n___________________________________________________________\n", "\n-- \n", $message);
$sigpos = strrpos($message, "\n-- \n");
$quotepos = strrpos($message, "[/quote]");
}
// Sollte sich der Signaturtrenner innerhalb eines Quotes befinden
// wird keine Signaturtrennung ausgefuehrt
if (($sigpos < $quotepos) and ($sigpos != 0))
return(array('body' => $message, 'sig' => ''));
// To-Do: Regexp umstellen, so dass auf 1 oder kein Leerzeichen
// geprueft wird
//$message = str_replace("\n--\n", "\n-- \n", $message);
$pattern = '/(.*)[\r\n]-- [\r\n](.*)/is';
preg_match($pattern, $message, $result);
if (($result[1] != '') and ($result[2] != '')) {
$cleaned = trim($result[1])."\n";
$sig = trim($result[2]);
// '[hr][size=x-small][color=darkblue]'.trim($result[2]).'[/color][/size]';
} else {
$cleaned = $message;
$sig = '';
}
return(array('body' => $cleaned, 'sig' => $sig));
}
function removelinebreak($message)
{
$arrbody = explode("\n", trim($message));
$lines = array();
$lineno = 0;
foreach($arrbody as $i => $line) {
$currquotelevel = 0;
$currline = $line;
while ((strlen($currline)>0) and ((substr($currline, 0, 1) == '>')
or (substr($currline, 0, 1) == ' '))) {
if (substr($currline, 0, 1) == '>')
$currquotelevel++;
$currline = ltrim(substr($currline, 1));
}
$quotelevel = 0;
$nextline = trim($arrbody[$i+1]);
while ((strlen($nextline)>0) and ((substr($nextline, 0, 1) == '>')
or (substr($nextline, 0, 1) == ' '))) {
if (substr($nextline, 0, 1) == '>')
$quotelevel++;
$nextline = ltrim(substr($nextline, 1));
}
$len = strlen($line);
$firstword = strpos($nextline.' ', ' ');
$specialchars = ((substr(trim($nextline), 0, 1) == '-') or
(substr(trim($nextline), 0, 1) == '=') or
(substr(trim($nextline), 0, 1) == '*') or
(substr(trim($nextline), 0, 1) == '·') or
(substr(trim($nextline), 0, 4) == '[url') or
(substr(trim($nextline), 0, 5) == '[size') or
(substr(trim($nextline), 0, 7) == 'http://') or
(substr(trim($nextline), 0, 8) == 'https://'));
if (!$specialchars)
$specialchars = ((substr(rtrim($line), -1) == '-') or
(substr(rtrim($line), -1) == '=') or
(substr(rtrim($line), -1) == '*') or
(substr(rtrim($line), -1) == '·') or
(substr(rtrim($line), -6) == '[/url]') or
(substr(rtrim($line), -7) == '[/size]'));
//if ($specialchars)
// echo ("Special\n");
if ($lines[$lineno] != '') {
if (substr($lines[$lineno], -1) != ' ')
$lines[$lineno] .= ' ';
while ((strlen($line)>0) and ((substr($line, 0, 1) == '>')
or (substr($line, 0, 1) == ' '))) {
$line = ltrim(substr($line, 1));
}
}
//else
// $lines[$lineno] = $quotelevel.'-'.$len.'-'.$firstword.'-';
$lines[$lineno] .= $line;
//if ((($len + $firstword < 68) and (substr($line, -1, 1) != ' '))
// or ($quotelevel != $currquotelevel) or $specialchars)
if (((substr($line, -1, 1) != ' '))
or ($quotelevel != $currquotelevel))
$lineno++;
}
return(implode("\n", $lines));
}
?>

View file

@ -8,6 +8,8 @@ function nav(&$a) {
*
*/
$ssl_state = ((local_user()) ? true : false);
if(!(x($a->page,'nav')))
$a->page['nav'] = '';
@ -27,7 +29,7 @@ function nav(&$a) {
$myident = ((is_array($a->user) && isset($a->user['nickname'])) ? $a->user['nickname'] . '@' : '');
$sitelocation = $myident . substr($a->get_baseurl(),strpos($a->get_baseurl(),'//') + 2 );
$sitelocation = $myident . substr($a->get_baseurl($ssl_state),strpos($a->get_baseurl($ssl_state),'//') + 2 );
// nav links: array of array('href', 'text', 'extra css classes', 'title')
@ -53,7 +55,7 @@ function nav(&$a) {
// user info
$r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
$userinfo = array(
'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl()."/images/default-profile-mm.jpg"),
'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl($ssl_state)."/images/default-profile-mm.jpg"),
'name' => $a->user['username'],
);
@ -76,7 +78,7 @@ function nav(&$a) {
if(($a->config['register_policy'] == REGISTER_OPEN) && (! local_user()) && (! remote_user()))
$nav['register'] = array('register',t('Register'), "", t('Create an account'));
$help_url = $a->get_baseurl() . '/help';
$help_url = $a->get_baseurl($ssl_state) . '/help';
if(! get_config('system','hide_help'))
$nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'));

View file

@ -303,7 +303,7 @@ function webfinger_dfrn($s,&$hcard) {
if(! function_exists('webfinger')) {
function webfinger($s) {
function webfinger($s, $debug = false) {
$host = '';
if(strstr($s,'@')) {
$host = substr($s,strpos($s,'@') + 1);
@ -328,7 +328,7 @@ function webfinger($s) {
}}
if(! function_exists('lrdd')) {
function lrdd($uri) {
function lrdd($uri, $debug = false) {
$a = get_app();

View file

@ -337,7 +337,9 @@ function notifier_run($argv, $argc){
'$picdate' => xmlify(datetime_convert('UTC','UTC',$owner['avatar-date'] . '+00:00' , ATOM_TIME)) ,
'$uridate' => xmlify(datetime_convert('UTC','UTC',$owner['uri-date'] . '+00:00' , ATOM_TIME)) ,
'$namdate' => xmlify(datetime_convert('UTC','UTC',$owner['name-date'] . '+00:00' , ATOM_TIME)) ,
'$birthday' => $birthday
'$birthday' => $birthday,
'$community' => (($owner['page-flags'] == PAGE_COMMUNITY) ? '<dfrn:community>1</dfrn:community>' : '')
));
if($mail) {
@ -648,38 +650,23 @@ function notifier_run($argv, $argc){
$headers .= 'Reply-to: ' . $reply_to . "\n";
// for testing purposes: Collect exported mails
$file = tempnam("/tmp/friendica/", "mail-out2-");
file_put_contents($file, json_encode($it));
//$file = tempnam("/tmp/friendica/", "mail-out2-");
//file_put_contents($file, json_encode($it));
$headers .= 'Message-Id: <' . iri2msgid($it['uri']) . '>' . "\n";
if($it['uri'] !== $it['parent-uri']) {
$headers .= 'References: <' . iri2msgid($it['parent-uri']) . '>' . "\n";
if(! strlen($it['title'])) {
if(!strlen($it['title'])) {
$r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1",
dbesc($it['parent-uri'])
);
if(count($r)) {
$subtitle = $r[0]['title'];
if($subtitle) {
if(strncasecmp($subtitle,'RE:',3))
$subject = $subtitle;
else
$subject = 'Re: ' . $subtitle;
}
}
}
}
dbesc($it['parent-uri']));
/*$headers .= 'MIME-Version: 1.0' . "\n";
//$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n";
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
$html = prepare_body($it);
//$message = '<html><body>' . $html . '</body></html>';
$message = html2plain($html);
logger('notifier: email delivery to ' . $addr);
mail($addr, $subject, $message, $headers);*/
if(count($r) AND ($r[0]['title'] != ''))
$subject = $r[0]['title'];
}
if(strncasecmp($subject,'RE:',3))
$subject = 'Re: '.$subject;
}
email_send($addr, $subject, $headers, $it);
}
break;

View file

@ -1,6 +1,6 @@
<?php
function oembed_replacecb($matches){
logger('oembedcb');
// logger('oembedcb');
$embedurl=$matches[1];
$j = oembed_fetch_url($embedurl);
$s = oembed_format_object($j);
@ -14,6 +14,9 @@ function oembed_fetch_url($embedurl){
$txt = Cache::get($embedurl);
// These media files should now be caught in bbcode.php
// left here as a fallback in case this is called from another source
$noexts = array("mp3","mp4","ogg","ogv","oga","ogm","webm");
$ext = pathinfo(strtolower($embedurl),PATHINFO_EXTENSION);
@ -62,7 +65,7 @@ function oembed_fetch_url($embedurl){
function oembed_format_object($j){
$embedurl = $j->embedurl;
$jhtml = oembed_iframe($j->embedurl,$j->width,$j->height );
$jhtml = oembed_iframe($j->embedurl,(isset($j->width) ? $j->width : null), (isset($j->height) ? $j->height : null) );
$ret="<span class='oembed ".$j->type."'>";
switch ($j->type) {
case "video": {

View file

@ -1,7 +1,6 @@
<?php
require_once("boot.php");
require_once("include/quoteconvert.php");
function poller_run($argv, $argc){
@ -70,6 +69,19 @@ function poller_run($argv, $argc){
// clear old cache
Cache::clear();
// clear item cache files if they are older than one day
$cache = get_config('system','itemcache');
if (($cache != '') and is_dir($cache)) {
if ($dh = opendir($cache)) {
while (($file = readdir($dh)) !== false) {
$fullpath = $cache."/".$file;
if ((filetype($fullpath) == "file") and filectime($fullpath) < (time() - 86400))
unlink($fullpath);
}
closedir($dh);
}
}
$manual_id = 0;
$generation = 0;
$hub_update = false;
@ -141,7 +153,10 @@ function poller_run($argv, $argc){
if($manual_id)
$contact['last-update'] = '0000-00-00 00:00:00';
if($contact['network'] === NETWORK_DFRN || $contact['network'] === NETWORK_OSTATUS)
if($contact['network'] === NETWORK_DFRN)
$contact['priority'] = 2;
if(!get_config('system','ostatus_use_priority') and ($contact['network'] === NETWORK_OSTATUS))
$contact['priority'] = 2;
if($contact['priority'] || $contact['subhub']) {
@ -217,7 +232,7 @@ function poller_run($argv, $argc){
$importer_uid = $contact['uid'];
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
$r = q("SELECT `contact`.*, `user`.`page-flags` FROM `contact` LEFT JOIN `user` on `contact`.`uid` = `user`.`uid` WHERE `user`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
intval($importer_uid)
);
if(! count($r))
@ -494,7 +509,7 @@ function poller_run($argv, $argc){
logger("Mail: can't fetch msg ".$msg_uid);
continue;
}
$datarray['body'] = escape_tags(convertquote($r['body'], false));
$datarray['body'] = escape_tags($r['body']);
logger("Mail: Importing ".$msg_uid);

View file

@ -61,13 +61,18 @@ function queue_run($argv, $argc){
q("DELETE FROM `queue` WHERE `created` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
}
if($queue_id)
if($queue_id) {
$r = q("SELECT `id` FROM `queue` WHERE `id` = %d LIMIT 1",
intval($queue_id)
);
else
$r = q("SELECT `id` FROM `queue` WHERE `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ");
}
else {
// For the first 12 hours we'll try to deliver every 15 minutes
// After that, we'll only attempt delivery once per hour.
$r = q("SELECT `id` FROM `queue` WHERE (( `created` > UTC_TIMESTAMP() - INTERVAL 12 HOUR && `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ) OR ( `last` < UTC_TIMESTAMP() - INTERVAL 1 HOUR ))");
}
if(! count($r)){
return;
}

View file

@ -283,7 +283,64 @@ function item_permissions_sql($owner_id,$remote_verified = false,$groups = null)
);
}
}
return $sql;
}
/*
* Functions used to protect against Cross-Site Request Forgery
* The security token has to base on at least one value that an attacker can't know - here it's the session ID and the private key.
* In this implementation, a security token is reusable (if the user submits a form, goes back and resubmits the form, maybe with small changes;
* or if the security token is used for ajax-calls that happen several times), but only valid for a certain amout of time (3hours).
* The "typename" seperates the security tokens of different types of forms. This could be relevant in the following case:
* A security token is used to protekt a link from CSRF (e.g. the "delete this profile"-link).
* If the new page contains by any chance external elements, then the used security token is exposed by the referrer.
* Actually, important actions should not be triggered by Links / GET-Requests at all, but somethimes they still are,
* so this mechanism brings in some damage control (the attacker would be able to forge a request to a form of this type, but not to forms of other types).
*/
function get_form_security_token($typename = '') {
$a = get_app();
$timestamp = time();
$sec_hash = hash('whirlpool', $a->user['guid'] . $a->user['prvkey'] . session_id() . $timestamp . $typename);
return $timestamp . '.' . $sec_hash;
}
function check_form_security_token($typename = '', $formname = 'form_security_token') {
if (!x($_REQUEST, $formname)) return false;
$hash = $_REQUEST[$formname];
$max_livetime = 10800; // 3 hours
$a = get_app();
$x = explode('.', $hash);
if (time() > (IntVal($x[0]) + $max_livetime)) return false;
$sec_hash = hash('whirlpool', $a->user['guid'] . $a->user['prvkey'] . session_id() . $x[0] . $typename);
return ($sec_hash == $x[1]);
}
function check_form_security_std_err_msg() {
return t('The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before subitting it.') . EOL;
}
function check_form_security_token_redirectOnErr($err_redirect, $typename = '', $formname = 'form_security_token') {
if (!check_form_security_token($typename, $formname)) {
$a = get_app();
logger('check_form_security_token failed: user ' . $a->user['guid'] . ' - form element ' . $typename);
logger('check_form_security_token failed: _REQUEST data: ' . print_r($_REQUEST, true), LOGGER_DATA);
notice( check_form_security_std_err_msg() );
goaway($a->get_baseurl() . $err_redirect );
}
}
function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'form_security_token') {
if (!check_form_security_token($typename, $formname)) {
logger('check_form_security_token failed: user ' . $a->user['guid'] . ' - form element ' . $typename);
logger('check_form_security_token failed: _REQUEST data: ' . print_r($_REQUEST, true), LOGGER_DATA);
header('HTTP/1.1 403 Forbidden');
killme();
}
}

View file

@ -80,8 +80,13 @@
*/
private function _replcb_for($args){
$m = array_map('trim', explode(" as ", $args[2]));
list($keyname, $varname) = explode("=>",$m[1]);
if (is_null($varname)) { $varname=$keyname; $keyname=""; }
$x = explode("=>",$m[1]);
if (count($x) == 1) {
$varname = $x[0];
$keyname = "";
} else {
list($keyname, $varname) = $x;
}
if ($m[0]=="" || $varname=="" || is_null($varname)) die("template error: 'for ".$m[0]." as ".$varname."'") ;
//$vals = $this->r[$m[0]];
$vals = $this->_get_var($m[0]);
@ -91,7 +96,7 @@
$this->_push_stack();
$r = $this->r;
$r[$varname] = $v;
if ($keyname!='') $r[$keyname] = $k;
if ($keyname!='') $r[$keyname] = (($k === 0) ? '0' : $k);
$ret .= $this->replace($args[3], $r);
$this->_pop_stack();
}
@ -198,7 +203,7 @@
$os=$s; $count++;
$s = $this->var_replace($s);
}
return template_unescape($s);
return $s;
}
}

View file

@ -20,7 +20,7 @@ function replace_macros($s,$r) {
//$a = get_app();
//$a->page['debug'] .= "$tt <br>\n";
return $r;
return template_unescape($r);
}}
@ -638,7 +638,7 @@ if(! function_exists('search')) {
function search($s,$id='search-box',$url='/search',$save = false) {
$a = get_app();
$o = '<div id="' . $id . '">';
$o .= '<form action="' . $a->get_baseurl() . $url . '" method="get" >';
$o .= '<form action="' . $a->get_baseurl((stristr($url,'network')) ? true : false) . $url . '" method="get" >';
$o .= '<input type="text" name="search" id="search-text" value="' . $s .'" />';
$o .= '<input type="submit" name="submit" id="search-submit" value="' . t('Search') . '" />';
if($save)
@ -694,8 +694,13 @@ function linkify($s) {
if(! function_exists('smilies')) {
function smilies($s, $sample = false) {
$a = get_app();
if(intval(get_config('system','no_smilies'))
|| (local_user() && intval(get_pconfig(local_user(),'system','no_smilies'))))
return $s;
$s = preg_replace_callback('/<pre>(.*?)<\/pre>/ism','smile_encode',$s);
$s = preg_replace_callback('/<code>(.*?)<\/code>/ism','smile_encode',$s);
@ -874,16 +879,30 @@ function link_compare($a,$b) {
if(! function_exists('prepare_body')) {
function prepare_body($item,$attach = false) {
$a = get_app();
call_hooks('prepare_body_init', $item);
$s = prepare_text($item['body']);
$cache = get_config('system','itemcache');
if (($cache != '')) {
$cachefile = $cache."/".$item["guid"]."-".strtotime($item["edited"])."-".hash("crc32", $item['body']);
if (file_exists($cachefile))
$s = file_get_contents($cachefile);
else {
$s = prepare_text($item['body']);
file_put_contents($cachefile, $s);
}
} else
$s = prepare_text($item['body']);
$prep_arr = array('item' => $item, 'html' => $s);
call_hooks('prepare_body', $prep_arr);
$s = $prep_arr['html'];
if(! $attach)
if(! $attach) {
return $s;
}
$arr = explode(',',$item['attach']);
if(count($arr)) {
@ -913,10 +932,37 @@ function prepare_body($item,$attach = false) {
}
$s .= '<div class="clear"></div></div>';
}
$matches = false;
$cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
// logger('prepare_text: categories: ' . print_r($matches,true), LOGGER_DEBUG);
foreach($matches as $mtch) {
if(strlen($x))
$x .= ',';
$x .= file_tag_decode($mtch[1]);
}
if(strlen($x))
$s .= '<div class="categorytags"><span>' . t('Categories:') . ' </span>' . $x . '</div>';
}
$matches = false;
$x = '';
$cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
// logger('prepare_text: filed_under: ' . print_r($matches,true), LOGGER_DEBUG);
foreach($matches as $mtch) {
if(strlen($x))
$x .= '&nbsp;&nbsp;&nbsp;';
$x .= file_tag_decode($mtch[1]). ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&term=' . file_tag_decode($mtch[1]) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>';
}
if(strlen($x) && (local_user() == $item['uid']))
$s .= '<div class="filesavetags"><span>' . t('Filed under:') . ' </span>' . $x . '</div>';
}
$prep_arr = array('item' => $item, 'html' => $s);
call_hooks('prepare_body_final', $prep_arr);
return $prep_arr['html'];
}}
@ -1235,4 +1281,80 @@ function item_post_type($item) {
return t('post');
}
// post categories and "save to file" use the same item.file table for storage.
// We will differentiate the different uses by wrapping categories in angle brackets
// and save to file categories in square brackets.
// To do this we need to escape these characters if they appear in our tag.
function file_tag_encode($s) {
return str_replace(array('<','>','[',']'),array('%3c','%3e','%5b','%5d'),$s);
}
function file_tag_decode($s) {
return str_replace(array('%3c','%3e','%5b','%5d'),array('<','>','[',']'),$s);
}
function file_tag_file_query($table,$s,$type = 'file') {
if($type == 'file')
$str = preg_quote( '[' . file_tag_encode($s) . ']' );
else
$str = preg_quote( '<' . file_tag_encode($s) . '>' );
return " AND " . (($table) ? dbesc($table) . '.' : '') . "file regexp '" . dbesc($str) . "' ";
}
function file_tag_save_file($uid,$item,$file) {
$result = false;
if(! intval($uid))
return false;
$r = q("select file from item where id = %d and uid = %d limit 1",
intval($item),
intval($uid)
);
if(count($r)) {
if(! stristr($r[0]['file'],'[' . file_tag_encode($file) . ']'))
q("update item set file = '%s' where id = %d and uid = %d limit 1",
dbesc($r[0]['file'] . '[' . file_tag_encode($file) . ']'),
intval($item),
intval($uid)
);
$saved = get_pconfig($uid,'system','filetags');
if((! strlen($saved)) || (! stristr($saved,'[' . file_tag_encode($file) . ']')))
set_pconfig($uid,'system','filetags',$saved . '[' . file_tag_encode($file) . ']');
}
return true;
}
function file_tag_unsave_file($uid,$item,$file) {
$result = false;
if(! intval($uid))
return false;
$pattern = '[' . file_tag_encode($file) . ']' ;
$r = q("select file from item where id = %d and uid = %d limit 1",
intval($item),
intval($uid)
);
if(! count($r))
return false;
q("update item set file = '%s' where id = %d and uid = %d limit 1",
dbesc(str_replace($pattern,'',$r[0]['file'])),
intval($item),
intval($uid)
);
$r = q("select file from item where uid = %d " . file_tag_file_query('item',$file),
intval($uid)
);
if(! count($r)) {
$saved = get_pconfig($uid,'system','filetags');
set_pconfig($uid,'system','filetags',str_replace($pattern,'',$saved));
}
return true;
}
function normalise_openid($s) {
return trim(str_replace(array('http://','https://'),array('',''),$s),'/');
}

View file

@ -486,9 +486,9 @@
return a.join('');
}
function groupChangeMember(gid,cid) {
function groupChangeMember(gid, cid, sec_token) {
$('body .fakelink').css('cursor', 'wait');
$.get('group/' + gid + '/' + cid, function(data) {
$.get('group/' + gid + '/' + cid + "?t=" + sec_token, function(data) {
$('#group-update-wrapper').html(data);
$('body .fakelink').css('cursor', 'auto');
});

View file

@ -44,61 +44,79 @@
_dfrn_html2bbcode : function(s) {
s = tinymce.trim(s);
function rep(re, str) {
//modify code to keep stuff intact within [code][/code] blocks
//Waitman Gobble NO WARRANTY
var o = new Array();
var x = s.split("[code]");
var i = 0;
var si = "";
si = x.shift();
si = si.replace(re,str);
o.push(si);
for (i = 0; i < x.length; i++) {
var no = new Array();
var j = x.shift();
var g = j.split("[/code]");
no.push(g.shift());
si = g.shift();
si = si.replace(re,str);
no.push(si);
o.push(no.join("[/code]"));
}
s = o.join("[code]");
};
/* oembed */
function _h2b_cb(match) {
function s_h2b(data) {
match = data;
function rep(re, str) {
//modify code to keep stuff intact within [code][/code] blocks
//Waitman Gobble NO WARRANTY
var o = new Array();
var x = s.split("[code]");
var i = 0;
var si = "";
si = x.shift();
si = si.replace(re,str);
o.push(si);
for (i = 0; i < x.length; i++) {
var no = new Array();
var j = x.shift();
var g = j.split("[/code]");
no.push(g.shift());
si = g.shift();
si = si.replace(re,str);
no.push(si);
o.push(no.join("[/code]"));
}
s = o.join("[code]");
};
/* oembed */
function _h2b_cb(match) {
/*
function s_h2b(data) {
match = data;
}
$.ajax({
type:"POST",
type:"POST",
url: 'oembed/h2b',
data: {text: match},
async: false,
success: s_h2b,
dataType: 'html'
});
return match;
}
data: {text: match},
async: false,
success: s_h2b,
dataType: 'html'
});
*/
var f, g, tof = [], tor = [];
var find_spanc = /<span [^>]*class *= *[\"'](?:[^\"']* )*oembed(?: [^\"']*)*[\"'][^>]*>(.*?(?:<span[^>]*>(.*?)<\/span *>)*.*?)<\/span *>/ig;
while (f = find_spanc.exec(match)) {
var find_a = /<a([^>]* rel=[\"']oembed[\"'][^>]*)>.*?<\/a *>/ig;
if (g = find_a.exec(f[1])) {
var find_href = /href=[\"']([^\"']*)[\"']/ig;
var m2 = find_href.exec(g[1]);
if (m2[1]) {
tof.push(f[0]);
tor.push("[EMBED]" + m2[1] + "[/EMBED]");
}
}
}
for (var i = 0; i < tof.length; i++) match = match.replace(tof[i], tor[i]);
return match;
}
if (s.indexOf('class="oembed')>=0){
//alert("request oembed html2bbcode");
s = _h2b_cb(s);
}
/* /oembed */
/* /oembed */
// example: <strong> to [b]
rep(/<a class=\"bookmark\" href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[bookmark=$1]$2[/bookmark]");
@ -111,16 +129,16 @@
rep(/<img.*?src=\"(.*?)\".*?height=\"(.*?)\".*?width=\"(.*?)\".*?\/>/gi,"[img=$3x$2]$1[/img]");
rep(/<img.*?src=\"(.*?)\".*?width=\"(.*?)\".*?height=\"(.*?)\".*?\/>/gi,"[img=$2x$3]$1[/img]");
rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
rep(/<ul class=\"listbullet\" style=\"list-style-type\: circle\;\">(.*?)<\/ul>/gi,"[list]$1[/list]");
rep(/<ul class=\"listnone\" style=\"list-style-type\: none\;\">(.*?)<\/ul>/gi,"[list=]$1[/list]");
rep(/<ul class=\"listdecimal\" style=\"list-style-type\: decimal\;\">(.*?)<\/ul>/gi,"[list=1]$1[/list]");
rep(/<ul class=\"listlowerroman\" style=\"list-style-type\: lower-roman\;\">(.*?)<\/ul>/gi,"[list=i]$1[/list]");
rep(/<ul class=\"listupperroman\" style=\"list-style-type\: upper-roman\;\">(.*?)<\/ul>/gi,"[list=I]$1[/list]");
rep(/<ul class=\"listloweralpha\" style=\"list-style-type\: lower-alpha\;\">(.*?)<\/ul>/gi,"[list=a]$1[/list]");
rep(/<ul class=\"listupperalpha\" style=\"list-style-type\: upper-alpha\;\">(.*?)<\/ul>/gi,"[list=A]$1[/list]");
rep(/<li>(.*?)<\/li>/gi,'[li]$1[/li]');
rep(/<ul class=\"listbullet\" style=\"list-style-type\: circle\;\">(.*?)<\/ul>/gi,"[list]$1[/list]");
rep(/<ul class=\"listnone\" style=\"list-style-type\: none\;\">(.*?)<\/ul>/gi,"[list=]$1[/list]");
rep(/<ul class=\"listdecimal\" style=\"list-style-type\: decimal\;\">(.*?)<\/ul>/gi,"[list=1]$1[/list]");
rep(/<ul class=\"listlowerroman\" style=\"list-style-type\: lower-roman\;\">(.*?)<\/ul>/gi,"[list=i]$1[/list]");
rep(/<ul class=\"listupperroman\" style=\"list-style-type\: upper-roman\;\">(.*?)<\/ul>/gi,"[list=I]$1[/list]");
rep(/<ul class=\"listloweralpha\" style=\"list-style-type\: lower-alpha\;\">(.*?)<\/ul>/gi,"[list=a]$1[/list]");
rep(/<ul class=\"listupperalpha\" style=\"list-style-type\: upper-alpha\;\">(.*?)<\/ul>/gi,"[list=A]$1[/list]");
rep(/<li>(.*?)<\/li>/gi,'[li]$1[/li]');
rep(/<code>(.*?)<\/code>/gi,"[code]$1[/code]");
rep(/<\/(strong|b)>/gi,"[/b]");
rep(/<(strong|b)>/gi,"[b]");
@ -149,42 +167,42 @@
// BBCode -> HTML from DFRN dialect
_dfrn_bbcode2html : function(s) {
s = tinymce.trim(s);
function rep(re, str) {
//modify code to keep stuff intact within [code][/code] blocks
//Waitman Gobble NO WARRANTY
var o = new Array();
var x = s.split("[code]");
var i = 0;
var si = "";
si = x.shift();
si = si.replace(re,str);
o.push(si);
for (i = 0; i < x.length; i++) {
var no = new Array();
var j = x.shift();
var g = j.split("[/code]");
no.push(g.shift());
si = g.shift();
si = si.replace(re,str);
no.push(si);
o.push(no.join("[/code]"));
}
s = o.join("[code]");
};
function rep(re, str) {
//modify code to keep stuff intact within [code][/code] blocks
//Waitman Gobble NO WARRANTY
var o = new Array();
var x = s.split("[code]");
var i = 0;
var si = "";
si = x.shift();
si = si.replace(re,str);
o.push(si);
for (i = 0; i < x.length; i++) {
var no = new Array();
var j = x.shift();
var g = j.split("[/code]");
no.push(g.shift());
si = g.shift();
si = si.replace(re,str);
no.push(si);
o.push(no.join("[/code]"));
}
s = o.join("[code]");
};
// example: [b] to <strong>
rep(/\n/gi,"<br />");
rep(/\[b\]/gi,"<strong>");
@ -193,43 +211,43 @@
rep(/\[\/i\]/gi,"</em>");
rep(/\[u\]/gi,"<u>");
rep(/\[\/u\]/gi,"</u>");
rep(/\[hr\]/gi,"<hr />");
rep(/\[hr\]/gi,"<hr />");
rep(/\[bookmark=([^\]]+)\](.*?)\[\/bookmark\]/gi,"<a class=\"bookmark\" href=\"$1\">$2</a>");
rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
rep(/\[img=(.*?)x(.*?)\](.*?)\[\/img\]/gi,"<img width=\"$1\" height=\"$2\" src=\"$3\" />");
rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
rep(/\[list\](.*?)\[\/list\]/gi, '<ul class="listbullet" style="list-style-type: circle;">$1</ul>');
rep(/\[list=\](.*?)\[\/list\]/gi, '<ul class="listnone" style="list-style-type: none;">$1</ul>');
rep(/\[list=1\](.*?)\[\/list\]/gi, '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>');
rep(/\[list=i\](.*?)\[\/list\]/gi,'<ul class="listlowerroman" style="list-style-type: lower-roman;">$1</ul>');
rep(/\[list=I\](.*?)\[\/list\]/gi, '<ul class="listupperroman" style="list-style-type: upper-roman;">$1</ul>');
rep(/\[list=a\](.*?)\[\/list\]/gi, '<ul class="listloweralpha" style="list-style-type: lower-alpha;">$1</ul>');
rep(/\[list=A\](.*?)\[\/list\]/gi, '<ul class="listupperalpha" style="list-style-type: upper-alpha;">$1</ul>');
rep(/\[li\](.*?)\[\/li\]/gi, '<li>$1</li>');
rep(/\[list\](.*?)\[\/list\]/gi, '<ul class="listbullet" style="list-style-type: circle;">$1</ul>');
rep(/\[list=\](.*?)\[\/list\]/gi, '<ul class="listnone" style="list-style-type: none;">$1</ul>');
rep(/\[list=1\](.*?)\[\/list\]/gi, '<ul class="listdecimal" style="list-style-type: decimal;">$1</ul>');
rep(/\[list=i\](.*?)\[\/list\]/gi,'<ul class="listlowerroman" style="list-style-type: lower-roman;">$1</ul>');
rep(/\[list=I\](.*?)\[\/list\]/gi, '<ul class="listupperroman" style="list-style-type: upper-roman;">$1</ul>');
rep(/\[list=a\](.*?)\[\/list\]/gi, '<ul class="listloweralpha" style="list-style-type: lower-alpha;">$1</ul>');
rep(/\[list=A\](.*?)\[\/list\]/gi, '<ul class="listupperalpha" style="list-style-type: upper-alpha;">$1</ul>');
rep(/\[li\](.*?)\[\/li\]/gi, '<li>$1</li>');
rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<span style=\"color: $1;\">$2</span>");
rep(/\[size=(.*?)\](.*?)\[\/size\]/gi,"<span style=\"font-size: $1;\">$2</span>");
rep(/\[code\](.*?)\[\/code\]/gi,"<code>$1</code>");
rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<blockquote>$1</blockquote>");
/* oembed */
function _b2h_cb(match, url) {
url = bin2hex(url);
function s_b2h(data) {
match = data;
}
$.ajax({
url: 'oembed/b2h?url=' + url,
async: false,
success: s_b2h,
dataType: 'html'
});
return match;
}
s = s.replace(/\[embed\](.*?)\[\/embed\]/gi, _b2h_cb);
/* /oembed */
/* oembed */
function _b2h_cb(match, url) {
url = bin2hex(url);
function s_b2h(data) {
match = data;
}
$.ajax({
url: 'oembed/b2h?url=' + url,
async: false,
success: s_b2h,
dataType: 'html'
});
return match;
}
s = s.replace(/\[embed\](.*?)\[\/embed\]/gi, _b2h_cb);
/* /oembed */
return s;
}

View file

@ -37,7 +37,7 @@ function admin_post(&$a){
$func($a);
}
}
goaway($a->get_baseurl() . '/admin/plugins/' . $a->argv[2] );
goaway($a->get_baseurl(true) . '/admin/plugins/' . $a->argv[2] );
return; // NOTREACHED
break;
case 'logs':
@ -49,7 +49,7 @@ function admin_post(&$a){
}
}
goaway($a->get_baseurl() . '/admin' );
goaway($a->get_baseurl(true) . '/admin' );
return; // NOTREACHED
}
@ -68,11 +68,11 @@ function admin_content(&$a) {
// array( url, name, extra css classes )
$aside = Array(
'site' => Array($a->get_baseurl()."/admin/site/", t("Site") , "site"),
'users' => Array($a->get_baseurl()."/admin/users/", t("Users") , "users"),
'plugins'=> Array($a->get_baseurl()."/admin/plugins/", t("Plugins") , "plugins"),
'themes' => Array($a->get_baseurl()."/admin/themes/", t("Themes") , "themes"),
'update' => Array($a->get_baseurl()."/admin/update/", t("Update") , "update")
'site' => Array($a->get_baseurl(true)."/admin/site/", t("Site") , "site"),
'users' => Array($a->get_baseurl(true)."/admin/users/", t("Users") , "users"),
'plugins'=> Array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"),
'themes' => Array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"),
'update' => Array($a->get_baseurl(true)."/admin/update/", t("Update") , "update")
);
/* get plugins admin page */
@ -81,18 +81,18 @@ function admin_content(&$a) {
$aside['plugins_admin']=Array();
foreach ($r as $h){
$plugin =$h['name'];
$aside['plugins_admin'][] = Array($a->get_baseurl()."/admin/plugins/".$plugin, $plugin, "plugin");
$aside['plugins_admin'][] = Array($a->get_baseurl(true)."/admin/plugins/".$plugin, $plugin, "plugin");
// temp plugins with admin
$a->plugins_admin[] = $plugin;
}
$aside['logs'] = Array($a->get_baseurl()."/admin/logs/", t("Logs"), "logs");
$aside['logs'] = Array($a->get_baseurl(true)."/admin/logs/", t("Logs"), "logs");
$t = get_markup_template("admin_aside.tpl");
$a->page['aside'] = replace_macros( $t, array(
'$admin' => $aside,
'$h_pending' => t('User registrations waiting for confirmation'),
'$admurl'=> $a->get_baseurl()."/admin/"
'$admurl'=> $a->get_baseurl(true)."/admin/"
));
@ -151,11 +151,7 @@ function admin_page_summary(&$a) {
$r = q("SELECT COUNT(id) as `count` FROM `register`");
$pending = $r[0]['count'];
$t = get_markup_template("admin_summary.tpl");
return replace_macros($t, array(
'$title' => t('Administration'),
@ -210,7 +206,7 @@ function admin_page_site_post(&$a){
$dfrn_only = ((x($_POST,'dfrn_only')) ? True : False);
$ostatus_disabled = !((x($_POST,'ostatus_disabled')) ? True : False);
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? True : False);
$ssl_policy = ((x($_POST,'ssl_policy')) ? intval($_POST['ssl_policy']) : 0);
set_config('config','sitename',$sitename);
if ($banner==""){
@ -222,6 +218,7 @@ function admin_page_site_post(&$a){
} else {
set_config('system','banner', $banner);
}
set_config('system','ssl_policy',$ssl_policy);
set_config('system','language', $language);
set_config('system','theme', $theme);
set_config('system','maximagesize', $maximagesize);
@ -258,7 +255,7 @@ function admin_page_site_post(&$a){
set_config('system','diaspora_enabled', $diaspora_enabled);
info( t('Site settings updated.') . EOL);
goaway($a->get_baseurl() . '/admin/site' );
goaway($a->get_baseurl(true) . '/admin/site' );
return; // NOTREACHED
}
@ -305,7 +302,13 @@ function admin_page_site(&$a) {
REGISTER_APPROVE => t("Requires approval"),
REGISTER_OPEN => t("Open")
);
$ssl_choices = array(
SSL_POLICY_NONE => t("No SSL policy, links will track page SSL state"),
SSL_POLICY_FULL => t("Force all links to use SSL"),
SSL_POLICY_SELFSIGN => t("Self-signed certificate, use SSL for local links only (discouraged)")
);
$t = get_markup_template("admin_site.tpl");
return replace_macros($t, array(
'$title' => t('Administration'),
@ -316,13 +319,13 @@ function admin_page_site(&$a) {
'$corporate' => t('Policies'),
'$advanced' => t('Advanced'),
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
// name, label, value, help string, extra data...
'$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), ""),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""),
'$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles"), $theme_choices),
'$ssl_policy' => array('ssl_policy', t("SSL link policy"), (string) intval(get_config('system','ssl_policy')), t("Determines whether generated links should be forced to use SSL"), $ssl_choices),
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
'$register_policy' => array('register_policy', t("Register policy"), $a->config['register_policy'], "", $register_choices),
@ -389,7 +392,7 @@ function admin_page_users_post(&$a){
user_deny($hash);
}
}
goaway($a->get_baseurl() . '/admin/users' );
goaway($a->get_baseurl(true) . '/admin/users' );
return; // NOTREACHED
}
@ -399,7 +402,7 @@ function admin_page_users(&$a){
$user = q("SELECT * FROM `user` WHERE `uid`=%d", intval($uid));
if (count($user)==0){
notice( 'User not found' . EOL);
goaway($a->get_baseurl() . '/admin/users' );
goaway($a->get_baseurl(true) . '/admin/users' );
return; // NOTREACHED
}
switch($a->argv[2]){
@ -418,7 +421,7 @@ function admin_page_users(&$a){
notice( sprintf( ($user[0]['blocked']?t("User '%s' unblocked"):t("User '%s' blocked")) , $user[0]['username']) . EOL);
}; break;
}
goaway($a->get_baseurl() . '/admin/users' );
goaway($a->get_baseurl(true) . '/admin/users' );
return; // NOTREACHED
}
@ -497,7 +500,7 @@ function admin_page_users(&$a){
// values //
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$pending' => $pending,
'$users' => $users,
@ -536,7 +539,7 @@ function admin_page_plugins(&$a){
info( sprintf( t("Plugin %s enabled."), $plugin ) );
}
set_config("system","addon", implode(", ",$a->plugins));
goaway($a->get_baseurl() . '/admin/plugins' );
goaway($a->get_baseurl(true) . '/admin/plugins' );
return; // NOTREACHED
}
// display plugin details
@ -569,7 +572,7 @@ function admin_page_plugins(&$a){
'$page' => t('Plugins'),
'$toggle' => t('Toggle'),
'$settings' => t('Settings'),
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$plugin' => $plugin,
'$status' => $status,
@ -607,7 +610,7 @@ function admin_page_plugins(&$a){
'$title' => t('Administration'),
'$page' => t('Plugins'),
'$submit' => t('Submit'),
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$function' => 'plugins',
'$plugins' => $plugins
));
@ -713,7 +716,7 @@ function admin_page_themes(&$a){
info( sprintf('Theme %s disabled.',$theme));
set_config('system','allowed_themes',$s);
goaway($a->get_baseurl() . '/admin/themes' );
goaway($a->get_baseurl(true) . '/admin/themes' );
return; // NOTREACHED
}
@ -742,7 +745,7 @@ function admin_page_themes(&$a){
'$page' => t('Themes'),
'$toggle' => t('Toggle'),
'$settings' => t('Settings'),
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$plugin' => $theme,
'$status' => $status,
@ -774,7 +777,7 @@ function admin_page_themes(&$a){
'$title' => t('Administration'),
'$page' => t('Themes'),
'$submit' => t('Submit'),
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$function' => 'themes',
'$plugins' => $xthemes,
'$experimental' => t('[Experimental]'),
@ -802,7 +805,7 @@ function admin_page_logs_post(&$a) {
}
info( t("Log settings updated.") );
goaway($a->get_baseurl() . '/admin/logs' );
goaway($a->get_baseurl(true) . '/admin/logs' );
return; // NOTREACHED
}
@ -856,7 +859,7 @@ readable.");
'$submit' => t('Submit'),
'$clear' => t('Clear'),
'$data' => $data,
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$logname' => get_config('system','logfile'),
// name, label, value, help string, extra data...
@ -901,7 +904,7 @@ function admin_page_remoteupdate(&$a) {
$tpl = get_markup_template("admin_remoteupdate.tpl");
return replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$submit' => t("Update now"),
'$close' => t("Close"),
'$localversion' => FRIENDICA_VERSION,

View file

@ -61,7 +61,7 @@ function contacts_post(&$a) {
if(! count($orig_record)) {
notice( t('Could not access contact record.') . EOL);
goaway($a->get_baseurl() . '/contacts');
goaway($a->get_baseurl(true) . '/contacts');
return; // NOTREACHED
}
@ -141,7 +141,7 @@ function contacts_content(&$a) {
if(! count($orig_record)) {
notice( t('Could not access contact record.') . EOL);
goaway($a->get_baseurl() . '/contacts');
goaway($a->get_baseurl(true) . '/contacts');
return; // NOTREACHED
}
@ -149,7 +149,7 @@ function contacts_content(&$a) {
// pull feed and consume it, which should subscribe to the hub.
proc_run('php',"include/poller.php","$contact_id");
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
goaway($a->get_baseurl(true) . '/contacts/' . $contact_id);
// NOTREACHED
}
@ -164,7 +164,7 @@ function contacts_content(&$a) {
//notice( t('Contact has been ') . (($blocked) ? t('blocked') : t('unblocked')) . EOL );
info( (($blocked) ? t('Contact has been blocked') : t('Contact has been unblocked')) . EOL );
}
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
goaway($a->get_baseurl(true) . '/contacts/' . $contact_id);
return; // NOTREACHED
}
@ -178,7 +178,7 @@ function contacts_content(&$a) {
if($r) {
info( (($readonly) ? t('Contact has been ignored') : t('Contact has been unignored')) . EOL );
}
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
goaway($a->get_baseurl(true) . '/contacts/' . $contact_id);
return; // NOTREACHED
}
@ -220,9 +220,9 @@ function contacts_content(&$a) {
contact_remove($orig_record[0]['id']);
info( t('Contact has been removed.') . EOL );
if(x($_SESSION,'return_url'))
goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
goaway($a->get_baseurl(true) . '/' . $_SESSION['return_url']);
else
goaway($a->get_baseurl() . '/contacts');
goaway($a->get_baseurl(true) . '/contacts');
return; // NOTREACHED
}
}
@ -233,7 +233,7 @@ function contacts_content(&$a) {
$contact = $a->data['contact'];
$tpl = get_markup_template('contact_head.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl()));
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true)));
require_once('include/contact_selectors.php');
@ -295,17 +295,17 @@ function contacts_content(&$a) {
$tabs = array(
array(
'label' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
'url' => $a->get_baseurl() . '/contacts/' . $contact_id . '/block',
'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/block',
'sel' => '',
),
array(
'label' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
'url' => $a->get_baseurl() . '/contacts/' . $contact_id . '/ignore',
'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/ignore',
'sel' => '',
),
array(
'label' => t('Repair'),
'url' => $a->get_baseurl() . '/crepair/' . $contact_id,
'url' => $a->get_baseurl(true) . '/crepair/' . $contact_id,
'sel' => '',
)
);
@ -322,7 +322,7 @@ function contacts_content(&$a) {
'$lbl_info1' => t('Contact Information / Notes'),
'$infedit' => t('Edit contact notes'),
'$common_text' => $common_text,
'$common_link' => $a->get_baseurl() . '/common/' . $contact['id'],
'$common_link' => $a->get_baseurl(true) . '/common/' . $contact['id'],
'$all_friends' => $all_friends,
'$relation_text' => $relation_text,
'$visit' => sprintf( t('Visit %s\'s profile [%s]'),$contact['name'],$contact['url']),
@ -397,30 +397,30 @@ function contacts_content(&$a) {
$tabs = array(
array(
'label' => t('All Contacts'),
'url' => $a->get_baseurl() . '/contacts/all',
'url' => $a->get_baseurl(true) . '/contacts/all',
'sel' => ($all) ? 'active' : '',
),
array(
'label' => t('Unblocked Contacts'),
'url' => $a->get_baseurl() . '/contacts',
'url' => $a->get_baseurl(true) . '/contacts',
'sel' => ((! $all) && (! $blocked) && (! $hidden) && (! $search) && (! $nets) && (! $ignored)) ? 'active' : '',
),
array(
'label' => t('Blocked Contacts'),
'url' => $a->get_baseurl() . '/contacts/blocked',
'url' => $a->get_baseurl(true) . '/contacts/blocked',
'sel' => ($blocked) ? 'active' : '',
),
array(
'label' => t('Ignored Contacts'),
'url' => $a->get_baseurl() . '/contacts/ignored',
'url' => $a->get_baseurl(true) . '/contacts/ignored',
'sel' => ($ignored) ? 'active' : '',
),
array(
'label' => t('Hidden Contacts'),
'url' => $a->get_baseurl() . '/contacts/hidden',
'url' => $a->get_baseurl(true) . '/contacts/hidden',
'sel' => ($hidden) ? 'active' : '',
),
@ -445,15 +445,16 @@ function contacts_content(&$a) {
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
WHERE `uid` = %d AND `pending` = 0 $sql_extra $sql_extra2 ",
WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 ",
intval($_SESSION['uid']));
if(count($r))
if(count($r)) {
$a->set_pager_total($r[0]['total']);
$total = $r[0]['total'];
}
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `pending` = 0 $sql_extra $sql_extra2 ORDER BY `name` ASC LIMIT %d , %d ",
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra $sql_extra2 ORDER BY `name` ASC LIMIT %d , %d ",
intval($_SESSION['uid']),
intval($a->pager['start']),
intval($a->pager['itemspage'])
@ -464,8 +465,6 @@ function contacts_content(&$a) {
if(count($r)) {
foreach($r as $rr) {
if($rr['self'])
continue;
switch($rr['rel']) {
case CONTACT_IS_FRIEND:
@ -518,7 +517,7 @@ function contacts_content(&$a) {
$o .= replace_macros($tpl,array(
'$header' => t('Contacts') . (($nets) ? ' - ' . network_to_name($nets) : ''),
'$tabs' => $t,
'$total' => $r[0]['total'],
'$total' => $total,
'$search' => $search_hdr,
'$desc' => t('Search your contacts'),
'$finding' => (strlen($search) ? t('Finding: ') . "'" . $search . "'" : ""),

View file

@ -207,6 +207,9 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
if($duplex == 1)
$params['duplex'] = 1;
if($user['page-flags'] == PAGE_COMMUNITY)
$params['page'] = 1;
logger('dfrn_confirm: Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA);
/**
@ -522,6 +525,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
$source_url = ((x($_POST,'source_url')) ? hex2bin($_POST['source_url']) : '');
$aes_key = ((x($_POST,'aes_key')) ? $_POST['aes_key'] : '');
$duplex = ((x($_POST,'duplex')) ? intval($_POST['duplex']) : 0 );
$page = ((x($_POST,'page')) ? intval($_POST['page']) : 0 );
$version_id = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0);
logger('dfrn_confirm: requestee contacted: ' . $node);
@ -677,6 +681,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
`blocked` = 0,
`pending` = 0,
`duplex` = %d,
`forum` = %d,
`network` = '%s' WHERE `id` = %d LIMIT 1
",
dbesc($photos[0]),
@ -687,6 +692,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
dbesc(datetime_convert()),
dbesc(datetime_convert()),
intval($duplex),
intval($page),
dbesc(NETWORK_DFRN),
intval($dfrn_record)
);

View file

@ -14,6 +14,8 @@ function dfrn_notify_post(&$a) {
$key = ((x($_POST,'key')) ? $_POST['key'] : '');
$dissolve = ((x($_POST,'dissolve')) ? intval($_POST['dissolve']) : 0);
$perm = ((x($_POST,'perm')) ? notags(trim($_POST['perm'])) : 'r');
$ssl_policy = ((x($_POST,'ssl_policy')) ? notags(trim($_POST['ssl_policy'])): 'none');
$page = ((x($_POST,'page')) ? intval($_POST['page']) : 0);
$writable = (-1);
if($dfrn_version >= 2.21) {
@ -86,14 +88,76 @@ function dfrn_notify_post(&$a) {
$importer = $r[0];
if(($writable != (-1)) && ($writable != $importer['writable'])) {
q("UPDATE `contact` SET `writable` = %d WHERE `id` = %d LIMIT 1",
intval($writable),
if((($writable != (-1)) && ($writable != $importer['writable'])) || ($importer['forum'] != $page)) {
q("UPDATE `contact` SET `writable` = %d, forum = %d WHERE `id` = %d LIMIT 1",
intval(($writable == (-1)) ? $importer['writable'] : $writable),
intval($page),
intval($importer['id'])
);
$importer['writable'] = $writable;
if($writable != (-1))
$importer['writable'] = $writable;
$importer['forum'] = $page;
}
// if contact's ssl policy changed, update our links
$ssl_changed = false;
if($ssl_policy == 'self' && strstr($importer['url'],'https:')) {
$ssl_changed = true;
$importer['url'] = str_replace('https:','http:',$importer['url']);
$importer['nurl'] = normalise_link($importer['url']);
$importer['photo'] = str_replace('https:','http:',$importer['photo']);
$importer['thumb'] = str_replace('https:','http:',$importer['thumb']);
$importer['micro'] = str_replace('https:','http:',$importer['micro']);
$importer['request'] = str_replace('https:','http:',$importer['request']);
$importer['notify'] = str_replace('https:','http:',$importer['notify']);
$importer['poll'] = str_replace('https:','http:',$importer['poll']);
$importer['confirm'] = str_replace('https:','http:',$importer['confirm']);
$importer['poco'] = str_replace('https:','http:',$importer['poco']);
}
if($ssl_policy == 'full' && strstr($importer['url'],'http:')) {
$ssl_changed = true;
$importer['url'] = str_replace('http:','https:',$importer['url']);
$importer['nurl'] = normalise_link($importer['url']);
$importer['photo'] = str_replace('http:','https:',$importer['photo']);
$importer['thumb'] = str_replace('http:','https:',$importer['thumb']);
$importer['micro'] = str_replace('http:','https:',$importer['micro']);
$importer['request'] = str_replace('http:','https:',$importer['request']);
$importer['notify'] = str_replace('http:','https:',$importer['notify']);
$importer['poll'] = str_replace('http:','https:',$importer['poll']);
$importer['confirm'] = str_replace('http:','https:',$importer['confirm']);
$importer['poco'] = str_replace('http:','https:',$importer['poco']);
}
if($ssl_changed) {
q("update contact set
url = '%s',
nurl = '%s',
photo = '%s',
thumb = '%s',
micro = '%s',
request = '%s',
notify = '%s',
poll = '%s',
confirm = '%s',
poco = '%s'
where id = %d limit 1",
dbesc($importer['url']),
dbesc($importer['nurl']),
dbesc($importer['photo']),
dbesc($importer['thumb']),
dbesc($importer['micro']),
dbesc($importer['request']),
dbesc($importer['notify']),
dbesc($importer['poll']),
dbesc($importer['confirm']),
dbesc($importer['poco']),
intval($importer['id'])
);
}
logger('dfrn_notify: received notify from ' . $importer['name'] . ' for ' . $importer['username']);
logger('dfrn_notify: data: ' . $data, LOGGER_DATA);

View file

@ -199,7 +199,7 @@ function dfrn_poll_post(&$a) {
$ptype = ((x($_POST,'type')) ? $_POST['type'] : '');
$dfrn_version = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0);
$perm = ((x($_POST,'perm')) ? $_POST['perm'] : 'r');
if($ptype === 'profile-check') {
if((strlen($challenge)) && (strlen($sec))) {
@ -358,8 +358,8 @@ function dfrn_poll_post(&$a) {
intval($contact_id)
);
}
}
}
header("Content-type: application/atom+xml");
$o = get_feed_for($a,$dfrn_id, $a->argv[1], $last_update, $direction);
echo $o;

View file

@ -43,7 +43,7 @@ function dfrn_request_post(&$a) {
return;
if($_POST['cancel']) {
if(x($_POST, 'cancel')) {
goaway(z_root());
}
@ -77,9 +77,10 @@ function dfrn_request_post(&$a) {
* Lookup the contact based on their URL (which is the only unique thing we have at the moment)
*/
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `self` = 0 LIMIT 1",
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND (`url` = '%s' OR `nurl` = '%s') AND `self` = 0 LIMIT 1",
intval(local_user()),
dbesc($dfrn_url)
dbesc($dfrn_url),
dbesc(normalise_link($dfrn_url))
);
if(count($r)) {
@ -666,7 +667,25 @@ function dfrn_request_content(&$a) {
$page_desc = sprintf( t('Diaspora members: Please do not use this form. Instead, enter "%s" into your Diaspora search bar.'),
$target_addr) . EOL . EOL;
$page_desc .= t("Please enter your 'Identity Address' from one of the following supported social networks:");
$page_desc .= t("Please enter your 'Identity Address' from one of the following supported communications networks:");
// see if we are allowed to have NETWORK_MAIL2 contacts
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
if(get_config('system','dfrn_only'))
$mail_disabled = 1;
if(! $mail_disabled) {
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
intval($a->profile['uid'])
);
if(! count($r))
$mail_disabled = 1;
}
$emailnet = (($mail_disabled) ? '' : t("<strike>Connect as an email follower</strike> \x28Coming soon\x29"));
$invite_desc = t('If you are not yet a member of the free social web, <a href="http://dir.friendica.com/siteinfo">follow this link to find a public Friendica site and join us today</a>.');
$o .= replace_macros($tpl,array(
'$header' => t('Friend/Connection Request'),
@ -682,6 +701,8 @@ function dfrn_request_content(&$a) {
'$diaspora' => t('Diaspora'),
'$diasnote' => t('- please share from your own site as noted above'),
'$your_address' => t('Your Identity Address:'),
'$invite_desc' => $invite_desc,
'$emailnet' => $emailnet,
'$submit' => t('Submit Request'),
'$cancel' => t('Cancel'),
'$nickname' => $a->argv[1],

View file

@ -25,10 +25,6 @@ function directory_post(&$a) {
function directory_content(&$a) {
$everything = (($a->argc > 1 && $a->argv[1] === 'all' && is_site_admin()) ? true : false);
if(x($_SESSION,'submanage') && intval($_SESSION['submanage']))
$everything = false;
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
notice( t('Public access denied.') . EOL);
return;
@ -52,12 +48,6 @@ function directory_content(&$a) {
}
$admin = '';
if(is_site_admin()) {
if($everything)
$admin = '<ul><li><div id="directory-admin-link"><a href="' . $a->get_baseurl() . '/directory' . '">' . t('Normal site view') . '</a></div></li></ul>';
else
$admin = '<ul><li><div id="directory-admin-link"><a href="' . $a->get_baseurl() . '/directory/all' . '">' . t('Admin - View all site entries') . '</a></div></li></ul>';
}
$o .= replace_macros($tpl, array(
'$search' => $search,
@ -73,17 +63,14 @@ function directory_content(&$a) {
$search = dbesc($search);
$sql_extra = ((strlen($search)) ? " AND MATCH (`profile`.`name`, `user`.`nickname`, `pdesc`, `locality`,`region`,`country-name`,`gender`,`marital`,`sexual`,`about`,`romance`,`work`,`education`,`pub_keywords`,`prv_keywords` ) AGAINST ('$search' IN BOOLEAN MODE) " : "");
$publish = ((get_config('system','publish_all') || $everything) ? '' : " AND `publish` = 1 " );
$publish = ((get_config('system','publish_all')) ? '' : " AND `publish` = 1 " );
$r = q("SELECT COUNT(*) AS `total` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra ");
if(count($r))
$a->set_pager_total($r[0]['total']);
if($everything)
$order = " ORDER BY `register_date` DESC ";
else
$order = " ORDER BY `name` ASC ";
$order = " ORDER BY `name` ASC ";
$r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra $order LIMIT %d , %d ",

View file

@ -16,7 +16,15 @@ function display_content(&$a) {
$o = '<div id="live-display"></div>' . "\r\n";
$a->page['htmlhead'] .= '<script>$(document).ready(function() { $(".comment-edit-wrapper textarea").contact_autocomplete(baseurl+"/acl"); });</script>';
$a->page['htmlhead'] .= <<<EOT
<script>
$(document).ready(function() {
$(".comment-edit-wrapper textarea").contact_autocomplete(baseurl+"/acl");
// make auto-complete work in more places
$(".wall-item-comment-wrapper textarea").contact_autocomplete(baseurl+"/acl");
});
</script>
EOT;
$nick = (($a->argc > 1) ? $a->argv[1] : '');

23
mod/filer.php Executable file
View file

@ -0,0 +1,23 @@
<?php
require_once('include/security.php');
require_once('include/bbcode.php');
require_once('include/items.php');
function filer_content(&$a) {
if(! local_user()) {
killme();
}
$term = notags(trim($_GET['term']));
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
logger('filer: tag ' . $term . ' item ' . $item_id);
if($item_id && strlen($term))
file_tag_save_file(local_user(),$item_id,$term);
killme();
}

21
mod/filerm.php Normal file
View file

@ -0,0 +1,21 @@
<?php
function filerm_content(&$a) {
if(! local_user()) {
killme();
}
$term = notags(trim($_GET['term']));
$item_id = (($a->argc > 1) ? notags(trim($a->argv[1])) : 0);
logger('filerm: tag ' . $term . ' item ' . $item_id);
if($item_id && strlen($term))
file_tag_unsave_file(local_user(),$item_id,$term);
if(x($_SESSION,'return_url'))
goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
killme();
}

View file

@ -21,6 +21,8 @@ function group_post(&$a) {
}
if(($a->argc == 2) && ($a->argv[1] === 'new')) {
check_form_security_token_redirectOnErr('/group/new', 'group_edit');
$name = notags(trim($_POST['groupname']));
$r = group_add(local_user(),$name);
if($r) {
@ -35,6 +37,8 @@ function group_post(&$a) {
return; // NOTREACHED
}
if(($a->argc == 2) && (intval($a->argv[1]))) {
check_form_security_token_redirectOnErr('/group', 'group_edit');
$r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($a->argv[1]),
intval(local_user())
@ -62,7 +66,8 @@ function group_post(&$a) {
}
function group_content(&$a) {
$change = false;
if(! local_user()) {
notice( t('Permission denied') . EOL);
return;
@ -83,14 +88,17 @@ function group_content(&$a) {
return replace_macros($tpl, $context + array(
'$title' => t('Create a group of contacts/friends.'),
'$gname' => array('groupname',t('Group Name: '),$group['name'], ''),
'$gname' => array('groupname',t('Group Name: '), '', ''),
'$gid' => 'new',
'$form_security_token' => get_form_security_token("group_edit"),
));
}
if(($a->argc == 3) && ($a->argv[1] === 'drop')) {
check_form_security_token_redirectOnErr('/group', 'group_drop', 't');
if(intval($a->argv[2])) {
$r = q("SELECT `name` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($a->argv[2]),
@ -108,6 +116,8 @@ function group_content(&$a) {
}
if(($a->argc > 2) && intval($a->argv[1]) && intval($a->argv[2])) {
check_form_security_token_ForbiddenOnErr('group_member_change', 't');
$r = q("SELECT `id` FROM `contact` WHERE `id` = %d AND `uid` = %d and `self` = 0 and `blocked` = 0 AND `pending` = 0 LIMIT 1",
intval($a->argv[2]),
intval(local_user())
@ -155,7 +165,8 @@ function group_content(&$a) {
$drop_tpl = get_markup_template('group_drop.tpl');
$drop_txt = replace_macros($drop_tpl, array(
'$id' => $group['id'],
'$delete' => t('Delete')
'$delete' => t('Delete'),
'$form_security_token' => get_form_security_token("group_drop"),
));
$celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
@ -166,6 +177,7 @@ function group_content(&$a) {
'$gname' => array('groupname',t('Group Name: '),$group['name'], ''),
'$gid' => $group['id'],
'$drop' => $drop_txt,
'$form_security_token' => get_form_security_token('group_edit'),
);
}
@ -177,14 +189,14 @@ function group_content(&$a) {
'label_members' => t('Members'),
'members' => array(),
'label_contacts' => t('All Contacts'),
'contacts' => arraY(),
'contacts' => array(),
);
$sec_token = addslashes(get_form_security_token('group_member_change'));
$textmode = (($switchtotext && (count($members) > $switchtotext)) ? true : false);
foreach($members as $member) {
if($member['url']) {
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . '); return true;';
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . ',\'' . $sec_token . '\'); return true;';
$groupeditor['members'][] = micropro($member,true,'mpgroup', $textmode);
}
else
@ -199,7 +211,7 @@ function group_content(&$a) {
$textmode = (($switchtotext && (count($r) > $switchtotext)) ? true : false);
foreach($r as $member) {
if(! in_array($member['id'],$preselected)) {
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . '); return true;';
$member['click'] = 'groupChangeMember(' . $group['id'] . ',' . $member['id'] . ',\'' . $sec_token . '\'); return true;';
$groupeditor['contacts'][] = micropro($member,true,'mpall', $textmode);
}
}

View file

@ -21,7 +21,7 @@ function hcard_init(&$a) {
profile_load($a,$which,$profile);
if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
$a->page['htmlhead'] .= '<meta name="friendika.community" content="true" />';
$a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
}
if(x($a->profile,'openidserver'))
$a->page['htmlhead'] .= '<link rel="openid.server" href="' . $a->profile['openidserver'] . '" />' . "\r\n";

View file

@ -425,110 +425,7 @@ function item_post(&$a) {
if(count($tags)) {
foreach($tags as $tag) {
if(isset($profile))
unset($profile);
if(strpos($tag,'#') === 0) {
if(strpos($tag,'[url='))
continue;
$basetag = str_replace('_',' ',substr($tag,1));
$body = str_replace($tag,'#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]',$body);
$newtag = '#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]';
if(! stristr($str_tags,$newtag)) {
if(strlen($str_tags))
$str_tags .= ',';
$str_tags .= $newtag;
}
continue;
}
if(strpos($tag,'@') === 0) {
if(strpos($tag,'[url='))
continue;
$stat = false;
$name = substr($tag,1);
if((strpos($name,'@')) || (strpos($name,'http://'))) {
$newname = $name;
$links = @lrdd($name);
if(count($links)) {
foreach($links as $link) {
if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page')
$profile = $link['@attributes']['href'];
if($link['@attributes']['rel'] === 'salmon') {
if(strlen($inform))
$inform .= ',';
$inform .= 'url:' . str_replace(',','%2c',$link['@attributes']['href']);
}
}
}
}
else {
$newname = $name;
$alias = '';
$tagcid = 0;
if(strrpos($newname,'+')) {
$tagcid = intval(substr($newname,strrpos($newname,'+') + 1));
if(strpos($name,' '))
$name = substr($name,0,strpos($name,' '));
}
if($tagcid) {
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($tagcid),
intval($profile_uid)
);
}
elseif(strstr($name,'_') || strstr($name,' ')) {
$newname = str_replace('_',' ',$name);
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
intval($profile_uid)
);
}
else {
$r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
dbesc($name),
dbesc($name),
intval($profile_uid)
);
}
if(count($r)) {
$profile = $r[0]['url'];
if($r[0]['network'] === 'stat') {
$newname = $r[0]['nick'];
$stat = true;
if($r[0]['alias'])
$alias = $r[0]['alias'];
}
else
$newname = $r[0]['name'];
if(strlen($inform))
$inform .= ',';
$inform .= 'cid:' . $r[0]['id'];
}
}
if($profile) {
$body = str_replace('@' . $name, '@' . '[url=' . $profile . ']' . $newname . '[/url]', $body);
$profile = str_replace(',','%2c',$profile);
$newtag = '@[url=' . $profile . ']' . $newname . '[/url]';
if(! stristr($str_tags,$newtag)) {
if(strlen($str_tags))
$str_tags .= ',';
$str_tags .= $newtag;
}
// Status.Net seems to require the numeric ID URL in a mention if the person isn't
// subscribed to you. But the nickname URL is OK if they are. Grrr. We'll tag both.
if(strlen($alias)) {
$newtag = '@[url=' . $alias . ']' . $newname . '[/url]';
if(! stristr($str_tags,$newtag)) {
if(strlen($str_tags))
$str_tags .= ',';
$str_tags .= $newtag;
}
}
}
}
handle_tag($a, $body, $inform, $str_tags, $profile_uid, $tag);
}
}
@ -627,7 +524,7 @@ function item_post(&$a) {
if($preview) {
require_once('include/conversation.php');
$o = conversation(&$a,array(array_merge($contact_record,$datarray)),'search',false,true);
$o = conversation($a,array(array_merge($contact_record,$datarray)),'search',false,true);
logger('preview: ' . $o);
echo json_encode(array('preview' => $o));
killme();
@ -922,3 +819,142 @@ function item_content(&$a) {
drop_item($a->argv[2]);
}
}
/**
* This function removes the tag $tag from the text $body and replaces it with
* the appropiate link.
*
* @param unknown_type $body the text to replace the tag in
* @param unknown_type $inform a comma-seperated string containing everybody to inform
* @param unknown_type $str_tags string to add the tag to
* @param unknown_type $profile_uid
* @param unknown_type $tag the tag to replace
*/
function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
//is it a hash tag?
if(strpos($tag,'#') === 0) {
//if the tag is replaced...
if(strpos($tag,'[url='))
//...do nothing
return;
//base tag has the tags name only
$basetag = str_replace('_',' ',substr($tag,1));
//create text for link
$newtag = '#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]';
//replace tag by the link
$body = str_replace($tag, $newtag, $body);
//is the link already in str_tags?
if(! stristr($str_tags,$newtag)) {
//append or set str_tags
if(strlen($str_tags))
$str_tags .= ',';
$str_tags .= $newtag;
}
return;
}
//is it a person tag?
if(strpos($tag,'@') === 0) {
//is it already replaced?
if(strpos($tag,'[url='))
return;
$stat = false;
//get the person's name
$name = substr($tag,1);
//is it a link or a full dfrn address?
if((strpos($name,'@')) || (strpos($name,'http://'))) {
$newname = $name;
//get the profile links
$links = @lrdd($name);
if(count($links)) {
//for all links, collect how is to inform and how's profile is to link
foreach($links as $link) {
if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page')
$profile = $link['@attributes']['href'];
if($link['@attributes']['rel'] === 'salmon') {
if(strlen($inform))
$inform .= ',';
$inform .= 'url:' . str_replace(',','%2c',$link['@attributes']['href']);
}
}
}
} else { //if it is a name rather than an address
$newname = $name;
$alias = '';
$tagcid = 0;
//is it some generated name?
if(strrpos($newname,'+')) {
//get the id
$tagcid = intval(substr($newname,strrpos($newname,'+') + 1));
//remove the next word from tag's name
if(strpos($name,' ')) {
$name = substr($name,0,strpos($name,' '));
}
}
if($tagcid) { //if there was an id
//select contact with that id from the logged in user's contact list
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($tagcid),
intval($profile_uid)
);
} elseif(strstr($name,'_') || strstr($name,' ')) { //no id
//get the real name
$newname = str_replace('_',' ',$name);
//select someone from this user's contacts by name
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname),
intval($profile_uid)
);
} else {
//select someone by attag or nick and the name passed in
$r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
dbesc($name),
dbesc($name),
intval($profile_uid)
);
}
//$r is set, if someone could be selected
if(count($r)) {
$profile = $r[0]['url'];
//set newname to nick, find alias
if($r[0]['network'] === 'stat') {
$newname = $r[0]['nick'];
$stat = true;
if($r[0]['alias'])
$alias = $r[0]['alias'];
}
else
$newname = $r[0]['name'];
//add person's id to $inform
if(strlen($inform))
$inform .= ',';
$inform .= 'cid:' . $r[0]['id'];
}
}
//if there is an url for this persons profile
if(isset($profile)) {
//create profile link
$profile = str_replace(',','%2c',$profile);
$newtag = '@[url=' . $profile . ']' . $newname . '[/url]';
$body = str_replace('@' . $name, $newtag, $body);
//append tag to str_tags
if(! stristr($str_tags,$newtag)) {
if(strlen($str_tags))
$str_tags .= ',';
$str_tags .= $newtag;
}
// Status.Net seems to require the numeric ID URL in a mention if the person isn't
// subscribed to you. But the nickname URL is OK if they are. Grrr. We'll tag both.
if(strlen($alias)) {
$newtag = '@[url=' . $alias . ']' . $newname . '[/url]';
if(! stristr($str_tags,$newtag)) {
if(strlen($str_tags))
$str_tags .= ',';
$str_tags .= $newtag;
}
}
}
}
}

View file

@ -74,7 +74,7 @@ function manage_post(&$a) {
if($limited_id)
$_SESSION['submanage'] = $original_id;
goaway($a->get_baseurl() . '/profile/' . $a->user['nickname']);
goaway($a->get_baseurl(true) . '/profile/' . $a->user['nickname']);
// NOTREACHED
}

View file

@ -10,17 +10,19 @@ function message_post(&$a) {
return;
}
$replyto = ((x($_POST,'replyto')) ? notags(trim($_POST['replyto'])) : '');
$subject = ((x($_POST,'subject')) ? notags(trim($_POST['subject'])) : '');
$body = ((x($_POST,'body')) ? escape_tags(trim($_POST['body'])) : '');
$recipient = ((x($_POST,'messageto')) ? intval($_POST['messageto']) : 0 );
$replyto = ((x($_REQUEST,'replyto')) ? notags(trim($_REQUEST['replyto'])) : '');
$subject = ((x($_REQUEST,'subject')) ? notags(trim($_REQUEST['subject'])) : '');
$body = ((x($_REQUEST,'body')) ? escape_tags(trim($_REQUEST['body'])) : '');
$recipient = ((x($_REQUEST,'messageto')) ? intval($_REQUEST['messageto']) : 0 );
$ret = send_message($recipient, $body, $subject, $replyto);
$norecip = false;
switch($ret){
case -1:
notice( t('No recipient selected.') . EOL );
$norecip = true;
break;
case -2:
notice( t('Unable to locate contact information.') . EOL );
@ -35,6 +37,13 @@ function message_post(&$a) {
info( t('Message sent.') . EOL );
}
// fake it to go back to the input form if no recipient listed
if($norecip) {
$a->argc = 2;
$a->argv[1] = 'new';
}
}
function message_content(&$a) {
@ -47,23 +56,23 @@ function message_content(&$a) {
return;
}
$myprofile = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
$myprofile = $a->get_baseurl(true) . '/profile/' . $a->user['nickname'];
$tabs = array(
array(
'label' => t('Inbox'),
'url'=> $a->get_baseurl() . '/message',
'url'=> $a->get_baseurl(true) . '/message',
'sel'=> (($a->argc == 1) ? 'active' : ''),
),
array(
'label' => t('Outbox'),
'url' => $a->get_baseurl() . '/message/sent',
'url' => $a->get_baseurl(true) . '/message/sent',
'sel'=> (($a->argv[1] == 'sent') ? 'active' : ''),
),
array(
'label' => t('New Message'),
'url' => $a->get_baseurl() . '/message/new',
'url' => $a->get_baseurl(true) . '/message/new',
'sel'=> (($a->argv[1] == 'new') ? 'active' : ''),
),
);
@ -90,7 +99,7 @@ function message_content(&$a) {
if($r) {
info( t('Message deleted.') . EOL );
}
goaway($a->get_baseurl() . '/message' );
goaway($a->get_baseurl(true) . '/message' );
}
else {
$r = q("SELECT `parent-uri`,`convid` FROM `mail` WHERE `id` = %d AND `uid` = %d LIMIT 1",
@ -120,7 +129,7 @@ function message_content(&$a) {
if($r)
info( t('Conversation removed.') . EOL );
}
goaway($a->get_baseurl() . '/message' );
goaway($a->get_baseurl(true) . '/message' );
}
}
@ -129,23 +138,30 @@ function message_content(&$a) {
$o .= $header;
$plaintext = false;
if(intval(get_pconfig(local_user(),'system','plaintext')))
$plaintext = true;
$tpl = get_markup_template('msg-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$nickname' => $a->user['nickname'],
'$linkurl' => t('Please enter a link URL:')
));
$preselect = (isset($a->argv[2])?array($a->argv[2]):false);
$select = contact_select('messageto','message-to-select', $preselect, 4, true);
$select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10);
$tpl = get_markup_template('prv_message.tpl');
$o .= replace_macros($tpl,array(
'$header' => t('Send Private Message'),
'$to' => t('To:'),
'$subject' => t('Subject:'),
'$subjtxt' => '',
'$subjtxt' => ((x($_REQUEST,'subject')) ? strip_tags($_REQUEST['subject']) : ''),
'$text' => ((x($_REQUEST,'body')) ? escape_tags(htmlspecialchars($_REQUEST['body'])) : ''),
'$readonly' => '',
'$yourmessage' => t('Your message:'),
'$select' => $select,
@ -176,9 +192,9 @@ function message_content(&$a) {
$a->set_pager_total($r[0]['total']);
$r = q("SELECT max(`mail`.`created`) AS `mailcreated`, min(`mail`.`seen`) AS `mailseen`,
`mail`.* , `contact`.`name`, `contact`.`url`, `contact`.`thumb`
`mail`.* , `contact`.`name`, `contact`.`url`, `contact`.`thumb` , `contact`.`network`
FROM `mail` LEFT JOIN `contact` ON `mail`.`contact-id` = `contact`.`id`
WHERE `mail`.`uid` = %d AND `from-url` $eq '%s' GROUP BY `parent-uri` ORDER BY `created` DESC LIMIT %d , %d ",
WHERE `mail`.`uid` = %d AND `from-url` $eq '%s' GROUP BY `parent-uri` ORDER BY `mailcreated` DESC LIMIT %d , %d ",
intval(local_user()),
dbesc($myprofile),
intval($a->pager['start']),
@ -194,7 +210,7 @@ function message_content(&$a) {
$o .= replace_macros($tpl, array(
'$id' => $rr['id'],
'$from_name' =>$rr['from-name'],
'$from_url' => (($rr['network'] === NETWORK_DFRN) ? $a->get_baseurl() . '/redir/' . $rr['contact-id'] : $rr['url']),
'$from_url' => (($rr['network'] === NETWORK_DFRN) ? $a->get_baseurl(true) . '/redir/' . $rr['contact-id'] : $rr['url']),
'$sparkle' => ' sparkle',
'$from_photo' => $rr['thumb'],
'$subject' => template_escape((($rr['mailseen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>')),
@ -251,7 +267,7 @@ function message_content(&$a) {
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$nickname' => $a->user['nickname'],
'$baseurl' => $a->get_baseurl()
'$baseurl' => $a->get_baseurl(true)
));
@ -262,7 +278,7 @@ function message_content(&$a) {
$sparkle = '';
}
else {
$from_url = $a->get_baseurl() . '/redir/' . $message['contact-id'];
$from_url = $a->get_baseurl(true) . '/redir/' . $message['contact-id'];
$sparkle = ' sparkle';
}
$o .= replace_macros($tpl, array(
@ -289,6 +305,7 @@ function message_content(&$a) {
'$subjtxt' => template_escape($message['title']),
'$readonly' => ' readonly="readonly" style="background: #BBBBBB;" ',
'$yourmessage' => t('Your message:'),
'$text' => '',
'$select' => $select,
'$parent' => $parent,
'$upload' => t('Upload photo'),

View file

@ -44,21 +44,26 @@ function network_init(&$a) {
}
$a->page['aside'] .= group_side('network','network',true,$group_id);
$a->page['aside'] .= networks_widget($a->get_baseurl() . '/network',(($_GET['nets']) ? $_GET['nets'] : ''));
$a->page['aside'] .= networks_widget($a->get_baseurl(true) . '/network',(x($_GET, 'nets') ? $_GET['nets'] : ''));
$a->page['aside'] .= saved_searches($search);
$a->page['aside'] .= fileas_widget($a->get_baseurl(true) . '/network',(x($_GET, 'file') ? $_GET['file'] : ''));
}
function saved_searches($search) {
$a = get_app();
$srchurl = '/network?f='
. ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
. ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
. ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
. ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
. ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
. ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '');
. ((x($_GET,'conv')) ? '&conv=' . $_GET['conv'] : '')
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
. ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '');
;
$o = '';
@ -130,15 +135,15 @@ function network_content(&$a, $update = 0) {
$starred_active = 'active';
}
if($_GET['bmark']) {
if(x($_GET,'bmark')) {
$bookmarked_active = 'active';
}
if($_GET['conv']) {
if(x($_GET,'conv')) {
$conv_active = 'active';
}
if($_GET['spam']) {
if(x($_GET,'spam')) {
$spam_active = 'active';
}
@ -164,38 +169,38 @@ function network_content(&$a, $update = 0) {
$tabs = array(
array(
'label' => t('Commented Order'),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '?f=&cid=' . $_GET['cid'] : ''),
'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '?f=&cid=' . $_GET['cid'] : ''),
'sel'=>$all_active,
),
array(
'label' => t('Posted Order'),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : ''),
'sel'=>$postord_active,
),
array(
'label' => t('Personal'),
'url' => $a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&conv=1',
'sel' => $conv_active,
),
array(
'label' => t('New'),
'url' => $a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . '/new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
'url' => $a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . '/new' . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : ''),
'sel' => $new_active,
),
array(
'label' => t('Starred'),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
'sel'=>$starred_active,
),
array(
'label' => t('Bookmarks'),
'url'=>$a->get_baseurl() . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&bmark=1',
'label' => t('Shared Links'),
'url'=>$a->get_baseurl(true) . '/' . str_replace('/new', '', $a->cmd) . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&bmark=1',
'sel'=>$bookmarked_active,
),
// array(
// 'label' => t('Spam'),
// 'url'=>$a->get_baseurl() . '/network?f=&spam=1'
// 'url'=>$a->get_baseurl(true) . '/network?f=&spam=1'
// 'sel'=> $spam_active,
// ),
@ -226,6 +231,7 @@ function network_content(&$a, $update = 0) {
$nets = ((x($_GET,'nets')) ? $_GET['nets'] : '');
$cmin = ((x($_GET,'cmin')) ? intval($_GET['cmin']) : 0);
$cmax = ((x($_GET,'cmax')) ? intval($_GET['cmax']) : 99);
$file = ((x($_GET,'file')) ? $_GET['file'] : '');
if(($a->argc > 2) && $a->argv[2] === 'new')
$nouveau = true;
@ -239,13 +245,13 @@ function network_content(&$a, $update = 0) {
}
}
if(x($_GET,'search'))
if(x($_GET,'search') || x($_GET,'file'))
$nouveau = true;
if($cid)
$def_acl = array('allow_cid' => '<' . intval($cid) . '>');
if(! $update) {
if(group) {
if($group) {
if(($t = group_public_members($group)) && (! get_pconfig(local_user(),'system','nowarn_insecure'))) {
notice( sprintf( tt('Warning: This group contains %s member from an insecure network.',
'Warning: This group contains %s members from an insecure network.',
@ -296,7 +302,7 @@ function network_content(&$a, $update = 0) {
if($update)
killme();
notice( t('No such group') . EOL );
goaway($a->get_baseurl() . '/network');
goaway($a->get_baseurl(true) . '/network');
// NOTREACHED
}
@ -328,7 +334,7 @@ function network_content(&$a, $update = 0) {
}
else {
notice( t('Invalid contact.') . EOL);
goaway($a->get_baseurl() . '/network');
goaway($a->get_baseurl(true) . '/network');
// NOTREACHED
}
}
@ -358,6 +364,7 @@ function network_content(&$a, $update = 0) {
. ((x($_GET,'nets')) ? '&nets=' . $_GET['nets'] : '')
. ((x($_GET,'cmin')) ? '&cmin=' . $_GET['cmin'] : '')
. ((x($_GET,'cmax')) ? '&cmax=' . $_GET['cmax'] : '')
. ((x($_GET,'file')) ? '&file=' . $_GET['file'] : '')
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
@ -371,6 +378,9 @@ function network_content(&$a, $update = 0) {
dbesc('\\]' . preg_quote($search) . '\\[')
);
}
if(strlen($file)) {
$sql_extra .= file_tag_file_query('item',$file);
}
if($conv) {
$myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname'];
@ -403,7 +413,8 @@ function network_content(&$a, $update = 0) {
if(count($r)) {
$a->set_pager_total($r[0]['total']);
$a->set_pager_itemspage(40);
$itemspage_network = get_pconfig(local_user(),'system','itemspage_network');
$a->set_pager_itemspage(((intval($itemspage_network)) ? $itemspage_network : 40));
}
$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
}
@ -490,7 +501,9 @@ function network_content(&$a, $update = 0) {
$items = conv_sort($items,$ordering);
}
} else {
$items = array();
}
}

View file

@ -42,12 +42,12 @@ function notifications_post(&$a) {
intval(local_user())
);
}
goaway($a->get_baseurl() . '/notifications/intros');
goaway($a->get_baseurl(true) . '/notifications/intros');
}
if($_POST['submit'] == t('Ignore')) {
$r = q("UPDATE `intro` SET `ignore` = 1 WHERE `id` = %d LIMIT 1",
intval($intro_id));
goaway($a->get_baseurl() . '/notifications/intros');
goaway($a->get_baseurl(true) . '/notifications/intros');
}
}
}
@ -69,32 +69,32 @@ function notifications_content(&$a) {
$tabs = array(
array(
'label' => t('System'),
'url'=>$a->get_baseurl() . '/notifications/system',
'url'=>$a->get_baseurl(true) . '/notifications/system',
'sel'=> (($a->argv[1] == 'system') ? 'active' : ''),
),
array(
'label' => t('Network'),
'url'=>$a->get_baseurl() . '/notifications/network',
'url'=>$a->get_baseurl(true) . '/notifications/network',
'sel'=> (($a->argv[1] == 'network') ? 'active' : ''),
),
array(
'label' => t('Personal'),
'url'=>$a->get_baseurl() . '/notifications/personal',
'url'=>$a->get_baseurl(true) . '/notifications/personal',
'sel'=> (($a->argv[1] == 'personal') ? 'active' : ''),
),
array(
'label' => t('Home'),
'url' => $a->get_baseurl() . '/notifications/home',
'url' => $a->get_baseurl(true) . '/notifications/home',
'sel'=> (($a->argv[1] == 'home') ? 'active' : ''),
),
array(
'label' => t('Introductions'),
'url' => $a->get_baseurl() . '/notifications/intros',
'url' => $a->get_baseurl(true) . '/notifications/intros',
'sel'=> (($a->argv[1] == 'intros') ? 'active' : ''),
),
array(
'label' => t('Messages'),
'url' => $a->get_baseurl() . '/message',
'url' => $a->get_baseurl(true) . '/message',
'sel'=> '',
),
);
@ -244,7 +244,7 @@ function notifications_content(&$a) {
switch($it['verb']){
case ACTIVITY_LIKE:
$notif_content .= replace_macros($tpl_item_likes,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']),
'$item_when' => relative_date($it['created'])
@ -253,7 +253,7 @@ function notifications_content(&$a) {
case ACTIVITY_DISLIKE:
$notif_content .= replace_macros($tpl_item_dislikes,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']),
'$item_when' => relative_date($it['created'])
@ -267,7 +267,7 @@ function notifications_content(&$a) {
$it['fname'] = $obj->title;
$notif_content .= replace_macros($tpl_item_friends,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']),
'$item_when' => relative_date($it['created'])
@ -281,7 +281,7 @@ function notifications_content(&$a) {
$tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments);
$notif_content .= replace_macros($tpl,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => $item_text,
'$item_when' => relative_date($it['created'])
@ -314,7 +314,7 @@ function notifications_content(&$a) {
if (count($r) > 0) {
foreach ($r as $it) {
$notif_content .= replace_macros($not_tpl,array(
'$item_link' => $a->get_baseurl().'/notify/view/'. $it['id'],
'$item_link' => $a->get_baseurl(true).'/notify/view/'. $it['id'],
'$item_image' => $it['photo'],
'$item_text' => strip_tags(bbcode($it['msg'])),
'$item_when' => relative_date($it['date'])
@ -334,7 +334,7 @@ function notifications_content(&$a) {
$notif_tpl = get_markup_template('notifications.tpl');
$myurl = $a->get_baseurl() . '/profile/'. $a->user['nickname'];
$myurl = $a->get_baseurl(true) . '/profile/'. $a->user['nickname'];
$myurl = substr($myurl,strpos($myurl,'://')+3);
$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
$diasp_url = str_replace('/profile/','/u/',$myurl);
@ -369,7 +369,7 @@ function notifications_content(&$a) {
switch($it['verb']){
case ACTIVITY_LIKE:
$notif_content .= replace_macros($tpl_item_likes,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']),
'$item_when' => relative_date($it['created'])
@ -378,7 +378,7 @@ function notifications_content(&$a) {
case ACTIVITY_DISLIKE:
$notif_content .= replace_macros($tpl_item_dislikes,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']),
'$item_when' => relative_date($it['created'])
@ -392,7 +392,7 @@ function notifications_content(&$a) {
$it['fname'] = $obj->title;
$notif_content .= replace_macros($tpl_item_friends,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']),
'$item_when' => relative_date($it['created'])
@ -406,7 +406,7 @@ function notifications_content(&$a) {
$tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments);
$notif_content .= replace_macros($tpl,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => $item_text,
'$item_when' => relative_date($it['created'])
@ -456,7 +456,7 @@ function notifications_content(&$a) {
switch($it['verb']){
case ACTIVITY_LIKE:
$notif_content .= replace_macros($tpl_item_likes,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']),
'$item_when' => relative_date($it['created'])
@ -465,7 +465,7 @@ function notifications_content(&$a) {
break;
case ACTIVITY_DISLIKE:
$notif_content .= replace_macros($tpl_item_dislikes,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']),
'$item_when' => relative_date($it['created'])
@ -479,7 +479,7 @@ function notifications_content(&$a) {
$it['fname'] = $obj->title;
$notif_content .= replace_macros($tpl_item_friends,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']),
'$item_when' => relative_date($it['created'])
@ -488,7 +488,7 @@ function notifications_content(&$a) {
break;
default:
$notif_content .= replace_macros($tpl_item_comments,array(
'$item_link' => $a->get_baseurl().'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
'$item_image' => $it['author-avatar'],
'$item_text' => sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname']),
'$item_when' => relative_date($it['created'])

View file

@ -20,7 +20,7 @@ function notify_init(&$a) {
goaway($r[0]['link']);
}
goaway($a->get_baseurl());
goaway($a->get_baseurl(true));
}
if($a->argc > 2 && $a->argv[1] === 'mark' && $a->argv[2] === 'all' ) {
@ -51,7 +51,7 @@ function notify_content(&$a) {
if (count($r) > 0) {
foreach ($r as $it) {
$notif_content .= replace_macros($not_tpl,array(
'$item_link' => $a->get_baseurl().'/notify/view/'. $it['id'],
'$item_link' => $a->get_baseurl(true).'/notify/view/'. $it['id'],
'$item_image' => $it['photo'],
'$item_text' => strip_tags(bbcode($it['msg'])),
'$item_when' => relative_date($it['date'])

View file

@ -10,6 +10,8 @@ function openid_content(&$a) {
if($noid)
goaway(z_root());
logger('mod_openid ' . print_r($_REQUEST,true), LOGGER_DATA);
if((x($_GET,'openid_mode')) && (x($_SESSION,'openid'))) {
$openid = new LightOpenID;
@ -54,11 +56,16 @@ function openid_content(&$a) {
// NOTREACHED
}
$authid = normalise_openid($_REQUEST['openid_identity']);
if(! strlen($authid))
goaway(z_root());
$r = q("SELECT `user`.*, `user`.`pubkey` as `upubkey`, `user`.`prvkey` as `uprvkey`
FROM `user` WHERE `openid` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `verified` = 1 LIMIT 1",
dbesc($_SESSION['openid'])
dbesc($authid)
);
if(! count($r)) {
notice( t('Login failed.') . EOL );
goaway(z_root());

View file

@ -188,7 +188,7 @@ function parse_url_content(&$a) {
if(! $text) {
logger('parsing meta');
$items = $domhead->getElementsByTagName('meta');
$items = (isset($domhead) && is_object($domhead) ? $domhead->getElementsByTagName('meta') : null);
if($items) {
foreach($items as $item) {
$property = $item->getAttribute('property');

View file

@ -1081,6 +1081,17 @@ function photos_content(&$a) {
}
if(! $cmd !== 'edit') {
$a->page['htmlhead'] .= '<script>
$(document).keydown(function(event) {' . "\n";
if($prevlink)
$a->page['htmlhead'] .= 'if(event.ctrlKey && event.keyCode == 37) { event.preventDefault(); window.location.href = \'' . $prevlink . '\'; }' . "\n";
if($nextlink)
$a->page['htmlhead'] .= 'if(event.ctrlKey && event.keyCode == 39) { event.preventDefault(); window.location.href = \'' . $nextlink . '\'; }' . "\n";
$a->page['htmlhead'] .= '});</script>';
}
if($prevlink)
$prevlink = array($prevlink, '<div class="icon prev"></div>') ;

View file

@ -27,7 +27,7 @@ function profile_init(&$a) {
profile_load($a,$which,$profile);
if((x($a->profile,'page-flags')) && ($a->profile['page-flags'] == PAGE_COMMUNITY)) {
$a->page['htmlhead'] .= '<meta name="friendika.community" content="true" />';
$a->page['htmlhead'] .= '<meta name="friendica.community" content="true" />';
}
if(x($a->profile,'openidserver'))
$a->page['htmlhead'] .= '<link rel="openid.server" href="' . $a->profile['openidserver'] . '" />' . "\r\n";

View file

@ -15,11 +15,13 @@ function profile_photo_init(&$a) {
function profile_photo_post(&$a) {
if(! local_user()) {
notice ( t('Permission denied.') . EOL );
return;
}
if(! local_user()) {
notice ( t('Permission denied.') . EOL );
return;
}
check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo');
if((x($_POST,'cropfinal')) && ($_POST['cropfinal'] == 1)) {
// phase 2 - we have finished cropping
@ -148,7 +150,9 @@ function profile_photo_content(&$a) {
notice( t('Permission denied.') . EOL );
return;
};
check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo');
$resource_id = $a->argv[2];
//die(":".local_user());
$r=q("SELECT * FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' ORDER BY `scale` ASC",
@ -203,6 +207,7 @@ function profile_photo_content(&$a) {
'$lbl_upfile' => t('Upload File:'),
'$title' => t('Upload Profile Photo'),
'$submit' => t('Upload'),
'$form_security_token' => get_form_security_token("profile_photo"),
'$select' => sprintf('%s %s', t('or'), ($newuser) ? '<a href="' . $a->get_baseurl() . '">' . t('skip this step') . '</a>' : '<a href="'. $a->get_baseurl() . '/photos/' . $a->user['nickname'] . '">' . t('select a photo from your photo albums') . '</a>')
));
@ -218,6 +223,7 @@ function profile_photo_content(&$a) {
'$image_url' => $a->get_baseurl() . '/photo/' . $filename,
'$title' => t('Crop Image'),
'$desc' => t('Please adjust the image cropping for optimum viewing.'),
'$form_security_token' => get_form_security_token("profile_photo"),
'$done' => t('Done Editing')
));
return $o;

View file

@ -21,6 +21,9 @@ function profiles_post(&$a) {
notice( t('Profile not found.') . EOL);
return;
}
check_form_security_token_redirectOnErr('/profiles', 'profile_edit');
$is_default = (($orig[0]['is-default']) ? 1 : 0);
$profile_name = notags(trim($_POST['profile_name']));
@ -237,9 +240,11 @@ function profiles_content(&$a) {
);
if(! count($r)) {
notice( t('Profile not found.') . EOL);
goaway($a->get_baseurl() . '/profiles');
goaway($a->get_baseurl(true) . '/profiles');
return; // NOTREACHED
}
check_form_security_token_redirectOnErr('/profiles', 'profile_drop', 't');
// move every contact using this profile as their default to the user default
@ -255,7 +260,7 @@ function profiles_content(&$a) {
if($r)
info( t('Profile deleted.') . EOL);
goaway($a->get_baseurl() . '/profiles');
goaway($a->get_baseurl(true) . '/profiles');
return; // NOTREACHED
}
@ -264,6 +269,8 @@ function profiles_content(&$a) {
if(($a->argc > 1) && ($a->argv[1] === 'new')) {
check_form_security_token_redirectOnErr('/profiles', 'profile_new', 't');
$r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d",
intval(local_user()));
@ -290,11 +297,14 @@ function profiles_content(&$a) {
info( t('New profile created.') . EOL);
if(count($r3) == 1)
goaway($a->get_baseurl() . '/profiles/' . $r3[0]['id']);
goaway($a->get_baseurl() . '/profiles');
}
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
goaway($a->get_baseurl(true) . '/profiles');
}
if(($a->argc > 2) && ($a->argv[1] === 'clone')) {
check_form_security_token_redirectOnErr('/profiles', 'profile_clone', 't');
$r0 = q("SELECT `id` FROM `profile` WHERE `uid` = %d",
intval(local_user()));
@ -329,10 +339,12 @@ function profiles_content(&$a) {
);
info( t('New profile created.') . EOL);
if(count($r3) == 1)
goaway($a->get_baseurl() . '/profiles/' . $r3[0]['id']);
goaway($a->get_baseurl() . '/profiles');
return; // NOTREACHED
}
goaway($a->get_baseurl(true) . '/profiles/' . $r3[0]['id']);
goaway($a->get_baseurl(true) . '/profiles');
return; // NOTREACHED
}
if(($a->argc > 1) && (intval($a->argv[1]))) {
@ -361,7 +373,7 @@ function profiles_content(&$a) {
));
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl()));
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl(true)));
$a->page['htmlhead'] .= "<script type=\"text/javascript\" src=\"js/country.js\" ></script>";
$f = get_config('system','birthday_input_format');
@ -371,6 +383,9 @@ function profiles_content(&$a) {
$is_default = (($r[0]['is-default']) ? 1 : 0);
$tpl = get_markup_template("profile_edit.tpl");
$o .= replace_macros($tpl,array(
'$form_security_token' => get_form_security_token("profile_edit"),
'$profile_clone_link' => 'profiles/clone/' . $r[0]['id'] . '?t=' . get_form_security_token("profile_clone"),
'$profile_drop_link' => 'profiles/drop/' . $r[0]['id'] . '?t=' . get_form_security_token("profile_drop"),
'$banner' => t('Edit Profile Details'),
'$submit' => t('Submit'),
'$viewprof' => t('View this profile'),
@ -410,7 +425,7 @@ function profiles_content(&$a) {
'$lbl_work' => t('Work/employment'),
'$lbl_school' => t('School/education'),
'$disabled' => (($is_default) ? 'onclick="return false;" style="color: #BBBBFF;"' : ''),
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$profile_id' => $r[0]['id'],
'$profile_name' => $r[0]['profile-name'],
'$default' => (($is_default) ? '<p id="profile-edit-default-desc">' . t('This is your <strong>public</strong> profile.<br />It <strong>may</strong> be visible to anybody using the internet.') . '</p>' : ""),
@ -460,7 +475,8 @@ function profiles_content(&$a) {
$o .= replace_macros($tpl_header,array(
'$header' => t('Edit/Manage Profiles'),
'$chg_photo' => t('Change profile photo'),
'$cr_new' => t('Create New Profile')
'$cr_new' => t('Create New Profile'),
'$cr_new_link' => 'profiles/new?t=' . get_form_security_token("profile_new")
));
@ -473,7 +489,7 @@ function profiles_content(&$a) {
'$alt' => t('Profile Image'),
'$profile_name' => $rr['profile-name'],
'$visible' => (($rr['is-default']) ? '<strong>' . t('visible to everybody') . '</strong>'
: '<a href="' . $a->get_baseurl() . '/profperm/' . $rr['id'] . '" />' . t('Edit visibility') . '</a>')
: '<a href="' . $a->get_baseurl(true) . '/profperm/' . $rr['id'] . '" />' . t('Edit visibility') . '</a>')
));
}
}

View file

@ -53,16 +53,20 @@ function settings_post(&$a) {
$old_page_flags = $a->user['page-flags'];
if(($a->argc > 1) && ($a->argv[1] === 'oauth') && x($_POST,'remove')){
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
$key = $_POST['remove'];
q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
dbesc($key),
local_user());
goaway($a->get_baseurl()."/settings/oauth/");
goaway($a->get_baseurl(true)."/settings/oauth/");
return;
}
if(($a->argc > 2) && ($a->argv[1] === 'oauth') && ($a->argv[2] === 'edit'||($a->argv[2] === 'add')) && x($_POST,'submit')) {
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
$name = ((x($_POST,'name')) ? $_POST['name'] : '');
$key = ((x($_POST,'key')) ? $_POST['key'] : '');
$secret = ((x($_POST,'secret')) ? $_POST['secret'] : '');
@ -100,18 +104,23 @@ function settings_post(&$a) {
local_user());
}
}
goaway($a->get_baseurl()."/settings/oauth/");
goaway($a->get_baseurl(true)."/settings/oauth/");
return;
}
if(($a->argc > 1) && ($a->argv[1] == 'addon')) {
check_form_security_token_redirectOnErr('/settings/addon', 'settings_addon');
call_hooks('plugin_settings_post', $_POST);
return;
}
if(($a->argc > 1) && ($a->argv[1] == 'connectors')) {
if(x($_POST['imap-submit'])) {
check_form_security_token_redirectOnErr('/settings/connectors', 'settings_connectors');
if(x($_POST, 'imap-submit')) {
$mail_server = ((x($_POST,'mail_server')) ? $_POST['mail_server'] : '');
$mail_port = ((x($_POST,'mail_port')) ? $_POST['mail_port'] : '');
$mail_ssl = ((x($_POST,'mail_ssl')) ? strtolower(trim($_POST['mail_ssl'])) : '');
@ -185,7 +194,8 @@ function settings_post(&$a) {
return;
}
check_form_security_token_redirectOnErr('/settings', 'settings');
call_hooks('settings_post', $_POST);
if((x($_POST,'npassword')) || (x($_POST,'confirm'))) {
@ -237,6 +247,10 @@ function settings_post(&$a) {
if($browser_update < 10000)
$browser_update = 40000;
$itemspage_network = ((x($_POST,'itemspage_network')) ? intval($_POST['itemspage_network']) : 40);
if($itemspage_network > 100)
$itemspage_network = 40;
$allow_location = (((x($_POST,'allow_location')) && (intval($_POST['allow_location']) == 1)) ? 1: 0);
$publish = (((x($_POST,'profile_in_directory')) && (intval($_POST['profile_in_directory']) == 1)) ? 1: 0);
@ -308,6 +322,7 @@ function settings_post(&$a) {
$str_contact_deny = perms2str($_POST['contact_deny']);
$openidserver = $a->user['openidserver'];
$openid = normalise_openid($openid);
// If openid has changed or if there's an openid but no openidserver, try and discover it.
@ -331,6 +346,7 @@ function settings_post(&$a) {
set_pconfig(local_user(),'system','suggestme', $suggestme);
set_pconfig(local_user(),'system','update_interval', $browser_update);
set_pconfig(local_user(),'system','itemspage_network', $itemspage_network);
$r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `blockwall` = %d, `hidewall` = %d, `blocktags` = %d WHERE `uid` = %d LIMIT 1",
dbesc($username),
@ -396,7 +412,7 @@ function settings_post(&$a) {
}
goaway($a->get_baseurl() . '/settings' );
goaway($a->get_baseurl(true) . '/settings' );
return; // NOTREACHED
}
@ -420,27 +436,27 @@ function settings_content(&$a) {
$tabs = array(
array(
'label' => t('Account settings'),
'url' => $a->get_baseurl().'/settings',
'url' => $a->get_baseurl(true).'/settings',
'sel' => (($a->argc == 1)?'active':''),
),
array(
'label' => t('Connector settings'),
'url' => $a->get_baseurl().'/settings/connectors',
'url' => $a->get_baseurl(true).'/settings/connectors',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'connectors')?'active':''),
),
array(
'label' => t('Plugin settings'),
'url' => $a->get_baseurl().'/settings/addon',
'url' => $a->get_baseurl(true).'/settings/addon',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'addon')?'active':''),
),
array(
'label' => t('Connections'),
'url' => $a->get_baseurl() . '/settings/oauth',
'url' => $a->get_baseurl(true) . '/settings/oauth',
'sel' => (($a->argc > 1) && ($a->argv[1] === 'oauth')?'active':''),
),
array(
'label' => t('Export personal data'),
'url' => $a->get_baseurl() . '/uexport',
'url' => $a->get_baseurl(true) . '/uexport',
'sel' => ''
)
);
@ -455,6 +471,7 @@ function settings_content(&$a) {
if(($a->argc > 2) && ($a->argv[2] === 'add')) {
$tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$tabs' => $tabs,
'$title' => t('Add application'),
'$submit' => t('Submit'),
@ -481,6 +498,7 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_oauth_edit.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_oauth"),
'$tabs' => $tabs,
'$title' => t('Add application'),
'$submit' => t('Update'),
@ -495,10 +513,12 @@ function settings_content(&$a) {
}
if(($a->argc > 3) && ($a->argv[2] === 'delete')) {
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth', 't');
$r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
dbesc($a->argv[3]),
local_user());
goaway($a->get_baseurl()."/settings/oauth/");
goaway($a->get_baseurl(true)."/settings/oauth/");
return;
}
@ -513,7 +533,8 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_oauth.tpl");
$o .= replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(),
'$form_security_token' => get_form_security_token("settings_oauth"),
'$baseurl' => $a->get_baseurl(true),
'$title' => t('Connected Apps'),
'$add' => t('Add application'),
'$edit' => t('Edit'),
@ -539,6 +560,7 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_addons.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_addon"),
'$title' => t('Plugin Settings'),
'$tabs' => $tabs,
'$settings_addons' => $settings_addons
@ -581,28 +603,28 @@ function settings_content(&$a) {
$tpl = get_markup_template("settings_connectors.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_connectors"),
'$title' => t('Connector Settings'),
'$tabs' => $tabs,
'$diasp_enabled' => $diasp_enabled,
'$ostat_enabled' => $ostat_enabled,
'$h_imap' => t('Email/Mailbox Setup'),
'$imap_desc' => t("If you wish to communicate with email contacts using this service \x28optional\x29, please specify how to connect to your mailbox."),
'$imap_lastcheck' => array('imap_lastcheck', t('Last successful email check:'), $mail_chk,''),
'$mail_disabled' => (($mail_disabled) ? t('Email access is disabled on this site.') : ''),
'$mail_server' => array('mail_server', t('IMAP server name:'), $mail_server, ''),
'$mail_port' => array('mail_port', t('IMAP port:'), $mail_port, ''),
'$mail_ssl' => array('mail_ssl', t('Security:'), strtoupper($mail_ssl), '', array( ''=>t('None'), 'TLS'=>'TLS', 'SSL'=>'SSL')),
'$mail_user' => array('mail_user', t('Email login name:'), $mail_user, ''),
'$mail_pass' => array('mail_pass', t('Email password:'), '', ''),
'$mail_replyto' => array('mail_replyto', t('Reply-to address:'), '', 'Optional'),
'$mail_pubmail' => array('mail_pubmail', t('Send public posts to all email contacts:'), $mail_pubmail, ''),
'$mail_action' => array('mail_action', t('Action after import:'), $mail_action, '', array(0=>t('None'), 1=>t('Delete'), 2=>t('Mark as seen'), 3=>t('Move to folder'))),
'$mail_movetofolder' => array('mail_movetofolder', t('Move to folder:'), $mail_movetofolder, ''),
'$submit' => t('Submit'),
'$diasp_enabled' => $diasp_enabled,
'$ostat_enabled' => $ostat_enabled,
'$h_imap' => t('Email/Mailbox Setup'),
'$imap_desc' => t("If you wish to communicate with email contacts using this service \x28optional\x29, please specify how to connect to your mailbox."),
'$imap_lastcheck' => array('imap_lastcheck', t('Last successful email check:'), $mail_chk,''),
'$mail_disabled' => (($mail_disabled) ? t('Email access is disabled on this site.') : ''),
'$mail_server' => array('mail_server', t('IMAP server name:'), $mail_server, ''),
'$mail_port' => array('mail_port', t('IMAP port:'), $mail_port, ''),
'$mail_ssl' => array('mail_ssl', t('Security:'), strtoupper($mail_ssl), '', array( ''=>t('None'), 'TLS'=>'TLS', 'SSL'=>'SSL')),
'$mail_user' => array('mail_user', t('Email login name:'), $mail_user, ''),
'$mail_pass' => array('mail_pass', t('Email password:'), '', ''),
'$mail_replyto' => array('mail_replyto', t('Reply-to address:'), '', 'Optional'),
'$mail_pubmail' => array('mail_pubmail', t('Send public posts to all email contacts:'), $mail_pubmail, ''),
'$mail_action' => array('mail_action', t('Action after import:'), $mail_action, '', array(0=>t('None'), 1=>t('Delete'), 2=>t('Mark as seen'), 3=>t('Move to folder'))),
'$mail_movetofolder' => array('mail_movetofolder', t('Move to folder:'), $mail_movetofolder, ''),
'$submit' => t('Submit'),
'$settings_connectors' => $settings_connectors
));
@ -631,23 +653,26 @@ function settings_content(&$a) {
$blocktags = $a->user['blocktags'];
$expire_items = get_pconfig(local_user(), 'expire','items');
$expire_items = (($expire_items===false)?1:$expire_items); // default if not set: 1
$expire_items = (($expire_items===false)? '1' : $expire_items); // default if not set: 1
$expire_notes = get_pconfig(local_user(), 'expire','notes');
$expire_notes = (($expire_notes===false)?1:$expire_notes); // default if not set: 1
$expire_notes = (($expire_notes===false)? '1' : $expire_notes); // default if not set: 1
$expire_starred = get_pconfig(local_user(), 'expire','starred');
$expire_starred = (($expire_starred===false)?1:$expire_starred); // default if not set: 1
$expire_starred = (($expire_starred===false)? '1' : $expire_starred); // default if not set: 1
$expire_photos = get_pconfig(local_user(), 'expire','photos');
$expire_photos = (($expire_photos===false)?0:$expire_photos); // default if not set: 0
$expire_photos = (($expire_photos===false)? '0' : $expire_photos); // default if not set: 0
$suggestme = get_pconfig(local_user(), 'system','suggestme');
$suggestme = (($suggestme===false)?0:$suggestme); // default if not set: 0
$suggestme = (($suggestme===false)? '0': $suggestme); // default if not set: 0
$browser_update = intval(get_pconfig(local_user(), 'system','update_interval'));
$browser_update = (($browser_update == 0) ? 40 : $browser_update / 1000); // default if not set: 40 seconds
$itemspage_network = intval(get_pconfig(local_user(), 'system','itemspage_network'));
$itemspage_network = (($itemspage_network > 0 && $itemspage_network < 101) ? $itemspage_network : 40); // default if not set: 40 items
if(! strlen($a->user['timezone']))
$timezone = date_default_timezone_get();
@ -712,13 +737,13 @@ function settings_content(&$a) {
));
$blockwall = replace_macros($opt_tpl,array(
'$field' => array('blockwall', t('Allow friends to post to your profile page?'), ! $a->user['blockwall'], '', array(t('No'),t('Yes'))),
'$field' => array('blockwall', t('Allow friends to post to your profile page?'), (intval($a->user['blockwall']) ? '0' : '1'), '', array(t('No'),t('Yes'))),
));
$blocktags = replace_macros($opt_tpl,array(
'$field' => array('blocktags', t('Allow friends to tag your posts?'), ! $a->user['blocktags'], '', array(t('No'),t('Yes'))),
'$field' => array('blocktags', t('Allow friends to tag your posts?'), (intval($a->user['blocktags']) ? '0' : '1'), '', array(t('No'),t('Yes'))),
));
@ -765,7 +790,7 @@ function settings_content(&$a) {
$theme_selected = (!x($_SESSION,'theme')? $default_theme : $_SESSION['theme']);
$subdir = ((strlen($a->get_path())) ? '<br />' . t('or') . ' ' . $a->get_baseurl() . '/profile/' . $nickname : '');
$subdir = ((strlen($a->get_path())) ? '<br />' . t('or') . ' ' . $a->get_baseurl(true) . '/profile/' . $nickname : '');
$tpl_addr = get_markup_template("settings_nick_set.tpl");
@ -795,8 +820,9 @@ function settings_content(&$a) {
'$ptitle' => t('Account Settings'),
'$submit' => t('Submit'),
'$baseurl' => $a->get_baseurl(),
'$baseurl' => $a->get_baseurl(true),
'$uid' => local_user(),
'$form_security_token' => get_form_security_token("settings"),
'$nickname_block' => $prof_addr,
@ -814,6 +840,7 @@ function settings_content(&$a) {
'$allowloc' => array('allow_location', t('Use Browser Location:'), ($a->user['allow_location'] == 1), ''),
'$theme' => array('theme', t('Display Theme:'), $theme_selected, '', $themes),
'$ajaxint' => array('browser_update', t("Update browser every xx seconds"), $browser_update, t('Minimum of 10 seconds, no maximum')),
'$itemspage_network' => array('itemspage_network', t("Number of items to display on the network page:"), $itemspage_network, t('Maximum of 100 items')),
'$h_prv' => t('Security and Privacy Settings'),

View file

@ -17,7 +17,7 @@ function share_init(&$a) {
$o = '';
if(local_user() && intval(get_pconfig(local_user(),'system','plaintext'))) {
$o .= '&#x2672; [url=' . $r[0]['author-link'] . ']' . $r[0]['author-name'] . '[/url]';
$o .= "\xE2\x99\xb2" . ' [url=' . $r[0]['author-link'] . ']' . $r[0]['author-name'] . '[/url]' . "\n";
if($r[0]['title'])
$o .= '[b]' . $r[0]['title'] . '[/b]' . "\n";
$o .= $r[0]['body'] . "\n";

BIN
spec/dfrn-snap2.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

BIN
spec/dfrn2.odt Executable file

Binary file not shown.

BIN
spec/dfrn2.pdf Executable file

Binary file not shown.

73
tests/autoname_test.php Executable file
View file

@ -0,0 +1,73 @@
<?php
/**
* this file contains tests for the autoname function
*
* @package test.util
*/
/** required, it is the file under test */
require_once('include/text.php');
/**
* TestCase for the autoname function
*
* @author Alexander Kampmann
* @package test.util
*/
class AutonameTest extends PHPUnit_Framework_TestCase {
/**
*autonames should be random, even length
*/
public function testAutonameEven() {
$autoname1=autoname(10);
$autoname2=autoname(10);
$this->assertNotEquals($autoname1, $autoname2);
}
/**
*autonames should be random, odd length
*/
public function testAutonameOdd() {
$autoname1=autoname(9);
$autoname2=autoname(9);
$this->assertNotEquals($autoname1, $autoname2);
}
/**
* try to fail autonames
*/
public function testAutonameNoLength() {
$autoname1=autoname(0);
$this->assertEquals(0, count($autoname1));
}
/**
* try to fail it with invalid input
*
* TODO: What's corect behaviour here? An exception?
*/
public function testAutonameNegativeLength() {
$autoname1=autoname(-23);
$this->assertEquals(0, count($autoname1));
}
// public function testAutonameMaxLength() {
// $autoname2=autoname(PHP_INT_MAX);
// $this->assertEquals(PHP_INT_MAX, count($autoname2));
// }
/**
* test with a length, that may be too short
*/
public function testAutonameLength1() {
$autoname1=autoname(1);
$this->assertEquals(1, count($autoname1));
$autoname2=autoname(1);
$this->assertEquals(1, count($autoname2));
$this->assertFalse($autoname1==$autoname2);
}
}

View file

@ -0,0 +1,51 @@
<?php
/**
* this test tests the contains_attribute function
*
* @package test.util
*/
/** required, it is the file under test */
require_once('include/text.php');
/**
* TestCase for the contains_attribute function
*
* @author Alexander Kampmann
* @package test.util
*/
class ContainsAttributeTest extends PHPUnit_Framework_TestCase {
/**
* test attribute contains
*/
public function testAttributeContains1() {
$testAttr="class1 notclass2 class3";
$this->assertTrue(attribute_contains($testAttr, "class3"));
$this->assertFalse(attribute_contains($testAttr, "class2"));
}
/**
* test attribute contains
*/
public function testAttributeContains2() {
$testAttr="class1 not-class2 class3";
$this->assertTrue(attribute_contains($testAttr, "class3"));
$this->assertFalse(attribute_contains($testAttr, "class2"));
}
/**
* test with empty input
*/
public function testAttributeContainsEmpty() {
$testAttr="";
$this->assertFalse(attribute_contains($testAttr, "class2"));
}
/**
* test input with special chars
*/
public function testAttributeContainsSpecialChars() {
$testAttr="--... %\$ä() /(=?}";
$this->assertFalse(attribute_contains($testAttr, "class2"));
}
}

142
tests/expand_acl_test.php Executable file
View file

@ -0,0 +1,142 @@
<?php
/**
* this test tests the expand_acl function
*
* @package test.util
*/
/** required, it is the file under test */
require_once('include/text.php');
/**
* TestCase for the expand_acl function
*
* @author Alexander Kampmann
* @package test.util
*/
class ExpandAclTest extends PHPUnit_Framework_TestCase {
/**
* test expand_acl, perfect input
*/
public function testExpandAclNormal() {
$text='<1><2><3>';
$this->assertEquals(array(1, 2, 3), expand_acl($text));
}
/**
* test with a big number
*/
public function testExpandAclBigNumber() {
$text='<1><'.PHP_INT_MAX.'><15>';
$this->assertEquals(array(1, PHP_INT_MAX, 15), expand_acl($text));
}
/**
* test with a string in it.
*
* TODO: is this valid input? Otherwise: should there be an exception?
*/
public function testExpandAclString() {
$text="<1><279012><tt>";
$this->assertEquals(array(1, 279012, 'tt'), expand_acl($text));
}
/**
* test with a ' ' in it.
*
* TODO: is this valid input? Otherwise: should there be an exception?
*/
public function testExpandAclSpace() {
$text="<1><279 012><32>";
$this->assertEquals(array(1, "279 012", "32"), expand_acl($text));
}
/**
* test empty input
*/
public function testExpandAclEmpty() {
$text="";
$this->assertEquals(array(), expand_acl($text));
}
/**
* test invalid input, no < at all
*
* TODO: should there be an exception?
*/
public function testExpandAclNoBrackets() {
$text="According to documentation, that's invalid. "; //should be invalid
$this->assertEquals(array(), expand_acl($text));
}
/**
* test invalid input, just open <
*
* TODO: should there be an exception?
*/
public function testExpandAclJustOneBracket1() {
$text="<Another invalid string"; //should be invalid
$this->assertEquals(array(), expand_acl($text));
}
/**
* test invalid input, just close >
*
* TODO: should there be an exception?
*/
public function testExpandAclJustOneBracket2() {
$text="Another invalid> string"; //should be invalid
$this->assertEquals(array(), expand_acl($text));
}
/**
* test invalid input, just close >
*
* TODO: should there be an exception?
*/
public function testExpandAclCloseOnly() {
$text="Another> invalid> string>"; //should be invalid
$this->assertEquals(array(), expand_acl($text));
}
/**
* test invalid input, just open <
*
* TODO: should there be an exception?
*/
public function testExpandAclOpenOnly() {
$text="<Another< invalid string<"; //should be invalid
$this->assertEquals(array(), expand_acl($text));
}
/**
* test invalid input, open and close do not match
*
* TODO: should there be an exception?
*/
public function testExpandAclNoMatching1() {
$text="<Another<> invalid <string>"; //should be invalid
$this->assertEquals(array(), expand_acl($text));
}
/**
* test invalid input, open and close do not match
*
* TODO: should there be an exception?
*/
public function testExpandAclNoMatching2() {
$text="<1>2><3>";
$this->assertEquals(array(), expand_acl($text));
}
/**
* test invalid input, empty <>
*
* TODO: should there be an exception? Or array(1, 3)
*/
public function testExpandAclEmptyMatch() {
$text="<1><><3>";
$this->assertEquals(array(), expand_acl($text));
}
}

313
tests/get_tags_test.php Normal file
View file

@ -0,0 +1,313 @@
<?php
/**
* This file contains the tests for get_tags and the tag handling in item.php
*
* @package test.util
*/
/**
* required, because it contains the get_tags() function
*/
require_once 'include/text.php';
/**
* required, because it contains the tag handling
*/
require_once 'mod/item.php';
/**
* A class which can be used as replacement for an app if
* only get_baseurl is used.
*
* @author Alexander Kampmann
* @package test.util
*/
class MockApp {
function get_baseurl() {
return "baseurl";
}
};
/**
* the test should not rely on a database,
* so this is a replacement for the database access method q.
*
* It simulates the user with uid 11 has one contact, named Mike Lastname.
*
* @param string $sql
*/
function q($sql) {
$result=array(array('id'=>15,
'attag'=>'', 'network'=>'dfrn',
'name'=>'Mike Lastname', 'alias'=>'Mike',
'nick'=>'Mike', 'url'=>"http://justatest.de"));
$args=func_get_args();
//last parameter is always (in this test) uid, so, it should be 11
if($args[count($args)-1]!=11) {
return;
}
if(3==count($args)) {
//first call in handle_body, id only
if($result[0]['id']==$args[1]) {
return $result;
}
//second call in handle_body, name
if($result[0]['name']===$args[1]) {
return $result;
}
}
//third call in handle_body, nick or attag
if($result[0]['nick']===$args[2] || $result[0]['attag']===$args[1]) {
return $result;
}
}
/**
* replacement for dbesc.
* I don't want to test dbesc here, so
* I just return the input. It won't be a problem, because
* the test does not use a real database.
*
* DON'T USE HAT FUNCTION OUTSIDE A TEST!
*
* @param string $str
* @return input
*/
function dbesc($str) {
return $str;
}
/**
* TestCase for tag handling.
*
* @author alexander
* @package test.util
*/
class GetTagsTest extends PHPUnit_Framework_TestCase {
/** the mock to use as app */
private $a;
/**
* initialize the test. That's a phpUnit function,
* don't change its name.
*/
public function setUp() {
$this->a=new MockApp();
}
/**
* test with one Person tag
*/
public function testGetTagsShortPerson() {
$text="hi @Mike";
$tags=get_tags($text);
$inform='';
$str_tags='';
foreach($tags as $tag) {
handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
}
//correct tags found?
$this->assertEquals(1, count($tags));
$this->assertTrue(in_array("@Mike", $tags));
//correct output from handle_tag?
$this->assertEquals("cid:15", $inform);
$this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags);
$this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url]", $text);
}
/**
* test with one Person tag.
* There's a minor spelling mistake...
*/
public function testGetTagsShortPersonSpelling() {
$text="hi @Mike.because";
$tags=get_tags($text);
//correct tags found?
$this->assertEquals(1, count($tags));
$this->assertTrue(in_array("@Mike.because", $tags));
$inform='';
$str_tags='';
handle_tag($this->a, $text, $inform, $str_tags, 11, $tags[0]);
$this->assertEquals("cid:15", $inform);
$this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags);
$this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url].because", $text);
}
/**
* test with two Person tags.
* There's a minor spelling mistake...
*/
public function testGetTagsPerson2Spelling() {
$text="hi @Mike@campino@friendica.eu";
$tags=get_tags($text);
$this->assertEquals(2, count($tags));
$this->assertTrue(in_array("@Mike", $tags));
$this->assertTrue(in_array("@campino@friendica.eu", $tags));
}
/**
* Test with one hash tag.
*/
public function testGetTagsShortTag() {
$text="This is a #test_case";
$tags=get_tags($text);
$this->assertEquals(1, count($tags));
$this->assertTrue(in_array("#test_case", $tags));
}
/**
* test with a person and a hash tag
*/
public function testGetTagsShortTagAndPerson() {
$text="hi @Mike This is a #test_case";
$tags=get_tags($text);
$this->assertEquals(3, count($tags));
$this->assertTrue(in_array("@Mike", $tags));
$this->assertTrue(in_array("@Mike This", $tags));
$this->assertTrue(in_array("#test_case", $tags));
$inform='';
$str_tags='';
foreach($tags as $tag) {
handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
}
$this->assertEquals("cid:15", $inform);
$this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url],#[url=baseurl/search?search=test%20case]test case[/url]", $str_tags);
$this->assertEquals("hi @[url=http://justatest.de]Mike Lastname[/url] This is a #[url=baseurl/search?search=test%20case]test case[/url]", $text);
}
/**
* test with a person, a hash tag and some special chars.
*/
public function testGetTagsShortTagAndPersonSpecialChars() {
$text="hi @Mike, This is a #test_case.";
$tags=get_tags($text);
$this->assertEquals(2, count($tags));
$this->assertTrue(in_array("@Mike", $tags));
$this->assertTrue(in_array("#test_case", $tags));
}
/**
* Test with a person tag and text behind it.
*/
public function testGetTagsPersonOnly() {
$text="@Test I saw the Theme Dev group was created.";
$tags=get_tags($text);
$this->assertEquals(2, count($tags));
$this->assertTrue(in_array("@Test I", $tags));
$this->assertTrue(in_array("@Test", $tags));
}
/**
* this test demonstrates strange behaviour by intval.
* It makes the next test fail.
*/
public function testIntval() {
$this->assertEquals(15, intval("15 it"));
}
/**
* test a tag with an id in it
*/
public function testIdTag() {
$text="Test with @mike+15 id tag";
$tags=get_tags($text);
$this->assertEquals(2, count($tags));
$this->assertTrue(in_array("@mike+15", $tags));
//happens right now, but it shouldn't be necessary
$this->assertTrue(in_array("@mike+15 id", $tags));
$inform='';
$str_tags='';
foreach($tags as $tag) {
handle_tag($this->a, $text, $inform, $str_tags, 11, $tag);
}
$this->assertEquals("Test with @[url=http://justatest.de]Mike Lastname[/url] id tag", $text);
$this->assertEquals("@[url=http://justatest.de]Mike Lastname[/url]", $str_tags);
$this->assertEquals("cid:15", $inform);
}
/**
* test with two persons and one special tag.
*/
public function testGetTags2Persons1TagSpecialChars() {
$text="hi @Mike, I'm just writing #test_cases, so"
." so @somebody@friendica.com may change #things.";
$tags=get_tags($text);
$this->assertEquals(5, count($tags));
$this->assertTrue(in_array("@Mike", $tags));
$this->assertTrue(in_array("#test_cases", $tags));
$this->assertTrue(in_array("@somebody@friendica.com", $tags));
$this->assertTrue(in_array("@somebody@friendica.com may", $tags));
$this->assertTrue(in_array("#things", $tags));
}
/**
* test with a long text.
*/
public function testGetTags() {
$text="hi @Mike, I'm just writing #test_cases, "
." so @somebody@friendica.com may change #things. Of course I "
."look for a lot of #pitfalls, like #tags at the end of a sentence "
."@comment. I hope noone forgets about @fullstops.because that might"
." break #things. @Mike@campino@friendica.eu is also #nice, isn't it? "
."Now, add a @first_last tag. ";
$tags=get_tags($text);
$this->assertTrue(in_array("@Mike", $tags));
$this->assertTrue(in_array("#test_cases", $tags));
$this->assertTrue(in_array("@somebody@friendica.com", $tags));
$this->assertTrue(in_array("#things", $tags));
$this->assertTrue(in_array("#pitfalls", $tags));
$this->assertTrue(in_array("#tags", $tags));
$this->assertTrue(in_array("@comment", $tags));
$this->assertTrue(in_array("@fullstops.because", $tags));
$this->assertTrue(in_array("#things", $tags));
$this->assertTrue(in_array("@Mike", $tags));
$this->assertTrue(in_array("#nice", $tags));
$this->assertTrue(in_array("@first_last", $tags));
//right now, none of the is matched
$this->assertFalse(in_array("@Mike@campino@friendica.eu", $tags));
$this->assertTrue(in_array("@campino@friendica.eu", $tags));
$this->assertTrue(in_array("@campino@friendica.eu is", $tags));
}
/**
* test with an empty string
*/
public function testGetTagsEmpty() {
$tags=get_tags("");
$this->assertEquals(0, count($tags));
}
}

50
tests/xss_filter_test.php Normal file
View file

@ -0,0 +1,50 @@
<?php
/**
* tests several functions which are used to prevent xss attacks
*
* @package test.util
*/
require_once('include/text.php');
class AntiXSSTest extends PHPUnit_Framework_TestCase {
/**
* test, that tags are escaped
*/
public function testEscapeTags() {
$invalidstring='<submit type="button" onclick="alert(\'failed!\');" />';
$validstring=notags($invalidstring);
$escapedString=escape_tags($invalidstring);
$this->assertEquals('[submit type="button" onclick="alert(\'failed!\');" /]', $validstring);
$this->assertEquals("&lt;submit type=&quot;button&quot; onclick=&quot;alert('failed!');&quot; /&gt;", $escapedString);
}
/**
*xmlify and unxmlify
*/
public function testXmlify() {
$text="<tag>I want to break\n this!11!<?hard?></tag>";
$xml=xmlify($text); //test whether it actually may be part of a xml document
$retext=unxmlify($text);
$this->assertEquals($text, $retext);
}
/**
* test hex2bin and reverse
*/
public function testHex2Bin() {
$this->assertEquals(-3, hex2bin(bin2hex(-3)));
$this->assertEquals(0, hex2bin(bin2hex(0)));
$this->assertEquals(12, hex2bin(bin2hex(12)));
$this->assertEquals(PHP_INT_MAX, hex2bin(bin2hex(PHP_INT_MAX)));
}
//function qp, quick and dirty??
//get_mentions
//get_contact_block, bis Zeile 538
}
?>

View file

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1131 );
define( 'UPDATE_VERSION' , 1132 );
/**
*
@ -1122,3 +1122,8 @@ function update_1130() {
q("ALTER TABLE `item` ADD `file` MEDIUMTEXT NOT NULL AFTER `inform`, ADD FULLTEXT KEY (`file`) ");
}
function update_1131() {
q("ALTER TABLE `contact` ADD `forum` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `writable` , ADD INDEX ( `forum` ) ");
}

View file

@ -26,7 +26,7 @@ echo "New DB VERSION: " . DB_UPDATE_VERSION . "\n";
if($build != DB_UPDATE_VERSION) {
echo "Updating database...";
check_config();
check_config($a);
echo "Done\n";
}

View file

@ -7,6 +7,7 @@
{{ inc field_textarea.tpl with $field=$banner }}{{ endinc }}
{{ inc field_select.tpl with $field=$language }}{{ endinc }}
{{ inc field_select.tpl with $field=$theme }}{{ endinc }}
{{ inc field_select.tpl with $field=$ssl_policy }}{{ endinc }}
<div class="submit"><input type="submit" name="page_site" value="$submit" /></div>

View file

@ -16,6 +16,7 @@
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
$hub
$salmon
$community
<updated>$feed_updated</updated>

View file

@ -12,10 +12,11 @@
<id>$feed_id</id>
<title>$feed_title</title>
<generator uri="http://friendika.com" version="$version">Friendika</generator>
<generator uri="http://friendica.com" version="$version">Friendica</generator>
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
$hub
$salmon
$community
<updated>$feed_updated</updated>

View file

@ -7,8 +7,15 @@ $page_desc<br />
<li><a href="http://friendica.com" title="$friendica">$friendica</a></li>
<li><a href="http://joindiaspora.com" title="$diaspora">$diaspora</a> $diasnote</li>
<li><a href="http://ostatus.org" title="$public_net" >$statusnet</a></li>
<li>$emailnet</li>
</ul>
</p>
<p>
$invite_desc
</p>
<p>
$desc
</p>
<form action="dfrn_request/$nickname" method="post" />

View file

@ -40,6 +40,7 @@ $desc
</script>
<form action="profile_photo/$resource" id="crop-image-form" method="post" />
<input type='hidden' name='form_security_token' value='$form_security_token'>
<input type="hidden" name="cropfinal" value="1" />
<input type="hidden" name="xstart" id="x1" />

View file

@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: friendica\n"
"Report-Msgid-Bugs-To: http://bugs.friendica.com/\n"
"POT-Creation-Date: 2012-02-24 22:44-0800\n"
"PO-Revision-Date: 2012-02-28 20:51+0000\n"
"POT-Creation-Date: 2012-03-06 15:09-0800\n"
"PO-Revision-Date: 2012-03-07 20:47+0000\n"
"Last-Translator: greeneyedred <greeneyedred@googlemail.com>\n"
"Language-Team: German (http://www.transifex.net/projects/p/friendica/language/de/)\n"
"MIME-Version: 1.0\n"
@ -48,8 +48,8 @@ msgstr "Konnte den Kontakt nicht aktualisieren."
#: ../../mod/api.php:31 ../../mod/photos.php:129 ../../mod/photos.php:865
#: ../../mod/editpost.php:10 ../../mod/install.php:171
#: ../../mod/notifications.php:62 ../../mod/contacts.php:125
#: ../../mod/settings.php:49 ../../mod/settings.php:404
#: ../../mod/settings.php:409 ../../mod/manage.php:86 ../../mod/network.php:6
#: ../../mod/settings.php:49 ../../mod/settings.php:411
#: ../../mod/settings.php:416 ../../mod/manage.php:86 ../../mod/network.php:6
#: ../../mod/notes.php:20 ../../mod/attach.php:33 ../../mod/group.php:19
#: ../../mod/viewcontacts.php:22 ../../mod/register.php:36
#: ../../mod/regmod.php:111 ../../mod/item.php:124 ../../mod/item.php:140
@ -57,11 +57,11 @@ msgstr "Konnte den Kontakt nicht aktualisieren."
#: ../../mod/profile_photo.php:148 ../../mod/profile_photo.php:159
#: ../../mod/message.php:9 ../../mod/message.php:46 ../../mod/allfriends.php:9
#: ../../mod/wall_upload.php:42 ../../mod/follow.php:8 ../../mod/common.php:9
#: ../../mod/display.php:130 ../../mod/profiles.php:7
#: ../../mod/display.php:133 ../../mod/profiles.php:7
#: ../../mod/profiles.php:229 ../../mod/delegate.php:6
#: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
#: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:332
#: ../../include/items.php:2968 ../../index.php:288
#: ../../include/items.php:3030 ../../index.php:288
msgid "Permission denied."
msgstr "Zugriff verweigert."
@ -90,8 +90,8 @@ msgstr "Bitte nutze den Zurück-Button deines Browsers <strong>jetzt</strong>, w
msgid "Return to contact editor"
msgstr "Zurück zum Kontakteditor"
#: ../../mod/crepair.php:148 ../../mod/settings.php:455
#: ../../mod/settings.php:481 ../../mod/admin.php:480 ../../mod/admin.php:489
#: ../../mod/crepair.php:148 ../../mod/settings.php:462
#: ../../mod/settings.php:488 ../../mod/admin.php:484 ../../mod/admin.php:493
msgid "Name"
msgstr "Name"
@ -133,18 +133,18 @@ msgstr "Neues Foto von dieser URL"
#: ../../mod/photos.php:1262 ../../mod/photos.php:1293
#: ../../mod/install.php:251 ../../mod/install.php:289
#: ../../mod/localtime.php:45 ../../mod/contacts.php:319
#: ../../mod/settings.php:453 ../../mod/settings.php:592
#: ../../mod/settings.php:786 ../../mod/manage.php:109 ../../mod/group.php:84
#: ../../mod/group.php:167 ../../mod/admin.php:312 ../../mod/admin.php:477
#: ../../mod/admin.php:603 ../../mod/admin.php:769 ../../mod/admin.php:847
#: ../../mod/profiles.php:375 ../../mod/invite.php:106
#: ../../addon/facebook/facebook.php:411 ../../addon/yourls/yourls.php:76
#: ../../mod/settings.php:460 ../../mod/settings.php:603
#: ../../mod/settings.php:797 ../../mod/manage.php:109 ../../mod/group.php:80
#: ../../mod/admin.php:313 ../../mod/admin.php:481 ../../mod/admin.php:609
#: ../../mod/admin.php:776 ../../mod/admin.php:856 ../../mod/profiles.php:375
#: ../../mod/invite.php:106 ../../addon/facebook/facebook.php:411
#: ../../addon/yourls/yourls.php:76 ../../addon/ljpost/ljpost.php:92
#: ../../addon/nsfw/nsfw.php:57
#: ../../addon/uhremotestorage/uhremotestorage.php:89
#: ../../addon/randplace/randplace.php:179 ../../addon/drpost/drpost.php:110
#: ../../addon/geonames/geonames.php:187 ../../addon/oembed.old/oembed.php:41
#: ../../addon/impressum/impressum.php:69 ../../addon/blockem/blockem.php:57
#: ../../addon/qcomment/qcomment.php:60
#: ../../addon/randplace/randplace.php:179 ../../addon/dwpost/dwpost.php:92
#: ../../addon/drpost/drpost.php:110 ../../addon/geonames/geonames.php:187
#: ../../addon/oembed.old/oembed.php:41 ../../addon/impressum/impressum.php:69
#: ../../addon/blockem/blockem.php:57 ../../addon/qcomment/qcomment.php:61
#: ../../addon/openstreetmap/openstreetmap.php:70
#: ../../addon/editplain/editplain.php:84 ../../addon/blackout/blackout.php:94
#: ../../addon/pageheader/pageheader.php:52
@ -154,11 +154,12 @@ msgstr "Neues Foto von dieser URL"
#: ../../addon/statusnet/statusnet.php:320
#: ../../addon/statusnet/statusnet.php:345
#: ../../addon/statusnet/statusnet.php:532 ../../addon/tumblr/tumblr.php:90
#: ../../addon/numfriends/numfriends.php:85 ../../addon/wppost/wppost.php:102
#: ../../addon/showmore/showmore.php:48 ../../addon/piwik/piwik.php:89
#: ../../addon/twitter/twitter.php:175 ../../addon/twitter/twitter.php:201
#: ../../addon/twitter/twitter.php:355 ../../addon/posterous/posterous.php:90
#: ../../include/conversation.php:542
#: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88
#: ../../addon/wppost/wppost.php:102 ../../addon/showmore/showmore.php:48
#: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:175
#: ../../addon/twitter/twitter.php:201 ../../addon/twitter/twitter.php:355
#: ../../addon/posterous/posterous.php:90
#: ../../view/theme/quattro/theme.php:15 ../../include/conversation.php:552
msgid "Submit"
msgstr "Senden"
@ -212,7 +213,7 @@ msgstr "l, F j"
msgid "Edit event"
msgstr "Veranstaltung bearbeiten"
#: ../../mod/events.php:272 ../../include/text.php:964
#: ../../mod/events.php:272 ../../include/text.php:982
msgid "link to source"
msgstr "Link zum Originalbeitrag"
@ -266,7 +267,7 @@ msgid "Description:"
msgstr "Beschreibung"
#: ../../mod/events.php:395 ../../include/event.php:37
#: ../../include/bb2diaspora.php:290 ../../boot.php:980
#: ../../include/bb2diaspora.php:260 ../../boot.php:980
msgid "Location:"
msgstr "Ort:"
@ -275,8 +276,8 @@ msgid "Share this event"
msgstr "Veranstaltung teilen"
#: ../../mod/tagrm.php:11 ../../mod/tagrm.php:94
#: ../../mod/dfrn_request.php:686 ../../mod/settings.php:454
#: ../../mod/settings.php:480 ../../addon/js_upload/js_upload.php:45
#: ../../mod/dfrn_request.php:686 ../../mod/settings.php:461
#: ../../mod/settings.php:487 ../../addon/js_upload/js_upload.php:45
msgid "Cancel"
msgstr "Abbrechen"
@ -320,23 +321,23 @@ msgid ""
msgstr "Möchtest du dieser Anwendung den Zugriff auf deine Beiträge und Kontakte, sowie das Erstellen neuer Beiträge in deinem Namen gestatten?"
#: ../../mod/api.php:105 ../../mod/dfrn_request.php:676
#: ../../mod/settings.php:681 ../../mod/settings.php:687
#: ../../mod/settings.php:695 ../../mod/settings.php:699
#: ../../mod/settings.php:704 ../../mod/settings.php:710
#: ../../mod/settings.php:716 ../../mod/settings.php:776
#: ../../mod/settings.php:777 ../../mod/settings.php:778
#: ../../mod/settings.php:779 ../../mod/register.php:524
#: ../../mod/settings.php:692 ../../mod/settings.php:698
#: ../../mod/settings.php:706 ../../mod/settings.php:710
#: ../../mod/settings.php:715 ../../mod/settings.php:721
#: ../../mod/settings.php:727 ../../mod/settings.php:787
#: ../../mod/settings.php:788 ../../mod/settings.php:789
#: ../../mod/settings.php:790 ../../mod/register.php:524
#: ../../mod/profiles.php:357
msgid "Yes"
msgstr "Ja"
#: ../../mod/api.php:106 ../../mod/dfrn_request.php:677
#: ../../mod/settings.php:681 ../../mod/settings.php:687
#: ../../mod/settings.php:695 ../../mod/settings.php:699
#: ../../mod/settings.php:704 ../../mod/settings.php:710
#: ../../mod/settings.php:716 ../../mod/settings.php:776
#: ../../mod/settings.php:777 ../../mod/settings.php:778
#: ../../mod/settings.php:779 ../../mod/register.php:525
#: ../../mod/settings.php:692 ../../mod/settings.php:698
#: ../../mod/settings.php:706 ../../mod/settings.php:710
#: ../../mod/settings.php:715 ../../mod/settings.php:721
#: ../../mod/settings.php:727 ../../mod/settings.php:787
#: ../../mod/settings.php:788 ../../mod/settings.php:789
#: ../../mod/settings.php:790 ../../mod/register.php:525
#: ../../mod/profiles.php:358
msgid "No"
msgstr "Nein"
@ -390,7 +391,7 @@ msgid "was tagged in a"
msgstr "wurde getaggt in einem"
#: ../../mod/photos.php:528 ../../mod/like.php:127 ../../mod/tagger.php:70
#: ../../addon/communityhome/communityhome.php:163
#: ../../addon/communityhome/communityhome.php:163 ../../include/text.php:1226
#: ../../include/diaspora.php:1600 ../../include/conversation.php:53
#: ../../include/conversation.php:126
msgid "photo"
@ -480,7 +481,7 @@ msgstr "Foto bearbeiten"
msgid "Use as profile photo"
msgstr "Als Profilbild verwenden"
#: ../../mod/photos.php:1078 ../../include/conversation.php:472
#: ../../mod/photos.php:1078 ../../include/conversation.php:482
msgid "Private Message"
msgstr "Private Nachricht"
@ -513,44 +514,44 @@ msgid ""
"Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
#: ../../mod/photos.php:1200 ../../include/conversation.php:519
#: ../../mod/photos.php:1200 ../../include/conversation.php:529
msgid "I like this (toggle)"
msgstr "Ich mag das (toggle)"
#: ../../mod/photos.php:1201 ../../include/conversation.php:520
#: ../../mod/photos.php:1201 ../../include/conversation.php:530
msgid "I don't like this (toggle)"
msgstr "Ich mag das nicht (toggle)"
#: ../../mod/photos.php:1202 ../../include/conversation.php:914
#: ../../mod/photos.php:1202 ../../include/conversation.php:933
msgid "Share"
msgstr "Teilen"
#: ../../mod/photos.php:1203 ../../mod/editpost.php:104
#: ../../mod/message.php:155 ../../mod/message.php:296
#: ../../include/conversation.php:343 ../../include/conversation.php:677
#: ../../include/conversation.php:931
#: ../../include/conversation.php:348 ../../include/conversation.php:694
#: ../../include/conversation.php:950
msgid "Please wait"
msgstr "Bitte warten"
#: ../../mod/photos.php:1219 ../../mod/photos.php:1259
#: ../../mod/photos.php:1290 ../../include/conversation.php:539
#: ../../mod/photos.php:1290 ../../include/conversation.php:549
msgid "This is you"
msgstr "Das bist du"
#: ../../mod/photos.php:1221 ../../mod/photos.php:1261
#: ../../mod/photos.php:1292 ../../include/conversation.php:541
#: ../../mod/photos.php:1292 ../../include/conversation.php:551
#: ../../boot.php:447
msgid "Comment"
msgstr "Kommentar"
#: ../../mod/photos.php:1223 ../../mod/editpost.php:123
#: ../../include/conversation.php:543 ../../include/conversation.php:949
#: ../../include/conversation.php:553 ../../include/conversation.php:968
msgid "Preview"
msgstr "Vorschau"
#: ../../mod/photos.php:1320 ../../mod/settings.php:513
#: ../../mod/group.php:154 ../../mod/admin.php:484
#: ../../include/conversation.php:302 ../../include/conversation.php:563
#: ../../mod/photos.php:1320 ../../mod/settings.php:520
#: ../../mod/settings.php:601 ../../mod/group.php:158 ../../mod/admin.php:488
#: ../../include/conversation.php:304 ../../include/conversation.php:573
msgid "Delete"
msgstr "Löschen"
@ -614,26 +615,26 @@ msgstr "Beitrag nicht gefunden"
msgid "Edit post"
msgstr "Beitrag bearbeiten"
#: ../../mod/editpost.php:80 ../../include/conversation.php:900
#: ../../mod/editpost.php:80 ../../include/conversation.php:919
msgid "Post to Email"
msgstr "An E-Mail senden"
#: ../../mod/editpost.php:95 ../../mod/settings.php:512
#: ../../include/conversation.php:550
#: ../../mod/editpost.php:95 ../../mod/settings.php:519
#: ../../include/conversation.php:560
msgid "Edit"
msgstr "Bearbeiten"
#: ../../mod/editpost.php:96 ../../mod/message.php:153
#: ../../mod/message.php:294 ../../include/conversation.php:915
#: ../../mod/message.php:294 ../../include/conversation.php:934
msgid "Upload photo"
msgstr "Foto hochladen"
#: ../../mod/editpost.php:97 ../../include/conversation.php:917
#: ../../mod/editpost.php:97 ../../include/conversation.php:936
msgid "Attach file"
msgstr "Datei anhängen"
#: ../../mod/editpost.php:98 ../../mod/message.php:154
#: ../../mod/message.php:295 ../../include/conversation.php:919
#: ../../mod/message.php:295 ../../include/conversation.php:938
msgid "Insert web link"
msgstr "Weblink einfügen"
@ -649,31 +650,31 @@ msgstr "Vorbis [.ogg] Video einfügen"
msgid "Insert Vorbis [.ogg] audio"
msgstr "Vorbis [.ogg] Audio einfügen"
#: ../../mod/editpost.php:102 ../../include/conversation.php:925
#: ../../mod/editpost.php:102 ../../include/conversation.php:944
msgid "Set your location"
msgstr "Deinen Standort festlegen"
#: ../../mod/editpost.php:103 ../../include/conversation.php:927
#: ../../mod/editpost.php:103 ../../include/conversation.php:946
msgid "Clear browser location"
msgstr "Browser-Standort leeren"
#: ../../mod/editpost.php:105 ../../include/conversation.php:932
#: ../../mod/editpost.php:105 ../../include/conversation.php:951
msgid "Permission settings"
msgstr "Berechtigungseinstellungen"
#: ../../mod/editpost.php:113 ../../include/conversation.php:941
#: ../../mod/editpost.php:113 ../../include/conversation.php:960
msgid "CC: email addresses"
msgstr "Cc:-E-Mail-Addressen"
#: ../../mod/editpost.php:114 ../../include/conversation.php:942
#: ../../mod/editpost.php:114 ../../include/conversation.php:961
msgid "Public post"
msgstr "Öffentlicher Beitrag"
#: ../../mod/editpost.php:117 ../../include/conversation.php:930
#: ../../mod/editpost.php:117 ../../include/conversation.php:949
msgid "Set title"
msgstr "Titel setzen"
#: ../../mod/editpost.php:118 ../../include/conversation.php:944
#: ../../mod/editpost.php:118 ../../include/conversation.php:963
msgid "Example: bob@example.com, mary@example.com"
msgstr "Z.B.: bob@example.com, mary@example.com"
@ -782,7 +783,7 @@ msgstr "Bitte bestätige deine Kontaktanfrage bei %s."
msgid "Confirm"
msgstr "Bestätigen"
#: ../../mod/dfrn_request.php:582 ../../include/items.php:2504
#: ../../mod/dfrn_request.php:582 ../../include/items.php:2566
msgid "[Name Withheld]"
msgstr "[Name unterdrückt]"
@ -830,7 +831,7 @@ msgstr "Friendica"
msgid "StatusNet/Federated Social Web"
msgstr "StatusNet/Federated Social Web"
#: ../../mod/dfrn_request.php:682 ../../mod/settings.php:548
#: ../../mod/dfrn_request.php:682 ../../mod/settings.php:555
#: ../../include/contact_selectors.php:80
msgid "Diaspora"
msgstr "Diaspora"
@ -1093,7 +1094,7 @@ msgid "Errors encountered creating database tables."
msgstr "Fehler aufgetreten während der Erzeugung der Datenbanktabellen."
#: ../../mod/localtime.php:12 ../../include/event.php:11
#: ../../include/bb2diaspora.php:268
#: ../../include/bb2diaspora.php:238
msgid "l F d, Y \\@ g:i A"
msgstr "l F d, Y \\@ g:i A"
@ -1236,7 +1237,7 @@ msgid "if applicable"
msgstr "falls anwendbar"
#: ../../mod/notifications.php:153 ../../mod/notifications.php:200
#: ../../mod/admin.php:482
#: ../../mod/admin.php:486
msgid "Approve"
msgstr "Genehmigen"
@ -1321,11 +1322,11 @@ msgstr "Keine weiteren Netzwerk-Benachrichtigungen."
msgid "Network Notifications"
msgstr "Netzwerk Benachrichtigungen"
#: ../../mod/notifications.php:324 ../../mod/notify.php:59
#: ../../mod/notifications.php:324 ../../mod/notify.php:61
msgid "No more system notifications."
msgstr "Keine weiteren System Benachrichtigungen."
#: ../../mod/notifications.php:328 ../../mod/notify.php:63
#: ../../mod/notifications.php:328 ../../mod/notify.php:65
msgid "System Notifications"
msgstr "System Benachrichtigungen"
@ -1433,12 +1434,12 @@ msgid "View all contacts"
msgstr "Alle Kontakte anzeigen"
#: ../../mod/contacts.php:297 ../../mod/contacts.php:344
#: ../../mod/admin.php:486
#: ../../mod/admin.php:490
msgid "Unblock"
msgstr "Entsperren"
#: ../../mod/contacts.php:297 ../../mod/contacts.php:344
#: ../../mod/admin.php:485
#: ../../mod/admin.php:489
msgid "Block"
msgstr "Sperren"
@ -1507,7 +1508,7 @@ msgstr "letzte Aktualisierung:"
msgid "Update public posts"
msgstr "Öffentliche Beiträge aktualisieren"
#: ../../mod/contacts.php:341 ../../mod/admin.php:896
#: ../../mod/contacts.php:341 ../../mod/admin.php:905
msgid "Update now"
msgstr "Jetzt aktualisieren"
@ -1524,7 +1525,7 @@ msgid ""
"Replies/likes to your public posts <strong>may</strong> still be visible"
msgstr "Antworten/Likes auf deine öffentlichen Beiträge <strong>könnten</strong> weiterhin sichtbar sein"
#: ../../mod/contacts.php:399 ../../mod/group.php:194
#: ../../mod/contacts.php:399 ../../mod/group.php:179
msgid "All Contacts"
msgstr "Alle Kontakte"
@ -1557,23 +1558,23 @@ msgid "you are a fan of"
msgstr "du bist Fan von"
#: ../../mod/contacts.php:498 ../../include/Contact.php:135
#: ../../include/conversation.php:773
#: ../../include/conversation.php:792
msgid "Edit contact"
msgstr "Kontakt bearbeiten"
#: ../../mod/contacts.php:518 ../../include/nav.php:132
#: ../../mod/contacts.php:519 ../../include/nav.php:132
msgid "Contacts"
msgstr "Kontakte"
#: ../../mod/contacts.php:522
#: ../../mod/contacts.php:523
msgid "Search your contacts"
msgstr "Suche in deinen Kontakten"
#: ../../mod/contacts.php:523 ../../mod/directory.php:67
#: ../../mod/contacts.php:524 ../../mod/directory.php:67
msgid "Finding: "
msgstr "Funde: "
#: ../../mod/contacts.php:524 ../../mod/directory.php:69
#: ../../mod/contacts.php:525 ../../mod/directory.php:69
#: ../../include/contact_widgets.php:34
msgid "Find"
msgstr "Finde"
@ -1593,8 +1594,8 @@ msgstr "Anfrage zum Zurücksetzen des Passworts auf %s erhalten"
#: ../../mod/lostpass.php:44 ../../mod/lostpass.php:106
#: ../../mod/register.php:380 ../../mod/register.php:434
#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:716
#: ../../include/items.php:2513
#: ../../mod/regmod.php:54 ../../mod/dfrn_confirm.php:726
#: ../../include/items.php:2575
msgid "Administrator"
msgstr "Administrator"
@ -1648,429 +1649,445 @@ msgstr "Spitzname oder Email:"
msgid "Reset"
msgstr "Zurücksetzen"
#: ../../mod/settings.php:70
#: ../../mod/settings.php:72
msgid "Missing some important data!"
msgstr "Wichtige Daten fehlen!"
#: ../../mod/settings.php:73 ../../mod/settings.php:479 ../../mod/admin.php:75
#: ../../mod/settings.php:75 ../../mod/settings.php:486 ../../mod/admin.php:75
msgid "Update"
msgstr "Aktualisierungen"
#: ../../mod/settings.php:168
#: ../../mod/settings.php:175
msgid "Failed to connect with email account using the settings provided."
msgstr "Konnte das Email Konto mit den angegebenen Einstellungen nicht erreichen."
#: ../../mod/settings.php:173
#: ../../mod/settings.php:180
msgid "Email settings updated."
msgstr "EMail Einstellungen bearbeitet."
#: ../../mod/settings.php:191
#: ../../mod/settings.php:198
msgid "Passwords do not match. Password unchanged."
msgstr "Die Passwörter stimmen nicht überein. Das Passwort bleibt unverändert."
#: ../../mod/settings.php:196
#: ../../mod/settings.php:203
msgid "Empty passwords are not allowed. Password unchanged."
msgstr "Leere Passwörter sind nicht erlaubt. Passwort bleibt unverändert."
#: ../../mod/settings.php:207
#: ../../mod/settings.php:214
msgid "Password changed."
msgstr "Passwort ändern."
#: ../../mod/settings.php:209
#: ../../mod/settings.php:216
msgid "Password update failed. Please try again."
msgstr "Aktualisierung des Passworts gescheitert, bitte versuche es noch einmal."
#: ../../mod/settings.php:273
#: ../../mod/settings.php:280
msgid " Please use a shorter name."
msgstr " Bitte verwende einen kürzeren Namen."
#: ../../mod/settings.php:275
#: ../../mod/settings.php:282
msgid " Name too short."
msgstr " Name ist zu kurz."
#: ../../mod/settings.php:281
#: ../../mod/settings.php:288
msgid " Not valid email."
msgstr " Keine gültige E-Mail."
#: ../../mod/settings.php:283
#: ../../mod/settings.php:290
msgid " Cannot change to that email."
msgstr "Ändern der E-Mail nicht möglich. "
#: ../../mod/settings.php:351 ../../addon/facebook/facebook.php:321
#: ../../mod/settings.php:358 ../../addon/facebook/facebook.php:321
#: ../../addon/impressum/impressum.php:64
#: ../../addon/openstreetmap/openstreetmap.php:80
#: ../../addon/piwik/piwik.php:105 ../../addon/twitter/twitter.php:350
msgid "Settings updated."
msgstr "Einstellungen aktualisiert."
#: ../../mod/settings.php:415 ../../include/nav.php:130
#: ../../mod/settings.php:422 ../../include/nav.php:130
msgid "Account settings"
msgstr "Account Einstellungen"
#: ../../mod/settings.php:420
#: ../../mod/settings.php:427
msgid "Connector settings"
msgstr "Connector-Einstellungen"
#: ../../mod/settings.php:425
#: ../../mod/settings.php:432
msgid "Plugin settings"
msgstr "Plugin-Einstellungen"
#: ../../mod/settings.php:430
#: ../../mod/settings.php:437
msgid "Connections"
msgstr "Verbindungen"
#: ../../mod/settings.php:435
#: ../../mod/settings.php:442
msgid "Export personal data"
msgstr "Persönliche Daten exportieren"
#: ../../mod/settings.php:452 ../../mod/settings.php:478
#: ../../mod/settings.php:511
#: ../../mod/settings.php:459 ../../mod/settings.php:485
#: ../../mod/settings.php:518
msgid "Add application"
msgstr "Programm hinzufügen"
#: ../../mod/settings.php:456 ../../mod/settings.php:482
#: ../../mod/settings.php:463 ../../mod/settings.php:489
#: ../../addon/statusnet/statusnet.php:526
msgid "Consumer Key"
msgstr "Consumer Key"
#: ../../mod/settings.php:457 ../../mod/settings.php:483
#: ../../mod/settings.php:464 ../../mod/settings.php:490
#: ../../addon/statusnet/statusnet.php:525
msgid "Consumer Secret"
msgstr "Consumer Secret"
#: ../../mod/settings.php:458 ../../mod/settings.php:484
#: ../../mod/settings.php:465 ../../mod/settings.php:491
msgid "Redirect"
msgstr "Umleiten"
#: ../../mod/settings.php:459 ../../mod/settings.php:485
#: ../../mod/settings.php:466 ../../mod/settings.php:492
msgid "Icon url"
msgstr "Icon URL"
#: ../../mod/settings.php:470
#: ../../mod/settings.php:477
msgid "You can't edit this application."
msgstr "Du kannst dieses Programm nicht bearbeiten."
#: ../../mod/settings.php:510
#: ../../mod/settings.php:517
msgid "Connected Apps"
msgstr "Verbundene Programme"
#: ../../mod/settings.php:514
#: ../../mod/settings.php:521
msgid "Client key starts with"
msgstr "Anwender Schlüssel beginnt mit"
#: ../../mod/settings.php:515
#: ../../mod/settings.php:522
msgid "No name"
msgstr "Kein Name"
#: ../../mod/settings.php:516
#: ../../mod/settings.php:523
msgid "Remove authorization"
msgstr "Autorisierung entziehen"
#: ../../mod/settings.php:528
#: ../../mod/settings.php:535
msgid "No Plugin settings configured"
msgstr "Keine Plugin-Einstellungen konfiguriert"
#: ../../mod/settings.php:535 ../../addon/widgets/widgets.php:122
#: ../../mod/settings.php:542 ../../addon/widgets/widgets.php:122
msgid "Plugin Settings"
msgstr "Plugin-Einstellungen"
#: ../../mod/settings.php:548 ../../mod/settings.php:549
#: ../../mod/settings.php:555 ../../mod/settings.php:556
#, php-format
msgid "Built-in support for %s connectivity is %s"
msgstr "Eingebaute Unterstützung für Verbindungen zu %s ist %s"
#: ../../mod/settings.php:548 ../../mod/settings.php:549
#: ../../mod/settings.php:555 ../../mod/settings.php:556
msgid "enabled"
msgstr "eingeschaltet"
#: ../../mod/settings.php:548 ../../mod/settings.php:549
#: ../../mod/settings.php:555 ../../mod/settings.php:556
msgid "disabled"
msgstr "ausgeschaltet"
#: ../../mod/settings.php:549
#: ../../mod/settings.php:556
msgid "StatusNet"
msgstr "StatusNet"
#: ../../mod/settings.php:575
#: ../../mod/settings.php:584
msgid "Connector Settings"
msgstr "Verbindungs-Einstellungen"
#: ../../mod/settings.php:581
#: ../../mod/settings.php:590
msgid "Email/Mailbox Setup"
msgstr "E-Mail/Postfach-Einstellungen"
#: ../../mod/settings.php:582
#: ../../mod/settings.php:591
msgid ""
"If you wish to communicate with email contacts using this service "
"(optional), please specify how to connect to your mailbox."
msgstr "Wenn du mit E-Mail-Kontakten über diesen Service kommunizieren möchtest (optional), gib bitte die Einstellungen für dein Postfach an."
#: ../../mod/settings.php:583
#: ../../mod/settings.php:592
msgid "Last successful email check:"
msgstr "Letzter erfolgreicher Email Check"
#: ../../mod/settings.php:584
#: ../../mod/settings.php:593
msgid "Email access is disabled on this site."
msgstr "Zugriff auf E-Mails für diese Seite deaktiviert."
#: ../../mod/settings.php:585
#: ../../mod/settings.php:594
msgid "IMAP server name:"
msgstr "IMAP-Server-Name:"
#: ../../mod/settings.php:586
#: ../../mod/settings.php:595
msgid "IMAP port:"
msgstr "IMAP-Port:"
#: ../../mod/settings.php:587
#: ../../mod/settings.php:596
msgid "Security:"
msgstr "Sicherheit:"
#: ../../mod/settings.php:587
#: ../../mod/settings.php:596 ../../mod/settings.php:601
msgid "None"
msgstr "Keine"
#: ../../mod/settings.php:588
#: ../../mod/settings.php:597
msgid "Email login name:"
msgstr "E-Mail-Login-Name:"
#: ../../mod/settings.php:589
#: ../../mod/settings.php:598
msgid "Email password:"
msgstr "E-Mail-Passwort:"
#: ../../mod/settings.php:590
#: ../../mod/settings.php:599
msgid "Reply-to address:"
msgstr "Reply-to Adresse:"
#: ../../mod/settings.php:591
#: ../../mod/settings.php:600
msgid "Send public posts to all email contacts:"
msgstr "Sende öffentliche Beiträge an alle E-Mail-Kontakte:"
#: ../../mod/settings.php:648 ../../mod/admin.php:142 ../../mod/admin.php:459
#: ../../mod/settings.php:601
msgid "Action after import:"
msgstr "Aktion nach Import:"
#: ../../mod/settings.php:601
msgid "Mark as seen"
msgstr "Als gelesen markieren"
#: ../../mod/settings.php:601
msgid "Move to folder"
msgstr "In einen Ordner verschieben"
#: ../../mod/settings.php:602
msgid "Move to folder:"
msgstr "In diesen Ordner verschieben:"
#: ../../mod/settings.php:659 ../../mod/admin.php:142 ../../mod/admin.php:462
msgid "Normal Account"
msgstr "Normaler Account"
#: ../../mod/settings.php:649
#: ../../mod/settings.php:660
msgid "This account is a normal personal profile"
msgstr "Dieser Account ist ein normales persönliches Profil"
#: ../../mod/settings.php:652 ../../mod/admin.php:143 ../../mod/admin.php:460
#: ../../mod/settings.php:663 ../../mod/admin.php:143 ../../mod/admin.php:463
msgid "Soapbox Account"
msgstr "Sandkasten-Account"
#: ../../mod/settings.php:653
#: ../../mod/settings.php:664
msgid "Automatically approve all connection/friend requests as read-only fans"
msgstr "Freundschaftsanfragen werden automatisch als Nurlese-Fans akzeptiert"
#: ../../mod/settings.php:656 ../../mod/admin.php:144 ../../mod/admin.php:461
#: ../../mod/settings.php:667 ../../mod/admin.php:144 ../../mod/admin.php:464
msgid "Community/Celebrity Account"
msgstr "Gemeinschafts/Promi-Account"
#: ../../mod/settings.php:657
#: ../../mod/settings.php:668
msgid ""
"Automatically approve all connection/friend requests as read-write fans"
msgstr "Freundschaftsanfragen werden automatisch als Lese-und-Schreib-Fans akzeptiert"
#: ../../mod/settings.php:660 ../../mod/admin.php:145 ../../mod/admin.php:462
#: ../../mod/settings.php:671 ../../mod/admin.php:145 ../../mod/admin.php:465
msgid "Automatic Friend Account"
msgstr "Automatischer Freundesaccount"
#: ../../mod/settings.php:661
#: ../../mod/settings.php:672
msgid "Automatically approve all connection/friend requests as friends"
msgstr "Freundschaftsanfragen werden automatisch als Freund akzeptiert"
#: ../../mod/settings.php:671
#: ../../mod/settings.php:682
msgid "OpenID:"
msgstr "OpenID:"
#: ../../mod/settings.php:671
#: ../../mod/settings.php:682
msgid "(Optional) Allow this OpenID to login to this account."
msgstr "(Optional) Erlaube die Anmeldung für diesen Account mit dieser OpenID."
#: ../../mod/settings.php:681
#: ../../mod/settings.php:692
msgid "Publish your default profile in your local site directory?"
msgstr "Veröffentliche dein Standardprofil im Verzeichnis der lokalen Seite?"
#: ../../mod/settings.php:687
#: ../../mod/settings.php:698
msgid "Publish your default profile in the global social directory?"
msgstr "Veröffentliche dein Standardprofil im weltweiten Verzeichnis?"
#: ../../mod/settings.php:695
#: ../../mod/settings.php:706
msgid "Hide your contact/friend list from viewers of your default profile?"
msgstr "Liste der Kontakte vor Betrachtern des Standardprofils verbergen?"
#: ../../mod/settings.php:699
#: ../../mod/settings.php:710
msgid "Hide your profile details from unknown viewers?"
msgstr "Profil-Details vor unbekannten Betrachtern verbergen?"
#: ../../mod/settings.php:704
#: ../../mod/settings.php:715
msgid "Allow friends to post to your profile page?"
msgstr "Deinen Kontakten erlauben, auf deine Pinnwand zu schreiben?"
#: ../../mod/settings.php:710
#: ../../mod/settings.php:721
msgid "Allow friends to tag your posts?"
msgstr "Deinen Kontakten erlauben, deine Beiträge mit Schlagwörtern zu versehen?"
#: ../../mod/settings.php:716
#: ../../mod/settings.php:727
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "Erlaube uns dich als potentiellen Kontakt für neue Mitglieder vorzuschlagen?"
#: ../../mod/settings.php:725
#: ../../mod/settings.php:736
msgid "Profile is <strong>not published</strong>."
msgstr "Profil ist <strong>nicht veröffentlicht</strong>."
#: ../../mod/settings.php:757 ../../mod/profile_photo.php:206
#: ../../mod/settings.php:768 ../../mod/profile_photo.php:206
msgid "or"
msgstr "oder"
#: ../../mod/settings.php:762
#: ../../mod/settings.php:773
msgid "Your Identity Address is"
msgstr "Die Adresse deines Profils lautet:"
#: ../../mod/settings.php:773
#: ../../mod/settings.php:784
msgid "Automatically expire posts after this many days:"
msgstr "Beiträge verfallen automatisch nach dieser Anzahl von Tagen"
#: ../../mod/settings.php:773
#: ../../mod/settings.php:784
msgid "If empty, posts will not expire. Expired posts will be deleted"
msgstr "Wenn leer verfallen Beiträge nie automatisch. Verfallene Beiträge werden gelöscht."
#: ../../mod/settings.php:774
#: ../../mod/settings.php:785
msgid "Advanced expiration settings"
msgstr "Erweiterte Verfallseinstellungen"
#: ../../mod/settings.php:775
#: ../../mod/settings.php:786
msgid "Advanced Expiration"
msgstr "Erweitertes Verfallen"
#: ../../mod/settings.php:776
#: ../../mod/settings.php:787
msgid "Expire posts:"
msgstr "Beiträge verfallen lassen:"
#: ../../mod/settings.php:777
#: ../../mod/settings.php:788
msgid "Expire personal notes:"
msgstr "Persönliche Notizen verfallen lassen:"
#: ../../mod/settings.php:778
#: ../../mod/settings.php:789
msgid "Expire starred posts:"
msgstr "Markierte Beiträge verfallen lassen:"
#: ../../mod/settings.php:779
#: ../../mod/settings.php:790
msgid "Expire photos:"
msgstr "Fotos verfallen lassen:"
#: ../../mod/settings.php:784
#: ../../mod/settings.php:795
msgid "Account Settings"
msgstr "Account-Einstellungen"
#: ../../mod/settings.php:792
#: ../../mod/settings.php:803
msgid "Password Settings"
msgstr "Passwort-Einstellungen"
#: ../../mod/settings.php:793
#: ../../mod/settings.php:804
msgid "New Password:"
msgstr "Neues Passwort:"
#: ../../mod/settings.php:794
#: ../../mod/settings.php:805
msgid "Confirm:"
msgstr "Bestätigen:"
#: ../../mod/settings.php:794
#: ../../mod/settings.php:805
msgid "Leave password fields blank unless changing"
msgstr "Lass die Passwort-Felder leer, außer du willst das Passwort ändern"
#: ../../mod/settings.php:798
#: ../../mod/settings.php:809
msgid "Basic Settings"
msgstr "Grundeinstellungen"
#: ../../mod/settings.php:799 ../../include/profile_advanced.php:15
#: ../../mod/settings.php:810 ../../include/profile_advanced.php:15
msgid "Full Name:"
msgstr "Kompletter Name:"
#: ../../mod/settings.php:800
#: ../../mod/settings.php:811
msgid "Email Address:"
msgstr "Emailadresse:"
#: ../../mod/settings.php:801
#: ../../mod/settings.php:812
msgid "Your Timezone:"
msgstr "Deine Zeitzone:"
#: ../../mod/settings.php:802
#: ../../mod/settings.php:813
msgid "Default Post Location:"
msgstr "Standardstandort:"
#: ../../mod/settings.php:803
#: ../../mod/settings.php:814
msgid "Use Browser Location:"
msgstr "Verwende den Standort des Browsers:"
#: ../../mod/settings.php:804
#: ../../mod/settings.php:815
msgid "Display Theme:"
msgstr "Theme:"
#: ../../mod/settings.php:805
#: ../../mod/settings.php:816
msgid "Update browser every xx seconds"
msgstr "Browser alle xx Sekunden aktualisieren"
#: ../../mod/settings.php:805
#: ../../mod/settings.php:816
msgid "Minimum of 10 seconds, no maximum"
msgstr "Minimal 10 Sekunden, kein Maximum"
#: ../../mod/settings.php:807
#: ../../mod/settings.php:818
msgid "Security and Privacy Settings"
msgstr "Sicherheits- und Privatsphäre-Einstellungen"
#: ../../mod/settings.php:809
#: ../../mod/settings.php:820
msgid "Maximum Friend Requests/Day:"
msgstr "Maximale Anzahl von Freundschaftsanfragen/Tag:"
#: ../../mod/settings.php:809
#: ../../mod/settings.php:820
msgid "(to prevent spam abuse)"
msgstr "(um SPAM zu vermeiden)"
#: ../../mod/settings.php:810
#: ../../mod/settings.php:821
msgid "Default Post Permissions"
msgstr "Standard-Zugriffsrechte für Beiträge"
#: ../../mod/settings.php:811
#: ../../mod/settings.php:822
msgid "(click to open/close)"
msgstr "(klicke zum öffnen/schließen)"
#: ../../mod/settings.php:826
#: ../../mod/settings.php:837
msgid "Notification Settings"
msgstr "Benachrichtigungseinstellungen"
#: ../../mod/settings.php:827
#: ../../mod/settings.php:838
msgid "Send a notification email when:"
msgstr "Benachrichtigungs-E-Mail senden wenn:"
#: ../../mod/settings.php:828
#: ../../mod/settings.php:839
msgid "You receive an introduction"
msgstr "- du eine Kontaktanfrage erhältst"
#: ../../mod/settings.php:829
#: ../../mod/settings.php:840
msgid "Your introductions are confirmed"
msgstr "- eine deiner Kontaktanfragen akzeptiert wurde"
#: ../../mod/settings.php:830
#: ../../mod/settings.php:841
msgid "Someone writes on your profile wall"
msgstr "- jemand etwas auf deine Pinnwand schreibt"
#: ../../mod/settings.php:831
#: ../../mod/settings.php:842
msgid "Someone writes a followup comment"
msgstr "- jemand auch einen Kommentar verfasst"
#: ../../mod/settings.php:832
#: ../../mod/settings.php:843
msgid "You receive a private message"
msgstr "- du eine private Nachricht erhältst"
#: ../../mod/settings.php:833
#: ../../mod/settings.php:844
msgid "You receive a friend suggestion"
msgstr "- du eine Empfehlung erhältst"
#: ../../mod/settings.php:834
#: ../../mod/settings.php:845
msgid "You are tagged in a post"
msgstr "- du in einem Beitrag erwähnt wurdest"
#: ../../mod/settings.php:837
#: ../../mod/settings.php:848
msgid "Advanced Page Settings"
msgstr "Erweiterte Seiten-Einstellungen"
@ -2136,27 +2153,27 @@ msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus unsicheren Netzwerke
msgid "Private messages to this group are at risk of public disclosure."
msgstr "Private Nachrichten an diese Gruppe könnten an die Öffentlichkeit geraten."
#: ../../mod/network.php:300
#: ../../mod/network.php:298
msgid "No such group"
msgstr "Es gibt keine solche Gruppe"
#: ../../mod/network.php:311
#: ../../mod/network.php:309
msgid "Group is empty"
msgstr "Gruppe ist leer"
#: ../../mod/network.php:315
#: ../../mod/network.php:313
msgid "Group: "
msgstr "Gruppe: "
#: ../../mod/network.php:325
#: ../../mod/network.php:323
msgid "Contact: "
msgstr "Kontakt: "
#: ../../mod/network.php:327
#: ../../mod/network.php:325
msgid "Private messages to this person are at risk of public disclosure."
msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen."
#: ../../mod/network.php:332
#: ../../mod/network.php:330
msgid "Invalid contact."
msgstr "Ungültiger Kontakt."
@ -2164,7 +2181,7 @@ msgstr "Ungültiger Kontakt."
msgid "Personal Notes"
msgstr "Persönliche Notizen"
#: ../../mod/notes.php:63 ../../include/text.php:639
#: ../../mod/notes.php:63 ../../include/text.php:645
msgid "Save"
msgstr "Speichern"
@ -2291,7 +2308,7 @@ msgstr "Gruppe erstellt."
msgid "Could not create group."
msgstr "Konnte die Gruppe nicht erstellen."
#: ../../mod/group.php:43 ../../mod/group.php:123
#: ../../mod/group.php:43 ../../mod/group.php:127
msgid "Group not found."
msgstr "Gruppe nicht gefunden."
@ -2303,34 +2320,34 @@ msgstr "Gruppenname geändert."
msgid "Permission denied"
msgstr "Zugriff verweigert"
#: ../../mod/group.php:82
#: ../../mod/group.php:85
msgid "Create a group of contacts/friends."
msgstr "Eine Gruppe von Kontakten/Freunden anlegen."
#: ../../mod/group.php:83 ../../mod/group.php:166
#: ../../mod/group.php:86 ../../mod/group.php:166
msgid "Group Name: "
msgstr "Gruppenname:"
#: ../../mod/group.php:98
#: ../../mod/group.php:102
msgid "Group removed."
msgstr "Gruppe entfernt."
#: ../../mod/group.php:100
#: ../../mod/group.php:104
msgid "Unable to remove group."
msgstr "Konnte die Gruppe nicht entfernen."
#: ../../mod/group.php:164 ../../mod/profperm.php:105
msgid "Click on a contact to add or remove."
msgstr "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen"
#: ../../mod/group.php:165
msgid "Group Editor"
msgstr "Gruppeneditor"
#: ../../mod/group.php:179
#: ../../mod/group.php:177
msgid "Members"
msgstr "Mitglieder"
#: ../../mod/group.php:209 ../../mod/profperm.php:105
msgid "Click on a contact to add or remove."
msgstr "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen"
#: ../../mod/profperm.php:25 ../../mod/profperm.php:55
msgid "Invalid profile identifier."
msgstr "Ungültiger Profil-Bezeichner"
@ -2357,7 +2374,7 @@ msgstr "Alle Kontakte (mit gesichertem Profilzugriff)"
msgid "No contacts."
msgstr "Keine Kontakte."
#: ../../mod/viewcontacts.php:73 ../../include/text.php:578
#: ../../mod/viewcontacts.php:74 ../../include/text.php:584
msgid "View Contacts"
msgstr "Kontakte anzeigen"
@ -2484,7 +2501,7 @@ msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung mögli
msgid "Your invitation ID: "
msgstr "ID deiner Einladung: "
#: ../../mod/register.php:540 ../../mod/admin.php:313
#: ../../mod/register.php:540 ../../mod/admin.php:314
msgid "Registration"
msgstr "Registrierung"
@ -2538,9 +2555,9 @@ msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s mag %2$ss %3$s nicht"
#: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:127
#: ../../mod/admin.php:518 ../../mod/admin.php:694 ../../mod/display.php:29
#: ../../mod/display.php:134 ../../mod/viewd.php:14
#: ../../include/items.php:2880
#: ../../mod/admin.php:522 ../../mod/admin.php:700 ../../mod/display.php:29
#: ../../mod/display.php:137 ../../mod/viewd.php:14
#: ../../include/items.php:2942
msgid "Item not found."
msgstr "Beitrag nicht gefunden."
@ -2575,29 +2592,29 @@ msgstr "Leerer Beitrag wurde verworfen."
msgid "Wall Photos"
msgstr "Pinnwand-Bilder"
#: ../../mod/item.php:830
#: ../../mod/item.php:833
msgid "System error. Post not saved."
msgstr "Systemfehler. Beitrag konnte nicht gespeichert werden."
#: ../../mod/item.php:855
#: ../../mod/item.php:858
#, php-format
msgid ""
"This message was sent to you by %s, a member of the Friendica social "
"network."
msgstr "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica."
#: ../../mod/item.php:857
#: ../../mod/item.php:860
#, php-format
msgid "You may visit them online at %s"
msgstr "Du kannst sie online unter %s besuchen"
#: ../../mod/item.php:858
#: ../../mod/item.php:861
msgid ""
"Please contact the sender by replying to this post if you do not wish to "
"receive these messages."
msgstr "Falls du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem du auf diese Nachricht antwortest."
#: ../../mod/item.php:860
#: ../../mod/item.php:863
#, php-format
msgid "%s posted an update."
msgstr "%s hat ein Update veröffentlicht."
@ -2721,7 +2738,7 @@ msgstr "Nachricht gelöscht."
msgid "Conversation removed."
msgstr "Unterhaltung gelöscht."
#: ../../mod/message.php:137 ../../include/conversation.php:868
#: ../../mod/message.php:137 ../../include/conversation.php:887
msgid "Please enter a link URL:"
msgstr "Bitte gib die URL des Links ein:"
@ -2775,23 +2792,23 @@ msgstr "Freunde von %s"
msgid "No friends to display."
msgstr "Keine Freunde zum Anzeigen."
#: ../../mod/admin.php:71 ../../mod/admin.php:311
#: ../../mod/admin.php:71 ../../mod/admin.php:312
msgid "Site"
msgstr "Seite"
#: ../../mod/admin.php:72 ../../mod/admin.php:476 ../../mod/admin.php:488
#: ../../mod/admin.php:72 ../../mod/admin.php:480 ../../mod/admin.php:492
msgid "Users"
msgstr "Nutzer"
#: ../../mod/admin.php:73 ../../mod/admin.php:565 ../../mod/admin.php:602
#: ../../mod/admin.php:73 ../../mod/admin.php:569 ../../mod/admin.php:608
msgid "Plugins"
msgstr "Plugins"
#: ../../mod/admin.php:74 ../../mod/admin.php:736 ../../mod/admin.php:768
#: ../../mod/admin.php:74 ../../mod/admin.php:742 ../../mod/admin.php:775
msgid "Themes"
msgstr "Themen"
#: ../../mod/admin.php:89 ../../mod/admin.php:846
#: ../../mod/admin.php:89 ../../mod/admin.php:855
msgid "Logs"
msgstr "Protokolle"
@ -2799,325 +2816,439 @@ msgstr "Protokolle"
msgid "User registrations waiting for confirmation"
msgstr "Nutzeranmeldungen die auf Bestätigung warten"
#: ../../mod/admin.php:160 ../../mod/admin.php:310 ../../mod/admin.php:475
#: ../../mod/admin.php:564 ../../mod/admin.php:601 ../../mod/admin.php:735
#: ../../mod/admin.php:767 ../../mod/admin.php:845
#: ../../mod/admin.php:161 ../../mod/admin.php:311 ../../mod/admin.php:479
#: ../../mod/admin.php:568 ../../mod/admin.php:607 ../../mod/admin.php:741
#: ../../mod/admin.php:774 ../../mod/admin.php:854
msgid "Administration"
msgstr "Administration"
#: ../../mod/admin.php:161
#: ../../mod/admin.php:162
msgid "Summary"
msgstr "Zusammenfassung"
#: ../../mod/admin.php:162
#: ../../mod/admin.php:163
msgid "Registered users"
msgstr "Registrierte Nutzer"
#: ../../mod/admin.php:164
#: ../../mod/admin.php:165
msgid "Pending registrations"
msgstr "Anstehende Anmeldungen"
#: ../../mod/admin.php:165
#: ../../mod/admin.php:166
msgid "Version"
msgstr "Version"
#: ../../mod/admin.php:167
#: ../../mod/admin.php:168
msgid "Active plugins"
msgstr "Aktive Plugins"
#: ../../mod/admin.php:259
#: ../../mod/admin.php:260
msgid "Site settings updated."
msgstr "Seiteneinstellungen aktualisiert."
#: ../../mod/admin.php:303
#: ../../mod/admin.php:304
msgid "Closed"
msgstr "Geschlossen"
#: ../../mod/admin.php:304
#: ../../mod/admin.php:305
msgid "Requires approval"
msgstr "Bedarf der Zustimmung"
#: ../../mod/admin.php:305
#: ../../mod/admin.php:306
msgid "Open"
msgstr "Offen"
#: ../../mod/admin.php:314
#: ../../mod/admin.php:315
msgid "File upload"
msgstr "Datei hochladen"
#: ../../mod/admin.php:315
#: ../../mod/admin.php:316
msgid "Policies"
msgstr "Regeln"
#: ../../mod/admin.php:316
#: ../../mod/admin.php:317
msgid "Advanced"
msgstr "Erweitert"
#: ../../mod/admin.php:320 ../../addon/statusnet/statusnet.php:523
#: ../../mod/admin.php:321 ../../addon/statusnet/statusnet.php:523
msgid "Site name"
msgstr "Seitenname"
#: ../../mod/admin.php:321
#: ../../mod/admin.php:322
msgid "Banner/Logo"
msgstr "Banner/Logo"
#: ../../mod/admin.php:322
#: ../../mod/admin.php:323
msgid "System language"
msgstr "Systemsprache"
#: ../../mod/admin.php:323
#: ../../mod/admin.php:324
msgid "System theme"
msgstr "Systemweites Thema"
#: ../../mod/admin.php:325
#: ../../mod/admin.php:324
msgid "Default system theme - may be over-ridden by user profiles"
msgstr "Standard Server Theme - kann von den Benutzereinstellungen überschrieben werden."
#: ../../mod/admin.php:326
msgid "Maximum image size"
msgstr "Maximale Größe von Bildern"
#: ../../mod/admin.php:327
#: ../../mod/admin.php:326
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Maximale Upload-Größe von Bildern in Bytes. Standard ist 0, d.h. ohne Limit."
#: ../../mod/admin.php:328
msgid "Register policy"
msgstr "Registrierungsmethode"
#: ../../mod/admin.php:328
#: ../../mod/admin.php:329
msgid "Register text"
msgstr "Registrierungstext"
#: ../../mod/admin.php:329
msgid "Will be displayed prominently on the registration page."
msgstr "Wird gut sichtbar auf der Registrierungs-Seite angezeigt."
#: ../../mod/admin.php:330
msgid "Accounts abandoned after x days"
msgstr "Accounts gelten nach x Tagen als unbenutzt"
#: ../../mod/admin.php:329
#: ../../mod/admin.php:330
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit."
#: ../../mod/admin.php:330
#: ../../mod/admin.php:331
msgid "Allowed friend domains"
msgstr "Erlaubte Domains für Kontakte"
#: ../../mod/admin.php:331
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."
#: ../../mod/admin.php:332
msgid "Allowed email domains"
msgstr "Erlaubte Domains für Emails"
#: ../../mod/admin.php:332
msgid ""
"Comma separated list of domains which are allowed in email addresses for "
"registrations to this site. Wildcards are accepted. Empty to allow any "
"domains"
msgstr "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."
#: ../../mod/admin.php:333
msgid "Block public"
msgstr "Öffentlichen Zugriff blockieren"
#: ../../mod/admin.php:333
msgid ""
"Check to block public access to all otherwise public personal pages on this "
"site unless you are currently logged in."
msgstr "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist."
#: ../../mod/admin.php:334
msgid "Force publish"
msgstr "Erzwinge Veröffentlichung"
#: ../../mod/admin.php:334
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen."
#: ../../mod/admin.php:335
msgid "Global directory update URL"
msgstr "URL für Updates beim weltweiten Verzeichnis"
#: ../../mod/admin.php:336
#: ../../mod/admin.php:335
msgid ""
"URL to update the global directory. If this is not set, the global directory"
" is completely unavailable to the application."
msgstr "URL für Update des globalen Verzeichnisses. Wenn nichts eingetragen ist, bleibt das globale Verzeichnis unerreichbar."
#: ../../mod/admin.php:337
msgid "Block multiple registrations"
msgstr "Unterbinde Mehrfachregistrierung"
#: ../../mod/admin.php:337
msgid "Disallow users to register additional accounts for use as pages."
msgstr "Benutzern nicht erlauben, weitere Accounts als zusätzliche Profile anzulegen."
#: ../../mod/admin.php:338
msgid "OpenID support"
msgstr "OpenID Unterstützung"
#: ../../mod/admin.php:338
msgid "OpenID support for registration and logins."
msgstr "OpenID-Unterstützung für Registrierung und Login."
#: ../../mod/admin.php:339
msgid "Gravatar support"
msgstr "Gravatar Unterstützung"
#: ../../mod/admin.php:339
msgid "Search new user's photo on Gravatar."
msgstr "Suchfunktion bei Gravatar für Profilbilder neuer Nutzer."
#: ../../mod/admin.php:340
msgid "Fullname check"
msgstr "Namen auf Vollständigkeit überprüfen"
#: ../../mod/admin.php:340
msgid ""
"Force users to register with a space between firstname and lastname in Full "
"name, as an antispam measure"
msgstr "Leerzeichen zwischen Vor- und Nachname im vollständigen Namen erzwingen, um SPAM zu vermeiden."
#: ../../mod/admin.php:341
msgid "UTF-8 Regular expressions"
msgstr "UTF-8 Reguläre Ausdrücke"
#: ../../mod/admin.php:341
msgid "Use PHP UTF8 regular expressions"
msgstr "PHP UTF8 Ausdrücke verwenden"
#: ../../mod/admin.php:342
msgid "Show Community Page"
msgstr "Gemeinschaftsseite anzeigen"
#: ../../mod/admin.php:342
msgid ""
"Display a Community page showing all recent public postings on this site."
msgstr "Zeige die Gemeinschaftsseite mit allen öffentlichen Beiträgen auf diesem Server."
#: ../../mod/admin.php:343
msgid "Enable OStatus support"
msgstr "OStatus Unterstützung aktivieren"
#: ../../mod/admin.php:343
msgid ""
"Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
"communications in OStatus are public, so privacy warnings will be "
"occasionally displayed."
msgstr "Biete die eingebaute OStatus (identi.ca, status.net, etc.) Unterstützung an. Jede Kommunikation in OStatus ist öffentlich, so Privatsphäre Warnungen werden bei Bedarf angezeigt."
#: ../../mod/admin.php:344
msgid "Enable Diaspora support"
msgstr "Diaspora-Support aktivieren"
#: ../../mod/admin.php:344
msgid "Provide built-in Diaspora network compatibility."
msgstr "Verwende die eingebaute Diaspora-Verknüpfung."
#: ../../mod/admin.php:345
msgid "Only allow Friendica contacts"
msgstr "Nur Friendica-Kontakte erlauben"
#: ../../mod/admin.php:345
msgid ""
"All contacts must use Friendica protocols. All other built-in communication "
"protocols disabled."
msgstr "Alle Kontakte müssen das Friendica Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert."
#: ../../mod/admin.php:346
msgid "Verify SSL"
msgstr "SSL Überprüfen"
#: ../../mod/admin.php:346
msgid ""
"If you wish, you can turn on strict certificate checking. This will mean you"
" cannot connect (at all) to self-signed SSL sites."
msgstr "Wenn gewollt, kann man hier eine strenge Zertifikat Kontrolle anstellen. Das bedeutet, das man zu keinen Seiten mit selbst unterzeichneten SSL eine Verbindung herstellen kann."
#: ../../mod/admin.php:347
msgid "Proxy user"
msgstr "Proxy Nutzer"
#: ../../mod/admin.php:347
#: ../../mod/admin.php:348
msgid "Proxy URL"
msgstr "Proxy URL"
#: ../../mod/admin.php:348
#: ../../mod/admin.php:349
msgid "Network timeout"
msgstr "Netzwerk Wartezeit"
#: ../../mod/admin.php:369
#, php-format
msgid "%s user blocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] "%s Nutzer gesperrt"
msgstr[1] "%s Nutzer gesperrt/entsperrt"
#: ../../mod/admin.php:349
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)."
#: ../../mod/admin.php:376
#: ../../mod/admin.php:370
#, php-format
msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
msgstr[0] "%s Benutzer geblockt/freigegeben"
msgstr[1] "%s Benutzer geblockt/freigegeben"
#: ../../mod/admin.php:377
#, php-format
msgid "%s user deleted"
msgid_plural "%s users deleted"
msgstr[0] "%s Nutzer gelöscht"
msgstr[1] "%s Nutzer gelöscht"
#: ../../mod/admin.php:410
#: ../../mod/admin.php:411
#, php-format
msgid "User '%s' deleted"
msgstr "Nutzer '%s' gelöscht"
#: ../../mod/admin.php:417
#: ../../mod/admin.php:418
#, php-format
msgid "User '%s' unblocked"
msgstr "Nutzer '%s' entsperrt"
#: ../../mod/admin.php:417
#: ../../mod/admin.php:418
#, php-format
msgid "User '%s' blocked"
msgstr "Nutzer '%s' gesperrt"
#: ../../mod/admin.php:478
#: ../../mod/admin.php:482
msgid "select all"
msgstr "Alle auswählen"
#: ../../mod/admin.php:479
#: ../../mod/admin.php:483
msgid "User registrations waiting for confirm"
msgstr "Neuanmeldungen, die auf deine Bestätigung warten"
#: ../../mod/admin.php:480
#: ../../mod/admin.php:484
msgid "Request date"
msgstr "Anfrage Datum"
#: ../../mod/admin.php:480 ../../mod/admin.php:489
#: ../../mod/admin.php:484 ../../mod/admin.php:493
#: ../../include/contact_selectors.php:79
msgid "Email"
msgstr "Email"
#: ../../mod/admin.php:481
#: ../../mod/admin.php:485
msgid "No registrations."
msgstr "Keine Neuanmeldungen."
#: ../../mod/admin.php:483
#: ../../mod/admin.php:487
msgid "Deny"
msgstr "Verwehren"
#: ../../mod/admin.php:489
#: ../../mod/admin.php:493
msgid "Register date"
msgstr "Anmeldedatum"
#: ../../mod/admin.php:489
#: ../../mod/admin.php:493
msgid "Last login"
msgstr "Letzte Anmeldung"
#: ../../mod/admin.php:489
#: ../../mod/admin.php:493
msgid "Last item"
msgstr "Letzter Beitrag"
#: ../../mod/admin.php:489
#: ../../mod/admin.php:493
msgid "Account"
msgstr "Nutzerkonto"
#: ../../mod/admin.php:491
#: ../../mod/admin.php:495
msgid ""
"Selected users will be deleted!\\n\\nEverything these users had posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist du sicher?"
#: ../../mod/admin.php:492
#: ../../mod/admin.php:496
msgid ""
"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
"site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Der Nutzer {0} wird gelöscht!\\n\\nAlles was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist du sicher?"
#: ../../mod/admin.php:528
#: ../../mod/admin.php:532
#, php-format
msgid "Plugin %s disabled."
msgstr "Plugin %s deaktiviert."
#: ../../mod/admin.php:532
#: ../../mod/admin.php:536
#, php-format
msgid "Plugin %s enabled."
msgstr "Plugin %s aktiviert."
#: ../../mod/admin.php:542 ../../mod/admin.php:718
#: ../../mod/admin.php:546 ../../mod/admin.php:724
msgid "Disable"
msgstr "Ausschalten"
#: ../../mod/admin.php:544 ../../mod/admin.php:720
#: ../../mod/admin.php:548 ../../mod/admin.php:726
msgid "Enable"
msgstr "Einschalten"
#: ../../mod/admin.php:566 ../../mod/admin.php:737
#: ../../mod/admin.php:570 ../../mod/admin.php:743
msgid "Toggle"
msgstr "Umschalten"
#: ../../mod/admin.php:567 ../../mod/admin.php:738 ../../include/nav.php:130
#: ../../mod/admin.php:571 ../../mod/admin.php:744 ../../include/nav.php:130
msgid "Settings"
msgstr "Einstellungen"
#: ../../mod/admin.php:683
#: ../../mod/admin.php:578 ../../mod/admin.php:753
msgid "Author: "
msgstr "Autor:"
#: ../../mod/admin.php:579 ../../mod/admin.php:754
msgid "Maintainer: "
msgstr "Betreuer:"
#: ../../mod/admin.php:689
msgid "No themes found."
msgstr "Keine Themen gefunden."
#: ../../mod/admin.php:795
#: ../../mod/admin.php:780
msgid "[Experimental]"
msgstr "[Experimentell]"
#: ../../mod/admin.php:781
msgid "[Unsupported]"
msgstr "[Nicht unterstützt]"
#: ../../mod/admin.php:804
msgid "Log settings updated."
msgstr "Protokolleinstellungen aktualisiert."
#: ../../mod/admin.php:848
#: ../../mod/admin.php:857
msgid "Clear"
msgstr "löschen"
#: ../../mod/admin.php:854
#: ../../mod/admin.php:863
msgid "Debugging"
msgstr "Protokoll führen"
#: ../../mod/admin.php:855
#: ../../mod/admin.php:864
msgid "Log file"
msgstr "Protokolldatei"
#: ../../mod/admin.php:855
#: ../../mod/admin.php:864
msgid ""
"Must be writable by web server. Relative to your Friendica top-level "
"directory."
msgstr "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis."
#: ../../mod/admin.php:856
#: ../../mod/admin.php:865
msgid "Log level"
msgstr "Protokoll-Level"
#: ../../mod/admin.php:897
#: ../../mod/admin.php:906
msgid "Close"
msgstr "Schließen"
#: ../../mod/admin.php:903
#: ../../mod/admin.php:912
msgid "FTP Host"
msgstr "FTP Host"
#: ../../mod/admin.php:904
#: ../../mod/admin.php:913
msgid "FTP Path"
msgstr "FTP Pfad"
#: ../../mod/admin.php:905
#: ../../mod/admin.php:914
msgid "FTP User"
msgstr "FTP Nutzername"
#: ../../mod/admin.php:906
#: ../../mod/admin.php:915
msgid "FTP Password"
msgstr "FTP Passwort"
@ -3133,48 +3264,48 @@ msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt."
msgid "Tips for New Members"
msgstr "Tipps für neue Nutzer"
#: ../../mod/ping.php:146
#: ../../mod/ping.php:174
msgid "{0} wants to be your friend"
msgstr "{0} möchte mit dir in Kontakt treten"
#: ../../mod/ping.php:151
#: ../../mod/ping.php:179
msgid "{0} sent you a message"
msgstr "{0} hat dir eine Nachricht geschickt"
#: ../../mod/ping.php:156
#: ../../mod/ping.php:184
msgid "{0} requested registration"
msgstr "{0} möchte sich registrieren"
#: ../../mod/ping.php:162
#: ../../mod/ping.php:190
#, php-format
msgid "{0} commented %s's post"
msgstr "{0} kommentierte einen Beitrag von %s"
#: ../../mod/ping.php:167
#: ../../mod/ping.php:195
#, php-format
msgid "{0} liked %s's post"
msgstr "{0} mag %ss Beitrag"
#: ../../mod/ping.php:172
#: ../../mod/ping.php:200
#, php-format
msgid "{0} disliked %s's post"
msgstr "{0} mag %ss Beitrag nicht"
#: ../../mod/ping.php:177
#: ../../mod/ping.php:205
#, php-format
msgid "{0} is now friends with %s"
msgstr "{0} ist jetzt mit %s befreundet"
#: ../../mod/ping.php:182
#: ../../mod/ping.php:210
msgid "{0} posted"
msgstr "{0} hat etwas veröffentlicht"
#: ../../mod/ping.php:187
#: ../../mod/ping.php:215
#, php-format
msgid "{0} tagged %s's post with #%s"
msgstr "{0} hat %ss Beitrag mit dem Schlagwort #%s versehen"
#: ../../mod/ping.php:193
#: ../../mod/ping.php:221
msgid "{0} mentioned you in a post"
msgstr "{0} hat dich in einem Beitrag erwähnt"
@ -3236,7 +3367,7 @@ msgstr "Gemeinsame Freunde"
msgid "No friends in common."
msgstr "Keine gemeinsamen Freunde."
#: ../../mod/display.php:127
#: ../../mod/display.php:130
msgid "Item has been removed."
msgstr "Eintrag wurde entfernt."
@ -3602,78 +3733,84 @@ msgid ""
"Once you have registered, please connect with me via my profile page at:"
msgstr "Sobald du registriert bist, kontaktiere mich bitte auf meiner Profilseite:"
#: ../../mod/dfrn_confirm.php:238
#: ../../mod/dfrn_confirm.php:119
msgid ""
"This may occasionally happen if contact was requested by both persons and it"
" has already been approved."
msgstr "Das kann passieren, wenn sich zwei Kontakte gegenseitig eingeladen haben und bereits einer angenommen wurde."
#: ../../mod/dfrn_confirm.php:239
msgid "Response from remote site was not understood."
msgstr "Antwort der Gegenstelle unverständlich."
#: ../../mod/dfrn_confirm.php:247
#: ../../mod/dfrn_confirm.php:248
msgid "Unexpected response from remote site: "
msgstr "Unerwartete Antwort der Gegenstelle: "
#: ../../mod/dfrn_confirm.php:255
#: ../../mod/dfrn_confirm.php:256
msgid "Confirmation completed successfully."
msgstr "Bestätigung erfolgreich abgeschlossen."
#: ../../mod/dfrn_confirm.php:257 ../../mod/dfrn_confirm.php:271
#: ../../mod/dfrn_confirm.php:278
#: ../../mod/dfrn_confirm.php:258 ../../mod/dfrn_confirm.php:272
#: ../../mod/dfrn_confirm.php:279
msgid "Remote site reported: "
msgstr "Gegenstelle meldet: "
#: ../../mod/dfrn_confirm.php:269
#: ../../mod/dfrn_confirm.php:270
msgid "Temporary failure. Please wait and try again."
msgstr "Zeitweiser Fehler. Bitte warte einige Momente und versuche es dann noch einmal."
#: ../../mod/dfrn_confirm.php:276
#: ../../mod/dfrn_confirm.php:277
msgid "Introduction failed or was revoked."
msgstr "Kontaktanfrage schlug fehl oder wurde zurück gezogen."
#: ../../mod/dfrn_confirm.php:421
#: ../../mod/dfrn_confirm.php:422
msgid "Unable to set contact photo."
msgstr "Konnte das Bild des Kontakts nicht speichern."
#: ../../mod/dfrn_confirm.php:473 ../../include/diaspora.php:495
#: ../../mod/dfrn_confirm.php:474 ../../include/diaspora.php:495
#: ../../include/conversation.php:101
#, php-format
msgid "%1$s is now friends with %2$s"
msgstr "%1$s ist nun mit %2$s befreundet"
#: ../../mod/dfrn_confirm.php:543
#: ../../mod/dfrn_confirm.php:544
#, php-format
msgid "No user record found for '%s' "
msgstr "Für '%s' wurde kein Nutzer gefunden"
#: ../../mod/dfrn_confirm.php:553
#: ../../mod/dfrn_confirm.php:554
msgid "Our site encryption key is apparently messed up."
msgstr "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend im Arsch."
#: ../../mod/dfrn_confirm.php:564
#: ../../mod/dfrn_confirm.php:565
msgid "Empty site URL was provided or URL could not be decrypted by us."
msgstr "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden."
#: ../../mod/dfrn_confirm.php:585
#: ../../mod/dfrn_confirm.php:586
msgid "Contact record was not found for you on our site."
msgstr "Für diesen Kontakt wurde auf unserer Seite kein Eintrag gefunden."
#: ../../mod/dfrn_confirm.php:599
#: ../../mod/dfrn_confirm.php:600
#, php-format
msgid "Site public key not available in contact record for URL %s."
msgstr "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server."
#: ../../mod/dfrn_confirm.php:619
#: ../../mod/dfrn_confirm.php:620
msgid ""
"The ID provided by your system is a duplicate on our system. It should work "
"if you try again."
msgstr "Die ID, die uns dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal."
#: ../../mod/dfrn_confirm.php:630
#: ../../mod/dfrn_confirm.php:631
msgid "Unable to set your contact credentials on our system."
msgstr "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden."
#: ../../mod/dfrn_confirm.php:684
#: ../../mod/dfrn_confirm.php:694
msgid "Unable to update your contact profile details on our system"
msgstr "Die Updates für dein Profil konnten nicht gespeichert werden"
#: ../../mod/dfrn_confirm.php:714
#: ../../mod/dfrn_confirm.php:724
#, php-format
msgid "Connection accepted at %s"
msgstr "Auf %s wurde die Verbindung akzeptiert"
@ -3786,7 +3923,7 @@ msgid "Facebook post failed. Queued for retry."
msgstr "Veröffentlichung bei Facebook gescheitert. Wir versuchen es später erneut."
#: ../../addon/facebook/facebook.php:877 ../../addon/facebook/facebook.php:886
#: ../../include/bb2diaspora.php:132
#: ../../include/bb2diaspora.php:102
msgid "link"
msgstr "Verweis"
@ -3844,6 +3981,30 @@ msgstr "SSL Verwenden "
msgid "yourls Settings saved."
msgstr "yourls Einstellungen gespeichert"
#: ../../addon/ljpost/ljpost.php:38
msgid "Post to LiveJournal"
msgstr "In LiveJournal veröffentlichen."
#: ../../addon/ljpost/ljpost.php:69
msgid "LiveJournal Post Settings"
msgstr "LiveJournal Veröffentlichungs-Einstellungen"
#: ../../addon/ljpost/ljpost.php:71
msgid "Enable LiveJournal Post Plugin"
msgstr "LiveJournal Post Plugin aktivieren"
#: ../../addon/ljpost/ljpost.php:76
msgid "LiveJournal username"
msgstr "LiveJournal Benutzername"
#: ../../addon/ljpost/ljpost.php:81
msgid "LiveJournal password"
msgstr "LiveJournal Passwort"
#: ../../addon/ljpost/ljpost.php:86
msgid "Post to LiveJournal by default"
msgstr "Standardmäßig bei LiveJournal veröffentlichen"
#: ../../addon/nsfw/nsfw.php:47
msgid "\"Not Safe For Work\" Settings"
msgstr "\"Not Safe For Work\"-Einstellungen"
@ -3870,12 +4031,15 @@ msgid "%s - Click to open/close"
msgstr "%s Zum Öffnen/Schließen klicken"
#: ../../addon/communityhome/communityhome.php:28
#: ../../addon/communityhome/communityhome.php:34 ../../include/nav.php:62
#: ../../boot.php:710
#: ../../addon/communityhome/communityhome.php:34
#: ../../addon/communityhome/twillingham/communityhome.php:28
#: ../../addon/communityhome/twillingham/communityhome.php:34
#: ../../include/nav.php:62 ../../boot.php:710
msgid "Login"
msgstr "Anmeldung"
#: ../../addon/communityhome/communityhome.php:29
#: ../../addon/communityhome/twillingham/communityhome.php:29
msgid "OpenID"
msgstr "OpenID"
@ -3884,6 +4048,7 @@ msgid "Last users"
msgstr "Letzte Nutzer"
#: ../../addon/communityhome/communityhome.php:81
#: ../../addon/communityhome/twillingham/communityhome.php:81
msgid "Most active users"
msgstr "Aktivste Nutzer"
@ -3895,11 +4060,15 @@ msgstr "Letzte Fotos"
msgid "Last likes"
msgstr "Zuletzt gemocht"
#: ../../addon/communityhome/communityhome.php:155
#: ../../addon/communityhome/communityhome.php:155 ../../include/text.php:1224
#: ../../include/conversation.php:45 ../../include/conversation.php:118
msgid "event"
msgstr "Veranstaltung"
#: ../../addon/communityhome/twillingham/communityhome.php:38
msgid "Latest users"
msgstr "Letzte Benutzer"
#: ../../addon/uhremotestorage/uhremotestorage.php:84
#, php-format
msgid ""
@ -3987,6 +4156,30 @@ msgstr "Randplace-Einstellungen"
msgid "Enable Randplace Plugin"
msgstr "Randplace-Plugin aktivieren"
#: ../../addon/dwpost/dwpost.php:38
msgid "Post to Dreamwidth"
msgstr "In Dreamwidth veröffentlichen"
#: ../../addon/dwpost/dwpost.php:69
msgid "Dreamwidth Post Settings"
msgstr "Dreamwidth Veröffentlichungs-Einstellungen"
#: ../../addon/dwpost/dwpost.php:71
msgid "Enable dreamwidth Post Plugin"
msgstr "Dreamwidth Post Plugin aktivieren"
#: ../../addon/dwpost/dwpost.php:76
msgid "dreamwidth username"
msgstr "Dreamwidth Benutzername"
#: ../../addon/dwpost/dwpost.php:81
msgid "dreamwidth password"
msgstr "Dreamwidth Passwort"
#: ../../addon/dwpost/dwpost.php:86
msgid "Post to dreamwidth by default"
msgstr "Standardmäßig bei Dreamwidth veröffentlichen"
#: ../../addon/drpost/drpost.php:35
msgid "Post to Drupal"
msgstr "Bei Drupal veröffentlichen"
@ -4165,10 +4358,16 @@ msgid "Quick Comment Settings"
msgstr "Schnell-Kommentar Einstellungen"
#: ../../addon/qcomment/qcomment.php:56
msgid ""
"Quick comments are found near comment boxes, sometimes hidden. Click them to"
" provide simple replies."
msgstr "Kurz-Kommentare findet man in der Nähe der Kommentar-Boxen. Ein Klick darauf erstellt einfache Antworten."
#: ../../addon/qcomment/qcomment.php:57
msgid "Enter quick comments, one per line"
msgstr "Gib einen Schnell-Kommentar pro Zeile ein"
#: ../../addon/qcomment/qcomment.php:74
#: ../../addon/qcomment/qcomment.php:75
msgid "Quick Comment settings saved."
msgstr "Schnell-Kommentare Einstellungen gespeichert"
@ -4371,6 +4570,29 @@ msgstr "Numfriends Einstellungen"
msgid "How many contacts to display on profile sidebar"
msgstr "Wie viele Kontakte sollen in der Seitenleiste angezeigt werden"
#: ../../addon/gnot/gnot.php:48
msgid "Gnot settings updated."
msgstr "Gnot Einstellungen aktualisiert."
#: ../../addon/gnot/gnot.php:79
msgid "Gnot Settings"
msgstr "Gnot Einstellungen"
#: ../../addon/gnot/gnot.php:81
msgid ""
"Allows threading of email comment notifications on Gmail and anonymising the"
" subject line."
msgstr "Erlaubt das Veröffentlichen von E-Mail Kommentar Benachrichtigungen bei Gmail mit anonymisiertem Betreff"
#: ../../addon/gnot/gnot.php:82
msgid "Enable this plugin/addon?"
msgstr "Dieses Plugin/Addon aktivieren?"
#: ../../addon/gnot/gnot.php:97
#, php-format
msgid "[Friendica:Notify] Comment to conversation #%d"
msgstr "[Friendica Meldung] Kommentar zum Beitrag #%d"
#: ../../addon/wppost/wppost.php:42
msgid "Post to Wordpress"
msgstr "Bei WordPress veröffentlichen"
@ -4521,6 +4743,10 @@ msgstr "Consumer Key"
msgid "Consumer secret"
msgstr "Consumer Secret"
#: ../../addon/irc/irc.php:20
msgid "irc Chatroom"
msgstr "irc Chatroom"
#: ../../addon/posterous/posterous.php:36
msgid "Post to Posterous"
msgstr "Nach Posterous senden"
@ -4545,6 +4771,22 @@ msgstr "Posterous-Passwort"
msgid "Post to Posterous by default"
msgstr "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous"
#: ../../view/theme/quattro/theme.php:17
msgid "Theme settings"
msgstr "Themen Einstellungen"
#: ../../view/theme/quattro/theme.php:18
msgid "Alignment"
msgstr "Ausrichtung"
#: ../../view/theme/quattro/theme.php:18
msgid "Left"
msgstr "Links"
#: ../../view/theme/quattro/theme.php:18
msgid "Center"
msgstr "Mitte"
#: ../../include/profile_advanced.php:17 ../../boot.php:982
msgid "Gender:"
msgstr "Geschlecht:"
@ -4906,142 +5148,154 @@ msgstr "Ist mir nicht wichtig"
msgid "Ask me"
msgstr "Frag mich"
#: ../../include/event.php:17 ../../include/bb2diaspora.php:274
#: ../../include/event.php:17 ../../include/bb2diaspora.php:244
msgid "Starts:"
msgstr "Beginnt:"
#: ../../include/event.php:27 ../../include/bb2diaspora.php:282
#: ../../include/event.php:27 ../../include/bb2diaspora.php:252
msgid "Finishes:"
msgstr "Endet:"
#: ../../include/delivery.php:424 ../../include/notifier.php:637
#: ../../include/delivery.php:425 ../../include/notifier.php:638
msgid "(no subject)"
msgstr "(kein Betreff)"
#: ../../include/delivery.php:431 ../../include/enotify.php:16
#: ../../include/notifier.php:644
#: ../../include/delivery.php:432 ../../include/enotify.php:17
#: ../../include/notifier.php:645
msgid "noreply"
msgstr "noreply"
#: ../../include/text.php:232
#: ../../include/text.php:238
msgid "prev"
msgstr "vorige"
#: ../../include/text.php:234
#: ../../include/text.php:240
msgid "first"
msgstr "erste"
#: ../../include/text.php:263
#: ../../include/text.php:269
msgid "last"
msgstr "letzte"
#: ../../include/text.php:266
#: ../../include/text.php:272
msgid "next"
msgstr "nächste"
#: ../../include/text.php:557
#: ../../include/text.php:563
msgid "No contacts"
msgstr "Keine Kontakte"
#: ../../include/text.php:566
#: ../../include/text.php:572
#, php-format
msgid "%d Contact"
msgid_plural "%d Contacts"
msgstr[0] "%d Kontakt"
msgstr[1] "%d Kontakte"
#: ../../include/text.php:637 ../../include/nav.php:87
#: ../../include/text.php:643 ../../include/nav.php:87
msgid "Search"
msgstr "Suche"
#: ../../include/text.php:813
#: ../../include/text.php:831
msgid "Monday"
msgstr "Montag"
#: ../../include/text.php:813
#: ../../include/text.php:831
msgid "Tuesday"
msgstr "Dienstag"
#: ../../include/text.php:813
#: ../../include/text.php:831
msgid "Wednesday"
msgstr "Mittwoch"
#: ../../include/text.php:813
#: ../../include/text.php:831
msgid "Thursday"
msgstr "Donnerstag"
#: ../../include/text.php:813
#: ../../include/text.php:831
msgid "Friday"
msgstr "Freitag"
#: ../../include/text.php:813
#: ../../include/text.php:831
msgid "Saturday"
msgstr "Samstag"
#: ../../include/text.php:813
#: ../../include/text.php:831
msgid "Sunday"
msgstr "Sonntag"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "January"
msgstr "Januar"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "February"
msgstr "Februar"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "March"
msgstr "März"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "April"
msgstr "April"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "May"
msgstr "Mai"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "June"
msgstr "Juni"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "July"
msgstr "Juli"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "August"
msgstr "August"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "September"
msgstr "September"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "October"
msgstr "Oktober"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "November"
msgstr "November"
#: ../../include/text.php:817
#: ../../include/text.php:835
msgid "December"
msgstr "Dezember"
#: ../../include/text.php:887
#: ../../include/text.php:905
msgid "bytes"
msgstr "Byte"
#: ../../include/text.php:982
#: ../../include/text.php:1000
msgid "Select an alternate language"
msgstr "Alternative Sprache auswählen"
#: ../../include/text.php:994
#: ../../include/text.php:1012
msgid "default"
msgstr "standard"
#: ../../include/text.php:1228
msgid "activity"
msgstr "Aktivität"
#: ../../include/text.php:1230
msgid "comment"
msgstr "Kommentar"
#: ../../include/text.php:1231
msgid "post"
msgstr "Beitrag"
#: ../../include/diaspora.php:570
msgid "Sharing notification from Diaspora network"
msgstr "Freigabe-Benachrichtigung von Diaspora"
@ -5055,6 +5309,10 @@ msgstr "Anhänge:"
msgid "[Relayed] Comment authored by %s from network %s"
msgstr "[Weitergeleitet] Kommentar von %s aus dem %s Netzwerk"
#: ../../include/network.php:814
msgid "view full size"
msgstr "Volle Größe anzeigen"
#: ../../include/oembed.php:128
msgid "Embedded content"
msgstr "Eingebetteter Inhalt"
@ -5350,7 +5608,7 @@ msgstr "Sekunden"
msgid "%1$d %2$s ago"
msgstr "%1$d %2$s her"
#: ../../include/poller.php:474
#: ../../include/poller.php:513
msgid "From: "
msgstr "Von: "
@ -5371,15 +5629,15 @@ msgstr "Kann die DNS Informationen für den Datenbanken Server '%s' nicht ermitt
msgid "[no subject]"
msgstr "[kein Betreff]"
#: ../../include/acl_selectors.php:279
#: ../../include/acl_selectors.php:284
msgid "Visible to everybody"
msgstr "Für jeden sichtbar"
#: ../../include/acl_selectors.php:280
#: ../../include/acl_selectors.php:285
msgid "show"
msgstr "zeigen"
#: ../../include/acl_selectors.php:281
#: ../../include/acl_selectors.php:286
msgid "don't show"
msgstr "nicht zeigen"
@ -5396,172 +5654,191 @@ msgstr "Danke,"
msgid "%s Administrator"
msgstr "der Administrator von %s"
#: ../../include/enotify.php:28
#: ../../include/enotify.php:29
#, php-format
msgid "New mail received at %s"
msgstr "Neue Nachricht auf %s empfangen"
msgid "%s <!item_type!>"
msgstr "%s <!item_type!>"
#: ../../include/enotify.php:30
#: ../../include/enotify.php:33
#, php-format
msgid "[Friendica:Notify] New mail received at %s"
msgstr "[Friendica Meldung] Neue Nachricht erhalten von %s"
#: ../../include/enotify.php:35
#, php-format
msgid "%s sent you a new private message at %s."
msgstr "%s hat dir eine neue private Nachricht auf %s geschrieben."
#: ../../include/enotify.php:31
#: ../../include/enotify.php:36
#, php-format
msgid "%s sent you %s."
msgstr "%s hat Dir geschickt %s"
#: ../../include/enotify.php:31
#: ../../include/enotify.php:36
msgid "a private message"
msgstr "eine private Nachricht"
#: ../../include/enotify.php:32
#: ../../include/enotify.php:37
#, php-format
msgid "Please visit %s to view and/or reply to your private messages."
msgstr "Bitte besuche %s, um deine privaten Nachrichten anzusehen und/oder zu beantworten."
#: ../../include/enotify.php:40
#: ../../include/enotify.php:67
#, php-format
msgid "%s commented on an item at %s"
msgstr "%s kommentierte einen Beitrag auf %s"
msgid "%s's"
msgstr "%s's"
#: ../../include/enotify.php:41
#: ../../include/enotify.php:71
msgid "your"
msgstr "Dein"
#: ../../include/enotify.php:78
#, php-format
msgid "[Friendica:Notify] Comment to conversation #%d by %s"
msgstr "[Friendica Meldung] Kommentar zum Beitrag #%d von %s"
#: ../../include/enotify.php:79
#, php-format
msgid "%s commented on an item/conversation you have been following."
msgstr "%s hat einen Beitrag kommentiert, dem du folgst."
#: ../../include/enotify.php:42
#: ../../include/enotify.php:80
#, php-format
msgid "%s commented in %s."
msgstr "%s wurde kommentiert in %s"
msgid "%s commented on %s."
msgstr "%s kommentierte %s."
#: ../../include/enotify.php:42
msgid "a watched conversation"
msgstr "eine beobachtete Unterhaltung"
#: ../../include/enotify.php:44 ../../include/enotify.php:54
#: ../../include/enotify.php:64 ../../include/enotify.php:74
#: ../../include/enotify.php:82 ../../include/enotify.php:95
#: ../../include/enotify.php:106 ../../include/enotify.php:117
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren."
#: ../../include/enotify.php:51
#: ../../include/enotify.php:89
#, php-format
msgid "[Friendica:Notify] %s posted to your profile wall"
msgstr "[Friendica Meldung] %s hat auf Deine Pinnwand geschrieben"
#: ../../include/enotify.php:91
#, php-format
msgid "%s posted to your profile wall at %s"
msgstr "%s hat auf deine Pinnwand bei %s gepostet"
#: ../../include/enotify.php:52
#: ../../include/enotify.php:93
#, php-format
msgid "%s posted to %s"
msgstr "%s schrieb an %s"
#: ../../include/enotify.php:52
#: ../../include/enotify.php:93
msgid "your profile wall."
msgstr "Deine Pinnwand"
#: ../../include/enotify.php:61
#: ../../include/enotify.php:102
#, php-format
msgid "[Friendica:Notify] %s tagged you"
msgstr "[Friendica Meldung] %s hat Dich erwähnt"
#: ../../include/enotify.php:103
#, php-format
msgid "%s tagged you at %s"
msgstr "%s hat dich auf %s erwähnt"
#: ../../include/enotify.php:62
#: ../../include/enotify.php:104
#, php-format
msgid "%s %s."
msgstr "%s %s."
#: ../../include/enotify.php:62
#: ../../include/enotify.php:104
msgid "tagged you"
msgstr "erwähnte Dich"
#: ../../include/enotify.php:71
#: ../../include/enotify.php:113
#, php-format
msgid "[Friendica:Notify] %s tagged your post"
msgstr "[Friendica Meldung] %s markierte Deinen Beitrag"
#: ../../include/enotify.php:114
#, php-format
msgid "%s tagged your post at %s"
msgstr "%s hat deinen Beitrag auf %s getaggt"
#: ../../include/enotify.php:72
#: ../../include/enotify.php:115
#, php-format
msgid "%s tagged %s"
msgstr "%s markierte %s"
#: ../../include/enotify.php:72
#: ../../include/enotify.php:115
msgid "your post"
msgstr "Dein Beitrag"
#: ../../include/enotify.php:81
#, php-format
msgid "Introduction received at %s"
msgstr "Kontaktanfrage auf %s erhalten"
#: ../../include/enotify.php:124
msgid "[Friendica:Notify] Introduction received"
msgstr "[Friendica Meldung] Kontaktanfrage erhalten"
#: ../../include/enotify.php:82
#: ../../include/enotify.php:125
#, php-format
msgid "You've received an introduction from '%s' at %s"
msgstr "Du hast eine Kontaktanfrage von '%s' auf %s erhalten"
#: ../../include/enotify.php:83
#: ../../include/enotify.php:126
#, php-format
msgid "You've received %s from %s."
msgstr "Du hast %s von %s erhalten."
#: ../../include/enotify.php:83
#: ../../include/enotify.php:126
msgid "an introduction"
msgstr "eine Einführung"
#: ../../include/enotify.php:84 ../../include/enotify.php:101
#: ../../include/enotify.php:127 ../../include/enotify.php:144
#, php-format
msgid "You may visit their profile at %s"
msgstr "Hier kannst du das Profil betrachten: %s"
#: ../../include/enotify.php:86
#: ../../include/enotify.php:129
#, php-format
msgid "Please visit %s to approve or reject the introduction."
msgstr "Bitte besuche %s, um die Kontaktanfrage anzunehmen oder abzulehnen."
#: ../../include/enotify.php:93
#, php-format
msgid "Friend suggestion received at %s"
msgstr "Kontaktvorschlag empfangen auf %s"
#: ../../include/enotify.php:136
msgid "[Friendica:Notify] Friend suggestion received"
msgstr "[Friendica Meldung] Kontaktvorschlag erhalten"
#: ../../include/enotify.php:94
#: ../../include/enotify.php:137
#, php-format
msgid "You've received a friend suggestion from '%s' at %s"
msgstr "Du hast von '%s' einen Kontaktvorschlag erhalten auf %s"
#: ../../include/enotify.php:95
#: ../../include/enotify.php:138
#, php-format
msgid "You've received %s for %s from %s."
msgstr "Du hast %s für %s von %s erhalten."
#: ../../include/enotify.php:96
#: ../../include/enotify.php:139
msgid "a friend suggestion"
msgstr "ein Freunde Vorschlag"
#: ../../include/enotify.php:99
#: ../../include/enotify.php:142
msgid "Name:"
msgstr "Name:"
#: ../../include/enotify.php:100
#: ../../include/enotify.php:143
msgid "Photo:"
msgstr "Foto:"
#: ../../include/enotify.php:103
#: ../../include/enotify.php:146
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen."
#: ../../include/items.php:2511
#: ../../include/items.php:2573
msgid "A new person is sharing with you at "
msgstr "Eine neue Person teilt mit dir auf "
#: ../../include/items.php:2511
#: ../../include/items.php:2573
msgid "You have a new follower at "
msgstr "Du hast einen neuen Kontakt auf "
#: ../../include/bb2diaspora.php:83
msgid "view full size"
msgstr "Volle Größe anzeigen"
#: ../../include/bb2diaspora.php:132 ../../include/bb2diaspora.php:142
#: ../../include/bb2diaspora.php:143
#: ../../include/bb2diaspora.php:102 ../../include/bb2diaspora.php:112
#: ../../include/bb2diaspora.php:113
msgid "image/photo"
msgstr "Bild/Foto"
@ -5577,25 +5854,25 @@ msgstr "Bitte lade ein Profilbild hoch."
msgid "Welcome back "
msgstr "Willkommen zurück "
#: ../../include/Contact.php:131 ../../include/conversation.php:769
#: ../../include/Contact.php:131 ../../include/conversation.php:788
msgid "View status"
msgstr "Status anzeigen"
#: ../../include/Contact.php:132 ../../include/conversation.php:770
#: ../../include/Contact.php:132 ../../include/conversation.php:789
msgid "View profile"
msgstr "Profil anzeigen"
#: ../../include/Contact.php:133 ../../include/conversation.php:771
#: ../../include/Contact.php:133 ../../include/conversation.php:790
msgid "View photos"
msgstr "Fotos ansehen"
#: ../../include/Contact.php:134 ../../include/Contact.php:147
#: ../../include/conversation.php:772
#: ../../include/conversation.php:791
msgid "View recent"
msgstr "Neueste anzeigen"
#: ../../include/Contact.php:136 ../../include/Contact.php:147
#: ../../include/conversation.php:774
#: ../../include/conversation.php:793
msgid "Send PM"
msgstr "Private Nachricht senden"
@ -5608,188 +5885,188 @@ msgstr "Nachricht/Beitrag"
msgid "%1$s marked %2$s's %3$s as favorite"
msgstr "%1$s hat %2$s\\s %3$s als Favorit markiert"
#: ../../include/conversation.php:301 ../../include/conversation.php:562
#: ../../include/conversation.php:303 ../../include/conversation.php:572
msgid "Select"
msgstr "Auswählen"
#: ../../include/conversation.php:316 ../../include/conversation.php:648
#: ../../include/conversation.php:649
#: ../../include/conversation.php:320 ../../include/conversation.php:665
#: ../../include/conversation.php:666
#, php-format
msgid "View %s's profile @ %s"
msgstr "Das Profil von %s auf %s betrachten."
#: ../../include/conversation.php:325 ../../include/conversation.php:660
#: ../../include/conversation.php:330 ../../include/conversation.php:677
#, php-format
msgid "%s from %s"
msgstr "%s von %s"
#: ../../include/conversation.php:341
#: ../../include/conversation.php:346
msgid "View in context"
msgstr "Im Zusammenhang betrachten"
#: ../../include/conversation.php:456
#: ../../include/conversation.php:467
#, php-format
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "%d Kommentar"
msgstr[1] "%d Kommentare"
#: ../../include/conversation.php:459 ../../boot.php:448
#: ../../include/conversation.php:468 ../../boot.php:448
msgid "show more"
msgstr "mehr anzeigen"
#: ../../include/conversation.php:519
#: ../../include/conversation.php:529
msgid "like"
msgstr "mag ich"
#: ../../include/conversation.php:520
#: ../../include/conversation.php:530
msgid "dislike"
msgstr "mag ich nicht"
#: ../../include/conversation.php:522
#: ../../include/conversation.php:532
msgid "Share this"
msgstr "Teile dieses"
#: ../../include/conversation.php:522
#: ../../include/conversation.php:532
msgid "share"
msgstr "Teilen"
#: ../../include/conversation.php:572
#: ../../include/conversation.php:582
msgid "add star"
msgstr "markieren"
#: ../../include/conversation.php:573
#: ../../include/conversation.php:583
msgid "remove star"
msgstr "Markierung entfernen"
#: ../../include/conversation.php:574
#: ../../include/conversation.php:584
msgid "toggle star status"
msgstr "Markierung umschalten"
#: ../../include/conversation.php:577
#: ../../include/conversation.php:587
msgid "starred"
msgstr "markiert"
#: ../../include/conversation.php:578
#: ../../include/conversation.php:588
msgid "add tag"
msgstr "Tag hinzufügen"
#: ../../include/conversation.php:650
#: ../../include/conversation.php:667
msgid "to"
msgstr "zu"
#: ../../include/conversation.php:651
#: ../../include/conversation.php:668
msgid "Wall-to-Wall"
msgstr "Wall-to-Wall"
#: ../../include/conversation.php:652
#: ../../include/conversation.php:669
msgid "via Wall-To-Wall:"
msgstr "via Wall-To-Wall:"
#: ../../include/conversation.php:694
#: ../../include/conversation.php:713
msgid "Delete Selected Items"
msgstr "Lösche die markierten Beiträge"
#: ../../include/conversation.php:826
#: ../../include/conversation.php:845
#, php-format
msgid "%s likes this."
msgstr "%s mag das."
#: ../../include/conversation.php:826
#: ../../include/conversation.php:845
#, php-format
msgid "%s doesn't like this."
msgstr "%s mag das nicht."
#: ../../include/conversation.php:830
#: ../../include/conversation.php:849
#, php-format
msgid "<span %1$s>%2$d people</span> like this."
msgstr "<span %1$s>%2$d Leute</span> mögen das."
#: ../../include/conversation.php:832
#: ../../include/conversation.php:851
#, php-format
msgid "<span %1$s>%2$d people</span> don't like this."
msgstr "<span %1$s>%2$d Leute</span> mögen das nicht."
#: ../../include/conversation.php:838
#: ../../include/conversation.php:857
msgid "and"
msgstr "und"
#: ../../include/conversation.php:841
#: ../../include/conversation.php:860
#, php-format
msgid ", and %d other people"
msgstr " und %d andere"
#: ../../include/conversation.php:842
#: ../../include/conversation.php:861
#, php-format
msgid "%s like this."
msgstr "%s mögen das."
#: ../../include/conversation.php:842
#: ../../include/conversation.php:861
#, php-format
msgid "%s don't like this."
msgstr "%s mögen das nicht."
#: ../../include/conversation.php:867
#: ../../include/conversation.php:886
msgid "Visible to <strong>everybody</strong>"
msgstr "Für <strong>jedermann</strong> sichtbar"
#: ../../include/conversation.php:869
#: ../../include/conversation.php:888
msgid "Please enter a video link/URL:"
msgstr "Bitte Link/URL zum Video einfügen:"
#: ../../include/conversation.php:870
#: ../../include/conversation.php:889
msgid "Please enter an audio link/URL:"
msgstr "Bitte Link/URL zum Audio einfügen:"
#: ../../include/conversation.php:871
#: ../../include/conversation.php:890
msgid "Tag term:"
msgstr "Tag:"
#: ../../include/conversation.php:872
#: ../../include/conversation.php:891
msgid "Where are you right now?"
msgstr "Wo hältst du dich jetzt gerade auf?"
#: ../../include/conversation.php:873
#: ../../include/conversation.php:892
msgid "Enter a title for this item"
msgstr "Gib den Titel für diesen Beitrag ein"
#: ../../include/conversation.php:916
#: ../../include/conversation.php:935
msgid "upload photo"
msgstr "Bild hochladen"
#: ../../include/conversation.php:918
#: ../../include/conversation.php:937
msgid "attach file"
msgstr "Datei anhängen"
#: ../../include/conversation.php:920
#: ../../include/conversation.php:939
msgid "web link"
msgstr "Weblink"
#: ../../include/conversation.php:921
#: ../../include/conversation.php:940
msgid "Insert video link"
msgstr "Video-Adresse einfügen"
#: ../../include/conversation.php:922
#: ../../include/conversation.php:941
msgid "video link"
msgstr "Video-Link"
#: ../../include/conversation.php:923
#: ../../include/conversation.php:942
msgid "Insert audio link"
msgstr "Audio-Adresse einfügen"
#: ../../include/conversation.php:924
#: ../../include/conversation.php:943
msgid "audio link"
msgstr "Audio-Link"
#: ../../include/conversation.php:926
#: ../../include/conversation.php:945
msgid "set location"
msgstr "Ort setzen"
#: ../../include/conversation.php:928
#: ../../include/conversation.php:947
msgid "clear location"
msgstr "Ort löschen"
#: ../../include/conversation.php:933
#: ../../include/conversation.php:952
msgid "permissions"
msgstr "Zugriffsrechte"

View file

@ -4,23 +4,23 @@ function string_plural_select_de($n){
return ($n != 1);
}
;
$a->strings["Post successful."] = "Beitrag erfolgreich veröffentlicht.";
$a->strings["Post successful."] = "Beitrag erfolgreich ver<EFBFBD>ffentlicht.";
$a->strings["[Embedded content - reload page to view]"] = "[Eingebetteter Inhalt - Seite neu laden zum Betrachten]";
$a->strings["Contact settings applied."] = "Einstellungen zum Kontakt angewandt.";
$a->strings["Contact update failed."] = "Konnte den Kontakt nicht aktualisieren.";
$a->strings["Permission denied."] = "Zugriff verweigert.";
$a->strings["Contact not found."] = "Kontakt nicht gefunden.";
$a->strings["Repair Contact Settings"] = "Kontakt-Einstellungen reparieren";
$a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working."] = "<strong>ACHTUNG: Das sind Experten-Einstellungen!</strong> Wenn Du etwas Falsches eingibst, funktioniert die Kommunikation mit diesem Kontakt evtl. nicht mehr.";
$a->strings["Please use your browser 'Back' button <strong>now</strong> if you are uncertain what to do on this page."] = "Bitte nutze den Zurück-Button deines Browsers <strong>jetzt</strong>, wenn du dir unsicher bist, was du tun willst.";
$a->strings["Return to contact editor"] = "Zurück zum Kontakteditor";
$a->strings["<strong>WARNING: This is highly advanced</strong> and if you enter incorrect information your communications with this contact may stop working."] = "<strong>ACHTUNG: Das sind Experten-Einstellungen!</strong> Wenn Du etwas falsches eingibst, funktioniert die Kommunikation mit diesem Kontakt evtl. nicht mehr.";
$a->strings["Please use your browser 'Back' button <strong>now</strong> if you are uncertain what to do on this page."] = "Bitte nutze den Zur<EFBFBD>ck-Button deines Browsers <strong>jetzt</strong>, wenn du dir unsicher bist, was auf dieser Seite gemacht wird.";
$a->strings["Return to contact editor"] = "Zur<EFBFBD>ck zum Kontakteditor";
$a->strings["Name"] = "Name";
$a->strings["Account Nickname"] = "Account-Spitzname";
$a->strings["@Tagname - overrides Name/Nickname"] = "@Tagname - überschreibt Name/Spitzname";
$a->strings["@Tagname - overrides Name/Nickname"] = "@Tagname - <EFBFBD>berschreibt Name/Spitzname";
$a->strings["Account URL"] = "Account-URL";
$a->strings["Friend Request URL"] = "URL für Freundschaftsanfragen";
$a->strings["Friend Confirm URL"] = "URL für Bestätigungen von Freundschaftsanfragen";
$a->strings["Notification Endpoint URL"] = "URL-Endpunkt für Benachrichtigungen";
$a->strings["Friend Request URL"] = "URL f<EFBFBD>r Freundschaftsanfragen";
$a->strings["Friend Confirm URL"] = "URL f<EFBFBD>r Best<73>tigungen von Freundschaftsanfragen";
$a->strings["Notification Endpoint URL"] = "URL-Endpunkt f<EFBFBD>r Benachrichtigungen";
$a->strings["Poll/Feed URL"] = "Pull/Feed-URL";
$a->strings["New photo from this URL"] = "Neues Foto von dieser URL";
$a->strings["Submit"] = "Senden";
@ -28,7 +28,7 @@ $a->strings["Help:"] = "Hilfe:";
$a->strings["Help"] = "Hilfe";
$a->strings["Not Found"] = "Nicht gefunden";
$a->strings["Page not found."] = "Seite nicht gefunden.";
$a->strings["File exceeds size limit of %d"] = "Die Datei ist größer als das erlaubte Limit von %d";
$a->strings["File exceeds size limit of %d"] = "Die Datei ist gr<EFBFBD><EFBFBD>er als das erlaubte Limit von %d";
$a->strings["File upload failed."] = "Hochladen der Datei fehlgeschlagen.";
$a->strings["Friend suggestion sent."] = "Kontaktvorschlag gesendet.";
$a->strings["Suggest Friends"] = "Kontakte vorschlagen";
@ -40,7 +40,7 @@ $a->strings["link to source"] = "Link zum Originalbeitrag";
$a->strings["Events"] = "Veranstaltungen";
$a->strings["Create New Event"] = "Neue Veranstaltung erstellen";
$a->strings["Previous"] = "Vorherige";
$a->strings["Next"] = "Nächste";
$a->strings["Next"] = "N<EFBFBD>chste";
$a->strings["hour:minute"] = "Stunde:Minute";
$a->strings["Event details"] = "Veranstaltungsdetails";
$a->strings["Format is %s %s. Starting date and Description are required."] = "Format ist %s %s. Anfangsdatum und Beschreibung sind notwendig.";
@ -409,6 +409,10 @@ $a->strings["Email login name:"] = "E-Mail-Login-Name:";
$a->strings["Email password:"] = "E-Mail-Passwort:";
$a->strings["Reply-to address:"] = "Reply-to Adresse:";
$a->strings["Send public posts to all email contacts:"] = "Sende öffentliche Beiträge an alle E-Mail-Kontakte:";
$a->strings["Action after import:"] = "Aktion nach Import:";
$a->strings["Mark as seen"] = "Als gelesen markieren";
$a->strings["Move to folder"] = "In einen Ordner verschieben";
$a->strings["Move to folder:"] = "In diesen Ordner verschieben:";
$a->strings["Normal Account"] = "Normaler Account";
$a->strings["This account is a normal personal profile"] = "Dieser Account ist ein normales persönliches Profil";
$a->strings["Soapbox Account"] = "Sandkasten-Account";
@ -518,9 +522,9 @@ $a->strings["Create a group of contacts/friends."] = "Eine Gruppe von Kontakten/
$a->strings["Group Name: "] = "Gruppenname:";
$a->strings["Group removed."] = "Gruppe entfernt.";
$a->strings["Unable to remove group."] = "Konnte die Gruppe nicht entfernen.";
$a->strings["Click on a contact to add or remove."] = "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen";
$a->strings["Group Editor"] = "Gruppeneditor";
$a->strings["Members"] = "Mitglieder";
$a->strings["Click on a contact to add or remove."] = "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen";
$a->strings["Invalid profile identifier."] = "Ungültiger Profil-Bezeichner";
$a->strings["Profile Visibility Editor"] = "Editor für die Profil-Sichtbarkeit";
$a->strings["Profile"] = "Profil";
@ -643,32 +647,51 @@ $a->strings["Site name"] = "Seitenname";
$a->strings["Banner/Logo"] = "Banner/Logo";
$a->strings["System language"] = "Systemsprache";
$a->strings["System theme"] = "Systemweites Thema";
$a->strings["Default system theme - may be over-ridden by user profiles"] = "Standard Server Theme - kann von den Benutzereinstellungen überschrieben werden.";
$a->strings["Maximum image size"] = "Maximale Größe von Bildern";
$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximale Upload-Größe von Bildern in Bytes. Standard ist 0, d.h. ohne Limit.";
$a->strings["Register policy"] = "Registrierungsmethode";
$a->strings["Register text"] = "Registrierungstext";
$a->strings["Will be displayed prominently on the registration page."] = "Wird gut sichtbar auf der Registrierungs-Seite angezeigt.";
$a->strings["Accounts abandoned after x days"] = "Accounts gelten nach x Tagen als unbenutzt";
$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Accounts nicht mehr benutzt werden. 0 eingeben für kein Limit.";
$a->strings["Allowed friend domains"] = "Erlaubte Domains für Kontakte";
$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben.";
$a->strings["Allowed email domains"] = "Erlaubte Domains für Emails";
$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben.";
$a->strings["Block public"] = "Öffentlichen Zugriff blockieren";
$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist.";
$a->strings["Force publish"] = "Erzwinge Veröffentlichung";
$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen.";
$a->strings["Global directory update URL"] = "URL für Updates beim weltweiten Verzeichnis";
$a->strings["URL to update the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL für Update des globalen Verzeichnisses. Wenn nichts eingetragen ist, bleibt das globale Verzeichnis unerreichbar.";
$a->strings["Block multiple registrations"] = "Unterbinde Mehrfachregistrierung";
$a->strings["Disallow users to register additional accounts for use as pages."] = "Benutzern nicht erlauben, weitere Accounts als zusätzliche Profile anzulegen.";
$a->strings["OpenID support"] = "OpenID Unterstützung";
$a->strings["OpenID support for registration and logins."] = "OpenID-Unterstützung für Registrierung und Login.";
$a->strings["Gravatar support"] = "Gravatar Unterstützung";
$a->strings["Search new user's photo on Gravatar."] = "Suchfunktion bei Gravatar für Profilbilder neuer Nutzer.";
$a->strings["Fullname check"] = "Namen auf Vollständigkeit überprüfen";
$a->strings["Force users to register with a space between firstname and lastname in Full name, as an antispam measure"] = "Leerzeichen zwischen Vor- und Nachname im vollständigen Namen erzwingen, um SPAM zu vermeiden.";
$a->strings["UTF-8 Regular expressions"] = "UTF-8 Reguläre Ausdrücke";
$a->strings["Use PHP UTF8 regular expressions"] = "PHP UTF8 Ausdrücke verwenden";
$a->strings["Show Community Page"] = "Gemeinschaftsseite anzeigen";
$a->strings["Display a Community page showing all recent public postings on this site."] = "Zeige die Gemeinschaftsseite mit allen öffentlichen Beiträgen auf diesem Server.";
$a->strings["Enable OStatus support"] = "OStatus Unterstützung aktivieren";
$a->strings["Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Biete die eingebaute OStatus (identi.ca, status.net, etc.) Unterstützung an. Jede Kommunikation in OStatus ist öffentlich, so Privatsphäre Warnungen werden bei Bedarf angezeigt.";
$a->strings["Enable Diaspora support"] = "Diaspora-Support aktivieren";
$a->strings["Provide built-in Diaspora network compatibility."] = "Verwende die eingebaute Diaspora-Verknüpfung.";
$a->strings["Only allow Friendica contacts"] = "Nur Friendica-Kontakte erlauben";
$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "Alle Kontakte müssen das Friendica Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert.";
$a->strings["Verify SSL"] = "SSL Überprüfen";
$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "Wenn gewollt, kann man hier eine strenge Zertifikat Kontrolle anstellen. Das bedeutet, das man zu keinen Seiten mit selbst unterzeichneten SSL eine Verbindung herstellen kann.";
$a->strings["Proxy user"] = "Proxy Nutzer";
$a->strings["Proxy URL"] = "Proxy URL";
$a->strings["Network timeout"] = "Netzwerk Wartezeit";
$a->strings["%s user blocked"] = array(
0 => "%s Nutzer gesperrt",
1 => "%s Nutzer gesperrt/entsperrt",
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen).";
$a->strings["%s user blocked/unblocked"] = array(
0 => "%s Benutzer geblockt/freigegeben",
1 => "%s Benutzer geblockt/freigegeben",
);
$a->strings["%s user deleted"] = array(
0 => "%s Nutzer gelöscht",
@ -695,7 +718,11 @@ $a->strings["Disable"] = "Ausschalten";
$a->strings["Enable"] = "Einschalten";
$a->strings["Toggle"] = "Umschalten";
$a->strings["Settings"] = "Einstellungen";
$a->strings["Author: "] = "Autor:";
$a->strings["Maintainer: "] = "Betreuer:";
$a->strings["No themes found."] = "Keine Themen gefunden.";
$a->strings["[Experimental]"] = "[Experimentell]";
$a->strings["[Unsupported]"] = "[Nicht unterstützt]";
$a->strings["Log settings updated."] = "Protokolleinstellungen aktualisiert.";
$a->strings["Clear"] = "löschen";
$a->strings["Debugging"] = "Protokoll führen";
@ -823,6 +850,7 @@ $a->strings["Please join my social network on %s"] = "Bitte trete meinem Soziale
$a->strings["To accept this invitation, please visit:"] = "Um diese Einladung anzunehmen besuche bitte:";
$a->strings["You will need to supply this invitation code: \$invite_code"] = "Du benötigst den folgenden Einladungscode: \$invite_code";
$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Sobald du registriert bist, kontaktiere mich bitte auf meiner Profilseite:";
$a->strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Das kann passieren, wenn sich zwei Kontakte gegenseitig eingeladen haben und bereits einer angenommen wurde.";
$a->strings["Response from remote site was not understood."] = "Antwort der Gegenstelle unverständlich.";
$a->strings["Unexpected response from remote site: "] = "Unerwartete Antwort der Gegenstelle: ";
$a->strings["Confirmation completed successfully."] = "Bestätigung erfolgreich abgeschlossen.";
@ -882,6 +910,12 @@ $a->strings["Username:"] = "Nutzername:";
$a->strings["Password:"] = "Passwort:";
$a->strings["Use SSL "] = "SSL Verwenden ";
$a->strings["yourls Settings saved."] = "yourls Einstellungen gespeichert";
$a->strings["Post to LiveJournal"] = "In LiveJournal veröffentlichen.";
$a->strings["LiveJournal Post Settings"] = "LiveJournal Veröffentlichungs-Einstellungen";
$a->strings["Enable LiveJournal Post Plugin"] = "LiveJournal Post Plugin aktivieren";
$a->strings["LiveJournal username"] = "LiveJournal Benutzername";
$a->strings["LiveJournal password"] = "LiveJournal Passwort";
$a->strings["Post to LiveJournal by default"] = "Standardmäßig bei LiveJournal veröffentlichen";
$a->strings["\"Not Safe For Work\" Settings"] = "\"Not Safe For Work\"-Einstellungen";
$a->strings["Enable NSFW filter"] = "NSFW Filter aktivieren";
$a->strings["Comma separated words to treat as NSFW"] = "Wörter, die gefiltert werden sollen (durch Kommas getrennt)";
@ -895,6 +929,7 @@ $a->strings["Most active users"] = "Aktivste Nutzer";
$a->strings["Last photos"] = "Letzte Fotos";
$a->strings["Last likes"] = "Zuletzt gemocht";
$a->strings["event"] = "Veranstaltung";
$a->strings["Latest users"] = "Letzte Benutzer";
$a->strings["Allow to use your friendica id (%s) to connecto to external unhosted-enabled storage (like ownCloud). See <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>"] = "Ermöglicht dir, deine friendica id (%s) mit externen unhosted-fähigen Speichern (z.B. ownCloud) zu verbinden. Siehe <a href=\"http://www.w3.org/community/unhosted/wiki/RemoteStorage#WebFinger\">RemoteStorage WebFinger</a>";
$a->strings["Template URL (with {category})"] = "Vorlagen URL (mit {Kategorie})";
$a->strings["OAuth end-point"] = "OAuth end-point";
@ -914,6 +949,12 @@ $a->strings["\"Cat\" game!"] = "Unentschieden!";
$a->strings["I won!"] = "Ich gewinne!";
$a->strings["Randplace Settings"] = "Randplace-Einstellungen";
$a->strings["Enable Randplace Plugin"] = "Randplace-Plugin aktivieren";
$a->strings["Post to Dreamwidth"] = "In Dreamwidth veröffentlichen";
$a->strings["Dreamwidth Post Settings"] = "Dreamwidth Veröffentlichungs-Einstellungen";
$a->strings["Enable dreamwidth Post Plugin"] = "Dreamwidth Post Plugin aktivieren";
$a->strings["dreamwidth username"] = "Dreamwidth Benutzername";
$a->strings["dreamwidth password"] = "Dreamwidth Passwort";
$a->strings["Post to dreamwidth by default"] = "Standardmäßig bei Dreamwidth veröffentlichen";
$a->strings["Post to Drupal"] = "Bei Drupal veröffentlichen";
$a->strings["Drupal Post Settings"] = "Drupal-Beitragseinstellungen";
$a->strings["Enable Drupal Post Plugin"] = "Veröffentlichung bei Drupal erlauben";
@ -956,6 +997,7 @@ $a->strings[":-)"] = ":-)";
$a->strings[":-("] = ":-(";
$a->strings["lol"] = "lol";
$a->strings["Quick Comment Settings"] = "Schnell-Kommentar Einstellungen";
$a->strings["Quick comments are found near comment boxes, sometimes hidden. Click them to provide simple replies."] = "Kurz-Kommentare findet man in der Nähe der Kommentar-Boxen. Ein Klick darauf erstellt einfache Antworten.";
$a->strings["Enter quick comments, one per line"] = "Gib einen Schnell-Kommentar pro Zeile ein";
$a->strings["Quick Comment settings saved."] = "Schnell-Kommentare Einstellungen gespeichert";
$a->strings["Tile Server URL"] = "Tile Server URL";
@ -1002,6 +1044,11 @@ $a->strings["Post to Tumblr by default"] = "Standardmäßig bei Tumblr veröffen
$a->strings["Numfriends settings updated."] = "Numfriends Einstellungen aktualisiert";
$a->strings["Numfriends Settings"] = "Numfriends Einstellungen";
$a->strings["How many contacts to display on profile sidebar"] = "Wie viele Kontakte sollen in der Seitenleiste angezeigt werden";
$a->strings["Gnot settings updated."] = "Gnot Einstellungen aktualisiert.";
$a->strings["Gnot Settings"] = "Gnot Einstellungen";
$a->strings["Allows threading of email comment notifications on Gmail and anonymising the subject line."] = "Erlaubt das Veröffentlichen von E-Mail Kommentar Benachrichtigungen bei Gmail mit anonymisiertem Betreff";
$a->strings["Enable this plugin/addon?"] = "Dieses Plugin/Addon aktivieren?";
$a->strings["[Friendica:Notify] Comment to conversation #%d"] = "[Friendica Meldung] Kommentar zum Beitrag #%d";
$a->strings["Post to Wordpress"] = "Bei WordPress veröffentlichen";
$a->strings["WordPress Post Settings"] = "WordPress-Beitragseinstellungen";
$a->strings["Enable WordPress Post Plugin"] = "WordPress-Plugin aktivieren.";
@ -1034,12 +1081,17 @@ $a->strings["Allow posting to Twitter"] = "Veröffentlichung bei Twitter erlaube
$a->strings["Send public postings to Twitter by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Twitter";
$a->strings["Consumer key"] = "Consumer Key";
$a->strings["Consumer secret"] = "Consumer Secret";
$a->strings["irc Chatroom"] = "irc Chatroom";
$a->strings["Post to Posterous"] = "Nach Posterous senden";
$a->strings["Posterous Post Settings"] = "Posterous Beitrags-Einstellungen";
$a->strings["Enable Posterous Post Plugin"] = "Posterous-Plugin aktivieren";
$a->strings["Posterous login"] = "Posterous-Anmeldename";
$a->strings["Posterous password"] = "Posterous-Passwort";
$a->strings["Post to Posterous by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous";
$a->strings["Theme settings"] = "Themen Einstellungen";
$a->strings["Alignment"] = "Ausrichtung";
$a->strings["Left"] = "Links";
$a->strings["Center"] = "Mitte";
$a->strings["Gender:"] = "Geschlecht:";
$a->strings["j F, Y"] = "j F, Y";
$a->strings["j F"] = "j F";
@ -1166,9 +1218,13 @@ $a->strings["December"] = "Dezember";
$a->strings["bytes"] = "Byte";
$a->strings["Select an alternate language"] = "Alternative Sprache auswählen";
$a->strings["default"] = "standard";
$a->strings["activity"] = "Aktivität";
$a->strings["comment"] = "Kommentar";
$a->strings["post"] = "Beitrag";
$a->strings["Sharing notification from Diaspora network"] = "Freigabe-Benachrichtigung von Diaspora";
$a->strings["Attachments:"] = "Anhänge:";
$a->strings["[Relayed] Comment authored by %s from network %s"] = "[Weitergeleitet] Kommentar von %s aus dem %s Netzwerk";
$a->strings["view full size"] = "Volle Größe anzeigen";
$a->strings["Embedded content"] = "Eingebetteter Inhalt";
$a->strings["Embedding disabled"] = "Einbettungen deaktiviert";
$a->strings["A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende Berechtigungseinstellungen <strong>könnten</strong> auf diese Gruppe oder zukünftige Mitglieder angewandt werden. Falls du dies nicht möchtest, erstelle bitte eine andere Gruppe mit einem anderen Namen.";
@ -1255,32 +1311,37 @@ $a->strings["don't show"] = "nicht zeigen";
$a->strings["Friendica Notification"] = "Friendica-Benachrichtigung";
$a->strings["Thank You,"] = "Danke,";
$a->strings["%s Administrator"] = "der Administrator von %s";
$a->strings["New mail received at %s"] = "Neue Nachricht auf %s empfangen";
$a->strings["%s <!item_type!>"] = "%s <!item_type!>";
$a->strings["[Friendica:Notify] New mail received at %s"] = "[Friendica Meldung] Neue Nachricht erhalten von %s";
$a->strings["%s sent you a new private message at %s."] = "%s hat dir eine neue private Nachricht auf %s geschrieben.";
$a->strings["%s sent you %s."] = "%s hat Dir geschickt %s";
$a->strings["a private message"] = "eine private Nachricht";
$a->strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um deine privaten Nachrichten anzusehen und/oder zu beantworten.";
$a->strings["%s commented on an item at %s"] = "%s kommentierte einen Beitrag auf %s";
$a->strings["%s's"] = "%s's";
$a->strings["your"] = "Dein";
$a->strings["[Friendica:Notify] Comment to conversation #%d by %s"] = "[Friendica Meldung] Kommentar zum Beitrag #%d von %s";
$a->strings["%s commented on an item/conversation you have been following."] = "%s hat einen Beitrag kommentiert, dem du folgst.";
$a->strings["%s commented in %s."] = "%s wurde kommentiert in %s";
$a->strings["a watched conversation"] = "eine beobachtete Unterhaltung";
$a->strings["%s commented on %s."] = "%s kommentierte %s.";
$a->strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Konversation anzusehen und/oder zu kommentieren.";
$a->strings["[Friendica:Notify] %s posted to your profile wall"] = "[Friendica Meldung] %s hat auf Deine Pinnwand geschrieben";
$a->strings["%s posted to your profile wall at %s"] = "%s hat auf deine Pinnwand bei %s gepostet";
$a->strings["%s posted to %s"] = "%s schrieb an %s";
$a->strings["your profile wall."] = "Deine Pinnwand";
$a->strings["[Friendica:Notify] %s tagged you"] = "[Friendica Meldung] %s hat Dich erwähnt";
$a->strings["%s tagged you at %s"] = "%s hat dich auf %s erwähnt";
$a->strings["%s %s."] = "%s %s.";
$a->strings["tagged you"] = "erwähnte Dich";
$a->strings["[Friendica:Notify] %s tagged your post"] = "[Friendica Meldung] %s markierte Deinen Beitrag";
$a->strings["%s tagged your post at %s"] = "%s hat deinen Beitrag auf %s getaggt";
$a->strings["%s tagged %s"] = "%s markierte %s";
$a->strings["your post"] = "Dein Beitrag";
$a->strings["Introduction received at %s"] = "Kontaktanfrage auf %s erhalten";
$a->strings["[Friendica:Notify] Introduction received"] = "[Friendica Meldung] Kontaktanfrage erhalten";
$a->strings["You've received an introduction from '%s' at %s"] = "Du hast eine Kontaktanfrage von '%s' auf %s erhalten";
$a->strings["You've received %s from %s."] = "Du hast %s von %s erhalten.";
$a->strings["an introduction"] = "eine Einführung";
$a->strings["You may visit their profile at %s"] = "Hier kannst du das Profil betrachten: %s";
$a->strings["Please visit %s to approve or reject the introduction."] = "Bitte besuche %s, um die Kontaktanfrage anzunehmen oder abzulehnen.";
$a->strings["Friend suggestion received at %s"] = "Kontaktvorschlag empfangen auf %s";
$a->strings["[Friendica:Notify] Friend suggestion received"] = "[Friendica Meldung] Kontaktvorschlag erhalten";
$a->strings["You've received a friend suggestion from '%s' at %s"] = "Du hast von '%s' einen Kontaktvorschlag erhalten auf %s";
$a->strings["You've received %s for %s from %s."] = "Du hast %s für %s von %s erhalten.";
$a->strings["a friend suggestion"] = "ein Freunde Vorschlag";
@ -1289,7 +1350,6 @@ $a->strings["Photo:"] = "Foto:";
$a->strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s, um den Vorschlag zu akzeptieren oder abzulehnen.";
$a->strings["A new person is sharing with you at "] = "Eine neue Person teilt mit dir auf ";
$a->strings["You have a new follower at "] = "Du hast einen neuen Kontakt auf ";
$a->strings["view full size"] = "Volle Größe anzeigen";
$a->strings["image/photo"] = "Bild/Foto";
$a->strings["Welcome "] = "Willkommen ";
$a->strings["Please upload a profile photo."] = "Bitte lade ein Profilbild hoch.";

View file

@ -7,7 +7,11 @@ $page_desc<br />
<li><a href="http://friendica.com" title="$friendica">$friendica</a></li>
<li><a href="http://joindiaspora.com" title="$diaspora">$diaspora</a> $diasnote</li>
<li><a href="http://ostatus.org" title="$public_net" >$statusnet</a></li>
<li>$emailnet</li>
</ul>
$invite_desc
</p>
<p>
$desc
</p>

12
view/fileas_widget.tpl Executable file
View file

@ -0,0 +1,12 @@
<div id="fileas-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<ul class="fileas-ul">
<li class="tool"><a href="$base" class="fileas-link fileas-all{{ if $sel_all }} fileas-selected{{ endif }}">$all</a></li>
{{ for $terms as $term }}
<li class="tool"><a href="$base?f=&file=$term.name" class="fileas-link{{ if $term.selected }} fileas-selected{{ endif }}">$term.name</a></li>
{{ endfor }}
</ul>
</div>

View file

@ -1,5 +1,5 @@
<div class="group-delete-wrapper button" id="group-delete-wrapper-$id" >
<a href="group/drop/$id"
<a href="group/drop/$id?t=$form_security_token"
onclick="return confirmDelete();"
id="group-delete-icon-$id"
class="icon drophide group-delete-icon"

View file

@ -3,6 +3,7 @@
<div id="group-edit-wrapper" >
<form action="group/$gid" id="group-edit-form" method="post" >
<input type='hidden' name='form_security_token' value='$form_security_token'>
{{ inc field_input.tpl with $field=$gname }}{{ endinc }}
{{ if $drop }}$drop{{ endif }}

View file

@ -262,6 +262,18 @@ function enableOnUser(){
}
}
function itemFiler(id) {
reply = prompt("$fileas");
if(reply && reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('filer/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
}
}
function jotClearLocation() {
$('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide();

View file

@ -1,5 +1,5 @@
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$id">
<a href="#" class="icon like"title="$likethis" onclick="dolike($id,'like'); return false"></a>
<a href="#" class="icon dislike" title="$nolike" onclick="dolike($id,'dislike'); return false"></a>
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
</div>
<a href="#" class="icon like" title="$likethis" onclick="dolike($id,'like'); return false"></a>
<a href="#" class="icon dislike" title="$nolike" onclick="dolike($id,'dislike'); return false"></a>
<img id="like-rotator-$id" class="like-rotator" src="images/rotator.gif" alt="$wait" title="$wait" style="display: none;" />
</div>

View file

@ -1,5 +1,5 @@
<form action="" method="post" >
<form action="$dest_url" method="post" >
<input type="hidden" name="auth-params" value="login" />
<div id="login_standard">

View file

@ -1,4 +1,4 @@
<form action="" method="post" >
<form action="$dest_url" method="post" >
<div class="logout-wrapper">
<input type="hidden" name="auth-params" value="logout" />
<input type="submit" name="submit" id="logout-button" value="$logout" />

2
view/mail_list.tpl Executable file → Normal file
View file

@ -1,6 +1,6 @@
<div class="mail-list-outside-wrapper">
<div class="mail-list-sender" >
<a href="$from_url" class="mail-list-sender-url" ><img class="mail-list-sender-photo$sparkle" src="$from_photo" height="80 width="80" alt="$from_name" /></a>
<a href="$from_url" class="mail-list-sender-url" ><img class="mail-list-sender-photo$sparkle" src="$from_photo" height="80" width="80" alt="$from_name" /></a>
</div>
<div class="mail-list-detail">
<div class="mail-list-sender-name" >$from_name</div>

View file

@ -2,55 +2,44 @@
<script language="javascript" type="text/javascript" src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: /(profile-jot-text|prvmail-text)/,
plugins : "bbcode,paste",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code",
paste_text_sticky : true,
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
//Character count
theme_advanced_path : false,
setup : function(ed) {
ed.onKeyUp.add(function(ed, e) {
var txt = tinyMCE.activeEditor.getContent();
var text = txt.length;
if(txt.length <= 140) {
$('#character-counter').removeClass('red');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('grey');
}
if((txt.length > 140) && (txt .length <= 420)) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('red');
$('#character-counter').addClass('orange');
}
if(txt.length > 420) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('red');
}
$('#character-counter').text(text);
});
var plaintext = '$editselect';
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
});
}
});
if(plaintext != 'none') {
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: /(profile-jot-text|prvmail-text)/,
plugins : "bbcode,paste",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code",
paste_text_sticky : true,
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
//Character count
theme_advanced_path : false,
setup : function(ed) {
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
var editorId = ed.editorId;
var textarea = $('#'+editorId);
if (typeof(textarea.attr('tabindex')) != "undefined") {
$('#'+editorId+'_ifr').attr('tabindex', textarea.attr('tabindex'));
textarea.attr('tabindex', null);
}
});
}
});
}
</script>
<script type="text/javascript" src="js/ajaxupload.js" ></script>

View file

@ -14,7 +14,7 @@
<div id="photo-photo"><a href="$photo.href" title="$photo.title"><img src="$photo.src" /></a></div>
{{ if $nextlink }}<div id="photo-next-link"><a href="$nextlink.0">$nextlink.1</a></div>{{ endif }}
<div id="photo-photo-end"></div>
<div id="photo-caption" >$desc</div>
<div id="photo-caption">$desc</div>
{{ if $tags }}
<div id="in-this-photo-text">$tags.0</div>
<div id="in-this-photo">$tags.1</div>

View file

@ -5,9 +5,9 @@ $default
<div id="profile-edit-links">
<ul>
<li><a href="profile/$profile_id/view?tab=profile" id="profile-edit-view-link" title="$viewprof">$viewprof</a></li>
<li><a href="profiles/clone/$profile_id" id="profile-edit-clone-link" title="$cr_prof">$cl_prof</a></li>
<li><a href="$profile_clone_link" id="profile-edit-clone-link" title="$cr_prof">$cl_prof</a></li>
<li></li>
<li><a href="profiles/drop/$profile_id" id="profile-edit-drop-link" title="$del_prof" $disabled >$del_prof</a></li>
<li><a href="$profile_drop_link" id="profile-edit-drop-link" title="$del_prof" $disabled >$del_prof</a></li>
</ul>
</div>
@ -17,6 +17,7 @@ $default
<div id="profile-edit-wrapper" >
<form id="profile-edit-form" name="form1" action="profiles/$profile_id" method="post" >
<input type='hidden' name='form_security_token' value='$form_security_token'>
<div id="profile-edit-profile-name-wrapper" >
<label id="profile-edit-profile-name-label" for="profile-edit-profile-name" >$lbl_profname </label>

View file

@ -3,6 +3,6 @@
<a href="profile_photo" >$chg_photo</a>
</p>
<div id="profile-listing-new-link-wrapper" class="button" >
<a href="profiles/new" id="profile-listing-new-link" title="$cr_new" >$cr_new</a>
<a href="$cr_new_link" id="profile-listing-new-link" title="$cr_new" >$cr_new</a>
</div>

View file

@ -1,6 +1,7 @@
<h1>$title</h1>
<form enctype="multipart/form-data" action="profile_photo" method="post">
<input type='hidden' name='form_security_token' value='$form_security_token'>
<div id="profile-photo-upload-wrapper">
<label id="profile-photo-upload-label" for="profile-photo-upload">$lbl_upfile </label>

View file

@ -18,8 +18,8 @@
</div>
{{ endif }}
</div>
{{ if $pdesc }}<div class="title">$profile.pdesc</div>{{ endif }}
<div id="profile-photo-wrapper"><img class="photo" width="175" height="175" src="$profile.photo?rev=$profile.picdate" alt="$profile.name" /></div>

View file

@ -10,14 +10,14 @@ $parent
$select
<div id="prvmail-subject-label">$subject</div>
<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="$subjtxt" $readonly />
<input type="text" size="64" maxlength="255" id="prvmail-subject" name="subject" value="$subjtxt" $readonly tabindex="11" />
<div id="prvmail-message-label">$yourmessage</div>
<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" ></textarea>
<textarea rows="8" cols="72" class="prvmail-text" id="prvmail-text" name="body" tabindex="12">$text</textarea>
<div id="prvmail-submit-wrapper" >
<input type="submit" id="prvmail-submit" name="submit" value="Submit" />
<input type="submit" id="prvmail-submit" name="submit" value="Submit" tabindex="13" />
<div id="prvmail-upload-wrapper" >
<div id="prvmail-upload" class="icon border camera" title="$upload" ></div>
</div>

View file

@ -5,7 +5,7 @@ $tabs
$nickname_block
<form action="settings" id="settings-form" method="post" autocomplete="off" >
<input type='hidden' name='form_security_token' value='$form_security_token'>
<h3 class="settings-heading">$h_pass</h3>
@ -30,6 +30,7 @@ $nickname_block
{{inc field_checkbox.tpl with $field=$allowloc }}{{endinc}}
{{inc field_select.tpl with $field=$theme }}{{endinc}}
{{inc field_input.tpl with $field=$ajaxint }}{{endinc}}
{{inc field_input.tpl with $field=$itemspage_network }}{{endinc}}
<div class="settings-submit-wrapper" >

View file

@ -4,6 +4,7 @@ $tabs
<form action="settings/addon" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='$form_security_token'>
$settings_addons

View file

@ -6,6 +6,7 @@ $tabs
<div class="connector_statusmsg">$ostat_enabled</div>
<form action="settings/connectors" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='$form_security_token'>
$settings_connectors

View file

@ -4,7 +4,8 @@ $tabs
<form action="settings/oauth" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='$form_security_token'>
<div id="profile-edit-links">
<ul>
<li>
@ -24,7 +25,7 @@ $tabs
{{ endif }}
{{ if $app.my }}
<a href="$baseurl/settings/oauth/edit/$app.client_id" class="icon s22 edit" title="$edit">&nbsp;</a>
<a href="$baseurl/settings/oauth/delete/$app.client_id" class="icon s22 delete" title="$delete">&nbsp;</a>
<a href="$baseurl/settings/oauth/delete/$app.client_id?t=$form_security_token" class="icon s22 delete" title="$delete">&nbsp;</a>
{{ endif }}
</div>
{{ endfor }}

View file

@ -3,6 +3,8 @@ $tabs
<h1>$title</h1>
<form method="POST">
<input type='hidden' name='form_security_token' value='$form_security_token'>
{{ inc field_input.tpl with $field=$name }}{{ endinc }}
{{ inc field_input.tpl with $field=$key }}{{ endinc }}
{{ inc field_input.tpl with $field=$secret }}{{ endinc }}

View file

@ -1,4 +1,22 @@
<?php
/*
* Name: Dark Bubble
* Version: 1.0
* Maintainer: Mike Macgirvin <mike@macgirvin.com>
*/
$a->theme_info = array(
'extends' => 'testbubble',
);
$a->page['htmlhead'] .= <<< EOT
<script>
$(document).ready(function() {
$('html').click(function() { $("#nav-notifications-menu" ).hide(); });
});
</script>
EOT;

View file

@ -15,6 +15,8 @@ $a->page['htmlhead'] .= <<< EOT
<script>
$(document).ready(function() {
$('html').click(function() { $("#nav-notifications-menu" ).hide(); });
$('.group-edit-icon').hover(
function() {
$(this).addClass('icon'); $(this).removeClass('iconspacer');},

View file

@ -16,6 +16,8 @@ $a->page['htmlhead'] .= <<< EOT
<script>
$(document).ready(function() {
$('html').click(function() { $("#nav-notifications-menu" ).hide(); });
$('.group-edit-icon').hover(
function() {
$(this).addClass('icon'); $(this).removeClass('iconspacer');},

View file

@ -0,0 +1,29 @@
<div id="group-sidebar" class="widget">
<div class="title tool">
<h3 class="label">$title</h3>
<a href="group/new" title="$createtext" class="action"><span class="icon text s16 add"></span></a>
</div>
<div id="sidebar-group-list">
<ul>
{{ for $groups as $group }}
<li class="tool {{ if $group.selected }}selected{{ endif }}">
<a href="$group.href" class="label">
$group.text
</a>
{{ if $group.edit }}
<a href="$group.edit.href" class="action"><span class="icon text s10 edit"></span></a>
{{ endif }}
{{ if $group.cid }}
<input type="checkbox"
class="{{ if $group.selected }}ticked{{ else }}unticked {{ endif }} action"
onclick="contactgroupChangeMember('$group.id','$group.cid');return true;"
{{ if $group.ismember }}checked="checked"{{ endif }}
/>
{{ endif }}
</li>
{{ endfor }}
</ul>
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 B

After

Width:  |  Height:  |  Size: 727 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

BIN
view/theme/diabook-blue/icons/toogle_off.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 B

After

Width:  |  Height:  |  Size: 834 B

Before After
Before After

BIN
view/theme/diabook-blue/icons/toogle_on.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 B

After

Width:  |  Height:  |  Size: 715 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

After

Width:  |  Height:  |  Size: 468 B

Before After
Before After

View file

@ -140,8 +140,8 @@
<div style="position: fixed; bottom: 5px; right: 10px;"><a href="javascript:scroll(0,0); "><img src="view/theme/diabook/icons/scroll_top.png" title="scroll to top"></a></div>
<div style="position: fixed; bottom: 5px; left: 25px;">$langselector</div>
<div style="position: fixed; bottom: 25px; left: 5px;"><a href="http://pad.toktan.org/p/diabook" target="blank" ><img src="view/theme/diabook/icons/bluebug.png" title="report bugs for the theme diabook"/></a></div>
<div style="position: fixed; bottom: 3px; left: 25px;">$langselector</div>
<div style="position: fixed; bottom: 23px; left: 5px;"><a href="http://pad.toktan.org/p/diabook" target="blank" ><img src="view/theme/diabook/icons/bluebug.png" title="report bugs for the theme diabook"/></a></div>

View file

@ -0,0 +1,7 @@
<div class="photo-album-image-wrapper" id="photo-album-image-wrapper-$id">
<a href="$imgsrc" rel="gallery" class="fancy-album" id="photo-album-photo-link-$id" title="$phototitle">
<img src="$imgsrc" alt="$imgalt" title="$phototitle" class="photo-album-photo lframe resize" id="photo-album-photo-$id" />
<p class='caption'>$desc</p>
</a>
</div>
<div class="photo-album-image-wrapper-end"></div>

View file

@ -0,0 +1,7 @@
<div class="photo-top-image-wrapper lframe" id="photo-top-image-wrapper-$id">
<a href="$photo.src" rel="$photo.album.name" class="fancy-album" id="photo-top-photo-link-$photo.id" title="$photo.title">
<img src="$photo.src" alt="$photo.alt" title="$photo.title" class="photo-top-album-img" id="photo-top-photo-$photo.id" />
</a>
<div class="photo-top-album-name"><a href="$photo.album.link" class="photo-top-album-link" title="$photo.album.alt" >$photo.album.name</a></div>
</div>

View file

@ -0,0 +1,27 @@
<div id="live-display"></div>
<h3><a href="$album.0">$album.1</a></h3>
<div id="photo-edit-link-wrap">
{{ if $tools }}
<a id="photo-edit-link" href="$tools.edit.0">$tools.edit.1</a>
-
<a id="photo-toprofile-link" href="$tools.profile.0">$tools.profile.1</a>
{{ endif }}
{{ if $lock }} - <img src="images/lock_icon.gif" class="lockview" alt="$lock" onclick="lockview(event,'photo$id');" /> {{ endif }}
</div>
<div id="photo-photo">
{{ if $prevlink }}<div id="photo-prev-link"><a href="$prevlink.0">$prevlink.1</a></div>{{ endif }}
<a href="$photo.href" class="fancy-photo" title="$photo.title"><img src="$photo.src" /></a>
{{ if $nextlink }}<div id="photo-next-link"><a href="$nextlink.0">$nextlink.1</a></div>{{ endif }}
</div>
<div id="photo-photo-end"></div>
<div id="photo-caption" >$desc</div>
{{ if $tags }}
<div id="in-this-photo-text">$tags.0</div>
<div id="in-this-photo">$tags.1</div>
{{ endif }}
{{ if $tags.2 }}<div id="tag-remove"><a href="$tags.2">$tags.3</a></div>{{ endif }}
{{ if $edit }}$edit{{ endif }}

View file

@ -0,0 +1,20 @@
<div id="profile_side">
<div id="ps-usernameicon">
<a href="$ps.usermenu.status.0" title="$userinfo.name">
<img src="$userinfo.icon" id="ps-usericon" alt="$userinfo.name">
</a>
<a href="$ps.usermenu.status.0" id="ps-username" title="$userinfo.name">$userinfo.name</a>
</div>
<ul id="profile-side-menu" class="menu-profile-side">
<li id="profile-side-status" class="menu-profile-list home"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1</a></li>
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="http://dir.friendika.com/directory/forum" target="blanc">Public Groups</a></li>
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
</ul>
</div>

View file

@ -102,12 +102,11 @@
.icon.recycle { background-image: url("../../../view/theme/diabook-blue/icons/recycle.png");}
.icon.remote-link { background-image: url("../../../view/theme/diabook-blue/icons/remote.png");}
.icon.tagged { background-image: url("../../../view/theme/diabook-blue/icons/tagged.png");}
.icon.unstarred { background-image: url("../../../view/theme/diabook-blue/icons/star.png");}
.icon.star { background-image: url("../../../view/theme/diabook-blue/icons/star.png");}
.star-item.icon.unstarred { background-image: url("../../../view/theme/diabook-blue/icons/unstarred.png");}
.star-item.icon.starred { background-image: url("../../../view/theme/diabook-blue/icons/starred.png");}
.icon.link { background-image: url("../../../view/theme/diabook-blue/icons/link.png");}
.icon.lock { background-image: url("../../../view/theme/diabook-blue/icons/lock.png");}
.icon.unlock { background-image: url("../../../view/theme/diabook-blue/icons/unlock.png");}
.icon.isstar { background-image: url("../../../view/theme/diabook-blue/icons/isstar.png");}
.icon.language { background-image: url("../../../view/theme/diabook-blue/icons/language.png");}
@ -248,7 +247,7 @@
background-image: url("../../../images/icons/10/edit.png");
}
.icon.s10.star {
background-image: url("../../../images/icons/10/star.png");
background-image: url("../../../images/star_dummy.png");
}
.icon.s10.menu {
background-image: url("../../../images/icons/10/menu.png");
@ -286,7 +285,7 @@
background-image: url("../../../images/icons/16/edit.png");
}*/
.icon.s16.star {
background-image: url("../../../images/icons/16/star.png");
background-image: url("../../../images/star_dummy.png");
}
.icon.s16.menu {
background-image: url("../../../images/icons/16/menu.png");
@ -324,7 +323,7 @@
background-image: url("../../../images/icons/22/edit.png");
}
.icon.s22.star {
background-image: url("../../../images/icons/22/star.png");
background-image: url("../../../images/star_dummy.png");
}
.icon.s22.menu {
background-image: url("../../../images/icons/22/menu.png");
@ -362,7 +361,7 @@
background-image: url("../../../images/icons/48/edit.png");
}
.icon.s48.star {
background-image: url("../../../images/icons/48/star.png");
background-image: url("../../../images/star_dummy.png");
}
.icon.s48.menu {
background-image: url("../../../images/icons/48/menu.png");
@ -439,7 +438,7 @@ a:hover {
clear: both;
}
.fakelink {
color: #3465A4;
color: #1872A2;
/* color: #3e3e8c; */
text-decoration: none;
cursor: pointer;
@ -462,7 +461,7 @@ code {
}
#panel {
position: absolute;
width: 10em;
width: 12em;
background: #ffffff;
color: #2d2d2d;
margin: 0px;
@ -516,7 +515,7 @@ header {
top: 0px;
margin: 0px;
padding: 0px;
width: 20%;
width: 22%;
height: 32px;
background: #1872a2;
background-color: #1872a2;
@ -530,8 +529,9 @@ header #site-location {
}
header #banner {
overflow: hidden;
text-align: center;
width: 100%;
text-align: banner;
width: 82%;
margin-left: 25%;
}
header #banner a,
header #banner a:active,
@ -557,12 +557,12 @@ nav {
width: 80%;
height: 32px;
position: fixed;
left: 20%;
left: 22%;
top: 0px;
padding: 0px;
background: #1872a2;
color: #1872a2;
z-index: 100;
color: #ffffff;
z-index: 99;
border-bottom: 1px;
border-bottom-color: black;
border-bottom-style: inset;
@ -647,11 +647,22 @@ nav .nav-menu-icon {
position: relative;
height: 22px;
padding: 5px;
margin: 0px 7px;
margin: 0px 5px;
-moz-border-radius: 5px 5px 0 0;
-webkit-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}
nav .nav-menu-icon:hover {
background-color: #308dbf;
position: relative;
height: 22px;
padding: 5px;
margin: 0px 5px;
-moz-border-radius: 5px 5px 0 0;
-webkit-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}
nav .nav-menu-icon.selected {
background-color: #fff;
}
@ -705,21 +716,17 @@ nav #nav-user-linkmenu
nav #nav-user-linkmenu{
margin-right: 0px;
}
nav #nav-home-link{
nav #nav-home-link, #nav-directory-link, #nav-apps-link{
margin-left: 0px;
margin-right: 0px;
font-weight: bold;
margin: 3px 5px;
}
nav #nav-directory-link{
margin-left: 0px;
margin-right: 0px;
font-weight: bold;
margin: 3px 15px;
margin-right: 0px;
}
nav #nav-apps-link{
margin-left: 0px;
margin-right: 0px;
font-weight: bold;
margin: 3px 15px;
nav #nav-home-link{
margin-left: 0px;
}
nav #nav-help-link .menu-popup,
nav #nav-search-link .menu-popup,
@ -773,8 +780,6 @@ ul.menu-popup {
margin: 0px;
padding: 0px;
list-style: none;
border: 1px solid #364e59;
border-top-color: transparent;
z-index: 100000;
-webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
@ -867,6 +872,66 @@ ul.menu-popup .empty {
padding: 7px 7px 0px 0px;
}
/*profile_side*/
#profile_side {
margin-bottom: 30px;
}
#ps-usericon{
height: 25px
}
#ps-username{
font-size: 1.17em;
font-weight: bold;
vertical-align: top;
position: absolute;
padding-top: 4px;
padding-left: 5px;
}
#ps-username:hover{
text-decoration: none;
}
.menu-profile-side{
list-style: none;
padding-left: 0px;
min-height: 0px;
}
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
padding-left: 16px;
min-height: 16px;
list-style: none;
}
.menu-profile-list:hover{
background: #EEE;
}
.menu-profile-list-item{
padding-left: 5px;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/*http://prothemedesign.com/circular-icons/*/
.menu-profile-list.home{
background: url("../../../view/theme/diabook-blue/icons/home.png") no-repeat;
}
.menu-profile-list.photos{
background: url("../../../view/theme/diabook-blue/icons/mess_side.png") no-repeat;
}
.menu-profile-list.events{
background: url("../../../view/theme/diabook-blue/icons/events.png") no-repeat;
}
.menu-profile-list.notes{
background: url("../../../view/theme/diabook-blue/icons/notes.png") no-repeat;
}
.menu-profile-list.foren{
background: url("../../../view/theme/diabook-blue/icons/pubgroups.png") no-repeat;
}
.menu-profile-list.com_side{
background: url("../../../view/theme/diabook-blue/icons/com_side.png") no-repeat;
}
/* aside */
aside {
display: table-cell;
@ -963,6 +1028,10 @@ aside #side-peoplefind-url {
widht: 55px;
height: 55px;
}
#lost-password-link {
float: left;
margin-right: 20px;
}
/* widget */
.widget {
margin-bottom: 2em;
@ -1022,6 +1091,16 @@ aside #side-peoplefind-url {
min-height: 16px;
list-style: none;
}
#side-bar-photos-albums li{
list-style-type: disc;
}
#side-bar-photos-albums ul li{
margin-left: 30px;
padding-left: 0px;
}
#side-bar-photos-albums ul li a{
color: #1872A2;
}
.widget .tool.selected {
background: url("../../../view/theme/diabook-blue/icons/selected.png") no-repeat left center;
}
@ -1037,10 +1116,29 @@ section {
width: 800px;
padding: 0px 0px 0px 12px;
}
body .pageheader{
text-align: center;
margin-top: 25px;
font-size: 0px;
}
#id_username {
width: 173px;
}
#id_password {
width: 173px;
}
#id_openid_url {
width: 173px;
}
#contact-edit-end {
}
.pager {
padding: 10px;
text-align: center;
font-size: 1.0em;
clear: both;
display: block;
}
.tabs {
@ -1072,15 +1170,17 @@ section {
margin-bottom: 0px;
width: 775px;
}
.tread-wrapper a{
color: #1872A2;
}
.wall-item-decor {
position: absolute;
left: 790px;
top: -10px;
width: 16px;
}
.unstarred {
display: none;
}
.wall-item-container {
display: table;
width: 780px;
@ -1117,6 +1217,7 @@ section {
}
.wall-item-container .wall-item-location {
padding-right: 40px;
display: table-cell;
}
.wall-item-container .wall-item-ago {
word-wrap: break-word;
@ -1172,6 +1273,7 @@ section {
.wall-item-container .wall-item-actions-social {
float: left;
margin-bottom: 1px;
display: table-cell;
}
.wall-item-container .wall-item-actions-social a {
margin-right: 1em;
@ -1182,6 +1284,7 @@ section {
.wall-item-container .wall-item-actions-tools {
float: right;
width: 80px;
display: table-cell;done
}
.wall-item-container .wall-item-actions-tools a {
float: right;
@ -1278,14 +1381,14 @@ section {
}
.tag {
/*background: url("../../../images/tag_b.png") repeat-x center left;*/
color: #3465A4;
color: #999;
padding-left: 3px;
font-size: 12px;
}
.tag a {
padding-right: 5px;
/*background: url("../../../images/tag.png") no-repeat center right;*/
color: #3465A4;
color: #999;
}
.wwto {
position: absolute !important;
@ -1588,7 +1691,7 @@ section {
box-shadow: 0 1px 1px #CFCFCF;
}
.button.creation2 {
background-color: #33ACFF;
background-color: #1872A2;
background-image: -moz-linear-gradient(center top , #66C1FF 0%, #0097FF 100%);
border: 1px solid #777777;
color: white;
@ -1844,9 +1947,15 @@ ul.tabs li .active {
float: left;
}
/* photo */
.photo {
box-shadow: 2px 2px 5px 0px #000000;
margin: 2px 5px 2px 5px;
max-height: 85%;
max-width: 85%;
}
.lframe {
float: left;
margin: 0px 10px 10px 0px;
/*margin: 0px 10px 10px 0px;*/
}
/* profile match wrapper */
.profile-match-wrapper {
@ -1960,10 +2069,24 @@ box-shadow: 1px 1px 5px 0;
}
#prvmail-submit {
float: left;
float: right;
margin-top: 10px;
margin-right: 30px;
}
#prvmail-subject
{
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #CCCCCC;
border-radius: 5px 5px 5px 5px;
font-weight: bold;
height: 20px;
margin: 0 0 5px;
vertical-align: middle;
}
#prvmail-form{
width: 597px;
}
#prvmail-upload-wrapper,
#prvmail-link-wrapper,
#prvmail-rotator-wrapper {
@ -2119,6 +2242,9 @@ a.mail-list-link {
.calendar {
font-family: Courier, monospace;
}
.calendar.eventcal a {
color: #1872A2;
}
.today {
font-weight: bold;
color: #FF0000;
@ -2151,7 +2277,9 @@ a.mail-list-link {
padding: 10px;
float: left;
}
.lightbox{
float: left;
}
#photo-photo {
float: left;
}
@ -2270,8 +2398,42 @@ float: left;
.contact-details {
color: #999999;
}
.photo-top-image-wrapper {
#side-bar-photos-albums{
margin-top: 15px;
}
.photo-top-photo, .photo-album-photo {
-webkit-border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}
.photo-album-image-wrapper, .photo-top-image-wrapper {
float: left;
-moz-box-shadow: 0 0 5px #888;
-webkit-box-shadow: 0 0 5px #888;
box-shadow: 0 0 5px #888;
background-color: #EEE;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
padding-bottom: 20px;
position: relative;
margin: 0 10px 10px 0;
overflow: hidden;
float: left;
position: relative;
}
.photo-top-album-name {
position: absolute;
bottom: 0;
padding: 0 5px;
}
.photo-top-album-link{
color: #1872A2;
}
.photo-top-album-img{
}
/*.photo-top-image-wrapper {
position: relative;
float: left;
margin-top: 15px;
@ -2287,7 +2449,7 @@ float: left;
padding: 0px 3px;
padding-top: 0.5em;
background-color: rgb(255, 255, 255);
}
}*/
#photo-top-end {
clear: both;
}

124
view/theme/diabook-blue/theme.php Executable file
View file

@ -0,0 +1,124 @@
<?php
/*
* Name: Diabook-blue
* Description: Diabook-blue: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version:
* Author:
*/
$a->theme_info = array(
'extends' => 'diabook',
);
//fancybox: provide $photo.href to photo_top.tpl to img in org. scale
//profile_side
$nav['usermenu']=array();
$userinfo = null;
if(local_user()) {
$r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
$userinfo = array(
'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl()."/images/default-profile-mm.jpg"),
'name' => $a->user['username'],
);
$ps['usermenu'][status] = Array('profile/' . $a->user['nickname'], t('Home'), "", t('Your posts and conversations'));
$ps['usermenu'][profile] = Array('profile/' . $a->user['nickname']. '?tab=profile', t('Profile'), "", t('Your profile page'));
$ps['usermenu'][photos] = Array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
$ps['usermenu'][events] = Array('events/', t('Events'), "", t('Your events'));
$ps['usermenu'][notes] = Array('notes/', t('Personal notes'), "", t('Your personal photos'));
$ps['usermenu'][community] = Array('community/', t('Community'), "", "");
if($is_url = preg_match ("/\bnetwork\b/i", $_SERVER['REQUEST_URI'])) {
$tpl = get_markup_template('profile_side.tpl');
$a->page['aside'] .= replace_macros($tpl, array(
'$userinfo' => $userinfo,
'$ps' => $ps,
));
}
}
//js scripts
$a->page['htmlhead'] .= <<< EOT
<script>
//contacts
$('html').click(function() {
$('#nav-contacts-linkmenu').removeClass('selected');
document.getElementById( "nav-contacts-menu" ).style.display = "none";
});
$('#nav-contacts-linkmenu').click(function(event){
event.stopPropagation();
});
//messages
$('html').click(function() {
$('#nav-messages-linkmenu').removeClass('selected');
document.getElementById( "nav-messages-menu" ).style.display = "none";
});
$('#nav-messages-linkmenu').click(function(event){
event.stopPropagation();
});
//notifications
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById( "nav-notifications-menu" ).style.display = "none";
});
$('#nav-notifications-linkmenu').click(function(event){
event.stopPropagation();
});
//usermenu
$('html').click(function() {
$('#nav-user-linkmenu').removeClass('selected');
document.getElementById( "nav-user-menu" ).style.display = "none";
});
$('#nav-user-linkmenu').click(function(event){
event.stopPropagation();
});
//settingsmenu
$('html').click(function() {
$('#nav-site-linkmenu').removeClass('selected');
document.getElementById( "nav-site-menu" ).style.display = "none";
});
$('#nav-site-linkmenu').click(function(event){
event.stopPropagation();
});
//appsmenu
$('html').click(function() {
$('#nav-apps-link').removeClass('selected');
document.getElementById( "nav-apps-menu" ).style.display = "none";
});
$('#nav-apps-link').click(function(event){
event.stopPropagation();
});
$(document).ready(function() {
$("a.fancy-photo").fancybox(); // Select all links with lightbox class
$("a.fancy-album").fancybox();
});
</script>
EOT;

View file

@ -1,6 +1,5 @@
{{ if $item.indent }}{{ else }}
<div class="wall-item-decor">
<span class="icon isstar $item.isstarred" id="starred-$item.id" title="$item.star.starred">$item.star.starred</span>
{{ if $item.lock }}<span class="icon lock fakelink" onclick="lockview(event,$item.id);" title="$item.lock">$item.lock</span>{{ endif }}
<img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
</div>
@ -47,7 +46,7 @@
</div>
<div class="wall-item-actions">
<div class="wall-item-location">$item.location&nbsp;</div>
<div class="wall-item-actions-social">
@ -62,11 +61,9 @@
{{ if $item.star }}
<a href="#" id="star-$item.id" onclick="dostar($item.id); return false;" class="$item.star.classdo" title="$item.star.do" >
<img src="images/star_dummy.png" class="icon star" alt="$item.star.do" /> </a>
<a href="#" id="unstar-$item.id" onclick="dostar($item.id); return false;" class="$item.star.classundo" title="$item.star.undo">
<img src="images/star_dummy.png" class="icon star" alt="$item.star.undo" /> </a>
<a href="#" id="tagger-$item.id" class="icon tagged" onclick="itemTag($item.id); return false;" class="$item.star.classtagger" title="$item.star.tagger">$item.star.tagger</a>
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle">
<img src="images/star_dummy.png" class="icon star" alt="$item.star.do" /> </a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.plink }}<a class="icon link" title="$item.plink.title" href="$item.plink.href">$item.plink.title</a>{{ endif }}
@ -85,7 +82,7 @@
<a class="icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
{{ endif }}
</div>
<div class="wall-item-location">$item.location&nbsp;</div>
</div>
</div>
<div class="wall-item-bottom">

View file

@ -1,6 +1,5 @@
{{ if $item.indent }}{{ else }}
<div class="wall-item-decor">
<span class="icon isstar $item.isstarred" id="starred-$item.id" title="$item.star.starred">$item.star.starred</span>
{{ if $item.lock }}<span class="icon lock fakelink" onclick="lockview(event,$item.id);" title="$item.lock">$item.lock</span>{{ endif }}
<img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
</div>
@ -53,7 +52,7 @@
</div>
<div class="wall-item-actions">
<div class="wall-item-location">$item.location&nbsp;</div>
<div class="wall-item-actions-social">
@ -68,11 +67,9 @@
{{ if $item.star }}
<a href="#" id="star-$item.id" onclick="dostar($item.id); return false;" class="$item.star.classdo" title="$item.star.do" >
<img src="images/star_dummy.png" class="icon star" alt="$item.star.do" /> </a>
<a href="#" id="unstar-$item.id" onclick="dostar($item.id); return false;" class="$item.star.classundo" title="$item.star.undo">
<img src="images/star_dummy.png" class="icon star" alt="$item.star.undo" /> </a>
<a href="#" id="tagger-$item.id" class="icon tagged" onclick="itemTag($item.id); return false;" class="$item.star.classtagger" title="$item.star.tagger">$item.star.tagger</a>
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle">
<img src="images/star_dummy.png" class="icon star" alt="$item.star.do" /> </a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.plink }}<a class="icon link" title="$item.plink.title" href="$item.plink.href">$item.plink.title</a>{{ endif }}
@ -91,7 +88,7 @@
<a class="icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
{{ endif }}
</div>
<div class="wall-item-location">$item.location&nbsp;</div>
</div>
</div>
<div class="wall-item-bottom">

View file

@ -1,35 +0,0 @@
<div class="comment-wwedit-wrapper" id="comment-edit-wrapper-$id" style="display: block;">
<form class="comment-edit-form" id="comment-edit-form-$id" action="item" method="post" onsubmit="post_comment($id); return false;">
<input type="hidden" name="type" value="$type" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="parent" value="$parent" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="jsreload" value="$jsreload" />
<input type="hidden" name="preview" id="comment-preview-inp-$id" value="0" />
<div class="comment-edit-photo" id="comment-edit-photo-$id" >
<a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>
</div>
<div class="comment-edit-photo-end"></div>
<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);" onBlur="commentClose(this,$id);" >$comment</textarea>
{{ if $qcomment }}
<ul class="qcomment-wrapper">
{{ for $qcomment as $qc }}
<li class="fakelink qcomment"
onclick="commentInsert(this,$id); return false;">$qc</li>
{{ endfor }}
</ul>
{{ endif }}
<div class="comment-edit-text-end"></div>
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;">
<input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
<span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
<div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
</div>
<div class="comment-edit-end"></div>
</form>
</div>

View file

@ -0,0 +1,29 @@
<div id="group-sidebar" class="widget">
<div class="title tool">
<h3 class="label">$title</h3>
<a href="group/new" title="$createtext" class="action"><span class="icon text s16 add"></span></a>
</div>
<div id="sidebar-group-list">
<ul>
{{ for $groups as $group }}
<li class="tool {{ if $group.selected }}selected{{ endif }}">
<a href="$group.href" class="label">
$group.text
</a>
{{ if $group.edit }}
<a href="$group.edit.href" class="action"><span class="icon text s10 edit"></span></a>
{{ endif }}
{{ if $group.cid }}
<input type="checkbox"
class="{{ if $group.selected }}ticked{{ else }}unticked {{ endif }} action"
onclick="contactgroupChangeMember('$group.id','$group.cid');return true;"
{{ if $group.ismember }}checked="checked"{{ endif }}
/>
{{ endif }}
</li>
{{ endfor }}
</ul>
</div>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
view/theme/diabook/icons/next.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 B

After

Width:  |  Height:  |  Size: 714 B

Before After
Before After

BIN
view/theme/diabook/icons/prev.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

BIN
view/theme/diabook/icons/toogle_off.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 B

After

Width:  |  Height:  |  Size: 834 B

Before After
Before After

BIN
view/theme/diabook/icons/toogle_on.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 429 B

After

Width:  |  Height:  |  Size: 715 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

After

Width:  |  Height:  |  Size: 468 B

Before After
Before After

View file

@ -26,6 +26,7 @@
<li id="nav-contacts-all"><a href="contacts">$nav.contacts.1</a></li>
</ul>
</li>
{{ endif }}
{{ if $nav.messages }}
@ -140,8 +141,9 @@
<div style="position: fixed; bottom: 5px; right: 10px;"><a href="javascript:scroll(0,0); "><img src="view/theme/diabook/icons/scroll_top.png" title="scroll to top"></a></div>
<div style="position: fixed; bottom: 5px; left: 25px;">$langselector</div>
<div style="position: fixed; bottom: 25px; left: 5px;"><a href="http://pad.toktan.org/p/diabook" target="blank" ><img src="view/theme/diabook/icons/bluebug.png" title="report bugs for the theme diabook"/></a></div>
<div style="position: fixed; bottom: 3px; left: 25px;">$langselector</div>
<div style="position: fixed; bottom: 23px; left: 5px;"><a href="http://pad.toktan.org/p/diabook" target="blank" ><img src="view/theme/diabook/icons/bluebug.png" title="report bugs for the theme diabook"/></a></div>
@ -150,10 +152,6 @@
</ul>
<ul id="nav-notifications-template" style="display:none;" rel="template">
<li><a href="{0}"><img src="{1}">{2} <span class="notif-when">{3}</span></a></li>
</ul>
{#

View file

@ -0,0 +1,27 @@
<div id="live-display"></div>
<h3><a href="$album.0">$album.1</a></h3>
<div id="photo-edit-link-wrap">
{{ if $tools }}
<a id="photo-edit-link" href="$tools.edit.0">$tools.edit.1</a>
-
<a id="photo-toprofile-link" href="$tools.profile.0">$tools.profile.1</a>
{{ endif }}
{{ if $lock }} - <img src="images/lock_icon.gif" class="lockview" alt="$lock" onclick="lockview(event,'photo$id');" /> {{ endif }}
</div>
<div id="photo-photo">
{{ if $prevlink }}<div id="photo-prev-link"><a href="$prevlink.0">$prevlink.1</a></div>{{ endif }}
<a href="$photo.href" class="lightbox" title="$photo.title"><img src="$photo.src" /></a>
{{ if $nextlink }}<div id="photo-next-link"><a href="$nextlink.0">$nextlink.1</a></div>{{ endif }}
</div>
<div id="photo-photo-end"></div>
<div id="photo-caption" >$desc</div>
{{ if $tags }}
<div id="in-this-photo-text">$tags.0</div>
<div id="in-this-photo">$tags.1</div>
{{ endif }}
{{ if $tags.2 }}<div id="tag-remove"><a href="$tags.2">$tags.3</a></div>{{ endif }}
{{ if $edit }}$edit{{ endif }}

View file

@ -0,0 +1,20 @@
<div id="profile_side">
<div id="ps-usernameicon">
<a href="$ps.usermenu.status.0" title="$userinfo.name">
<img src="$userinfo.icon" id="ps-usericon" alt="$userinfo.name">
</a>
<a href="$ps.usermenu.status.0" id="ps-username" title="$userinfo.name">$userinfo.name</a>
</div>
<ul id="profile-side-menu" class="menu-profile-side">
<li id="profile-side-status" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.status.0">$ps.usermenu.status.1</a></li>
<li id="profile-side-photos" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
<li id="profile-side-events" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
<li id="profile-side-notes" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
<li id="profile-side-foren" class="menu-profile-list"><a class="menu-profile-list-item" href="http://dir.friendika.com/directory/forum" target="blanc">Public Groups</a></li>
<li id="profile-side-foren" class="menu-profile-list"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
</ul>
</div>

View file

@ -101,13 +101,12 @@
.icon.pencil { background-image: url("../../../view/theme/diabook/icons/pencil.png");}
.icon.recycle { background-image: url("../../../view/theme/diabook/icons/recycle.png");}
.icon.remote-link { background-image: url("../../../view/theme/diabook/icons/remote.png");}
.icon.tagged { background-image: url("../../../view/theme/diabook/icons/tagged.png");}
.icon.unstarred { background-image: url("../../../view/theme/diabook/icons/star.png");}
.icon.star { background-image: url("../../../view/theme/diabook/icons/star.png");}
.icon.tagged { background-image: url("../../../view/theme/diabook/icons/tagged.png");}
.star-item.icon.unstarred { background-image: url("../../../view/theme/diabook/icons/unstarred.png");}
.star-item.icon.starred { background-image: url("../../../view/theme/diabook/icons/starred.png");}
.icon.link { background-image: url("../../../view/theme/diabook/icons/link.png");}
.icon.lock { background-image: url("../../../view/theme/diabook/icons/lock.png");}
.icon.unlock { background-image: url("../../../view/theme/diabook/icons/unlock.png");}
.icon.isstar { background-image: url("../../../view/theme/diabook/icons/isstar.png");}
.icon.language { background-image: url("../../../view/theme/diabook/icons/language.png");}
@ -178,8 +177,8 @@
.icon.on { background-image: url("../../../view/theme/diabook/icons/toogle_on.png"); background-repeat: no-repeat;}
.icon.off { background-image: url("../../../view/theme/diabook/icons/toogle_off.png"); background-repeat: no-repeat;}
.prev { background-position: -90px -60px;}
.next { background-position: -110px -60px;}
.icon.prev { background-image: url("../../../view/theme/diabook/icons/prev.png"); background-repeat: no-repeat;}
.icon.next { background-image: url("../../../view/theme/diabook/icons/next.png"); background-repeat: no-repeat;}
/*.tagged { background-position: -130px -60px;}*/
.attachtype {
@ -248,7 +247,7 @@
background-image: url("../../../images/icons/10/edit.png");
}
.icon.s10.star {
background-image: url("../../../images/icons/10/star.png");
background-image: url("../../../images/star_dummy.png");
}
.icon.s10.menu {
background-image: url("../../../images/icons/10/menu.png");
@ -286,7 +285,7 @@
background-image: url("../../../images/icons/16/edit.png");
}*/
.icon.s16.star {
background-image: url("../../../images/icons/16/star.png");
background-image: url("../../../images/star_dummy.png");
}
.icon.s16.menu {
background-image: url("../../../images/icons/16/menu.png");
@ -324,7 +323,7 @@
background-image: url("../../../images/icons/22/edit.png");
}
.icon.s22.star {
background-image: url("../../../images/icons/22/star.png");
background-image: url("../../../images/star_dummy.png");
}
.icon.s22.menu {
background-image: url("../../../images/icons/22/menu.png");
@ -362,7 +361,7 @@
background-image: url("../../../images/icons/48/edit.png");
}
.icon.s48.star {
background-image: url("../../../images/icons/48/star.png");
background-image: url("../../../images/star_dummy.png");
}
.icon.s48.menu {
background-image: url("../../../images/icons/48/menu.png");
@ -401,6 +400,7 @@ body {
margin: 50px auto auto;
display: table;
}
h4 {
font-size: 1.1em;
}
@ -462,7 +462,7 @@ code {
}
#panel {
position: absolute;
width: 10em;
width: 12em;
background: #ffffff;
color: #2d2d2d;
margin: 0px;
@ -516,7 +516,7 @@ header {
top: 0px;
margin: 0px;
padding: 0px;
width: 20%;
width: 22%;
height: 32px;
background: #000;
z-index: 100;
@ -529,8 +529,9 @@ header #site-location {
}
header #banner {
overflow: hidden;
text-align: center;
width: 100%;
text-align: left;
width: 82%%;
margin-left: 25%;
}
header #banner a,
header #banner a:active,
@ -556,12 +557,12 @@ nav {
width: 80%;
height: 32px;
position: fixed;
left: 20%;
left: 22%;
top: 0px;
padding: 0px;
background: #000;
color: #ffffff;
z-index: 100;
z-index: 99;
-webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
-moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7);
@ -704,21 +705,17 @@ nav #nav-user-linkmenu
nav #nav-user-linkmenu{
margin-right: 0px;
}
nav #nav-home-link{
nav #nav-home-link, #nav-directory-link, #nav-apps-link{
margin-left: 0px;
margin-right: 0px;
font-weight: bold;
margin: 3px 5px;
}
nav #nav-directory-link{
margin-left: 0px;
margin-right: 0px;
font-weight: bold;
margin: 3px 15px;
margin-right: 0px;
}
nav #nav-apps-link{
margin-left: 0px;
margin-right: 0px;
font-weight: bold;
margin: 3px 15px;
nav #nav-home-link{
margin-left: 0px;
}
nav #nav-help-link .menu-popup,
nav #nav-search-link .menu-popup,
@ -772,8 +769,6 @@ ul.menu-popup {
margin: 0px;
padding: 0px;
list-style: none;
border: 1px solid #364e59;
border-top-color: transparent;
z-index: 100000;
-webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
@ -866,6 +861,43 @@ ul.menu-popup .empty {
padding: 7px 7px 0px 0px;
}
/*profile_side*/
#profile_side {
margin-bottom: 30px;
}
#ps-usericon{
height: 25px
}
#ps-username{
font-size: 1.17em;
font-weight: bold;
vertical-align: top;
position: absolute;
padding-top: 4px;
padding-left: 5px;
color: #2D2D2D;
}
#ps-username:hover{
text-decoration: none;
}
.menu-profile-side{
list-style: none;
padding-left: 16px;
min-height: 16px;
}
.menu-profile-list{
height: auto;
overflow: auto;
padding-top: 3px;
padding-bottom: 3px;
}
.menu-profile-list:hover{
background: #EEE;
}
.menu-profile-list-item:hover{
text-decoration: none;
}
/* aside */
aside {
display: table-cell;
@ -876,6 +908,7 @@ aside {
float: left;
/* background: #F1F1F1; */
}
aside .vcard .fn {
font-size: 18px;
font-weight: bold;
@ -962,6 +995,10 @@ aside #side-peoplefind-url {
widht: 55px;
height: 55px;
}
#lost-password-link {
float: left;
margin-right: 20px;
}
/* widget */
.widget {
margin-bottom: 2em;
@ -1036,12 +1073,31 @@ section {
width: 800px;
padding: 0px 0px 0px 12px;
}
body .pageheader{
text-align: center;
margin-top: 25px;
font-size: 0px;
}
#id_username {
width: 173px;
}
#id_password {
width: 173px;
}
#id_openid_url {
width: 173px;
}
#contact-edit-end {
}
.pager {
padding: 10px;
text-align: center;
font-size: 1.0em;
clear: both;
display: block;
}
.tabs {
background-position: 0 -20px;
@ -1077,9 +1133,7 @@ section {
top: -10px;
width: 16px;
}
.unstarred {
display: none;
}
.wall-item-container {
display: table;
width: 780px;
@ -1116,6 +1170,7 @@ section {
}
.wall-item-container .wall-item-location {
padding-right: 40px;
display: table-cell;
}
.wall-item-container .wall-item-ago {
word-wrap: break-word;
@ -1171,6 +1226,7 @@ section {
.wall-item-container .wall-item-actions-social {
float: left;
margin-bottom: 1px;
display: table-cell;
}
.wall-item-container .wall-item-actions-social a {
margin-right: 1em;
@ -1181,6 +1237,7 @@ section {
.wall-item-container .wall-item-actions-tools {
float: right;
width: 80px;
display: table-cell;
}
.wall-item-container .wall-item-actions-tools a {
float: right;
@ -1845,7 +1902,6 @@ ul.tabs li .active {
/* photo */
.lframe {
float: left;
margin: 0px 10px 10px 0px;
}
/* profile match wrapper */
.profile-match-wrapper {
@ -1959,10 +2015,22 @@ box-shadow: 1px 1px 5px 0;
}
#prvmail-submit {
float: left;
float: right;
margin-top: 10px;
margin-right: 30px;
}
#prvmail-subject
{
background: none repeat scroll 0 0 #FFFFFF;
border: 1px solid #CCCCCC;
border-radius: 5px 5px 5px 5px;
font-weight: bold;
height: 20px;
margin: 0 0 5px;
vertical-align: middle;
}
#prvmail-form{
width: 597px;
}
#prvmail-upload-wrapper,
#prvmail-link-wrapper,
#prvmail-rotator-wrapper {
@ -2150,14 +2218,25 @@ a.mail-list-link {
padding: 10px;
float: left;
}
.lightbox{
float: left;
}
#photo-photo {
float: left;
}
#photo-like-div .wall-item-like-buttons {
float: left;
margin-right: 10px;
float: left;
margin-right: 5px;
margin-top: 30px;
}
.comment-edit-text-empty {
margin: 10px 0 0;
width: 85%;
}
.comment-edit-photo {
margin: 10px 0 0;
}
.wall-item-like-buttons .icon.like {
float: left;
}
@ -2270,7 +2349,36 @@ float: left;
color: #999999;
}
.photo-top-image-wrapper {
#side-bar-photos-albums{
margin-top: 15px;
}
.photo-top-photo, .photo-album-photo {
-webkit-border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
}
.photo-album-image-wrapper, .photo-top-image-wrapper {
float: left;
-moz-box-shadow: 0 0 5px #888;
-webkit-box-shadow: 0 0 5px #888;
box-shadow: 0 0 5px #888;
background-color: #EEE;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
padding-bottom: 20px;
position: relative;
margin: 0 10px 10px 0;
}
.photo-top-album-name {
position: absolute;
bottom: 0;
padding: 0 5px;
}
.photo-top-album-link{
color: #1872A2;
}
/*.photo-top-image-wrapper {
position: relative;
float: left;
margin-top: 15px;
@ -2286,7 +2394,7 @@ float: left;
padding: 0px 3px;
padding-top: 0.5em;
background-color: rgb(255, 255, 255);
}
}*/
#photo-top-end {
clear: both;
}
@ -2299,5 +2407,4 @@ float: left;
#photos-upload-newalbum-div {
float: left;
width: 175px;
}
}

119
view/theme/diabook/theme.php Executable file
View file

@ -0,0 +1,119 @@
<?php
/*
* Name: Diabook-blue
* Description: Diabook-blue: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version:
* Author:
*/
$a->theme_info = array(
'extends' => 'diabook',
);
//profile_side
$nav['usermenu']=array();
$userinfo = null;
if(local_user()) {
$r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
$userinfo = array(
'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl()."/images/default-profile-mm.jpg"),
'name' => $a->user['username'],
);
$ps['usermenu'][status] = Array('profile/' . $a->user['nickname'], t('Home'), "", t('Your posts and conversations'));
$ps['usermenu'][profile] = Array('profile/' . $a->user['nickname']. '?tab=profile', t('Profile'), "", t('Your profile page'));
$ps['usermenu'][photos] = Array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
$ps['usermenu'][events] = Array('events/', t('Events'), "", t('Your events'));
$ps['usermenu'][notes] = Array('notes/', t('Personal notes'), "", t('Your personal photos'));
$ps['usermenu'][community] = Array('community/', t('Community'), "", "");
if($is_url = preg_match ("/\bnetwork\b/i", $_SERVER['REQUEST_URI'])) {
$tpl = get_markup_template('profile_side.tpl');
$a->page['aside'] .= replace_macros($tpl, array(
'$userinfo' => $userinfo,
'$ps' => $ps,
));
}
}
//js scripts
$a->page['htmlhead'] .= <<< EOT
<script>
//contacts
$('html').click(function() {
$('#nav-contacts-linkmenu').removeClass('selected');
document.getElementById( "nav-contacts-menu" ).style.display = "none";
});
$('#nav-contacts-linkmenu').click(function(event){
event.stopPropagation();
});
//messages
$('html').click(function() {
$('#nav-messages-linkmenu').removeClass('selected');
document.getElementById( "nav-messages-menu" ).style.display = "none";
});
$('#nav-messages-linkmenu').click(function(event){
event.stopPropagation();
});
//notifications
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById( "nav-notifications-menu" ).style.display = "none";
});
$('#nav-notifications-linkmenu').click(function(event){
event.stopPropagation();
});
//usermenu
$('html').click(function() {
$('#nav-user-linkmenu').removeClass('selected');
document.getElementById( "nav-user-menu" ).style.display = "none";
});
$('#nav-user-linkmenu').click(function(event){
event.stopPropagation();
});
//settingsmenu
$('html').click(function() {
$('#nav-site-linkmenu').removeClass('selected');
document.getElementById( "nav-site-menu" ).style.display = "none";
});
$('#nav-site-linkmenu').click(function(event){
event.stopPropagation();
});
//appsmenu
$('html').click(function() {
$('#nav-apps-link').removeClass('selected');
document.getElementById( "nav-apps-menu" ).style.display = "none";
});
$('#nav-apps-link').click(function(event){
event.stopPropagation();
});
$(function() {
$('a.lightbox').fancybox(); // Select all links with lightbox class
});
</script>
EOT;

View file

@ -1,6 +1,5 @@
{{ if $item.indent }}{{ else }}
<div class="wall-item-decor">
<span class="icon isstar $item.isstarred" id="starred-$item.id" title="$item.star.starred">$item.star.starred</span>
{{ if $item.lock }}<span class="icon lock fakelink" onclick="lockview(event,$item.id);" title="$item.lock">$item.lock</span>{{ endif }}
<img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
</div>
@ -47,7 +46,7 @@
</div>
<div class="wall-item-actions">
<div class="wall-item-location">$item.location&nbsp;</div>
<div class="wall-item-actions-social">
@ -62,11 +61,9 @@
{{ if $item.star }}
<a href="#" id="star-$item.id" onclick="dostar($item.id); return false;" class="$item.star.classdo" title="$item.star.do" >
<img src="images/star_dummy.png" class="icon star" alt="$item.star.do" /> </a>
<a href="#" id="unstar-$item.id" onclick="dostar($item.id); return false;" class="$item.star.classundo" title="$item.star.undo">
<img src="images/star_dummy.png" class="icon star" alt="$item.star.undo" /> </a>
<a href="#" id="tagger-$item.id" class="icon tagged" onclick="itemTag($item.id); return false;" class="$item.star.classtagger" title="$item.star.tagger">$item.star.tagger</a>
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle">
<img src="images/star_dummy.png" class="icon star" alt="$item.star.do" /> </a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.plink }}<a class="icon link" title="$item.plink.title" href="$item.plink.href">$item.plink.title</a>{{ endif }}
@ -85,7 +82,7 @@
<a class="icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
{{ endif }}
</div>
<div class="wall-item-location">$item.location&nbsp;</div>
</div>
</div>
<div class="wall-item-bottom">

View file

@ -1,6 +1,5 @@
{{ if $item.indent }}{{ else }}
<div class="wall-item-decor">
<span class="icon isstar $item.isstarred" id="starred-$item.id" title="$item.star.starred">$item.star.starred</span>
{{ if $item.lock }}<span class="icon lock fakelink" onclick="lockview(event,$item.id);" title="$item.lock">$item.lock</span>{{ endif }}
<img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
</div>
@ -53,7 +52,7 @@
</div>
<div class="wall-item-actions">
<div class="wall-item-location">$item.location&nbsp;</div>
<div class="wall-item-actions-social">
@ -68,11 +67,9 @@
{{ if $item.star }}
<a href="#" id="star-$item.id" onclick="dostar($item.id); return false;" class="$item.star.classdo" title="$item.star.do" >
<img src="images/star_dummy.png" class="icon star" alt="$item.star.do" /> </a>
<a href="#" id="unstar-$item.id" onclick="dostar($item.id); return false;" class="$item.star.classundo" title="$item.star.undo">
<img src="images/star_dummy.png" class="icon star" alt="$item.star.undo" /> </a>
<a href="#" id="tagger-$item.id" class="icon tagged" onclick="itemTag($item.id); return false;" class="$item.star.classtagger" title="$item.star.tagger">$item.star.tagger</a>
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle">
<img src="images/star_dummy.png" class="icon star" alt="$item.star.do" /> </a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.plink }}<a class="icon link" title="$item.plink.title" href="$item.plink.href">$item.plink.title</a>{{ endif }}
@ -91,7 +88,7 @@
<a class="icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
{{ endif }}
</div>
<div class="wall-item-location">$item.location&nbsp;</div>
</div>
</div>
<div class="wall-item-bottom">

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

View file

@ -0,0 +1,30 @@
<div class="contact-entry-wrapper" id="contact-entry-wrapper-$contact.id" >
<div class="contact-entry-photo-wrapper">
<div class="contact-entry-photo mframe" id="contact-entry-photo-$contact.id"
onmouseover="if (typeof t$contact.id != 'undefined') clearTimeout(t$contact.id); openMenu('contact-photo-menu-button-$contact.id')"
onmouseout="t$contact.id=setTimeout('closeMenu(\'contact-photo-menu-button-$contact.id\'); closeMenu(\'contact-photo-menu-$contact.id\');',200)">
<a href="$contact.url" title="$contact.img_hover" /><img src="$contact.thumb" $contact.sparkle alt="$contact.name" /></a>
{{ if $contact.photo_menu }}
<span onclick="openClose('contact-photo-menu-$contact.id');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-$contact.id">menu</span>
<div class="contact-photo-menu" id="contact-photo-menu-$contact.id">
<ul>
$contact.photo_menu
</ul>
</div>
{{ endif }}
</div>
</div>
<div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-$contact.id" >$contact.name</div>
{{ if $contact.alt_text }}<div class="contact-entry-details" id="contact-entry-rel-$contact.id" >$contact.alt_text</div>{{ endif }}
<div class="contact-entry-details" id="contact-entry-url-$contact.id" >
<a href="$contact.itemurl" title="$contact.itemurl">Profile URL</a></div>
<div class="contact-entry-details" id="contact-entry-network-$contact.id" >$contact.network</div>
<div class="contact-entry-end" ></div>
</div>

View file

@ -0,0 +1,23 @@
{{ for $threads as $thread }}
<div id="tread-wrapper-$thread.id" class="tread-wrapper">
{{ for $thread.items as $item }}
{{if $item.comment_firstcollapsed}}
<div class="hide-comments-outer">
<span id="hide-comments-total-$thread.id" class="hide-comments-total">$thread.num_comments</span> <span id="hide-comments-$thread.id" class="hide-comments fakelink" onclick="showHideComments($thread.id);">$thread.hide_text</span>
</div>
<div id="collapsed-comments-$thread.id" class="collapsed-comments" style="display: none;">
{{endif}}
{{if $item.comment_lastcollapsed}}</div>{{endif}}
{{ inc $item.template }}{{ endinc }}
{{ endfor }}
</div>
{{ endfor }}
{{ if $dropping }}
<div class="delete-checked">
<a href="#" onclick="deleteCheckedItems();return false;"><span class="icon delete"></span><span class="s22 text">$dropping</span></a>
</div>
{{ endif }}

View file

@ -0,0 +1,30 @@
<div id="group-sidebar" class="widget">
<h3 class="label">$title</h3>
<div id="sidebar-group-list">
<ul id="sidebar-group-ul">
{{ for $groups as $group }}
<li class="sidebar-group-li">
<a href="$group.href" class="sidebar-group-element {{ if $group.selected }}group-selected{{ endif }}">$group.text</a>
{{ if $group.edit }}
<a
class="groupsideedit"
href="$group.edit.href" title="$group.edit.title"><span class="icon small-pencil"></span></a>
{{ endif }}
{{ if $group.cid }}
<input type="checkbox"
class="{{ if $group.selected }}ticked{{ else }}unticked {{ endif }} action"
onclick="contactgroupChangeMember('$group.id','$group.cid');return true;"
{{ if $group.ismember }}checked="checked"{{ endif }}
/>
{{ endif }}
</li>
{{ endfor }}
</ul>
</div>
<div id="sidebar-new-group">
<a href="group/new" title="$createtext"><span class="action text add">$createtext</span></a>
</div>
</div>

View file

@ -0,0 +1,80 @@
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<base href="$baseurl/" />
<meta name="generator" content="$generator" />
<link rel="stylesheet" href="$baseurl/library/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<link rel="stylesheet" href="$baseurl/library/tiptip/tipTip.css" type="text/css" media="screen" />
<link rel="stylesheet" href="$baseurl/library/jgrowl/jquery.jgrowl.css" type="text/css" media="screen" />
<link rel="stylesheet" type="text/css" href="$stylesheet" media="all" />
<link rel="shortcut icon" href="$baseurl/images/friendika-32.png" />
<link rel="search"
href="$baseurl/opensearch"
type="application/opensearchdescription+xml"
title="Search in Friendica" />
<!--[if IE]>
<script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="$baseurl/js/jquery.js" ></script>
<script type="text/javascript" src="$baseurl/js/jquery.textinputs.js" ></script>
<script type="text/javascript" src="$baseurl/js/fk.autocomplete.js" ></script>
<script type="text/javascript" src="$baseurl/library/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript" src="$baseurl/library/tiptip/jquery.tipTip.minified.js"></script>
<script type="text/javascript" src="$baseurl/library/jgrowl/jquery.jgrowl_minimized.js"></script>
<script type="text/javascript" src="$baseurl/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js" ></script>
<script type="text/javascript" src="$baseurl/js/acl.js" ></script>
<script type="text/javascript" src="$baseurl/js/webtoolkit.base64.js" ></script>
<script type="text/javascript" src="$baseurl/js/main.js" ></script>
<script>
var updateInterval = $update_interval;
function confirmDelete() { return confirm("$delitem"); }
function commentOpen(obj,id) {
if(obj.value == '$comment') {
obj.value = '';
obj.className = "comment-edit-text-full";
openMenu("comment-edit-submit-wrapper-" + id);
}
}
function commentClose(obj,id) {
if(obj.value == '') {
obj.value = '$comment';
obj.className="comment-edit-text-empty";
closeMenu("comment-edit-submit-wrapper-" + id);
}
}
function commentInsert(obj,id) {
var tmpStr = $("#comment-edit-text-" + id).val();
if(tmpStr == '$comment') {
tmpStr = '';
$("#comment-edit-text-" + id).addClass("comment-edit-text-full");
$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
openMenu("comment-edit-submit-wrapper-" + id);
}
var ins = $(obj).html();
ins = ins.replace('&lt;','<');
ins = ins.replace('&gt;','>');
ins = ins.replace('&amp;','&');
ins = ins.replace('&quot;','"');
$("#comment-edit-text-" + id).val(tmpStr + ins);
}
function showHideComments(id) {
if( $('#collapsed-comments-' + id).is(':visible')) {
$('#collapsed-comments-' + id).hide();
$('#hide-comments-' + id).html('$showmore');
}
else {
$('#collapsed-comments-' + id).show();
$('#hide-comments-' + id).html('$showfewer');
}
}
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,2096 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="250"
height="200"
id="svg3403"
version="1.1"
inkscape:version="0.48+devel r"
sodipodi:docname="icons.svg"
inkscape:export-filename="/var/www3/kisikew.org/portal/pub/fd/view/theme/dispy-dark/icons.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs3405">
<filter
color-interpolation-filters="sRGB"
inkscape:collect="always"
id="filter4064">
<feBlend
inkscape:collect="always"
mode="lighten"
in2="BackgroundImage"
id="feBlend4066" />
</filter>
<inkscape:path-effect
effect="gears"
id="path-effect4050"
is_visible="true"
teeth="10"
phi="10" />
<inkscape:path-effect
effect="gears"
id="path-effect3436"
is_visible="true"
teeth="10"
phi="10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#454545"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1.3859292"
inkscape:cx="105.02551"
inkscape:cy="107.90767"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-global="false"
inkscape:window-width="1065"
inkscape:window-height="742"
inkscape:window-x="40"
inkscape:window-y="61"
inkscape:window-maximized="0"
width="0px"
height="0px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid4016"
empspacing="5"
visible="true"
enabled="false"
snapvisiblegridlinesonly="false"
spacingx="20px"
spacingy="20px"
dotted="false"
units="px"
originx="50px"
originy="200px" />
<inkscape:grid
type="xygrid"
id="grid4018"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="false"
color="#ff0000"
opacity="0.1254902"
empcolor="#ff0000"
empopacity="0.25098039"
originy="200px"
spacingx="22px"
spacingy="22px" />
</sodipodi:namedview>
<metadata
id="metadata3408">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-852.36218)">
<rect
transform="matrix(1,0,0,0.84848485,44,217.14578)"
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons.png"
y="852.36218"
x="1.5883562e-17"
height="132"
width="44"
id="rect185"
style="fill:#2e2f2e;fill-opacity:1;stroke:none;display:inline" />
<rect
style="fill:#2e2f2e;fill-opacity:1;stroke:none;display:inline"
id="rect4007"
width="44"
height="132"
x="1.5883562e-17"
y="852.36218"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
transform="matrix(1,0,0,1.5151515,0,-439.09566)" />
<rect
ry="6"
rx="6"
y="18.790752"
x="417.14285"
height="44.285713"
width="44.285713"
id="rect4011"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="matrix(0.43114968,0,0,0.43114968,-178.47604,867.63556)" />
<rect
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4021"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,889.63556)" />
<rect
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect4029"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,845.63556)" />
<rect
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect4070"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,911.63556)" />
<rect
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect4108"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,933.6356)" />
<rect
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect3147"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,955.6356)" />
<rect
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,1022.6356)"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect192"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6" />
<rect
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect194"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
transform="matrix(0.43114968,0,0,0.43114968,-157.41936,1022.6356)" />
<rect
transform="matrix(0.43114968,0,0,0.43114968,-157.41936,999.6356)"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect196"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6" />
<rect
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect202"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
transform="matrix(0.43114968,0,0,0.43114968,-157.41936,933.6356)" />
<rect
transform="matrix(0.43114968,0,0,0.43114968,-157.41936,977.6356)"
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect1024"
style="fill:#1a1a1a;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)" />
<rect
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,977.6356)"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect188"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6" />
<rect
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect190"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,999.6356)" />
<rect
transform="matrix(0.43114968,0,0,0.43114968,-157.41936,955.6356)"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect200"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6" />
<rect
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3820"
width="44.285713"
height="44.285713"
x="417.14285"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-156.47604,867.63556)" />
<path
id="path3830"
d="m 449.12191,27.281249 c -2.07646,0 -3.76352,1.688406 -3.76352,3.766518 0,2.078113 1.68706,3.766518 3.76352,3.766518 2.07646,0 3.76351,-1.688405 3.76351,-3.766518 0,-2.078112 -1.68705,-3.766518 -3.76351,-3.766518 z m 0,7.533036 c -5.23267,0 -9.47459,5.783883 -9.47459,12.932589 0,0.201529 0.0196,0.406525 0.0264,0.605804 l 18.89654,0 c 0.007,-0.199279 0.0264,-0.404275 0.0264,-0.605804 0,-7.148706 -4.24192,-12.932589 -9.47459,-12.932589 z"
style="fill:#333333;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
transform="matrix(0.43114968,0,0,0.43114968,-157.03951,867.63556)" />
<path
inkscape:connector-curvature="0"
style="fill:#333333;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 431.26477,26.924106 c -2.07646,0 -3.76352,1.688406 -3.76352,3.766518 0,2.078113 1.68706,3.766518 3.76352,3.766518 2.07646,0 3.76351,-1.688405 3.76351,-3.766518 0,-2.078112 -1.68705,-3.766518 -3.76351,-3.766518 z m 0,7.533036 c -5.23267,0 -9.47459,5.783883 -9.47459,12.932589 0,0.201529 0.0196,0.406525 0.0264,0.605804 l 18.89654,0 c 0.007,-0.199279 0.0264,-0.404275 0.0264,-0.605804 0,-7.148706 -4.24192,-12.932589 -9.47459,-12.932589 z"
id="path3832"
transform="matrix(0.43114968,0,0,0.43114968,-157.03951,867.63556)" />
<path
style="fill:#333333;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="M 439.46875,29.78125 C 437.00319,29.78125 435,31.784443 435,34.25 c 0,2.465557 2.00319,4.46875 4.46875,4.46875 2.46556,0 4.46875,-2.003193 4.46875,-4.46875 0,-2.465557 -2.00319,-4.46875 -4.46875,-4.46875 z m 0,8.9375 c -6.2132,0 -11.25,6.862234 -11.25,15.34375 0,0.239102 0.0233,0.482318 0.0313,0.71875 l 22.4375,0 c 0.008,-0.236432 0.0313,-0.479648 0.0313,-0.71875 0,-8.481516 -5.0368,-15.34375 -11.25,-15.34375 z"
id="path3822"
inkscape:connector-curvature="0"
transform="matrix(0.43114968,0,0,0.43114968,-157.03951,867.63556)" />
<rect
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect3837"
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,889.63556)" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 477.97758,26.469174 c -3.64342,3.88426 -3.47037,9.984211 0.41389,13.627637 3.52011,3.301856 8.87059,3.441123 12.55302,0.54905 -0.17428,0.682501 0.0188,1.431563 0.57086,1.949383 l 13.7666,12.913032 c 0.80813,0.75802 2.06896,0.717682 2.82698,-0.09044 l 0.68414,-0.729357 c 0.75802,-0.808126 0.71768,-2.06896 -0.0904,-2.82698 l -13.7666,-12.913032 c -0.55205,-0.51782 -1.31192,-0.66264 -1.98188,-0.445086 2.65077,-3.859767 2.16978,-9.190402 -1.35033,-12.492258 -3.88426,-3.643426 -9.9828,-3.426204 -13.62623,0.458055 z"
id="path3839"
inkscape:connector-curvature="0"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,889.63556)" />
<path
sodipodi:type="arc"
style="fill:none;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path3844"
sodipodi:cx="485.17856"
sodipodi:cy="33.612183"
sodipodi:rx="7.3214288"
sodipodi:ry="7.3214288"
d="m 492.49999,33.612183 a 7.3214288,7.3214288 0 1 1 -14.64286,0 7.3214288,7.3214288 0 1 1 14.64286,0 z"
transform="matrix(0.43114968,0,0,0.43114968,-201.51175,889.48158)" />
<rect
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3995"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,845.63556)" />
<path
inkscape:connector-curvature="0"
id="path4003"
d="M 504.69787,28.735741 480.30214,53.131477"
style="fill:#333333;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.31938004"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,845.63556)" />
<path
style="fill:#333333;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.31938004"
d="M 504.69787,53.131473 480.30214,28.735746"
id="path4005"
inkscape:connector-curvature="0"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,845.63556)" />
<path
inkscape:connector-curvature="0"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 449.12191,27.281249 c -2.07646,0 -3.76352,1.688406 -3.76352,3.766518 0,2.078113 1.68706,3.766518 3.76352,3.766518 2.07646,0 3.76351,-1.688405 3.76351,-3.766518 0,-2.078112 -1.68705,-3.766518 -3.76351,-3.766518 z m 0,7.533036 c -5.23267,0 -9.47459,5.783883 -9.47459,12.932589 0,0.201529 0.0196,0.406525 0.0264,0.605804 l 18.89654,0 c 0.007,-0.199279 0.0264,-0.404275 0.0264,-0.605804 0,-7.148706 -4.24192,-12.932589 -9.47459,-12.932589 z"
id="path4013"
transform="matrix(0.43114968,0,0,0.43114968,-178.91257,867.63556)" />
<path
id="path4015"
d="m 431.26477,26.924106 c -2.07646,0 -3.76352,1.688406 -3.76352,3.766518 0,2.078113 1.68706,3.766518 3.76352,3.766518 2.07646,0 3.76351,-1.688405 3.76351,-3.766518 0,-2.078112 -1.68705,-3.766518 -3.76351,-3.766518 z m 0,7.533036 c -5.23267,0 -9.47459,5.783883 -9.47459,12.932589 0,0.201529 0.0196,0.406525 0.0264,0.605804 l 18.89654,0 c 0.007,-0.199279 0.0264,-0.404275 0.0264,-0.605804 0,-7.148706 -4.24192,-12.932589 -9.47459,-12.932589 z"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
transform="matrix(0.43114968,0,0,0.43114968,-178.91257,867.63556)" />
<path
inkscape:connector-curvature="0"
id="path4017"
d="M 439.46875,29.78125 C 437.00319,29.78125 435,31.784443 435,34.25 c 0,2.465557 2.00319,4.46875 4.46875,4.46875 2.46556,0 4.46875,-2.003193 4.46875,-4.46875 0,-2.465557 -2.00319,-4.46875 -4.46875,-4.46875 z m 0,8.9375 c -6.2132,0 -11.25,6.862234 -11.25,15.34375 0,0.239102 0.0233,0.482318 0.0313,0.71875 l 22.4375,0 c 0.008,-0.236432 0.0313,-0.479648 0.0313,-0.71875 0,-8.481516 -5.0368,-15.34375 -11.25,-15.34375 z"
style="fill:#1a1a1a;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="matrix(0.43114968,0,0,0.43114968,-178.91257,867.63556)" />
<path
inkscape:connector-curvature="0"
id="path4023"
d="m 477.97758,26.469174 c -3.64342,3.88426 -3.47037,9.984211 0.41389,13.627637 3.52011,3.301856 8.87059,3.441123 12.55302,0.54905 -0.17428,0.682501 0.0188,1.431563 0.57086,1.949383 l 13.7666,12.913032 c 0.80813,0.75802 2.06896,0.717682 2.82698,-0.09044 l 0.68414,-0.729357 c 0.75802,-0.808126 0.71768,-2.06896 -0.0904,-2.82698 l -13.7666,-12.913032 c -0.55205,-0.51782 -1.31192,-0.66264 -1.98188,-0.445086 2.65077,-3.859767 2.16978,-9.190402 -1.35033,-12.492258 -3.88426,-3.643426 -9.9828,-3.426204 -13.62623,0.458055 z"
style="fill:none;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,889.63556)" />
<path
transform="matrix(0.43114968,0,0,0.43114968,-179.51175,889.48158)"
d="m 492.49999,33.612183 a 7.3214288,7.3214288 0 1 1 -14.64286,0 7.3214288,7.3214288 0 1 1 14.64286,0 z"
sodipodi:ry="7.3214288"
sodipodi:rx="7.3214288"
sodipodi:cy="33.612183"
sodipodi:cx="485.17856"
id="path4025"
style="fill:none;stroke:#d3d7cf;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:type="arc" />
<path
style="fill:#1a1a1a;fill-opacity:1;stroke:#d3d7cf;stroke-width:2.31938004"
d="M 504.69787,28.735741 480.30214,53.131477"
id="path4031"
inkscape:connector-curvature="0"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,845.63556)" />
<path
inkscape:connector-curvature="0"
id="path4033"
d="M 504.69787,53.131473 480.30214,28.735746"
style="fill:#1a1a1a;fill-opacity:1;stroke:#d3d7cf;stroke-width:2.31938004"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,845.63556)" />
<rect
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect4042"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,911.63556)" />
<path
inkscape:original-d="M 484.55417,49.762303 492.5,40.933609 504.27158,48.879434"
inkscape:path-effect="#path-effect4050"
inkscape:connector-curvature="0"
id="path4048"
d="m 484.90604,52.679071 c 0,0 -0.72327,1.028211 -2.88202,1.697409 -0.63474,-0.494653 -1.23439,-1.034334 -1.79294,-1.613646 0.43889,-2.217071 1.3855,-3.044283 1.3855,-3.044283 l 2.04237,-1.648571 c -0.73879,-0.915258 -1.3342,-1.946011 -1.75793,-3.043257 l -2.44847,0.945549 c 0,0 -1.18951,0.40671 -3.32932,-0.320779 -0.22277,-0.773276 -0.39067,-1.56235 -0.50204,-2.359331 1.65823,-1.535673 2.91028,-1.648499 2.91028,-1.648499 l 2.62132,-0.133248 c -0.0597,-1.174706 0.0645,-2.358577 0.36658,-3.495332 l -2.53663,-0.674208 c 0,0 -1.20139,-0.37014 -2.50493,-2.216441 0.2743,-0.756533 0.60227,-1.4936 0.98062,-2.20383 2.24419,-0.267701 3.32343,0.376954 3.32343,0.376954 l 2.19901,1.432971 c 0.64217,-0.985455 1.43848,-1.870246 2.35108,-2.612309 l -1.65589,-2.03644 c 0,0 -0.75438,-1.005609 -0.72373,-3.265497 0.66659,-0.45082 1.36515,-0.854347 2.08871,-1.206542 1.97294,1.102524 2.46715,2.258424 2.46715,2.258424 l 0.93675,2.451844 c 1.09876,-0.419794 2.26306,-0.667544 3.43754,-0.731472 l -0.14265,-2.620822 c 0,0 -0.0192,-1.25697 1.3339,-3.067245 0.80426,0.02709 1.6066,0.111239 2.39899,0.251604 0.94809,2.051624 0.66849,3.277254 0.66849,3.277254 l -0.6833,2.534196 c 1.13566,0.306213 2.22322,0.790136 3.21097,1.428761 l 1.42508,-2.204138 c 0,0 0.72327,-1.028211 2.88202,-1.697409 0.63474,0.494653 1.23439,1.034334 1.79294,1.613646 -0.43889,2.217071 -1.3855,3.044283 -1.3855,3.044283 l -2.04237,1.648571 c 0.73879,0.915258 1.3342,1.946011 1.75793,3.043257 l 2.44847,-0.945549 c 0,0 1.18951,-0.40671 3.32932,0.320779 0.22277,0.773276 0.39067,1.56235 0.50204,2.359331 -1.65823,1.535673 -2.91028,1.648499 -2.91028,1.648499 l -2.62132,0.133248 c 0.0597,1.174706 -0.0645,2.358577 -0.36658,3.495332 l 2.53663,0.674208 c 0,0 1.20139,0.37014 2.50493,2.216441 -0.2743,0.756533 -0.60227,1.4936 -0.98062,2.20383 -2.24419,0.267701 -3.32343,-0.376954 -3.32343,-0.376954 l -2.19901,-1.432971 c -0.64217,0.985455 -1.43848,1.870246 -2.35108,2.612309 l 1.65589,2.03644 c 0,0 0.75438,1.005609 0.72373,3.265497 -0.66659,0.45082 -1.36515,0.854347 -2.08871,1.206542 -1.97294,-1.102524 -2.46715,-2.258424 -2.46715,-2.258424 l -0.93675,-2.451844 c -1.09876,0.419794 -2.26306,0.667544 -3.43754,0.731472 l 0.14265,2.620822 c 0,0 0.0192,1.25697 -1.3339,3.067245 -0.80426,-0.02709 -1.6066,-0.111239 -2.39899,-0.251604 -0.94809,-2.051624 -0.66849,-3.277254 -0.66849,-3.277254 l 0.6833,-2.534196 c -1.13566,-0.306213 -2.22322,-0.790136 -3.21097,-1.428761 l -1.42508,2.204138"
style="fill:#333333;fill-opacity:1;stroke:#e6e6e6;stroke-width:1.66475451;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;filter:url(#filter4064)"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,911.63556)" />
<path
style="fill:#1a1a1a;fill-opacity:1;stroke:#d3d7cf;stroke-width:1.66475451;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;filter:url(#filter4064)"
d="m 484.90604,52.679071 c 0,0 -0.72327,1.028211 -2.88202,1.697409 -0.63474,-0.494653 -1.23439,-1.034334 -1.79294,-1.613646 0.43889,-2.217071 1.3855,-3.044283 1.3855,-3.044283 l 2.04237,-1.648571 c -0.73879,-0.915258 -1.3342,-1.946011 -1.75793,-3.043257 l -2.44847,0.945549 c 0,0 -1.18951,0.40671 -3.32932,-0.320779 -0.22277,-0.773276 -0.39067,-1.56235 -0.50204,-2.359331 1.65823,-1.535673 2.91028,-1.648499 2.91028,-1.648499 l 2.62132,-0.133248 c -0.0597,-1.174706 0.0645,-2.358577 0.36658,-3.495332 l -2.53663,-0.674208 c 0,0 -1.20139,-0.37014 -2.50493,-2.216441 0.2743,-0.756533 0.60227,-1.4936 0.98062,-2.20383 2.24419,-0.267701 3.32343,0.376954 3.32343,0.376954 l 2.19901,1.432971 c 0.64217,-0.985455 1.43848,-1.870246 2.35108,-2.612309 l -1.65589,-2.03644 c 0,0 -0.75438,-1.005609 -0.72373,-3.265497 0.66659,-0.45082 1.36515,-0.854347 2.08871,-1.206542 1.97294,1.102524 2.46715,2.258424 2.46715,2.258424 l 0.93675,2.451844 c 1.09876,-0.419794 2.26306,-0.667544 3.43754,-0.731472 l -0.14265,-2.620822 c 0,0 -0.0192,-1.25697 1.3339,-3.067245 0.80426,0.02709 1.6066,0.111239 2.39899,0.251604 0.94809,2.051624 0.66849,3.277254 0.66849,3.277254 l -0.6833,2.534196 c 1.13566,0.306213 2.22322,0.790136 3.21097,1.428761 l 1.42508,-2.204138 c 0,0 0.72327,-1.028211 2.88202,-1.697409 0.63474,0.494653 1.23439,1.034334 1.79294,1.613646 -0.43889,2.217071 -1.3855,3.044283 -1.3855,3.044283 l -2.04237,1.648571 c 0.73879,0.915258 1.3342,1.946011 1.75793,3.043257 l 2.44847,-0.945549 c 0,0 1.18951,-0.40671 3.32932,0.320779 0.22277,0.773276 0.39067,1.56235 0.50204,2.359331 -1.65823,1.535673 -2.91028,1.648499 -2.91028,1.648499 l -2.62132,0.133248 c 0.0597,1.174706 -0.0645,2.358577 -0.36658,3.495332 l 2.53663,0.674208 c 0,0 1.20139,0.37014 2.50493,2.216441 -0.2743,0.756533 -0.60227,1.4936 -0.98062,2.20383 -2.24419,0.267701 -3.32343,-0.376954 -3.32343,-0.376954 l -2.19901,-1.432971 c -0.64217,0.985455 -1.43848,1.870246 -2.35108,2.612309 l 1.65589,2.03644 c 0,0 0.75438,1.005609 0.72373,3.265497 -0.66659,0.45082 -1.36515,0.854347 -2.08871,1.206542 -1.97294,-1.102524 -2.46715,-2.258424 -2.46715,-2.258424 l -0.93675,-2.451844 c -1.09876,0.419794 -2.26306,0.667544 -3.43754,0.731472 l 0.14265,2.620822 c 0,0 0.0192,1.25697 -1.3339,3.067245 -0.80426,-0.02709 -1.6066,-0.111239 -2.39899,-0.251604 -0.94809,-2.051624 -0.66849,-3.277254 -0.66849,-3.277254 l 0.6833,-2.534196 c -1.13566,-0.306213 -2.22322,-0.790136 -3.21097,-1.428761 l -1.42508,2.204138"
id="path4072"
inkscape:connector-curvature="0"
inkscape:path-effect="#path-effect4050"
inkscape:original-d="M 484.55417,49.762303 492.5,40.933609 504.27158,48.879434"
transform="matrix(0.43114968,0,0,0.43114968,-201.41936,911.63556)" />
<rect
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect4076"
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,933.6356)" />
<path
inkscape:connector-curvature="0"
id="path3839-4"
transform="translate(-856.62503,901.37504)"
d="m 871.875,46.1875 c -1.86715,0.0095 -3.39179,1.39545 -3.65625,3.1875 -0.13267,-0.238038 -0.39472,-0.407705 -0.6875,-0.40625 L 860.21875,49 c -0.42864,0.0022 -0.75216,0.352585 -0.75,0.78125 l 0,0.375 c 0.002,0.428643 0.35273,0.783324 0.78125,0.78125 l 0.71875,0 c -0.017,0.04029 -0.0313,0.109644 -0.0313,0.15625 l 0,1.90625 c 0,0.186425 0.15733,0.34375 0.34375,0.34375 l 0.9375,0 c 0.18642,0 0.34375,-0.157325 0.34375,-0.34375 l 0,-1.90625 c 0,-0.04661 -0.0143,-0.115964 -0.0313,-0.15625 l 1.25,0 c -0.017,0.04029 -0.0313,0.109644 -0.0313,0.15625 l 0,1.90625 c 0,0.186425 0.15733,0.34375 0.34375,0.34375 l 0.9375,0 c 0.18642,0 0.34375,-0.157325 0.34375,-0.34375 l 0,-1.90625 c 0,-0.05736 -0.006,-0.140333 -0.0313,-0.1875 l 2.1875,0 c 0.29284,-0.0015 0.55725,-0.166865 0.6875,-0.40625 0.28274,1.789274 1.85161,3.165775 3.71875,3.15625 2.0603,-0.01052 3.69802,-1.720959 3.6875,-3.78125 -0.0105,-2.060291 -1.68969,-3.698024 -3.75,-3.6875 z"
style="fill:none;stroke:#e6e6e6;stroke-width:0.79446769;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;filter:url(#filter4064)" />
<path
inkscape:connector-curvature="0"
style="fill:none;fill-opacity:1;stroke:#d3d7cf;stroke-width:0.794;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;filter:url(#filter4064)"
d="m 871.875,46.1875 c -1.86715,0.0095 -3.39179,1.39545 -3.65625,3.1875 -0.13267,-0.238038 -0.39472,-0.407705 -0.6875,-0.40625 L 860.21875,49 c -0.42864,0.0022 -0.75216,0.352585 -0.75,0.78125 l 0,0.375 c 0.002,0.428643 0.35273,0.783324 0.78125,0.78125 l 0.71875,0 c -0.017,0.04029 -0.0313,0.109644 -0.0313,0.15625 l 0,1.90625 c 0,0.186425 0.15733,0.34375 0.34375,0.34375 l 0.9375,0 c 0.18642,0 0.34375,-0.157325 0.34375,-0.34375 l 0,-1.90625 c 0,-0.04661 -0.0143,-0.115964 -0.0313,-0.15625 l 1.25,0 c -0.017,0.04029 -0.0313,0.109644 -0.0313,0.15625 l 0,1.90625 c 0,0.186425 0.15733,0.34375 0.34375,0.34375 l 0.9375,0 c 0.18642,0 0.34375,-0.157325 0.34375,-0.34375 l 0,-1.90625 c 0,-0.05736 -0.006,-0.140333 -0.0313,-0.1875 l 2.1875,0 c 0.29284,-0.0015 0.55725,-0.166865 0.6875,-0.40625 0.28274,1.789274 1.85161,3.165775 3.71875,3.15625 2.0603,-0.01052 3.69802,-1.720959 3.6875,-3.78125 -0.0105,-2.060291 -1.68969,-3.698024 -3.75,-3.6875 z"
transform="translate(-834.62503,901.37504)"
id="path4110" />
<path
transform="matrix(1.2829201,1.9081591,-1.9081591,1.2829201,-436.65386,-211.76762)"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path4002-3"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
id="path4004-9"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
transform="matrix(0.96219008,1.4311194,-1.4311194,0.96219008,-261.29289,65.614849)" />
<path
transform="matrix(1.0080086,1.4992679,-1.4992679,1.0080086,-291.03317,15.446827)"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path4006-4"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
inkscape:connector-curvature="0"
id="path4010-56"
d="m 563.21055,31.653543 4.41942,-6.187185 -7.6014,-6.187184"
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
transform="matrix(0.45818575,0.68148541,-0.68148541,0.45818575,-2.7897502,485.71067)" />
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
id="path4008-8"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
transform="matrix(1.0996458,1.635565,-1.635565,1.0996458,-346.37171,-55.312424)" />
<path
inkscape:connector-curvature="0"
id="path4012-5"
d="m 567.45319,25.466358 7.6014,-4.065864"
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
transform="matrix(0.45818575,0.68148541,-0.68148541,0.45818575,-2.7897502,485.71067)" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
d="m 218.00001,881.25007 -5.8125,0 0,9.1875 10.53125,0 0,-5.2187"
id="rect4432"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
style="fill:#999999;stroke:#ececec;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4387-8"
width="14.5"
height="9"
x="173.12502"
y="858.11218"
rx="2.9268293"
ry="2.9268293"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
sodipodi:type="arc"
style="fill:#333333;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path4391-3"
sodipodi:cx="408.8125"
sodipodi:cy="220.26843"
sodipodi:rx="2.6875"
sodipodi:ry="2.71875"
d="m 411.5,220.26843 c 0,1.50153 -1.20323,2.71875 -2.6875,2.71875 -1.48427,0 -2.6875,-1.21722 -2.6875,-2.71875 0,-1.50152 1.20323,-2.71875 2.6875,-2.71875 1.48427,0 2.6875,1.21723 2.6875,2.71875 z"
transform="matrix(1.1489362,0,0,1.1489362,-286.13697,609.51131)"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:#1a1a1a;fill-opacity:1;stroke:#e6e6e6;stroke-width:0.47366244;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
d="m 242.44524,860.13287 c -0.98011,0 -1.77562,0.6006 -1.77562,1.3586 l 0,1.5632 c 0,0.7581 0.79551,1.3733 1.77562,1.3733 l 4.53349,0 c 0.98012,0 1.77562,-0.6152 1.77562,-1.3733 l 0,-1.5632 c 0,-0.758 -0.7955,-1.3586 -1.77562,-1.3586 l -4.53349,0 z m 0.41557,1.0372 3.70235,0 c 0.51967,0 0.94448,0.2879 0.94448,0.6574 l 0,0.8912 c 0,0.3695 -0.42481,0.672 -0.94448,0.672 l -3.70235,0 c -0.51966,0 -0.94447,-0.3025 -0.94447,-0.672 l 0,-0.8912 c 0,-0.3695 0.42481,-0.6574 0.94447,-0.6574 z"
id="rect4397-0"
inkscape:connector-curvature="0"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
inkscape:connector-curvature="0"
id="path4418-4"
d="m 232.97199,860.13287 c -0.98011,0 -1.77562,0.6006 -1.77562,1.3586 l 0,1.5632 c 0,0.7581 0.79551,1.3733 1.77562,1.3733 l 4.53349,0 c 0.98012,0 1.77562,-0.6152 1.77562,-1.3733 l 0,-1.5632 c 0,-0.758 -0.7955,-1.3586 -1.77562,-1.3586 l -4.53349,0 z m 0.41557,1.0372 3.70236,0 c 0.51966,0 0.94447,0.2879 0.94447,0.6574 l 0,0.8912 c 0,0.3695 -0.42481,0.672 -0.94447,0.672 l -3.70236,0 c -0.51966,0 -0.94447,-0.3025 -0.94447,-0.672 l 0,-0.8912 c 0,-0.3695 0.42481,-0.6574 0.94447,-0.6574 z"
style="fill:#1a1a1a;fill-opacity:1;stroke:#e6e6e6;stroke-width:0.47366244;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
style="fill:#1a1a1a;fill-opacity:1;stroke:#e6e6e6;stroke-width:0.47366244;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4395-0"
width="6.7246785"
height="1.6362466"
x="236.7028"
y="861.57312"
rx="1.0135853"
ry="0.81812328"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<g
id="g1037">
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
sodipodi:nodetypes="csccccscc"
inkscape:connector-curvature="0"
id="rect4428-4"
d="m 118.03127,895.15627 0,0.3125 c 0,1.2601 -0.0643,3.4345 -0.35937,5.75 l -1.5625,1e-4 c -0.80183,0.011 -1.64766,4.0737 -1.60938,8.0625 l 8.25,0 c -0.057,-5.5479 1.56902,-11.5211 1.75,-5.6563 0.21453,6.9525 1.74237,-5.1823 1.75,-8.4687 z"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:connector-curvature="0"
id="path4440-4"
d="m 124.78127,905.73727 -1.9375,-0.063"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path4442-9"
d="m 117.59377,901.20597 6.4375,0"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
y="908.11218"
x="115.28126"
height="0.375"
width="1.0625"
id="rect4446-9"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4448-3"
width="1.0625"
height="0.375"
x="115.34376"
y="906.51843" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
y="904.89343"
x="115.50001"
height="0.375"
width="1.0625"
id="rect4450-6"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4452-0"
width="1.0625"
height="0.375"
x="115.81251"
y="903.42468" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
y="902.17468"
x="116.21876"
height="0.375"
width="1.0625"
id="rect4454-5"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4456-0"
width="1.0625"
height="0.375"
x="118.50001"
y="900.17468" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
y="898.70593"
x="118.68751"
height="0.375"
width="1.0625"
id="rect4458-2"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4460-9"
width="1.0625"
height="0.375"
x="118.75001"
y="897.20593" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
y="895.79968"
x="118.75001"
height="0.375"
width="1.0625"
id="rect4462-4"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4464-3"
width="1.0625"
height="0.375"
x="120.84376"
y="908.11218" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
y="906.51843"
x="120.90627"
height="0.375"
width="1.0625"
id="rect4466-5"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4468-1"
width="1.0625"
height="0.375"
x="121.06252"
y="904.89343" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
y="903.42468"
x="121.37502"
height="0.375"
width="1.0625"
id="rect4470-7"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4472-4"
width="1.0625"
height="0.375"
x="121.78127"
y="902.17468" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
y="900.17468"
x="124.06252"
height="0.375"
width="1.0625"
id="rect4474-3"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4476-1"
width="1.0625"
height="0.375"
x="124.25002"
y="898.70593" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
y="897.20593"
x="124.31252"
height="0.375"
width="1.0625"
id="rect4478-4"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect4480-6"
width="1.0625"
height="0.375"
x="124.31252"
y="895.79968" />
</g>
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.35579938;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 310.75659,223.79453 c 0.76095,-0.8373 1.2453,-2.02269 1.2453,-3.35786 0,-1.33796 -0.48156,-2.54257 -1.2453,-3.38009"
id="path4491-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc"
transform="matrix(0.92823291,-0.48059851,0.48059851,0.92823291,-312.89954,806.76727)" />
<path
sodipodi:nodetypes="csc"
inkscape:connector-curvature="0"
id="path4496-2"
d="m 311.49266,224.75938 c 1.00712,-1.10816 1.64816,-2.67702 1.64816,-4.44411 0,-1.77079 -0.63735,-3.36509 -1.64816,-4.47354"
style="fill:none;stroke:#e6e6e6;stroke-width:0.47089946;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="matrix(0.92823291,-0.48059851,0.48059851,0.92823291,-312.89954,806.76727)" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.62789989;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 312.78041,226.18348 c 1.3429,-1.47763 2.19766,-3.56956 2.19766,-5.9258 0,-2.36118 -0.84984,-4.48703 -2.19766,-5.96505"
id="path4498-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc"
transform="matrix(0.92823291,-0.48059851,0.48059851,0.92823291,-312.89954,806.76727)" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 309.34375,224.125 0,-7.375 -3.78125,2.07812 -3.4375,-0.10937 0,3.46875 3.4375,-0.125 z"
id="path4500-4"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc"
transform="matrix(0.92823291,-0.48059851,0.48059851,0.92823291,-312.89954,806.76727)" />
<g
id="g1373"
style="stroke:#e6e6e6">
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
transform="translate(-224.73743,661.76263)"
d="m 292.21188,220.62782 c 0,4.10051 -3.32411,7.42462 -7.42462,7.42462 -4.1005,0 -7.42462,-3.32411 -7.42462,-7.42462 0,-4.1005 3.32412,-7.42462 7.42462,-7.42462 4.10051,0 7.42462,3.32412 7.42462,7.42462 z"
sodipodi:ry="7.4246211"
sodipodi:rx="7.4246211"
sodipodi:cy="220.62782"
sodipodi:cx="284.78726"
id="path4515-2"
style="fill:none;stroke:#e6e6e6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
sodipodi:type="arc" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
sodipodi:nodetypes="csc"
inkscape:connector-curvature="0"
id="path4517-8"
d="m 53.15626,883.15627 c 1.94168,0.712 4.31843,1.1563 6.90625,1.1563 2.58782,0 4.96457,-0.4443 6.90625,-1.1563"
style="fill:none;stroke:#e6e6e6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 2;stroke-dashoffset:0;display:inline" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#e6e6e6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 2;stroke-dashoffset:0;display:inline"
d="m 60.45665,888.82867 c 0.71191,-1.9416 1.15625,-4.3184 1.15625,-6.9062 0,-2.5878 -0.44434,-4.9646 -1.15625,-6.9063"
id="path4528-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc" />
</g>
<text
xml:space="preserve"
style="font-size:3.72799897px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#e6e6e6;fill-opacity:1;stroke:none;display:inline;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
x="51.803352"
y="859.21899"
id="text4532-2"
sodipodi:linespacing="100%"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><tspan
sodipodi:role="line"
id="tspan4534-8"
x="51.803352"
y="859.21899"
style="font-weight:bold;fill:#e6e6e6;-inkscape-font-specification:Liberation Sans Bold">Lorem Ip</tspan></text>
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:#e6e6e6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 2;stroke-dashoffset:0;display:inline"
d="m 52.25001,862.61227 15.25,0"
id="path4536-8"
inkscape:connector-curvature="0"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
inkscape:connector-curvature="0"
id="path4538-8"
d="m 52.25001,864.86227 15.25,0"
style="fill:#e6e6e6;fill-opacity:1;stroke:#e6e6e6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 2;stroke-dashoffset:0;display:inline"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:#e6e6e6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 2;stroke-dashoffset:0;display:inline"
d="m 52.25001,867.11227 15.25,0"
id="path4540-6"
inkscape:connector-curvature="0"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.82322329;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
d="m 242.49116,907.21887 5.125,-5.125 -5.125,-5.0937"
id="rect4544-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
sodipodi:nodetypes="ccc"
inkscape:connector-curvature="0"
id="path4549-8"
d="m 237.98183,907.21887 -5.125,-5.125 5.125,-5.0937"
style="fill:none;stroke:#e6e6e6;stroke-width:0.82322329;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
transform="matrix(0.92307692,0.3846154,-0.3846154,0.92307692,5.144234,833.96249)"
d="m 98.48214,-19.375 6.43972,2.66742 2.66742,6.439723 -2.66742,6.4397218 -6.439721,2.6674201 -6.439722,-2.6674204 -2.66742,-6.4397225 2.667421,-6.439722 z"
inkscape:randomized="0"
inkscape:rounded="0"
inkscape:flatsided="true"
sodipodi:arg2="-1.1780972"
sodipodi:arg1="-1.5707963"
sodipodi:r2="8.4139032"
sodipodi:r1="9.1071424"
sodipodi:cy="-10.267858"
sodipodi:cx="98.48214"
sodipodi:sides="8"
id="path4802"
style="fill:#e6e6e6;fill-opacity:1;stroke:#e6e6e6"
sodipodi:type="star" />
<path
sodipodi:type="star"
style="fill:none;stroke:#333333;stroke-width:2.47171569;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path4804"
sodipodi:sides="8"
sodipodi:cx="98.48214"
sodipodi:cy="-10.267858"
sodipodi:r1="9.1071424"
sodipodi:r2="8.4139032"
sodipodi:arg1="-1.5707963"
sodipodi:arg2="-1.1780972"
inkscape:flatsided="true"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 98.48214,-19.375 6.43972,2.66742 2.66742,6.439723 -2.66742,6.4397218 -6.439721,2.6674201 -6.439722,-2.6674204 -2.66742,-6.4397225 2.667421,-6.439722 z"
transform="matrix(0.74691191,0.31121331,-0.31121331,0.74691191,23.247023,839.38239)" />
<path
sodipodi:nodetypes="ccc"
inkscape:connector-curvature="0"
id="rect4806"
d="m 53.26552,1056.9525 -5.5,6.2008 5.5,6.2009"
style="fill:none;stroke:#e6e6e6;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
transform="translate(49.48448,-140.79121)" />
<path
sodipodi:nodetypes="ccc"
inkscape:connector-curvature="0"
style="fill:none;stroke:#e6e6e6;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m 67.781143,1069.3407 5.46875,-6.2009 -5.46875,-6.1736"
id="path4812"
transform="translate(49.48448,-140.79121)" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;display:inline"
id="path4257"
d="m 115.39024,855.00555 c 0.0904,0.0266 0.18708,0.0371 0.27111,0.0797 0.24682,0.12501 0.80382,0.53514 1.00046,0.67918 0.72548,0.53142 1.43751,1.08068 2.14837,1.63134 1.22364,0.99003 2.36274,2.09287 3.41202,3.2665 0.43117,0.4822 1.01205,1.207 1.42675,1.7166 0.97898,1.2314 2.022,2.4234 2.86791,3.7533 0.20576,0.2994 0.39551,0.6797 0.65579,0.9028 -0.10862,-0.1107 -0.10877,-0.099 0.0344,-0.01 0.19118,0.1291 -1.63528,2.8328 -1.82646,2.7036 l 0,0 c -0.18814,-0.022 -0.0511,0 -0.37755,-0.1793 -0.55628,-0.365 -1.09599,-0.7525 -1.61517,-1.1691 -1.27322,-1.0021 -2.36476,-2.2048 -3.47982,-3.3749 -1.53016,-1.5621 -3.0115,-3.1717 -4.57958,-4.6966 -0.94249,-1.01074 -1.92636,-2.0326 -2.54392,-3.28422 -0.14292,-0.18424 2.46273,-2.20539 2.60565,-2.02115 z"
inkscape:connector-curvature="0"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;display:inline"
id="path4259"
d="m 112.109,867.43007 c 0.0548,-0.091 0.10266,-0.1866 0.16432,-0.2731 0.23235,-0.3261 0.52565,-0.6137 0.79275,-0.9102 0.42229,-0.4689 0.38553,-0.4337 0.82852,-0.9537 1.44214,-1.6363 3.06836,-3.0981 4.69856,-4.5425 1.63203,-1.40989 3.17698,-2.9167 4.78859,-4.3486 0.46305,-0.4369 0.97793,-0.80137 1.52221,-1.12653 0.15824,-0.21119 3.14491,2.0267 2.98666,2.23789 l 0,0 c -0.2952,0.52243 -0.62275,1.02042 -1.01852,1.47475 -0.88192,1.11919 -1.78212,2.22369 -2.79371,3.23049 -0.29346,0.2921 -0.60222,0.5684 -0.90606,0.8497 -0.31321,0.2899 -0.63003,0.5759 -0.94504,0.8639 -1.67153,1.4209 -3.37366,2.8163 -5.22715,3.9963 -0.49876,0.3405 -0.57121,0.3777 -1.0203,0.7266 -0.39341,0.3057 -0.75974,0.6889 -1.26518,0.7962 -0.14292,0.1842 -2.74857,-1.8369 -2.60565,-2.0212 z"
inkscape:connector-curvature="0"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
inkscape:connector-curvature="0"
d="m 135.39024,855.00555 c 0.0904,0.027 0.18708,0.037 0.27111,0.08 0.24682,0.125 0.80382,0.5352 1.00046,0.6792 0.72548,0.5314 1.43751,1.0807 2.14837,1.6314 1.22364,0.99 2.36274,2.0928 3.41202,3.26652 0.43117,0.4822 1.01205,1.207 1.42675,1.7166 0.97898,1.2314 2.022,2.4234 2.86791,3.7533 0.20576,0.2994 0.39551,0.6797 0.65579,0.9028 -0.10862,-0.1107 -0.10877,-0.099 0.0344,-0.01 0.19118,0.1291 -1.63528,2.8328 -1.82646,2.7036 l 0,0 c -0.18814,-0.022 -0.0511,0 -0.37755,-0.1793 -0.55628,-0.365 -1.09599,-0.7525 -1.61517,-1.1691 -1.27322,-1.0021 -2.36476,-2.2048 -3.47982,-3.3749 -1.53016,-1.5621 -3.0115,-3.1717 -4.57958,-4.6966 -0.94249,-1.01082 -1.92636,-2.03262 -2.54392,-3.28432 -0.14292,-0.1842 2.46273,-2.2054 2.60565,-2.0211 z"
id="path4263"
style="fill:#808080;fill-opacity:1;stroke:none;display:inline"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
inkscape:connector-curvature="0"
d="m 132.109,867.43017 c 0.0548,-0.091 0.10266,-0.1866 0.16432,-0.2731 0.23235,-0.3261 0.52565,-0.6137 0.79275,-0.9102 0.42229,-0.4689 0.38553,-0.4337 0.82852,-0.9537 1.44214,-1.6363 3.06836,-3.0981 4.69856,-4.5425 1.63203,-1.40992 3.17698,-2.91672 4.78859,-4.34862 0.46305,-0.4369 0.97793,-0.8014 1.52221,-1.1266 0.15824,-0.2112 3.14491,2.0267 2.98666,2.2379 l 0,0 c -0.2952,0.5224 -0.62275,1.0204 -1.01852,1.4748 -0.88192,1.11922 -1.78212,2.22372 -2.79371,3.23052 -0.29346,0.2921 -0.60222,0.5684 -0.90606,0.8497 -0.31321,0.2899 -0.63003,0.5759 -0.94504,0.8639 -1.67153,1.4209 -3.37366,2.8163 -5.22715,3.9963 -0.49876,0.3405 -0.57121,0.3777 -1.0203,0.7266 -0.39341,0.3057 -0.75974,0.6889 -1.26518,0.7962 -0.14292,0.1842 -2.74857,-1.8369 -2.60565,-2.0212 z"
id="path4265"
style="fill:#808080;fill-opacity:1;stroke:none;display:inline"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.66930836;stroke-miterlimit:4;stroke-dasharray:none"
d="m -44.467884,1107.2152 0,17.7252 1.161165,3.7983 c 1.200046,4.2782 1.065706,4.1105 2.322331,0 l 1.161165,-3.7983 0,-17.7252 z"
id="path4269"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,294.0656)" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.66930836;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m -44.467884,1124.9404 4.644661,0"
id="path4271"
inkscape:connector-curvature="0"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,294.0656)" />
<path
inkscape:connector-curvature="0"
id="path4275"
d="m -42.239747,1107.2336 0,17.6813"
style="fill:none;stroke:#e6e6e6;stroke-width:0.66930836;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,294.0656)" />
<path
style="fill:#e6e6e6;stroke:#e6e6e6;stroke-width:0.66930836;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="m -43.348187,1128.4959 c 1.108441,-0.8952 1.929509,-0.3581 2.381097,0.045 -0.328428,1.1191 -1.190549,3.9391 -1.190549,3.9391 z"
id="path4279"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,294.0656)" />
<rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#e6e6e6"
id="rect4281"
width="5.1800866"
height="1.8614606"
x="-44.73621"
y="1105.3309"
rx="0.37616169"
ry="0.42804927"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,294.0656)" />
<rect
style="fill:#333333;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="rect4290"
width="3.5355339"
height="1.8561553"
x="174.89275"
y="859.06403"
rx="1"
ry="1"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
d="m 214.75589,862.65317 c 3.31942,-0.632 4.06019,-2.1721 5.3033,-4.08897 0.42304,-0.6524 -0.64726,-2.63586 0,-3.13491 0.10703,-0.0825 0.93192,0 1.06066,0 2.52315,0 1.41421,3.50161 1.41421,4.77048 0,0.2317 -0.47723,0.6815 -0.17677,0.6815 2.44972,0 2.94209,0.3603 4.41942,1.4993 0.0697,0.054 0.31741,3.8443 0.17677,3.9527 -0.26074,0.201 -0.49042,0.5145 -0.7071,0.6815 -0.13627,0.105 0.38563,0.7684 0.17677,1.0904 -0.17664,0.2724 -0.85358,0.8061 -1.23743,0.9541 -0.36233,0.1398 -0.89015,0 -1.23744,0.1363 -1.96875,0.759 -2.1166,-0.9523 -3.18198,-1.363 -0.34866,-0.1344 -0.63592,-0.1088 -1.06066,-0.2726 -0.99671,-0.3842 -3.88909,0.6704 -3.88909,-0.2726 0,-1.2852 -0.2556,-3.5996 -1.06066,-4.6342 z"
id="path4292"
inkscape:connector-curvature="0"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
inkscape:connector-curvature="0"
id="path4294"
d="m 205.42921,862.12677 c -3.31942,0.632 -4.06019,2.1721 -5.3033,4.089 -0.42304,0.6524 0.64726,2.6358 0,3.1349 -0.10703,0.082 -0.93192,0 -1.06066,0 -2.52315,0 -1.41421,-3.5016 -1.41421,-4.7705 0,-0.2317 0.47723,-0.6815 0.17677,-0.6815 -2.44972,0 -2.94209,-0.3603 -4.41942,-1.4993 -0.0697,-0.054 -0.31741,-3.84428 -0.17677,-3.95268 0.26074,-0.201 0.49042,-0.5145 0.7071,-0.6815 0.13627,-0.105 -0.38563,-0.7684 -0.17677,-1.0904 0.17664,-0.2724 0.85358,-0.8061 1.23743,-0.9541 0.36233,-0.1398 0.89015,0 1.23744,-0.1363 1.96875,-0.759 2.1166,0.9523 3.18198,1.363 0.34866,0.1344 0.63592,0.1088 1.06066,0.2726 0.99671,0.3842 3.88909,-0.6704 3.88909,0.2726 0,1.2852 0.2556,3.59958 1.06066,4.63418 z"
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<g
id="g4683"
style="stroke:#808080">
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
sodipodi:type="arc"
style="fill:none;stroke:#808080;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path4298"
sodipodi:cx="284.78726"
sodipodi:cy="220.62782"
sodipodi:rx="7.4246211"
sodipodi:ry="7.4246211"
d="m 292.21188,220.62782 a 7.4246211,7.4246211 0 1 1 -14.84924,0 7.4246211,7.4246211 0 1 1 14.84924,0 z"
transform="translate(-204.73743,661.76269)" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#808080;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 2;stroke-dashoffset:0;display:inline"
d="m 73.15626,883.15627 c 1.94168,0.712 4.31843,1.1563 6.90625,1.1563 2.58782,0 4.96457,-0.4443 6.90625,-1.1563"
id="path4300"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csc" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
sodipodi:nodetypes="csc"
inkscape:connector-curvature="0"
id="path4302"
d="m 80.45665,888.82867 c 0.71191,-1.9416 1.15625,-4.3184 1.15625,-6.9062 0,-2.5878 -0.44434,-4.9646 -1.15625,-6.9063"
style="fill:none;stroke:#808080;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 2;stroke-dashoffset:0;display:inline" />
</g>
<g
id="g277"
style="stroke:#e6e6e6">
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
sodipodi:type="arc"
style="fill:none;stroke:#e6e6e6;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path4306"
sodipodi:cx="284.78726"
sodipodi:cy="220.62782"
sodipodi:rx="7.4246211"
sodipodi:ry="7.4246211"
d="m 292.21188,220.62782 c 0,4.10051 -3.32411,7.42462 -7.42462,7.42462 -4.1005,0 -7.42462,-3.32411 -7.42462,-7.42462 0,-4.1005 3.32412,-7.42462 7.42462,-7.42462 4.10051,0 7.42462,3.32412 7.42462,7.42462 z"
transform="translate(-184.73743,661.76263)" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:connector-curvature="0"
id="path4308"
d="m 94.285536,887.89997 11.048544,-11.0485"
style="fill:none;stroke:#e6e6e6;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
</g>
<rect
style="fill:#e6e6e6;stroke:none;display:inline"
id="rect4310"
width="3.3587573"
height="12.020815"
x="115.93771"
y="876.12292"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
y="876.12292"
x="120.53392"
height="12.020815"
width="3.3587573"
id="rect4312"
style="fill:#e6e6e6;stroke:none;display:inline"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:#e6e6e6;stroke:none;display:inline"
d="m 134.32248,876.12297 11.31371,6.0104 -11.31371,6.0104 z"
id="rect4314"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
sodipodi:nodetypes="ccccccc"
inkscape:connector-curvature="0"
id="path4319"
d="m -44.467884,1107.2152 0,17.7252 1.161165,3.7983 c 1.200046,4.2782 1.065706,4.1105 2.322331,0 l 1.161165,-3.7983 0,-17.7252 z"
style="fill:none;stroke:#999999;stroke-width:0.66930836;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,313.68781)" />
<path
inkscape:connector-curvature="0"
id="path4321"
d="m -44.467884,1124.9404 4.644661,0"
style="fill:none;stroke:#999999;stroke-width:0.66930836;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,313.68781)" />
<path
style="fill:none;stroke:#999999;stroke-width:0.66930836;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m -42.239747,1107.2336 0,17.6813"
id="path4323"
inkscape:connector-curvature="0"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,313.68781)" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path4325"
d="m -43.348187,1128.4959 c 1.108441,-0.8952 1.929509,-0.3581 2.381097,0.045 -0.328428,1.1191 -1.190549,3.9391 -1.190549,3.9391 z"
style="fill:#999999;stroke:#999999;stroke-width:0.66930836;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,313.68781)" />
<rect
ry="0.42804927"
rx="0.37616169"
y="1105.3309"
x="-44.73621"
height="1.8614606"
width="5.1800866"
id="rect4327"
style="fill:#999999;fill-opacity:1;stroke:#999999"
transform="matrix(0.52823691,0.52823691,-0.52823691,0.52823691,773.22931,313.68781)" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.66930836;stroke-miterlimit:4;stroke-dasharray:none"
d="m -44.467884,1107.2152 0,17.7252 1.161165,3.7983 c 1.200046,4.2782 1.065706,4.1105 2.322331,0 l 1.161165,-3.7983 0,-17.7252 z"
id="path4331"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc"
transform="matrix(0.24508333,0.24508333,-0.24508333,0.24508333,461.00011,612.37085)" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.66930836;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m -44.467884,1124.9404 4.644661,0"
id="path4333"
inkscape:connector-curvature="0"
transform="matrix(0.24508333,0.24508333,-0.24508333,0.24508333,461.00011,612.37085)" />
<path
inkscape:connector-curvature="0"
id="path4335"
d="m -42.239747,1107.2336 0,17.6813"
style="fill:none;stroke:#e6e6e6;stroke-width:0.66930836;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
transform="matrix(0.24508333,0.24508333,-0.24508333,0.24508333,461.00011,612.37085)" />
<path
style="fill:#e6e6e6;stroke:#e6e6e6;stroke-width:0.66930836;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
d="m -43.348187,1128.4959 c 1.108441,-0.8952 1.929509,-0.3581 2.381097,0.045 -0.328428,1.1191 -1.190549,3.9391 -1.190549,3.9391 z"
id="path4337"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc"
transform="matrix(0.24508333,0.24508333,-0.24508333,0.24508333,461.00011,612.37085)" />
<rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#e6e6e6"
id="rect4339"
width="5.1800866"
height="1.8614606"
x="-44.73621"
y="1105.3309"
rx="0.37616169"
ry="0.42804927"
transform="matrix(0.24508333,0.24508333,-0.24508333,0.24508333,461.00011,612.37085)" />
<path
inkscape:connector-curvature="0"
d="m 264.62704,45.67985 56.31152,-101.021534 0.2677,36.946034 118.51291,-0.267671 c 21.1765,-2.244605 39.74272,-10.852596 53.18801,-27.040291 C 449.99593,42.074998 437.6363,104.18491 348.60347,104.22236 l -27.39721,0 -0.2677,41.05114 -56.31152,-99.59365 z M 128.9798,105.11479 C 65.618201,85.84639 36.055796,7.7860213 7.07577,-47.220709 c 13.282679,12.076484 38.139773,29.363022 52.577167,29.364467 27.689982,0.06456 55.380063,0.116317 83.070083,0.174562 l 83.88712,0 -0.26776,122.43949 -0.26771,0.35698 -97.09487,0 z M 2.5,-79.206629 42.995596,-161.8012 3.5060915,-183.49253 l 118.3343785,0 57.2039,103.877161 -38.79429,-23.228801 c -12.44295,26.27544 -24.88589,52.550878 -37.32884,78.826316 C 88.601045,-24.268303 74.280847,-24.518751 59.960649,-24.769199 32.037317,-31.279427 12.61125,-53.254123 2.5,-79.206629 z m 395.45406,53.939396 -52.29561,-96.380927 105.66215,-63.98618 51.13531,102.449252 c 1.54832,24.517706 -38.03694,58.635841 -62.6066,58.370427 l -41.89525,-0.452572 z M 88.64259,-250.78088 l 53.98405,-80.90589 c 52.35957,-19.50079 82.68955,22.59846 101.8318,49.13587 l -50.86768,97.63029 -104.94817,-65.86027 z m 204.54178,43.54987 c -10.85783,-25.59753 -25.36515,-54.87764 -43.50654,-80.336 -16.24176,-22.7925 -35.86597,-42.67852 -50.7326,-51.5631 l 136.53974,-0.26767 c 24.52088,2.20137 36.43539,16.49668 49.43976,36.05358 l 19.63307,34.53651 30.34224,-19.3654 -57.11457,101.73554 -123.15347,0.26768 38.55237,-21.06114 z"
style="fill:#ececec;fill-opacity:1"
id="path11522"
transform="matrix(0.03334717,0,0,0.03334717,191.57984,885.59897)" />
<path
style="fill:none;stroke:#e6e6e6;display:inline"
d="m 219.92452,876.86347 1.33532,1.5307 -5.05101,4.4063 4.00584,4.592 5.05101,-4.4063 1.29423,1.4837 1.19091,-7.757 z"
id="rect4425"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#e6e6e6;display:inline"
id="rect4564-9"
width="10.935946"
height="7.925663"
x="71.833412"
y="900.66992"
rx="1.9019035"
ry="2.3056474"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
style="fill:none;stroke:#e6e6e6;stroke-width:0.69802254;display:inline"
id="rect4566-9"
width="7.7661061"
height="7.5413885"
x="73.447395"
y="896.3468"
rx="1.9019035"
ry="2.3056474"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
ry="2.3056474"
rx="1.9019035"
y="900.66992"
x="92.208412"
height="7.925663"
width="10.935946"
id="rect4506"
style="fill:#e6e6e6;fill-opacity:1;stroke:#e6e6e6;display:inline"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.69802254;display:inline"
d="m 108.78126,899.75007 0,-1.0938 c 0,-1.2773 -0.8526,-2.3124 -1.90625,-2.3124 l -3.96875,0 c -1.05366,0 -1.90625,1.0351 -1.90625,2.3124 l 0,2.9376"
id="rect4508"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssssc"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<g
id="g1060">
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
ry="2.9268293"
rx="2.9268293"
y="892.60608"
x="150.24391"
height="19.512196"
width="19.512196"
id="rect4514"
style="fill:#1a1a1a;stroke:none;display:inline" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:#eeeeec;fill-opacity:1;stroke:none;display:inline"
id="rect4518"
width="10.935946"
height="7.925663"
x="151.83342"
y="900.66992"
rx="1.9019035"
ry="2.3056474" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#eeeeec;stroke-width:0.69802254;display:inline"
id="rect4520"
width="7.7661061"
height="7.5413885"
x="153.4474"
y="896.3468"
rx="1.9019035"
ry="2.3056474" />
</g>
<g
id="g1065">
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:#1a1a1a;stroke:none;display:inline"
id="rect4516"
width="19.512196"
height="19.512196"
x="170.24391"
y="892.60608"
rx="2.9268293"
ry="2.9268293" />
<rect
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
ry="2.3056474"
rx="1.9019035"
y="900.66992"
x="172.20842"
height="7.925663"
width="10.935946"
id="rect4522"
style="fill:#eeeeec;fill-opacity:1;stroke:none;display:inline" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
style="fill:none;stroke:#eeeeec;stroke-width:0.69802254;display:inline"
d="m 188.78127,899.75007 0,-1.0938 c 0,-1.2773 -0.85259,-2.3124 -1.90625,-2.3124 l -3.96875,0 c -1.05365,0 -1.90625,1.0351 -1.90625,2.3124 l 0,2.9376"
id="path4524"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cssssc" />
</g>
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
d="m 61.2575,895.73577 c -0.85405,0.9453 -1.14575,2.2161 -0.88721,3.3884 l -8.17918,8.1791 c -0.14244,0.1425 -0.12201,0.3935 0.0507,0.5661 l 2.21807,2.2181 c 0.17268,0.1727 0.42791,0.1974 0.57035,0.055 l 8.13693,-8.1369 c 1.26093,0.3161 2.65155,-0.016 3.63762,-1.0013 0.66189,-0.6619 1.02334,-1.5095 1.09849,-2.3744 l -2.11666,2.1167 -3.2405,-0.8746 -0.87454,-3.2405 2.14201,-2.1419 c -0.88104,0.066 -1.74292,0.4331 -2.41663,1.1068 -0.0467,0.047 -0.0968,0.09 -0.13942,0.1395 z"
id="path4529"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccsssscscccccsc"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:0.80000001;stroke-miterlimit:4;stroke-dasharray:none;display:inline"
d="m 201.14016,895.80807 -8.25003,8.25 -0.94202,3.5156 2.58822,2.5882 3.10935,-0.8332 10.50754,-10.5075 -2e-5,-2.3881 -1.69404,-1.694 -1.94401,0 -9.97205,9.972 3e-5,1.972 0.61101,0.611 1.73597,0 9.36804,-9.368"
id="path3395"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccc"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
style="fill:#e6e6e6;stroke:none;display:inline"
id="rect3397"
width="19.512196"
height="19.512196"
x="210.24391"
y="892.60608"
rx="2.9268293"
ry="2.9268293"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
style="fill:none;stroke:#1a1a1a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
d="m 214.67284,895.14537 c 7.11789,-1.5098 3.04383,2.9586 9.72807,1.6024 0.48786,-0.099 0.94287,0.3982 0.94287,0.8928 0,0 0,6.7482 0,6.9956 0,0.2473 -0.31338,0.7228 -0.94287,0.8928 -6.70194,1.3208 -2.58353,-3.1887 -9.72807,-1.6024 -0.39933,0.17 -0.94286,-0.3982 -0.94286,-0.8928 l 0,-6.9955 c 0,-0.4947 0.45501,-0.776 0.94286,-0.8929 z"
id="rect3409"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscccssc"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<rect
style="fill:none;stroke:#1a1a1a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="rect4190"
width="1.125"
height="16.3125"
x="212.62502"
y="894.73718"
ry="0.40000001"
rx="0.40000001"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
transform="translate(-224.73743,701.76263)"
d="m 292.21188,220.62782 c 0,4.10051 -3.32411,7.42462 -7.42462,7.42462 -4.1005,0 -7.42462,-3.32411 -7.42462,-7.42462 0,-4.1005 3.32412,-7.42462 7.42462,-7.42462 4.10051,0 7.42462,3.32412 7.42462,7.42462 z"
sodipodi:ry="7.4246211"
sodipodi:rx="7.4246211"
sodipodi:cy="220.62782"
sodipodi:cx="284.78726"
id="path4020"
style="fill:none;stroke:#e6e6e6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#ececec;fill-opacity:1;stroke:#e6e6e6;stroke-width:1.62554049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path4022"
sodipodi:cx="284.78726"
sodipodi:cy="220.62782"
sodipodi:rx="7.4246211"
sodipodi:ry="7.4246211"
d="m 292.21188,220.62782 c 0,4.10051 -3.32411,7.42462 -7.42462,7.42462 -4.1005,0 -7.42462,-3.32411 -7.42462,-7.42462 0,-4.1005 3.32412,-7.42462 7.42462,-7.42462 4.10051,0 7.42462,3.32412 7.42462,7.42462 z"
transform="matrix(0.61517998,0,0,0.61517998,-115.14559,786.66463)"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
<path
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/fabio/public_html/f9k-tre/icons2.png"
sodipodi:type="arc"
style="fill:none;stroke:#e6e6e6;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="path4024"
sodipodi:cx="284.78726"
sodipodi:cy="220.62782"
sodipodi:rx="7.4246211"
sodipodi:ry="7.4246211"
d="m 292.21188,220.62782 c 0,4.10051 -3.32411,7.42462 -7.42462,7.42462 -4.1005,0 -7.42462,-3.32411 -7.42462,-7.42462 0,-4.1005 3.32412,-7.42462 7.42462,-7.42462 4.10051,0 7.42462,3.32412 7.42462,7.42462 z"
transform="translate(-204.73743,701.76269)" />
<rect
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect3141"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,955.6356)" />
<text
xml:space="preserve"
style="font-size:17.09149551px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#f2f2f2;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans Bold"
x="5.6234956"
y="979.64215"
id="text3151"
sodipodi:linespacing="100%"><tspan
sodipodi:role="line"
id="tspan3153"
x="5.6234956"
y="979.64215">?</tspan></text>
<text
sodipodi:linespacing="100%"
id="text3155"
y="979.64215"
x="27.623495"
style="font-size:17.09149551px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#d3d7cf;fill-opacity:1;stroke:none;font-family:FreeSans;-inkscape-font-specification:FreeSans Bold"
xml:space="preserve"><tspan
y="979.64215"
x="27.623495"
id="tspan3157"
sodipodi:role="line">?</tspan></text>
<path
sodipodi:type="star"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#e6e6e6;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path4061"
sodipodi:sides="5"
sodipodi:cx="133.6317"
sodipodi:cy="61.950726"
sodipodi:r1="8.4750214"
sodipodi:r2="4.2375107"
sodipodi:arg1="0.97074611"
sodipodi:arg2="1.5990646"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 138.41741,68.945222 -4.90548,-2.758679 -5.05353,2.47708 1.10779,-5.517867 -3.91747,-4.040728 5.59012,-0.651551 2.6324,-4.974387 2.34711,5.115187 5.54438,0.966388 -4.13954,3.812909 z"
transform="matrix(0.86880929,0,0,0.9052037,23.373259,866.40571)"
inkscape:transform-center-x="-0.064310184"
inkscape:transform-center-y="-0.6685783" />
<path
inkscape:transform-center-y="-0.6685783"
inkscape:transform-center-x="-0.064310184"
transform="matrix(0.86880929,0,0,0.9052037,43.373259,866.40571)"
d="m 138.41741,68.945222 -4.90548,-2.758679 -5.05353,2.47708 1.10779,-5.517867 -3.91747,-4.040728 5.59012,-0.651551 2.6324,-4.974387 2.34711,5.115187 5.54438,0.966388 -4.13954,3.812909 z"
inkscape:randomized="0"
inkscape:rounded="0"
inkscape:flatsided="false"
sodipodi:arg2="1.5990646"
sodipodi:arg1="0.97074611"
sodipodi:r2="4.2375107"
sodipodi:r1="8.4750214"
sodipodi:cy="61.950726"
sodipodi:cx="133.6317"
sodipodi:sides="5"
id="path4063"
style="fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:#e6e6e6;stroke-width:1.19979274;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="star" />
<path
transform="matrix(0.83907455,0,0,0.82021694,132.45839,876.4664)"
inkscape:connector-curvature="0"
id="path4152"
d="m 53.921057,63.979016 -5.615027,-6.233401 9.206725,-9.241692 5.744016,0.08696 -0.101757,6.527264 z"
style="fill:#1a1a1a;fill-opacity:1"
sodipodi:nodetypes="cccccc" />
<path
id="path4166"
transform="matrix(0.83907455,0,0,0.82021694,136.85379,871.82606)"
style="fill:#e6e6e6;fill-opacity:1"
d="m 54.67642,55.699012 2.077304,-0.01567 -0.06764,2.127228 -2.053363,0.03612 z m 3.043854,-0.97892 -5.97358,0.0021 -8.473421,8.656992 5.643707,5.967988 8.731922,-8.826384 z m 1.047484,5.977035 -9.907739,10.059911 -6.759792,-7.448518 9.288198,-9.605297 7.396851,-0.01484 z m -13.590285,2.754701 5.185415,-5.323903 3.948418,3.90828 -5.336087,5.379274 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccccccccc" />
<rect
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,1022.6356)"
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect214"
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)" />
<rect
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect216"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-135.41936,1022.6356)" />
<rect
transform="matrix(0.43114968,0,0,0.43114968,-135.41936,999.6356)"
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect218"
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)" />
<rect
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect224"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-135.41936,933.6356)" />
<rect
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect220"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-135.41936,977.6356)" />
<path
sodipodi:type="arc"
style="fill:none;stroke:#f2f2f2;stroke-width:0.55552751;stroke-miterlimit:4;stroke-dasharray:none"
id="path231"
sodipodi:cx="56.797413"
sodipodi:cy="143.46553"
sodipodi:rx="5.5219707"
sodipodi:ry="5.2590199"
d="m 51.275442,143.46553 a 5.5219707,5.2590199 0 0 1 11.043942,0 l -5.521971,0 z"
transform="matrix(1.2380952,0,0,1.675,-15.523193,759.33575)"
sodipodi:start="3.1415927"
sodipodi:end="6.2831853" />
<path
sodipodi:end="6.2831853"
sodipodi:start="3.1415927"
transform="matrix(0.4523809,0,0,0.775,29.234821,888.45473)"
d="m 51.275442,143.46553 a 5.5219707,5.2590199 0 0 1 11.043942,0 l -5.521971,0 z"
sodipodi:ry="5.2590199"
sodipodi:rx="5.5219707"
sodipodi:cy="143.46553"
sodipodi:cx="56.797413"
id="path1003"
style="fill:none;stroke:#f2f2f2;stroke-width:0.55552751;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:type="arc" />
<path
sodipodi:end="6.2831853"
sodipodi:start="3.1415927"
transform="matrix(1.2380952,0,0,1.675,6.476807,759.33575)"
d="m 51.275442,143.46553 a 5.5219707,5.2590199 0 0 1 11.043942,0 l -5.521971,0 z"
sodipodi:ry="5.2590199"
sodipodi:rx="5.5219707"
sodipodi:cy="143.46553"
sodipodi:cx="56.797413"
id="path1026"
style="fill:none;stroke:#f2f2f2;stroke-width:0.55552751;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:none;stroke:#f2f2f2;stroke-width:0.55552751;stroke-miterlimit:4;stroke-dasharray:none"
id="path1028"
sodipodi:cx="56.797413"
sodipodi:cy="143.46553"
sodipodi:rx="5.5219707"
sodipodi:ry="5.2590199"
d="m 51.275442,143.46553 a 5.5219707,5.2590199 0 0 1 11.043942,0 l -5.521971,0 z"
transform="matrix(0.4523809,0,0,0.775,51.234821,888.45473)"
sodipodi:start="3.1415927"
sodipodi:end="6.2831853" />
<rect
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,977.6356)"
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect210"
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)" />
<path
id="path1037"
transform="matrix(0.83752627,0,0,0.92659378,3.4546476,870.69518)"
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:none;stroke:#f2f2f2;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Verdana;-inkscape-font-specification:Verdana"
d="m 14.756588,131.15925 0,9.60545 -11.6032194,-0.0118 0,-9.58225 -2.73319221,0.79047 8.57645441,-3.98976 8.4702832,3.97497 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
d="m 14.756588,131.15925 0,9.60545 -11.6032194,-0.0118 0,-9.58225 -2.73319221,0.79047 8.57645441,-3.98976 8.4702832,3.97497 z"
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:none;stroke:#f2f2f2;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Verdana;-inkscape-font-specification:Verdana"
transform="matrix(0.83752627,0,0,0.92659378,25.454648,870.69518)"
id="path4158" />
<rect
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)"
id="rect212"
width="44.285713"
height="44.285713"
x="470.35715"
y="18.790752"
rx="6"
ry="6"
transform="matrix(0.43114968,0,0,0.43114968,-179.41936,999.6356)" />
<path
style="fill:none;stroke:#f2f2f2;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m 4.1190936,170.87651 1.316683,1.26576 1.7540206,0.003 5.5819788,-5.57043 3.523532,0.006 2.853557,-2.81689 0.0014,-1.68321 -1.169094,-1.16909 -2.365502,2.3822 -2.63185,-0.005 0.09078,-2.55314 2.365531,-2.36552 -1.277858,-1.27786 -1.648714,0.0359 -2.8505569,2.8535 0.00598,3.45613 -5.5530909,5.58201 z"
id="path4206"
inkscape:connector-curvature="0"
transform="matrix(0.90433934,-0.00156352,-0.00156352,0.90433934,0.70503743,868.45488)"
sodipodi:nodetypes="cccccccccccccccccc" />
<path
sodipodi:nodetypes="cccccccccccccccccc"
transform="matrix(0.90433934,-0.00156352,-0.00156352,0.90433934,22.705037,868.45488)"
inkscape:connector-curvature="0"
id="path4208"
d="m 4.1190936,170.87651 1.316683,1.26576 1.7540206,0.003 5.5819788,-5.57043 3.523532,0.006 2.853557,-2.81689 0.0014,-1.68321 -1.169094,-1.16909 -2.365502,2.3822 -2.63185,-0.005 0.09078,-2.55314 2.365531,-2.36552 -1.277858,-1.27786 -1.648714,0.0359 -2.8505569,2.8535 0.00598,3.45613 -5.5530909,5.58201 z"
style="fill:none;stroke:#f2f2f2;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path4218"
sodipodi:cx="5.2590199"
sodipodi:cy="194.45924"
sodipodi:rx="2.0660436"
sodipodi:ry="1.5964882"
d="m 7.3250635,194.45924 a 2.0660436,1.5964882 0 1 1 -4.1320873,0 2.0660436,1.5964882 0 1 1 4.1320873,0 z"
transform="matrix(0.93050058,0,0,0.90640134,0.75846434,870.02825)" />
<use
x="0"
y="0"
xlink:href="#path4218"
id="use4224"
transform="translate(5.3024129,-11.783217)"
width="250"
height="200" />
<use
x="0"
y="0"
xlink:href="#use4224"
id="use4226"
transform="translate(5.2368951,11.783217)"
width="250"
height="200" />
<path
transform="matrix(0.93050058,0,0,0.90640134,6.0478791,864.58985)"
d="m 7.3250635,194.45924 a 2.0660436,1.5964882 0 1 1 -4.1320873,0 2.0660436,1.5964882 0 1 1 4.1320873,0 z"
sodipodi:ry="1.5964882"
sodipodi:rx="2.0660436"
sodipodi:cy="194.45924"
sodipodi:cx="5.2590199"
id="path4228"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" />
<path
sodipodi:nodetypes="cc"
style="fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m 10.902837,183.0346 0,3.66687"
id="path4230"
inkscape:connector-curvature="0"
transform="matrix(0.93050058,0,0,0.90640134,0.75846434,870.02825)" />
<path
style="fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m 9.2894123,189.68386 -2.3956906,3.56909"
id="path4232"
inkscape:connector-curvature="0"
transform="matrix(0.93050058,0,0,0.90640134,0.75846434,870.02825)"
sodipodi:nodetypes="cc" />
<path
style="fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m 12.46737,189.68386 2.493472,3.5202"
id="path4234"
inkscape:connector-curvature="0"
transform="matrix(0.93050058,0,0,0.90640134,0.75846434,870.02825)"
sodipodi:nodetypes="cc" />
<path
style="fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m 12.467368,182.74125 4.009116,9.925"
id="path4236"
inkscape:connector-curvature="0"
transform="matrix(0.93050058,0,0,0.90640134,0.75846434,870.02825)"
sodipodi:nodetypes="cc" />
<path
style="fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m 9.4849789,182.83904 -4.2046813,9.87611"
id="path4238"
inkscape:connector-curvature="0"
transform="matrix(0.93050058,0,0,0.90640134,0.75846434,870.02825)"
sodipodi:nodetypes="cc" />
<path
style="fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m 7.4315299,194.71969 7.0403961,0"
id="path4240"
inkscape:connector-curvature="0"
transform="matrix(0.93050058,0,0,0.90640134,0.75846434,870.02825)"
sodipodi:nodetypes="cc" />
<path
transform="matrix(0.93050058,0,0,0.90640134,22.758464,870.02825)"
d="m 7.3250635,194.45924 a 2.0660436,1.5964882 0 1 1 -4.1320873,0 2.0660436,1.5964882 0 1 1 4.1320873,0 z"
sodipodi:ry="1.5964882"
sodipodi:rx="2.0660436"
sodipodi:cy="194.45924"
sodipodi:cx="5.2590199"
id="path4282"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" />
<use
style="fill:#1a1a1a"
height="200"
width="250"
transform="translate(5.3024129,-11.783217)"
id="use4284"
xlink:href="#path4282"
y="0"
x="0" />
<use
style="fill:#1a1a1a"
height="200"
width="250"
transform="translate(5.2368951,11.783217)"
id="use4286"
xlink:href="#use4284"
y="0"
x="0" />
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path4288"
sodipodi:cx="5.2590199"
sodipodi:cy="194.45924"
sodipodi:rx="2.0660436"
sodipodi:ry="1.5964882"
d="m 7.3250635,194.45924 a 2.0660436,1.5964882 0 1 1 -4.1320873,0 2.0660436,1.5964882 0 1 1 4.1320873,0 z"
transform="matrix(0.93050058,0,0,0.90640134,28.047879,864.58985)" />
<path
transform="matrix(0.93050058,0,0,0.90640134,22.758464,870.02825)"
inkscape:connector-curvature="0"
id="path4290"
d="m 10.902837,183.0346 0,3.66687"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.93050058,0,0,0.90640134,22.758464,870.02825)"
inkscape:connector-curvature="0"
id="path4293"
d="m 9.2894123,189.68386 -2.3956906,3.56909"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.93050058,0,0,0.90640134,22.758464,870.02825)"
inkscape:connector-curvature="0"
id="path4295"
d="m 12.46737,189.68386 2.493472,3.5202"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.93050058,0,0,0.90640134,22.758464,870.02825)"
inkscape:connector-curvature="0"
id="path4297"
d="m 12.467368,182.74125 4.009116,9.925"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.93050058,0,0,0.90640134,22.758464,870.02825)"
inkscape:connector-curvature="0"
id="path4299"
d="m 9.4849789,182.83904 -4.2046813,9.87611"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.93050058,0,0,0.90640134,22.758464,870.02825)"
inkscape:connector-curvature="0"
id="path4301"
d="m 7.4315299,194.71969 7.0403961,0"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#f2f2f2;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
inkscape:connector-curvature="0"
transform="matrix(0.95268982,0,0,1.0934812,2.5939281,843.09296)"
style="fill:none;stroke:#f2f2f2;stroke-width:0.80000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
d="m 47.594131,94.030746 14.462306,0 0,10.255094 -14.462306,0 z"
id="rect4303" />
<path
style="fill:none;stroke:#f2f2f2;stroke-width:0.80000001;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
d="m 47.666782,94.03851 7.145333,5.307564 7.035032,-5.261579 z"
id="path4305"
inkscape:connector-curvature="0"
transform="matrix(0.95268982,0,0,1.0934812,2.5939281,843.09296)"
sodipodi:nodetypes="cccc" />
<path
id="path4315"
d="m 47.594131,94.030746 14.462306,0 0,10.255094 -14.462306,0 z"
style="fill:none;stroke:#f2f2f2;stroke-width:0.80000001;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
transform="matrix(0.95268982,0,0,1.0934812,24.593928,843.09296)"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccc"
transform="matrix(0.95268982,0,0,1.0934812,24.593928,843.09296)"
inkscape:connector-curvature="0"
id="path4317"
d="m 47.666782,94.03851 7.145333,5.307564 7.035032,-5.261579 z"
style="fill:none;stroke:#f2f2f2;stroke-width:0.80000001;stroke-linecap:square;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<rect
transform="matrix(0.43114968,0,0,0.43114968,-135.41936,955.6356)"
ry="6"
rx="6"
y="18.790752"
x="470.35715"
height="44.285713"
width="44.285713"
id="rect222"
style="fill:#2e2f2e;fill-opacity:1;stroke:#e6e6e6;stroke-width:2.0535686;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter4064)" />
<text
xml:space="preserve"
style="font-size:17px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana Bold"
x="49.504551"
y="129.16422"
id="text247"
transform="translate(5.2683173,850.36218)"><tspan
sodipodi:role="line"
id="tspan249"
x="49.504551"
y="129.16422"
style="font-weight:bold;-inkscape-font-specification:Verdana Bold">!</tspan></text>
<use
x="0"
y="0"
xlink:href="#text247"
id="use251"
transform="translate(22.268317,0)"
width="250"
height="200" />
<path
sodipodi:type="star"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#1a1a1a;stroke-width:0.80864763;stroke-miterlimit:4;stroke-dasharray:none"
id="path252"
sodipodi:sides="3"
sodipodi:cx="195.63554"
sodipodi:cy="63.26548"
sodipodi:r1="7.7793064"
sodipodi:r2="15.558613"
sodipodi:arg1="2.1025204"
sodipodi:arg2="3.1497179"
inkscape:flatsided="true"
inkscape:rounded="0.2"
inkscape:randomized="0"
d="m 191.69128,69.97073 c -2.32277,-1.366333 -2.23518,-12.1453 0.10948,-13.473709 2.34466,-1.328408 11.63573,4.136926 11.61383,6.831668 -0.0219,2.694741 -9.40054,8.008375 -11.72331,6.642041 z"
transform="matrix(1.043244,0,0,0.93815683,-5.0151639,863.01152)"
inkscape:transform-center-x="-4.0006141"
inkscape:transform-center-y="-0.059313251" />
<path
inkscape:transform-center-y="0.059308319"
inkscape:transform-center-x="4.0006111"
transform="matrix(-1.043244,0,0,-0.93815683,425.4058,981.67309)"
d="m 191.69128,69.97073 c -2.32277,-1.366333 -2.23518,-12.1453 0.10948,-13.473709 2.34466,-1.328408 11.63573,4.136926 11.61383,6.831668 -0.0219,2.694741 -9.40054,8.008375 -11.72331,6.642041 z"
inkscape:randomized="0"
inkscape:rounded="0.2"
inkscape:flatsided="true"
sodipodi:arg2="3.1497179"
sodipodi:arg1="2.1025204"
sodipodi:r2="15.558613"
sodipodi:r1="7.7793064"
sodipodi:cy="63.26548"
sodipodi:cx="195.63554"
sodipodi:sides="3"
id="path254"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:#e6e6e6;stroke-width:0.80864763;stroke-miterlimit:4;stroke-dasharray:none"
sodipodi:type="star" />
<g
id="g1070"
transform="matrix(1.1035285,0,0,1.1035285,-14.308807,-95.610044)">
<path
sodipodi:nodetypes="cscsc"
inkscape:connector-curvature="0"
id="path262"
d="m 148.82687,49.85498 c 0,0 -3.94234,5.723921 -8.80546,5.723921 -4.86313,0 -8.80547,-5.723921 -8.80547,-5.723921 0,0 3.94234,-5.72392 8.80547,-5.72392 4.86312,0 8.80546,5.72392 8.80546,5.72392 z"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#1a1a1a;stroke-width:0.94912058;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
transform="matrix(0.79496097,0,0,0.9062729,26.90439,859.01012)" />
<path
transform="matrix(0.89659499,0,0,0.89659499,12.90165,857.69139)"
d="m 144.56282,51.877872 c 0,2.665109 -2.1605,4.825606 -4.82561,4.825606 -2.66511,0 -4.8256,-2.160497 -4.8256,-4.825606 0,-2.665108 2.16049,-4.825605 4.8256,-4.825605 2.66511,0 4.82561,2.160497 4.82561,4.825605 z"
sodipodi:ry="4.8256054"
sodipodi:rx="4.8256054"
sodipodi:cy="51.877872"
sodipodi:cx="139.73721"
id="path1033"
style="fill:#e6e6e6;fill-opacity:1;fill-rule:nonzero;stroke:#1a1a1a;stroke-width:0.86699998;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#1a1a1a;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path1035"
sodipodi:cx="139.73721"
sodipodi:cy="51.877872"
sodipodi:rx="4.8256054"
sodipodi:ry="4.8256054"
d="m 144.56282,51.877872 c 0,2.665109 -2.1605,4.825606 -4.82561,4.825606 -2.66511,0 -4.8256,-2.160497 -4.8256,-4.825606 0,-2.665108 2.16049,-4.825605 4.8256,-4.825605 2.66511,0 4.82561,2.160497 4.82561,4.825605 z"
transform="matrix(0.37382862,0,0,0.37382862,85.950326,884.7403)" />
</g>
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
d="m 51.71875,158.125 0,7.65625 10.1875,0 0,-7.65625 z"
style="fill:none"
transform="translate(1,852.36218)"
id="path293" />
<path
id="path278"
transform="translate(1,852.36218)"
style="fill:#e6e6e6"
d="m 51.71875,158.125 0,7.65625 10.1875,0 0,-7.65625 z m 0.53125,0.625 9.03125,0 -0.03125,6.4375 -9,0 z m 0.71875,0.65625 0,5.03125 4.4375,0 -0.0625,-5.03125 z m 0.59375,0.625 3.25,0 0,2.5625 -0.8125,0 0,-1.9375 -1.727964,0 0,1.9375 -0.709536,0 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccccccccccc" />
<path
id="path4660"
transform="translate(-5,858.36218)"
style="fill:#1a1a1a;fill-opacity:1"
d="m 51.71875,158.125 0,7.65625 10.1875,0 0,-7.65625 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:nodetypes="cccccccccccccccccccccccc"
inkscape:connector-curvature="0"
d="m 51.71875,158.125 0,7.65625 10.1875,0 0,-7.65625 z m 0.53125,0.625 9.03125,0 -0.03125,6.4375 -9,0 z m 0.71875,0.65625 0,5.03125 4.4375,0 -0.0625,-5.03125 z m 0.59375,0.625 3.25,0 0,2.5625 -0.8125,0 0,-1.9375 -1.727964,0 0,1.9375 -0.709536,0 z"
style="fill:#e6e6e6"
transform="translate(-5,858.36218)"
id="path4662" />
<path
id="path333"
transform="translate(23,852.36218)"
style="fill:none"
d="m 51.71875,158.125 0,7.65625 10.1875,0 0,-7.65625 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:nodetypes="cccccccccccccccccccccccc"
inkscape:connector-curvature="0"
d="m 51.71875,158.125 0,7.65625 10.1875,0 0,-7.65625 z m 0.53125,0.625 9.03125,0 -0.03125,6.4375 -9,0 z m 0.71875,0.65625 0,5.03125 4.4375,0 -0.0625,-5.03125 z m 0.59375,0.625 3.25,0 0,2.5625 -0.8125,0 0,-1.9375 -1.727964,0 0,1.9375 -0.709536,0 z"
style="fill:#e6e6e6"
transform="translate(23,852.36218)"
id="path335" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
d="m 51.71875,158.125 0,7.65625 10.1875,0 0,-7.65625 z"
style="fill:#333333"
transform="translate(17,858.36218)"
id="path3865" />
<path
id="path3867"
transform="translate(17,858.36218)"
style="fill:#e6e6e6"
d="m 51.71875,158.125 0,7.65625 10.1875,0 0,-7.65625 z m 0.53125,0.625 9.03125,0 -0.03125,6.4375 -9,0 z m 0.71875,0.65625 0,5.03125 4.4375,0 -0.0625,-5.03125 z m 0.59375,0.625 3.25,0 0,2.5625 -0.8125,0 0,-1.9375 -1.727964,0 0,1.9375 -0.709536,0 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccccccccccc" />
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
id="path274"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
transform="matrix(1.2829201,1.9081591,-1.9081591,1.2829201,-621.38007,-53.76762)" />
<path
transform="matrix(0.96219008,1.4311194,-1.4311194,0.96219008,-446.0191,223.61485)"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path276"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
id="path279"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
transform="matrix(1.0080086,1.4992679,-1.4992679,1.0080086,-475.75938,173.44683)" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 563.21055,31.653543 4.41942,-6.187185 -7.6014,-6.187184"
id="path281"
inkscape:connector-curvature="0"
transform="matrix(0.45818575,0.68148541,-0.68148541,0.45818575,-187.51596,643.71067)" />
<path
transform="matrix(1.0996458,1.635565,-1.635565,1.0996458,-531.09792,102.68758)"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path283"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 567.45319,25.466358 7.6014,-4.065864"
id="path285"
inkscape:connector-curvature="0"
transform="matrix(0.45818575,0.68148541,-0.68148541,0.45818575,-187.51596,643.71067)" />
<g
transform="translate(-32.726207,8)"
id="use301">
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
id="path3845"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 c 0,0.488156 -0.39573,0.883884 -0.88388,0.883884 -0.48816,0 -0.88389,-0.395728 -0.88389,-0.883884 0,-0.488155 0.39573,-0.883883 0.88389,-0.883883 0.48815,0 0.88388,0.395728 0.88388,0.883883 z"
transform="matrix(1.2829201,1.9081591,-1.9081591,1.2829201,-566.65386,-61.76762)" />
<path
transform="matrix(0.96219008,1.4311194,-1.4311194,0.96219008,-391.29289,215.61485)"
d="m 560.55887,21.754047 c 0,0.488156 -0.39573,0.883884 -0.88388,0.883884 -0.48816,0 -0.88389,-0.395728 -0.88389,-0.883884 0,-0.488155 0.39573,-0.883883 0.88389,-0.883883 0.48815,0 0.88388,0.395728 0.88388,0.883883 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path3847"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
id="path3849"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 c 0,0.488156 -0.39573,0.883884 -0.88388,0.883884 -0.48816,0 -0.88389,-0.395728 -0.88389,-0.883884 0,-0.488155 0.39573,-0.883883 0.88389,-0.883883 0.48815,0 0.88388,0.395728 0.88388,0.883883 z"
transform="matrix(1.0080086,1.4992679,-1.4992679,1.0080086,-421.03317,165.44683)" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 563.21055,31.653543 4.41942,-6.187185 -7.6014,-6.187184"
id="path3851"
inkscape:connector-curvature="0"
transform="matrix(0.45818575,0.68148541,-0.68148541,0.45818575,-132.78975,635.71067)" />
<path
transform="matrix(1.0996458,1.635565,-1.635565,1.0996458,-476.37171,94.687576)"
d="m 560.55887,21.754047 c 0,0.488156 -0.39573,0.883884 -0.88388,0.883884 -0.48816,0 -0.88389,-0.395728 -0.88389,-0.883884 0,-0.488155 0.39573,-0.883883 0.88389,-0.883883 0.48815,0 0.88388,0.395728 0.88388,0.883883 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path3853"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 567.45319,25.466358 7.6014,-4.065864"
id="path3855"
inkscape:connector-curvature="0"
transform="matrix(0.45818575,0.68148541,-0.68148541,0.45818575,-132.78975,635.71067)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 117 KiB

View file

@ -0,0 +1,326 @@
<script type="text/javascript">
var editor = false;
var textlen = 0;
var plaintext = '$editselect';
function initEditor(cb) {
if (editor==false) {
$("#profile-jot-text-loading").show();
if(plaintext == 'none') {
$("#profile-jot-text-loading").hide();
$("#profile-jot-text").css({ 'height': 200, 'color': '#000' });
editor = true;
$("a#jot-perms-icon").fancybox({
'transitionIn' : 'elastic',
'transitionOut' : 'elastic'
});
$(".jothidden").show();
if (typeof cb!="undefined") cb();
return;
}
tinyMCE.init({
theme : "advanced",
mode : "specific_textareas",
editor_selector: $editselect,
auto_focus: "profile-jot-text",
plugins : "bbcode,paste,fullscreen,autoresize",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code,fullscreen",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_blockformats : "blockquote,code",
paste_text_sticky : true,
entity_encoding : "raw",
add_unload_trigger : false,
remove_linebreaks : false,
force_p_newlines : false,
force_br_newlines : true,
forced_root_block : '',
convert_urls: false,
content_css: "$baseurl/view/custom_tinymce.css",
theme_advanced_path : false,
setup : function(ed) {
cPopup = null;
ed.onKeyDown.add(function(ed,e) {
if(cPopup !== null)
cPopup.onkey(e);
});
ed.onKeyUp.add(function(ed, e) {
var txt = tinyMCE.activeEditor.getContent();
match = txt.match(/@([^ \n]+)$/);
if(match!==null) {
if(cPopup === null) {
cPopup = new ACPopup(this,baseurl+"/acl");
}
if(cPopup.ready && match[1]!==cPopup.searchText) cPopup.search(match[1]);
if(! cPopup.ready) cPopup = null;
}
else {
if(cPopup !== null) { cPopup.close(); cPopup = null; }
}
textlen = txt.length;
if(textlen != 0 && $('#jot-perms-icon').is('.unlock')) {
$('#profile-jot-desc').html(ispublic);
}
else {
$('#profile-jot-desc').html('&#160;');
}
//Character count
if(textlen <= 140) {
$('#character-counter').removeClass('red');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('grey');
}
if((textlen > 140) && (textlen <= 420)) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('red');
$('#character-counter').addClass('orange');
}
if(textlen > 420) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('red');
}
$('#character-counter').text(textlen);
});
ed.onInit.add(function(ed) {
ed.pasteAsPlainText = true;
$("#profile-jot-text-loading").hide();
$(".jothidden").show();
if (typeof cb!="undefined") cb();
});
}
});
editor = true;
// setup acl popup
$("a#jot-perms-icon").fancybox({
'transitionIn' : 'elastic',
'transitionOut' : 'elastic'
});
} else {
if (typeof cb!="undefined") cb();
}
}
function enableOnUser(){
if (editor) return;
$(this).val("");
initEditor();
}
</script>
<script type="text/javascript" src="$baseurl/js/ajaxupload.js"></script>
<script type="text/javascript">
var ispublic = '$ispublic';
var addtitle = '$addtitle';
$(document).ready(function() {
/* enable tinymce on focus and click */
$("#profile-jot-text").focus(enableOnUser);
$("#profile-jot-text").click(enableOnUser);
/* enable character counter */
$("#profile-jot-text").focus(charCounter);
$("#profile-jot-text").click(charCounter);
var uploader = new window.AjaxUpload(
'wall-image-upload',
{ action: 'wall_upload/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
addeditortext(response);
$('#profile-rotator').hide();
}
}
);
var file_uploader = new window.AjaxUpload(
'wall-file-upload',
{ action: 'wall_attach/$nickname',
name: 'userfile',
onSubmit: function(file,ext) { $('#profile-rotator').show(); },
onComplete: function(file,response) {
addeditortext(response);
$('#profile-rotator').hide();
}
}
);
});
function deleteCheckedItems() {
var checkedstr = '';
$('.item-select').each( function() {
if($(this).is(':checked')) {
if(checkedstr.length != 0) {
checkedstr = checkedstr + ',' + $(this).val();
}
else {
checkedstr = $(this).val();
}
}
});
$.post('item', { dropitems: checkedstr }, function(data) {
window.location.reload();
});
}
function jotGetLink() {
reply = prompt("$linkurl");
if(reply && reply.length) {
reply = bin2hex(reply);
$('#profile-rotator').show();
$.get('parse_url?binurl=' + reply, function(data) {
addeditortext(data);
$('#profile-rotator').hide();
});
}
}
function jotVideoURL() {
reply = prompt("$vidurl");
if(reply && reply.length) {
addeditortext('[video]' + reply + '[/video]');
}
}
function jotAudioURL() {
reply = prompt("$audurl");
if(reply && reply.length) {
addeditortext('[audio]' + reply + '[/audio]');
}
}
function jotGetLocation() {
reply = prompt("$whereareu", $('#jot-location').val());
if(reply && reply.length) {
$('#jot-location').val(reply);
}
}
function jotShare(id) {
if ($('#jot-popup').length != 0) $('#jot-popup').show();
$('#like-rotator-' + id).show();
$.get('share/' + id, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
$('#like-rotator-' + id).hide();
$(window).scrollTop(0);
});
});
}
function linkdropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
if(linkFound)
event.preventDefault();
}
function linkdrop(event) {
var reply = event.dataTransfer.getData("text/uri-list");
event.target.textContent = reply;
event.preventDefault();
if(reply && reply.length) {
reply = bin2hex(reply);
$('#profile-rotator').show();
$.get('parse_url?binurl=' + reply, function(data) {
if (!editor) $("#profile-jot-text").val("");
initEditor(function(){
addeditortext(data);
$('#profile-rotator').hide();
});
});
}
}
function itemTag(id) {
reply = prompt("$term");
if(reply && reply.length) {
reply = reply.replace('#','');
if(reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('tagger/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
}
}
}
function itemFiler(id) {
reply = prompt("$fileas");
if(reply && reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('filer/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
}
}
function jotClearLocation() {
$('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide();
}
function addeditortext(data) {
if(plaintext == 'none') {
var currentText = $("#profile-jot-text").val();
$("#profile-jot-text").val(currentText + data);
}
else
tinyMCE.execCommand('mceInsertRawHTML',false,data);
}
$geotag
function charCounter() {
// character count part deux
//$(this).val().length is not a function Line 282(3)
$('#profile-jot-text').keyup(function() {
var textlen = 0;
var maxLen1 = 140;
var maxLen2 = 420;
$('#character-counter').removeClass('jothidden');
textLen = $(this).val().length;
if(textLen <= maxLen1) {
$('#character-counter').removeClass('red');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('grey');
}
if((textLen > maxLen1) && (textlen <= maxLen2)) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('red');
$('#character-counter').addClass('orange');
}
if(textLen > maxLen2) {
$('#character-counter').removeClass('grey');
$('#character-counter').removeClass('orange');
$('#character-counter').addClass('red');
}
$('#character-counter').text( textLen );
});
$('#profile-jot-text').keyup();
}
</script>

View file

@ -0,0 +1,72 @@
<form id="profile-jot-form" action="$action" method="post">
<div id="jot">
<div id="profile-jot-desc" class="jothidden">&#160;</div>
<input name="title" id="jot-title" type="text" placeholder="$placeholdertitle" value="$title" class="jothidden" style="display:none" />
<div id="character-counter" class="grey jothidden"></div>
<input type="hidden" name="type" value="$ptyp" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="return" value="$return_path" />
<input type="hidden" name="location" id="jot-location" value="$defloc" />
<input type="hidden" name="coord" id="jot-coord" value="" />
<input type="hidden" name="post_id" value="$post_id" />
<input type="hidden" name="preview" id="jot-preview" value="0" />
<textarea rows="5" cols="64" class="profile-jot-text" id="profile-jot-text" name="body">{{ if $content }}$content{{ else }}$share{{ endif }}
</textarea>
<div id="jot-tools" class="jothidden" style="display:none">
<div id="profile-jot-submit-wrapper" class="jothidden">
<div id="profile-upload-wrapper" style="display: $visitor;">
<div id="wall-image-upload-div"><a class="icon border camera" href="#" onclick="return false;" id="wall-image-upload" title="$upload"></a></div>
</div>
<div id="profile-attach-wrapper" style="display: $visitor;">
<div id="wall-file-upload-div"><a class="icon border attach" href="#" onclick="return false;" id="wall-file-upload" title="$attach"></a></div>
</div>
<div id="profile-link-wrapper" style="display: $visitor;" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);">
<a class="icon border link" id="profile-link" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;" title="$weblink"></a>
</div>
<div id="profile-video-wrapper" style="display: $visitor;">
<a class="icon border video" id="profile-video" onclick="jotVideoURL();return false;" title="$video"></a>
</div>
<div id="profile-audio-wrapper" style="display: $visitor;">
<a class="icon border audio" id="profile-audio" onclick="jotAudioURL();return false;" title="$audio"></a>
</div>
<div id="profile-location-wrapper" style="display: $visitor;">
<a class="icon border globe" id="profile-location" onclick="jotGetLocation();return false;" title="$setloc"></a>
</div>
<div id="profile-nolocation-wrapper" style="display: none;">
<a class="icon border noglobe" id="profile-nolocation" onclick="jotClearLocation();return false;" title="$noloc"></a>
</div>
<div id="profile-jot-plugin-wrapper">
$jotplugins
</div>
<a class="icon-text-preview pointer"></a><a id="jot-preview-link" class="pointer" onclick="preview_post(); return false;" title="$preview">$preview</a>
<input type="submit" id="profile-jot-submit" name="submit" value="$share" />
<div id="profile-jot-perms" class="profile-jot-perms">
<a id="jot-perms-icon" href="#profile-jot-acl-wrapper" class="icon $lockstate $bang" title="$permset"></a>
</div>
<span id="profile-rotator" class="loading" style="display: none"><img src="images/rotator.gif" alt="$wait" title="$wait" /></span>
</div>
</div> <!-- /#profile-jot-submit-wrapper -->
</div> <!-- /#jot-tools -->
<div id="jot-preview-content" style="display:none;"></div>
<div style="display: none;">
<div id="profile-jot-acl-wrapper" style="width:auto;height:auto;overflow:auto;">
$acl
<hr style="clear:both" />
<div id="profile-jot-email-label">$emailcc</div>
<input type="text" name="emailcc" id="profile-jot-email" title="$emtitle" />
<div id="profile-jot-email-end"></div>
$jotnets
</div>
</div>
</form>
{{ if $content }}<script>initEditor();</script>{{ endif }}

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

View file

@ -0,0 +1,5 @@
<h3>$messages</h3>
<div class="tabs-wrapper">
$tab_content
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

View file

@ -0,0 +1,125 @@
<nav>
<span id="banner">$banner</span>
<!-- yes, they're going the other way. seems that's how the template renderer
works -->
<div id="nav-floater">
<div id="nav-buttons">
{{ if $nav.help }}
<a id="nav-help-link" class="nav-link $nav.help.2" href="$nav.help.0" title="$nav.help.1">$nav.help.1</a>
{{ endif }}
{{ if $nav.community }}
<a id="nav-community-link" class="nav-link $nav.community.2"
href="$nav.community.0" title="$nav.community.1">$nav.community.1</a>
{{ endif }}
{{ if $nav.apps }}
<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.1">$nav.apps.1</a>
{{ endif }}
<a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.1">$nav.directory.1</a>
<a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.1">$nav.search.1</a>
{{ if $nav.messages }}
<a id="nav-messages-link" class="nav-link $nav.messages.2"
href="$nav.messages.0" title="$nav.messages.1">$nav.messages.1</a>
{{ endif }}
{{ if $nav.notifications }}
<a id="nav-notifications-linkmenu" class="nav-link $nav.notifications.2" href="$nav.notifications.0" rel="#nav-notifications-menu" title="$nav.notifications.1">$nav.notifications.1</a>
<ul id="nav-notifications-menu" class="menu-popup">
<li id="nav-notifications-see-all"><a href="$nav.notifications.all.0">$nav.notifications.all.1</a></li>
<li id="nav-notifications-mark-all"><a href="#" onclick="notifyMarkAll(); return false;">$nav.notifications.mark.1</a></li>
<li class="empty">$emptynotifications</li>
</ul>
{{ endif }}
{{ if $nav.network }}
<a id="nav-network-link" class="nav-link $nav.network.2"
href="$nav.network.0" title="$nav.network.1">$nav.network.1</a>
{{ endif }}
{{ if $nav.home }}
<a id="nav-home-link" class="nav-link $nav.home.2"
href="$nav.home.0" title="$nav.home.1">$nav.home.1</a>
{{ endif }}
{{ if $nav.login }}
<a id="nav-login-link" class="nav-login-link $nav.login.2"
href="$nav.login.0" title="$nav.login.3" >$nav.login.1</a>
{{ endif }}
</div>
<div id="user-menu">
<a id="user-menu-label" onclick="openClose('user-menu-popup'); return false" href="$nav.home.0">$sitelocation</a>
<ul id="user-menu-popup"
onmouseover="if (typeof tmenu != 'undefined') clearTimeout(tmenu); openMenu('user-menu-popup')"
onmouseout="tmenu=setTimeout('closeMenu(\'user-menu-popup\');',200)">
{{ if $nav.register }}
<li>
<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.1"></a>
</li>
{{ endif }}
{{ if $nav.contacts }}
<li><a id="nav-contacts-link" class="nav-commlink $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.1">$nav.contacts.1</a></li>
{{ endif }}
{{ if $nav.introductions }}
<li><a id="nav-intro-link" class="nav-commlink $nav.introductions.2 $sel.introductions" href="$nav.introductions.0" title="$nav.introductions.3" >$nav.introductions.1</a></li>
{{ endif }}
{{ if $nav.profiles }}
<li><a id="nav-profiles-link" class="nav-commlink $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.1">$nav.profiles.1</a></li>
{{ endif }}
{{ if $nav.settings }}
<li><a id="nav-settings-link" class="nav-commlink $nav.settings.2" href="$nav.settings.0" title="$nav.settings.1">$nav.settings.1</a></li>
{{ endif }}
{{ if $nav.manage }}
<li><a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.1">$nav.manage.1</a></li>
{{ endif }}
{{ if $nav.admin }}
<li><a id="nav-admin-link" class="nav-commlink $nav.admin.2" href="$nav.admin.0" title="$nav.admin.1">$nav.admin.1</a></li>
{{ endif }}
{{ if $nav.login }}
<li><a id="nav-login-link" class="nav-commlink $nav.login.2" href="$nav.login.0" title="$nav.login.1">$nav.login.1</a></li>
{{ endif }}
{{ if $nav.logout }}
<li><a id="nav-logout-link" class="nav-commlink $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a></li>
{{ endif }}
</ul>
</div>
{{ if $userinfo }}
<ul id="nav-user-menu" class="menu-popup">
{{ for $nav.usermenu as $usermenu }}
<li><a class="$usermenu.2" href="$usermenu.0" title="$usermenu.3">$usermenu.1</a></li>
{{ endfor }}
</ul>
{{ endif }}
<div id="notifications">
{{ if $nav.home }}
<a id="home-update" class="nav-ajax-left" href="$nav.home.0" title="$nav.home.1"></a>
{{ endif }}
{{ if $nav.network }}
<a id="net-update" class="nav-ajax-left" href="$nav.network.0" title="$nav.network.1"></a>
{{ endif }}
{{ if $nav.notifications }}
<a id="notify-update" class="nav-ajax-left" href="$nav.notifications.0" title="$nav.notifications.1"></a>
{{ endif }}
{{ if $nav.messages }}
<a id="mail-update" class="nav-ajax-left" href="$nav.messages.0" title="$nav.messages.1"></a>
{{ endif }}
{{if $nav.introductions }}
<a id="intro-update" class="nav-ajax-left" href="$nav.introductions.0"></a>
{{ endif }}
</div>
</div>
<a href="#" class="floaterflip"></a>
</nav>
<div id="lang-sel-wrap">
$langselector
</div>
<ul id="nav-notifications-template" style="display:none;" rel="template">
<li class="{4}"><a href="{0}"><img src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
</ul>

View file

@ -0,0 +1,10 @@
<div id="nets-sidebar" class="widget">
<h3>$title</h3>
<div id="nets-desc">$desc</div>
<a href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a>
<ul class="nets-ul">
{{ for $nets as $net }}
<li><a href="$base?f=&nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
{{ endfor }}
</ul>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -0,0 +1,273 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg3486"
version="1.1"
inkscape:version="0.48+devel r"
width="148"
height="19"
sodipodi:docname="notifications.svg"
inkscape:export-filename="/var/www3/kisikew.org/portal/pub/fd/view/theme/dispy-dark/notifications.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<metadata
id="metadata3492">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3490" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1041"
inkscape:window-height="643"
id="namedview3488"
showgrid="false"
inkscape:zoom="4.2687885"
inkscape:cx="64.235788"
inkscape:cy="18.27268"
inkscape:window-x="0"
inkscape:window-y="48"
inkscape:window-maximized="0"
inkscape:current-layer="svg3486"
width="0px"
height="0px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<g
id="g4437"
transform="translate(0,-44)">
<path
sodipodi:nodetypes="ccccc"
transform="translate(0,44)"
style="fill:#6c99c9"
d="M 34.398531,19 30.225818,10.411298 47.864407,1.3368391 57.625819,19.010154 z"
id="path3506"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccccccccccccc"
transform="translate(0,44)"
style="fill:#4e7db5"
d="m 45.148088,5.1797115 -9.353484,4.7866764 6.895762,1.5144501 z m -2.0018,7.2466465 -8.105899,-1.97793 3.232895,6.44678 11.074578,-5.648894 -3.366977,-6.4432724 z M 46.4192,3.6690997 50.56253,11.552848 38.044003,18.006578 33.98857,10.057271 z"
id="path3502"
inkscape:connector-curvature="0" />
</g>
<g
id="g4441"
transform="translate(0,-44)">
<path
sodipodi:nodetypes="ccccc"
transform="translate(0,44)"
style="fill:#aa7ca5"
d="M 64.398531,19 60.225818,10.411298 77.725,2.013353 87.084493,18.988196 z"
id="path3504"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="sssssccccc"
transform="translate(-0.88048036,44.641441)"
style="fill:#75507b"
d="m 75,16 c -0.55,0 -1,-0.45 -1,-1 0,-0.55 0.45,-1 1,-1 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 z m -1.441718,-2.172038 c 0,0 -2.448135,-3.9460956 -3.558282,-6.0504682 0,-0.4276216 1.043961,-0.9072067 1.57461,-0.9072067 1.48457,2.2735627 3.276272,6.3043659 3.276272,6.3043659 -0.823179,-0.104873 -0.90154,-0.01483 -1.2926,0.653309 z"
id="path3498"
inkscape:connector-curvature="0" />
</g>
<g
id="g4453"
transform="translate(0,-24)">
<path
sodipodi:nodetypes="ccccc"
transform="translate(0,24)"
style="fill:#f4ac42;fill-opacity:1"
d="M 4.3985314,19 0.19544564,10.348783 18,1.8695178 27,19 z"
id="path3508"
inkscape:connector-curvature="0" />
<g
transform="translate(0,-20)"
id="g4361">
<path
sodipodi:type="arc"
style="fill:#e98007;fill-opacity:1;stroke:none"
id="path274"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
transform="matrix(1.0481621,1.5589904,-1.5589904,1.0481621,-539.42292,-838.01094)" />
<path
transform="matrix(0.78612158,1.1692428,-1.1692428,0.78612158,-396.15077,-611.38593)"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path276"
style="fill:#e98007;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#e98007;fill-opacity:1;stroke:none"
id="path279"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
transform="matrix(0.8235559,1.224921,-1.224921,0.8235559,-420.44896,-652.37384)" />
<path
style="fill:none;stroke:#e98007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 563.21055,31.653543 4.41942,-6.187185 -7.6014,-6.187184"
id="path281"
inkscape:connector-curvature="0"
transform="matrix(0.37434361,0.55678228,-0.55678228,0.37434361,-184.9504,-268.16228)" />
<path
transform="matrix(0.89842466,1.3362775,-1.3362775,0.89842466,-465.66125,-710.18506)"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path283"
style="fill:#e98007;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
style="fill:none;stroke:#e98007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 567.45319,25.466358 7.6014,-4.065864"
id="path285"
inkscape:connector-curvature="0"
transform="matrix(0.37434361,0.55678228,-0.55678228,0.37434361,-184.9504,-268.16228)" />
</g>
</g>
<g
id="g4566"
transform="translate(0,-24)">
<path
sodipodi:nodetypes="ccccc"
transform="translate(0,24)"
style="fill:#6fcb15"
d="M 94.398531,19 90.225818,10.411298 108.5,1.9724323 117,19 z"
id="path3500"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
d="m 14.756588,131.15925 0,9.60545 -11.6032194,-0.0118 0,-9.58225 m -0.039261,-0.0651 5.8825232,-3.13423 5.9219702,3.25106 z"
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:none;stroke:#428107;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Verdana;-inkscape-font-specification:Verdana"
transform="matrix(0.55727141,-0.25996788,0.2876144,0.61653494,59.024831,-44.715085)"
id="path1037" />
</g>
<g
id="g4553"
transform="translate(0,-24)">
<path
inkscape:connector-curvature="0"
id="path4471"
d="M 94.398531,19 90.225818,10.411298 108.5,1.9724323 117,19 z"
style="fill:#fb7b62;fill-opacity:1"
transform="translate(31,24)"
sodipodi:nodetypes="ccccc" />
<path
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
d="m 7.3250635,194.45924 a 2.0660436,1.5964882 0 1 1 -4.1320873,0 2.0660436,1.5964882 0 1 1 4.1320873,0 z"
sodipodi:ry="1.5964882"
sodipodi:rx="2.0660436"
sodipodi:cy="194.45924"
sodipodi:cx="5.2590199"
id="path4218"
style="fill:#c32405;fill-opacity:1;fill-rule:nonzero;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" />
<use
height="200"
width="250"
transform="translate(0.11687856,-8.4237924)"
id="use4224"
xlink:href="#path4218"
y="0"
x="0"
style="fill:#999999;stroke:#666666" />
<use
height="200"
width="250"
transform="translate(6.5982765,5.2049933)"
id="use4226"
xlink:href="#use4224"
y="0"
x="0"
style="fill:#999999;stroke:#c32405;stroke-opacity:1" />
<path
sodipodi:type="arc"
style="fill:#c32405;fill-opacity:1;fill-rule:nonzero;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path4228"
sodipodi:cx="5.2590199"
sodipodi:cy="194.45924"
sodipodi:rx="2.0660436"
sodipodi:ry="1.5964882"
d="m 7.3250635,194.45924 a 2.0660436,1.5964882 0 1 1 -4.1320873,0 2.0660436,1.5964882 0 1 1 4.1320873,0 z"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,81.644877,-64.113316)" />
<path
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4230"
d="m 10.902837,183.0346 0,3.66687"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4232"
d="m 9.2894123,189.68386 -2.3956906,3.56909"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4234"
d="m 12.46737,189.68386 2.493472,3.5202"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4236"
d="m 12.467368,182.74125 4.009116,9.925"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4238"
d="m 9.4849789,182.83904 -4.2046813,9.87611"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4240"
d="m 7.4315299,194.71969 7.0403961,0"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

View file

@ -0,0 +1,37 @@
<div id="live-display"></div>
<h3><a href="$album.0">$album.1</a></h3>
<div id="photo-edit-link-wrap">
{{ if $tools }}
<a id="photo-edit-link" href="$tools.edit.0">$tools.edit.1</a>
|
<a id="photo-toprofile-link" href="$tools.profile.0">$tools.profile.1</a>
{{ endif }}
{{ if $lock }} | <img src="images/lock_icon.gif" class="lockview" alt="$lock" onclick="lockview(event,'photo/$id');" /> {{ endif }}
</div>
{{ if $prevlink }}<div id="photo-prev-link"><a href="$prevlink.0">$prevlink.1</a></div>{{ endif }}
<div id="photo-photo"><a href="$photo.href" title="$photo.title"><img src="$photo.src" /></a></div>
{{ if $nextlink }}<div id="photo-next-link"><a href="$nextlink.0">$nextlink.1</a></div>{{ endif }}
<div id="photo-photo-end"></div>
<div id="photo-caption">$desc</div>
{{ if $tags }}
<div id="in-this-photo-text">$tags.0</div>
<div id="in-this-photo">$tags.1</div>
{{ endif }}
{{ if $tags.2 }}<div id="tag-remove"><a href="$tags.2">$tags.3</a></div>{{ endif }}
{{ if $edit }}$edit{{ endif }}
{{ if $likebuttons }}
<div id="photo-like-div">
$likebuttons
$like
$dislike
</div>
{{ endif }}
$comments
$paginate

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 593 B

View file

@ -0,0 +1,84 @@
<div class="vcard">
{{ if $profile.edit }}
<div class="action">
<span class="icon-profile-edit"></span>
<a href="#" rel="#profiles-menu" class="ttright" id="profiles-menu-trigger" title="$profile.edit.3">$profile.edit.1</a>
<ul id="profiles-menu" class="menu-popup">
{{ for $profile.menu.entries as $e }}
<li>
<a href="profiles/$e.id"><img src='$e.photo'>$e.profile_name</a>
</li>
{{ endfor }}
<li><a href="profile_photo" >$profile.menu.chg_photo</a></li>
<li><a href="profiles/new" id="profile-listing-new-link">$profile.menu.cr_new</a></li>
</ul>
</div>
{{ endif }}
<div class="fn label">$profile.name</div>
{{ if $pdesc }}
<div class="title">$profile.pdesc</div>
{{ endif }}
<div id="profile-photo-wrapper">
<img class="photo" width="175" height="175" src="$profile.photo?rev=$profile.picdate" alt="$profile.name" />
</div>
{{ if $location }}
<div class="location">
<span class="location-label">$location</span>
<div class="adr">
{{ if $profile.address }}
<div class="street-address">$profile.address</div>{{ endif }}
<span class="city-state-zip">
<span class="locality">$profile.locality</span>{{ if $profile.locality }}, {{ endif }}
<span class="region">$profile.region</span>
<span class="postal-code">$profile.postal-code</span>
</span>
{{ if $profile.country-name }}<span class="country-name">$profile.country-name</span>{{ endif }}
</div>
</div>
{{ endif }}
{{ if $gender }}
<div class="mf">
<span class="gender-label">$gender</span>
<span class="x-gender">$profile.gender</span>
</div>
{{ endif }}
{{ if $profile.pubkey }}
<div class="key" style="display:none;">$profile.pubkey</div>
{{ endif }}
{{ if $marital }}
<div class="marital">
<span class="marital-label">
<span class="heart">&hearts;</span>$marital</span>
<span class="marital-text">$profile.marital</span>
</div>
{{ endif }}
{{ if $homepage }}
<div class="homepage">
<span class="homepage-label">$homepage</span>
<span class="homepage-url"><a href="$profile.homepage"
target="external-link">$profile.homepage</a></span>
</div>{{ endif }}
{{ inc diaspora_vcard.tpl }}{{ endinc }}
<div id="profile-extra-links">
<ul>
{{ if $connect }}
<li><a id="dfrn-request-link" href="dfrn_request/$profile.nickname">$connect</a></li>
{{ endif }}
</ul>
</div>
</div>
$contact_block

View file

@ -0,0 +1,14 @@
<div id="saved-search-list" class="widget">
<h3 id="search">$title</h3>
$searchbox
<ul id="saved-search-ul">
{{ for $saved as $search }}
<li class="saved-search-li clear">
<a onmouseout="imgdull(this);" onmouseover="imgbright(this);" onclick="return confirmDelete();" class="icon savedsearchdrop drophide" href="network/?f=&amp;remove=1&amp;search=$search.encodedterm"></a>
<a class="savedsearchterm" href="network/?f=&amp;search=$search.encodedterm">$search.term</a>
</li>
{{ endfor }}
</ul>
<div class="clear"></div>
</div>

View file

@ -0,0 +1,51 @@
<div class="wall-item-outside-wrapper$item.indent" id="wall-item-outside-wrapper-$item.id" >
<div class="wall-item-content-wrapper$item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info" id="wall-item-info-$item.id">
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id"
onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
<span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
<ul>
$item.item_photo_menu
</ul>
</div>
</div>
<div class="wall-item-photo-end"></div>
<div class="wall-item-location" id="wall-item-location-$item.id">{{ if $item.location }}<span class="icon globe"></span>$item.location {{ endif }}</div>
</div>
<div class="wall-item-lock-wrapper">
{{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
{{ else }}<div class="wall-item-lock"></div>{{ endif }}
</div>
<div class="wall-item-tools" id="wall-item-tools-$item.id">
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
{{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
</div>
{{ if $item.drop.dropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
<div class="wall-item-delete-end"></div>
</div>
<div class="wall-item-content" id="wall-item-content-$item.id" >
<div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
<div class="wall-item-title-end"></div>
<div class="wall-item-body" id="wall-item-body-$item.id" >$item.body</div>
</div>
<div class="wall-item-author">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a>
<div class="wall-item-ago" id="wall-item-ago-$item.id">$item.ago</div>
</div>
</div>
<div class="wall-item-wrapper-end"></div>
</div>
<div class="wall-item-outside-wrapper-end$item.indent" ></div>
<div class="wall-item-conv" id="wall-item-conv-$item.id" >
{{ if $item.conv }}
<a href='$item.conv.href' id='context-$item.id' title='$item.conv.title'>$item.conv.title</a>
{{ endif }}
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,2725 @@
/*
* dispy-dark
*
* modernised, sort of, by simon <http://simon.kisikew.org/>
*
*/
/* from html5boilerplate */
/* these are to tell browsers they should be displayed a certain way */
article, aside, details, figcaption, figure, footer,
header, hgroup, nav, section {
display: block;
}
audio, canvas, video, time {
display: inline-block;
*display: inline;
*zoom: 1;
}
audio:not([controls]) {
display: none;
}
[hidden] {
display: none;
}
/*
* Base
*/
/*
* 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units
* 2. Force vertical scrollbar in non-IE
* 3. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g
*/
html {
font-size: 100%;
overflow-y: scroll;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
body {
margin: 0;
font-size: 16px;
line-height: 1.1em;
}
body, button, input, select, textarea {
font-family: sans-serif;
color: #eec;
/*background-color: #2e3436;*/
background-color: #2e2f2e;
}
select {
border: 1px #555 dotted;
padding: 3px;
margin: 2px;
}
option {
padding: 3px;
vertical-align: middle;
}
/* remember to define focus styles! */
:focus {
outline: 0;
}
/* remember to highlight inserts somehow! */
ins {
background-color: #2e302e;
color: #ff9;
text-decoration: none;
}
mark {
background-color: #2e302e;
color: #ff9;
font-style: italic;
font-weight: bold;
}
/* Redeclare monospace font family: h5bp.com/j */
pre, code, kbd, samp, .wall-item-body code {
font-family: monospace, monospace;
_font-family: monospace;
font-size: 1em; }
/* Improve readability of pre-formatted text in all browsers */
pre, .wall-item-body code {
white-space: pre;
white-space: pre-wrap;
word-wrap: break-word;
}
q {
quotes: none;
}
q:before, q:after {
content: "";
content: none;
}
small {
font-size: 85%;
}
/* Position subscript and superscript content without affecting line-height: h5bp.com/k */
sub, sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0 none;
/*vertical-align: middle;*/
}
a {
color: #88a9d2;
text-decoration: none;
margin-bottom: 1px;
}
a:hover img {
text-decoration: none;
}
blockquote {
background: #444;
color: #eec;
text-indent: 5px;
padding: 5px;
border: 1px #aaa solid;
border-radius: 5px;
}
a:hover {
color: #729fcf;
border-bottom: 1px dotted #729fcf;
}
.required {
display: inline;
color: #ff0;
font-size: 16px;
font-weight: bold;
margin: 3px;
}
.fakelink, .lockview {
color: #729fcf;
cursor: pointer;
}
.fakelink:hover {
color: #729fcf;
}
input[type=submit] {
font-weight: bold;
background-color: #eee;
color: #2e302e;
margin-top: 10px;
height: 22px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
border: 0;
}
.smalltext {
font-size: 0.7em;
}
#panel {
position: absolute;
font-size: 0.8em;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
border: 1px solid #fff;
background-color: #2e302e;
color: #eeeeec;
padding: 1em;
}
.pager {
margin-top: 60px;
display: block;
clear: both;
text-align: center;
}
.pager span {
padding: 4px;
margin: 4px;
}
.pager_current {
background-color: #729fcf;
color: #fff;
}
/**
* global
*/
/* .tool .action */
.action {
margin: 5px 0;
}
/**
* login
*/
#login-extra-links a {
margin-right: 20px;
}
/**
* nav
*/
nav {
height: 60px;
display: block;
background-color: #1d1f1d;
color: #eeeeec;
position: relative;
padding: 20px 20px 10px 95px;
margin-left: auto;
margin-right: auto;
}
nav a {
text-decoration: none;
color: #eeeeec;
border: 0px;
}
nav a:hover {
text-decoration: none;
color: #eeeeec;
border: 0px;
}
nav #banner {
display: block;
position: absolute;
left: 51px;
top: 25px;
}
nav #banner #logo-text a {
font-size: 40px;
font-weight: bold;
margin-left: 3px;
}
nav #user-menu {
display: block;
width: auto;
float: right;
margin: 3px 68px 0 0;
position: relative;
background-color: #555753;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
background: #555753 url("menu-user-pin.jpg") 98% center no-repeat;
clear: both;
}
nav #user-menu-label {
float: left;
font-size: 12px;
padding: 3px 20px 9px 5px;
height: 10px;
}
ul#user-menu-popup {
display: none;
position: absolute;
background-color: #555753;
width: 100%;
padding: 10px 0px;
margin: 0px;
top: 20px;
left: 0;
-webkit-border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
z-index: 10000;
}
ul#user-menu-popup li {
display: block;
}
ul#user-menu-popup li a {
display: block;
padding: 5px;
}
ul#user-menu-popup li a:hover {
color: #2e302e;
background-color: #eeeeec;
}
ul#user-menu-popup li a.nav-sep {
border-top: 1px solid #eeeeec;
}
#nav-buttons {
clear: both;
list-style: none;
padding: 0px;
}
#nav-buttons li {
padding: 0;
}
nav .nav-link {
float: right;
display: block;
width: 22px;
height: 22px;
overflow: hidden;
margin: 0px 5px 5px;
text-indent: 50px;
background: transparent url(icons.png) 0 0 no-repeat;
}
#nav-apps-link {
background-position: 0 -66px;
}
#nav-apps-link:hover {
background-position: -22px -66px;
}
#nav-community-link {
background-position: 0 -22px;
}
#nav-community-link:hover {
background-position: -22px -22px;
}
#nav-contacts-link {
background-position: 0 -22px;
}
#nav-contacts-link:hover {
background-position: -22px -22px;
}
#nav-directory-link {
background-position: -44px -154px;
}
#nav-directory-link:hover {
background-position: -66px -154px;
}
#nav-help-link {
background-position: 0 -110px;
}
#nav-help-link:hover {
background-position: -22px -110px;
}
#nav-home-link {
background-position: -44px -132px;
}
#nav-home-link:hover {
background-position: -66px -132px;
}
#nav-intro-link {
background-position: 0px -190px;
}
#nav-intro-link:hover {
background-position: -44px -190px;
}
#nav-login-link {
background-position: 0 -88px;
}
#nav-login-link:hover {
background-position: -22px -88px;
}
#nav-logout-link {
background-position: 0 -88px;
}
#nav-logout-link:hover {
background-position: -22px -88px;
}
#nav-messages-link {
background-position: -44px -88px;
}
#nav-messages-link:hover {
background-position: -66px -88px;
}
#nav-notify-link, #nav-notifications-linkmenu {
background-position: -44px -110px;
}
#nav-notify-link:hover {
background-position: -66px -110px;
}
#nav-network-link {
background-position: 0px -177px;
}
#nav-network-link:hover {
background-position: -22px -177px;
}
#nav-search-link {
background-position: 0 -44px;
}
#nav-search-link:hover {
background-position: -22px -44px;
}
#profile-link,
#profile-title,
#wall-image-upload,
#wall-file-upload,
#profile-attach-wrapper,
#profile-audio,
#profile-link,
#profile-location,
#profile-nolocation,
#profile-title,
#jot-title,
#profile-upload-wrapper,
#profile-video,
#profile-jot-submit,
#wall-image-upload-div,
#wall-file-upload-div,
.icon, .hover, .focus, .pointer {
cursor: pointer;
}
#notifications {
height: 20px;
width: 100%;
position: absolute;
top: -19px;
left: 0;
}
/* popup notifications */
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
padding-left: 58px;
}
div.jGrowl div.info {
background: #364e59 url("../../../images/icons/48/info.png") no-repeat 5px center;
color: #ffffff;
padding-left: 58px;
}
#nav-notifications-menu {
margin: 30px 0 0 -45px;
width: 300px;
max-height: 400px;
overflow: auto;
font-size: 9pt;
}
#nav-notifications-menu .contactname {
font-weight: bold;
font-size: 0.9em;
}
#nav-notifications-menu img {
float: left;
margin-right: 5px;
}
#nav-notifications-menu .notif-when {
font-size: 0.8em;
display: block;
}
#nav-notifications-menu li {
padding: 7px 0px 7px 10px;
word-wrap: normal;
border-bottom: 1px solid #000;
}
#nav-notifications-menu li:hover {
color: black;
}
#nav-notifications-menu a:hover {
color: black;
text-decoration: underline;
}
nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-linkmenu.selected .icon.s22.notify {
background-image: url("../../../images/icons/22/notify_on.png");
}
.show {
display: block;
}
#nav-floater {
position: fixed;
top: 20px;
right: 1%;
padding: 5px;
background: #1d1f1d;
color: transparent;
border-radius: 5px;
z-index: 100;
}
.floaterflip {
display: block;
position: fixed;
z-index: 110;
top: 53px;
right: 19px;
width: 22px;
height: 22px;
overflow: hidden;
margin: 0px;
background: transparent url(icons.png) -190px -60px no-repeat;
}
.nav-ajax-update, .nav-ajax-left {
width: 30px;
height: 19px;
background: transparent url(notifications.png) 0 0 no-repeat;
color: #222;
font-weight: bold;
font-size: 0.8em;
padding-top: 0.2em;
text-align: center;
float: left;
margin: 0 -1px 0 3px;
display: block;
visibility: hidden;
}
.nav-ajax-update.show, .nav-ajax-left.show {
visibility: visible;
}
#net-update {
background-position: 0px 0px;
}
#mail-update {
background-position: -30px 0;
}
#notify-update {
background-position: -60px 0px;
}
#home-update {
background-position: -90px 0px;
}
#intro-update {
background-position: -120px 0px;
}
#lang-select-icon {
cursor: pointer;
position: fixed;
left: 28px;
bottom: 6px;
z-index: 10;
}
#language-selector {
position: fixed;
bottom: 2px;
left: 52px;
z-index: 10;
}
.menu-popup {
position: absolute;
display: none;
width: 11em;
background: #ffffff;
color: #2d2d2d;
margin: 0px;
padding: 0px;
list-style: none;
border: 3px solid #364e59;
z-index: 100000;
-webkit-box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
-moz-box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
}
.menu-popup a {
display: block;
color: #2d2d2d;
padding: 5px 10px;
text-decoration: none;
}
.menu-popup a:hover {
background-color: #bdcdd4;
}
.menu-popup .menu-sep {
border-top: 1px solid #9eabb0;
}
.menu-popup li {
float: none;
overflow: auto;
height: auto;
display: block;
}
.menu-popup li img {
float: left;
width: 16px;
height: 16px;
padding-right: 5px;
}
.menu-popup .empty {
padding: 5px;
text-align: center;
color: #9eabb0;
}
.notif-item {
font-size: small;
}
.notif-item a {
vertical-align: middle;
}
.notif-image {
width: 32px;
height: 32px;
padding: 7px 7px 0px 0px;
}
.notify-seen {
background: #ddd;
}
/** sysmsg **/
#sysmsg_info {
position: fixed;
bottom: 0;
-moz-box-shadow: 3px 3px 3px 10px 0 #000;
-webkit-box-shadow: 3px 3px 10px 0 #000;
box-shadow: 3px 3px 10px 0 #000;
padding: 10px;
background-color: #fcaf3e;
border:2px solid #f8911b;
border-bottom: 0;
padding-bottom: 50px;
z-index: 1000;
}
#sysmsg {
position: fixed;
bottom: 0;
-moz-box-shadow: 3px 3px 10px 0 #000;
-webkit-box-shadow: 3px 3px 10px 0 #000;
box-shadow: 3px 3px 10px 0 #000;
padding: 10px;
background-color: #fcaf3e;
border: 2px solid #f8911b;
border-bottom: 0;
padding-bottom: 50px;
z-index: 1000;
}
#sysmsg_info br,
#sysmsg br {
display: block;
margin: 2px 0px;
border-top: 1px solid #ccccce;
}
/**
* aside
**/
aside {
position: absolute;
right: 15px;
width: 245px;
padding-top: 15px;
font-size: smaller;
}
.vcard .fn {
font-size: 1.7em;
font-weight: bold;
border-bottom: 1px solid #729fcf;
padding-bottom: 3px;
}
.vcard #profile-photo-wrapper {
margin: 20px;
}
/* http://css-tricks.com/snippets/css/css-box-shadow/
* box-shadow:
* 1. The horizontal offset of the shadow, positive means
* the shadow will be on the right of the box, a negative
* offset will put the shadow on the left of the box.
* 2. The vertical offset of the shadow, a negative one
* means the box-shadow will be above the box, a
* positive one means the shadow will be below the box.
* 3. The blur radius (optional), if set to 0 the shadow
* will be sharp, the higher the number, the more blurred
* it will be.
* 4. The spread radius (optional), positive values increase
* the size of the shadow, negative values decrease the size.
* Default is 0 (the shadow is same size as blur).
* 5. Colo[u]r
*/
.vcard #profile-photo-wrapper img {
box-shadow: 3px 3px 10px 0 #000;
}
aside h4 {
font-size: 1.2em;
}
aside #viewcontacts {
text-align: right;
}
.aprofile dt {
background: #eec;
color: #2e2f2e;
font-weight: bold;
box-shadow: 1px 1px 5px 0 #000;
margin: 15px 0 5px;
padding-left: 5px;
}
#profile-extra-links ul {
margin-left: 0px;
padding-left: 0px;
list-style: none;
}
#dfrn-request-link {
background:#3465A4 url(connect.png) no-repeat 95% center;
border-radius:5px 5px 5px 5px;
color:#fff;
display:block;
font-size:1.2em;
padding:.2em .5em;
}
#netsearch-box {
margin: 30px 0px;
}
.ttright {
margin: 0px 0px 0px 0px;
}
/**
* contacts block
*/
.contact-block-div {
width: 50px;
height: 50px;
float: left;
}
.contact-block-textdiv {
width: 150px;
height: 34px;
float: left;
}
#contact-block-end {
clear: both;
}
/**
* jot
**/
#jot {
/*width: 785px;*/
margin: 10px 0 20px 0px;
width: 100%;
}
#jot #jot-tools {
margin: 0px;
padding: 0px;
height: 35px;
overflow: none;
width: 100%;
/*background-color: #0e232e;*/
/*border-bottom: 2px solid #9eabb0;*/
}
#jot #jot-tools span {
float: left;
margin: 10px 20px 2px 0px;
}
#jot #jot-tools span a {
display: block;
}
#jot #jot-tools .perms {
float: right;
width: 40px;
}
#jot #jot-tools li.loading {
float: right;
background-color: #ffffff;
width: 20px;
vertical-align: center;
text-align: center;
border-top: 2px solid #9eabb0;
height: 38px;
}
#jot #jot-tools li.loading img {
margin-top: 10px;
}
#jot #jot-title {
border: 1px solid #ccc;
margin: 0 0 5px;
height: 20px;
width: 90%;
font-weight: bold;
border-radius: 5px;
vertical-align: middle;
}
#jot #character-counter {
width: 6%;
float: right;
text-align: right;
height: 15px;
line-height: 20px;
padding: 2px 20px 5px 0;
}
#profile-jot-text_tbl {
margin-bottom: 10px;
}
#profile-jot-text_ifr {
width:99.900002% !important;
}
[id$="jot-text_ifr"] {
width: 99.900002% !important;
color: #2e2f2e;
background: #eec;
}
[id$="jot-text_ifr"] .mceContentBody {
color: #2e2f2e;
background: #eec;
}
#profile-attach-wrapper,
#profile-audio-wrapper,
#profile-link-wrapper,
#profile-location-wrapper,
#profile-nolocation-wrapper,
#profile-title-wrapper,
#profile-upload-wrapper,
#profile-video-wrapper {
float: left;
margin: 0 20px 0 0;
}
#profile-rotator-wrapper {
float: right;
}
#profile-jot-tools-end,
#profile-jot-banner-end {
clear: both;
}
#profile-jot-email-wrapper {
margin:10px 10% 0;
border:1px solid #555753;
border-bottom:0;
}
#profile-jot-email-label {
background-color:#555753;
color:#ccccce;
padding:5px;
}
#profile-jot-email {
width:90%;
margin:5px;
}
#profile-jot-networks {
margin: 0 10%;
border: 1px solid #555753;
border-top: 0;
border-bottom: 0;
padding: 5px;
}
#profile-jot-net {
margin: 5px 0;
}
#jot-preview-link {
margin: 0 0 0 10px;
border: 0;
text-decoration: none;
float: right;
}
.icon-text-preview {
margin: 0 0 -18px 0;
display: block;
width: 20px;
height: 20px;
background: url(icons.png) no-repeat -128px -40px;
border: 0;
text-decoration: none;
float: right;
cursor: pointer;
}
#profile-jot-perms {
float: right;
background-color: #555753;
height: 22px;
width: 20px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
overflow: hidden;
border: 0px;
margin: 0 10px 0 10px;
}
#profile-jot-plugin-wrapper {
width: 1px;
margin: 10px 0 0 0;
float: right;
}
#profile-jot-submit-wrapper {
float: right;
width: 100%;
list-style: none;
margin: 10px 0 0 0;
padding: 0;
}
#profile-jot-submit {
height: 22px;
background-color: #555753;
color: #eeeeec;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
border: 0;
margin: 0;
float: right;
}
#jot-perms-icon {
height: 22px;
width: 20px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
overflow: hidden;
border: 0;
}
#profile-jot-acl-wrapper {
margin: 0 10px;
border: 1px solid #555753;
border-top: 0;
display: block !important;
}
#group_allow_wrapper,
#group_deny_wrapper,
#acl-permit-outer-wrapper {
width:47%;
float:left;
}
#contact_allow_wrapper,
#contact_deny_wrapper,
#acl-deny-outer-wrapper {
width:47%;
float:right;
}
#acl-permit-text {
background-color: #555753;
color: #ccccce;
padding: 5px;
float: left;
}
#jot-public {
background-color: #555753;
color: #ff0000;
padding: 5px;
float: left;
}
#acl-deny-text {
background-color: #555753;
color: #ccccce;
padding: 5px;
float: left;
}
#acl-permit-text-end,
#acl-deny-text-end {
clear: both;
}
#jot-title-desc {
color: #ccc;
}
#profile-jot-desc {
color: #ff2000;
margin: 5px 0;
}
#jot-title-wrapper {
margin-bottom: 5px;
}
#jot-title-display {
font-weight: bold;
}
.jothidden {
display: none;
}
#jot-preview-content {
background-color: #3e3f3e;
color: #eec;
border: 1px #eec solid;
border-radius: 3px;
padding: 3px 3px 6px 10px;
}
#jot-preview-content .wall-item-outside-wrapper {
border: 0;
border-radius: 0px;
}
/**
* section
*/
section {
margin: 20px 8% 0 4%;
font-size: 0.8em;
padding-right: 230px;
min-width: 475px;
}
/** tabs **/
.tabs {
list-style: none;
margin: 10px 0;
padding: 0;
}
.tabs li {
display: inline;
}
.tab {
border: 1px solid #729fcf;
padding: 4px;
}
.tab:hover {
background: #88a9d2;
color: #2e2f2e;
}
.tab:active {
background: #88a9d2;
color: #2e2f2e;
}
.tab.active {
background: #88a9d2;
color: #2e2f2e;
}
.tab a {
border: 0;
text-decoration: none;
}
/**
* items
*/
.wall-item-outside-wrapper {
border: 1px solid #aaa;
border-radius: 5px;
}
.wall-item-outside-wrapper.comment {
margin-top: 5px;
}
.wall-item-outside-wrapper-end {
clear: both;
}
.wall-item-content-wrapper {
position: relative;
padding: 10px;
width: auto;
}
.wall-item-outside-wrapper .wall-item-comment-wrapper {
/*margin-left: 90px;*/
}
.shiny {
background: #2e3436;
}
.heart {
color: red;
}
.wall-item-content {
overflow-x: auto;
}
/* removing it from here, vs. putting it in .wall-item-content
* might break things for people. we shall see ;) */
[id^="tread-wrapper"], [class^="tread-wrapper"] {
margin: 15px 0 0 0;
padding: 0px;
/*overflow-x: auto;*/
}
.wall-item-photo-menu {
display: none;
}
.wall-item-photo-menu-button {
display:none;
text-indent:-99999px;
background:#555753 url(menu-user-pin.jpg) no-repeat 75px center;
position:absolute;
overflow:hidden;
height:20px;
width:90px;
top:85px;
left:0;
-webkit-border-radius:0 0 5px 5px;
-moz-border-radius:0 0 5px 5px;
border-radius:0 0 5px 5px;
}
.wall-item-info {
float: left;
width: 110px;
}
.wall-item-photo-wrapper {
width: 80px;
height: 80px;
position: relative;
padding: 5px;
background-color: #555753;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
[class^="wall-item-tools"] > *, [class^="wall-item-tools"] > * > * {
margin: 0 0 5px 0;
}
.wall-item-tools {
float: right;
filter: alpha(opacity=35);
opacity: 0.4;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
-ms-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}
.wall-item-tools:hover {
filter: alpha(opacity=100);
opacity: 1;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
-ms-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}
.wall-item-title {
font-size: 1.2em;
font-weight: bold;
margin-bottom: 1em;
}
.wall-item-body {
margin: 10px 10px 10px 0px;
text-align: left;
}
.wall-item-lock-wrapper {
float: right;
}
.wall-item-dislike,
.wall-item-like {
clear: left;
font-size: 0.8em;
color: #878883;
margin: 5px 0 5px 120px;
}
.wall-item-author, .wall-item-actions-author {
clear: left;
font-size: 0.8em;
color: #878883;
margin: 20px 20px 0 110px;
}
.wall-item-ago {
display: inline;
padding-left: 10px;
}
.wall-item-wrapper-end {
clear:both;
}
.wall-item-location {
margin-top: 15px;
width: 100px;
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
.wall-item-location .icon {
float: left;
}
.wall-item-location > a {
margin-left: 25px;
font-size: 0.7em;
display: block;
}
.wall-item-location .smalltext {
margin-left: 25px;
font-size: 0.7em;
display: block;
}
.wall-item-location > br {
display: none;
}
.wallwall .wwto {
left: 5px;
margin: 0;
position: absolute;
top: 75px;
width: 30px;
z-index: 10001;
width: 30px;
height: 30px;
}
.wallwall .wwto img {
width: 30px !important;
height: 30px !important;
}
.wallwall .wall-item-photo-end {
clear: both;
}
.wall-item-arrowphoto-wrapper {
position: absolute;
left: 35px;
top: 80px;
z-index: 10002;
}
.wall-item-photo-menu {
min-width: 92px;
border: 2px solid #FFFFFF;
border-top: 0px;
background: #555753;
position: absolute;
left: -2px; top: 101px;
display: none;
z-index: 10003;
-webkit-border-radius: 0px 5px 5px 5px;
-moz-border-radius: 0px 5px 5px 5px;
border-radius: 0px 5px 5px 5px;
}
.wall-item-photo-menu ul {
margin:0px;
padding: 0px;
list-style: none;
}
.wall-item-photo-menu li a {
white-space: nowrap;
display: block;
padding: 5px 2px;
color: #eeeeec;
}
.wall-item-photo-menu li a:hover {
color: #555753;
background: #eeeeec;
}
#item-delete-selected {
overflow: auto;
width: 100%;
}
/**
* comment
*/
.ccollapse-wrapper {
font-size: 0.9em;
margin-left: 80px;
}
.wall-item-outside-wrapper.comment {
margin-left: 80px;
}
.wall-item-outside-wrapper.comment .wall-item-photo {
width: 40px!important;
height: 40px!important;
}
.wall-item-outside-wrapper.comment .wall-item-photo-wrapper {
width: 40px;
height: 40px;
}
.wall-item-outside-wrapper.comment .wall-item-photo-menu-button {
width: 50px;
top: 45px;
background-position: 35px center;
}
.wall-item-outside-wrapper.comment .wall-item-info {
width: 60px;
}
.wall-item-outside-wrapper.comment .wall-item-body {
margin-left: 10px;
}
.wall-item-outside-wrapper.comment .wall-item-author {
margin-left: 50px;
}
.wall-item-outside-wrapper.comment .wall-item-photo-menu {
min-width: 50px;
top: 60px;
}
.comment-wwedit-wrapper {
/*margin: 30px 0px 0px 80px;*/
}
.comment-edit-wrapper {
border-top: 1px #aaa solid;
}
.comment-wwedit-wrapper img,
.comment-edit-wrapper img {
width: 20px;
height: 20px;
}
.comment-edit-photo-link, .comment-edit-photo {
float: left;
margin-left: 10px;
}
.my-comment-photo {
width: 40px;
height: 40px;
padding: 5px;
}
[class^="comment-edit-text"] {
margin: 5px 0 10px 20px;
width: 84.5%;
}
.comment-edit-text-empty {
height: 20px;
border: 2px #c8bebe solid;
border-radius: 5px;
color: #c8bebe;
-webkit-transition: all 0.5s ease-in-out;
-moz-transition: all 0.5s ease-in-out;
-o-transition: all 0.5s ease-in-out;
-ms-transition: all 0.5s ease-in-out;
transition: all 0.5s ease-in-out;
}
.comment-edit-text-empty:hover {
color: #999999;
}
.comment-edit-text-full {
height: 10em;
border-radius: 5px;
-webkit-transition: all 0.5s ease-in-out;
-moz-transition: all 0.5s ease-in-out;
-o-transition: all 0.5s ease-in-out;
-ms-transition: all 0.5s ease-in-out;
transition: all 0.5s ease-in-out;
}
.comment-edit-submit-wrapper {
width: 90%;
margin: 5px 5px 10px 50px;
text-align: right;
}
.comment-edit-submit {
height: 22px;
background-color: #555753;
color: #eeeeec;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
border: 0;
}
/**
* item text style
**/
.wall-item-body code {
display: block;
padding: 0 0 10px 5px;
border-color: #ccc;
border-style: solid;
border-width: 1px 1px 1px 10px;
background: #eee;
color: #2e2f2e;
width: 95%;
}
/**
* profile
**/
div[id$="text"] {
font-weight: bold;
border-bottom: 1px solid #ccc;
}
div[id$="wrapper"] {
height: 100%;
margin-bottom: 1em;
}
div[id$="wrapper"] br {
clear: left;
}
#advanced-profile-with {
margin-left: 200px;
}
/**
* photos
**/
.photos {
height: auto;
overflow: auto;
}
#photo-top-links {
margin-bottom: 30px;
}
.photo-album-image-wrapper,
.photo-top-image-wrapper {
float: left;
-moz-box-shadow: 3px 3px 10px 0 #000;
-webkit-box-shadow: 3px 3px 10px 0 #000;
box-shadow: 3px 3px 10px 0 #000;
background-color: #222;
color: #2e2f2e;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
padding-bottom: 30px;
position: relative;
margin: 0 10px 10px 0;
}
#photo-photo {
max-width: 100%;
}
#photo-photo img {
max-width: 100%;
}
.photo-top-image-wrapper a:hover,
#photo-photo a:hover,
.photo-album-image-wrapper a:hover {
border-bottom: 0;
}
.photo-top-photo,.photo-album-photo {
-webkit-border-radius:5px 5px 0 0;
-moz-border-radius:5px 5px 0 0;
border-radius:5px 5px 0 0;
}
.photo-top-album-name {
position: absolute;
bottom: 0;
padding: 0 5px;
}
.caption {
position: absolute;
bottom: 0;
margin: 0 5px;
}
#photo-photo {
position: relative;
float:left;
}
#photo-photo-end {
clear: both;
}
#photo-prev-link,
#photo-next-link {
position:absolute;
width:30%;
height:100%;
background-color:rgba(255,255,255,0.5);
opacity:0;
-webkit-transition:all .2s ease-in-out;
-moz-transition:all .2s ease-in-out;
-o-transition:all .2s ease-in-out;
-ms-transition:all .2s ease-in-out;
transition:all .2s ease-in-out;
background-position:center center;
background-repeat:no-repeat;
}
#photo-prev-link {
left:0;
top:0;
background-image:url(prev.png);
}
#photo-next-link {
right:0;
top:0;
background-image:url(next.png);
}
#photo-prev-link a,#photo-next-link a {
display:block;
width:100%;
height:100%;
overflow:hidden;
text-indent:-900000px;
}
#photo-prev-link:hover,
#photo-next-link:hover {
opacity:1;
-webkit-transition:all .2s ease-in-out;
-moz-transition:all .2s ease-in-out;
-o-transition:all .2s ease-in-out;
-ms-transition:all .2s ease-in-out;
transition:all .2s ease-in-out;
}
#photo-next-link .icon,
#photo-prev-link .icon {
display: none;
}
#photos-upload-spacer,
#photos-upload-new-wrapper,
#photos-upload-exist-wrapper {
margin-bottom: 1em;
}
#photos-upload-existing-album-text,
#photos-upload-newalbum-div {
background-color:#555753;
color:#eeeeec;
padding:1px;
}
#photos-upload-album-select,
#photos-upload-newalbum {
width: 99%;
}
#photos-upload-perms-menu {
text-align: right;
}
#photo-edit-caption, #photo-edit-newtag, #photo-edit-albumname {
float: left;
margin-bottom: 25px;
}
#photo-edit-link-wrap {
margin-bottom: 15px;
}
#photo-edit-caption {
width: 100%;
}
#photo-edit-newtag {
width: 100%;
}
#photo-like-div {
margin-bottom: 25px;
}
#photo-edit-caption-end, #photo-edit-tags-end, #photo-edit-albumname-end {
clear: both;
}
#photo-edit-delete-button {
margin-left: 200px;
}
#photo-edit-end {
margin-bottom: 35px;
}
#photo-caption {
font-size: 110%;
font-weight: bold;
margin-top: 15px;
margin-bottom: 15px;
}
/**
* message
*/
.prvmail-text {
width: 100%;
}
#prvmail-subject {
width: 100%;
color: #2e2f2e;
background: #eec;
}
#prvmail-submit-wrapper {
margin-top: 10px;
}
#prvmail-submit {
float:right;
margin-top: 0;
}
#prvmail-submit-wrapper > div {
margin-right:5px;
float:left;
}
.mail-list-outside-wrapper {
margin-top: 20px;
}
.mail-list-sender {
float: left;
}
.mail-list-detail {
margin-left: 90px;
}
.mail-list-sender-name {
display: inline;
font-size: 1.1em;
}
.mail-list-date {
display: inline;
font-size: 0.9em;
padding-left: 10px;
}
.mail-list-sender-name, .mail-list-date {
font-style: italic;
}
.mail-list-subject {
font-size: 1.2em;
}
.mail-list-delete-wrapper {
float: right;
}
.mail-list-outside-wrapper-end {
clear: both;
border-bottom: 1px #eec dotted;
}
.mail-conv-sender {
float: left;
margin: 0px 5px 5px 0px;
}
.mail-conv-sender-photo {
width: 32px;
height: 32px;
}
.mail-conv-sender-name {
float: left;
}
.mail-conv-date {
float: right;
}
.mail-conv-subject {
clear: right;
font-weight: bold;
font-size: 1.2em;
}
.mail-conv-body {
clear: both;
}
.mail-conv-delete-wrapper {
margin-top: 5px;
}
/**
* contacts
*/
.view-contact-wrapper,
.contact-entry-wrapper {
float: left;
margin: 0 5px 40px 0;
width: 120px;
height: 120px;
padding: 3px;
position: relative;
}
.contact-direction-wrapper {
position: absolute;
top: 20px;
}
.contact-edit-links {
position: absolute;
top: 60px;
}
.contact-entry-photo-wrapper {
}
.contact-entry-photo {
margin-left: 20px;
}
.contact-entry-name {
width: 120px;
font-weight: bold;
/*overflow: hidden;*/
}
.contact-entry-photo {
position: relative;
}
.contact-entry-edit-links .icon {
border: 1px solid #babdb6;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
background-color: #fff;
}
#contact-entry-url, [id^="contact-entry-url"] {
font-size: smaller;
/*overflow: scroll;*/
}
#contact-entry-network, [id^="contact-entry-network"] {
font-size: smaller;
font-style: italic;
}
#contact-edit-banner-name {
font-size: 1.5em;
}
#contact-edit-photo-wrapper {
position: relative;
float: left;
padding: 20px;
}
#contact-edit-direction-icon {
position:absolute;
top:60px;
left:0;
}
#contact-edit-nav-wrapper {
margin-left: 0px;
}
#contact-edit-links {
margin-top: 23px;
}
#contact-edit-links ul {
list-style-type: none;
}
#contact-drop-links {
margin-left:5px;
}
#contact-edit-nav-wrapper .icon {
border: 1px solid #babdb6;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
#contact-edit-poll-wrapper {
margin-left: 0px;
}
#contact-edit-last-update-text {
margin-bottom: 15px;
}
#contact-edit-last-updated {
font-weight: bold;
}
#contact-edit-poll-text {
display: inline;
}
#contact-edit-info_tbl, #contact-edit-info_parent {
width: 100%;
}
.mceLayout {
width: 100%;
}
#contact-edit-end {
clear: both;
margin-bottom: 65px;
}
.contact-photo-menu-button {
position: absolute;
background-image: url("photo-menu.jpg");
background-position: top left;
background-repeat: no-repeat;
margin: 0px; padding: 0px;
width: 16px;
height: 16px;
top: 64px; left:0px;
overflow: hidden;
text-indent: 40px;
display: none;
}
.contact-photo-menu {
width: auto;
border: 2px solid #444;
background: #2e2f2e;
color: #eec;
position: absolute;
left: 0px; top: 90px;
display: none;
z-index: 10000;
}
.contact-photo-menu ul {
margin:0px;
padding: 0px;
list-style: none;
}
.contact-photo-menu li a {
display: block;
padding: 2px;
}
.contact-photo-menu li a:hover {
color: #fff;
background: #3465A4;
text-decoration: none;
}
/**
* register, settings & profile forms
*/
#id_openid_url,
.openid {
background:url(login-bg.gif) no-repeat;
background-position:0 50%;
padding-left:18px;
}
#settings-nickname-desc {
background-color: #eec;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
padding: 5px;
color: #111;
}
#settings-default-perms {
margin-bottom: 20px;
}
#register-form div,
#profile-edit-form div {
clear: both;
}
/*#register-form label, */
/*#profile-edit-form label {*/
/* width: 300px; */
/* float: left; */
/*} */
/*#register-form span, */
/*#profile-edit-form span {*/
/* color: #555753; */
/* display: block; */
/* margin-bottom: 20px; */
/*} */
#profile-edit-marital-label span {
margin: -4px;
}
.settings-submit-wrapper,
.profile-edit-submit-wrapper {
margin: 30px 0px;
}
.profile-edit-side-div {
/*background: #111;
border-radius: 5px 5px 0px 0px;
margin: 0px 0px 0px 0px;
width: 100px;
height: 25px;
position: absolute;*/
display: none;
/*left: 35%;
top: 41%;
cursor: pointer;*/
}
/*.profile-edit-side-div:hover {
display: block;
}
.profile-edit-side-link {
margin: 3px 0px 0px 70px;
}*/
#profiles-menu-trigger {
margin: 0px 0px 0px 25px;
}
.profile-listing {
float: left;
margin: 20px 20px 0px 0px;
}
.icon-profile-edit {
background: url("icons.png") -150px 0px no-repeat;
border: 0;
cursor: pointer;
display: block;
float: right;
width: 20px;
height: 20px;
margin: 0 0 -18px;
position: absolute;
text-decoration: none;
top: 18px;
right: 226px;
}
#profile-edit-links ul {
margin: 20px 0;
padding: 0;
list-style: none;
}
.marital {
margin-top: 5px;
}
#register-sitename {
display: inline;
font-weight: bold;
}
#advanced-expire-popup {
background: #2e2f2e;
color: #eec;
}
#id_ssl_policy {
width: 374px;
}
/**
* contacts selector
*/
.group-delete-wrapper {
margin: -31px 122px 0 0;
float: right;
}
#group-edit-submit-wrapper {
margin: 0 0 10px 0;
display: inline;
}
#group-edit-desc {
margin: 10px 0px;
}
#group-members,
#prof-members {
height:200px;
overflow:auto;
border:1px solid #555753;
-webkit-border-radius:5px 5px 0 0;
-moz-border-radius:5px 5px 0 0;
border-radius:5px 5px 0 0;
}
#group-all-contacts,
#prof-all-contacts {
height:200px;
overflow:auto;
border:1px solid #555753;
-webkit-border-radius:0 0 5px 5px;
-moz-border-radius:0 0 5px 5px;
border-radius:0 0 5px 5px;
}
#group-members h3,
#group-all-contacts h3,
#prof-members h3,
#prof-all-contacts h3 {
color:#eeeeec;
background-color:#555753;
margin:0;
padding:5px;
}
#group-separator,
#prof-separator {
display: none;
}
/**
* profile
*/
#cropimage-wrapper {
float:left;
}
#crop-image-form {
clear:both;
}
/**
* events
**/
.clear { clear: both; }
.eventcal {
float:left;
font-size:20px;
}
.vevent {
border:1px solid #ccc;
}
.vevent .event-description, .vevent .event-location {
margin-left: 10px;
margin-right: 10px;
}
.vevent .event-start {
margin-left: 10px;
margin-right: 10px;
}
#new-event-link {
margin-bottom: 10px;
}
.edit-event-link, .plink-event-link {
float: left;
margin-top: 4px;
margin-right: 4px;
margin-bottom: 15px;
}
.event-description:before {
content: url('../../../images/calendar.png');
margin-right: 15px;
}
.event-start, .event-end {
margin-left: 10px;
width: 330px;
}
.event-start .dtstart, .event-end .dtend {
float: right;
}
.event-list-date {
margin-bottom: 10px;
}
.prevcal, .nextcal {
float: left;
margin-left: 32px;
margin-right: 32px;
margin-top: 64px;
}
.event-calendar-end {
clear: both;
}
.calendar {
font-family: monospace;
}
.today {
font-weight: bold;
color: #FF0000;
}
#event-start-text,
#event-finish-text {
margin-top: 10px;
margin-bottom: 5px;
}
#event-nofinish-checkbox,
#event-nofinish-text,
#event-adjust-checkbox,
#event-adjust-text,
#event-share-checkbox {
float:left;
}
#event-datetime-break {
margin-bottom: 10px;
}
#event-nofinish-break,
#event-adjust-break,
#event-share-break {
clear: both;
}
#event-desc-text,
#event-location-text {
margin-top: 10px;
margin-bottom: 5px;
}
#event-submit {
margin-top: 10px;
}
.body-tag {
margin: 10px 0;
opacity: 0.5;
filter:alpha(opacity=50);
}
.body-tag:hover {
opacity: 1.0 !important;
filter:alpha(opacity=100) !important;
}
.item-select {
opacity: 0.1;
filter:alpha(opacity=10);
float: right;
margin-right: 10px;
}
.item-select:hover, .checkeditem {
opacity: 1;
filter:alpha(opacity=100);
}
#item-delete-selected {
margin-top: 30px;
}
/* was tired of having no way of moving it around, so
* here's a little 'hook' to do so */
.delete-checked {
position: absolute;
left: 35px;
margin-top: 20px;
}
#item-delete-selected-end {
clear: both;
}
#item-delete-selected-icon, #item-delete-selected-desc {
float: left;
margin-right: 5px;
}
#item-delete-selected-desc:hover {
text-decoration: underline;
}
/**
* directory
*/
.directory-item {
float: left;
/*margin: 50px 50px 0px 0px;*/
margin: 0 5px 4px 0;
padding: 3px;
width: 180px;
height: 250px;
position: relative;
}
/**
* sidebar
*/
#group-sidebar {
margin-bottom: 10px;
}
.group-selected, .nets-selected {
padding: 3px;
color: #2e2f2e;
background: #88a9d2;
font-weight: bold;
}
.group-selected:hover, .nets-selected:hover {
color: #2e2f2e;
}
.groupsideedit {
margin-right: 10px;
}
#sidebar-group-ul {
padding-left: 0;
}
#sidebar-group-list {
margin: 0 0 5px 0;
}
#sidebar-group-list ul {
list-style-type: none;
list-style-position: inside;
}
#sidebar-group-list li {
margin-top: 10px;
}
#sidebar-group-list .icon {
display: inline-block;
height: 12px;
width: 12px;
}
#sidebar-new-group {
margin: auto;
display: inline-block;
color: #efefef;
text-decoration: none;
text-align: center;
}
#peoplefind-sidebar form {
margin-bottom: 10px;
}
#sidebar-new-group:hover {
/*background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #b20202), color-stop(1, #d60808) );*/
/*background: -moz-linear-gradient( center top, #b20202 5%, #d60808 100% );*/
/*background-color: #b20202;*/
}
#sidebar-new-group:active {
position: relative;
top: 1px;
}
#side-peoplefind-url {
background-color: #2e2f2e;
color: #eec;
border: 1px 999 solid;
margin-right: 3px;
width: 75%;
}
#side-peoplefind-url:hover, #side-peoplefind-url:focus {
background-color: #efefef;
color: #222;
border: 1px 333 solid;
}
.nets-ul {
list-style-type: none;
padding-left: 0px;
}
.nets-ul li {
margin: 10px 0 0;
}
.nets-link {
margin-left: 0px;
}
.nets-all {
margin-left: 0px;
}
#netsearch-box {
margin-top: 20px;
width: 150px;
}
#netsearch-box #search-submit {
margin: 5px 0px 0px 0px;
}
/**
* ADMIN
*/
#pending-update {
float:right;
color: #fff;
font-weight: bold;
background-color: #ff0000;
padding: 0 .3em;
}
.admin.linklist {
border: 0; padding: 0;
}
.admin.link {
list-style-position: inside;
}
#adminpage dl {
clear:left;
margin-bottom: 2px;
padding-bottom: 2px;
border-bottom: 1px solid #000;
}
#adminpage dt {
width: 250px;
float: left;
font-weight: bold;
}
#adminpage dd {
margin-left: 250px;
}
#adminpage h3 {
border-bottom:1px solid #ccc;
}
#adminpage .submit {
clear:left;
}
#adminpage #pluginslist {
margin: 0;
padding: 0;
}
#adminpage .plugin {
list-style: none;
display: block;
border: 1px solid #888;
padding: 1em;
margin-bottom: 5px;
clear: left;
}
#adminpage .toggleplugin {
float:left;
margin-right: 1em;
}
#adminpage table {
width: 100%;
border-bottom: 1px solid #000;
margin: 5px 0;
}
#adminpage table th {
text-align: left;
}
#adminpage td .icon {
float: left;
}
#adminpage table#users img {
width: 16px; height: 16px;
}
#adminpage table tr:hover {
color: #2e2f2e;
background-color: #eec;
}
#adminpage .selectall {
text-align: right;
}
#adminpage #users a {
color: #2e2f2e;
text-decoration: underline;
}
/**
* Form fields
*/
.field {
/*margin-bottom: 10px;*/
/*padding-bottom: 10px;*/
overflow: auto;
width: 100%;
}
.field label, label {
float: left;
width: 275px;
display: block;
font-size: 1.077em;
/*font-weight: bold;*/
margin: 0 10px 0.5em 0;
border: 1px #2e2f2e solid;
padding: 5px;
background: #eec;
vertical-align: middle;
color: #111;
}
.field input, input[type="text"] {
width: 250px;
height: 25px;
border: 1px #999 solid;
}
.field textarea {
width: 80%;
height: 100px;
}
.field_help {
display: block;
margin-left: 297px;
color: #aaa;
}
.field .onoff {
float: left;
width: 80px;
}
.field .onoff a {
display: block;
border: 1px solid #666;
padding: 3px 6px 4px 10px;
height: 16px;
text-decoration: none;
}
.field .onoff .on {
background: url("../../../images/onoff.jpg") no-repeat 42px 1px #999;
color: #111;
text-align: left;
}
.field .onoff .off {
background: url("../../../images/onoff.jpg") no-repeat 2px 1px #ccc;
color: #333;
text-align: right;
}
.hidden {
display:none !important;
}
.field.radio .field_help {
margin-left: 297px;
}
/*
* UPDATE
*/
.popup {
width: 100%;
height: 100%;
top: 0px;
left: 0px;
position: absolute;
display: none;
}
.popup .background {
background-color: rgba(0,0,0,128);
opacity: 0.5;
width: 100%;
height: 100%;
position: absolute;
top:0px;
left:0px;
}
.popup .panel {
top: 25%;
left: 25%;
width: 50%;
height: 50%;
padding: 1em;
position: absolute;
border: 4px solid #000000;
background-color: #FFFFFF;
}
#panel {
z-index: 100;
}
.grey {
color: grey;
}
.orange {
color: orange;
}
.red {
color: red;
}
.popup .panel .panel_text {
display: block;
overflow: auto;
height: 80%;
}
.popup .panel .panel_in {
width: 100%;
height: 100%;
position: relative;
}
.popup .panel .panel_actions {
width: 100%;
bottom: 4px;
left: 0px;
position: absolute;
}
.panel_text .progress {
width: 50%;
overflow: hidden;
height: auto;
border: 1px solid #cccccc;
margin-bottom: 5px;
}
.panel_text .progress span {
float: right;
display: block;
width: 25%;
background-color: #eeeeee;
text-align: right;
}
/**
* OAuth
*/
.oauthapp {
height: auto;
overflow: auto;
border-bottom: 2px solid #cccccc;
padding-bottom: 1em;
margin-bottom: 1em;
}
.oauthapp img {
float: left;
width: 48px; height: 48px;
margin: 10px;
}
.oauthapp img.noicon {
background-image: url("../../../images/icons/48/plugin.png");
background-position: center center;
background-repeat: no-repeat;
}
.oauthapp a {
float: left;
}
/**
* ICONS
*/
.iconspacer {
display: block;
width: 16px;
height: 16px;
}
.icon {
display: block;
width: 20px;
height: 20px;
background: url(icons.png) no-repeat;
border: 0;
text-decoration: none;
border-radius: 5px;
}
.icon:hover {
border: 0;
text-decoration: none;
}
.icon.drop,
.icon.drophide, .icon.delete {
float: left;
}
.icon.s22.delete {
display: block;
background-position: -110px 0;
}
.icon.s22.text {
padding: 10px 0px 0px 25px;
width: 200px;
}
.icon.text {
text-indent: 0px;
}
.icon.s16 {
min-width: 16px;
height: 16px;
}
.s16 .add {
background: url("../../../images/icons/16/add.png") no-repeat;
}
.add {
margin: 0px 5px;
}
.article {
background-position: -50px 0;
}
.audio {
background-position: -70px 0;
}
.block {
background-position: -90px 0px;
}
.drop, .delete {
background-position: -110px 0;
}
.drophide {
background-position: -130px 0;
}
.edit {
background-position: -150px 0;
}
.camera {
background-position: -170px 0;
}
.dislike {
background-position: -190px 0;
}
.like {
background-position: -211px 0;
}
.link {
background-position: -230px 0;
}
.globe, .location {
background-position: -50px -20px;
}
.noglobe, .nolocation {
background-position: -70px -20px;
}
.no {
background-position: -90px -20px;
}
.pause {
background-position: -110px -20px;
}
.play {
background-position: -130px -20px;
}
.pencil {
background-position: -151px -18px;
}
.small-pencil {
background-position: -170px -20px;
}
.recycle {
background-position: -190px -20px;
}
.remote-link {
background-position: -210px -20px;
}
.share {
background-position: -230px -20px;
}
.tools {
background-position: -50px -40px;
}
.lock {
background-position: -70px -40px;
}
.unlock {
background-position: -88px -40px;
}
.video {
background-position: -110px -40px;
}
.attach {
background-position: -190px -40px;
}
.language {
background-position: -210px -40px;
}
.starred {
background-position: -130px -60px;
}
.unstarred {
background-position: -150px -60px;
}
.tagged {
background-position: -170px -60px;
}
.on {
background-position: -50px -60px;
}
.off {
background-position: -70px -60px;
}
.prev {
background-position: -90px -60px;
}
.next {
background-position: -110px -60px;
}
.icon.dim {
opacity: 0.3;
filter: alpha(opacity=30);
}
#pause {
position: fixed;
bottom: 5px;
right: 5px;
}
.border, .border:hover {
border: 1px solid #babdb6;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
.attachtype {
display: block;
width: 20px;
height: 23px;
background-image: url(../../../images/content-types.png);
}
.type-video {
background-position: 0px 0px;
}
.type-image {
background-position: -20px 0;
}
.type-audio {
background-position: -40px 0;
}
.type-text {
background-position: -60px 0px;
}
.type-unkn {
background-position: -80px 0;
}
/**
* footer
*/
.cc-license {
margin-top: 100px;
font-size: 0.7em;
}
footer {
display: block;
margin: 50px 20%;
clear: both;
}
#profile-jot-text {
height: 20px;
color: #eec;
border: 1px solid #eec;
border-radius: 5px;
width: 99.5%;
}
/** acl **/
#photo-edit-perms-select,
#photos-upload-permissions-wrapper,
#profile-jot-acl-wrapper {
display: block !important;
background: #2e2f2e;
color: #eec;
}
#acl-wrapper {
width: 660px;
margin: 0 auto;
}
#acl-search {
float: right;
background: #fff url("../../../images/search_18.png") no-repeat right center;
padding-right: 20px;
margin: 6px;
}
#acl-showall {
float: left;
display: block;
width: auto;
height: 18px;
background: #eec url("../../../images/show_all_off.png") 8px 8px no-repeat;
padding: 7px 10px 7px 30px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
color: #999;
margin: 5px 0;
}
#acl-showall.selected {
color: #000;
background: #f90 url(../../../images/show_all_on.png) 8px 8px no-repeat;
}
#acl-list {
height: 210px;
border: 1px solid #ccc;
clear: both;
margin-top: 30px;
overflow: auto;
}
/*#acl-list-content {
}*/
.acl-list-item {
border: 1px solid #eec;
display: block;
float: left;
height: 110px;
margin: 3px 0 5px 5px;
width: 120px;
}
.acl-list-item img {
width: 22px;
height: 22px;
float: left;
margin: 5px 5px 20px;
}
.acl-list-item p {
height: 12px;
font-size: 10px;
margin: 0 0 22px;
padding: 2px 0 1px;
}
.acl-list-item a {
background: #eec 3px 3px no-repeat;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
clear: both;
font-size: 10px;
display: block;
width: 55px;
height: 20px;
color: #2e2f2e;
margin: 5px auto 0;
padding: 0 3px;
text-align: center;
vertical-align: middle;
}
#acl-wrapper a:hover {
text-decoration: none;
color: #2e2f2e;
border: 0;
}
.acl-button-show {
background-image: url('../../../images/show_off.png');
margin: 0 auto;
}
.acl-button-hide {
background-image: url('../../../images/hide_off.png');
margin: 0 auto;
}
.acl-button-show.selected {
color: #2e2f2e;
background-color: #9ade00;
background-image: url(../../../images/show_on.png);
}
.acl-button-hide.selected {
color: #2e2f2e;
background-color: #ff4141;
background-image: url(../../../images/hide_on.png);
}
.acl-list-item.groupshow {
border-color: #9ade00;
}
.acl-list-item.grouphide {
border-color: #ff4141;
}
/** /acl **/
/* autocomplete popup */
.acpopup {
max-height: 175px;
max-width: 42%;
background-color: #555753;
color: #fff;
overflow: auto;
z-index: 100000;
border: 1px solid #cccccc;
}
.acpopupitem {
background-color: #555753;
padding: 4px;
clear: left;
}
.acpopupitem img {
float: left;
margin-right: 4px;
}
.acpopupitem.selected {
color: #2e302e;
background-color: #eeeeec;
}
.qcomment-wrapper {
padding: 0px;
margin: 2px;
list-style-type: none;
}
.qcomment, .qcomment:hover {
display: inline;
padding: 5px;
margin: 5px;
}
.qcomment {
opacity: 0.5;
filter:alpha(opacity=50);
}
.qcomment:hover {
opacity: 1.0;
filter:alpha(opacity=100);
}
#network-star-link {
margin-top: 10px;
}
.network-star {
float: left;
margin-right: 5px;
}
.network-star.icon.starred {
display: inline-block;
}
@media handheld {
body {
font-size: 15pt;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 B

View file

@ -0,0 +1,128 @@
<?php
/*
* Name: Dispy Dark
* Description: Dispy Dark, Friendica theme
* Version: 0.9
* Author: Simon <http://simon.kisikew.org/>
* Maintainer: Simon <http://simon.kisikew.org/>
*/
$a->theme_info = array(
'extends' => 'dispy-dark'
);
$a->page['htmlhead'] .= <<< EOT
<script>
$(document).ready(function() {
$('.group-edit-icon').hover(
function() {
$(this).addClass('icon');
$(this).removeClass('iconspacer'); },
function() {
$(this).removeClass('icon');
$(this).addClass('iconspacer'); }
);
$('.sidebar-group-element').hover(
function() {
id = $(this).attr('id');
$('#edit-' + id).addClass('icon');
$('#edit-' + id).removeClass('iconspacer'); },
function() {
id = $(this).attr('id');
$('#edit-' + id).removeClass('icon');
$('#edit-' + id).addClass('iconspacer'); }
);
$('.savedsearchdrop').hover(
function() {
$(this).addClass('drop');
$(this).addClass('icon');
$(this).removeClass('iconspacer'); },
function() {
$(this).removeClass('drop');
$(this).removeClass('icon');
$(this).addClass('iconspacer'); }
);
$('.savedsearchterm').hover(
function() {
id = $(this).attr('id');
$('#drop-' + id).addClass('icon');
$('#drop-' + id).addClass('drophide');
$('#drop-' + id).removeClass('iconspacer'); },
function() {
id = $(this).attr('id');
$('#drop-' + id).removeClass('icon');
$('#drop-' + id).removeClass('drophide');
$('#drop-' + id).addClass('iconspacer'); }
);
// click outside notifications menu closes it
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById("nav-notifications-menu").style.display = "none";
});
$('#nav-notifications-linkmenu').click(function(event) {
event.stopPropagation();
});
// click outside profiles menu closes it
$('html').click(function() {
$('#profiles-menu-trigger').removeClass('selected');
document.getElementById("profiles-menu").style.display = "none";
});
$('#profiles-menu').click(function(event) {
event.stopPropagation();
});
// main function in toolbar functioning
function toggleToolbar() {
if ( $('#nav-floater').is(':visible') ) {
$('#nav-floater').slideUp('fast');
$('.floaterflip').css({
backgroundPosition: '-210px -60px'
});
} else {
$('#nav-floater').slideDown('fast');
$('.floaterflip').css({
backgroundPosition: '-190px -60px'
});
}
};
// our trigger for the toolbar button
$('.floaterflip').click(function() {
toggleToolbar();
return false;
});
// (attempt) to change the text colour in a top post
$('#profile-jot-text').focusin(function() {
$(this).css({color: '#eec'});
});
/* $('#profile-photo-wrapper').mouseover(function() {
$('.profile-edit-side-div').css({display: 'block'});
}).mouseout(function() {
$('.profile-edit-side-div').css({display: 'none'});
return false;
});
$('img.photo').mouseover(function() {
$('.profile-edit-side-div').css({display: 'block'});
}).mouseout(function() {
$('.profile-edit-side-div').css({display: 'none'});
return false;
});*/
});
</script>
EOT;

View file

@ -0,0 +1,80 @@
<div class="wall-item-outside-wrapper$item.indent" id="wall-item-outside-wrapper-$item.id" >
<div class="wall-item-content-wrapper$item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info" id="wall-item-info-$item.id">
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$item.id"
onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" />
</a>
<span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
<ul>
$item.item_photo_menu
</ul>
</div>
</div>
<div class="wall-item-photo-end"></div>
<div class="wall-item-location" id="wall-item-location-$item.id">{{ if $item.location }}<span class="icon globe"></span>$item.location {{ endif }}</div>
</div>
<div class="wall-item-lock-wrapper">
{{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
{{ else }}<div class="wall-item-lock"></div>{{ endif }}
</div>
<div class="wall-item-tools" id="wall-item-tools-$item.id">
{{ if $item.star }}
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.vote }}
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$item.id">
<a href="#" class="icon like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
<a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
{{ if $item.vote.share }}
<a href="#" id="share-$item.id"
class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
<img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
</div>
{{ endif }}
{{ if $item.plink }}
<div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" target="external-link" class="icon remote-link"></a></div>
{{ endif }}
{{ if $item.edpost }}
<a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
{{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
</div>
{{ if $item.drop.dropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
<div class="wall-item-delete-end"></div>
</div>
<div class="wall-item-content" id="wall-item-content-$item.id" >
<div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
<div class="wall-item-title-end"></div>
<div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
<div class="body-tag">
{{ for $item.tags as $tag }}
<span class='tag'>$tag</span>
{{ endfor }}
</div>
</div>
</div>
<div class="wall-item-author">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a>
<div class="wall-item-ago" id="wall-item-ago-$item.id">$item.ago</div>
</div>
</div>
<div class="wall-item-wrapper-end"></div>
<div class="wall-item-like" id="wall-item-like-$item.id">$item.like</div>
<div class="wall-item-dislike" id="wall-item-dislike-$item.id">$item.dislike</div>
<div class="wall-item-comment-wrapper">
$item.comment
</div>
</div>
<div class="wall-item-outside-wrapper-end$item.indent"></div>

View file

@ -0,0 +1,86 @@
<div class="wall-item-outside-wrapper$item.indent wallwall" id="wall-item-outside-wrapper-$item.id" >
<div class="wall-item-content-wrapper$item.indent" id="wall-item-content-wrapper-$item.id" >
<div class="wall-item-info wallwall" id="wall-item-info-$item.id">
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$item.id" >
<a href="$item.owner_url" title="$item.olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$item.id">
<img src="$item.owner_photo" class="wall-item-photo$item.osparkle" id="wall-item-ownerphoto-$item.id" style="height: 80px; width: 80px;" alt="$item.owner_name" /></a>
</div>
<div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$item.wall" /></div>
<div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-$item.id"
onmouseover="if (typeof t$item.id != 'undefined') clearTimeout(t$item.id); openMenu('wall-item-photo-menu-button-$item.id')"
onmouseout="t$item.id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$item.id\'); closeMenu(\'wall-item-photo-menu-$item.id\');',200)">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$item.id">
<img src="$item.thumb" class="wall-item-photo$item.sparkle" id="wall-item-photo-$item.id" style="height: 80px; width: 80px;" alt="$item.name" /></a>
<span onclick="openClose('wall-item-photo-menu-$item.id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$item.id">menu</span>
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$item.id">
<ul>
$item.item_photo_menu
</ul>
</div>
</div>
<div class="wall-item-photo-end"></div>
<div class="wall-item-location" id="wall-item-location-$item.id">{{ if $item.location }}<span class="icon globe"></span>$item.location {{ endif }}</div>
</div>
<div class="wall-item-lock-wrapper">
{{ if $item.lock }}<div class="wall-item-lock"><img src="images/lock_icon.gif" class="lockview" alt="$item.lock" onclick="lockview(event,$item.id);" /></div>
{{ else }}<div class="wall-item-lock"></div>{{ endif }}
</div>
<div class="wall-item-tools" id="wall-item-tools-$item.id">
{{ if $item.star }}
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.vote }}
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$item.id">
<a href="#" class="icon like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
<a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
{{ if $item.vote.share }}
<a href="#" id="share-$item.id"
class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
<img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
</div>
{{ endif }}
{{ if $item.plink }}
<div class="wall-item-links-wrapper"><a href="$item.plink.href" title="$item.plink.title" target="external-link" class="icon remote-link"></a></div>
{{ endif }}
{{ if $item.edpost }}
<a class="editpost icon pencil" href="$item.edpost.0" title="$item.edpost.1"></a>
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
{{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
</div>
{{ if $item.drop.dropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
<div class="wall-item-delete-end"></div>
</div>
<div class="wall-item-content" id="wall-item-content-$item.id" >
<div class="wall-item-title" id="wall-item-title-$item.id">$item.title</div>
<div class="wall-item-title-end"></div>
<div class="wall-item-body" id="wall-item-body-$item.id" >$item.body
<div class="body-tag">
{{ for $item.tags as $tag }}
<span class="tag">$tag</span>
{{ endfor }}
</div>
</div>
</div>
<div class="wall-item-author">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a>
<div class="wall-item-ago" id="wall-item-ago-$item.id">$item.ago</div>
</div>
</div>
<div class="wall-item-wrapper-end"></div>
<div class="wall-item-like" id="wall-item-like-$item.id">$item.like</div>
<div class="wall-item-dislike" id="wall-item-dislike-$item.id">$item.dislike</div>
<div class="wall-item-comment-wrapper">
$item.comment
</div>
</div>
<div class="wall-item-outside-wrapper-end$item.indent" ></div>

View file

@ -20,9 +20,11 @@
</div>
<div class="contact-entry-photo-end" ></div>
<div class="contact-entry-name" id="contact-entry-name-$contact.id" >$contact.name</div>
{{ if $contact.alt_text }}<div class="contact-entry-details" id="contact-entry-rel-$contact.id" >$contact.alt_text</div>{{ endif }}
<div class="contact-entry-details" id="contact-entry-url-$contact.id" >
<a href="$contact.itemurl" title="$contact.itemurl">Profile URL</a></div>
<div class="contact-entry-details" id="contact-entry-network-$contact.id" >$contact.network</div>
<div class="contact-entry-end" ></div>
</div>

View file

@ -1,5 +1,5 @@
<div class="widget" id="group-sidebar">
<h3>$title</h3>
<div id="group-sidebar" class="widget">
<h3 class="label">$title</h3>
<div id="sidebar-group-list">
<ul id="sidebar-group-ul">
@ -9,7 +9,7 @@
{{ if $group.edit }}
<a
class="groupsideedit"
href="$group.edit.href" title="$edittext"><span class="icon small-pencil"></span></a>
href="$group.edit.href" title="$group.edit.title"><span class="icon small-pencil"></span></a>
{{ endif }}
{{ if $group.cid }}
<input type="checkbox"

View file

@ -74,25 +74,6 @@
}
}
$(document).ready(function() {
function toggleToolbar() {
if ( $('#nav-floater').is(':visible') ) {
$('#nav-floater').slideUp('fast');
$('.floaterflip').css({
backgroundPosition: '-210px -60px'
});
} else {
$('#nav-floater').slideDown('fast');
$('.floaterflip').css({
backgroundPosition: '-190px -60px'
});
}
};
$('.floaterflip').click(function() {
toggleToolbar();
return false;
});
});
</script>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before After
Before After

View file

@ -51,9 +51,9 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="10.435404"
inkscape:cx="86.68027"
inkscape:cy="39.719931"
inkscape:zoom="1.9403009"
inkscape:cx="73.744486"
inkscape:cy="108.36719"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
@ -2101,7 +2101,71 @@
y="0"
xlink:href="#g353"
id="use357"
transform="translate(-5,6)"
transform="translate(-6,6)"
width="250"
height="200" />
<g
id="g293"
transform="translate(-54.726207,8)">
<path
transform="matrix(1.2829201,1.9081591,-1.9081591,1.2829201,-566.65386,-61.76762)"
d="m 560.55887,21.754047 c 0,0.488156 -0.39573,0.883884 -0.88388,0.883884 -0.48816,0 -0.88389,-0.395728 -0.88389,-0.883884 0,-0.488155 0.39573,-0.883883 0.88389,-0.883883 0.48815,0 0.88388,0.395728 0.88388,0.883883 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path274"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
id="path276"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 c 0,0.488156 -0.39573,0.883884 -0.88388,0.883884 -0.48816,0 -0.88389,-0.395728 -0.88389,-0.883884 0,-0.488155 0.39573,-0.883883 0.88389,-0.883883 0.48815,0 0.88388,0.395728 0.88388,0.883883 z"
transform="matrix(0.96219008,1.4311194,-1.4311194,0.96219008,-391.29289,215.61485)" />
<path
transform="matrix(1.0080086,1.4992679,-1.4992679,1.0080086,-421.03317,165.44683)"
d="m 560.55887,21.754047 c 0,0.488156 -0.39573,0.883884 -0.88388,0.883884 -0.48816,0 -0.88389,-0.395728 -0.88389,-0.883884 0,-0.488155 0.39573,-0.883883 0.88389,-0.883883 0.48815,0 0.88388,0.395728 0.88388,0.883883 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path279"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
transform="matrix(0.45818575,0.68148541,-0.68148541,0.45818575,-132.78975,635.71067)"
inkscape:connector-curvature="0"
id="path281"
d="m 563.21055,31.653543 4.41942,-6.187185 -7.6014,-6.187184"
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:type="arc"
style="fill:#e6e6e6;fill-opacity:1;stroke:none"
id="path283"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 c 0,0.488156 -0.39573,0.883884 -0.88388,0.883884 -0.48816,0 -0.88389,-0.395728 -0.88389,-0.883884 0,-0.488155 0.39573,-0.883883 0.88389,-0.883883 0.48815,0 0.88388,0.395728 0.88388,0.883883 z"
transform="matrix(1.0996458,1.635565,-1.635565,1.0996458,-476.37171,94.687576)" />
<path
transform="matrix(0.45818575,0.68148541,-0.68148541,0.45818575,-132.78975,635.71067)"
inkscape:connector-curvature="0"
id="path285"
d="m 567.45319,25.466358 7.6014,-4.065864"
style="fill:none;stroke:#e6e6e6;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<use
x="0"
y="0"
xlink:href="#g293"
id="use301"
transform="translate(22,0)"
width="250"
height="200" />
</g>

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Before After
Before After

View file

@ -114,6 +114,7 @@ function enableOnUser(){
$(this).val("");
initEditor();
}
</script>
<script type="text/javascript" src="$baseurl/js/ajaxupload.js"></script>
<script type="text/javascript">
@ -121,6 +122,7 @@ function enableOnUser(){
var addtitle = '$addtitle';
$(document).ready(function() {
/* enable tinymce on focus and click */
$("#profile-jot-text").focus(enableOnUser);
$("#profile-jot-text").click(enableOnUser);
@ -261,6 +263,18 @@ function enableOnUser(){
}
}
function itemFiler(id) {
reply = prompt("$fileas");
if(reply && reply.length) {
commentBusy = true;
$('body').css('cursor', 'wait');
$.get('filer/' + id + '?term=' + reply);
if(timer) clearTimeout(timer);
timer = setTimeout(NavUpdate,3000);
liking = 1;
}
}
function jotClearLocation() {
$('#jot-coord').val('');
$('#profile-nolocation-wrapper').hide();

View file

@ -1,5 +1,4 @@
<nav>
$langselector
<span id="banner">$banner</span>
@ -58,17 +57,12 @@ works -->
</li>
{{ endif }}
{{ if $userinfo }}
<ul id="nav-user-menu" class="menu-popup">
{{ for $nav.usermenu as $usermenu }}
<li><a class="$usermenu.2" href="$usermenu.0" title="$usermenu.3">$usermenu.1</a></li>
{{ endfor }}
</ul>
{{ endif }}
{{ if $nav.contacts }}
<li><a id="nav-contacts-link" class="nav-commlink $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.1">$nav.contacts.1</a></li>
{{ endif }}
{{ if $nav.introductions }}
<li><a id="nav-intro-link" class="nav-commlink $nav.introductions.2 $sel.introductions" href="$nav.introductions.0" title="$nav.introductions.3" >$nav.introductions.1</a></li>
{{ endif }}
{{ if $nav.profiles }}
<li><a id="nav-profiles-link" class="nav-commlink $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.1">$nav.profiles.1</a></li>
{{ endif }}
@ -92,6 +86,14 @@ works -->
</ul>
</div>
{{ if $userinfo }}
<ul id="nav-user-menu" class="menu-popup">
{{ for $nav.usermenu as $usermenu }}
<li><a class="$usermenu.2" href="$usermenu.0" title="$usermenu.3">$usermenu.1</a></li>
{{ endfor }}
</ul>
{{ endif }}
<div id="notifications">
{{ if $nav.home }}
<a id="home-update" class="nav-ajax-left" href="$nav.home.0" title="$nav.home.1"></a>
@ -105,12 +107,18 @@ works -->
{{ if $nav.messages }}
<a id="mail-update" class="nav-ajax-left" href="$nav.messages.0" title="$nav.messages.1"></a>
{{ endif }}
{{if $nav.introductions }}
<a id="intro-update" class="nav-ajax-left" href="$nav.introductions.0"></a>
{{ endif }}
</div>
</div>
<a href="#" class="floaterflip"></a>
</nav>
<div id="lang-sel-wrap">
$langselector
</div>
<ul id="nav-notifications-template" style="display:none;" rel="template">
<li class="{4}"><a href="{0}"><img src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
</ul>

2
view/theme/dispy/nets.tpl Executable file → Normal file
View file

@ -4,7 +4,7 @@
<a href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a>
<ul class="nets-ul">
{{ for $nets as $net }}
<li><a href="$base?nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
<li><a href="$base?f=&nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
{{ endfor }}
</ul>
</div>

BIN
view/theme/dispy/next.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 891 B

After

Width:  |  Height:  |  Size: 590 B

Before After
Before After

BIN
view/theme/dispy/notifications.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before After
Before After

View file

@ -0,0 +1,273 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg3486"
version="1.1"
inkscape:version="0.48+devel r"
width="148"
height="19"
sodipodi:docname="notifications.svg"
inkscape:export-filename="/var/www3/kisikew.org/portal/pub/fd/view/theme/dispy/notifications.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<metadata
id="metadata3492">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3490" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1041"
inkscape:window-height="643"
id="namedview3488"
showgrid="false"
inkscape:zoom="4.2687885"
inkscape:cx="64.235788"
inkscape:cy="18.27268"
inkscape:window-x="0"
inkscape:window-y="48"
inkscape:window-maximized="0"
inkscape:current-layer="svg3486"
width="0px"
height="0px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<g
id="g4437"
transform="translate(0,-44)">
<path
sodipodi:nodetypes="ccccc"
transform="translate(0,44)"
style="fill:#6c99c9"
d="M 34.398531,19 30.225818,10.411298 47.864407,1.3368391 57.625819,19.010154 z"
id="path3506"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="ccccccccccccccc"
transform="translate(0,44)"
style="fill:#4e7db5"
d="m 45.148088,5.1797115 -9.353484,4.7866764 6.895762,1.5144501 z m -2.0018,7.2466465 -8.105899,-1.97793 3.232895,6.44678 11.074578,-5.648894 -3.366977,-6.4432724 z M 46.4192,3.6690997 50.56253,11.552848 38.044003,18.006578 33.98857,10.057271 z"
id="path3502"
inkscape:connector-curvature="0" />
</g>
<g
id="g4441"
transform="translate(0,-44)">
<path
sodipodi:nodetypes="ccccc"
transform="translate(0,44)"
style="fill:#aa7ca5"
d="M 64.398531,19 60.225818,10.411298 77.725,2.013353 87.084493,18.988196 z"
id="path3504"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="sssssccccc"
transform="translate(-0.88048036,44.641441)"
style="fill:#75507b"
d="m 75,16 c -0.55,0 -1,-0.45 -1,-1 0,-0.55 0.45,-1 1,-1 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 z m -1.441718,-2.172038 c 0,0 -2.448135,-3.9460956 -3.558282,-6.0504682 0,-0.4276216 1.043961,-0.9072067 1.57461,-0.9072067 1.48457,2.2735627 3.276272,6.3043659 3.276272,6.3043659 -0.823179,-0.104873 -0.90154,-0.01483 -1.2926,0.653309 z"
id="path3498"
inkscape:connector-curvature="0" />
</g>
<g
id="g4453"
transform="translate(0,-24)">
<path
sodipodi:nodetypes="ccccc"
transform="translate(0,24)"
style="fill:#f4ac42;fill-opacity:1"
d="M 4.3985314,19 0.19544564,10.348783 18,1.8695178 27,19 z"
id="path3508"
inkscape:connector-curvature="0" />
<g
transform="translate(0,-20)"
id="g4361">
<path
sodipodi:type="arc"
style="fill:#e98007;fill-opacity:1;stroke:none"
id="path274"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
transform="matrix(1.0481621,1.5589904,-1.5589904,1.0481621,-539.42292,-838.01094)" />
<path
transform="matrix(0.78612158,1.1692428,-1.1692428,0.78612158,-396.15077,-611.38593)"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path276"
style="fill:#e98007;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
style="fill:#e98007;fill-opacity:1;stroke:none"
id="path279"
sodipodi:cx="559.67499"
sodipodi:cy="21.754047"
sodipodi:rx="0.88388348"
sodipodi:ry="0.88388348"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
transform="matrix(0.8235559,1.224921,-1.224921,0.8235559,-420.44896,-652.37384)" />
<path
style="fill:none;stroke:#e98007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 563.21055,31.653543 4.41942,-6.187185 -7.6014,-6.187184"
id="path281"
inkscape:connector-curvature="0"
transform="matrix(0.37434361,0.55678228,-0.55678228,0.37434361,-184.9504,-268.16228)" />
<path
transform="matrix(0.89842466,1.3362775,-1.3362775,0.89842466,-465.66125,-710.18506)"
d="m 560.55887,21.754047 a 0.88388348,0.88388348 0 1 1 -1.76777,0 0.88388348,0.88388348 0 1 1 1.76777,0 z"
sodipodi:ry="0.88388348"
sodipodi:rx="0.88388348"
sodipodi:cy="21.754047"
sodipodi:cx="559.67499"
id="path283"
style="fill:#e98007;fill-opacity:1;stroke:none"
sodipodi:type="arc" />
<path
style="fill:none;stroke:#e98007;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 567.45319,25.466358 7.6014,-4.065864"
id="path285"
inkscape:connector-curvature="0"
transform="matrix(0.37434361,0.55678228,-0.55678228,0.37434361,-184.9504,-268.16228)" />
</g>
</g>
<g
id="g4566"
transform="translate(0,-24)">
<path
sodipodi:nodetypes="ccccc"
transform="translate(0,24)"
style="fill:#6fcb15"
d="M 94.398531,19 90.225818,10.411298 108.5,1.9724323 117,19 z"
id="path3500"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccccccc"
inkscape:connector-curvature="0"
d="m 14.756588,131.15925 0,9.60545 -11.6032194,-0.0118 0,-9.58225 m -0.039261,-0.0651 5.8825232,-3.13423 5.9219702,3.25106 z"
style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:none;stroke:#428107;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Verdana;-inkscape-font-specification:Verdana"
transform="matrix(0.55727141,-0.25996788,0.2876144,0.61653494,59.024831,-44.715085)"
id="path1037" />
</g>
<g
id="g4553"
transform="translate(0,-24)">
<path
inkscape:connector-curvature="0"
id="path4471"
d="M 94.398531,19 90.225818,10.411298 108.5,1.9724323 117,19 z"
style="fill:#fb7b62;fill-opacity:1"
transform="translate(31,24)"
sodipodi:nodetypes="ccccc" />
<path
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
d="m 7.3250635,194.45924 a 2.0660436,1.5964882 0 1 1 -4.1320873,0 2.0660436,1.5964882 0 1 1 4.1320873,0 z"
sodipodi:ry="1.5964882"
sodipodi:rx="2.0660436"
sodipodi:cy="194.45924"
sodipodi:cx="5.2590199"
id="path4218"
style="fill:#c32405;fill-opacity:1;fill-rule:nonzero;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" />
<use
height="200"
width="250"
transform="translate(0.11687856,-8.4237924)"
id="use4224"
xlink:href="#path4218"
y="0"
x="0"
style="fill:#999999;stroke:#666666" />
<use
height="200"
width="250"
transform="translate(6.5982765,5.2049933)"
id="use4226"
xlink:href="#use4224"
y="0"
x="0"
style="fill:#999999;stroke:#c32405;stroke-opacity:1" />
<path
sodipodi:type="arc"
style="fill:#c32405;fill-opacity:1;fill-rule:nonzero;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path4228"
sodipodi:cx="5.2590199"
sodipodi:cy="194.45924"
sodipodi:rx="2.0660436"
sodipodi:ry="1.5964882"
d="m 7.3250635,194.45924 a 2.0660436,1.5964882 0 1 1 -4.1320873,0 2.0660436,1.5964882 0 1 1 4.1320873,0 z"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,81.644877,-64.113316)" />
<path
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4230"
d="m 10.902837,183.0346 0,3.66687"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:nodetypes="cc" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4232"
d="m 9.2894123,189.68386 -2.3956906,3.56909"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4234"
d="m 12.46737,189.68386 2.493472,3.5202"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4236"
d="m 12.467368,182.74125 4.009116,9.925"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4238"
d="m 9.4849789,182.83904 -4.2046813,9.87611"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
sodipodi:nodetypes="cc"
transform="matrix(0.59287153,-0.28418321,0.25089012,0.52341448,79.780054,-59.357394)"
inkscape:connector-curvature="0"
id="path4240"
d="m 7.4315299,194.71969 7.0403961,0"
style="fill:none;stroke:#c32405;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

2
view/theme/dispy/photo_view.tpl Executable file → Normal file
View file

@ -17,7 +17,7 @@
</div>
<div id="photo-photo-end"></div>
<div id="photo-caption" >$desc</div>
<div id="photo-caption">$desc</div>
{{ if $tags }}
<div id="in-this-photo-text">$tags.0</div>
<div id="in-this-photo">$tags.1</div>

BIN
view/theme/dispy/premium.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before After
Before After

BIN
view/theme/dispy/prev.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 853 B

After

Width:  |  Height:  |  Size: 593 B

Before After
Before After

View file

@ -1,12 +1,29 @@
<div class="vcard">
{{ if $profile.edit }}
<div class="action">
<span class="icon-profile-edit"></span>
<a href="#" rel="#profiles-menu" class="ttright" id="profiles-menu-trigger" title="$profile.edit.3">$profile.edit.1</a>
<ul id="profiles-menu" class="menu-popup">
{{ for $profile.menu.entries as $e }}
<li>
<a href="profiles/$e.id"><img src='$e.photo'>$e.profile_name</a>
</li>
{{ endfor }}
<li><a href="profile_photo" >$profile.menu.chg_photo</a></li>
<li><a href="profiles/new" id="profile-listing-new-link">$profile.menu.cr_new</a></li>
</ul>
</div>
{{ endif }}
<div class="fn label">$profile.name</div>
{{ if $pdesc }}
<div class="title">$profile.pdesc</div>
{{ endif }}
<div id="profile-photo-wrapper">
<img class="photo" width="175" height="175" src="$profile.photo" alt="$profile.name" />
<img class="photo" width="175" height="175" src="$profile.photo?rev=$profile.picdate" alt="$profile.name" />
</div>
{{ if $location }}
@ -15,10 +32,11 @@
<div class="adr">
{{ if $profile.address }}
<div class="street-address">$profile.address</div>{{ endif }}
<span class="city-state-zip">$profile.zip</span>
<span class="locality">$profile.locality</span>{{ if $profile.locality }}, {{ endif }}
<span class="region">$profile.region</span>
<span class="postal-code">$profile.postal-code</span>
<span class="city-state-zip">
<span class="locality">$profile.locality</span>{{ if $profile.locality }}, {{ endif }}
<span class="region">$profile.region</span>
<span class="postal-code">$profile.postal-code</span>
</span>
{{ if $profile.country-name }}<span class="country-name">$profile.country-name</span>{{ endif }}
</div>
</div>

2
view/theme/dispy/saved_searches_aside.tpl Executable file → Normal file
View file

@ -1,4 +1,4 @@
<div class="widget" id="saved-search-list">
<div id="saved-search-list" class="widget">
<h3 id="search">$title</h3>
$searchbox

View file

@ -45,12 +45,19 @@ body {
font-size: 16px;
line-height: 1.1em;
}
body, button, input, select, textarea {
font-family: sans-serif;
color: #222;
background-color: rgb(254,254,254);
background-color: rgba(254,254,254,255);
}
select {
border: 1px #555 dotted;
padding: 3px;
margin: 2px;
}
option {
padding: 3px;
vertical-align: middle;
}
/* remember to define focus styles! */
:focus {
@ -69,21 +76,10 @@ mark {
font-style: italic;
font-weight: bold;
}
ins {
background: #ff9;
color: #000;
text-decoration: none;
}
mark {
background: #ff0;
color: #000;
font-style: italic;
font-weight: bold;
}
/* Redeclare monospace font family: h5bp.com/j */
pre, code, kbd, samp, .wall-item-body code {
font-family: monospace, monospace;
_font-family: 'courier new', monospace;
_font-family: monospace;
font-size: 1em; }
/* Improve readability of pre-formatted text in all browsers */
@ -131,6 +127,7 @@ a:hover img {
}
blockquote {
background: #eee;
color: #111;
text-indent: 5px;
padding: 5px;
border: 1px #aaa solid;
@ -138,7 +135,6 @@ blockquote {
}
a:hover {
color: #729fcf;
padding-bottom: 0;
border-bottom: 1px dotted #729fcf;
}
.required {
@ -194,14 +190,16 @@ input[type=submit] {
color: #fff;
}
/**
* global
*/
/* .tool .action */
.action {
float: right;
margin: 5px 0;
}
/**
* login
*/
@ -209,9 +207,10 @@ input[type=submit] {
margin-right: 20px;
}
/*********
* nav
*********/
/**
* nav
*/
nav {
height: 60px;
display: block;
@ -344,6 +343,12 @@ nav .nav-link {
#nav-home-link:hover {
background-position: -66px -132px;
}
#nav-intro-link {
background-position: 0px -190px;
}
#nav-intro-link:hover {
background-position: -44px -190px;
}
#nav-login-link {
background-position: 0 -88px;
}
@ -460,6 +465,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
right: 1%;
padding: 5px;
background: #2e3436;
color: transparent;
border-radius: 5px;
z-index: 100;
}
@ -504,17 +510,21 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
#home-update {
background-position: -90px 0px;
}
#intro-update {
background-position: -120px 0px;
}
#lang-select-icon {
cursor: pointer;
position: absolute;
left: 0;
top: 0;
position: fixed;
left: 28px;
bottom: 6px;
z-index: 10;
}
#language-selector {
position: absolute;
top: 0;
left: 16px;
padding-right: 50px;
position: fixed;
bottom: 2px;
left: 52px;
z-index: 10;
}
.menu-popup {
position: absolute;
@ -527,9 +537,9 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
list-style: none;
border: 3px solid #364e59;
z-index: 100000;
-webkit-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-moz-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.7);
-webkit-box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
-moz-box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
box-shadow: 3px 3px 10px 0 rgba(0, 0, 0, 0.7);
}
.menu-popup a {
display: block;
@ -577,24 +587,24 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-link
/** sysmsg **/
#sysmsg_info {
position:fixed;
bottom:0;
-moz-box-shadow:0 0 5px #888;
-webkit-box-shadow:0 0 5px #888;
box-shadow:0 0 5px #888;
position: fixed;
bottom: 0;
-moz-box-shadow: 3px 3px 3px 10px 0 #000;
-webkit-box-shadow: 3px 3px 10px 0 #000;
box-shadow: 3px 3px 10px 0 #000;
padding: 10px;
background-color:#fcaf3e;
background-color: #fcaf3e;
border:2px solid #f8911b;
border-bottom:0;
border-bottom: 0;
padding-bottom: 50px;
z-index: 1000;
}
#sysmsg {
position: fixed;
bottom: 0;
-moz-box-shadow: 0 0 5px #888;
-webkit-box-shadow: 0 0 5px #888;
box-shadow: 0 0 5px #888;
-moz-box-shadow: 3px 3px 10px 0 #000;
-webkit-box-shadow: 3px 3px 10px 0 #000;
box-shadow: 3px 3px 10px 0 #000;
padding: 10px;
background-color: #fcaf3e;
border: 2px solid #f8911b;
@ -629,8 +639,24 @@ aside {
.vcard #profile-photo-wrapper {
margin: 20px;
}
/* http://css-tricks.com/snippets/css/css-box-shadow/
* box-shadow:
* 1. The horizontal offset of the shadow, positive means
* the shadow will be on the right of the box, a negative
* offset will put the shadow on the left of the box.
* 2. The vertical offset of the shadow, a negative one
* means the box-shadow will be above the box, a
* positive one means the shadow will be below the box.
* 3. The blur radius (optional), if set to 0 the shadow
* will be sharp, the higher the number, the more blurred
* it will be.
* 4. The spread radius (optional), positive values increase
* the size of the shadow, negative values decrease the size.
* Default is 0 (the shadow is same size as blur).
* 5. Colo[u]r
*/
.vcard #profile-photo-wrapper img {
box-shadow: 3px 3px 10px 0;
box-shadow: 3px 3px 10px 0 #000;
}
aside h4 {
font-size: 1.2em;
@ -639,8 +665,10 @@ aside #viewcontacts {
text-align: right;
}
.aprofile dt {
box-shadow: 1px 1px 5px 0;
color: #666666;
background: transparent;
font-weight: bold;
box-shadow: 1px 1px 5px 0 #000;
margin: 15px 0 5px;
padding-left: 5px;
}
@ -660,7 +688,9 @@ aside #viewcontacts {
#netsearch-box {
margin: 30px 0px;
}
.ttright {
margin: 0px 0px 0px 0px;
}
/**
* contacts block
@ -703,51 +733,11 @@ aside #viewcontacts {
}
#jot #jot-tools span a {
display: block;
/*color: #cccccc; */
/*width: 100%; */
/*height: 40px; */
/*text-align: center;*/
/*line-height: 40px; */
/*overflow: hidden;*/
}
/*#jot #jot-tools li:hover {*/
/*background-color: #364e59;*/
/*}*/
#jot #jot-tools .perms {
float: right;
width: 40px;
}
/*#jot #jot-tools .perms a.unlock {*/
/* width: 30px; */
/* border-left: 10px solid #cccccc;*/
/* background-color: #cccccc; */
/*}*/
/*#jot #jot-tools .perms a.lock {*/
/* width: 30px; */
/* border-left: 10px solid #666666;*/
/* background-color: #666666; */
/*}*/
/*#jot #jot-tools li.submit { */
/* float: right; */
/* background-color: #cccccc; */
/* border-bottom: 2px solid #cccccc; */
/* border-right: 1px solid #666666; */
/* border-left: 1px solid #666666; */
/*} */
/*#jot #jot-tools li.submit input { */
/* border: 0px; */
/* margin: 0px; */
/* padding: 0px; */
/* background-color: #cccccc; */
/* color: #666666; */
/* width: 80px; */
/* height: 40px; */
/* line-height: 40px; */
/*} */
/*#jot #jot-tools li.submit input:hover {*/
/* background-color: #bdcdd4; */
/* color: #666666; */
/*} */
#jot #jot-tools li.loading {
float: right;
background-color: #ffffff;
@ -783,6 +773,15 @@ aside #viewcontacts {
#profile-jot-text_ifr {
width:99.900002% !important;
}
[id$="jot-text_ifr"] {
width: 99.900002% !important;
color: #2e2f2e;
background: #eec;
}
[id$="jot-text_ifr"] .mceContentBody {
color: #2e2f2e;
background: #eec;
}
#profile-attach-wrapper,
#profile-audio-wrapper,
#profile-link-wrapper,
@ -822,6 +821,9 @@ aside #viewcontacts {
border-bottom: 0;
padding: 5px;
}
#profile-jot-net {
margin: 5px 0;
}
#jot-preview-link {
margin: 0 0 0 10px;
border: 0;
@ -837,18 +839,19 @@ aside #viewcontacts {
border: 0;
text-decoration: none;
float: right;
cursor: pointer;
}
#profile-jot-perms {
float: right;
background-color: #555753;
height: 22px;
width: 20px;
-webkit-border-radius: 5px 0px 0px 5px;
-moz-border-radius: 5px 0px 0px 5px;
border-radius: 5px 0px 0px 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
overflow: hidden;
border: 0px;
margin: 0 -4px 0 10px;
margin: 0 10px 0 10px;
}
#profile-jot-plugin-wrapper {
width: 1px;
@ -866,23 +869,21 @@ aside #viewcontacts {
height: 22px;
background-color: #555753;
color: #eeeeec;
-webkit-border-radius: 0 5px 5px 0;
-moz-border-radius: 0 5px 5px 0;
border-radius: 0 5px 5px 0;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
border: 0;
margin: 0;
float: right;
}
#jot-perms-icons {
background-color: #555753;
#jot-perms-icon {
height: 22px;
width: 20px;
-webkit-border-radius: 0 5px 5px 0;
-moz-border-radius: 0 5px 5px 0;
border-radius: 0 5px 5px 0;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
overflow: hidden;
border: 0;
margin: 0 0 0 94.4%;
}
#profile-jot-acl-wrapper {
margin: 0 10px;
@ -925,18 +926,15 @@ aside #viewcontacts {
clear: both;
}
#jot-title-desc {
color: #cccccc;
color: #ccc;
}
#profile-jot-desc {
color: #a00;
margin: 5px 0;
}
#jot-title-wrapper {
margin-bottom: 5px;
}
#jot-title {
border: 1px solid #cccccc;
width: 90%;
}
#jot-title-display {
font-weight: bold;
}
@ -945,17 +943,22 @@ aside #viewcontacts {
}
#jot-preview-content {
background-color: #ffffe0;
border: 1px #aaaa00 solid;
color: #111;
border: 1px #aa0 solid;
border-radius: 3px;
padding: 3px 3px 6px 10px;
}
#jot-preview-content .wall-item-outside-wrapper {
border: 0;
border-radius: 0px;
}
/**
* section
*/
section {
margin: 20px 6% 0 4%;
margin: 20px 8% 0 4%;
font-size: 0.8em;
padding-right: 230px;
min-width: 475px;
@ -964,28 +967,32 @@ section {
/** tabs **/
.tabs {
list-style: none;
margin: 10px 0 10px;
margin: 10px 0;
padding: 0;
border-bottom: 1px solid #729fcf;
font-size: 14px;
}
.tabs li {
display: inline;
}
.tab {
padding: 0 5px;
border: 1px solid #729fcf;
padding: 4px;
}
.tab:hover {
background-color: #729fcf;
background: #729fcf;
color: #eeeeec;
border: 0px;
}
.tab:active {
background-color: #729fcf;
background: #729fcf;
color: #eeeeec;
border: 0px;
}
.tab.active {
background: #729fcf;
color: #eeeeec;
}
.tab a {
border: 0;
text-decoration: none;
}
/**
* items
@ -1011,6 +1018,9 @@ section {
.shiny {
background: #efefdf;
}
.heart {
color: red;
}
.wall-item-content {
overflow-x: auto;
}
@ -1097,7 +1107,7 @@ section {
clear: left;
font-size: 0.8em;
color: #878883;
margin: 20px 0 0 110px;
margin: 20px 20px 0 110px;
}
.wall-item-ago {
display: inline;
@ -1107,7 +1117,7 @@ section {
clear:both;
}
.wall-item-location {
margin-top: 10px;
margin-top: 15px;
width: 100px;
overflow: hidden;
text-overflow: ellipsis;
@ -1246,7 +1256,7 @@ section {
}
[class^="comment-edit-text"] {
margin: 5px 0 10px 20px;
width: 86.5%;
width: 84.5%;
}
.comment-edit-text-empty {
height: 20px;
@ -1292,11 +1302,12 @@ section {
**/
.wall-item-body code {
display: block;
padding-left: 10px;
padding: 0 0 10px 5px;
border-color: #ccc;
border-style: solid;
border-width: 1px 1px 1px 10px;
background: #eee;
color: #444;
width: 95%;
}
@ -1333,10 +1344,11 @@ div[id$="wrapper"] br {
.photo-album-image-wrapper,
.photo-top-image-wrapper {
float: left;
-moz-box-shadow: 0 0 5px #888;
-webkit-box-shadow: 0 0 5px #888;
box-shadow: 0 0 5px #888;
-moz-box-shadow: 3px 3px 10px 0 #000;
-webkit-box-shadow: 3px 3px 10px 0 #000;
box-shadow: 3px 3px 10px 0 #000;
background-color: #eee;
color: #111;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
@ -1505,20 +1517,25 @@ div[id$="wrapper"] br {
}
.mail-list-sender-name {
display: inline;
font-size: 1.1em;
}
.mail-list-date {
display: inline;
font-size: 0.8em;
font-size: 0.9em;
padding-left: 10px;
}
.mail-list-sender-name, .mail-list-date {
font-style: italic;
}
.mail-list-subject {
font-size: 1.5em;
font-size: 1.2em;
}
.mail-list-delete-wrapper {
float: right;
}
.mail-list-outside-wrapper-end {
clear: both;
border-bottom: 1px #eec dotted;
}
.mail-conv-sender {
float: left;
@ -1553,8 +1570,7 @@ div[id$="wrapper"] br {
.view-contact-wrapper,
.contact-entry-wrapper {
float: left;
margin-right: 5px;
margin-bottom: 40px;
margin: 0 5px 40px 0;
width: 120px;
height: 120px;
padding: 3px;
@ -1666,8 +1682,9 @@ div[id$="wrapper"] br {
}
.contact-photo-menu {
width: auto;
border: 2px solid #444444;
background: #FFFFFF;
border: 2px solid #444;
background: #eee;
color: #111;
position: absolute;
left: 0px; top: 90px;
display: none;
@ -1689,7 +1706,6 @@ div[id$="wrapper"] br {
}
/**
* register, settings & profile forms
*/
@ -1706,6 +1722,7 @@ div[id$="wrapper"] br {
-moz-border-radius: 5px;
border-radius: 5px;
padding: 5px;
color: #111;
}
#settings-default-perms {
margin-bottom: 20px;
@ -1715,51 +1732,84 @@ div[id$="wrapper"] br {
clear: both;
}
#register-form label,
#profile-edit-form label {
width: 300px;
float: left;
}
/*#register-form label, */
/*#profile-edit-form label {*/
/* width: 300px; */
/* float: left; */
/*} */
#register-form span,
#profile-edit-form span {
color:#555753;
display:block;
margin-bottom:20px;
/*#register-form span, */
/*#profile-edit-form span {*/
/* color: #555753; */
/* display: block; */
/* margin-bottom: 20px; */
/*} */
#profile-edit-marital-label span {
margin: -4px;
}
.settings-submit-wrapper,
.profile-edit-submit-wrapper {
margin: 30px 0px;
}
.profile-edit-side-div {
margin: 5px 2px 0 0;
display: none;
}
/*.profile-edit-side-div:hover {
display: block;
}
.profile-edit-side-link {
float: right;
margin: 3px 0px 0px 70px;
}*/
#profiles-menu-trigger {
margin: 0px 0px 0px 25px;
}
.profile-listing {
float: left;
margin: 20px 20px 0px 0px;
}
.icon-profile-edit {
background: url("icons.png") -150px 0px no-repeat;
border: 0;
cursor: pointer;
display: block;
float: right;
width: 20px;
height: 20px;
margin: 0 0 -18px;
position: absolute;
text-decoration: none;
top: 18px;
right: 226px;
}
#profile-edit-links ul {
margin: 20px 0;
padding: 0;
list-style: none;
}
.marital {
margin-top: 5px;
}
#register-sitename {
display: inline;
font-weight: bold;
}
#advanced-expire-popup {
background: #2e2f2e;
color: #eec;
}
#id_ssl_policy {
width: 374px;
}
/**
* contacts selector
*/
.group-delete-wrapper {
margin: -28px 150px 0 0;
margin: -31px 122px 0 0;
float: right;
}
#group-edit-submit-wrapper {
margin: 0 0 10px 0;
display: inline;
@ -1943,7 +1993,12 @@ div[id$="wrapper"] br {
*/
.directory-item {
float: left;
margin: 50px 50px 0px 0px;
/*margin: 50px 50px 0px 0px;*/
margin: 0 5px 4px 0;
padding: 3px;
width: 180px;
height: 250px;
position: relative;
}
@ -1955,10 +2010,13 @@ div[id$="wrapper"] br {
}
.group-selected, .nets-selected {
padding: 3px;
border: 1px solid #CCCCCC;
background: #F8F8F8;
color: #111;
background: #f8f8f8;
font-weight: bold;
}
.group-selected:hover, .nets-selected:hover {
color: #111;
}
.groupsideedit {
margin-right: 10px;
}
@ -1987,7 +2045,9 @@ div[id$="wrapper"] br {
text-decoration: none;
text-align: center;
}
#peoplefind-sidebar form {
margin-bottom: 10px;
}
#sidebar-new-group:hover {
/*background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #b20202), color-stop(1, #d60808) );*/
/*background: -moz-linear-gradient( center top, #b20202 5%, #d60808 100% );*/
@ -1998,6 +2058,18 @@ div[id$="wrapper"] br {
position: relative;
top: 1px;
}
#side-peoplefind-url {
background-color: #e5e0cf;
color: #666;
border: 1px 666 solid;
margin-right: 3px;
width: 75%;
}
#side-peoplefind-url:hover, #side-peoplefind-url:focus {
background-color: #efefef;
color: #222;
border: 1px 333 solid;
}
.nets-ul {
list-style-type: none;
padding-left: 0px;
@ -2043,12 +2115,12 @@ div[id$="wrapper"] br {
border-bottom: 1px solid #000;
}
#adminpage dt {
width: 200px;
width: 250px;
float: left;
font-weight: bold;
}
#adminpage dd {
margin-left: 200px;
margin-left: 250px;
}
#adminpage h3 {
border-bottom:1px solid #ccc;
@ -2105,7 +2177,7 @@ div[id$="wrapper"] br {
overflow: auto;
width: 100%;
}
.field label {
.field label, label {
float: left;
width: 275px;
display: block;
@ -2116,8 +2188,9 @@ div[id$="wrapper"] br {
padding: 5px;
background: #eee;
vertical-align: middle;
color: #111;
}
.field input {
.field input, input[type="text"] {
width: 250px;
height: 25px;
border: 1px #999 solid;
@ -2156,7 +2229,7 @@ div[id$="wrapper"] br {
display:none !important;
}
.field.radio .field_help {
margin-left: 0;
margin-left: 297px;
}
@ -2166,8 +2239,8 @@ div[id$="wrapper"] br {
.popup {
width: 100%;
height: 100%;
top:0px;
left:0px;
top: 0px;
left: 0px;
position: absolute;
display: none;
}
@ -2273,6 +2346,7 @@ div[id$="wrapper"] br {
background: url(icons.png) no-repeat;
border: 0;
text-decoration: none;
border-radius: 5px;
}
.icon:hover {
border: 0;
@ -2282,12 +2356,6 @@ div[id$="wrapper"] br {
.icon.drophide, .icon.delete {
float: left;
}
/*.icon.s22 {
display: block;
background: url(icons.png) no-repeat;
width: 22px;
height: 22px;
}*/
.icon.s22.delete {
display: block;
background-position: -110px 0;
@ -2376,7 +2444,7 @@ div[id$="wrapper"] br {
background-position: -70px -40px;
}
.unlock {
background-position: -90px -40px;
background-position: -88px -40px;
}
.video {
background-position: -110px -40px;
@ -2472,113 +2540,117 @@ footer {
#photos-upload-permissions-wrapper,
#profile-jot-acl-wrapper {
display: block !important;
background: #eec;
color: #2e2f2e;
}
#acl-wrapper {
width: 690px;
float: left;
width: 660px;
margin: 0 auto;
}
#acl-search {
float: right;
background: #fff url("../../../images/search_18.png") no-repeat right center;
padding-right: 20px;
margin: 6px;
}
#acl-showall {
float:left;
display:block;
width:auto;
height:18px;
background-color:#CCC;
background-image:url("../../../images/show_all_off.png");
background-position:7px 7px;
background-repeat:no-repeat;
padding:7px 10px 7px 30px;
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
color:#999;
float: left;
display: block;
width: auto;
height: 18px;
background: #eec url("../../../images/show_all_off.png") 8px 8px no-repeat;
padding: 7px 10px 7px 30px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
color: #999;
margin: 5px 0;
}
#acl-showall.selected {
color:#000;
background-color:#F90;
background-image:url(../../../images/show_all_on.png);
color: #000;
background: #f90 url(../../../images/show_all_on.png) 8px 8px no-repeat;
}
#acl-list {
height:210px;
border:1px solid #ccc;
clear:both;
margin-top:30px;
overflow:auto;
}
#acl-list-content {
height: 210px;
border: 1px solid #ccc;
clear: both;
margin-top: 30px;
overflow: auto;
}
/*#acl-list-content {
}*/
.acl-list-item {
display:block;
width:150px;
height:30px;
border:1px solid #ccc;
margin:5px;
float:left;
border: 1px solid #ccc;
display: block;
float: left;
height: 110px;
margin: 3px 0 5px 5px;
width: 120px;
}
.acl-list-item img {
width:22px;
height:22px;
float:left;
margin:4px;
width: 22px;
height: 22px;
float: left;
margin: 5px 5px 20px;
}
.acl-list-item p {
height: 12px;
font-size: 10px;
margin: 0;
margin: 0 0 22px;
padding: 2px 0 1px;
}
.acl-list-item a {
font-size:8px;
display:block;
width:40px;
height:10px;
float:left;
color:#999;
background-color:#CCC;
background-position:3px 3px;
background-repeat:no-repeat;
margin-right:5px;
-webkit-border-radius:2px;
-moz-border-radius:2px;
border-radius:2px;
padding-left:15px;
background: #ccc 3px 3px no-repeat;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
clear: both;
font-size: 10px;
display: block;
width: 55px;
height: 20px;
color: #999;
margin: 5px auto 0;
padding: 0 3px;
text-align: center;
vertical-align: middle;
}
#acl-wrapper a:hover {
text-decoration:none;
color:#000;
color: #000;
border: 0;
}
.acl-button-show {
background-image:url('../../../images/show_off.png');
background-image: url('../../../images/show_off.png');
margin: 0 auto;
}
.acl-button-hide {
background-image:url('../../../images/hide_off.png');
background-image: url('../../../images/hide_off.png');
margin: 0 auto;
}
.acl-button-show.selected {
color:#000;
background-color:#9ade00;
background-image:url(../../../images/show_on.png);
color: #000;
background-color: #9ade00;
background-image: url(../../../images/show_on.png);
}
.acl-button-hide.selected {
color:#000;
background-color:#ff4141;
background-image:url(../../../images/hide_on.png);
color: #000;
background-color: #ff4141;
background-image: url(../../../images/hide_on.png);
}
.acl-list-item.groupshow {
border-color:#9ade00;
border-color: #9ade00;
}
.acl-list-item.grouphide {
border-color:#ff4141;
border-color: #ff4141;
}
/** /acl **/
/* autocomplete popup */
.acpopup {
max-height: 150px;
max-height: 175px;
max-width: 42%;
background-color: #555753;
color: #fff;
overflow: auto;
@ -2627,3 +2699,9 @@ footer {
display: inline-block;
}
@media handheld {
body {
font-size: 15pt;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 B

After

Width:  |  Height:  |  Size: 571 B

Before After
Before After

View file

@ -1,5 +1,17 @@
<?php
$a->theme_info = array();
/*
* Name: Dispy
* Description: Dispy, Friendica theme
* Version: 0.9
* Author: unknown
* Maintainer: Simon <http://simon.kisikew.org/>
*/
$a->theme_info = array(
'extends' => 'dispy'
);
$a->page['htmlhead'] .= <<< EOT
<script>
@ -52,6 +64,26 @@ $(document).ready(function() {
$('#drop-' + id).addClass('iconspacer'); }
);
// click outside notifications menu closes it
$('html').click(function() {
$('#nav-notifications-linkmenu').removeClass('selected');
document.getElementById("nav-notifications-menu").style.display = "none";
});
$('#nav-notifications-linkmenu').click(function(event) {
event.stopPropagation();
});
// click outside profiles menu closes it
$('html').click(function() {
$('#profiles-menu-trigger').removeClass('selected');
document.getElementById("profiles-menu").style.display = "none";
});
$('#profiles-menu').click(function(event) {
event.stopPropagation();
});
// main function in toolbar functioning
function toggleToolbar() {
if ( $('#nav-floater').is(':visible') ) {
$('#nav-floater').slideUp('fast');
@ -65,10 +97,32 @@ $(document).ready(function() {
});
}
};
// our trigger for the toolbar button
$('.floaterflip').click(function() {
toggleToolbar();
return false;
});
// (attempt) to change the text colour in a top post
$('#profile-jot-text').focusin(function() {
$(this).css({color: '#eec'});
});
/* $('#profile-photo-wrapper').mouseover(function() {
$('.profile-edit-side-div').css({display: 'block'});
}).mouseout(function() {
$('.profile-edit-side-div').css({display: 'none'});
return false;
});
$('img.photo').mouseover(function() {
$('.profile-edit-side-div').css({display: 'block'});
}).mouseout(function() {
$('.profile-edit-side-div').css({display: 'none'});
return false;
});*/
});
</script>
EOT;

View file

@ -26,11 +26,14 @@
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.vote }}
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$item.id">
<a href="#" class="icon like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
<a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
{{ if $item.vote.share }}<a href="#" class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
{{ if $item.vote.share }}
<a href="#" id="share-$item.id"
class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
<img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
</div>
{{ endif }}

View file

@ -31,11 +31,15 @@
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.vote }}
<div class="wall-item-like-buttons" id="wall-item-like-buttons-$item.id">
<a href="#" class="icon like" title="$item.vote.like.0" onclick="dolike($item.id,'like'); return false"></a>
<a href="#" class="icon dislike" title="$item.vote.dislike.0" onclick="dolike($item.id,'dislike'); return false"></a>
{{ if $item.vote.share }}<a href="#" class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
{{ if $item.vote.share }}
<a href="#" id="share-$item.id"
class="icon recycle wall-item-share-buttons" title="$item.vote.share.0" onclick="jotShare($item.id); return false"></a>{{ endif }}
<img id="like-rotator-$item.id" class="like-rotator" src="images/rotator.gif" alt="$item.wait" title="$item.wait" style="display: none;" />
</div>
{{ endif }}
@ -63,6 +67,7 @@
{{ endfor }}
</div>
</div>
</div>
<div class="wall-item-author">
<a href="$item.profile_url" title="$item.linktitle" class="wall-item-name-link"><span class="wall-item-name$item.sparkle" id="wall-item-name-$item.id" >$item.name</span></a>

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

View file

@ -309,7 +309,7 @@ div.wall-item-content-wrapper.shiny {
margin-bottom: 10px;
}
.group-selected, .nets-selected {
.group-selected, .nets-selected, .fileas-selected {
padding: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
@ -1024,6 +1024,10 @@ input#dfrn-url {
float: left;
}
.filer-item {
margin-left: 10px;
float: left;
}
.wall-item-links-wrapper {
float: left;
@ -1864,11 +1868,11 @@ a.mail-list-link {
margin-top: 10px;
}
.nets-ul {
.nets-ul, .fileas-ul {
list-style-type: none;
}
.nets-ul li {
.nets-ul li, .fileas-ul li {
margin-top: 10px;
}
@ -1879,6 +1883,14 @@ a.mail-list-link {
margin-left: 42px;
}
.fileas-link {
margin-left: 24px;
}
.fileas-all {
margin-left: 0px;
}
#search-save {
margin-left: 5px;
}
@ -2603,12 +2615,12 @@ aside input[type='text'] {
margin-top: 10px;
}
.body-tag {
.body-tag, .filesavetags {
opacity: 0.5;
filter:alpha(opacity=50);
}
.body-tag:hover {
.body-tag:hover, .filesavetags:hover {
opacity: 1.0 !important;
filter:alpha(opacity=100) !important;
}
@ -2902,6 +2914,11 @@ aside input[type='text'] {
.tagged { background-position: -48px -48px; }
.filer-icon {
display: block; width: 16px; height: 16px;
background-image: url('file.gif');
}
.icon.dim { opacity: 0.3;filter:alpha(opacity=30); }
.attachtype {

View file

@ -5,6 +5,8 @@ $a->page['htmlhead'] .= <<< EOT
<script>
$(document).ready(function() {
$('html').click(function() { $("#nav-notifications-menu" ).hide(); });
$('.group-edit-icon').hover(
function() {
$(this).addClass('icon'); $(this).removeClass('iconspacer');},

View file

@ -57,7 +57,9 @@
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.filer }}
<a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.star.filer"></a>
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
{{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}
</div>

View file

@ -61,6 +61,9 @@
<a href="#" id="starred-$item.id" onclick="dostar($item.id); return false;" class="star-item icon $item.isstarred" title="$item.star.toggle"></a>
<a href="#" id="tagger-$item.id" onclick="itemTag($item.id); return false;" class="tag-item icon tagged" title="$item.star.tagger"></a>
{{ endif }}
{{ if $item.filer }}
<a href="#" id="filer-$item.id" onclick="itemFiler($item.id); return false;" class="filer-item filer-icon" title="$item.star.filer"></a>
{{ endif }}
<div class="wall-item-delete-wrapper" id="wall-item-delete-wrapper-$item.id" >
{{ if $item.drop.dropping }}<a href="item/drop/$item.id" onclick="return confirmDelete();" class="icon drophide" title="$item.drop.delete" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a>{{ endif }}

Some files were not shown because too many files have changed in this diff Show more