aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--addon/calc/calc.php2
-rw-r--r--addon/convert/convert.php2
-rw-r--r--addon/sniper/sniper.php2
-rw-r--r--addon/tictac/tictac.php2
-rw-r--r--boot.php165
-rw-r--r--images/connect-bg.pngbin0 -> 689 bytes
-rw-r--r--images/icons/10/add.pngbin0 -> 2946 bytes
-rw-r--r--images/icons/10/delete.pngbin0 -> 3018 bytes
-rw-r--r--images/icons/10/edit.pngbin0 -> 3011 bytes
-rw-r--r--images/icons/10/feed.pngbin0 -> 535 bytes
-rw-r--r--images/icons/10/gear.pngbin0 -> 3043 bytes
-rw-r--r--images/icons/10/group.pngbin0 -> 543 bytes
-rw-r--r--images/icons/10/info.pngbin0 -> 488 bytes
-rw-r--r--images/icons/10/notice.pngbin0 -> 471 bytes
-rw-r--r--images/icons/10/notify_off.pngbin0 -> 478 bytes
-rw-r--r--images/icons/10/notify_on.pngbin0 -> 369 bytes
-rw-r--r--images/icons/10/star.pngbin0 -> 3229 bytes
-rw-r--r--images/icons/10/user.pngbin0 -> 534 bytes
-rw-r--r--images/icons/16/add.pngbin0 -> 3068 bytes
-rw-r--r--images/icons/16/delete.pngbin0 -> 3142 bytes
-rw-r--r--images/icons/16/edit.pngbin0 -> 3129 bytes
-rw-r--r--images/icons/16/feed.pngbin0 -> 828 bytes
-rw-r--r--images/icons/16/gear.pngbin0 -> 3199 bytes
-rw-r--r--images/icons/16/group.pngbin0 -> 852 bytes
-rw-r--r--images/icons/16/info.pngbin0 -> 854 bytes
-rw-r--r--images/icons/16/notice.pngbin0 -> 591 bytes
-rw-r--r--images/icons/16/notify_off.pngbin0 -> 835 bytes
-rw-r--r--images/icons/16/notify_on.pngbin0 -> 542 bytes
-rw-r--r--images/icons/16/star.pngbin0 -> 3498 bytes
-rw-r--r--images/icons/16/user.pngbin0 -> 794 bytes
-rw-r--r--images/icons/22/add.pngbin0 -> 3210 bytes
-rw-r--r--images/icons/22/delete.pngbin0 -> 3294 bytes
-rw-r--r--images/icons/22/edit.pngbin0 -> 3247 bytes
-rw-r--r--images/icons/22/feed.pngbin0 -> 1136 bytes
-rw-r--r--images/icons/22/gear.pngbin0 -> 3384 bytes
-rw-r--r--images/icons/22/group.pngbin0 -> 1146 bytes
-rw-r--r--images/icons/22/info.pngbin0 -> 1106 bytes
-rw-r--r--images/icons/22/notice.pngbin0 -> 780 bytes
-rw-r--r--images/icons/22/notify_off.pngbin0 -> 1093 bytes
-rw-r--r--images/icons/22/notify_on.pngbin0 -> 721 bytes
-rw-r--r--images/icons/22/star.pngbin0 -> 3780 bytes
-rw-r--r--images/icons/22/user.pngbin0 -> 1084 bytes
-rw-r--r--images/icons/48/add.pngbin0 -> 3944 bytes
-rw-r--r--images/icons/48/delete.pngbin0 -> 3997 bytes
-rw-r--r--images/icons/48/edit.pngbin0 -> 3948 bytes
-rw-r--r--images/icons/48/feed.pngbin0 -> 2692 bytes
-rw-r--r--images/icons/48/gear.pngbin0 -> 4225 bytes
-rw-r--r--images/icons/48/group.pngbin0 -> 2392 bytes
-rw-r--r--images/icons/48/info.pngbin0 -> 2152 bytes
-rw-r--r--images/icons/48/notice.pngbin0 -> 1730 bytes
-rw-r--r--images/icons/48/notify_off.pngbin0 -> 2147 bytes
-rw-r--r--images/icons/48/notify_on.pngbin0 -> 1506 bytes
-rw-r--r--images/icons/48/star.pngbin0 -> 4776 bytes
-rw-r--r--images/icons/48/user.pngbin0 -> 2269 bytes
-rw-r--r--images/icons/add.pngbin0 -> 8685 bytes
-rw-r--r--images/icons/delete.pngbin0 -> 7905 bytes
-rw-r--r--images/icons/edit.pngbin0 -> 8297 bytes
-rw-r--r--images/icons/feed.pngbin0 -> 9007 bytes
-rw-r--r--images/icons/gear.pngbin0 -> 10744 bytes
-rw-r--r--images/icons/group.pngbin0 -> 7268 bytes
-rw-r--r--images/icons/info.pngbin0 -> 4287 bytes
-rw-r--r--images/icons/make.sh14
-rw-r--r--images/icons/notice.pngbin0 -> 3701 bytes
-rw-r--r--images/icons/notify_off.pngbin0 -> 4340 bytes
-rw-r--r--images/icons/notify_on.pngbin0 -> 3671 bytes
-rw-r--r--images/icons/star.pngbin0 -> 9307 bytes
-rw-r--r--images/icons/user.pngbin0 -> 6921 bytes
-rw-r--r--include/nav.php45
-rw-r--r--include/template_processor.php17
-rw-r--r--include/text.php36
-rw-r--r--index.php15
-rw-r--r--js/acl.js (renamed from include/acl.js)0
-rw-r--r--js/ajaxupload.js (renamed from include/ajaxupload.js)0
-rw-r--r--js/country.js (renamed from include/country.js)0
-rw-r--r--js/jquery.htmlstream.js (renamed from include/jquery.htmlstream.js)0
-rw-r--r--js/jquery.js (renamed from include/jquery.js)0
-rw-r--r--js/main.js (renamed from include/main.js)79
-rw-r--r--library/jgrowl/README3
-rwxr-xr-xlibrary/jgrowl/jquery.jgrowl.css136
-rw-r--r--library/jgrowl/jquery.jgrowl_minimized.js11
-rw-r--r--library/stanlemon-jgrowl-tip.tar.gzbin0 -> 213973 bytes
-rw-r--r--library/tiptip/README30
-rw-r--r--library/tiptip/jquery.tipTip.minified.js21
-rw-r--r--library/tiptip/tipTip.css113
-rw-r--r--mod/admin.php2
-rw-r--r--mod/apps.php19
-rw-r--r--mod/community.php2
-rw-r--r--mod/contacts.php2
-rw-r--r--mod/directory.php2
-rw-r--r--mod/help.php3
-rw-r--r--mod/message.php2
-rw-r--r--mod/network.php2
-rw-r--r--mod/notifications.php2
-rw-r--r--mod/ping.php171
-rw-r--r--mod/profile.php5
-rw-r--r--mod/profiles.php2
-rw-r--r--mod/search.php2
-rw-r--r--mod/settings.php2
-rw-r--r--view/admin_remoteupdate.tpl2
-rw-r--r--view/apps.tpl7
-rw-r--r--view/contact_block.tpl11
-rw-r--r--view/default.php3
-rw-r--r--view/diaspora_vcard.tpl44
-rw-r--r--view/head.tpl14
-rw-r--r--view/jot-header.tpl2
-rw-r--r--view/msg-header.tpl2
-rw-r--r--view/nav.tpl114
-rw-r--r--view/profile_vcard.tpl64
-rw-r--r--view/theme/clean/nav.tpl51
-rw-r--r--view/theme/darkness/nav.tpl51
-rw-r--r--view/theme/darkzero/nav.tpl51
-rw-r--r--view/theme/dispy/jot-header.tpl2
-rw-r--r--view/theme/duepuntozero/nav.tpl51
-rw-r--r--view/theme/easterbunny/nav.tpl51
-rw-r--r--view/theme/goldenrod/nav.tpl51
-rw-r--r--view/theme/greenzero/nav.tpl51
-rw-r--r--view/theme/loozah/nav.tpl51
-rw-r--r--view/theme/purplezero/nav.tpl51
-rw-r--r--view/theme/quattro/colors.less67
-rw-r--r--view/theme/quattro/experimental0
-rw-r--r--view/theme/quattro/icons.less37
-rw-r--r--view/theme/quattro/quattro.less253
-rw-r--r--view/theme/quattro/style.css392
-rw-r--r--view/theme/quattro/style.less14
-rw-r--r--view/theme/shady/nav.tpl51
-rw-r--r--view/theme/three-d/nav.tpl51
127 files changed, 2276 insertions, 225 deletions
diff --git a/.gitignore b/.gitignore
index 41ec42389..a2d1ffa54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ include/jquery-1.4.2.min.js
*.version*
favicon.*
home.html
+*~
diff --git a/addon/calc/calc.php b/addon/calc/calc.php
index 8c079dc7a..47fb22d33 100644
--- a/addon/calc/calc.php
+++ b/addon/calc/calc.php
@@ -17,7 +17,7 @@ function calc_uninstall() {
}
function calc_app_menu($a,&$b) {
- $b['app_menu'] .= '<div class="app-title"><a href="calc">Calculator</a></div>';
+ $b['app_menu'][] = Array('url'=>'calc', 'name'=>'Calculator');
}
diff --git a/addon/convert/convert.php b/addon/convert/convert.php
index 7a4c90a53..aaa56a43e 100644
--- a/addon/convert/convert.php
+++ b/addon/convert/convert.php
@@ -15,7 +15,7 @@ function convert_uninstall() {
}
function convert_app_menu($a,&$b) {
- $b['app_menu'] .= '<div class="app-title"><a href="convert">Units Conversion</a></div>';
+ $b['app_menu'][] = Array('url'=>'convert', 'name'=>'Units Conversion');
}
diff --git a/addon/sniper/sniper.php b/addon/sniper/sniper.php
index d431a2466..c7d29cfdf 100644
--- a/addon/sniper/sniper.php
+++ b/addon/sniper/sniper.php
@@ -22,7 +22,7 @@ function sniper_uninstall() {
}
function sniper_app_menu($a,&$b) {
- $b['app_menu'] .= '<div class="app-title"><a href="sniper">Hot Shot Sniper</a></div>';
+ $b['app_menu'][] = Array('url'=>'sniper', 'name'=>'Hot Shot Sniper');
}
diff --git a/addon/tictac/tictac.php b/addon/tictac/tictac.php
index d6cec08a0..cc2701f8b 100644
--- a/addon/tictac/tictac.php
+++ b/addon/tictac/tictac.php
@@ -17,7 +17,7 @@ function tictac_uninstall() {
}
function tictac_app_menu($a,&$b) {
- $b['app_menu'] .= '<div class="app-title"><a href="tictac">' . t('Three Dimensional Tic-Tac-Toe') . '</a></div>';
+ $b['app_menu'][] = Array('url'=>'tictac', 'name'=>'Three Dimensional Tic-Tac-Toe');
}
diff --git a/boot.php b/boot.php
index 5563901fb..f98e53044 100644
--- a/boot.php
+++ b/boot.php
@@ -5,6 +5,7 @@ require_once('include/network.php');
require_once('include/plugin.php');
require_once('include/text.php');
require_once("include/pgettext.php");
+require_once('include/nav.php');
define ( 'FRIENDIKA_VERSION', '2.2.1096' );
@@ -245,7 +246,7 @@ class App {
public $timezone;
public $interactive = true;
public $plugins;
- public $apps;
+ public $apps = Array();
public $identities;
private $scheme;
@@ -720,14 +721,16 @@ function remote_user() {
if(! function_exists('notice')) {
function notice($s) {
$a = get_app();
+ if(! x($_SESSION,'sysmsg')) $_SESSION['sysmsg'] = array();
if($a->interactive)
- $_SESSION['sysmsg'] .= $s;
+ $_SESSION['sysmsg'][] = $s;
}}
if(! function_exists('info')) {
function info($s) {
$a = get_app();
+ if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
if($a->interactive)
- $_SESSION['sysmsg_info'] .= $s;
+ $_SESSION['sysmsg_info'][] = $s;
}}
@@ -809,8 +812,8 @@ function profile_load(&$a, $nickname, $profile = 0) {
$a->page['aside'] .= profile_sidebar($a->profile, $block);
- if(! $block)
- $a->page['aside'] .= contact_block();
+ /*if(! $block)
+ $a->page['aside'] .= contact_block();*/
return;
}}
@@ -838,132 +841,105 @@ function profile_sidebar($profile, $block = 0) {
$a = get_app();
$o = '';
- $location = '';
+ $location = false;
$address = false;
+ $pdesc = true;
if((! is_array($profile)) && (! count($profile)))
return $o;
call_hooks('profile_sidebar_enter', $profile);
- $fullname = '<div class="fn">' . $profile['name'] . '</div>';
+
+ // don't show connect link to yourself
+ $connect = (($profile['uid'] != local_user()) ? t('Connect') : False);
- $pdesc = '<div class="title">' . $profile['pdesc'] . '</div>';
+ // don't show connect link to authenticated visitors either
- $tabs = '';
+ if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid']))
+ $connect = False;
+
+
+ // show edit profile to yourself
+ if ($profile['uid'] == local_user()) {
+ $profile['edit'] = array($a->get_baseurl(). '/profiles', t('Profiles'),"", t('Manage/edit profiles'));
+
+ $r = q("SELECT * FROM `profile` WHERE `uid` = %d",
+ local_user());
+
+ $profile['menu'] = array(
+ 'chg_photo' => t('Change profile photo'),
+ 'cr_new' => t('Create New Profile'),
+ 'entries' => array(),
+ );
+
+ if(count($r)) {
- $photo = '<div id="profile-photo-wrapper"><img class="photo" width="175" height="175" src="' . $profile['photo'] . '" alt="' . $profile['name'] . '" /></div>';
+ foreach($r as $rr) {
+ $profile['menu']['entries'][] = array(
+ 'photo' => $rr['thumb'],
+ 'id' => $rr['id'],
+ '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>')
+ );
+ }
- // don't show connect link to yourself
- $connect = (($profile['uid'] != local_user()) ? '<li><a id="dfrn-request-link" href="dfrn_request/' . $profile['nickname'] . '">' . t('Connect') . '</a></li>' : '');
- // don't show connect link to authenticated visitors either
+ }
+
+
+ }
+
- if((remote_user()) && ($_SESSION['visitor_visiting'] == $profile['uid']))
- $connect = '';
+
if((x($profile,'address') == 1)
|| (x($profile,'locality') == 1)
|| (x($profile,'region') == 1)
|| (x($profile,'postal-code') == 1)
|| (x($profile,'country-name') == 1))
- $address = true;
-
- if($address) {
- $location .= '<div class="location"><span class="location-label">' . t('Location:') . '</span> <div class="adr">';
- $location .= ((x($profile,'address') == 1) ? '<div class="street-address">' . $profile['address'] . '</div>' : '');
- $location .= (((x($profile,'locality') == 1) || (x($profile,'region') == 1) || (x($profile,'postal-code') == 1))
- ? '<span class="city-state-zip"><span class="locality">' . $profile['locality'] . '</span>'
- . ((x($profile['locality']) == 1) ? t(', ') : '')
- . '<span class="region">' . $profile['region'] . '</span>'
- . ' <span class="postal-code">' . $profile['postal-code'] . '</span></span>' : '');
- $location .= ((x($profile,'country-name') == 1) ? ' <span class="country-name">' . $profile['country-name'] . '</span>' : '');
- $location .= '</div></div><div class="profile-clear"></div>';
+ $location = t('Location:');
- }
+ $gender = ((x($profile,'gender') == 1) ? t('Gender:') : False);
- $gender = ((x($profile,'gender') == 1) ? '<div class="mf"><span class="gender-label">' . t('Gender:') . '</span> <span class="x-gender">' . $profile['gender'] . '</span></div><div class="profile-clear"></div>' : '');
+ $marital = ((x($profile,'marital') == 1) ? t('Status:') : False);
- $pubkey = ((x($profile,'pubkey') == 1) ? '<div class="key" style="display:none;">' . $profile['pubkey'] . '</div>' : '');
+ $homepage = ((x($profile,'homepage') == 1) ? t('Homepage:') : False);
- $marital = ((x($profile,'marital') == 1) ? '<div class="marital"><span class="marital-label"><span class="heart">&hearts;</span> ' . t('Status:') . ' </span><span class="marital-text">' . $profile['marital'] . '</span></div><div class="profile-clear"></div>' : '');
+ if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
+ $location = $pdesc = $connect = $gender = $marital = $homepage = False;
+ }
- $homepage = ((x($profile,'homepage') == 1) ? '<div class="homepage"><span class="homepage-label">' . t('Homepage:') . ' </span><span class="homepage-url">' . linkify($profile['homepage']) . '</span></div><div class="profile-clear"></div>' : '');
+ $diaspora = array(
+ 'podloc' => $a->get_baseurl(),
+ 'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
+ 'nickname ' => $profile['nickname'],
+ 'fullname' => $profile['name'],
+ 'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg',
+ 'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg',
+ 'photo50' => $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg',
+ );
- if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
- $location = $pdesc = $connect = $gender = $marital = $homepage = '';
+ if (!$block){
+ $contact_block = contact_block();
}
- $podloc = $a->get_baseurl();
- $searchable = (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' );
- $nickname = $profile['nickname'];
- $photo300 = $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg';
- $photo100 = $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg';
- $photo50 = $a->get_baseurl() . '/photo/custom/50/' . $profile['uid'] . '.jpg';
-
- $diaspora_vcard = <<< EOT
-
-<div style="display:none;">
-<dl class='entity_nickname'>
-<dt>Nickname</dt>
-<dd>
-<a class="nickname url uid" href="$podloc/" rel="me">$nickname</a>
-</dd>
-</dl>
-<dl class='entity_fn'>
-<dt>Full name</dt>
-<dd>
-<span class='fn'>$fullname</span>
-</dd>
-</dl>
-<dl class="entity_url">
-<dt>URL</dt>
-<dd>
-<a class="url" href="$podloc/" id="pod_location" rel="me">$podloc/</a>
-</dd>
-</dl>
-<dl class="entity_photo">
-<dt>Photo</dt>
-<dd>
-<img class="photo avatar" height="300px" width="300px" src="$photo300">
-</dd>
-</dl>
-<dl class="entity_photo_medium">
-<dt>Photo</dt>
-<dd>
-<img class="photo avatar" height="100px" width="100px" src="$photo100">
-</dd>
-</dl>
-<dl class="entity_photo_small">
-<dt>Photo</dt>
-<dd>
-<img class="photo avatar" height="50px" width="50px" src="$photo50">
-</dd>
-</dl>
-<dl class="entity_searchable">
-<dt>Searchable</dt>
-<dd>
-<span class="searchable">$searchable</span>
-</dd>
-</dl>
-</div>
-EOT;
$tpl = get_markup_template('profile_vcard.tpl');
$o .= replace_macros($tpl, array(
- '$fullname' => $fullname,
- '$pdesc' => $pdesc,
- '$tabs' => $tabs,
- '$photo' => $photo,
+ '$profile' => $profile,
'$connect' => $connect,
'$location' => $location,
'$gender' => $gender,
- '$pubkey' => $pubkey,
+ '$pdesc' => $pdesc,
'$marital' => $marital,
'$homepage' => $homepage,
- '$diaspora' => $diaspora_vcard
+ '$diaspora' => $diaspora,
+ '$contact_block' => $contact_block,
));
@@ -1171,3 +1147,4 @@ function load_contact_links($uid) {
$a->contacts = $ret;
return;
}}
+
diff --git a/images/connect-bg.png b/images/connect-bg.png
new file mode 100644
index 000000000..0611c73e5
--- /dev/null
+++ b/images/connect-bg.png
Binary files differ
diff --git a/images/icons/10/add.png b/images/icons/10/add.png
new file mode 100644
index 000000000..f036ac73e
--- /dev/null
+++ b/images/icons/10/add.png
Binary files differ
diff --git a/images/icons/10/delete.png b/images/icons/10/delete.png
new file mode 100644
index 000000000..f6bf31da4
--- /dev/null
+++ b/images/icons/10/delete.png
Binary files differ
diff --git a/images/icons/10/edit.png b/images/icons/10/edit.png
new file mode 100644
index 000000000..a6af619e2
--- /dev/null
+++ b/images/icons/10/edit.png
Binary files differ
diff --git a/images/icons/10/feed.png b/images/icons/10/feed.png
new file mode 100644
index 000000000..0e7d02c9b
--- /dev/null
+++ b/images/icons/10/feed.png
Binary files differ
diff --git a/images/icons/10/gear.png b/images/icons/10/gear.png
new file mode 100644
index 000000000..df6f87af5
--- /dev/null
+++ b/images/icons/10/gear.png
Binary files differ
diff --git a/images/icons/10/group.png b/images/icons/10/group.png
new file mode 100644
index 000000000..23172a027
--- /dev/null
+++ b/images/icons/10/group.png
Binary files differ
diff --git a/images/icons/10/info.png b/images/icons/10/info.png
new file mode 100644
index 000000000..8097733f3
--- /dev/null
+++ b/images/icons/10/info.png
Binary files differ
diff --git a/images/icons/10/notice.png b/images/icons/10/notice.png
new file mode 100644
index 000000000..327d5834e
--- /dev/null
+++ b/images/icons/10/notice.png
Binary files differ
diff --git a/images/icons/10/notify_off.png b/images/icons/10/notify_off.png
new file mode 100644
index 000000000..c499de01b
--- /dev/null
+++ b/images/icons/10/notify_off.png
Binary files differ
diff --git a/images/icons/10/notify_on.png b/images/icons/10/notify_on.png
new file mode 100644
index 000000000..5204e097c
--- /dev/null
+++ b/images/icons/10/notify_on.png
Binary files differ
diff --git a/images/icons/10/star.png b/images/icons/10/star.png
new file mode 100644
index 000000000..185761177
--- /dev/null
+++ b/images/icons/10/star.png
Binary files differ
diff --git a/images/icons/10/user.png b/images/icons/10/user.png
new file mode 100644
index 000000000..419661be6
--- /dev/null
+++ b/images/icons/10/user.png
Binary files differ
diff --git a/images/icons/16/add.png b/images/icons/16/add.png
new file mode 100644
index 000000000..7ca375325
--- /dev/null
+++ b/images/icons/16/add.png
Binary files differ
diff --git a/images/icons/16/delete.png b/images/icons/16/delete.png
new file mode 100644
index 000000000..ada2535fc
--- /dev/null
+++ b/images/icons/16/delete.png
Binary files differ
diff --git a/images/icons/16/edit.png b/images/icons/16/edit.png
new file mode 100644
index 000000000..747f5e4e7
--- /dev/null
+++ b/images/icons/16/edit.png
Binary files differ
diff --git a/images/icons/16/feed.png b/images/icons/16/feed.png
new file mode 100644
index 000000000..9ac7c6677
--- /dev/null
+++ b/images/icons/16/feed.png
Binary files differ
diff --git a/images/icons/16/gear.png b/images/icons/16/gear.png
new file mode 100644
index 000000000..5af85390f
--- /dev/null
+++ b/images/icons/16/gear.png
Binary files differ
diff --git a/images/icons/16/group.png b/images/icons/16/group.png
new file mode 100644
index 000000000..bab4bcd18
--- /dev/null
+++ b/images/icons/16/group.png
Binary files differ
diff --git a/images/icons/16/info.png b/images/icons/16/info.png
new file mode 100644
index 000000000..dcd501f93
--- /dev/null
+++ b/images/icons/16/info.png
Binary files differ
diff --git a/images/icons/16/notice.png b/images/icons/16/notice.png
new file mode 100644
index 000000000..8e551ad05
--- /dev/null
+++ b/images/icons/16/notice.png
Binary files differ
diff --git a/images/icons/16/notify_off.png b/images/icons/16/notify_off.png
new file mode 100644
index 000000000..f11aa4bde
--- /dev/null
+++ b/images/icons/16/notify_off.png
Binary files differ
diff --git a/images/icons/16/notify_on.png b/images/icons/16/notify_on.png
new file mode 100644
index 000000000..6e91fd995
--- /dev/null
+++ b/images/icons/16/notify_on.png
Binary files differ
diff --git a/images/icons/16/star.png b/images/icons/16/star.png
new file mode 100644
index 000000000..3130be6f0
--- /dev/null
+++ b/images/icons/16/star.png
Binary files differ
diff --git a/images/icons/16/user.png b/images/icons/16/user.png
new file mode 100644
index 000000000..df83bc27d
--- /dev/null
+++ b/images/icons/16/user.png
Binary files differ
diff --git a/images/icons/22/add.png b/images/icons/22/add.png
new file mode 100644
index 000000000..ee83da024
--- /dev/null
+++ b/images/icons/22/add.png
Binary files differ
diff --git a/images/icons/22/delete.png b/images/icons/22/delete.png
new file mode 100644
index 000000000..15713471b
--- /dev/null
+++ b/images/icons/22/delete.png
Binary files differ
diff --git a/images/icons/22/edit.png b/images/icons/22/edit.png
new file mode 100644
index 000000000..6e6bb4f73
--- /dev/null
+++ b/images/icons/22/edit.png
Binary files differ
diff --git a/images/icons/22/feed.png b/images/icons/22/feed.png
new file mode 100644
index 000000000..15094ce89
--- /dev/null
+++ b/images/icons/22/feed.png
Binary files differ
diff --git a/images/icons/22/gear.png b/images/icons/22/gear.png
new file mode 100644
index 000000000..16bcf77dd
--- /dev/null
+++ b/images/icons/22/gear.png
Binary files differ
diff --git a/images/icons/22/group.png b/images/icons/22/group.png
new file mode 100644
index 000000000..0505432ca
--- /dev/null
+++ b/images/icons/22/group.png
Binary files differ
diff --git a/images/icons/22/info.png b/images/icons/22/info.png
new file mode 100644
index 000000000..c3cc715dc
--- /dev/null
+++ b/images/icons/22/info.png
Binary files differ
diff --git a/images/icons/22/notice.png b/images/icons/22/notice.png
new file mode 100644
index 000000000..e45b18c4c
--- /dev/null
+++ b/images/icons/22/notice.png
Binary files differ
diff --git a/images/icons/22/notify_off.png b/images/icons/22/notify_off.png
new file mode 100644
index 000000000..f2200bb60
--- /dev/null
+++ b/images/icons/22/notify_off.png
Binary files differ
diff --git a/images/icons/22/notify_on.png b/images/icons/22/notify_on.png
new file mode 100644
index 000000000..6b3d7fd08
--- /dev/null
+++ b/images/icons/22/notify_on.png
Binary files differ
diff --git a/images/icons/22/star.png b/images/icons/22/star.png
new file mode 100644
index 000000000..b8829cbfd
--- /dev/null
+++ b/images/icons/22/star.png
Binary files differ
diff --git a/images/icons/22/user.png b/images/icons/22/user.png
new file mode 100644
index 000000000..fad2bee97
--- /dev/null
+++ b/images/icons/22/user.png
Binary files differ
diff --git a/images/icons/48/add.png b/images/icons/48/add.png
new file mode 100644
index 000000000..61a0b0982
--- /dev/null
+++ b/images/icons/48/add.png
Binary files differ
diff --git a/images/icons/48/delete.png b/images/icons/48/delete.png
new file mode 100644
index 000000000..1be4c9a21
--- /dev/null
+++ b/images/icons/48/delete.png
Binary files differ
diff --git a/images/icons/48/edit.png b/images/icons/48/edit.png
new file mode 100644
index 000000000..d09214ec9
--- /dev/null
+++ b/images/icons/48/edit.png
Binary files differ
diff --git a/images/icons/48/feed.png b/images/icons/48/feed.png
new file mode 100644
index 000000000..9730b4738
--- /dev/null
+++ b/images/icons/48/feed.png
Binary files differ
diff --git a/images/icons/48/gear.png b/images/icons/48/gear.png
new file mode 100644
index 000000000..16434390d
--- /dev/null
+++ b/images/icons/48/gear.png
Binary files differ
diff --git a/images/icons/48/group.png b/images/icons/48/group.png
new file mode 100644
index 000000000..e624bbfb2
--- /dev/null
+++ b/images/icons/48/group.png
Binary files differ
diff --git a/images/icons/48/info.png b/images/icons/48/info.png
new file mode 100644
index 000000000..a66ae388b
--- /dev/null
+++ b/images/icons/48/info.png
Binary files differ
diff --git a/images/icons/48/notice.png b/images/icons/48/notice.png
new file mode 100644
index 000000000..a44548527
--- /dev/null
+++ b/images/icons/48/notice.png
Binary files differ
diff --git a/images/icons/48/notify_off.png b/images/icons/48/notify_off.png
new file mode 100644
index 000000000..0a8854cfe
--- /dev/null
+++ b/images/icons/48/notify_off.png
Binary files differ
diff --git a/images/icons/48/notify_on.png b/images/icons/48/notify_on.png
new file mode 100644
index 000000000..8440018a6
--- /dev/null
+++ b/images/icons/48/notify_on.png
Binary files differ
diff --git a/images/icons/48/star.png b/images/icons/48/star.png
new file mode 100644
index 000000000..4b2816d15
--- /dev/null
+++ b/images/icons/48/star.png
Binary files differ
diff --git a/images/icons/48/user.png b/images/icons/48/user.png
new file mode 100644
index 000000000..f73c591e6
--- /dev/null
+++ b/images/icons/48/user.png
Binary files differ
diff --git a/images/icons/add.png b/images/icons/add.png
new file mode 100644
index 000000000..78497fbc9
--- /dev/null
+++ b/images/icons/add.png
Binary files differ
diff --git a/images/icons/delete.png b/images/icons/delete.png
new file mode 100644
index 000000000..f0cae5154
--- /dev/null
+++ b/images/icons/delete.png
Binary files differ
diff --git a/images/icons/edit.png b/images/icons/edit.png
new file mode 100644
index 000000000..aeaf835fe
--- /dev/null
+++ b/images/icons/edit.png
Binary files differ
diff --git a/images/icons/feed.png b/images/icons/feed.png
new file mode 100644
index 000000000..6894257e9
--- /dev/null
+++ b/images/icons/feed.png
Binary files differ
diff --git a/images/icons/gear.png b/images/icons/gear.png
new file mode 100644
index 000000000..02847ef9d
--- /dev/null
+++ b/images/icons/gear.png
Binary files differ
diff --git a/images/icons/group.png b/images/icons/group.png
new file mode 100644
index 000000000..de0dc7901
--- /dev/null
+++ b/images/icons/group.png
Binary files differ
diff --git a/images/icons/info.png b/images/icons/info.png
new file mode 100644
index 000000000..ea2b0ffa4
--- /dev/null
+++ b/images/icons/info.png
Binary files differ
diff --git a/images/icons/make.sh b/images/icons/make.sh
new file mode 100644
index 000000000..348117411
--- /dev/null
+++ b/images/icons/make.sh
@@ -0,0 +1,14 @@
+sizes="10 16 22 48"
+
+for s in $sizes
+do
+ echo "=[ ${s}x${s} ]===="
+ [ -d $s ] || mkdir $s
+ for f in *.png
+ do
+ convert $f -resize ${s}x${s} $s/$f
+ echo -n "#"
+ done
+ echo
+done
+echo "Ok."
diff --git a/images/icons/notice.png b/images/icons/notice.png
new file mode 100644
index 000000000..b6017c8de
--- /dev/null
+++ b/images/icons/notice.png
Binary files differ
diff --git a/images/icons/notify_off.png b/images/icons/notify_off.png
new file mode 100644
index 000000000..e6eac16b8
--- /dev/null
+++ b/images/icons/notify_off.png
Binary files differ
diff --git a/images/icons/notify_on.png b/images/icons/notify_on.png
new file mode 100644
index 000000000..b9e07d24e
--- /dev/null
+++ b/images/icons/notify_on.png
Binary files differ
diff --git a/images/icons/star.png b/images/icons/star.png
new file mode 100644
index 000000000..4a2236c9b
--- /dev/null
+++ b/images/icons/star.png
Binary files differ
diff --git a/images/icons/user.png b/images/icons/user.png
new file mode 100644
index 000000000..f1132b1ae
--- /dev/null
+++ b/images/icons/user.png
Binary files differ
diff --git a/include/nav.php b/include/nav.php
index 895c321e6..b290a8da2 100644
--- a/include/nav.php
+++ b/include/nav.php
@@ -37,11 +37,29 @@ function nav(&$a) {
* Display login or logout
*/
+ $nav['usermenu']=array();
+ $userinfo = null;
+
if(local_user()) {
$nav['logout'] = Array('logout',t('Logout'), "", t('End this session'));
+
+ // user menu
+ $nav['usermenu'][] = Array('profile/' . $a->user['nickname'], t('Status'), "", t('Your posts and conversations'));
+ $nav['usermenu'][] = Array('profile/' . $a->user['nickname']. '?tab=profile', t('Profile'), "", t('Your profile page'));
+ $nav['usermenu'][] = Array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
+ $nav['usermenu'][] = Array('events/', t('Events'), "", t('Your events'));
+ $nav['usermenu'][] = Array('notes/', t('Personal notes'), "", t('Your personal photos'));
+
+ // 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"),
+ 'name' => $a->user['username'],
+ );
+
}
else {
- $nav['login'] = Array('login',t('Login'), ($a->module == 'login'?'nav-selected':''), t('Sign in'));
+ $nav['login'] = Array('login',t('Login'), ($a->module == 'login'?'selected':''), t('Sign in'));
}
@@ -63,7 +81,7 @@ function nav(&$a) {
if(! get_config('system','hide_help'))
$nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'));
- if($a->apps)
+ if(count($a->apps)>0)
$nav['apps'] = array('apps', t('Apps'), "", t('Addon applications, utilities, games'));
$nav['search'] = array('search', t('Search'), "", t('Search site content'));
@@ -137,8 +155,31 @@ function nav(&$a) {
'$sitelocation' => $sitelocation,
'$nav' => $nav,
'$banner' => $banner,
+ '$emptynotifications' => t('Nothing new here'),
+ '$userinfo' => $userinfo,
+ '$sel' => $a->nav_sel,
+ '$apps' => $a->apps,
));
call_hooks('page_header', $a->page['nav']);
+}
+/*
+ * Set a menu item in navbar as selected
+ *
+ */
+function nav_set_selected($item){
+ $a = get_app();
+ $a->nav_sel = array(
+ 'community' => null,
+ 'network' => null,
+ 'home' => null,
+ 'profiles' => null,
+ 'notifications' => null,
+ 'messages' => null,
+ 'directyory' => null,
+ 'settings' => null,
+ 'contacts' => null,
+ );
+ $a->nav_sel[$item] = 'selected';
}
diff --git a/include/template_processor.php b/include/template_processor.php
index 459ffb2d1..056d25488 100644
--- a/include/template_processor.php
+++ b/include/template_processor.php
@@ -14,15 +14,18 @@
private function _preg_error(){
switch(preg_last_error()){
- case PREG_INTERNAL_ERROR: die('PREG_INTERNAL_ERROR'); break;
- case PREG_BACKTRACK_LIMIT_ERROR: die('PREG_BACKTRACK_LIMIT_ERROR'); break;
- case PREG_RECURSION_LIMIT_ERROR: die('PREG_RECURSION_LIMIT_ERROR'); break;
- case PREG_BAD_UTF8_ERROR: die('PREG_BAD_UTF8_ERROR'); break;
- case PREG_BAD_UTF8_OFFSET_ERROR: die('PREG_BAD_UTF8_OFFSET_ERROR'); break;
+ case PREG_INTERNAL_ERROR: echo('PREG_INTERNAL_ERROR'); break;
+ case PREG_BACKTRACK_LIMIT_ERROR: echo('PREG_BACKTRACK_LIMIT_ERROR'); break;
+ case PREG_RECURSION_LIMIT_ERROR: echo('PREG_RECURSION_LIMIT_ERROR'); break;
+ case PREG_BAD_UTF8_ERROR: echo('PREG_BAD_UTF8_ERROR'); break;
+ case PREG_BAD_UTF8_OFFSET_ERROR: echo('PREG_BAD_UTF8_OFFSET_ERROR'); break;
default:
//die("Unknown preg error.");
return;
}
+ echo "<hr><pre>";
+ debug_print_backtrace();
+ die();
}
private function _build_replace($r, $prefix){
@@ -31,8 +34,6 @@
foreach ($r as $k => $v ) {
if (is_array($v))
$this->_build_replace($v, "$prefix$k.");
- if (is_object($v))
- $this->_build_replace($v->getKeys(), "$prefix$k.");
$this->search[] = $prefix . $k;
$this->replace[] = $v;
@@ -179,7 +180,9 @@
$this->r = $r;
$this->search = array();
$this->replace = array();
+
$this->_build_replace($r, "");
+
#$s = str_replace(array("\n","\r"),array("§n§","§r§"),$s);
$s = $this->_build_nodes($s);
$s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s);
diff --git a/include/text.php b/include/text.php
index e3d984a1f..78eae145e 100644
--- a/include/text.php
+++ b/include/text.php
@@ -539,22 +539,30 @@ function contact_block() {
$total = intval($r[0]['total']);
}
if(! $total) {
- $o .= '<h4 class="contact-h4">' . t('No contacts') . '</h4>';
- return $o;
- }
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 ORDER BY RAND() LIMIT %d",
- intval($a->profile['uid']),
- intval($shown)
- );
- if(count($r)) {
- $o .= '<h4 class="contact-h4">' . sprintf( tt('%d Contact','%d Contacts', $total),$total) . '</h4><div id="contact-block">';
- foreach($r as $rr) {
- $o .= micropro($rr,true,'mpfriend');
- }
- $o .= '</div><div id="contact-block-end"></div>';
- $o .= '<div id="viewcontacts"><a id="viewcontacts-link" href="viewcontacts/' . $a->profile['nickname'] . '">' . t('View Contacts') . '</a></div>';
+ $contacts = t('No contacts');
+ $micropro = Null;
+ } else {
+ $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 ORDER BY RAND() LIMIT %d",
+ intval($a->profile['uid']),
+ intval($shown)
+ );
+ if(count($r)) {
+ $contacts = sprintf( tt('%d Contact','%d Contacts', $total),$total);
+ $micropro = Array();
+ foreach($r as $rr) {
+ $micropro[] = micropro($rr,true,'mpfriend');
+ }
+ }
}
+
+ $tpl = get_markup_template('contact_block.tpl');
+ $o = replace_macros($tpl, array(
+ '$contacts' => $contacts,
+ '$nickname' => $a->profile['nickname'],
+ '$viewcontacts' => t('View Contacts'),
+ '$micropro' => $micropro,
+ ));
$arr = array('contacts' => $r, 'output' => $o);
diff --git a/index.php b/index.php
index 80e8ca3b0..3db8170ef 100644
--- a/index.php
+++ b/index.php
@@ -112,10 +112,10 @@ if(! x($_SESSION,'authenticated'))
header('X-Account-Management-Status: none');
if(! x($_SESSION,'sysmsg'))
- $_SESSION['sysmsg'] = '';
+ $_SESSION['sysmsg'] = array();
if(! x($_SESSION,'sysmsg_info'))
- $_SESSION['sysmsg_info'] = '';
+ $_SESSION['sysmsg_info'] = array();
/*
* check_config() is responsible for running update scripts. These automatically
@@ -195,8 +195,8 @@ if(strlen($a->module)) {
if(! $a->module_loaded) {
- // Stupid browser tried to pre-fetch our ACL img template. Don't log the event or return anything - just quietly exit.
- if((x($_SERVER,'QUERY_STRING')) && strpos($_SERVER['QUERY_STRING'],'{0}') !== false) {
+ // Stupid browser tried to pre-fetch our Javascript img template. Don't log the event or return anything - just quietly exit.
+ if((x($_SERVER,'QUERY_STRING')) && preg_match('/{[0-9]}/',$_SERVER['QUERY_STRING']) !== 0) {
killme();
}
@@ -262,7 +262,7 @@ if(isset($homebase))
// now that we've been through the module content, see if the page reported
// a permission problem and if so, a 403 response would seem to be in order.
-if(stristr($_SESSION['sysmsg'], t('Permission denied'))) {
+if(stristr( implode("",$_SESSION['sysmsg']), t('Permission denied'))) {
header($_SERVER["SERVER_PROTOCOL"] . ' 403 ' . t('Permission denied.'));
}
@@ -272,7 +272,7 @@ if(stristr($_SESSION['sysmsg'], t('Permission denied'))) {
*
*/
-if(x($_SESSION,'sysmsg')) {
+/*if(x($_SESSION,'sysmsg')) {
$a->page['content'] = "<div id=\"sysmsg\" class=\"error-message\">{$_SESSION['sysmsg']}</div>\r\n"
. ((x($a->page,'content')) ? $a->page['content'] : '');
$_SESSION['sysmsg']="";
@@ -283,7 +283,7 @@ if(x($_SESSION,'sysmsg_info')) {
. ((x($a->page,'content')) ? $a->page['content'] : '');
$_SESSION['sysmsg_info']="";
unset($_SESSION['sysmsg_info']);
-}
+}*/
@@ -306,7 +306,6 @@ $a->page['content'] .= '<div id="pause"></div>';
*/
if($a->module != 'install') {
- require_once('nav.php');
nav($a);
}
diff --git a/include/acl.js b/js/acl.js
index 82b631ee9..82b631ee9 100644
--- a/include/acl.js
+++ b/js/acl.js
diff --git a/include/ajaxupload.js b/js/ajaxupload.js
index 67c4a56fb..67c4a56fb 100644
--- a/include/ajaxupload.js
+++ b/js/ajaxupload.js
diff --git a/include/country.js b/js/country.js
index 07ab29ba6..07ab29ba6 100644
--- a/include/country.js
+++ b/js/country.js
diff --git a/include/jquery.htmlstream.js b/js/jquery.htmlstream.js
index c62c538f7..c62c538f7 100644
--- a/include/jquery.htmlstream.js
+++ b/js/jquery.htmlstream.js
diff --git a/include/jquery.js b/js/jquery.js
index 7c2430802..7c2430802 100644
--- a/include/jquery.js
+++ b/js/jquery.js
diff --git a/include/main.js b/js/main.js
index d59c99223..452cb8451 100644
--- a/include/main.js
+++ b/js/main.js
@@ -34,6 +34,18 @@
msie = $.browser.msie ;
+ /* setup tooltips */
+ $("a,.tt").each(function(){
+ var e = $(this);
+ var pos="bottom";
+ if (e.hasClass("tttop")) pos="top";
+ if (e.hasClass("ttbottom")) pos="bottom";
+ if (e.hasClass("ttleft")) pos="left";
+ if (e.hasClass("ttright")) pos="right";
+ e.tipTip({defaultPosition: pos});
+ });
+
+
/* setup onoff widgets */
$(".onoff input").each(function(){
@@ -55,34 +67,63 @@
/* setup field_richtext */
setupFieldRichtext();
-
- /* load tinyMCE if needed and setup field_richtext */
- /*if(typeof tinyMCE == "undefined") {
- window.tinyMCEPreInit = {
- suffix:"",
- base: baseurl+"/library/tinymce/jscripts/tiny_mce/",
- query:"",
- };
- $.getScript(baseurl +"/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js", setupFieldRichtext);
- } else {
- }*/
+
+ /* popup menus */
+ $('a[rel^=#]').click(function(e){
+ menu = $( $(this).attr('rel') );
+ e.stopPropagation();
+ if (menu.attr('popup')=="false") return false;
+ $(this).parent().toggleClass("selected");
+ menu.toggle();
+ return false;
+ });
+
+ /* notifications template */
+ var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html());
+ var notifications_empty = unescape($("#nav-notifications-menu").html());
/* nav update event */
$('nav').bind('nav-update', function(e,data){;
var net = $(data).find('net').text();
- if(net == 0) { net = ''; $('#net-update').hide() } else { $('#net-update').show() }
+ if(net == 0) { net = ''; $('#net-update').removeClass('show') } else { $('#net-update').addClass('show') }
$('#net-update').html(net);
+
var home = $(data).find('home').text();
- if(home == 0) { home = ''; $('#home-update').hide() } else { $('#home-update').show() }
+ if(home == 0) { home = ''; $('#home-update').removeClass('show') } else { $('#home-update').addClass('show') }
$('#home-update').html(home);
- var mail = $(data).find('mail').text();
- if(mail == 0) { mail = ''; $('#mail-update').hide() } else { $('#mail-update').show() }
- $('#mail-update').html(mail);
- var intro = $(data).find('intro').text();
- if(intro == 0) { intro = ''; $('#notify-update').hide() } else { $('#notify-update').show() }
- $('#notify-update').html(intro);
+
+ var eNotif = $(data).find('notif')
+ notif = eNotif.attr('count');
+ if (notif>0){
+ $("#nav-notifications-linkmenu").addClass("on");
+ nnm = $("#nav-notifications-menu");
+ nnm.html("");
+ //nnm.attr('popup','true');
+ eNotif.children("note").each(function(){
+ e = $(this);
+ text = e.text().format("<span class='contactname'>"+e.attr('name')+"</span>");
+ html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'));
+ nnm.append(html);
+ });
+ } else {
+ $("#nav-notifications-linkmenu").removeClass("on");
+ $("#nav-notifications-menu").html(notifications_empty);
+ }
+ if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
+ $('#notify-update').html(notif);
+
+ var eSysmsg = $(data).find('sysmsgs');
+ eSysmsg.children("notice").each(function(){
+ text = $(this).text();
+ $.jGrowl(text, { sticky: true, theme: 'notice' });
+ });
+ eSysmsg.children("info").each(function(){
+ text = $(this).text();
+ $.jGrowl(text, { sticky: false, theme: 'info' });
+ });
+
});
diff --git a/library/jgrowl/README b/library/jgrowl/README
new file mode 100644
index 000000000..3c94f7508
--- /dev/null
+++ b/library/jgrowl/README
@@ -0,0 +1,3 @@
+http://stanlemon.net/projects/jgrowl.html
+
+jGrowl is free and open source, it's distributed under the MIT and GPL licenses
diff --git a/library/jgrowl/jquery.jgrowl.css b/library/jgrowl/jquery.jgrowl.css
new file mode 100755
index 000000000..b4deb978c
--- /dev/null
+++ b/library/jgrowl/jquery.jgrowl.css
@@ -0,0 +1,136 @@
+
+div.jGrowl {
+ z-index: 9999;
+ color: #fff;
+ font-size: 12px;
+}
+
+/** Special IE6 Style Positioning **/
+div.ie6 {
+ position: absolute;
+}
+
+div.ie6.top-right {
+ right: auto;
+ bottom: auto;
+ left: expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+}
+
+div.ie6.top-left {
+ left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+}
+
+div.ie6.bottom-right {
+ left: expression( ( 0 - jGrowl.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+}
+
+div.ie6.bottom-left {
+ left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 - jGrowl.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+}
+
+div.ie6.center {
+ left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
+ top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
+ width: 100%;
+}
+
+/** Normal Style Positions **/
+div.jGrowl {
+ position: absolute;
+}
+
+body > div.jGrowl {
+ position: fixed;
+}
+
+div.jGrowl.top-left {
+ left: 0px;
+ top: 0px;
+}
+
+div.jGrowl.top-right {
+ right: 0px;
+ top: 0px;
+}
+
+div.jGrowl.bottom-left {
+ left: 0px;
+ bottom: 0px;
+}
+
+div.jGrowl.bottom-right {
+ right: 0px;
+ bottom: 0px;
+}
+
+div.jGrowl.center {
+ top: 0px;
+ width: 50%;
+ left: 25%;
+}
+
+/** Cross Browser Styling **/
+div.center div.jGrowl-notification, div.center div.jGrowl-closer {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+div.jGrowl div.jGrowl-notification, div.jGrowl div.jGrowl-closer {
+ background-color: #000;
+ opacity: .85;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)";
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=85);
+ zoom: 1;
+ width: 235px;
+ padding: 10px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ font-family: Tahoma, Arial, Helvetica, sans-serif;
+ font-size: 1em;
+ text-align: left;
+ display: none;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+}
+
+div.jGrowl div.jGrowl-notification {
+ min-height: 40px;
+}
+
+div.jGrowl div.jGrowl-notification,
+div.jGrowl div.jGrowl-closer {
+ margin: 10px;
+}
+
+div.jGrowl div.jGrowl-notification div.jGrowl-header {
+ font-weight: bold;
+ font-size: .85em;
+}
+
+div.jGrowl div.jGrowl-notification div.jGrowl-close {
+ z-index: 99;
+ float: right;
+ font-weight: bold;
+ font-size: 1em;
+ cursor: pointer;
+}
+
+div.jGrowl div.jGrowl-closer {
+ padding-top: 4px;
+ padding-bottom: 4px;
+ cursor: pointer;
+ font-size: .9em;
+ font-weight: bold;
+ text-align: center;
+}
+
+/** Hide jGrowl when printing **/
+@media print {
+ div.jGrowl {
+ display: none;
+ }
+}
diff --git a/library/jgrowl/jquery.jgrowl_minimized.js b/library/jgrowl/jquery.jgrowl_minimized.js
new file mode 100644
index 000000000..782898098
--- /dev/null
+++ b/library/jgrowl/jquery.jgrowl_minimized.js
@@ -0,0 +1,11 @@
+(function($){$.jGrowl=function(m,o){if($('#jGrowl').size()==0)
+$('<div id="jGrowl"></div>').addClass((o&&o.position)?o.position:$.jGrowl.defaults.position).appendTo('body');$('#jGrowl').jGrowl(m,o);};$.fn.jGrowl=function(m,o){if($.isFunction(this.each)){var args=arguments;return this.each(function(){var self=this;if($(this).data('jGrowl.instance')==undefined){$(this).data('jGrowl.instance',$.extend(new $.fn.jGrowl(),{notifications:[],element:null,interval:null}));$(this).data('jGrowl.instance').startup(this);}
+if($.isFunction($(this).data('jGrowl.instance')[m])){$(this).data('jGrowl.instance')[m].apply($(this).data('jGrowl.instance'),$.makeArray(args).slice(1));}else{$(this).data('jGrowl.instance').create(m,o);}});};};$.extend($.fn.jGrowl.prototype,{defaults:{pool:0,header:'',group:'',sticky:false,position:'top-right',glue:'after',theme:'default',themeState:'highlight',corners:'10px',check:250,life:3000,closeDuration:'normal',openDuration:'normal',easing:'swing',closer:true,closeTemplate:'&times;',closerTemplate:'<div>[ close all ]</div>',log:function(e,m,o){},beforeOpen:function(e,m,o){},afterOpen:function(e,m,o){},open:function(e,m,o){},beforeClose:function(e,m,o){},close:function(e,m,o){},animateOpen:{opacity:'show'},animateClose:{opacity:'hide'}},notifications:[],element:null,interval:null,create:function(message,o){var o=$.extend({},this.defaults,o);if(typeof o.speed!=='undefined'){o.openDuration=o.speed;o.closeDuration=o.speed;}
+this.notifications.push({message:message,options:o});o.log.apply(this.element,[this.element,message,o]);},render:function(notification){var self=this;var message=notification.message;var o=notification.options;var notification=$('<div class="jGrowl-notification '+o.themeState+' ui-corner-all'+
+((o.group!=undefined&&o.group!='')?' '+o.group:'')+'">'+'<div class="jGrowl-close">'+o.closeTemplate+'</div>'+'<div class="jGrowl-header">'+o.header+'</div>'+'<div class="jGrowl-message">'+message+'</div></div>').data("jGrowl",o).addClass(o.theme).children('div.jGrowl-close').bind("click.jGrowl",function(){$(this).parent().trigger('jGrowl.close');}).parent();$(notification).bind("mouseover.jGrowl",function(){$('div.jGrowl-notification',self.element).data("jGrowl.pause",true);}).bind("mouseout.jGrowl",function(){$('div.jGrowl-notification',self.element).data("jGrowl.pause",false);}).bind('jGrowl.beforeOpen',function(){if(o.beforeOpen.apply(notification,[notification,message,o,self.element])!=false){$(this).trigger('jGrowl.open');}}).bind('jGrowl.open',function(){if(o.open.apply(notification,[notification,message,o,self.element])!=false){if(o.glue=='after'){$('div.jGrowl-notification:last',self.element).after(notification);}else{$('div.jGrowl-notification:first',self.element).before(notification);}
+$(this).animate(o.animateOpen,o.openDuration,o.easing,function(){if($.browser.msie&&(parseInt($(this).css('opacity'),10)===1||parseInt($(this).css('opacity'),10)===0))
+this.style.removeAttribute('filter');if($(this).data("jGrowl")!=null)
+$(this).data("jGrowl").created=new Date();$(this).trigger('jGrowl.afterOpen');});}}).bind('jGrowl.afterOpen',function(){o.afterOpen.apply(notification,[notification,message,o,self.element]);}).bind('jGrowl.beforeClose',function(){if(o.beforeClose.apply(notification,[notification,message,o,self.element])!=false)
+$(this).trigger('jGrowl.close');}).bind('jGrowl.close',function(){$(this).data('jGrowl.pause',true);$(this).animate(o.animateClose,o.closeDuration,o.easing,function(){if($.isFunction(o.close)){if(o.close.apply(notification,[notification,message,o,self.element])!==false)
+$(this).remove();}else{$(this).remove();}});}).trigger('jGrowl.beforeOpen');if(o.corners!=''&&$.fn.corner!=undefined)$(notification).corner(o.corners);if($('div.jGrowl-notification:parent',self.element).size()>1&&$('div.jGrowl-closer',self.element).size()==0&&this.defaults.closer!=false){$(this.defaults.closerTemplate).addClass('jGrowl-closer ui-state-highlight ui-corner-all').addClass(this.defaults.theme).appendTo(self.element).animate(this.defaults.animateOpen,this.defaults.speed,this.defaults.easing).bind("click.jGrowl",function(){$(this).siblings().trigger("jGrowl.beforeClose");if($.isFunction(self.defaults.closer)){self.defaults.closer.apply($(this).parent()[0],[$(this).parent()[0]]);}});};},update:function(){$(this.element).find('div.jGrowl-notification:parent').each(function(){if($(this).data("jGrowl")!=undefined&&$(this).data("jGrowl").created!=undefined&&($(this).data("jGrowl").created.getTime()+parseInt($(this).data("jGrowl").life))<(new Date()).getTime()&&$(this).data("jGrowl").sticky!=true&&($(this).data("jGrowl.pause")==undefined||$(this).data("jGrowl.pause")!=true)){$(this).trigger('jGrowl.beforeClose');}});if(this.notifications.length>0&&(this.defaults.pool==0||$(this.element).find('div.jGrowl-notification:parent').size()<this.defaults.pool))
+this.render(this.notifications.shift());if($(this.element).find('div.jGrowl-notification:parent').size()<2){$(this.element).find('div.jGrowl-closer').animate(this.defaults.animateClose,this.defaults.speed,this.defaults.easing,function(){$(this).remove();});}},startup:function(e){this.element=$(e).addClass('jGrowl').append('<div class="jGrowl-notification"></div>');this.interval=setInterval(function(){$(e).data('jGrowl.instance').update();},parseInt(this.defaults.check));if($.browser.msie&&parseInt($.browser.version)<7&&!window["XMLHttpRequest"]){$(this.element).addClass('ie6');}},shutdown:function(){$(this.element).removeClass('jGrowl').find('div.jGrowl-notification').remove();clearInterval(this.interval);},close:function(){$(this.element).find('div.jGrowl-notification').each(function(){$(this).trigger('jGrowl.beforeClose');});}});$.jGrowl.defaults=$.fn.jGrowl.prototype.defaults;})(jQuery); \ No newline at end of file
diff --git a/library/stanlemon-jgrowl-tip.tar.gz b/library/stanlemon-jgrowl-tip.tar.gz
new file mode 100644
index 000000000..07a5fb097
--- /dev/null
+++ b/library/stanlemon-jgrowl-tip.tar.gz
Binary files differ
diff --git a/library/tiptip/README b/library/tiptip/README
new file mode 100644
index 000000000..a83cfba3e
--- /dev/null
+++ b/library/tiptip/README
@@ -0,0 +1,30 @@
+http://code.drewwilson.com/entry/tiptip-jquery-plugin
+
+License
+This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses.
+
+
+ChangeLog
+Version 1.3 (Mar. 23, 2010)
+
+ Added defaultPoistion option that enables you to set the default orientation TipTip should show up as.
+ Added attribute option that enables you to set the HTML attribute that TipTip should pull it's content from.
+ Added content option. This will be used as the content for the TipTip and will overwrite any content pulled form any HTML attribute.
+ Added activation option enables you to specify the jQuery method TipTip is activated with: hover, focus or click. Now you can use TipTip on forms and for validation!
+ Added keepAlive option that when set to true the TipTip will only fadeout when you hover over the actual TipTip and then hover off of it. Allowing for hyperlinks inside your TipTip content to be accessible.
+
+Version 1.2 (Jan. 13, 2010)
+
+ Added HTML support with Tip Tip. You can now add HTML into the Title attribute (though this is not recommended if you want strictly valid code).
+ Tightened up spacing margins in JS.
+ Updated margins in CSS file.
+
+Version 1.1 (Jan. 03, 2010)
+
+ Swapped dynamically added orientation CSS class names ('_left' & '_right') to make better sense.
+ Added in some tighter spacing for the tooltip in JS.
+
+Version 1.0 (Jan. 02, 2010)
+
+ Initial release.
+
diff --git a/library/tiptip/jquery.tipTip.minified.js b/library/tiptip/jquery.tipTip.minified.js
new file mode 100644
index 000000000..cdf3a892b
--- /dev/null
+++ b/library/tiptip/jquery.tipTip.minified.js
@@ -0,0 +1,21 @@
+ /*
+ * TipTip
+ * Copyright 2010 Drew Wilson
+ * www.drewwilson.com
+ * code.drewwilson.com/entry/tiptip-jquery-plugin
+ *
+ * Version 1.3 - Updated: Mar. 23, 2010
+ *
+ * This Plug-In will create a custom tooltip to replace the default
+ * browser tooltip. It is extremely lightweight and very smart in
+ * that it detects the edges of the browser window and will make sure
+ * the tooltip stays within the current window size. As a result the
+ * tooltip will adjust itself to be displayed above, below, to the left
+ * or to the right depending on what is necessary to stay within the
+ * browser window. It is completely customizable as well via CSS.
+ *
+ * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+(function($){$.fn.tipTip=function(options){var defaults={activation:"hover",keepAlive:false,maxWidth:"200px",edgeOffset:3,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:false,enter:function(){},exit:function(){}};var opts=$.extend(defaults,options);if($("#tiptip_holder").length<=0){var tiptip_holder=$('<div id="tiptip_holder" style="max-width:'+opts.maxWidth+';"></div>');var tiptip_content=$('<div id="tiptip_content"></div>');var tiptip_arrow=$('<div id="tiptip_arrow"></div>');$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')))}else{var tiptip_holder=$("#tiptip_holder");var tiptip_content=$("#tiptip_content");var tiptip_arrow=$("#tiptip_arrow")}return this.each(function(){var org_elem=$(this);if(opts.content){var org_title=opts.content}else{var org_title=org_elem.attr(opts.attribute)}if(org_title!=""){if(!opts.content){org_elem.removeAttr(opts.attribute)}var timeout=false;if(opts.activation=="hover"){org_elem.hover(function(){active_tiptip()},function(){if(!opts.keepAlive){deactive_tiptip()}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip()})}}else if(opts.activation=="focus"){org_elem.focus(function(){active_tiptip()}).blur(function(){deactive_tiptip()})}else if(opts.activation=="click"){org_elem.click(function(){active_tiptip();return false}).hover(function(){},function(){if(!opts.keepAlive){deactive_tiptip()}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip()})}}function active_tiptip(){opts.enter.call(this);tiptip_content.html(org_title);tiptip_holder.hide().removeAttr("class").css("margin","0");tiptip_arrow.removeAttr("style");var top=parseInt(org_elem.offset()['top']);var left=parseInt(org_elem.offset()['left']);var org_width=parseInt(org_elem.outerWidth());var org_height=parseInt(org_elem.outerHeight());var tip_w=tiptip_holder.outerWidth();var tip_h=tiptip_holder.outerHeight();var w_compare=Math.round((org_width-tip_w)/2);var h_compare=Math.round((org_height-tip_h)/2);var marg_left=Math.round(left+w_compare);var marg_top=Math.round(top+org_height+opts.edgeOffset);var t_class="";var arrow_top="";var arrow_left=Math.round(tip_w-12)/2;if(opts.defaultPosition=="bottom"){t_class="_bottom"}else if(opts.defaultPosition=="top"){t_class="_top"}else if(opts.defaultPosition=="left"){t_class="_left"}else if(opts.defaultPosition=="right"){t_class="_right"}var right_compare=(w_compare+left)<parseInt($(window).scrollLeft());var left_compare=(tip_w+left)>parseInt($(window).width());if((right_compare&&w_compare<0)||(t_class=="_right"&&!left_compare)||(t_class=="_left"&&left<(tip_w+opts.edgeOffset+5))){t_class="_right";arrow_top=Math.round(tip_h-13)/2;arrow_left=-12;marg_left=Math.round(left+org_width+opts.edgeOffset);marg_top=Math.round(top+h_compare)}else if((left_compare&&w_compare<0)||(t_class=="_left"&&!right_compare)){t_class="_left";arrow_top=Math.round(tip_h-13)/2;arrow_left=Math.round(tip_w);marg_left=Math.round(left-(tip_w+opts.edgeOffset+5));marg_top=Math.round(top+h_compare)}var top_compare=(top+org_height+opts.edgeOffset+tip_h+8)>parseInt($(window).height()+$(window).scrollTop());var bottom_compare=((top+org_height)-(opts.edgeOffset+tip_h+8))<0;if(top_compare||(t_class=="_bottom"&&top_compare)||(t_class=="_top"&&!bottom_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_top"}else{t_class=t_class+"_top"}arrow_top=tip_h;marg_top=Math.round(top-(tip_h+5+opts.edgeOffset))}else if(bottom_compare|(t_class=="_top"&&bottom_compare)||(t_class=="_bottom"&&!top_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_bottom"}else{t_class=t_class+"_bottom"}arrow_top=-12;marg_top=Math.round(top+org_height+opts.edgeOffset)}if(t_class=="_right_top"||t_class=="_left_top"){marg_top=marg_top+5}else if(t_class=="_right_bottom"||t_class=="_left_bottom"){marg_top=marg_top-5}if(t_class=="_left_top"||t_class=="_left_bottom"){marg_left=marg_left+5}tiptip_arrow.css({"margin-left":arrow_left+"px","margin-top":arrow_top+"px"});tiptip_holder.css({"margin-left":marg_left+"px","margin-top":marg_top+"px"}).attr("class","tip"+t_class);if(timeout){clearTimeout(timeout)}timeout=setTimeout(function(){tiptip_holder.stop(true,true).fadeIn(opts.fadeIn)},opts.delay)}function deactive_tiptip(){opts.exit.call(this);if(timeout){clearTimeout(timeout)}tiptip_holder.fadeOut(opts.fadeOut)}}})}})(jQuery); \ No newline at end of file
diff --git a/library/tiptip/tipTip.css b/library/tiptip/tipTip.css
new file mode 100644
index 000000000..4fb95d376
--- /dev/null
+++ b/library/tiptip/tipTip.css
@@ -0,0 +1,113 @@
+/* TipTip CSS - Version 1.2 */
+
+#tiptip_holder {
+ display: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 99999;
+}
+
+#tiptip_holder.tip_top {
+ padding-bottom: 5px;
+}
+
+#tiptip_holder.tip_bottom {
+ padding-top: 5px;
+}
+
+#tiptip_holder.tip_right {
+ padding-left: 5px;
+}
+
+#tiptip_holder.tip_left {
+ padding-right: 5px;
+}
+
+#tiptip_content {
+ font-size: 11px;
+ color: #fff;
+ text-shadow: 0 0 2px #000;
+ padding: 4px 8px;
+ border: 1px solid rgba(255,255,255,0.25);
+ background-color: rgb(25,25,25);
+ background-color: rgba(25,25,25,0.92);
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(transparent), to(#000));
+ border-radius: 3px;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ box-shadow: 0 0 3px #555;
+ -webkit-box-shadow: 0 0 3px #555;
+ -moz-box-shadow: 0 0 3px #555;
+}
+
+#tiptip_arrow, #tiptip_arrow_inner {
+ position: absolute;
+ border-color: transparent;
+ border-style: solid;
+ border-width: 6px;
+ height: 0;
+ width: 0;
+}
+
+#tiptip_holder.tip_top #tiptip_arrow {
+ border-top-color: #fff;
+ border-top-color: rgba(255,255,255,0.35);
+}
+
+#tiptip_holder.tip_bottom #tiptip_arrow {
+ border-bottom-color: #fff;
+ border-bottom-color: rgba(255,255,255,0.35);
+}
+
+#tiptip_holder.tip_right #tiptip_arrow {
+ border-right-color: #fff;
+ border-right-color: rgba(255,255,255,0.35);
+}
+
+#tiptip_holder.tip_left #tiptip_arrow {
+ border-left-color: #fff;
+ border-left-color: rgba(255,255,255,0.35);
+}
+
+#tiptip_holder.tip_top #tiptip_arrow_inner {
+ margin-top: -7px;
+ margin-left: -6px;
+ border-top-color: rgb(25,25,25);
+ border-top-color: rgba(25,25,25,0.92);
+}
+
+#tiptip_holder.tip_bottom #tiptip_arrow_inner {
+ margin-top: -5px;
+ margin-left: -6px;
+ border-bottom-color: rgb(25,25,25);
+ border-bottom-color: rgba(25,25,25,0.92);
+}
+
+#tiptip_holder.tip_right #tiptip_arrow_inner {
+ margin-top: -6px;
+ margin-left: -5px;
+ border-right-color: rgb(25,25,25);
+ border-right-color: rgba(25,25,25,0.92);
+}
+
+#tiptip_holder.tip_left #tiptip_arrow_inner {
+ margin-top: -6px;
+ margin-left: -7px;
+ border-left-color: rgb(25,25,25);
+ border-left-color: rgba(25,25,25,0.92);
+}
+
+/* Webkit Hacks */
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ #tiptip_content {
+ padding: 4px 8px 5px 8px;
+ background-color: rgba(45,45,45,0.88);
+ }
+ #tiptip_holder.tip_bottom #tiptip_arrow_inner {
+ border-bottom-color: rgba(45,45,45,0.88);
+ }
+ #tiptip_holder.tip_top #tiptip_arrow_inner {
+ border-top-color: rgba(20,20,20,0.92);
+ }
+} \ No newline at end of file
diff --git a/mod/admin.php b/mod/admin.php
index e42fe93f6..da561d554 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -540,7 +540,7 @@ function admin_page_plugins(&$a){
}
$admin_form="";
- if (in_array($plugin, $a->plugins_admin)){
+ if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)){
@require_once("addon/$plugin/$plugin.php");
$func = $plugin.'_plugin_admin';
$func($a, $admin_form);
diff --git a/mod/apps.php b/mod/apps.php
index 7a0a3f59e..8049b45fb 100644
--- a/mod/apps.php
+++ b/mod/apps.php
@@ -1,15 +1,18 @@
<?php
-
function apps_content(&$a) {
+ $title = t('Applications');
- $o .= '<h3>' . t('Applications') . '</h3>';
-
- if($a->apps)
- $o .= $a->apps;
- else
+ if(count($a->apps)==0)
notice( t('No installed applications.') . EOL);
- return $o;
-} \ No newline at end of file
+ $tpl = get_markup_template("apps.tpl");
+ return replace_macros($tpl, array(
+ '$title' => $title,
+ '$apps' => $a->apps,
+ ));
+
+
+
+}
diff --git a/mod/community.php b/mod/community.php
index cf43598b5..cb255029f 100644
--- a/mod/community.php
+++ b/mod/community.php
@@ -25,7 +25,7 @@ function community_content(&$a, $update = 0) {
$o .= '<h3>' . t('Community') . '</h3>';
if(! $update) {
- $o .= '<script> $(document).ready(function() { $(\'#nav-community-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('community');
$o .= '<div id="live-community"></div>' . "\r\n";
$o .= "<script> var profile_uid = -1; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
}
diff --git a/mod/contacts.php b/mod/contacts.php
index 307e9b15b..4decc5042 100644
--- a/mod/contacts.php
+++ b/mod/contacts.php
@@ -114,7 +114,7 @@ function contacts_content(&$a) {
$sort_type = 0;
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-contacts-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('contacts');
$_SESSION['return_url'] = $a->get_baseurl() . '/' . $a->cmd;
diff --git a/mod/directory.php b/mod/directory.php
index 0c60f04bf..93abcd5de 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -22,7 +22,7 @@ function directory_content(&$a) {
}
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-directory-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('directory');
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
diff --git a/mod/help.php b/mod/help.php
index 495b4ccc2..59e062f6d 100644
--- a/mod/help.php
+++ b/mod/help.php
@@ -17,6 +17,7 @@ function load_doc_file($s) {
function help_content(&$a) {
+ nav_set_selected('help');
global $lang;
@@ -41,4 +42,4 @@ function help_content(&$a) {
return Markdown($text);
-} \ No newline at end of file
+}
diff --git a/mod/message.php b/mod/message.php
index 165d63814..cc94730bc 100644
--- a/mod/message.php
+++ b/mod/message.php
@@ -36,7 +36,7 @@ function message_post(&$a) {
function message_content(&$a) {
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-messages-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('messages');
if(! local_user()) {
notice( t('Permission denied.') . EOL);
diff --git a/mod/network.php b/mod/network.php
index 6684889e3..145caa173 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -158,7 +158,7 @@ function network_content(&$a, $update = 0) {
}
}
- $o .= '<script> $(document).ready(function() { $(\'#nav-network-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('network');
$_SESSION['return_url'] = $a->cmd;
diff --git a/mod/notifications.php b/mod/notifications.php
index 8c32ee862..0c35d4cd1 100644
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -64,7 +64,7 @@ function notifications_content(&$a) {
}
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-notify-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected("notifications");
if(($a->argc > 1) && ($a->argv[1] == 'all'))
$sql_extra = '';
diff --git a/mod/ping.php b/mod/ping.php
index 924f9ff76..38a32744d 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -1,5 +1,5 @@
<?php
-
+require_once("include/datetime.php");
function ping_init(&$a) {
@@ -7,42 +7,179 @@ function ping_init(&$a) {
if(! local_user())
xml_status(0);
- $r = q("SELECT COUNT(*) AS `total` FROM `item`
- WHERE `unseen` = 1 AND `visible` = 1 AND `deleted` = 0 AND `uid` = %d AND `wall` = 0 ",
+
+ $comments = array();
+ $likes = array();
+ $dislikes = array();
+ $friends = array();
+
+ $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`,
+ `item`.`author-link`, `item`.`author-avatar`, `item`.`created`,
+ `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
+ FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
+ WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
+ `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0",
intval(local_user())
);
- $network = $r[0]['total'];
+
+ $network = count($r);
+ foreach ($r as $it) {
+ switch($it['verb']){
+ case 'http://activitystrea.ms/schema/1.0/like':
+ $likes[] = $it;
+ break;
+ case 'http://activitystrea.ms/schema/1.0/dislike':
+ $dislikes[] = $it;
+ break;
+ case 'http://activitystrea.ms/schema/1.0/make-friend':
+ $friends[] = $it;
+ break;
+ default:
+ if ($it['parent']!=$it['id']) $comments[] = $it;
+ }
+ }
+
- $r = q("SELECT COUNT(*) AS `total` FROM `item`
- WHERE `unseen` = 1 AND `visible` = 1 AND `deleted` = 0 AND `uid` = %d AND `wall` = 1 ",
+ $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`,
+ `item`.`author-link`, `item`.`author-avatar`, `item`.`created`,
+ `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`
+ FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
+ WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
+ `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1",
intval(local_user())
- );
- $home = $r[0]['total'];
+ );
+ $home = count($r);
+ foreach ($r as $it) {
+ switch($it['verb']){
+ case 'http://activitystrea.ms/schema/1.0/like':
+ $likes[] = $it;
+ break;
+ case 'http://activitystrea.ms/schema/1.0/dislike':
+ $dislikes[] = $it;
+ break;
+ case 'http://activitystrea.ms/schema/1.0/make-friend':
+ $friends[] = $it;
+ break;
+ default:
+ if ($it['parent']!=$it['id']) $comments[] = $it;
+ }
+ }
- $r = q("SELECT COUNT(*) AS `total` FROM `intro`
- WHERE `uid` = %d AND `blocked` = 0 AND `ignore` = 0 ",
+
+ $intros1 = q("SELECT COUNT(`intro`.`id`) AS `total`, `intro`.`id`, `intro`.`datetime`,
+ `fcontact`.`name`, `fcontact`.`url`, `fcontact`.`photo`
+ FROM `intro` LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id`
+ WHERE `intro`.`uid` = %d AND `intro`.`blocked` = 0 AND `intro`.`ignore` = 0 AND `intro`.`fid`!=0",
+ intval(local_user())
+ );
+ $intros2 = q("SELECT COUNT(`intro`.`id`) AS `total`, `intro`.`id`, `intro`.`datetime`,
+ `contact`.`name`, `contact`.`url`, `contact`.`photo`
+ FROM `intro` LEFT JOIN `contact` ON `intro`.`contact-id` = `contact`.`id`
+ WHERE `intro`.`uid` = %d AND `intro`.`blocked` = 0 AND `intro`.`ignore` = 0 AND `intro`.`contact-id`!=0",
intval(local_user())
);
- $intro = $r[0]['total'];
+
+ $intro = $intros1[0]['total'] + $intros2[0]['total'];
+ if ($intros1[0]['total']==0) $intros1=Array();
+ if ($intros2[0]['total']==0) $intros2=Array();
+ $intros = $intros1+$intros2;
+
+
$myurl = $a->get_baseurl() . '/profile/' . $a->user['nickname'] ;
- $r = q("SELECT COUNT(*) AS `total` FROM `mail`
+ $mails = q("SELECT *, COUNT(*) AS `total` FROM `mail`
WHERE `uid` = %d AND `seen` = 0 AND `from-url` != '%s' ",
intval(local_user()),
dbesc($myurl)
);
- $mail = $r[0]['total'];
-
+ $mail = $mails[0]['total'];
+
if ($a->config['register_policy'] == REGISTER_APPROVE && is_site_admin()){
- $r = q("SELECT COUNT(*) AS `total` FROM `register`");
- $register = $r[0]['total'];
+ $regs = q("SELECT `contact`.`name`, `contact`.`url`, `contact`.`micro`, `register`.`created`, COUNT(*) as `total` FROM `contact` RIGHT JOIN `register` ON `register`.`uid`=`contact`.`uid` WHERE `contact`.`self`=1");
+ $register = $regs[0]['total'];
} else {
$register = "0";
}
+
+ function xmlize($href, $name, $url, $photo, $date, $message){
+ $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s">%s</note>';
+ return sprintf ( $notsxml,
+ $href, $name, $url, $photo, $date, $message
+ );
+ }
header("Content-type: text/xml");
- echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<result><intro>$intro</intro><mail>$mail</mail><net>$network</net><home>$home</home><register>$register</register></result>\r\n";
+ echo "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
+ <result>
+ <intro>$intro</intro>
+ <mail>$mail</mail>
+ <net>$network</net>
+ <home>$home</home>";
+ if ($register!=0) echo "<register>$register</register>";
+
+ $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends);
+
+ echo ' <notif count="'.$tot.'">';
+ if ($intro>0){
+ foreach ($intros as $i) {
+ echo xmlize( $a->get_baseurl().'/notifications/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), t("{0} wants to be your friend") );
+ };
+ }
+ if ($mail>0){
+ foreach ($mails as $i) {
+ echo xmlize( $a->get_baseurl().'/message/'.$i['id'], $i['from-name'], $i['from-url'], $i['from-photo'], relative_date($i['created']), t("{0} sent you a message") );
+ };
+ }
+ if ($register>0){
+ foreach ($regs as $i) {
+ echo xmlize( $a->get_baseurl().'/admin/users/', $i['name'], $i['url'], $i['micro'], relative_date($i['created']), t("{0} requested registration") );
+ };
+ }
+
+ if (count($comments)){
+ foreach ($comments as $i) {
+ echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} commented %s's post"), $i['pname'] ) );
+ };
+ }
+ if (count($likes)){
+ foreach ($likes as $i) {
+ echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} like %s's post"), $i['pname'] ) );
+ };
+ }
+ if (count($dislikes)){
+ foreach ($dislikes as $i) {
+ echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} dislike %s's post"), $i['pname'] ) );
+ };
+ }
+ if (count($friends)){
+ foreach ($friends as $i) {
+ echo xmlize( $a->get_baseurl().'/display/'.$a->user['nickname']."/".$i['parent'], $i['author-name'], $i['author-link'], $i['author-avatar'], relative_date($i['created']), sprintf( t("{0} is now friend with %s"), $i['pname'] ) );
+ };
+ }
+
+
+ echo " </notif>";
+
+ echo " <sysmsgs>";
+ if(x($_SESSION,'sysmsg')){
+ foreach ($_SESSION['sysmsg'] as $m){
+ echo "<notice>".($m)."</notice>";
+ }
+ $_SESSION['sysmsg']=array();
+ unset($_SESSION['sysmsg']);
+ }
+ if(x($_SESSION,'sysmsg_info')){
+ foreach ($_SESSION['sysmsg_info'] as $m){
+ echo "<info>".($m)."</info>";
+ }
+ $_SESSION['sysmsg_info']=array();
+ unset($_SESSION['sysmsg_info']);
+ }
+
+ echo " </sysmsgs>";
+ echo"</result>
+ ";
killme();
}
diff --git a/mod/profile.php b/mod/profile.php
index 2dd5df758..66fa17554 100644
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -70,8 +70,9 @@ function profile_content(&$a, $update = 0) {
$a->profile['profile_uid'] = $update;
}
else {
- if($a->profile['profile_uid'] == local_user())
- $o .= '<script> $(document).ready(function() { $(\'#nav-home-link\').addClass(\'nav-selected\'); });</script>';
+ if($a->profile['profile_uid'] == local_user()) {
+ nav_set_selected('home');
+ }
}
$contact = null;
diff --git a/mod/profiles.php b/mod/profiles.php
index b269fa30c..5cc9fa38c 100644
--- a/mod/profiles.php
+++ b/mod/profiles.php
@@ -220,7 +220,7 @@ function profiles_post(&$a) {
function profiles_content(&$a) {
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-profiles-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('profiles');
if(! local_user()) {
notice( t('Permission denied.') . EOL);
diff --git a/mod/search.php b/mod/search.php
index 88ff9bbb7..f7ce75905 100644
--- a/mod/search.php
+++ b/mod/search.php
@@ -13,6 +13,8 @@ function search_content(&$a) {
notice( t('Public access denied.') . EOL);
return;
}
+
+ nav_set_selected('search');
require_once("include/bbcode.php");
require_once('include/security.php');
diff --git a/mod/settings.php b/mod/settings.php
index 1b4098de8..44ebdd77b 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -299,7 +299,7 @@ if(! function_exists('settings_content')) {
function settings_content(&$a) {
$o = '';
- $o .= '<script> $(document).ready(function() { $(\'#nav-settings-link\').addClass(\'nav-selected\'); });</script>';
+ nav_set_selected('settings');
if(! local_user()) {
notice( t('Permission denied.') . EOL );
diff --git a/view/admin_remoteupdate.tpl b/view/admin_remoteupdate.tpl
index 0c15692c2..41ecfaf85 100644
--- a/view/admin_remoteupdate.tpl
+++ b/view/admin_remoteupdate.tpl
@@ -1,4 +1,4 @@
-<script src="include/jquery.htmlstream.js"></script>
+<script src="js/jquery.htmlstream.js"></script>
<script>
/* ajax updater */
function updateEnd(data){
diff --git a/view/apps.tpl b/view/apps.tpl
new file mode 100644
index 000000000..61ea9ee5f
--- /dev/null
+++ b/view/apps.tpl
@@ -0,0 +1,7 @@
+<h3>$title</h3>
+
+<ul>
+ {{ for $apps as $ap }}
+ <li><a href="$ap.url">$ap.name</a></li>
+ {{ endfor }}
+</ul>
diff --git a/view/contact_block.tpl b/view/contact_block.tpl
new file mode 100644
index 000000000..eb46c6c43
--- /dev/null
+++ b/view/contact_block.tpl
@@ -0,0 +1,11 @@
+<div id="contact-block">
+<h4 class="contact-block-h4">$contacts</h4>
+{{ if $micropro }}
+ <a class="allcontact-link" href="viewcontacts/$nickname">$viewcontacts</a>
+ <div class='contact-block-content'>
+ {{ for $micropro as $m }}
+ $m
+ {{ endfor }}
+ </div>
+{{ endif }}
+</div>
diff --git a/view/default.php b/view/default.php
index 0d4a69054..ab1cb0f09 100644
--- a/view/default.php
+++ b/view/default.php
@@ -6,8 +6,7 @@
<?php if(x($page,'htmlhead')) echo $page['htmlhead'] ?>
</head>
<body>
- <header><?php if(x($page,'header')) echo $page['header']; ?></header>
- <nav><div id="top-margin"></div><?php if(x($page,'nav')) echo $page['nav']; ?></nav>
+ <?php if(x($page,'nav')) echo $page['nav']; ?>
<aside><?php if(x($page,'aside')) echo $page['aside']; ?></aside>
<section><?php if(x($page,'content')) echo $page['content']; ?>
<div id="page-footer"></div>
diff --git a/view/diaspora_vcard.tpl b/view/diaspora_vcard.tpl
new file mode 100644
index 000000000..aa2c9eded
--- /dev/null
+++ b/view/diaspora_vcard.tpl
@@ -0,0 +1,44 @@
+<div style="display:none;">
+ <dl class='entity_nickname'>
+ <dt>Nickname</dt>
+ <dd>
+ <a class="nickname url uid" href="$podloc/" rel="me">$diaspora.nickname</a>
+ </dd>
+ </dl>
+ <dl class='entity_fn'>
+ <dt>Full name</dt>
+ <dd>
+ <span class='fn'>$diaspora.fullname</span>
+ </dd>
+ </dl>
+ <dl class="entity_url">
+ <dt>URL</dt>
+ <dd>
+ <a class="url" href="$diaspora.podloc/" id="pod_location" rel="me">$diaspora.podloc/</a>
+ </dd>
+ </dl>
+ <dl class="entity_photo">
+ <dt>Photo</dt>
+ <dd>
+ <img class="photo avatar" height="300px" width="300px" src="$diaspora.photo300">
+ </dd>
+ </dl>
+ <dl class="entity_photo_medium">
+ <dt>Photo</dt>
+ <dd>
+ <img class="photo avatar" height="100px" width="100px" src="$diaspora.photo100">
+ </dd>
+ </dl>
+ <dl class="entity_photo_small">
+ <dt>Photo</dt>
+ <dd>
+ <img class="photo avatar" height="50px" width="50px" src="$diaspora.photo50">
+ </dd>
+ </dl>
+ <dl class="entity_searchable">
+ <dt>Searchable</dt>
+ <dd>
+ <span class="searchable">$diaspora.searchable</span>
+ </dd>
+ </dl>
+</div>
diff --git a/view/head.tpl b/view/head.tpl
index 9d73269e1..b6d78da39 100644
--- a/view/head.tpl
+++ b/view/head.tpl
@@ -1,8 +1,12 @@
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<base href="$baseurl/" />
<meta name="generator" content="$generator" />
-<link rel="stylesheet" type="text/css" href="$stylesheet" media="all" />
<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"
@@ -12,11 +16,13 @@
<!--[if IE]>
<script type="text/javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
-<script type="text/javascript" src="$baseurl/include/jquery.js" ></script>
+<script type="text/javascript" src="$baseurl/js/jquery.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/include/acl.js" ></script>
-<script type="text/javascript" src="$baseurl/include/main.js" ></script>
+<script type="text/javascript" src="$baseurl/js/acl.js" ></script>
+<script type="text/javascript" src="$baseurl/js/main.js" ></script>
<script>
function confirmDelete() { return confirm("$delitem"); }
diff --git a/view/jot-header.tpl b/view/jot-header.tpl
index 6195c5bbc..8174026ab 100644
--- a/view/jot-header.tpl
+++ b/view/jot-header.tpl
@@ -80,7 +80,7 @@ function initEditor(cb){
}
</script>
-<script type="text/javascript" src="include/ajaxupload.js" ></script>
+<script type="text/javascript" src="js/ajaxupload.js" ></script>
<script>
var ispublic = '$ispublic';
$(document).ready(function() {
diff --git a/view/msg-header.tpl b/view/msg-header.tpl
index 67775a45b..a74154c19 100644
--- a/view/msg-header.tpl
+++ b/view/msg-header.tpl
@@ -53,7 +53,7 @@ tinyMCE.init({
});
</script>
-<script type="text/javascript" src="include/ajaxupload.js" ></script>
+<script type="text/javascript" src="js/ajaxupload.js" ></script>
<script>
$(document).ready(function() {
var uploader = new window.AjaxUpload(
diff --git a/view/nav.tpl b/view/nav.tpl
index 09a25ac83..cf1c2a227 100644
--- a/view/nav.tpl
+++ b/view/nav.tpl
@@ -1,6 +1,102 @@
-$langselector
+<header>
+ {# $langselector #}
-<div id="site-location">$sitelocation</div>
+ <div id="site-location">$sitelocation</div>
+ <div id="banner">$banner</div>
+</header>
+<nav>
+ <ul>
+ {{ if $userinfo }}
+ <li id="nav-user-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-user-menu" title="$sitelocation"><img src="$userinfo.icon" alt="$userinfo.name"></a>
+ <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 }}
+
+ {{ if $nav.notifications }}<li><a class="$nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a></li>{{ endif }}
+ {{ if $nav.messages }}<li><a class="$nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a></li>{{ endif }}
+ {{ if $nav.contacts }}<li><a class="$nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </ul>
+ </li>
+ {{ endif }}
+
+ {{ if $nav.community }}
+ <li id="nav-community-link" class="nav-menu $sel.community">
+ <a class="$nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ </li>
+ {{ endif }}
+
+ {{ if $nav.network }}
+ <li id="nav-network-link" class="nav-menu $sel.network">
+ <a class="$nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-notify"></span>
+ </li>
+ {{ endif }}
+ {{ if $nav.home }}
+ <li id="nav-home-link" class="nav-menu $sel.home">
+ <a class="$nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-notify"></span>
+ </li>
+ {{ endif }}
+
+ {{ if $nav.notifications }}
+ <li id="nav-notifications-linkmenu" class="nav-menu-icon"><a href="$nav.notifications.0" rel="#nav-notifications-menu" title="$nav.notifications.1"><span class="icon s22 notify">$nav.notifications.1</span></a>
+ <span id="notify-update" class="nav-notify"></span>
+ <ul id="nav-notifications-menu" class="menu-popup">
+ <li class="empty">$emptynotifications</li>
+ </ul>
+ </li>
+ {{ endif }}
+
+
+
+
+
+
+
+
+
+
+ <li id="nav-site-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-site-menu"><span class="icon s22 gear">Site</span></a>
+ <ul id="nav-site-menu" class="menu-popup">
+ {{ if $nav.settings }}<li><a class="$nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a></li>{{ endif }}
+ {{ if $nav.admin }}<li><a class="$nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a></li>{{ endif }}
+
+ {{ if $nav.logout }}<li><a class="menu-sep $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.1</a></li>{{ endif }}
+ {{ if $nav.login }}<li><a class="$nav.login.2" href="$nav.login.0" title="$nav.login.3" >$nav.login.1</a><li>{{ endif }}
+ </ul>
+ </li>
+
+
+ <li id="nav-help-link" class="nav-menu $sel.help">
+ <a class="$nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+ </li>
+
+ <li id="nav-search-link" class="nav-menu $sel.search">
+ <a class="$nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ </li>
+ <li id="nav-directory-link" class="nav-menu $sel.directory">
+ <a class="$nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+ </li>
+
+ {{ if $nav.apps }}
+ <li id="nav-apps-link" class="nav-menu $sel.apps">
+ <a class=" $nav.apps.2" href="#" rel="#nav-apps-menu" title="$nav.apps.3" >$nav.apps.1</a>
+ <ul id="nav-apps-menu" class="menu-popup">
+ {{ for $apps as $ap }}
+ <li><a href="$ap.url">$ap.name</a></li>
+ {{ endfor }}
+ </ul>
+ </li>
+ {{ endif }}
+ </ul>
+
+</nav>
+<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>
+
+{#
{{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
@@ -18,17 +114,6 @@ $langselector
{{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
-{{ if $nav.network }}
-<a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
-<span id="net-update" class="nav-ajax-left"></span>
-{{ endif }}
-{{ if $nav.home }}
-<a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
-<span id="home-update" class="nav-ajax-left"></span>
-{{ endif }}
-{{ if $nav.community }}
-<a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
-{{ endif }}
{{ if $nav.notifications }}
<a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
<span id="notify-update" class="nav-ajax-left"></span>
@@ -43,7 +128,8 @@ $langselector
{{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
{{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
-{{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+
</span>
<span id="nav-end"></span>
<span id="banner">$banner</span>
+#}
diff --git a/view/profile_vcard.tpl b/view/profile_vcard.tpl
index 34f265ee6..cab732cc1 100644
--- a/view/profile_vcard.tpl
+++ b/view/profile_vcard.tpl
@@ -1,29 +1,61 @@
<div class="vcard">
- $fullname
- $pdesc
- $tabs
+ <div class="tool">
+ <div class="fn label">$profile.name</div>
+ {{ if $profile.edit }}
+ <div class="action">
+ <a class="icon s16 edit ttright" href="#" rel="#profiles-menu" title="$profile.edit.3"><span>$profile.edit.1</span></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>
+
+
+ {{ 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"></div>
- $photo
- <div id="profile-extra-links">
- <ul>
- $connect
- </ul>
- </div>
- $location
+ {{ if $location }}
+ <dl class="location"><dt class="location-label">$location</dt>
+ <dd 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 }}
+ </dd>
+ </dl>
+ {{ endif }}
- $gender
+ {{ if $gender }}<dl class="mf"><dt class="gender-label">$gender</dt> <dd class="x-gender">$profile.gender</dd></dl>{{ endif }}
+
+ {{ if $profile.pubkey }}<div class="key" style="display:none;">$profile.pubkey</div>{{ endif }}
- $pubkey
+ {{ if $marital }}<dl class="marital"><dt class="marital-label"><span class="heart">&hearts;</span>$marital</dt><dd class="marital-text">$profile.marital</dd></dl>{{ endif }}
-$diaspora
+ {{ if $homepage }}<dl class="homepage"><dt class="homepage-label">$homepage</dt><dd class="homepage-url"><a href="$profile.homepage" target="external-link">$profile.homepage</a></dd></dl>{{ 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>
-$marital
-
-$homepage
+$contact_block
diff --git a/view/theme/clean/nav.tpl b/view/theme/clean/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/clean/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/darkness/nav.tpl b/view/theme/darkness/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/darkness/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/darkzero/nav.tpl b/view/theme/darkzero/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/darkzero/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/dispy/jot-header.tpl b/view/theme/dispy/jot-header.tpl
index 155595056..0093bf82a 100644
--- a/view/theme/dispy/jot-header.tpl
+++ b/view/theme/dispy/jot-header.tpl
@@ -90,7 +90,7 @@ function initEditor(cb) {
}
} // initEditor
</script>
-<script type="text/javascript" src="include/ajaxupload.js" ></script>
+<script type="text/javascript" src="js/ajaxupload.js" ></script>
<script>
var ispublic = '$ispublic';
$(document).ready(function() {
diff --git a/view/theme/duepuntozero/nav.tpl b/view/theme/duepuntozero/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/duepuntozero/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/easterbunny/nav.tpl b/view/theme/easterbunny/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/easterbunny/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/goldenrod/nav.tpl b/view/theme/goldenrod/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/goldenrod/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/greenzero/nav.tpl b/view/theme/greenzero/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/greenzero/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/loozah/nav.tpl b/view/theme/loozah/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/loozah/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/purplezero/nav.tpl b/view/theme/purplezero/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/purplezero/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/quattro/colors.less b/view/theme/quattro/colors.less
new file mode 100644
index 000000000..b5a203b94
--- /dev/null
+++ b/view/theme/quattro/colors.less
@@ -0,0 +1,67 @@
+// Quattro Theme LESS file
+
+// "Echo" palette from Inkscape
+@Blue1:rgb(25,174,255);
+@Blue2:rgb(0,132,200);
+@Blue3:rgb(0,92,148);
+@Red1:rgb(255,65,65);
+@Red2:rgb(220,0,0);
+@Red3:rgb(181,0,0);
+@Orange1:rgb(255,255,62);
+@Orange2:rgb(255,153,0);
+@Orange3:rgb(255,102,0);
+@Brown1:rgb(255,192,34);
+@Brown2:rgb(184,129,0);
+@Brown3:rgb(128,77,0);
+@Green1:rgb(204,255,66);
+@Green2:rgb(154,222,0);
+@Green3:rgb(0,145,0);
+@Purple1:rgb(241,202,255);
+@Purple2:rgb(215,108,255);
+@Purple3:rgb(186,0,255);
+@Metalic1:rgb(189,205,212);
+@Metalic2:rgb(158,171,176);
+@Metalic3:rgb(54,78,89);
+@Metalic4:rgb(14,35,46);
+@Grey1:rgb(255,255,255);
+@Grey2:rgb(204,204,204);
+@Grey3:rgb(153,153,153);
+@Grey4:rgb(102,102,102);
+@Grey5:rgb(45,45,45);
+
+
+// Theme colors
+@BodyBackground: @Grey1;
+@BodyColor: @Grey5;
+
+@Link: @Blue3;
+@LinkHover: @Blue3;
+@LinkVisited: @Blue3;
+
+@Banner: @Grey1;
+
+@NavbarBackground:@Metalic4;
+@NavbarSelectedBg:@Metalic3;
+@NavbarSelectedBorder: @Metalic2;
+@NavbarNotifBg: @Blue1;
+
+@Menu: @Grey5;
+@MenuBg: @Grey1;
+@MenuBorder: @Metalic3;
+@MenuItem: @Grey5;
+@MenuItemHoverBg: @Metalic1;
+@MenuItemSeparator: @Metalic2;
+@MenuEmpty: @Metalic2;
+@MenuItemDetail: @Metalic2;
+
+@AsideBorder: @Metalic1;
+@AsideConnect: @Grey1;
+@AsideConnectBg: @Blue3;
+@AsideConnectHoverBg: @Blue1;
+@VCardLabelColor: @Grey3;
+
+@InfoColor: @Grey1;
+@InfoBackgroundColor: @Metalic3;
+
+@NoticeColor: @Grey1;
+@NoticeBackgroundColor: #511919;
diff --git a/view/theme/quattro/experimental b/view/theme/quattro/experimental
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/view/theme/quattro/experimental
diff --git a/view/theme/quattro/icons.less b/view/theme/quattro/icons.less
new file mode 100644
index 000000000..8f7111aff
--- /dev/null
+++ b/view/theme/quattro/icons.less
@@ -0,0 +1,37 @@
+/* icons */
+
+.icons(@size: 22) {
+ &.notify { background-image: url("../../../images/icons/@{size}/notify_off.png"); }
+ &.gear { background-image: url("../../../images/icons/@{size}/gear.png"); }
+
+ &.add { background-image: url("../../../images/icons/@{size}/add.png"); }
+ &.delete { background-image: url("../../../images/icons/@{size}/delete.png"); }
+ &.edit { background-image: url("../../../images/icons/@{size}/edit.png"); }
+ &.start { background-image: url("../../../images/icons/@{size}/star.png"); }
+}
+
+
+.icon {
+ background-color: transparent ;
+ background-repeat: no-repeat;
+ background-position: center center;
+ display: block;
+ overflow: hidden;
+ text-indent: -9999px;
+ padding: 1px;
+
+ &.text {
+ text-indent: 0px;
+ }
+
+ &.s16 {
+ width:22px; height: 22px;
+ .icons(16);
+ }
+ &.s22 {
+ width:22px; height: 22px;
+ .icons(22);
+ }
+
+
+}
diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less
new file mode 100644
index 000000000..54bd11806
--- /dev/null
+++ b/view/theme/quattro/quattro.less
@@ -0,0 +1,253 @@
+// Quattro Theme LESS file
+
+/* global */
+body {
+ font-family: Liberation Sans,helvetica,arial,clean,sans-serif;
+ font-size: 12px;
+ background-color: @BodyBackground;
+ color: @BodyColor;
+ margin: 50px 0px 0px 0px;
+ display:table;
+}
+
+.shadow(@x: 0px, @y: 5px){
+ -webkit-box-shadow:@x @y 10px rgba(0, 0, 0, 0.7);
+ -moz-box-shadow:@x @y 10px rgba(0, 0, 0, 0.7);
+ box-shadow:@x @y 10px rgba(0, 0, 0, 0.7);
+}
+
+.rounded(@tr: 5px, @tl: 5px, @bl: 5px, @br: 5px){
+ -moz-border-radius: @arguments;
+ -webkit-border-radius: @arguments;
+ border-radius: @arguments;
+}
+
+.roundbottom (@radius: 5px){ .rounded(0, 0, @radius, @radius); }
+.roundtop (@radius: 5px){ .rounded(@radius, @radius, 0, 0); }
+
+a, a:link { color: @Link; text-decoration: none; }
+a:visited { color: @LinkVisited; text-decoration: none; }
+a:hover {color: @LinkHover; text-decoration: underline; }
+
+.left { float: left; }
+.right { float: right; }
+
+.tool {
+ height: auto; overflow: auto;
+ .label { float: left;}
+ .action { float: right; }
+}
+
+/* popup notifications */
+div.jGrowl div.notice {
+ background: @NoticeBackgroundColor url("../../../images/icons/48/notice.png") no-repeat 5px center;
+ color: @NoticeColor;
+ padding-left: 58px;
+}
+div.jGrowl div.info {
+ background: @InfoBackgroundColor url("../../../images/icons/48/info.png") no-repeat 5px center;
+ color: @InfoColor;
+ padding-left: 58px;
+}
+
+
+
+/* header */
+header {
+ position: fixed; left: 43%; right: 43%; top: 0px;
+ margin: 0px; padding: 0px;
+ /*width: 100%; height: 12px; */
+ z-index: 110;
+ color: @Grey1;
+ #site-location {
+ display: none;
+ }
+
+ #banner {
+
+ text-align: center;
+ width: 100%;
+ a, a:active, a:visited, a:link, a:hover { color: @Grey1; text-decoration: none; outline: none; vertical-align: bottom; }
+ #logo-img { height: 22px; margin-top:5px;}
+ #logo-text { font-size: 22px }
+ }
+}
+/* nav */
+nav {
+ width: 100%; height: 32px;
+ position: fixed; left: 0px; top: 0px;
+ padding: 0px;
+ background-color: @NavbarBackground;
+ color: @Grey1;
+ z-index: 100;
+ .shadow(0px, 0px);
+
+ a, a:active, a:visited, a:link, a:hover { color: @Banner; text-decoration: none; outline: none; }
+
+ ul {
+ margin: 0px;
+ padding: 0px 20px;
+ li {
+ list-style: none;
+ margin: 0px; padding: 0px;
+ float: left;
+ .menu-popup{ left: 0px; right: auto; }
+ }
+
+ }
+
+ .nav-menu-icon {
+ position: relative;
+ height: 22px;
+ padding: 5px;
+ margin: 0px 10px;
+ .roundtop();
+
+ &.selected {
+ background-color: @NavbarSelectedBg;
+ }
+
+ img { width: 22px; height: 22px; }
+ .nav-notify { top: 3px; }
+ }
+
+ .nav-menu {
+ position: relative;
+ height: 16px;
+ padding: 5px;
+ margin: 3px 15px 0px;
+ font-size: 14px;
+ border-bottom: 3px solid @NavbarBackground;
+ &.selected {
+ border-bottom: 3px solid @NavbarSelectedBorder;
+ }
+
+ }
+
+ .nav-notify {
+ display: none;
+ position: absolute;
+ background-color: @NavbarNotifBg;
+ .rounded();
+ font-size: 10px;
+ padding: 1px 3px;
+ top: 0px;
+ right: -10px;
+ min-width: 15px;
+ text-align: right;
+
+ &.show{ display: block; }
+ }
+
+
+ #nav-help-link,
+ #nav-search-link,
+ #nav-directory-link,
+ #nav-apps-link,
+ #nav-site-linkmenu {
+ float: right;
+ .menu-popup{ right: 0px; left: auto; }
+ }
+
+ #nav-notifications-linkmenu.on .icon.s22.notify,
+ #nav-notifications-linkmenu.selected .icon.s22.notify { background-image: url("../../../images/icons/22/notify_on.png") }
+ #nav-apps-link.selected { background-color: @NavbarSelectedBg; }
+}
+
+
+ul.menu-popup {
+ position: absolute;
+ display: none;
+ width: 10em;
+ background: @MenuBg;
+ color: @Menu;
+ margin: 0px;
+ padding: 0px;
+ list-style: none;
+ border: 3px solid @MenuBorder;
+ z-index: 100000;
+
+ .shadow();
+
+ a { display: block; color: @MenuItem; padding: 5px 10px; text-decoration: none;}
+ a:hover { background-color: @MenuItemHoverBg; }
+ .menu-sep { border-top: 1px solid @MenuItemSeparator; }
+ li { float: none; overflow: auto; height: auto; display: block; }
+ li img { float: left; width: 16px; height: 16px; padding-right: 5px;}
+ .empty {
+ padding: 5px;
+ text-align: center;
+ color: @MenuEmpty;
+ }
+}
+
+#nav-notifications-menu {
+ width: 400px;
+ img { float: left; margin-right: 5px; }
+ .contactname { font-weight: bold; }
+ .notif-when { font-size: 10px; color: @MenuItemDetail; display: block; }
+}
+
+
+
+
+/* aside */
+aside {
+ display: table-cell;
+ width: 200px;
+ padding:0px 10px 0px 20px;
+ border-right: 1px solid @AsideBorder;
+
+ .vcard {
+ .fn { font-size: 16px; font-weight: bold; margin-bottom: 5px; }
+ .title { margin-bottom: 5px; }
+ dl { height: auto; overflow: auto; }
+ dt {float: left; margin-left: 0px; width: 35%; text-align: right; color: @VCardLabelColor; }
+ dd {float: left; margin-left: 4px; width: 60%;}
+
+ }
+
+ #profile-extra-links {
+ ul { padding: 0px; margin: 0px; }
+ li { padding: 0px; margin: 0px; list-style: none; }
+ }
+
+ #dfrn-request-link {
+ display: block;
+ .rounded();
+ color: @AsideConnect;
+ background: @AsideConnectBg url('../../../images/connect-bg.png') no-repeat left center;
+ font-weight: bold;
+ text-transform:uppercase;
+ padding: 4px 2px 2px 35px;
+
+ &:hover { text-decoration: none; background-color: @AsideConnectHoverBg; }
+ }
+
+}
+
+#contact-block {
+ overflow: auto; height: auto;
+ .contact-block-h4 { float: left; margin: 5px 0px; }
+ .allcontact-link { float: right; margin: 5px 0px; }
+ .contact-block-content {
+ clear: both;
+ overflow: auto; height: auto;
+ }
+ .contact-block-link {
+ float: left;
+ margin: 0px 2px 2px 0px;
+ }
+}
+
+
+
+
+/* section */
+section {
+ display: table-cell;
+ width: 800px;
+ padding:0px 20px 0px 10px;
+}
+
+
diff --git a/view/theme/quattro/style.css b/view/theme/quattro/style.css
new file mode 100644
index 000000000..70e0a3b94
--- /dev/null
+++ b/view/theme/quattro/style.css
@@ -0,0 +1,392 @@
+/**
+ * Fabio Comuni <http://kirgroup.com/profile/fabrixxm>
+ **/
+/* icons */
+.icon {
+ background-color: transparent ;
+ background-repeat: no-repeat;
+ background-position: center center;
+ display: block;
+ overflow: hidden;
+ text-indent: -9999px;
+ padding: 1px;
+}
+.icon.text {
+ text-indent: 0px;
+}
+.icon.s16 {
+ width: 22px;
+ height: 22px;
+}
+.icon.s16.notify {
+ background-image: url("../../../images/icons/16/notify_off.png");
+}
+.icon.s16.gear {
+ background-image: url("../../../images/icons/16/gear.png");
+}
+.icon.s16.add {
+ background-image: url("../../../images/icons/16/add.png");
+}
+.icon.s16.delete {
+ background-image: url("../../../images/icons/16/delete.png");
+}
+.icon.s16.edit {
+ background-image: url("../../../images/icons/16/edit.png");
+}
+.icon.s16.start {
+ background-image: url("../../../images/icons/16/star.png");
+}
+.icon.s22 {
+ width: 22px;
+ height: 22px;
+}
+.icon.s22.notify {
+ background-image: url("../../../images/icons/22/notify_off.png");
+}
+.icon.s22.gear {
+ background-image: url("../../../images/icons/22/gear.png");
+}
+.icon.s22.add {
+ background-image: url("../../../images/icons/22/add.png");
+}
+.icon.s22.delete {
+ background-image: url("../../../images/icons/22/delete.png");
+}
+.icon.s22.edit {
+ background-image: url("../../../images/icons/22/edit.png");
+}
+.icon.s22.start {
+ background-image: url("../../../images/icons/22/star.png");
+}
+/* global */
+body {
+ font-family: Liberation Sans, helvetica, arial, clean, sans-serif;
+ font-size: 12px;
+ background-color: #ffffff;
+ color: #2d2d2d;
+ margin: 50px 0px 0px 0px;
+ display: table;
+}
+a, a:link {
+ color: #005c94;
+ text-decoration: none;
+}
+a:visited {
+ color: #005c94;
+ text-decoration: none;
+}
+a:hover {
+ color: #005c94;
+ text-decoration: underline;
+}
+.left {
+ float: left;
+}
+.right {
+ float: right;
+}
+.tool {
+ height: auto;
+ overflow: auto;
+}
+.tool .label {
+ float: left;
+}
+.tool .action {
+ float: right;
+}
+/* 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;
+}
+/* header */
+header {
+ position: fixed;
+ left: 43%;
+ right: 43%;
+ top: 0px;
+ margin: 0px;
+ padding: 0px;
+ /*width: 100%; height: 12px; */
+
+ z-index: 110;
+ color: #ffffff;
+}
+header #site-location {
+ display: none;
+}
+header #banner {
+ text-align: center;
+ width: 100%;
+}
+header #banner a,
+header #banner a:active,
+header #banner a:visited,
+header #banner a:link,
+header #banner a:hover {
+ color: #ffffff;
+ text-decoration: none;
+ outline: none;
+ vertical-align: bottom;
+}
+header #banner #logo-img {
+ height: 22px;
+ margin-top: 5px;
+}
+header #banner #logo-text {
+ font-size: 22px;
+}
+/* nav */
+nav {
+ width: 100%;
+ height: 32px;
+ position: fixed;
+ left: 0px;
+ top: 0px;
+ padding: 0px;
+ background-color: #0e232e;
+ color: #ffffff;
+ z-index: 100;
+ -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);
+}
+nav a,
+nav a:active,
+nav a:visited,
+nav a:link,
+nav a:hover {
+ color: #ffffff;
+ text-decoration: none;
+ outline: none;
+}
+nav ul {
+ margin: 0px;
+ padding: 0px 20px;
+}
+nav ul li {
+ list-style: none;
+ margin: 0px;
+ padding: 0px;
+ float: left;
+}
+nav ul li .menu-popup {
+ left: 0px;
+ right: auto;
+}
+nav .nav-menu-icon {
+ position: relative;
+ height: 22px;
+ padding: 5px;
+ margin: 0px 10px;
+ -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: #364e59;
+}
+nav .nav-menu-icon img {
+ width: 22px;
+ height: 22px;
+}
+nav .nav-menu-icon .nav-notify {
+ top: 3px;
+}
+nav .nav-menu {
+ position: relative;
+ height: 16px;
+ padding: 5px;
+ margin: 3px 15px 0px;
+ font-size: 14px;
+ border-bottom: 3px solid #0e232e;
+}
+nav .nav-menu.selected {
+ border-bottom: 3px solid #9eabb0;
+}
+nav .nav-notify {
+ display: none;
+ position: absolute;
+ background-color: #19aeff;
+ -moz-border-radius: 5px 5px 5px 5px;
+ -webkit-border-radius: 5px 5px 5px 5px;
+ border-radius: 5px 5px 5px 5px;
+ font-size: 10px;
+ padding: 1px 3px;
+ top: 0px;
+ right: -10px;
+ min-width: 15px;
+ text-align: right;
+}
+nav .nav-notify.show {
+ display: block;
+}
+nav #nav-help-link,
+nav #nav-search-link,
+nav #nav-directory-link,
+nav #nav-apps-link,
+nav #nav-site-linkmenu {
+ float: right;
+}
+nav #nav-help-link .menu-popup,
+nav #nav-search-link .menu-popup,
+nav #nav-directory-link .menu-popup,
+nav #nav-apps-link .menu-popup,
+nav #nav-site-linkmenu .menu-popup {
+ right: 0px;
+ left: auto;
+}
+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");
+}
+nav #nav-apps-link.selected {
+ background-color: #364e59;
+}
+ul.menu-popup {
+ position: absolute;
+ display: none;
+ width: 10em;
+ background: #ffffff;
+ color: #2d2d2d;
+ margin: 0px;
+ padding: 0px;
+ 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);
+}
+ul.menu-popup a {
+ display: block;
+ color: #2d2d2d;
+ padding: 5px 10px;
+ text-decoration: none;
+}
+ul.menu-popup a:hover {
+ background-color: #bdcdd4;
+}
+ul.menu-popup .menu-sep {
+ border-top: 1px solid #9eabb0;
+}
+ul.menu-popup li {
+ float: none;
+ overflow: auto;
+ height: auto;
+ display: block;
+}
+ul.menu-popup li img {
+ float: left;
+ width: 16px;
+ height: 16px;
+ padding-right: 5px;
+}
+ul.menu-popup .empty {
+ padding: 5px;
+ text-align: center;
+ color: #9eabb0;
+}
+#nav-notifications-menu {
+ width: 400px;
+}
+#nav-notifications-menu img {
+ float: left;
+ margin-right: 5px;
+}
+#nav-notifications-menu .contactname {
+ font-weight: bold;
+}
+#nav-notifications-menu .notif-when {
+ font-size: 10px;
+ color: #9eabb0;
+ display: block;
+}
+/* aside */
+aside {
+ display: table-cell;
+ width: 200px;
+ padding: 0px 10px 0px 20px;
+ border-right: 1px solid #bdcdd4;
+}
+aside .vcard .fn {
+ font-size: 16px;
+ font-weight: bold;
+ margin-bottom: 5px;
+}
+aside .vcard .title {
+ margin-bottom: 5px;
+}
+aside .vcard dl {
+ height: auto;
+ overflow: auto;
+}
+aside .vcard dt {
+ float: left;
+ margin-left: 0px;
+ width: 35%;
+ text-align: right;
+ color: #999999;
+}
+aside .vcard dd {
+ float: left;
+ margin-left: 4px;
+ width: 60%;
+}
+aside #profile-extra-links ul {
+ padding: 0px;
+ margin: 0px;
+}
+aside #profile-extra-links li {
+ padding: 0px;
+ margin: 0px;
+ list-style: none;
+}
+aside #dfrn-request-link {
+ display: block;
+ -moz-border-radius: 5px 5px 5px 5px;
+ -webkit-border-radius: 5px 5px 5px 5px;
+ border-radius: 5px 5px 5px 5px;
+ color: #ffffff;
+ background: #005c94 url('../../../images/connect-bg.png') no-repeat left center;
+ font-weight: bold;
+ text-transform: uppercase;
+ padding: 4px 2px 2px 35px;
+}
+aside #dfrn-request-link:hover {
+ text-decoration: none;
+ background-color: #19aeff;
+}
+#contact-block {
+ overflow: auto;
+ height: auto;
+}
+#contact-block .contact-block-h4 {
+ float: left;
+ margin: 5px 0px;
+}
+#contact-block .allcontact-link {
+ float: right;
+ margin: 5px 0px;
+}
+#contact-block .contact-block-content {
+ clear: both;
+ overflow: auto;
+ height: auto;
+}
+#contact-block .contact-block-link {
+ float: left;
+ margin: 0px 2px 2px 0px;
+}
+/* section */
+section {
+ display: table-cell;
+ width: 800px;
+ padding: 0px 20px 0px 10px;
+}
diff --git a/view/theme/quattro/style.less b/view/theme/quattro/style.less
new file mode 100644
index 000000000..c3dbae777
--- /dev/null
+++ b/view/theme/quattro/style.less
@@ -0,0 +1,14 @@
+/**
+ * Fabio Comuni <http://kirgroup.com/profile/fabrixxm>
+ **/
+// Less file http://lesscss.org/
+// compile with lessc
+// $ lessc style.less > style.css
+
+@import "colors";
+@import "icons";
+@import "quattro";
+
+
+
+
diff --git a/view/theme/shady/nav.tpl b/view/theme/shady/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/shady/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>
diff --git a/view/theme/three-d/nav.tpl b/view/theme/three-d/nav.tpl
new file mode 100644
index 000000000..2cd29a7c2
--- /dev/null
+++ b/view/theme/three-d/nav.tpl
@@ -0,0 +1,51 @@
+<nav>
+ $langselector
+
+ <div id="site-location">$sitelocation</div>
+
+ {{ if $nav.logout }}<a id="nav-logout-link" class="nav-link $nav.logout.2" href="$nav.logout.0" title="$nav.logout.3" >$nav.logout.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 }}
+
+ <span id="nav-link-wrapper" >
+
+ {{ if $nav.register }}<a id="nav-register-link" class="nav-commlink $nav.register.2" href="$nav.register.0" title="$nav.register.3" >$nav.register.1</a>{{ endif }}
+
+ <a id="nav-help-link" class="nav-link $nav.help.2" target="friendika-help" href="$nav.help.0" title="$nav.help.3" >$nav.help.1</a>
+
+ {{ if $nav.apps }}<a id="nav-apps-link" class="nav-link $nav.apps.2" href="$nav.apps.0" title="$nav.apps.3" >$nav.apps.1</a>{{ endif }}
+
+ <a id="nav-search-link" class="nav-link $nav.search.2" href="$nav.search.0" title="$nav.search.3" >$nav.search.1</a>
+ <a id="nav-directory-link" class="nav-link $nav.directory.2" href="$nav.directory.0" title="$nav.directory.3" >$nav.directory.1</a>
+
+ {{ if $nav.admin }}<a id="nav-admin-link" class="nav-link $nav.admin.2" href="$nav.admin.0" title="$nav.admin.3" >$nav.admin.1</a>{{ endif }}
+
+ {{ if $nav.network }}
+ <a id="nav-network-link" class="nav-commlink $nav.network.2" href="$nav.network.0" title="$nav.network.3" >$nav.network.1</a>
+ <span id="net-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.home }}
+ <a id="nav-home-link" class="nav-commlink $nav.home.2" href="$nav.home.0" title="$nav.home.3" >$nav.home.1</a>
+ <span id="home-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.community }}
+ <a id="nav-community-link" class="nav-commlink $nav.community.2" href="$nav.community.0" title="$nav.community.3" >$nav.community.1</a>
+ {{ endif }}
+ {{ if $nav.notifications }}
+ <a id="nav-notify-link" class="nav-commlink $nav.notifications.2" href="$nav.notifications.0" title="$nav.notifications.3" >$nav.notifications.1</a>
+ <span id="notify-update" class="nav-ajax-left"></span>
+ {{ endif }}
+ {{ if $nav.messages }}
+ <a id="nav-messages-link" class="nav-commlink $nav.messages.2" href="$nav.messages.0" title="$nav.messages.3" >$nav.messages.1</a>
+ <span id="mail-update" class="nav-ajax-left"></span>
+ {{ endif }}
+
+ {{ if $nav.manage }}<a id="nav-manage-link" class="nav-commlink $nav.manage.2" href="$nav.manage.0" title="$nav.manage.3">$nav.manage.1</a>{{ endif }}
+
+ {{ if $nav.settings }}<a id="nav-settings-link" class="nav-link $nav.settings.2" href="$nav.settings.0" title="$nav.settings.3">$nav.settings.1</a>{{ endif }}
+ {{ if $nav.profiles }}<a id="nav-profiles-link" class="nav-link $nav.profiles.2" href="$nav.profiles.0" title="$nav.profiles.3" >$nav.profiles.1</a>{{ endif }}
+
+ {{ if $nav.contacts }}<a id="nav-contacts-link" class="nav-link $nav.contacts.2" href="$nav.contacts.0" title="$nav.contacts.3" >$nav.contacts.1</a>{{ endif }}
+ </span>
+ <span id="nav-end"></span>
+ <span id="banner">$banner</span>
+</nav>