aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x.gitignore3
-rwxr-xr-x.htaccess5
-rwxr-xr-xboot.php57
-rw-r--r--build.xml46
-rwxr-xr-xdatabase.sql3
-rwxr-xr-xhtconfig.php8
-rwxr-xr-xinclude/acl_selectors.php14
-rw-r--r--include/bbcode.php6
-rwxr-xr-xinclude/contact_widgets.php29
-rwxr-xr-xinclude/conversation.php129
-rwxr-xr-xinclude/dba.php24
-rwxr-xr-xinclude/delivery.php35
-rwxr-xr-xinclude/diaspora.php42
-rwxr-xr-xinclude/email.php16
-rwxr-xr-xinclude/event.php2
-rwxr-xr-xinclude/html2bbcode.php24
-rwxr-xr-xinclude/items.php59
-rw-r--r--include/msgclean.php225
-rwxr-xr-xinclude/nav.php8
-rwxr-xr-xinclude/network.php4
-rwxr-xr-xinclude/notifier.php37
-rwxr-xr-xinclude/oembed.php7
-rwxr-xr-xinclude/poller.php23
-rwxr-xr-xinclude/queue.php11
-rwxr-xr-xinclude/security.php57
-rwxr-xr-xinclude/template_processor.php13
-rw-r--r--include/text.php130
-rwxr-xr-xjs/main.js4
-rwxr-xr-xlibrary/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js262
-rwxr-xr-xmod/admin.php69
-rwxr-xr-xmod/contacts.php47
-rw-r--r--mod/dfrn_confirm.php6
-rwxr-xr-xmod/dfrn_notify.php72
-rwxr-xr-xmod/dfrn_poll.php6
-rwxr-xr-xmod/dfrn_request.php29
-rwxr-xr-xmod/directory.php17
-rwxr-xr-xmod/display.php10
-rwxr-xr-xmod/filer.php23
-rw-r--r--mod/filerm.php21
-rwxr-xr-xmod/group.php26
-rwxr-xr-xmod/hcard.php2
-rwxr-xr-xmod/item.php246
-rwxr-xr-xmod/manage.php2
-rwxr-xr-xmod/message.php53
-rwxr-xr-xmod/network.php61
-rwxr-xr-xmod/notifications.php44
-rw-r--r--mod/notify.php4
-rwxr-xr-xmod/openid.php9
-rwxr-xr-xmod/parse_url.php2
-rwxr-xr-xmod/photos.php11
-rwxr-xr-xmod/profile.php2
-rwxr-xr-xmod/profile_photo.php18
-rwxr-xr-xmod/profiles.php42
-rwxr-xr-xmod/settings.php109
-rwxr-xr-xmod/share.php2
-rwxr-xr-xspec/dfrn-snap2.jpgbin0 -> 246724 bytes
-rwxr-xr-xspec/dfrn2.odtbin0 -> 209276 bytes
-rwxr-xr-xspec/dfrn2.pdfbin0 -> 304958 bytes
-rwxr-xr-xspec/zot.txt (renamed from zot.txt)0
-rwxr-xr-xtests/autoname_test.php73
-rwxr-xr-xtests/contains_attribute_test.php51
-rwxr-xr-xtests/expand_acl_test.php142
-rw-r--r--tests/get_tags_test.php313
-rw-r--r--tests/xss_filter_test.php50
-rwxr-xr-xupdate.php7
-rwxr-xr-xutil/db_update.php2
-rwxr-xr-xview/admin_site.tpl1
-rwxr-xr-xview/atom_feed.tpl1
-rwxr-xr-xview/atom_feed_dfrn.tpl3
-rwxr-xr-xview/auto_request.tpl7
-rwxr-xr-xview/cropbody.tpl1
-rw-r--r--view/de/messages.po1201
-rwxr-xr-xview/de/strings.php102
-rwxr-xr-xview/dfrn_request.tpl4
-rwxr-xr-xview/fileas_widget.tpl12
-rwxr-xr-xview/group_drop.tpl2
-rwxr-xr-xview/group_edit.tpl1
-rwxr-xr-xview/jot-header.tpl12
-rwxr-xr-xview/like_noshare.tpl8
-rwxr-xr-xview/login.tpl2
-rwxr-xr-xview/logout.tpl2
-rw-r--r--[-rwxr-xr-x]view/mail_list.tpl2
-rwxr-xr-xview/msg-header.tpl85
-rwxr-xr-xview/photo_view.tpl2
-rwxr-xr-xview/profile_edit.tpl5
-rwxr-xr-xview/profile_listing_header.tpl2
-rwxr-xr-xview/profile_photo.tpl1
-rwxr-xr-xview/profile_vcard.tpl4
-rwxr-xr-xview/prv_message.tpl6
-rwxr-xr-xview/settings.tpl3
-rwxr-xr-xview/settings_addons.tpl1
-rwxr-xr-xview/settings_connectors.tpl1
-rwxr-xr-xview/settings_oauth.tpl5
-rwxr-xr-xview/settings_oauth_edit.tpl2
-rwxr-xr-xview/theme/darkbubble/theme.php18
-rwxr-xr-xview/theme/darkzero-NS/theme.php2
-rwxr-xr-xview/theme/darkzero/theme.php2
-rwxr-xr-xview/theme/diabook-blue/group_side.tpl29
-rw-r--r--view/theme/diabook-blue/icons/com_side.pngbin0 -> 680 bytes
-rw-r--r--view/theme/diabook-blue/icons/events.pngbin0 -> 663 bytes
-rw-r--r--view/theme/diabook-blue/icons/home.pngbin0 -> 722 bytes
-rw-r--r--view/theme/diabook-blue/icons/isstar.pngbin1277 -> 0 bytes
-rw-r--r--view/theme/diabook-blue/icons/mess_side.pngbin0 -> 664 bytes
-rwxr-xr-xview/theme/diabook-blue/icons/next.pngbin0 -> 300 bytes
-rw-r--r--view/theme/diabook-blue/icons/notes.pngbin0 -> 739 bytes
-rwxr-xr-xview/theme/diabook-blue/icons/notifications.pngbin795 -> 727 bytes
-rwxr-xr-xview/theme/diabook-blue/icons/prev.pngbin0 -> 336 bytes
-rw-r--r--view/theme/diabook-blue/icons/pubgroups.pngbin0 -> 710 bytes
-rwxr-xr-xview/theme/diabook-blue/icons/starred.pngbin0 -> 501 bytes
-rw-r--r--[-rwxr-xr-x]view/theme/diabook-blue/icons/toogle_off.pngbin391 -> 834 bytes
-rw-r--r--[-rwxr-xr-x]view/theme/diabook-blue/icons/toogle_on.pngbin429 -> 715 bytes
-rwxr-xr-xview/theme/diabook-blue/icons/unglobe.pngbin798 -> 0 bytes
-rwxr-xr-xview/theme/diabook-blue/icons/unstarred.pngbin358 -> 468 bytes
-rw-r--r--view/theme/diabook-blue/nav.tpl4
-rwxr-xr-xview/theme/diabook-blue/photo_album.tpl7
-rwxr-xr-xview/theme/diabook-blue/photo_top.tpl7
-rwxr-xr-xview/theme/diabook-blue/photo_view.tpl27
-rw-r--r--view/theme/diabook-blue/profile_side.tpl20
-rw-r--r--view/theme/diabook-blue/style.css244
-rwxr-xr-xview/theme/diabook-blue/theme.php124
-rw-r--r--view/theme/diabook-blue/wall_item.tpl13
-rw-r--r--view/theme/diabook-blue/wallwall_item.tpl13
-rw-r--r--view/theme/diabook/comment_item.tpl35
-rwxr-xr-xview/theme/diabook/experimental0
-rwxr-xr-xview/theme/diabook/group_side.tpl29
-rw-r--r--view/theme/diabook/icons/isstar.pngbin1277 -> 0 bytes
-rwxr-xr-xview/theme/diabook/icons/next.pngbin0 -> 300 bytes
-rwxr-xr-xview/theme/diabook/icons/notifications.pngbin758 -> 714 bytes
-rwxr-xr-xview/theme/diabook/icons/prev.pngbin0 -> 336 bytes
-rwxr-xr-xview/theme/diabook/icons/starred.pngbin0 -> 501 bytes
-rw-r--r--[-rwxr-xr-x]view/theme/diabook/icons/toogle_off.pngbin391 -> 834 bytes
-rw-r--r--[-rwxr-xr-x]view/theme/diabook/icons/toogle_on.pngbin429 -> 715 bytes
-rwxr-xr-xview/theme/diabook/icons/unglobe.pngbin798 -> 0 bytes
-rwxr-xr-xview/theme/diabook/icons/unstarred.pngbin358 -> 468 bytes
-rw-r--r--view/theme/diabook/nav.tpl10
-rwxr-xr-xview/theme/diabook/photo_view.tpl27
-rw-r--r--view/theme/diabook/profile_side.tpl20
-rw-r--r--view/theme/diabook/style.css189
-rwxr-xr-xview/theme/diabook/theme.php119
-rw-r--r--view/theme/diabook/wall_item.tpl13
-rw-r--r--view/theme/diabook/wallwall_item.tpl13
-rw-r--r--view/theme/dispy-dark/comment_item.tpl (renamed from view/theme/diabook-blue/comment_item.tpl)0
-rw-r--r--view/theme/dispy-dark/connect.pngbin0 -> 443 bytes
-rw-r--r--view/theme/dispy-dark/contact_template.tpl30
-rw-r--r--view/theme/dispy-dark/conversation.tpl23
-rw-r--r--[-rwxr-xr-x]view/theme/dispy-dark/experimental (renamed from view/theme/diabook-blue/experimental)0
-rw-r--r--view/theme/dispy-dark/group_side.tpl30
-rw-r--r--view/theme/dispy-dark/head.tpl80
-rw-r--r--view/theme/dispy-dark/icons.pngbin0 -> 29024 bytes
-rw-r--r--view/theme/dispy-dark/icons.svg2096
-rw-r--r--view/theme/dispy-dark/jot-header.tpl326
-rw-r--r--view/theme/dispy-dark/jot.tpl72
-rw-r--r--view/theme/dispy-dark/login-bg.gifbin0 -> 237 bytes
-rw-r--r--view/theme/dispy-dark/mail_head.tpl5
-rw-r--r--view/theme/dispy-dark/menu-user-pin.jpgbin0 -> 385 bytes
-rw-r--r--view/theme/dispy-dark/nav.tpl125
-rw-r--r--view/theme/dispy-dark/nets.tpl10
-rw-r--r--view/theme/dispy-dark/next.pngbin0 -> 590 bytes
-rw-r--r--view/theme/dispy-dark/notifications.pngbin0 -> 2494 bytes
-rw-r--r--view/theme/dispy-dark/notifications.svg273
-rw-r--r--view/theme/dispy-dark/photo-menu.jpgbin0 -> 459 bytes
-rw-r--r--view/theme/dispy-dark/photo_view.tpl37
-rw-r--r--view/theme/dispy-dark/premium.pngbin0 -> 2304 bytes
-rw-r--r--view/theme/dispy-dark/prev.pngbin0 -> 593 bytes
-rw-r--r--view/theme/dispy-dark/profile_vcard.tpl84
-rw-r--r--view/theme/dispy-dark/saved_searches_aside.tpl14
-rw-r--r--view/theme/dispy-dark/search_item.tpl51
-rw-r--r--view/theme/dispy-dark/star.pngbin0 -> 2129 bytes
-rw-r--r--view/theme/dispy-dark/style.css2725
-rw-r--r--view/theme/dispy-dark/tag.pngbin0 -> 571 bytes
-rw-r--r--view/theme/dispy-dark/theme.php128
-rw-r--r--view/theme/dispy-dark/wall_item.tpl80
-rw-r--r--view/theme/dispy-dark/wallwall_item.tpl86
-rw-r--r--view/theme/dispy/contact_template.tpl2
-rwxr-xr-xview/theme/dispy/experimental0
-rw-r--r--view/theme/dispy/group_side.tpl6
-rw-r--r--view/theme/dispy/head.tpl19
-rw-r--r--view/theme/dispy/icons.pngbin28076 -> 18998 bytes
-rw-r--r--view/theme/dispy/icons.svg72
-rw-r--r--view/theme/dispy/jot-header.tpl14
-rw-r--r--view/theme/dispy/nav.tpl28
-rw-r--r--[-rwxr-xr-x]view/theme/dispy/nets.tpl2
-rw-r--r--[-rwxr-xr-x]view/theme/dispy/next.pngbin891 -> 590 bytes
-rw-r--r--[-rwxr-xr-x]view/theme/dispy/notifications.pngbin2253 -> 2494 bytes
-rw-r--r--view/theme/dispy/notifications.svg273
-rw-r--r--[-rwxr-xr-x]view/theme/dispy/photo_view.tpl2
-rw-r--r--[-rwxr-xr-x]view/theme/dispy/premium.pngbin2317 -> 2304 bytes
-rw-r--r--[-rwxr-xr-x]view/theme/dispy/prev.pngbin853 -> 593 bytes
-rw-r--r--view/theme/dispy/profile_vcard.tpl30
-rw-r--r--[-rwxr-xr-x]view/theme/dispy/saved_searches_aside.tpl2
-rw-r--r--view/theme/dispy/style.css518
-rw-r--r--view/theme/dispy/tag.pngbin632 -> 571 bytes
-rw-r--r--view/theme/dispy/theme.php56
-rw-r--r--view/theme/dispy/wall_item.tpl5
-rw-r--r--view/theme/dispy/wallwall_item.tpl7
-rw-r--r--view/theme/duepuntozero/file.gifbin0 -> 615 bytes
-rwxr-xr-xview/theme/duepuntozero/style.css27
-rwxr-xr-xview/theme/duepuntozero/theme.php2
-rwxr-xr-xview/theme/duepuntozero/wall_item.tpl4
-rwxr-xr-xview/theme/duepuntozero/wallwall_item.tpl3
-rw-r--r--view/theme/greenzero/file.gifbin0 -> 614 bytes
-rwxr-xr-xview/theme/greenzero/theme.php2
-rwxr-xr-xview/theme/purplezero/theme.php2
-rwxr-xr-xview/theme/slack-NS/style.css51
-rwxr-xr-xview/theme/slack-NS/theme.php51
-rwxr-xr-xview/theme/slackr/theme.php2
-rw-r--r--view/theme/testbubble/theme.php9
207 files changed, 11133 insertions, 1628 deletions
diff --git a/.gitignore b/.gitignore
index 6302bc1c8..2531fe4cd 100755
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/.htaccess b/.htaccess
index 1df509670..28ac3dd80 100755
--- a/.htaccess
+++ b/.htaccess
@@ -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
diff --git a/boot.php b/boot.php
index 76d2f9326..9779bb9a8 100755
--- a/boot.php
+++ b/boot.php
@@ -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'),
diff --git a/build.xml b/build.xml
index 83c530026..a61a5123d 100644
--- a/build.xml
+++ b/build.xml
@@ -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>
diff --git a/database.sql b/database.sql
index 35c257f02..f058bc59e 100755
--- a/database.sql
+++ b/database.sql
@@ -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',
diff --git a/htconfig.php b/htconfig.php
index 423d5d369..9d9c8a2c7 100755
--- a/htconfig.php
+++ b/htconfig.php
@@ -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'] = "";
diff --git a/include/acl_selectors.php b/include/acl_selectors.php
index 67d8cebde..a5f5aff53 100755
--- a/include/acl_selectors.php
+++ b/include/acl_selectors.php
@@ -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` != ''
diff --git a/include/bbcode.php b/include/bbcode.php
index cff26f5c8..d69cb263f 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -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);
diff --git a/include/contact_widgets.php b/include/contact_widgets.php
index caa0572d2..605a3eb78 100755
--- a/include/contact_widgets.php
+++ b/include/contact_widgets.php
@@ -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,
+
+ ));
+}
diff --git a/include/conversation.php b/include/conversation.php
index b458923e5..e9f024c27 100755
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -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");
-
- $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' => "",
- );
+ 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' => "",
+ );
+ }
+ $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']) {
diff --git a/include/dba.php b/include/dba.php
index 7455b6b3e..5beea7a3a 100755
--- a/include/dba.php
+++ b/include/dba.php
@@ -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);
}
diff --git a/include/delivery.php b/include/delivery.php
index c1ff07bd5..532dcd699 100755
--- a/include/delivery.php
+++ b/include/delivery.php
@@ -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;
diff --git a/include/diaspora.php b/include/diaspora.php
index dca857a19..1b5af42cd 100755
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -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;
}
diff --git a/include/email.php b/include/email.php
index 659978b6e..8ea8145fb 100755
--- a/include/email.php
+++ b/include/email.php
@@ -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;
}
diff --git a/include/event.php b/include/event.php
index 4a9a9a004..29202badd 100755
--- a/include/event.php
+++ b/include/event.php
@@ -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;
}
diff --git a/include/html2bbcode.php b/include/html2bbcode.php
index 32a90d7d6..69ccf41b7 100755
--- a/include/html2bbcode.php
+++ b/include/html2bbcode.php
@@ -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");
diff --git a/include/items.php b/include/items.php
index 1a7aa6c46..5a297c83e 100755
--- a/include/items.php
+++ b/include/items.php
@@ -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),
diff --git a/include/msgclean.php b/include/msgclean.php
new file mode 100644
index 000000000..284ad1ce4
--- /dev/null
+++ b/include/msgclean.php
@@ -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));
+
+}
+?>
diff --git a/include/nav.php b/include/nav.php
index aadfa82fd..e28081839 100755
--- a/include/nav.php
+++ b/include/nav.php
@@ -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'));
diff --git a/include/network.php b/include/network.php
index c72919dd8..22157ff18 100755
--- a/include/network.php
+++ b/include/network.php
@@ -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();
diff --git a/include/notifier.php b/include/notifier.php
index 5b23406fc..d63ad7ae7 100755
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -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']));
+
+ 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;
diff --git a/include/oembed.php b/include/oembed.php
index 5c3c595f5..cc71f9757 100755
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -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": {
diff --git a/include/poller.php b/include/poller.php
index cfbc46b87..8262c1d60 100755
--- a/include/poller.php
+++ b/include/poller.php
@@ -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);
diff --git a/include/queue.php b/include/queue.php
index d312b50f5..7e92705be 100755
--- a/include/queue.php
+++ b/include/queue.php
@@ -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;
}
diff --git a/include/security.php b/include/security.php
index f469dad66..19e91eb63 100755
--- a/include/security.php
+++ b/include/security.php
@@ -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();
+ }
+} \ No newline at end of file
diff --git a/include/template_processor.php b/include/template_processor.php
index 8671587fc..4c317efe1 100755
--- a/include/template_processor.php
+++ b/include/template_processor.php
@@ -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;
}
}
diff --git a/include/text.php b/include/text.php
index 5ad0154d7..2956c9467 100644
--- a/include/text.php
+++ b/include/text.php
@@ -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),'/');
+}
diff --git a/js/main.js b/js/main.js
index c20455ad1..babd2a1c3 100755
--- a/js/main.js
+++ b/js/main.js
@@ -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');
});
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
index 44d1473a9..183f2bc68 100755
--- a/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
+++ b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
@@ -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;
}
diff --git a/mod/admin.php b/mod/admin.php
index 93714bb5f..a64b26903 100755
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -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,
diff --git a/mod/contacts.php b/mod/contacts.php
index c99ac1452..78c8d4092 100755
--- a/mod/contacts.php
+++ b/mod/contacts.php
@@ -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 . "'" : ""),
diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php
index 0bc3ea7df..2f4fb7045 100644
--- a/mod/dfrn_confirm.php
+++ b/mod/dfrn_confirm.php
@@ -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)
);
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index 0c0c27e3d..71860ac3b 100755
--- a/mod/dfrn_notify.php
+++ b/mod/dfrn_notify.php
@@ -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);
diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php
index b12e07132..fe5cd4906 100755
--- a/mod/dfrn_poll.php
+++ b/mod/dfrn_poll.php
@@ -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;
diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php
index bc159137d..c2d37dac7 100755
--- a/mod/dfrn_request.php
+++ b/mod/dfrn_request.php
@@ -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],
diff --git a/mod/directory.php b/mod/directory.php
index 962188945..7f18bd026 100755
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -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 ",
diff --git a/mod/display.php b/mod/display.php
index f428149e8..81ed174ac 100755
--- a/mod/display.php
+++ b/mod/display.php
@@ -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] : '');
diff --git a/mod/filer.php b/mod/filer.php
new file mode 100755
index 000000000..a9e213536
--- /dev/null
+++ b/mod/filer.php
@@ -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();
+}
diff --git a/mod/filerm.php b/mod/filerm.php
new file mode 100644
index 000000000..66b684dc9
--- /dev/null
+++ b/mod/filerm.php
@@ -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();
+}
diff --git a/mod/group.php b/mod/group.php
index 13401ef0d..a282dbccf 100755
--- a/mod/group.php
+++ b/mod/group.php
@@ -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);
}
}
diff --git a/mod/hcard.php b/mod/hcard.php
index 19e649dcb..6d2d9e2eb 100755
--- a/mod/hcard.php
+++ b/mod/hcard.php
@@ -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";
diff --git a/mod/item.php b/mod/item.php
index 81d7c753b..fe570075f 100755
--- a/mod/item.php
+++ b/mod/item.php
@@ -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;
+ }
+ }
+ }
+ }
+}
diff --git a/mod/manage.php b/mod/manage.php
index ec4dcd8a0..84dfa6917 100755
--- a/mod/manage.php
+++ b/mod/manage.php
@@ -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
}
diff --git a/mod/message.php b/mod/message.php
index 4b494e906..0907abd77 100755
--- a/mod/message.php
+++ b/mod/message.php
@@ -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'),
diff --git a/mod/network.php b/mod/network.php
index 27c6e315b..9ec8c23b5 100755
--- a/mod/network.php
+++ b/mod/network.php
@@ -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();
+ }
}
diff --git a/mod/notifications.php b/mod/notifications.php
index 99031a1d5..d478b5163 100755
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -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'])
diff --git a/mod/notify.php b/mod/notify.php
index a572b1534..ae8273a1d 100644
--- a/mod/notify.php
+++ b/mod/notify.php
@@ -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'])
diff --git a/mod/openid.php b/mod/openid.php
index df074b299..0be48060e 100755
--- a/mod/openid.php
+++ b/mod/openid.php
@@ -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());
diff --git a/mod/parse_url.php b/mod/parse_url.php
index e0b378f68..27dac4d5d 100755
--- a/mod/parse_url.php
+++ b/mod/parse_url.php
@@ -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');
diff --git a/mod/photos.php b/mod/photos.php
index e40ae0d74..b294f0a66 100755
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -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>') ;
diff --git a/mod/profile.php b/mod/profile.php
index 1a701f407..428679ffc 100755
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -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";
diff --git a/mod/profile_photo.php b/mod/profile_photo.php
index e3dbdaf39..d1fd08eba 100755
--- a/mod/profile_photo.php
+++ b/mod/profile_photo.php
@@ -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;
diff --git a/mod/profiles.php b/mod/profiles.php
index ccd7d5474..7b3b6ccc1 100755
--- a/mod/profiles.php
+++ b/mod/profiles.php
@@ -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>')
));
}
}
diff --git a/mod/settings.php b/mod/settings.php
index a9d00bc98..59ede4729 100755
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -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'),
diff --git a/mod/share.php b/mod/share.php
index f6c025e3c..47bb851a4 100755
--- a/mod/share.php
+++ b/mod/share.php
@@ -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";
diff --git a/spec/dfrn-snap2.jpg b/spec/dfrn-snap2.jpg
new file mode 100755
index 000000000..ee00f5654
--- /dev/null
+++ b/spec/dfrn-snap2.jpg
Binary files differ
diff --git a/spec/dfrn2.odt b/spec/dfrn2.odt
new file mode 100755
index 000000000..390fc4bb8
--- /dev/null
+++ b/spec/dfrn2.odt
Binary files differ
diff --git a/spec/dfrn2.pdf b/spec/dfrn2.pdf
new file mode 100755
index 000000000..e46225f7e
--- /dev/null
+++ b/spec/dfrn2.pdf
Binary files differ
diff --git a/zot.txt b/spec/zot.txt
index 2c3bbb180..2c3bbb180 100755
--- a/zot.txt
+++ b/spec/zot.txt
diff --git a/tests/autoname_test.php b/tests/autoname_test.php
new file mode 100755
index 000000000..9dae920ca
--- /dev/null
+++ b/tests/autoname_test.php
@@ -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);
+ }
+} \ No newline at end of file
diff --git a/tests/contains_attribute_test.php b/tests/contains_attribute_test.php
new file mode 100755
index 000000000..b0bb06acf
--- /dev/null
+++ b/tests/contains_attribute_test.php
@@ -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"));
+ }
+} \ No newline at end of file
diff --git a/tests/expand_acl_test.php b/tests/expand_acl_test.php
new file mode 100755
index 000000000..b516a3f14
--- /dev/null
+++ b/tests/expand_acl_test.php
@@ -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));
+ }
+} \ No newline at end of file
diff --git a/tests/get_tags_test.php b/tests/get_tags_test.php
new file mode 100644
index 000000000..9051923be
--- /dev/null
+++ b/tests/get_tags_test.php
@@ -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));
+ }
+} \ No newline at end of file
diff --git a/tests/xss_filter_test.php b/tests/xss_filter_test.php
new file mode 100644
index 000000000..d7dcf0472
--- /dev/null
+++ b/tests/xss_filter_test.php
@@ -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
+}
+?>
diff --git a/update.php b/update.php
index c29394b48..6a685a6ff 100755
--- a/update.php
+++ b/update.php
@@ -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` ) ");
+}
+
+
diff --git a/util/db_update.php b/util/db_update.php
index a6177324a..35620e80b 100755
--- a/util/db_update.php
+++ b/util/db_update.php
@@ -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";
}
diff --git a/view/admin_site.tpl b/view/admin_site.tpl
index 9a1229845..01fe893c6 100755
--- a/view/admin_site.tpl
+++ b/view/admin_site.tpl
@@ -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>
diff --git a/view/atom_feed.tpl b/view/atom_feed.tpl
index 72cf8e4fd..2feb547ee 100755
--- a/view/atom_feed.tpl
+++ b/view/atom_feed.tpl
@@ -16,6 +16,7 @@
<link rel="license" href="http://creativecommons.org/licenses/by/3.0/" />
$hub
$salmon
+ $community
<updated>$feed_updated</updated>
diff --git a/view/atom_feed_dfrn.tpl b/view/atom_feed_dfrn.tpl
index 3d6bcc5b5..0bae62b52 100755
--- a/view/atom_feed_dfrn.tpl
+++ b/view/atom_feed_dfrn.tpl
@@ -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>
diff --git a/view/auto_request.tpl b/view/auto_request.tpl
index 204fcf247..2958397c9 100755
--- a/view/auto_request.tpl
+++ b/view/auto_request.tpl
@@ -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" />
diff --git a/view/cropbody.tpl b/view/cropbody.tpl
index c9c0f84de..b484d15bf 100755
--- a/view/cropbody.tpl
+++ b/view/cropbody.tpl
@@ -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" />
diff --git a/view/de/messages.po b/view/de/messages.po
index 33adc8c76..6aab0bf1b 100644
--- a/view/de/messages.po
+++ b/view/de/messages.po
@@ -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
+#: ../../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:370
#, php-format
-msgid "%s user blocked"
+msgid "%s user blocked/unblocked"
msgid_plural "%s users blocked/unblocked"
-msgstr[0] "%s Nutzer gesperrt"
-msgstr[1] "%s Nutzer gesperrt/entsperrt"
+msgstr[0] "%s Benutzer geblockt/freigegeben"
+msgstr[1] "%s Benutzer geblockt/freigegeben"
-#: ../../mod/admin.php:376
+#: ../../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's"
+msgstr "%s's"
+
+#: ../../include/enotify.php:71
+msgid "your"
+msgstr "Dein"
+
+#: ../../include/enotify.php:78
#, php-format
-msgid "%s commented on an item at %s"
-msgstr "%s kommentierte einen Beitrag auf %s"
+msgid "[Friendica:Notify] Comment to conversation #%d by %s"
+msgstr "[Friendica Meldung] Kommentar zum Beitrag #%d von %s"
-#: ../../include/enotify.php:41
+#: ../../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"
diff --git a/view/de/strings.php b/view/de/strings.php
index a093b7068..5438a1c9f 100755
--- a/view/de/strings.php
+++ b/view/de/strings.php
@@ -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�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�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�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 - �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�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["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��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�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.";
diff --git a/view/dfrn_request.tpl b/view/dfrn_request.tpl
index cd98a4daa..d8aa8b181 100755
--- a/view/dfrn_request.tpl
+++ b/view/dfrn_request.tpl
@@ -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>
diff --git a/view/fileas_widget.tpl b/view/fileas_widget.tpl
new file mode 100755
index 000000000..54fba7435
--- /dev/null
+++ b/view/fileas_widget.tpl
@@ -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>
diff --git a/view/group_drop.tpl b/view/group_drop.tpl
index cbae1610f..2cbebbb8e 100755
--- a/view/group_drop.tpl
+++ b/view/group_drop.tpl
@@ -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"
diff --git a/view/group_edit.tpl b/view/group_edit.tpl
index 3689db753..2fa2b1a55 100755
--- a/view/group_edit.tpl
+++ b/view/group_edit.tpl
@@ -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 }}
diff --git a/view/jot-header.tpl b/view/jot-header.tpl
index d6b172b6a..88df73494 100755
--- a/view/jot-header.tpl
+++ b/view/jot-header.tpl
@@ -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();
diff --git a/view/like_noshare.tpl b/view/like_noshare.tpl
index 2c467c3c2..2651ea1f8 100755
--- a/view/like_noshare.tpl
+++ b/view/like_noshare.tpl
@@ -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>
diff --git a/view/login.tpl b/view/login.tpl
index 5349fa3d8..4cbbb1624 100755
--- a/view/login.tpl
+++ b/view/login.tpl
@@ -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">
diff --git a/view/logout.tpl b/view/logout.tpl
index 6a84a5bbc..efc971df8 100755
--- a/view/logout.tpl
+++ b/view/logout.tpl
@@ -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" />
diff --git a/view/mail_list.tpl b/view/mail_list.tpl
index b284ffb0e..22e35dec8 100755..100644
--- a/view/mail_list.tpl
+++ b/view/mail_list.tpl
@@ -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>
diff --git a/view/msg-header.tpl b/view/msg-header.tpl
index a74154c19..098333893 100755
--- a/view/msg-header.tpl
+++ b/view/msg-header.tpl
@@ -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>
diff --git a/view/photo_view.tpl b/view/photo_view.tpl
index 5dbcabadf..732caf690 100755
--- a/view/photo_view.tpl
+++ b/view/photo_view.tpl
@@ -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>
diff --git a/view/profile_edit.tpl b/view/profile_edit.tpl
index 8dab72649..e5c7162d0 100755
--- a/view/profile_edit.tpl
+++ b/view/profile_edit.tpl
@@ -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>
diff --git a/view/profile_listing_header.tpl b/view/profile_listing_header.tpl
index 09e4fc9b2..61a273792 100755
--- a/view/profile_listing_header.tpl
+++ b/view/profile_listing_header.tpl
@@ -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>
diff --git a/view/profile_photo.tpl b/view/profile_photo.tpl
index f258b5b86..0b3a1cac1 100755
--- a/view/profile_photo.tpl
+++ b/view/profile_photo.tpl
@@ -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>
diff --git a/view/profile_vcard.tpl b/view/profile_vcard.tpl
index 5bcbfd0b0..7cd02f164 100755
--- a/view/profile_vcard.tpl
+++ b/view/profile_vcard.tpl
@@ -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>
diff --git a/view/prv_message.tpl b/view/prv_message.tpl
index 25bf93b99..2ce07ce6f 100755
--- a/view/prv_message.tpl
+++ b/view/prv_message.tpl
@@ -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>
diff --git a/view/settings.tpl b/view/settings.tpl
index b7f427b32..25479b5bf 100755
--- a/view/settings.tpl
+++ b/view/settings.tpl
@@ -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" >
diff --git a/view/settings_addons.tpl b/view/settings_addons.tpl
index 2cbfd17e9..28fca5362 100755
--- a/view/settings_addons.tpl
+++ b/view/settings_addons.tpl
@@ -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
diff --git a/view/settings_connectors.tpl b/view/settings_connectors.tpl
index 9493c8bf7..43c0346bb 100755
--- a/view/settings_connectors.tpl
+++ b/view/settings_connectors.tpl
@@ -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
diff --git a/view/settings_oauth.tpl b/view/settings_oauth.tpl
index 0de0dbe98..da1398ab9 100755
--- a/view/settings_oauth.tpl
+++ b/view/settings_oauth.tpl
@@ -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 }}
diff --git a/view/settings_oauth_edit.tpl b/view/settings_oauth_edit.tpl
index 98b7457aa..d29341386 100755
--- a/view/settings_oauth_edit.tpl
+++ b/view/settings_oauth_edit.tpl
@@ -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 }}
diff --git a/view/theme/darkbubble/theme.php b/view/theme/darkbubble/theme.php
index 326c98bbd..053730c21 100755
--- a/view/theme/darkbubble/theme.php
+++ b/view/theme/darkbubble/theme.php
@@ -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;
diff --git a/view/theme/darkzero-NS/theme.php b/view/theme/darkzero-NS/theme.php
index 521b1859e..2d3e4fd56 100755
--- a/view/theme/darkzero-NS/theme.php
+++ b/view/theme/darkzero-NS/theme.php
@@ -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');},
diff --git a/view/theme/darkzero/theme.php b/view/theme/darkzero/theme.php
index 839d862a1..8c4d3e9ac 100755
--- a/view/theme/darkzero/theme.php
+++ b/view/theme/darkzero/theme.php
@@ -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');},
diff --git a/view/theme/diabook-blue/group_side.tpl b/view/theme/diabook-blue/group_side.tpl
new file mode 100755
index 000000000..af183d04d
--- /dev/null
+++ b/view/theme/diabook-blue/group_side.tpl
@@ -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>
+
diff --git a/view/theme/diabook-blue/icons/com_side.png b/view/theme/diabook-blue/icons/com_side.png
new file mode 100644
index 000000000..bc5969ef1
--- /dev/null
+++ b/view/theme/diabook-blue/icons/com_side.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/events.png b/view/theme/diabook-blue/icons/events.png
new file mode 100644
index 000000000..4a0b3f3f1
--- /dev/null
+++ b/view/theme/diabook-blue/icons/events.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/home.png b/view/theme/diabook-blue/icons/home.png
new file mode 100644
index 000000000..be47a48fc
--- /dev/null
+++ b/view/theme/diabook-blue/icons/home.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/isstar.png b/view/theme/diabook-blue/icons/isstar.png
deleted file mode 100644
index c955b25b5..000000000
--- a/view/theme/diabook-blue/icons/isstar.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/diabook-blue/icons/mess_side.png b/view/theme/diabook-blue/icons/mess_side.png
new file mode 100644
index 000000000..49ef896bc
--- /dev/null
+++ b/view/theme/diabook-blue/icons/mess_side.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/next.png b/view/theme/diabook-blue/icons/next.png
new file mode 100755
index 000000000..7b5e25b90
--- /dev/null
+++ b/view/theme/diabook-blue/icons/next.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/notes.png b/view/theme/diabook-blue/icons/notes.png
new file mode 100644
index 000000000..7d4afca90
--- /dev/null
+++ b/view/theme/diabook-blue/icons/notes.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/notifications.png b/view/theme/diabook-blue/icons/notifications.png
index 33ae95c6a..c23673dbd 100755
--- a/view/theme/diabook-blue/icons/notifications.png
+++ b/view/theme/diabook-blue/icons/notifications.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/prev.png b/view/theme/diabook-blue/icons/prev.png
new file mode 100755
index 000000000..55c1464ba
--- /dev/null
+++ b/view/theme/diabook-blue/icons/prev.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/pubgroups.png b/view/theme/diabook-blue/icons/pubgroups.png
new file mode 100644
index 000000000..acf857f32
--- /dev/null
+++ b/view/theme/diabook-blue/icons/pubgroups.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/starred.png b/view/theme/diabook-blue/icons/starred.png
new file mode 100755
index 000000000..2b82dfca3
--- /dev/null
+++ b/view/theme/diabook-blue/icons/starred.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/toogle_off.png b/view/theme/diabook-blue/icons/toogle_off.png
index 99490bcd9..0fcce4d5a 100755..100644
--- a/view/theme/diabook-blue/icons/toogle_off.png
+++ b/view/theme/diabook-blue/icons/toogle_off.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/toogle_on.png b/view/theme/diabook-blue/icons/toogle_on.png
index 81e8f9120..79ce07f0e 100755..100644
--- a/view/theme/diabook-blue/icons/toogle_on.png
+++ b/view/theme/diabook-blue/icons/toogle_on.png
Binary files differ
diff --git a/view/theme/diabook-blue/icons/unglobe.png b/view/theme/diabook-blue/icons/unglobe.png
deleted file mode 100755
index aa9b0e189..000000000
--- a/view/theme/diabook-blue/icons/unglobe.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/diabook-blue/icons/unstarred.png b/view/theme/diabook-blue/icons/unstarred.png
index ca2072414..ba3183f5c 100755
--- a/view/theme/diabook-blue/icons/unstarred.png
+++ b/view/theme/diabook-blue/icons/unstarred.png
Binary files differ
diff --git a/view/theme/diabook-blue/nav.tpl b/view/theme/diabook-blue/nav.tpl
index d0ff06673..289581c36 100644
--- a/view/theme/diabook-blue/nav.tpl
+++ b/view/theme/diabook-blue/nav.tpl
@@ -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>
diff --git a/view/theme/diabook-blue/photo_album.tpl b/view/theme/diabook-blue/photo_album.tpl
new file mode 100755
index 000000000..7e6c2f666
--- /dev/null
+++ b/view/theme/diabook-blue/photo_album.tpl
@@ -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>
diff --git a/view/theme/diabook-blue/photo_top.tpl b/view/theme/diabook-blue/photo_top.tpl
new file mode 100755
index 000000000..98ac9c457
--- /dev/null
+++ b/view/theme/diabook-blue/photo_top.tpl
@@ -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>
diff --git a/view/theme/diabook-blue/photo_view.tpl b/view/theme/diabook-blue/photo_view.tpl
new file mode 100755
index 000000000..902c2a0ed
--- /dev/null
+++ b/view/theme/diabook-blue/photo_view.tpl
@@ -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 }} \ No newline at end of file
diff --git a/view/theme/diabook-blue/profile_side.tpl b/view/theme/diabook-blue/profile_side.tpl
new file mode 100644
index 000000000..a65677696
--- /dev/null
+++ b/view/theme/diabook-blue/profile_side.tpl
@@ -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>
+
+ \ No newline at end of file
diff --git a/view/theme/diabook-blue/style.css b/view/theme/diabook-blue/style.css
index e272191c2..738dde0e5 100644
--- a/view/theme/diabook-blue/style.css
+++ b/view/theme/diabook-blue/style.css
@@ -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;
}
diff --git a/view/theme/diabook-blue/theme.php b/view/theme/diabook-blue/theme.php
new file mode 100755
index 000000000..f9128ea1f
--- /dev/null
+++ b/view/theme/diabook-blue/theme.php
@@ -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;
diff --git a/view/theme/diabook-blue/wall_item.tpl b/view/theme/diabook-blue/wall_item.tpl
index 0a02ba812..ebe40fd4e 100644
--- a/view/theme/diabook-blue/wall_item.tpl
+++ b/view/theme/diabook-blue/wall_item.tpl
@@ -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">
diff --git a/view/theme/diabook-blue/wallwall_item.tpl b/view/theme/diabook-blue/wallwall_item.tpl
index effb7273f..e02e5a8be 100644
--- a/view/theme/diabook-blue/wallwall_item.tpl
+++ b/view/theme/diabook-blue/wallwall_item.tpl
@@ -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">
diff --git a/view/theme/diabook/comment_item.tpl b/view/theme/diabook/comment_item.tpl
deleted file mode 100644
index 85176732b..000000000
--- a/view/theme/diabook/comment_item.tpl
+++ /dev/null
@@ -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>
diff --git a/view/theme/diabook/experimental b/view/theme/diabook/experimental
deleted file mode 100755
index e69de29bb..000000000
--- a/view/theme/diabook/experimental
+++ /dev/null
diff --git a/view/theme/diabook/group_side.tpl b/view/theme/diabook/group_side.tpl
new file mode 100755
index 000000000..af183d04d
--- /dev/null
+++ b/view/theme/diabook/group_side.tpl
@@ -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>
+
diff --git a/view/theme/diabook/icons/isstar.png b/view/theme/diabook/icons/isstar.png
deleted file mode 100644
index c955b25b5..000000000
--- a/view/theme/diabook/icons/isstar.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/diabook/icons/next.png b/view/theme/diabook/icons/next.png
new file mode 100755
index 000000000..7b5e25b90
--- /dev/null
+++ b/view/theme/diabook/icons/next.png
Binary files differ
diff --git a/view/theme/diabook/icons/notifications.png b/view/theme/diabook/icons/notifications.png
index 5bdc34f76..270997740 100755
--- a/view/theme/diabook/icons/notifications.png
+++ b/view/theme/diabook/icons/notifications.png
Binary files differ
diff --git a/view/theme/diabook/icons/prev.png b/view/theme/diabook/icons/prev.png
new file mode 100755
index 000000000..55c1464ba
--- /dev/null
+++ b/view/theme/diabook/icons/prev.png
Binary files differ
diff --git a/view/theme/diabook/icons/starred.png b/view/theme/diabook/icons/starred.png
new file mode 100755
index 000000000..2b82dfca3
--- /dev/null
+++ b/view/theme/diabook/icons/starred.png
Binary files differ
diff --git a/view/theme/diabook/icons/toogle_off.png b/view/theme/diabook/icons/toogle_off.png
index 99490bcd9..0fcce4d5a 100755..100644
--- a/view/theme/diabook/icons/toogle_off.png
+++ b/view/theme/diabook/icons/toogle_off.png
Binary files differ
diff --git a/view/theme/diabook/icons/toogle_on.png b/view/theme/diabook/icons/toogle_on.png
index 81e8f9120..79ce07f0e 100755..100644
--- a/view/theme/diabook/icons/toogle_on.png
+++ b/view/theme/diabook/icons/toogle_on.png
Binary files differ
diff --git a/view/theme/diabook/icons/unglobe.png b/view/theme/diabook/icons/unglobe.png
deleted file mode 100755
index aa9b0e189..000000000
--- a/view/theme/diabook/icons/unglobe.png
+++ /dev/null
Binary files differ
diff --git a/view/theme/diabook/icons/unstarred.png b/view/theme/diabook/icons/unstarred.png
index ca2072414..ba3183f5c 100755
--- a/view/theme/diabook/icons/unstarred.png
+++ b/view/theme/diabook/icons/unstarred.png
Binary files differ
diff --git a/view/theme/diabook/nav.tpl b/view/theme/diabook/nav.tpl
index a098ae8b7..5776b6cf7 100644
--- a/view/theme/diabook/nav.tpl
+++ b/view/theme/diabook/nav.tpl
@@ -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>
-
{#
diff --git a/view/theme/diabook/photo_view.tpl b/view/theme/diabook/photo_view.tpl
new file mode 100755
index 000000000..511fc73ac
--- /dev/null
+++ b/view/theme/diabook/photo_view.tpl
@@ -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 }} \ No newline at end of file
diff --git a/view/theme/diabook/profile_side.tpl b/view/theme/diabook/profile_side.tpl
new file mode 100644
index 000000000..01da55ce1
--- /dev/null
+++ b/view/theme/diabook/profile_side.tpl
@@ -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>
+
+ \ No newline at end of file
diff --git a/view/theme/diabook/style.css b/view/theme/diabook/style.css
index 768ce1370..437f323fa 100644
--- a/view/theme/diabook/style.css
+++ b/view/theme/diabook/style.css
@@ -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;
-}
-
+} \ No newline at end of file
diff --git a/view/theme/diabook/theme.php b/view/theme/diabook/theme.php
new file mode 100755
index 000000000..9093ac2ca
--- /dev/null
+++ b/view/theme/diabook/theme.php
@@ -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;
diff --git a/view/theme/diabook/wall_item.tpl b/view/theme/diabook/wall_item.tpl
index 0a02ba812..ebe40fd4e 100644
--- a/view/theme/diabook/wall_item.tpl
+++ b/view/theme/diabook/wall_item.tpl
@@ -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">
diff --git a/view/theme/diabook/wallwall_item.tpl b/view/theme/diabook/wallwall_item.tpl
index effb7273f..e02e5a8be 100644
--- a/view/theme/diabook/wallwall_item.tpl
+++ b/view/theme/diabook/wallwall_item.tpl
@@ -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">
diff --git a/view/theme/diabook-blue/comment_item.tpl b/view/theme/dispy-dark/comment_item.tpl
index 85176732b..85176732b 100644
--- a/view/theme/diabook-blue/comment_item.tpl
+++ b/view/theme/dispy-dark/comment_item.tpl
diff --git a/view/theme/dispy-dark/connect.png b/view/theme/dispy-dark/connect.png
new file mode 100644
index 000000000..b76fc13dc
--- /dev/null
+++ b/view/theme/dispy-dark/connect.png
Binary files differ
diff --git a/view/theme/dispy-dark/contact_template.tpl b/view/theme/dispy-dark/contact_template.tpl
new file mode 100644
index 000000000..04968bd07
--- /dev/null
+++ b/view/theme/dispy-dark/contact_template.tpl
@@ -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>
+
diff --git a/view/theme/dispy-dark/conversation.tpl b/view/theme/dispy-dark/conversation.tpl
new file mode 100644
index 000000000..41b6aeadf
--- /dev/null
+++ b/view/theme/dispy-dark/conversation.tpl
@@ -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 }}
diff --git a/view/theme/diabook-blue/experimental b/view/theme/dispy-dark/experimental
index e69de29bb..e69de29bb 100755..100644
--- a/view/theme/diabook-blue/experimental
+++ b/view/theme/dispy-dark/experimental
diff --git a/view/theme/dispy-dark/group_side.tpl b/view/theme/dispy-dark/group_side.tpl
new file mode 100644
index 000000000..10ecec2e8
--- /dev/null
+++ b/view/theme/dispy-dark/group_side.tpl
@@ -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>
+
+
diff --git a/view/theme/dispy-dark/head.tpl b/view/theme/dispy-dark/head.tpl
new file mode 100644
index 000000000..f606f2f7e
--- /dev/null
+++ b/view/theme/dispy-dark/head.tpl
@@ -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>
+
+
diff --git a/view/theme/dispy-dark/icons.png b/view/theme/dispy-dark/icons.png
new file mode 100644
index 000000000..648811373
--- /dev/null
+++ b/view/theme/dispy-dark/icons.png
Binary files differ
diff --git a/view/theme/dispy-dark/icons.svg b/view/theme/dispy-dark/icons.svg
new file mode 100644
index 000000000..10f8cc667
--- /dev/null
+++ b/view/theme/dispy-dark/icons.svg
@@ -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>
diff --git a/view/theme/dispy-dark/jot-header.tpl b/view/theme/dispy-dark/jot-header.tpl
new file mode 100644
index 000000000..4c8f59d79
--- /dev/null
+++ b/view/theme/dispy-dark/jot-header.tpl
@@ -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>
+
diff --git a/view/theme/dispy-dark/jot.tpl b/view/theme/dispy-dark/jot.tpl
new file mode 100644
index 000000000..94c31da23
--- /dev/null
+++ b/view/theme/dispy-dark/jot.tpl
@@ -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 }}
diff --git a/view/theme/dispy-dark/login-bg.gif b/view/theme/dispy-dark/login-bg.gif
new file mode 100644
index 000000000..cde836c89
--- /dev/null
+++ b/view/theme/dispy-dark/login-bg.gif
Binary files differ
diff --git a/view/theme/dispy-dark/mail_head.tpl b/view/theme/dispy-dark/mail_head.tpl
new file mode 100644
index 000000000..d49d7c1af
--- /dev/null
+++ b/view/theme/dispy-dark/mail_head.tpl
@@ -0,0 +1,5 @@
+<h3>$messages</h3>
+
+<div class="tabs-wrapper">
+$tab_content
+</div>
diff --git a/view/theme/dispy-dark/menu-user-pin.jpg b/view/theme/dispy-dark/menu-user-pin.jpg
new file mode 100644
index 000000000..26449569f
--- /dev/null
+++ b/view/theme/dispy-dark/menu-user-pin.jpg
Binary files differ
diff --git a/view/theme/dispy-dark/nav.tpl b/view/theme/dispy-dark/nav.tpl
new file mode 100644
index 000000000..11469dc66
--- /dev/null
+++ b/view/theme/dispy-dark/nav.tpl
@@ -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>
+
diff --git a/view/theme/dispy-dark/nets.tpl b/view/theme/dispy-dark/nets.tpl
new file mode 100644
index 000000000..b322717ad
--- /dev/null
+++ b/view/theme/dispy-dark/nets.tpl
@@ -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>
diff --git a/view/theme/dispy-dark/next.png b/view/theme/dispy-dark/next.png
new file mode 100644
index 000000000..5e0067c4b
--- /dev/null
+++ b/view/theme/dispy-dark/next.png
Binary files differ
diff --git a/view/theme/dispy-dark/notifications.png b/view/theme/dispy-dark/notifications.png
new file mode 100644
index 000000000..66c432eac
--- /dev/null
+++ b/view/theme/dispy-dark/notifications.png
Binary files differ
diff --git a/view/theme/dispy-dark/notifications.svg b/view/theme/dispy-dark/notifications.svg
new file mode 100644
index 000000000..0ec2c0569
--- /dev/null
+++ b/view/theme/dispy-dark/notifications.svg
@@ -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>
diff --git a/view/theme/dispy-dark/photo-menu.jpg b/view/theme/dispy-dark/photo-menu.jpg
new file mode 100644
index 000000000..fde5eb535
--- /dev/null
+++ b/view/theme/dispy-dark/photo-menu.jpg
Binary files differ
diff --git a/view/theme/dispy-dark/photo_view.tpl b/view/theme/dispy-dark/photo_view.tpl
new file mode 100644
index 000000000..732caf690
--- /dev/null
+++ b/view/theme/dispy-dark/photo_view.tpl
@@ -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
+
diff --git a/view/theme/dispy-dark/premium.png b/view/theme/dispy-dark/premium.png
new file mode 100644
index 000000000..d2855a4f5
--- /dev/null
+++ b/view/theme/dispy-dark/premium.png
Binary files differ
diff --git a/view/theme/dispy-dark/prev.png b/view/theme/dispy-dark/prev.png
new file mode 100644
index 000000000..10b10d74f
--- /dev/null
+++ b/view/theme/dispy-dark/prev.png
Binary files differ
diff --git a/view/theme/dispy-dark/profile_vcard.tpl b/view/theme/dispy-dark/profile_vcard.tpl
new file mode 100644
index 000000000..350a6ce4a
--- /dev/null
+++ b/view/theme/dispy-dark/profile_vcard.tpl
@@ -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
+
+
diff --git a/view/theme/dispy-dark/saved_searches_aside.tpl b/view/theme/dispy-dark/saved_searches_aside.tpl
new file mode 100644
index 000000000..63a85dda5
--- /dev/null
+++ b/view/theme/dispy-dark/saved_searches_aside.tpl
@@ -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>
diff --git a/view/theme/dispy-dark/search_item.tpl b/view/theme/dispy-dark/search_item.tpl
new file mode 100644
index 000000000..54c3e389c
--- /dev/null
+++ b/view/theme/dispy-dark/search_item.tpl
@@ -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>
+
diff --git a/view/theme/dispy-dark/star.png b/view/theme/dispy-dark/star.png
new file mode 100644
index 000000000..a327ba14e
--- /dev/null
+++ b/view/theme/dispy-dark/star.png
Binary files differ
diff --git a/view/theme/dispy-dark/style.css b/view/theme/dispy-dark/style.css
new file mode 100644
index 000000000..eaaa0acbd
--- /dev/null
+++ b/view/theme/dispy-dark/style.css
@@ -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;
+ }
+}
diff --git a/view/theme/dispy-dark/tag.png b/view/theme/dispy-dark/tag.png
new file mode 100644
index 000000000..9b5a7223e
--- /dev/null
+++ b/view/theme/dispy-dark/tag.png
Binary files differ
diff --git a/view/theme/dispy-dark/theme.php b/view/theme/dispy-dark/theme.php
new file mode 100644
index 000000000..700136173
--- /dev/null
+++ b/view/theme/dispy-dark/theme.php
@@ -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;
+
diff --git a/view/theme/dispy-dark/wall_item.tpl b/view/theme/dispy-dark/wall_item.tpl
new file mode 100644
index 000000000..c67a88635
--- /dev/null
+++ b/view/theme/dispy-dark/wall_item.tpl
@@ -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>
+
diff --git a/view/theme/dispy-dark/wallwall_item.tpl b/view/theme/dispy-dark/wallwall_item.tpl
new file mode 100644
index 000000000..f251d7352
--- /dev/null
+++ b/view/theme/dispy-dark/wallwall_item.tpl
@@ -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>
+
diff --git a/view/theme/dispy/contact_template.tpl b/view/theme/dispy/contact_template.tpl
index fbf354b47..04968bd07 100644
--- a/view/theme/dispy/contact_template.tpl
+++ b/view/theme/dispy/contact_template.tpl
@@ -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>
+
diff --git a/view/theme/dispy/experimental b/view/theme/dispy/experimental
deleted file mode 100755
index e69de29bb..000000000
--- a/view/theme/dispy/experimental
+++ /dev/null
diff --git a/view/theme/dispy/group_side.tpl b/view/theme/dispy/group_side.tpl
index 516d70d5b..10ecec2e8 100644
--- a/view/theme/dispy/group_side.tpl
+++ b/view/theme/dispy/group_side.tpl
@@ -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"
diff --git a/view/theme/dispy/head.tpl b/view/theme/dispy/head.tpl
index 793af6fd2..f606f2f7e 100644
--- a/view/theme/dispy/head.tpl
+++ b/view/theme/dispy/head.tpl
@@ -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>
diff --git a/view/theme/dispy/icons.png b/view/theme/dispy/icons.png
index d9d58aa47..2f0459bd3 100644
--- a/view/theme/dispy/icons.png
+++ b/view/theme/dispy/icons.png
Binary files differ
diff --git a/view/theme/dispy/icons.svg b/view/theme/dispy/icons.svg
index 40899c0a5..998e2641f 100644
--- a/view/theme/dispy/icons.svg
+++ b/view/theme/dispy/icons.svg
@@ -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>
diff --git a/view/theme/dispy/jot-header.tpl b/view/theme/dispy/jot-header.tpl
index 43dcdbb84..4c8f59d79 100644
--- a/view/theme/dispy/jot-header.tpl
+++ b/view/theme/dispy/jot-header.tpl
@@ -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();
diff --git a/view/theme/dispy/nav.tpl b/view/theme/dispy/nav.tpl
index 867751310..11469dc66 100644
--- a/view/theme/dispy/nav.tpl
+++ b/view/theme/dispy/nav.tpl
@@ -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>
diff --git a/view/theme/dispy/nets.tpl b/view/theme/dispy/nets.tpl
index b0cb8890c..b322717ad 100755..100644
--- a/view/theme/dispy/nets.tpl
+++ b/view/theme/dispy/nets.tpl
@@ -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>
diff --git a/view/theme/dispy/next.png b/view/theme/dispy/next.png
index 353e2e72a..5e0067c4b 100755..100644
--- a/view/theme/dispy/next.png
+++ b/view/theme/dispy/next.png
Binary files differ
diff --git a/view/theme/dispy/notifications.png b/view/theme/dispy/notifications.png
index f0f6a90e8..66c432eac 100755..100644
--- a/view/theme/dispy/notifications.png
+++ b/view/theme/dispy/notifications.png
Binary files differ
diff --git a/view/theme/dispy/notifications.svg b/view/theme/dispy/notifications.svg
new file mode 100644
index 000000000..eccc54457
--- /dev/null
+++ b/view/theme/dispy/notifications.svg
@@ -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>
diff --git a/view/theme/dispy/photo_view.tpl b/view/theme/dispy/photo_view.tpl
index 4582751c6..f1209ec58 100755..100644
--- a/view/theme/dispy/photo_view.tpl
+++ b/view/theme/dispy/photo_view.tpl
@@ -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>
diff --git a/view/theme/dispy/premium.png b/view/theme/dispy/premium.png
index 1ad601c0f..d2855a4f5 100755..100644
--- a/view/theme/dispy/premium.png
+++ b/view/theme/dispy/premium.png
Binary files differ
diff --git a/view/theme/dispy/prev.png b/view/theme/dispy/prev.png
index 0ae6022af..10b10d74f 100755..100644
--- a/view/theme/dispy/prev.png
+++ b/view/theme/dispy/prev.png
Binary files differ
diff --git a/view/theme/dispy/profile_vcard.tpl b/view/theme/dispy/profile_vcard.tpl
index 0c289d982..350a6ce4a 100644
--- a/view/theme/dispy/profile_vcard.tpl
+++ b/view/theme/dispy/profile_vcard.tpl
@@ -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>
diff --git a/view/theme/dispy/saved_searches_aside.tpl b/view/theme/dispy/saved_searches_aside.tpl
index e2aae1e77..63a85dda5 100755..100644
--- a/view/theme/dispy/saved_searches_aside.tpl
+++ b/view/theme/dispy/saved_searches_aside.tpl
@@ -1,4 +1,4 @@
-<div class="widget" id="saved-search-list">
+<div id="saved-search-list" class="widget">
<h3 id="search">$title</h3>
$searchbox
diff --git a/view/theme/dispy/style.css b/view/theme/dispy/style.css
index 472fd875c..812c5ee2e 100644
--- a/view/theme/dispy/style.css
+++ b/view/theme/dispy/style.css
@@ -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;
+ }
+}
diff --git a/view/theme/dispy/tag.png b/view/theme/dispy/tag.png
index aca10707a..9b5a7223e 100644
--- a/view/theme/dispy/tag.png
+++ b/view/theme/dispy/tag.png
Binary files differ
diff --git a/view/theme/dispy/theme.php b/view/theme/dispy/theme.php
index c72884f1a..26e07b1f7 100644
--- a/view/theme/dispy/theme.php
+++ b/view/theme/dispy/theme.php
@@ -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;
+
diff --git a/view/theme/dispy/wall_item.tpl b/view/theme/dispy/wall_item.tpl
index b013cfeef..c67a88635 100644
--- a/view/theme/dispy/wall_item.tpl
+++ b/view/theme/dispy/wall_item.tpl
@@ -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 }}
diff --git a/view/theme/dispy/wallwall_item.tpl b/view/theme/dispy/wallwall_item.tpl
index 86453fad2..f251d7352 100644
--- a/view/theme/dispy/wallwall_item.tpl
+++ b/view/theme/dispy/wallwall_item.tpl
@@ -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>
diff --git a/view/theme/duepuntozero/file.gif b/view/theme/duepuntozero/file.gif
new file mode 100644
index 000000000..7885b998d
--- /dev/null
+++ b/view/theme/duepuntozero/file.gif
Binary files differ
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css
index acd97eb94..b79b00ef4 100755
--- a/view/theme/duepuntozero/style.css
+++ b/view/theme/duepuntozero/style.css
@@ -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 {
diff --git a/view/theme/duepuntozero/theme.php b/view/theme/duepuntozero/theme.php
index 7d919fedc..701fb1349 100755
--- a/view/theme/duepuntozero/theme.php
+++ b/view/theme/duepuntozero/theme.php
@@ -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');},
diff --git a/view/theme/duepuntozero/wall_item.tpl b/view/theme/duepuntozero/wall_item.tpl
index 51e36b6f4..e2db70a14 100755
--- a/view/theme/duepuntozero/wall_item.tpl
+++ b/view/theme/duepuntozero/wall_item.tpl
@@ -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>
diff --git a/view/theme/duepuntozero/wallwall_item.tpl b/view/theme/duepuntozero/wallwall_item.tpl
index 211906c93..420c0e08b 100755
--- a/view/theme/duepuntozero/wallwall_item.tpl
+++ b/view/theme/duepuntozero/wallwall_item.tpl
@@ -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 }}
diff --git a/view/theme/greenzero/file.gif b/view/theme/greenzero/file.gif
new file mode 100644
index 000000000..e388a13c0
--- /dev/null
+++ b/view/theme/greenzero/file.gif
Binary files differ
diff --git a/view/theme/greenzero/theme.php b/view/theme/greenzero/theme.php
index 5d63583f4..ceec4dd97 100755
--- a/view/theme/greenzero/theme.php
+++ b/view/theme/greenzero/theme.php
@@ -7,6 +7,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');},
diff --git a/view/theme/purplezero/theme.php b/view/theme/purplezero/theme.php
index 5d63583f4..ceec4dd97 100755
--- a/view/theme/purplezero/theme.php
+++ b/view/theme/purplezero/theme.php
@@ -7,6 +7,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');},
diff --git a/view/theme/slack-NS/style.css b/view/theme/slack-NS/style.css
new file mode 100755
index 000000000..82bceeac8
--- /dev/null
+++ b/view/theme/slack-NS/style.css
@@ -0,0 +1,51 @@
+@import url('../duepuntozero/style.css');
+
+.wall-item-content-wrapper {
+ border: none;
+}
+
+.wall-item-content-wrapper.comment {
+ background: #ffffff !important;
+ border-left: 1px solid #EEE;
+}
+
+.wall-item-tools {
+ background: none;
+}
+
+.wall-item-content {
+ max-height: 20000px;
+ overflow: none;
+}
+
+.comment-edit-text-empty, .comment-edit-text-full {
+ border: none;
+ border-left: 1px solid #EEE;
+ background: #EEEEEE;
+}
+
+.comment-edit-wrapper, .comment-wwedit-wrapper {
+ background: #ffffff !important;
+}
+
+section {
+ margin: 0px 32px;
+}
+
+aside {
+ margin-left: 32px;
+}
+nav {
+ margin-left: 32px;
+ margin-right: 32px;
+}
+
+nav #site-location {
+ top: 80px;
+ right: 36px;
+}
+
+.wall-item-photo, .photo, .contact-block-img, .my-comment-photo {
+ border-radius: 3px;
+ -moz-border-radius: 3px;
+}
diff --git a/view/theme/slack-NS/theme.php b/view/theme/slack-NS/theme.php
new file mode 100755
index 000000000..ceec4dd97
--- /dev/null
+++ b/view/theme/slack-NS/theme.php
@@ -0,0 +1,51 @@
+<?php
+$a->theme_info = array(
+ 'extends' => 'duepuntozero',
+);
+
+$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');},
+ 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');}
+ );
+
+});
+
+
+</script>
+EOT;
diff --git a/view/theme/slackr/theme.php b/view/theme/slackr/theme.php
index 5d63583f4..ceec4dd97 100755
--- a/view/theme/slackr/theme.php
+++ b/view/theme/slackr/theme.php
@@ -7,6 +7,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');},
diff --git a/view/theme/testbubble/theme.php b/view/theme/testbubble/theme.php
index 87ce4dd73..591d9e066 100644
--- a/view/theme/testbubble/theme.php
+++ b/view/theme/testbubble/theme.php
@@ -7,3 +7,12 @@
* Author: Devlon Duthied
* Maintainer: Mike Macgirvin <mike@macgirvin.com>
*/
+
+$a->page['htmlhead'] .= <<< EOT
+<script>
+$(document).ready(function() {
+
+$('html').click(function() { $("#nav-notifications-menu" ).hide(); });
+});
+</script>
+EOT;