diff options
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 @@ -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 @@ -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'), @@ -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 .= ' '; + $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 .= '♲ [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 Binary files differnew file mode 100755 index 000000000..ee00f5654 --- /dev/null +++ b/spec/dfrn-snap2.jpg diff --git a/spec/dfrn2.odt b/spec/dfrn2.odt Binary files differnew file mode 100755 index 000000000..390fc4bb8 --- /dev/null +++ b/spec/dfrn2.odt diff --git a/spec/dfrn2.pdf b/spec/dfrn2.pdf Binary files differnew file mode 100755 index 000000000..e46225f7e --- /dev/null +++ b/spec/dfrn2.pdf 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("<submit type="button" onclick="alert('failed!');" />", $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"> </a> - <a href="$baseurl/settings/oauth/delete/$app.client_id" class="icon s22 delete" title="$delete"> </a> + <a href="$baseurl/settings/oauth/delete/$app.client_id?t=$form_security_token" class="icon s22 delete" title="$delete"> </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 Binary files differnew file mode 100644 index 000000000..bc5969ef1 --- /dev/null +++ b/view/theme/diabook-blue/icons/com_side.png diff --git a/view/theme/diabook-blue/icons/events.png b/view/theme/diabook-blue/icons/events.png Binary files differnew file mode 100644 index 000000000..4a0b3f3f1 --- /dev/null +++ b/view/theme/diabook-blue/icons/events.png diff --git a/view/theme/diabook-blue/icons/home.png b/view/theme/diabook-blue/icons/home.png Binary files differnew file mode 100644 index 000000000..be47a48fc --- /dev/null +++ b/view/theme/diabook-blue/icons/home.png diff --git a/view/theme/diabook-blue/icons/isstar.png b/view/theme/diabook-blue/icons/isstar.png Binary files differdeleted file mode 100644 index c955b25b5..000000000 --- a/view/theme/diabook-blue/icons/isstar.png +++ /dev/null diff --git a/view/theme/diabook-blue/icons/mess_side.png b/view/theme/diabook-blue/icons/mess_side.png Binary files differnew file mode 100644 index 000000000..49ef896bc --- /dev/null +++ b/view/theme/diabook-blue/icons/mess_side.png diff --git a/view/theme/diabook-blue/icons/next.png b/view/theme/diabook-blue/icons/next.png Binary files differnew file mode 100755 index 000000000..7b5e25b90 --- /dev/null +++ b/view/theme/diabook-blue/icons/next.png diff --git a/view/theme/diabook-blue/icons/notes.png b/view/theme/diabook-blue/icons/notes.png Binary files differnew file mode 100644 index 000000000..7d4afca90 --- /dev/null +++ b/view/theme/diabook-blue/icons/notes.png diff --git a/view/theme/diabook-blue/icons/notifications.png b/view/theme/diabook-blue/icons/notifications.png Binary files differindex 33ae95c6a..c23673dbd 100755 --- a/view/theme/diabook-blue/icons/notifications.png +++ b/view/theme/diabook-blue/icons/notifications.png diff --git a/view/theme/diabook-blue/icons/prev.png b/view/theme/diabook-blue/icons/prev.png Binary files differnew file mode 100755 index 000000000..55c1464ba --- /dev/null +++ b/view/theme/diabook-blue/icons/prev.png diff --git a/view/theme/diabook-blue/icons/pubgroups.png b/view/theme/diabook-blue/icons/pubgroups.png Binary files differnew file mode 100644 index 000000000..acf857f32 --- /dev/null +++ b/view/theme/diabook-blue/icons/pubgroups.png diff --git a/view/theme/diabook-blue/icons/starred.png b/view/theme/diabook-blue/icons/starred.png Binary files differnew file mode 100755 index 000000000..2b82dfca3 --- /dev/null +++ b/view/theme/diabook-blue/icons/starred.png diff --git a/view/theme/diabook-blue/icons/toogle_off.png b/view/theme/diabook-blue/icons/toogle_off.png Binary files differindex 99490bcd9..0fcce4d5a 100755..100644 --- a/view/theme/diabook-blue/icons/toogle_off.png +++ b/view/theme/diabook-blue/icons/toogle_off.png diff --git a/view/theme/diabook-blue/icons/toogle_on.png b/view/theme/diabook-blue/icons/toogle_on.png Binary files differindex 81e8f9120..79ce07f0e 100755..100644 --- a/view/theme/diabook-blue/icons/toogle_on.png +++ b/view/theme/diabook-blue/icons/toogle_on.png diff --git a/view/theme/diabook-blue/icons/unglobe.png b/view/theme/diabook-blue/icons/unglobe.png Binary files differdeleted file mode 100755 index aa9b0e189..000000000 --- a/view/theme/diabook-blue/icons/unglobe.png +++ /dev/null diff --git a/view/theme/diabook-blue/icons/unstarred.png b/view/theme/diabook-blue/icons/unstarred.png Binary files differindex ca2072414..ba3183f5c 100755 --- a/view/theme/diabook-blue/icons/unstarred.png +++ b/view/theme/diabook-blue/icons/unstarred.png 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 </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 </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 </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 </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 Binary files differdeleted file mode 100644 index c955b25b5..000000000 --- a/view/theme/diabook/icons/isstar.png +++ /dev/null diff --git a/view/theme/diabook/icons/next.png b/view/theme/diabook/icons/next.png Binary files differnew file mode 100755 index 000000000..7b5e25b90 --- /dev/null +++ b/view/theme/diabook/icons/next.png diff --git a/view/theme/diabook/icons/notifications.png b/view/theme/diabook/icons/notifications.png Binary files differindex 5bdc34f76..270997740 100755 --- a/view/theme/diabook/icons/notifications.png +++ b/view/theme/diabook/icons/notifications.png diff --git a/view/theme/diabook/icons/prev.png b/view/theme/diabook/icons/prev.png Binary files differnew file mode 100755 index 000000000..55c1464ba --- /dev/null +++ b/view/theme/diabook/icons/prev.png diff --git a/view/theme/diabook/icons/starred.png b/view/theme/diabook/icons/starred.png Binary files differnew file mode 100755 index 000000000..2b82dfca3 --- /dev/null +++ b/view/theme/diabook/icons/starred.png diff --git a/view/theme/diabook/icons/toogle_off.png b/view/theme/diabook/icons/toogle_off.png Binary files differindex 99490bcd9..0fcce4d5a 100755..100644 --- a/view/theme/diabook/icons/toogle_off.png +++ b/view/theme/diabook/icons/toogle_off.png diff --git a/view/theme/diabook/icons/toogle_on.png b/view/theme/diabook/icons/toogle_on.png Binary files differindex 81e8f9120..79ce07f0e 100755..100644 --- a/view/theme/diabook/icons/toogle_on.png +++ b/view/theme/diabook/icons/toogle_on.png diff --git a/view/theme/diabook/icons/unglobe.png b/view/theme/diabook/icons/unglobe.png Binary files differdeleted file mode 100755 index aa9b0e189..000000000 --- a/view/theme/diabook/icons/unglobe.png +++ /dev/null diff --git a/view/theme/diabook/icons/unstarred.png b/view/theme/diabook/icons/unstarred.png Binary files differindex ca2072414..ba3183f5c 100755 --- a/view/theme/diabook/icons/unstarred.png +++ b/view/theme/diabook/icons/unstarred.png 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 </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 </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 </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 </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 Binary files differnew file mode 100644 index 000000000..b76fc13dc --- /dev/null +++ b/view/theme/dispy-dark/connect.png 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('<','<'); + ins = ins.replace('>','>'); + ins = ins.replace('&','&'); + ins = ins.replace('"','"'); + $("#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 Binary files differnew file mode 100644 index 000000000..648811373 --- /dev/null +++ b/view/theme/dispy-dark/icons.png 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(' '); + } + + //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"> </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 Binary files differnew file mode 100644 index 000000000..cde836c89 --- /dev/null +++ b/view/theme/dispy-dark/login-bg.gif 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 Binary files differnew file mode 100644 index 000000000..26449569f --- /dev/null +++ b/view/theme/dispy-dark/menu-user-pin.jpg 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 Binary files differnew file mode 100644 index 000000000..5e0067c4b --- /dev/null +++ b/view/theme/dispy-dark/next.png diff --git a/view/theme/dispy-dark/notifications.png b/view/theme/dispy-dark/notifications.png Binary files differnew file mode 100644 index 000000000..66c432eac --- /dev/null +++ b/view/theme/dispy-dark/notifications.png 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 Binary files differnew file mode 100644 index 000000000..fde5eb535 --- /dev/null +++ b/view/theme/dispy-dark/photo-menu.jpg 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 Binary files differnew file mode 100644 index 000000000..d2855a4f5 --- /dev/null +++ b/view/theme/dispy-dark/premium.png diff --git a/view/theme/dispy-dark/prev.png b/view/theme/dispy-dark/prev.png Binary files differnew file mode 100644 index 000000000..10b10d74f --- /dev/null +++ b/view/theme/dispy-dark/prev.png 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">♥</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=&remove=1&search=$search.encodedterm"></a> + <a class="savedsearchterm" href="network/?f=&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 Binary files differnew file mode 100644 index 000000000..a327ba14e --- /dev/null +++ b/view/theme/dispy-dark/star.png 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 Binary files differnew file mode 100644 index 000000000..9b5a7223e --- /dev/null +++ b/view/theme/dispy-dark/tag.png 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 Binary files differindex d9d58aa47..2f0459bd3 100644 --- a/view/theme/dispy/icons.png +++ b/view/theme/dispy/icons.png 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 Binary files differindex 353e2e72a..5e0067c4b 100755..100644 --- a/view/theme/dispy/next.png +++ b/view/theme/dispy/next.png diff --git a/view/theme/dispy/notifications.png b/view/theme/dispy/notifications.png Binary files differindex f0f6a90e8..66c432eac 100755..100644 --- a/view/theme/dispy/notifications.png +++ b/view/theme/dispy/notifications.png 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 Binary files differindex 1ad601c0f..d2855a4f5 100755..100644 --- a/view/theme/dispy/premium.png +++ b/view/theme/dispy/premium.png diff --git a/view/theme/dispy/prev.png b/view/theme/dispy/prev.png Binary files differindex 0ae6022af..10b10d74f 100755..100644 --- a/view/theme/dispy/prev.png +++ b/view/theme/dispy/prev.png 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 Binary files differindex aca10707a..9b5a7223e 100644 --- a/view/theme/dispy/tag.png +++ b/view/theme/dispy/tag.png 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 Binary files differnew file mode 100644 index 000000000..7885b998d --- /dev/null +++ b/view/theme/duepuntozero/file.gif 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 Binary files differnew file mode 100644 index 000000000..e388a13c0 --- /dev/null +++ b/view/theme/greenzero/file.gif 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; |