Merge pull request #944 from annando/master

Some more frontend stuff/Native Diaspora reshare
This commit is contained in:
tobiasd 2014-04-26 09:13:17 +02:00
commit c1d14bcc98
17 changed files with 147 additions and 41 deletions

View File

@ -1255,6 +1255,10 @@ if(! function_exists('info')) {
*/ */
function info($s) { function info($s) {
$a = get_app(); $a = get_app();
if (local_user() AND get_pconfig(local_user(),'system','ignore_info'))
return;
if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array(); if(! x($_SESSION,'sysmsg_info')) $_SESSION['sysmsg_info'] = array();
if($a->interactive) if($a->interactive)
$_SESSION['sysmsg_info'][] = $s; $_SESSION['sysmsg_info'][] = $s;

BIN
images/dreamwidth.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
images/insanejournal.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -2309,26 +2309,40 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
require_once('include/datetime.php'); require_once('include/datetime.php');
$created = datetime_convert('UTC','UTC',$item['created'],'Y-m-d H:i:s \U\T\C'); $created = datetime_convert('UTC','UTC',$item['created'],'Y-m-d H:i:s \U\T\C');
// To-Do
// Detect a share element and do a reshare // Detect a share element and do a reshare
// see: https://github.com/Raven24/diaspora-federation/blob/master/lib/diaspora-federation/entities/reshare.rb // see: https://github.com/Raven24/diaspora-federation/blob/master/lib/diaspora-federation/entities/reshare.rb
$tpl = get_markup_template('diaspora_post.tpl'); if (!$item['private'] AND ($ret = diaspora_is_reshare($item["body"]))) {
$msg = replace_macros($tpl, array( $tpl = get_markup_template('diaspora_reshare.tpl');
'$body' => $body, $msg = replace_macros($tpl, array(
'$guid' => $item['guid'], '$root_handle' => xmlify($ret['root_handle']),
'$handle' => xmlify($myaddr), '$root_guid' => $ret['root_guid'],
'$public' => $public, '$guid' => $item['guid'],
'$created' => $created, '$handle' => xmlify($myaddr),
'$provider' => $item["app"] '$public' => $public,
)); '$created' => $created,
'$provider' => $item["app"]
));
} else {
$tpl = get_markup_template('diaspora_post.tpl');
$msg = replace_macros($tpl, array(
'$body' => $body,
'$guid' => $item['guid'],
'$handle' => xmlify($myaddr),
'$public' => $public,
'$created' => $created,
'$provider' => $item["app"]
));
}
logger('diaspora_send_status: ' . $owner['username'] . ' -> ' . $contact['name'] . ' base message: ' . $msg, LOGGER_DATA); logger('diaspora_send_status: '.$owner['username'].' -> '.$contact['name'].' base message: '.$msg, LOGGER_DATA);
$slap = 'xml=' . urlencode(urlencode(diaspora_msg_build($msg,$owner,$contact,$owner['uprvkey'],$contact['pubkey'],$public_batch))); $slap = 'xml=' . urlencode(urlencode(diaspora_msg_build($msg,$owner,$contact,$owner['uprvkey'],$contact['pubkey'],$public_batch)));
//$slap = 'xml=' . urlencode(diaspora_msg_build($msg,$owner,$contact,$owner['uprvkey'],$contact['pubkey'],$public_batch)); //$slap = 'xml=' . urlencode(diaspora_msg_build($msg,$owner,$contact,$owner['uprvkey'],$contact['pubkey'],$public_batch));
$return_code = diaspora_transmit($owner,$contact,$slap,$public_batch); $return_code = diaspora_transmit($owner,$contact,$slap,$public_batch);
logger('diaspora_send_status: guid: '.$item['guid'].' result '.$return_code, LOGGER_DEBUG);
if(count($images)) { if(count($images)) {
diaspora_send_images($item,$owner,$contact,$images,$public_batch); diaspora_send_images($item,$owner,$contact,$images,$public_batch);
} }
@ -2336,6 +2350,53 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
return $return_code; return $return_code;
} }
function diaspora_is_reshare($body) {
$body = trim($body);
// Skip if it isn't a pure repeated messages
// Does it start with a share?
if (strpos($body, "[share") > 0)
return(false);
// Does it end with a share?
if (strlen($body) > (strrpos($body, "[/share]") + 8))
return(false);
$attributes = preg_replace("/\[share(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","$1",$body);
// Skip if there is no shared message in there
if ($body == $attributes)
return(false);
$profile = "";
preg_match("/profile='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")
$profile = $matches[1];
preg_match('/profile="(.*?)"/ism', $attributes, $matches);
if ($matches[1] != "")
$profile = $matches[1];
$ret= array();
$ret["root_handle"] = preg_replace("=https?://(.*)/u/(.*)=ism", "$2@$1", $profile);
if (($ret["root_handle"] == $profile) OR ($ret["root_handle"] == ""))
return(false);
$link = "";
preg_match("/link='(.*?)'/ism", $attributes, $matches);
if ($matches[1] != "")
$link = $matches[1];
preg_match('/link="(.*?)"/ism', $attributes, $matches);
if ($matches[1] != "")
$link = $matches[1];
$ret["root_guid"] = preg_replace("=https?://(.*)/posts/(.*)=ism", "$2", $link);
if (($ret["root_guid"] == $link) OR ($ret["root_guid"] == ""))
return(false);
return($ret);
}
function diaspora_send_images($item,$owner,$contact,$images,$public_batch = false) { function diaspora_send_images($item,$owner,$contact,$images,$public_batch = false) {
$a = get_app(); $a = get_app();

View File

@ -117,6 +117,9 @@ function delegate_content(&$a) {
if(! in_array($rr['uid'],$uids)) if(! in_array($rr['uid'],$uids))
$potentials[] = $rr; $potentials[] = $rr;
require_once("mod/settings.php");
settings_init($a);
$o = replace_macros(get_markup_template('delegate.tpl'),array( $o = replace_macros(get_markup_template('delegate.tpl'),array(
'$header' => t('Delegate Page Management'), '$header' => t('Delegate Page Management'),
'$base' => $a->get_baseurl(), '$base' => $a->get_baseurl(),
@ -136,4 +139,4 @@ function delegate_content(&$a) {
return $o; return $o;
} }

View File

@ -265,6 +265,7 @@ function settings_post(&$a) {
$theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : $a->user['theme']); $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : $a->user['theme']);
$mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : ''); $mobile_theme = ((x($_POST,'mobile_theme')) ? notags(trim($_POST['mobile_theme'])) : '');
$nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0); $nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0);
$noinfo = ((x($_POST,'noinfo')) ? intval($_POST['noinfo']) : 0);
$infinite_scroll = ((x($_POST,'infinite_scroll')) ? intval($_POST['infinite_scroll']) : 0); $infinite_scroll = ((x($_POST,'infinite_scroll')) ? intval($_POST['infinite_scroll']) : 0);
$browser_update = ((x($_POST,'browser_update')) ? intval($_POST['browser_update']) : 0); $browser_update = ((x($_POST,'browser_update')) ? intval($_POST['browser_update']) : 0);
$browser_update = $browser_update * 1000; $browser_update = $browser_update * 1000;
@ -287,6 +288,7 @@ function settings_post(&$a) {
set_pconfig(local_user(),'system','itemspage_network', $itemspage_network); set_pconfig(local_user(),'system','itemspage_network', $itemspage_network);
set_pconfig(local_user(),'system','itemspage_mobile_network', $itemspage_mobile_network); set_pconfig(local_user(),'system','itemspage_mobile_network', $itemspage_mobile_network);
set_pconfig(local_user(),'system','no_smilies',$nosmile); set_pconfig(local_user(),'system','no_smilies',$nosmile);
set_pconfig(local_user(),'system','ignore_info',$noinfo);
set_pconfig(local_user(),'system','infinite_scroll',$infinite_scroll); set_pconfig(local_user(),'system','infinite_scroll',$infinite_scroll);
@ -850,6 +852,9 @@ function settings_content(&$a) {
$nosmile = get_pconfig(local_user(),'system','no_smilies'); $nosmile = get_pconfig(local_user(),'system','no_smilies');
$nosmile = (($nosmile===false)? '0': $nosmile); // default if not set: 0 $nosmile = (($nosmile===false)? '0': $nosmile); // default if not set: 0
$noinfo = get_pconfig(local_user(),'system','ignore_info');
$noinfo = (($noinfo===false)? '0': $noinfo); // default if not set: 0
$infinite_scroll = get_pconfig(local_user(),'system','infinite_scroll'); $infinite_scroll = get_pconfig(local_user(),'system','infinite_scroll');
$infinite_scroll = (($infinite_scroll===false)? '0': $infinite_scroll); // default if not set: 0 $infinite_scroll = (($infinite_scroll===false)? '0': $infinite_scroll); // default if not set: 0
@ -873,6 +878,7 @@ function settings_content(&$a) {
'$itemspage_network' => array('itemspage_network', t("Number of items to display per page:"), $itemspage_network, t('Maximum of 100 items')), '$itemspage_network' => array('itemspage_network', t("Number of items to display per page:"), $itemspage_network, t('Maximum of 100 items')),
'$itemspage_mobile_network' => array('itemspage_mobile_network', t("Number of items to display per page when viewed from mobile device:"), $itemspage_mobile_network, t('Maximum of 100 items')), '$itemspage_mobile_network' => array('itemspage_mobile_network', t("Number of items to display per page when viewed from mobile device:"), $itemspage_mobile_network, t('Maximum of 100 items')),
'$nosmile' => array('nosmile', t("Don't show emoticons"), $nosmile, ''), '$nosmile' => array('nosmile', t("Don't show emoticons"), $nosmile, ''),
'$noinfo' => array('noinfo', t("Don't show notices"), $noinfo, ''),
'$infinite_scroll' => array('infinite_scroll', t("Infinite scroll"), $infinite_scroll, ''), '$infinite_scroll' => array('infinite_scroll', t("Infinite scroll"), $infinite_scroll, ''),
'$theme_config' => $theme_config, '$theme_config' => $theme_config,

View File

@ -3,19 +3,23 @@
function uexport_init(&$a){ function uexport_init(&$a){
if(! local_user()) if(! local_user())
killme(); killme();
require_once("mod/settings.php");
settings_init($a);
/*
$tabs = array( $tabs = array(
array( array(
'label' => t('Account settings'), 'label' => t('Account settings'),
'url' => $a->get_baseurl(true).'/settings', 'url' => $a->get_baseurl(true).'/settings',
'selected' => '', 'selected' => '',
), ),
array( array(
'label' => t('Display settings'), 'label' => t('Display settings'),
'url' => $a->get_baseurl(true).'/settings/display', 'url' => $a->get_baseurl(true).'/settings/display',
'selected' =>'', 'selected' =>'',
), ),
array( array(
'label' => t('Connector settings'), 'label' => t('Connector settings'),
'url' => $a->get_baseurl(true).'/settings/connectors', 'url' => $a->get_baseurl(true).'/settings/connectors',
@ -42,17 +46,18 @@ function uexport_init(&$a){
'selected' => '' 'selected' => ''
) )
); );
$tabtpl = get_markup_template("generic_links_widget.tpl"); $tabtpl = get_markup_template("generic_links_widget.tpl");
$a->page['aside'] = replace_macros($tabtpl, array( $a->page['aside'] = replace_macros($tabtpl, array(
'$title' => t('Settings'), '$title' => t('Settings'),
'$class' => 'settings-widget', '$class' => 'settings-widget',
'$items' => $tabs, '$items' => $tabs,
)); ));
*/
} }
function uexport_content(&$a){ function uexport_content(&$a){
if ($a->argc > 1) { if ($a->argc > 1) {
header("Content-type: application/json"); header("Content-type: application/json");
header('Content-Disposition: attachment; filename="'.$a->user['nickname'].'.'.$a->argv[1].'"'); header('Content-Disposition: attachment; filename="'.$a->user['nickname'].'.'.$a->argv[1].'"');
@ -73,15 +78,15 @@ function uexport_content(&$a){
array('/uexport/backup',t('Export all'),t('Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)')), array('/uexport/backup',t('Export all'),t('Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)')),
); );
call_hooks('uexport_options', $options); call_hooks('uexport_options', $options);
$tpl = get_markup_template("uexport.tpl"); $tpl = get_markup_template("uexport.tpl");
return replace_macros($tpl, array( return replace_macros($tpl, array(
'$baseurl' => $a->get_baseurl(), '$baseurl' => $a->get_baseurl(),
'$title' => t('Export personal data'), '$title' => t('Export personal data'),
'$options' => $options '$options' => $options
)); ));
} }
function _uexport_multirow($query) { function _uexport_multirow($query) {
@ -117,7 +122,7 @@ function uexport_account($a){
$user = _uexport_row( $user = _uexport_row(
sprintf( "SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval(local_user()) ) sprintf( "SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval(local_user()) )
); );
$contact = _uexport_multirow( $contact = _uexport_multirow(
sprintf( "SELECT * FROM `contact` WHERE `uid` = %d ",intval(local_user()) ) sprintf( "SELECT * FROM `contact` WHERE `uid` = %d ",intval(local_user()) )
); );
@ -139,7 +144,7 @@ function uexport_account($a){
$group = _uexport_multirow( $group = _uexport_multirow(
sprintf( "SELECT * FROM `group` WHERE uid = %d",intval(local_user()) ) sprintf( "SELECT * FROM `group` WHERE uid = %d",intval(local_user()) )
); );
$group_member = _uexport_multirow( $group_member = _uexport_multirow(
sprintf( "SELECT * FROM `group_member` WHERE uid = %d",intval(local_user()) ) sprintf( "SELECT * FROM `group_member` WHERE uid = %d",intval(local_user()) )
); );
@ -195,4 +200,4 @@ function uexport_all(&$a) {
echo json_encode($output)."\n"; echo json_encode($output)."\n";
} }
} }

View File

@ -1,10 +1,14 @@
/* List of social Networks */ /* List of social Networks */
img.connector { img.connector, img.connector-disabled {
height: 40px; height: 40px;
margin-right: 10px; margin-right: 10px;
border-radius: 10px; border-radius: 10px;
} }
img.connector-disabled {
opacity: 0.5;
}
h3.connector { h3.connector {
display: inline-block; display: inline-block;
vertical-align: bottom; vertical-align: bottom;

View File

@ -34,7 +34,7 @@
<div class="comment-edit-text-end"></div> <div class="comment-edit-text-end"></div>
<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-{{$id}}" style="display: none;" > <div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-{{$id}}" style="display: none;" >
<input type="submit" onclick="post_comment({{$id}}); return false;" id="comment-edit-submit-{{$id}}" class="comment-edit-submit" name="submit" value="{{$submit}}" /> <input type="submit" onclick="post_comment({{$id}}); return false;" id="comment-edit-submit-{{$id}}" class="comment-edit-submit" name="submit" value="{{$submit}}" />
<span onclick="preview_comment({{$id}});" id="comment-edit-preview-link-{{$id}}" class="fakelink">{{$preview}}</span> {{if $preview}}<span onclick="preview_comment({{$id}});" id="comment-edit-preview-link-{{$id}}" class="fakelink">{{$preview}}</span>{{/if}}
<div id="comment-edit-preview-{{$id}}" class="comment-edit-preview" style="display:none;"></div> <div id="comment-edit-preview-{{$id}}" class="comment-edit-preview" style="display:none;"></div>
</div> </div>

View File

@ -0,0 +1,18 @@
{{*
* AUTOMATICALLY GENERATED TEMPLATE
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
*
*}}
<XML>
<post>
<reshare>
<root_diaspora_id>{{$root_handle}}</root_diaspora_id>
<root_guid>{{$root_guid}}</root_guid>
<guid>{{$guid}}</guid>
<diaspora_handle>{{$handle}}</diaspora_handle>
<public>{{$public}}</public>
<created_at>{{$created}}</created_at>
<provider_display_name>{{$provider}}</provider_display_name>
</reshare>
</post>
</XML>

View File

@ -3,12 +3,12 @@
* DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN * DO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN
* *
*}} *}}
<script>$(function(){ previewTheme($("#id_{{$field.0}}")[0]); });</script> {{if $field.5}}<script>$(function(){ previewTheme($("#id_{{$field.0}}")[0]); });</script>{{/if}}
<div class='field select'> <div class='field select'>
<label for='id_{{$field.0}}'>{{$field.1}}</label> <label for='id_{{$field.0}}'>{{$field.1}}</label>
<select name='{{$field.0}}' id='id_{{$field.0}}' {{if $field.5}}onchange="previewTheme(this);"{{/if}} > <select name='{{$field.0}}' id='id_{{$field.0}}' {{if $field.5}}onchange="previewTheme(this);"{{/if}} >
{{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}} {{foreach $field.4 as $opt=>$val}}<option value="{{$opt}}" {{if $opt==$field.2}}selected="selected"{{/if}}>{{$val}}</option>{{/foreach}}
</select> </select>
<span class='field_help'>{{$field.3}}</span> <span class='field_help'>{{$field.3}}</span>
<div id="theme-preview"></div> {{if $field.5}}<div id="theme-preview"></div>{{/if}}
</div> </div>

View File

@ -59,7 +59,8 @@
<a href="#profile-jot-acl-wrapper" id="jot-perms-icon" class="icon {{$lockstate}}" title="{{$permset}}" ></a>{{$bang}} <a href="#profile-jot-acl-wrapper" id="jot-perms-icon" class="icon {{$lockstate}}" title="{{$permset}}" ></a>{{$bang}}
</div> </div>
<span onclick="preview_post();" id="jot-preview-link" class="fakelink">{{$preview}}</span> <!-- {{if $preview}}<span onclick="preview_post();" id="jot-preview-link" class="fakelink">{{$preview}}</span>{{/if}} -->
{{if $preview}}<input type="submit" onclick="preview_post(); return false;" id="jot-preview-link" value="{{$preview}}" />{{/if}}
<div id="profile-jot-perms-end"></div> <div id="profile-jot-perms-end"></div>

View File

@ -14,6 +14,7 @@
{{include file="field_input.tpl" field=$itemspage_mobile_network}} {{include file="field_input.tpl" field=$itemspage_mobile_network}}
{{include file="field_input.tpl" field=$ajaxint}} {{include file="field_input.tpl" field=$ajaxint}}
{{include file="field_checkbox.tpl" field=$nosmile}} {{include file="field_checkbox.tpl" field=$nosmile}}
{{include file="field_checkbox.tpl" field=$noinfo}}
{{include file="field_checkbox.tpl" field=$infinite_scroll}} {{include file="field_checkbox.tpl" field=$infinite_scroll}}

View File

@ -16,7 +16,7 @@
<div class="settings-submit-wrapper" > <div class="settings-submit-wrapper" >
<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" /> <input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
<input type="submit" name="cancel" class="settings-submit" value="{{$cancel}}" /> <!-- <input type="submit" name="cancel" class="settings-submit" value="{{$cancel}}" /> -->
</div> </div>
</form> </form>

View File

@ -727,6 +727,7 @@ nav #nav-messages-linkmenu.selected,
nav #nav-user-linklabel.selected, nav #nav-user-linklabel.selected,
nav #nav-apps-link.selected { nav #nav-apps-link.selected {
background-color: #364e59; background-color: #364e59;
border-bottom-style: none;
} }
/* nav #nav-community-link { */ /* nav #nav-community-link { */
@ -1424,8 +1425,9 @@ h2 {
/* width: 700px; */ /* width: 700px; */
width: 100%; width: 100%;
padding: 0; padding: 0;
margin: 10px 0; margin: 10px 0px 0px 0px;
border-bottom: 0px; border-bottom: 0px;
box-shadow: none;
} }
.wall-item-bottom .comment-edit-preview { .wall-item-bottom .comment-edit-preview {
@ -1926,12 +1928,12 @@ ul.tabs a {
margin-bottom: 10px; margin-bottom: 10px;
} }
div.pager, .birthday-notice, #jot-preview-link, .comment-edit-submit-wrapper .fakelink { div.pager, .birthday-notice, .comment-edit-submit-wrapper .fakelink {
padding: 2px 7px 2px 7px; padding: 2px 7px 2px 7px;
color: black; color: black;
} }
div.pager, .birthday-notice, ul.tabs a, #jot-preview-link, .comment-edit-submit-wrapper .fakelink { div.pager, .birthday-notice, ul.tabs a, .comment-edit-submit-wrapper .fakelink {
border: 1px solid lightgray; border: 1px solid lightgray;
background: #F2F2F2; background: #F2F2F2;
margin-top: 2px; margin-top: 2px;
@ -1942,11 +1944,11 @@ ul.tabs a:hover {
color: #333; color: #333;
} }
#event-notice:hover, #birthday-notice:hover, ul.tabs li .active, #jot-preview-link:hover, .comment-edit-submit-wrapper .fakelink:hover { #event-notice:hover, #birthday-notice:hover, ul.tabs li .active, .comment-edit-submit-wrapper .fakelink:hover {
color: black; color: black;
} }
ul.tabs a:hover, #event-notice:hover, #birthday-notice:hover, ul.tabs li .active, #jot-preview-link:hover, .comment-edit-submit-wrapper .fakelink:hover { ul.tabs a:hover, #event-notice:hover, #birthday-notice:hover, ul.tabs li .active, .comment-edit-submit-wrapper .fakelink:hover {
background-color: #e5e5e5; background-color: #e5e5e5;
text-decoration: none; text-decoration: none;
border: 1px solid darkgray; border: 1px solid darkgray;

View File

@ -46,7 +46,8 @@
</div> </div>
<input type="submit" onclick="post_comment({{$id}}); return false;" id="comment-edit-submit-{{$id}}" class="comment-edit-submit" name="submit" value="{{$submit}}" /> <input type="submit" onclick="post_comment({{$id}}); return false;" id="comment-edit-submit-{{$id}}" class="comment-edit-submit" name="submit" value="{{$submit}}" />
<span onclick="preview_comment({{$id}});" id="comment-edit-preview-link-{{$id}}" class="fakelink">{{$preview}}</span> {{if $preview}}<input type="submit" onclick="preview_comment({{$id}}); return false;" id="comment-edit-preview-link-{{$id}}" class="comment-edit-submit" value="{{$preview}}" />{{/if}}
<!-- {{if $preview}}<span onclick="preview_comment({{$id}});" id="comment-edit-preview-link-{{$id}}" class="fakelink">{{$preview}}</span>{{/if}} -->
<div id="comment-edit-preview-{{$id}}" class="comment-edit-preview" style="display:none;"></div> <div id="comment-edit-preview-{{$id}}" class="comment-edit-preview" style="display:none;"></div>
</div> </div>

View File

@ -42,12 +42,12 @@
<li id="nav-site-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-site-menu"><span class="icon s22 gear"></span></a> <li id="nav-site-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-site-menu"><span class="icon s22 gear"></span></a>
<ul id="nav-site-menu" class="menu-popup"> <ul id="nav-site-menu" class="menu-popup">
{{if $nav.manage}}<li><a class="{{$nav.manage.2}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a></li>{{/if}}
{{if $nav.help}} <li><a class="{{$nav.help.2}}" target="friendica-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" >{{$nav.help.1}}</a></li>{{/if}}
<li><a class="{{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}" >{{$nav.directory.1}}</a></li>
<!-- {{if $nav.delegations}}<li><a class="{{$nav.delegations.2}}" href="{{$nav.delegations.0}}" title="{{$nav.delegations.3}}">{{$nav.delegations.1}}</a></li>{{/if}} -->
{{if $nav.settings}}<li><a class="{{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}">{{$nav.settings.1}}</a></li>{{/if}}
{{if $nav.admin}}<li><a class="{{$nav.admin.2}}" href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" >{{$nav.admin.1}}</a></li>{{/if}} {{if $nav.admin}}<li><a class="{{$nav.admin.2}}" href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" >{{$nav.admin.1}}</a></li>{{/if}}
{{if $nav.settings}}<li><a class="{{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}">{{$nav.settings.1}}</a></li>{{/if}}
{{if $nav.manage}}<li><a class="{{$nav.manage.2}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a></li>{{/if}}
<li><a class="{{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}" >{{$nav.directory.1}}</a></li>
{{if $nav.help}} <li><a class="{{$nav.help.2}}" target="friendica-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" >{{$nav.help.1}}</a></li>{{/if}}
<!-- {{if $nav.delegations}}<li><a class="{{$nav.delegations.2}}" href="{{$nav.delegations.0}}" title="{{$nav.delegations.3}}">{{$nav.delegations.1}}</a></li>{{/if}} -->
<li><a class="{{$nav.about.2}}" href="{{$nav.about.0}}" title="{{$nav.about.3}}" >{{$nav.about.1}}</a></li> <li><a class="{{$nav.about.2}}" href="{{$nav.about.0}}" title="{{$nav.about.3}}" >{{$nav.about.1}}</a></li>
{{if $nav.logout}}<li><a class="menu-sep {{$nav.logout.2}}" href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" >{{$nav.logout.1}}</a></li>{{/if}} {{if $nav.logout}}<li><a class="menu-sep {{$nav.logout.2}}" href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" >{{$nav.logout.1}}</a></li>{{/if}}