]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #1683 from fabrixxm/issue-1655
authorMichael Vogel <icarus@dabo.de>
Sat, 27 Jun 2015 15:39:00 +0000 (17:39 +0200)
committerMichael Vogel <icarus@dabo.de>
Sat, 27 Jun 2015 15:39:00 +0000 (17:39 +0200)
Deprecate RINO1 function, implements RINO2, remove unused crypro functions

41 files changed:
boot.php
include/api.php
include/datetime.php
include/enotify.php
include/items.php
include/notifier.php
include/ostatus.php
js/main.js
mod/admin.php
mod/contacts.php
mod/install.php
mod/ping.php
mod/settings.php
util/strings.php
view/ca/smarty3/htconfig.tpl [deleted file]
view/cs/smarty3/htconfig.tpl [deleted file]
view/de/smarty3/htconfig.tpl [deleted file]
view/en/smarty3/htconfig.tpl [deleted file]
view/es/smarty3/htconfig.tpl [deleted file]
view/fr/smarty3/htconfig.tpl [deleted file]
view/global.css
view/it/smarty3/htconfig.tpl [deleted file]
view/sv/smarty3/htconfig.tpl [deleted file]
view/templates/admin_users.tpl
view/templates/confirm.tpl
view/templates/contact_drop_confirm.tpl [new file with mode: 0644]
view/templates/contact_template.tpl
view/templates/events_reminder.tpl
view/templates/htconfig.tpl [new file with mode: 0644]
view/templates/nav.tpl
view/templates/settings.tpl
view/theme/duepuntozero/templates/nav.tpl
view/theme/quattro/dark/style.css
view/theme/quattro/green/style.css
view/theme/quattro/lilac/style.css
view/theme/quattro/quattro.less
view/theme/quattro/templates/admin_users.tpl
view/theme/quattro/templates/contact_template.tpl
view/theme/quattro/templates/nav.tpl
view/theme/vier/style.css
view/theme/vier/templates/nav.tpl

index 193b34a60bfd1f9d44fa9e53db64fa42d37b3cf9..0db66c09fa2a1ab89d6355a0869441d2843603a9 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -1858,15 +1858,14 @@ if(! function_exists('get_events')) {
                        $skip = 0;
 
                        foreach($r as &$rr) {
-                               if($rr['adjust'])
-                                       $md = datetime_convert('UTC',$a->timezone,$rr['start'],'Y/m');
-                               else
-                                       $md = datetime_convert('UTC','UTC',$rr['start'],'Y/m');
-                               $md .= "/#link-".$rr['id'];
+                               $title = strip_tags(html_entity_decode(bbcode($rr['summary']),ENT_QUOTES,'UTF-8'));
 
-                               $title = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
-                               if(! $title)
-                                       $title = t('[No description]');
+                               if(strlen($title) > 35)
+                                       $title = substr($title,0,32) . '... ';
+
+                               $description = substr(strip_tags(bbcode($rr['desc'])),0,32) . '... ';
+                               if(! $description)
+                                       $description = t('[No description]');
 
                                $strt = datetime_convert('UTC',$rr['convert'] ? $a->timezone : 'UTC',$rr['start']);
 
@@ -1876,9 +1875,9 @@ if(! function_exists('get_events')) {
                                }
 
                                $today = ((substr($strt,0,10) === datetime_convert('UTC',$a->timezone,'now','Y-m-d')) ? true : false);
-
-                               $rr['link'] = $md;
+                               
                                $rr['title'] = $title;
+                               $rr['description'] = $desciption;
                                $rr['date'] = day_translate(datetime_convert('UTC', $rr['adjust'] ? $a->timezone : 'UTC', $rr['start'], $bd_format)) . (($today) ?  ' ' . t('[today]') : '');
                                $rr['startime'] = $strt;
                                $rr['today'] = $today;
index d1132635d32ca8572882ef91445d697bc1cc66e2..b5d8f9cf3d8c5d7407a319897bdb488e8061513a 100644 (file)
                        unset($status["user"]["uid"]);
                        unset($status["user"]["self"]);
 
-                       // 'geo' => array('type' => 'Point',
-                       //                   'coordinates' => array((float) $notice->lat,
-                       //                                          (float) $notice->lon));
+                       if ($item["coord"] != "") {
+                               $coords = explode(' ',$item["coord"]);
+                               if (count($coords) == 2) {
+                                       $status["geo"] = array('type' => 'Point',
+                                                       'coordinates' => array((float) $coords[0],
+                                                                               (float) $coords[1]));
+                               }
+                       }
 
                        $ret[] = $status;
                };
index 8ac8ff0f297a15100d1c41dea65652e8b15a3007..6461298ba2f155cc24db192554d6120c5e1dd2f9 100644 (file)
@@ -262,10 +262,12 @@ function relative_date($posted_date,$format = null) {
                return t('less than a second ago');
        }
     
+       /*
        $time_append = '';
        if ($etime >= 86400) {
                $time_append = ' ('.$localtime.')';
        }
+       */
        
        $a = array( 12 * 30 * 24 * 60 * 60  =>  array( t('year'),   t('years')),
                                30 * 24 * 60 * 60       =>  array( t('month'),  t('months')),
@@ -283,7 +285,7 @@ function relative_date($posted_date,$format = null) {
                        // translators - e.g. 22 hours ago, 1 minute ago
                        if(! $format)
                                $format = t('%1$d %2$s ago');
-                       return sprintf( $format,$r, (($r == 1) ? $str[0] : $str[1])).$time_append;
+                       return sprintf( $format,$r, (($r == 1) ? $str[0] : $str[1]));
         }
     }
 }}
index 027293d4f3a9b3c957046cb6f415c55ce2bf5750..0ac9f48ffa293ce2f7382c37625c7e0877ece044 100644 (file)
@@ -297,7 +297,7 @@ function notification($params) {
        if($params['type'] == NOTIFY_CONFIRM) {
                if ($params['verb'] == ACTIVITY_FRIEND ){ // mutual connection
                        $subject = sprintf( t('[Friendica:Notify] Connection accepted'));
-                       $preamble = sprintf( t('\'%1$s\' has acepted your connection request at %2$s'), $params['source_name'], $sitename);
+                       $preamble = sprintf( t('\'%1$s\' has accepted your connection request at %2$s'), $params['source_name'], $sitename);
                        $epreamble = sprintf( t('%2$s has accepted your [url=%1$s]connection request[/url].'),
                                                                        $itemlink,
                                                                        '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
@@ -310,7 +310,7 @@ function notification($params) {
                        $itemlink =  $params['link'];
                } else { // ACTIVITY_FOLLOW
                        $subject = sprintf( t('[Friendica:Notify] Connection accepted'));
-                       $preamble = sprintf( t('\'%1$s\' has acepted your connection request at %2$s'), $params['source_name'], $sitename);
+                       $preamble = sprintf( t('\'%1$s\' has accepted your connection request at %2$s'), $params['source_name'], $sitename);
                        $epreamble = sprintf( t('%2$s has accepted your [url=%1$s]connection request[/url].'),
                                                                        $itemlink,
                                                                        '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]');
index a13abf28656808d6a50a616c5544fd77bead158b..475980d2dc972584aaef409cbf64134566b53c1a 100644 (file)
@@ -41,7 +41,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0,
 
        // default permissions - anonymous user
 
-       $sql_extra = " AND `allow_cid` = '' AND `allow_gid` = '' AND `deny_cid`  = '' AND `deny_gid`  = '' ";
+       $sql_extra = " AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid`  = '' AND `item`.`deny_gid`  = '' ";
 
        $r = q("SELECT `contact`.*, `user`.`uid` AS `user_uid`, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`
                FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
@@ -121,9 +121,10 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0,
 
        // Include answers to status.net posts in pubsub feeds
        if($forpubsub) {
-               $sql_post_table = "INNER JOIN `thread` ON `thread`.`iid` = `item`.`parent` ";
-               $visibility = sprintf("AND (`item`.`parent` = `item`.`id`) OR (`item`.`network` = '%s' AND `thread`.`network`='%s')",
-                                       dbesc(NETWORK_DFRN), dbesc(NETWORK_OSTATUS));
+               $sql_post_table = "INNER JOIN `thread` ON `thread`.`iid` = `item`.`parent`
+                               LEFT JOIN `item` AS `thritem` ON `thritem`.`uri`=`item`.`thr-parent` AND `thritem`.`uid`=`item`.`uid`";
+               $visibility = sprintf("AND (`item`.`parent` = `item`.`id`) OR (`item`.`network` = '%s' AND ((`thread`.`network`='%s') OR (`thritem`.`network` = '%s')))",
+                                       dbesc(NETWORK_DFRN), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_OSTATUS));
                $date_field = "`received`";
                $sql_order = "`item`.`received` DESC";
        } else {
index 19f0134729f70ec88c386a7250c73ba036cd3fd5..24dc63d69648281a0d24645b842d150e4a0e6eab 100644 (file)
@@ -234,6 +234,11 @@ function notifier_run(&$argv, &$argc){
 
                $parent = $items[0];
 
+               $thr_parent = q("SELECT `network` FROM `item` WHERE `uri` = '%s' AND `uid` = %d",
+                       dbesc($target_item["thr-parent"]), intval($target_item["uid"]));
+
+               logger('Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
+
                // This is IMPORTANT!!!!
 
                // We will only send a "notify owner to relay" or followup message if the referenced post
@@ -301,32 +306,12 @@ function notifier_run(&$argv, &$argc){
                                        $target_item['deny_cid'].$target_item['deny_gid']) == 0))
                                $push_notify = true;
 
-                       $thr_parent = q("SELECT `network` FROM `item` WHERE `uri` = '%s' AND `uid` = %d",
-                               dbesc($target_item["thr-parent"]), intval($target_item["uid"]));
-
-                       // If the thread parent is OStatus then do some magic to distribute the messages.
-                       // We have not only to look at the parent, since it could be a Friendica thread.
+                       // We notify Friendica users in the thread when it is an OStatus thread.
+                       // Hopefully this transfers the messages to the other Friendica servers. (Untested)
                        if (($thr_parent AND ($thr_parent[0]['network'] == NETWORK_OSTATUS)) OR ($parent['network'] == NETWORK_OSTATUS)) {
-                               logger('Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
 
                                $push_notify = true;
 
-                               // Send a salmon notification to every person we mentioned in the post
-                               $arr = explode(',',$target_item['tag']);
-                               foreach($arr as $x) {
-                                       //logger('Checking tag '.$x, LOGGER_DEBUG);
-                                       $matches = null;
-                                       if(preg_match('/@\[url=([^\]]*)\]/',$x,$matches)) {
-                                               $probed_contact = probe_url($matches[1]);
-                                               if ($probed_contact["notify"] != "") {
-                                                       logger('Notify mentioned user '.$probed_contact["url"].': '.$probed_contact["notify"]);
-                                                       $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
-                                               }
-                                       }
-                               }
-
-                               // We notify Friendica users in the thread when it is an OStatus thread.
-                               // Hopefully this transfers the messages to the other Friendica servers. (Untested)
                                if ($parent["network"] == NETWORK_OSTATUS) {
                                        $r = q("SELECT `author-link` FROM `item` WHERE `parent` = %d AND `author-link` != '%s'",
                                                intval($target_item["parent"]), dbesc($owner['url']));
@@ -338,22 +323,7 @@ function notifier_run(&$argv, &$argc){
                                                }
                                        }
                                }
-/*
-                               // Check if the recipient isn't in your contact list, try to slap it
-                               // Not sure if it is working or not.
-                               $r = q("SELECT `url` FROM `contact` WHERE `id` = %d", $parent['contact-id']);
-                               if (count($r)) {
-
-                                       $thrparent = q("SELECT `author-link` FROM `item` WHERE `uri` = '%s'", dbesc($target_item["thr-parent"]));
-                                       if (count($thrparent) AND (normalise_link($r[0]["url"]) != normalise_link($thrparent[0]["author-link"]))) {
-                                               $probed_contact = probe_url($thrparent[0]["author-link"]);
-                                               if ($probed_contact["notify"] != "") {
-                                                       logger('scrape data for slapper: '.print_r($probed_contact, true));
-                                                       $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
-                                               }
-                                       }
-                               }
-*/
+
                                if (count($url_recipients))
                                        logger("url_recipients ".print_r($url_recipients,true));
                        }
@@ -419,6 +389,25 @@ function notifier_run(&$argv, &$argc){
                        $conversant_str = dbesc(implode(', ',$conversants));
                }
 
+               // If the thread parent is OStatus then do some magic to distribute the messages.
+               // We have not only to look at the parent, since it could be a Friendica thread.
+               if (($thr_parent AND ($thr_parent[0]['network'] == NETWORK_OSTATUS)) OR ($parent['network'] == NETWORK_OSTATUS)) {
+
+                       // Send a salmon notification to every person we mentioned in the post
+                       $arr = explode(',',$target_item['tag']);
+                       foreach($arr as $x) {
+                               //logger('Checking tag '.$x, LOGGER_DEBUG);
+                               $matches = null;
+                               if(preg_match('/@\[url=([^\]]*)\]/',$x,$matches)) {
+                                               $probed_contact = probe_url($matches[1]);
+                                       if ($probed_contact["notify"] != "") {
+                                               logger('Notify mentioned user '.$probed_contact["url"].': '.$probed_contact["notify"]);
+                                               $url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
+                                       }
+                               }
+                       }
+               }
+
                $r = q("SELECT * FROM `contact` WHERE `id` IN ( $conversant_str ) AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0");
 
                if(count($r))
@@ -530,13 +519,16 @@ function notifier_run(&$argv, &$argc){
                $recipients_relocate = q("SELECT * FROM contact WHERE uid = %d  AND self = 0 AND network = '%s'" , intval($uid), NETWORK_DFRN);
                unset($photos);
        } else {
+
+               $slap = atom_entry($target_item,'html',null,$owner,false);
+
                if($followup) {
                        foreach($items as $item) {  // there is only one item
                                if(! $item['parent'])
                                        continue;
                                if($item['id'] == $item_id) {
                                        logger('notifier: followup: item: ' . print_r($item,true), LOGGER_DATA);
-                                       $slap  = atom_entry($item,'html',null,$owner,false);
+                                       //$slap  = atom_entry($item,'html',null,$owner,false);
                                        $atom .= atom_entry($item,'text',null,$owner,false);
                                }
                        }
@@ -946,7 +938,8 @@ function notifier_run(&$argv, &$argc){
 
        // send additional slaps to mentioned remote tags (@foo@example.com)
 
-       if($slap && count($url_recipients) && ($followup || $top_level) && ($public_message || $push_notify) && (! $expire)) {
+       //if($slap && count($url_recipients) && ($followup || $top_level) && ($public_message || $push_notify) && (! $expire)) {
+       if($slap && count($url_recipients) && ($public_message || $push_notify) && (!$expire)) {
                if(! get_config('system','dfrn_only')) {
                        foreach($url_recipients as $url) {
                                if($url) {
index 463ebcd30a779d07235716bbf13d4d2338a1be78..10361e87c8c0c71edc616ee048aa61e435b41d43 100644 (file)
@@ -421,11 +421,9 @@ function ostatus_import($xml,$importer,&$contact, &$hub) {
                logger("Item was stored with id ".$item_id, LOGGER_DEBUG);
                $item["id"] = $item_id;
 
-               if (!isset($item["parent"]) OR ($item["parent"] == 0))
-                       $item["parent"] = $item_id;
-
                if ($mention) {
                        $u = q("SELECT `notify-flags`, `language`, `username`, `email` FROM user WHERE uid = %d LIMIT 1", intval($item['uid']));
+                       $r = q("SELECT `parent` FROM `item` WHERE `id` = %d", intval($item_id));
 
                        notification(array(
                                'type'         => NOTIFY_TAGSELF,
@@ -435,13 +433,13 @@ function ostatus_import($xml,$importer,&$contact, &$hub) {
                                'to_email'     => $u[0]["email"],
                                'uid'          => $item["uid"],
                                'item'         => $item,
-                               'link'         => $a->get_baseurl().'/display/'.urlencode(get_item_guid($item["id"])),
+                               'link'         => $a->get_baseurl().'/display/'.urlencode(get_item_guid($item_id)),
                                'source_name'  => $item["author-name"],
                                'source_link'  => $item["author-link"],
                                'source_photo' => $item["author-avatar"],
                                'verb'         => ACTIVITY_TAG,
                                'otype'        => 'item',
-                               'parent'       => $item["parent"]
+                               'parent'       => $r[0]["parent"]
                        ));
                }
        }
@@ -510,12 +508,15 @@ function check_conversations($override = false) {
 
 function ostatus_completion($conversation_url, $uid, $item = array()) {
 
+       $a = get_app();
+
        $item_stored = -1;
 
        $conversation_url = ostatus_convert_href($conversation_url);
 
        // If the thread shouldn't be completed then store the item and go away
        if ((intval(get_config('system','ostatus_poll_interval')) == -2) AND (count($item) > 0)) {
+               //$arr["app"] .= " (OStatus-NoCompletion)";
                $item_stored = item_store($item, true);
                return($item_stored);
        }
@@ -584,6 +585,7 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
 
        if (!sizeof($items)) {
                if (count($item) > 0) {
+                       //$arr["app"] .= " (OStatus-NoConvFetched)";
                        $item_stored = item_store($item, true);
 
                        if ($item_stored) {
@@ -598,12 +600,16 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
 
        $items = array_reverse($items);
 
+       $r = q("SELECT `nurl` FROM `contact` WHERE `uid` = %d AND `self`", intval($uid));
+       $importer = $r[0];
+
        foreach ($items as $single_conv) {
 
                // Test - remove before flight
                //$tempfile = tempnam(get_temppath(), "conversation");
                //file_put_contents($tempfile, json_encode($single_conv));
 
+               $mention = false;
 
                if (isset($single_conv->object->id))
                        $single_conv->id = $single_conv->object->id;
@@ -654,17 +660,23 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
                        }
                }
 
+               $parent_uri = $parent["uri"];
+
+               // "context" only seems to exist on older servers
                if (isset($single_conv->context->inReplyTo->id)) {
-                       $parent_uri = $single_conv->context->inReplyTo->id;
+                       $parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
+                                               intval($uid), dbesc($single_conv->context->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
+                       if ($parent_exists)
+                               $parent_uri = $single_conv->context->inReplyTo->id;
+               }
 
+               // This is the current way
+               if (isset($single_conv->object->inReplyTo->id)) {
                        $parent_exists = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
-                                               intval($uid), dbesc($parent_uri), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
-                       if (!$parent_exists) {
-                               logger("Parent ".$parent_uri." wasn't found here", LOGGER_DEBUG);
-                               $parent_uri = $parent["uri"];
-                       }
-               } else
-                       $parent_uri = $parent["uri"];
+                                               intval($uid), dbesc($single_conv->object->inReplyTo->id), dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DFRN));
+                       if ($parent_exists)
+                               $parent_uri = $single_conv->object->inReplyTo->id;
+               }
 
                $message_exists = q("SELECT `id`, `parent`, `uri` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s','%s') LIMIT 1",
                                                intval($uid), dbesc($single_conv->id),
@@ -710,6 +722,11 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
                        continue;
                }
 
+               if (is_array($single_conv->to))
+                       foreach($single_conv->to AS $to)
+                               if ($importer["nurl"] == normalise_link($to->id))
+                                       $mention = true;
+
                $actor = $single_conv->actor->id;
                if (isset($single_conv->actor->url))
                        $actor = $single_conv->actor->url;
@@ -765,7 +782,7 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
                else
                        $arr["app"] = "OStatus";
 
-               $arr["app"] .= " (Conversation)";
+               //$arr["app"] .= " (Conversation)";
 
                $arr["object"] = json_encode($single_conv);
                $arr["verb"] = $parent["verb"];
@@ -831,7 +848,7 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
                                if (isset($item[$field]))
                                        $arr[$field] = $item[$field];
 
-                       $arr["app"] .= " (OStatus)";
+                       //$arr["app"] .= " (OStatus)";
                }
 
                $newitem = item_store($arr);
@@ -850,6 +867,28 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
                // Add the conversation entry (but don't fetch the whole conversation)
                ostatus_store_conversation($newitem, $conversation_url);
 
+               if ($mention) {
+                       $u = q("SELECT `notify-flags`, `language`, `username`, `email` FROM user WHERE uid = %d LIMIT 1", intval($uid));
+                       $r = q("SELECT `parent` FROM `item` WHERE `id` = %d", intval($newitem));
+
+                       notification(array(
+                               'type'         => NOTIFY_TAGSELF,
+                               'notify_flags' => $u[0]["notify-flags"],
+                               'language'     => $u[0]["language"],
+                               'to_name'      => $u[0]["username"],
+                               'to_email'     => $u[0]["email"],
+                               'uid'          => $uid,
+                               'item'         => $arr,
+                               'link'         => $a->get_baseurl().'/display/'.urlencode(get_item_guid($newitem)),
+                               'source_name'  => $arr["author-name"],
+                               'source_link'  => $arr["author-link"],
+                               'source_photo' => $arr["author-avatar"],
+                               'verb'         => ACTIVITY_TAG,
+                               'otype'        => 'item',
+                               'parent'       => $r[0]["parent"]
+                       ));
+               }
+
                // If the newly created item is the top item then change the parent settings of the thread
                // This shouldn't happen anymore. This is supposed to be absolote.
                if ($arr["uri"] == $first_id) {
@@ -862,6 +901,7 @@ function ostatus_completion($conversation_url, $uid, $item = array()) {
        }
 
        if (($item_stored < 0) AND (count($item) > 0)) {
+               //$arr["app"] .= " (OStatus-NoConvFound)";
                $item_stored = item_store($item, true);
                if ($item_stored) {
                        logger("Uri ".$item["uri"]." wasn't found in conversation ".$conversation_url, LOGGER_DEBUG);
index 25029c1b055c536e401152a6a929d71a85cfa9cc..239a875cb418896f00cbd86458cf322b3f9a84e3 100644 (file)
                setupFieldRichtext();
 
                /* popup menus */
-       function close_last_popup_menu() {
-               if(last_popup_menu) {
-               last_popup_menu.hide();
-               last_popup_button.removeClass("selected");
-               last_popup_menu = null;
-               last_popup_button = null;
-               }
-               }
+               function close_last_popup_menu() {
+                       if(last_popup_menu) {
+                               last_popup_menu.hide();
+                               last_popup_button.removeClass("selected");
+                               last_popup_menu = null;
+                               last_popup_button = null;
+                       }
+               }
                $('a[rel^=#]').click(function(e){
                        e.preventDefault();
                        var parent = $(this).parent();
                        return false;
                });
                $('html').click(function() {
-                                               close_last_popup_menu();
+                       close_last_popup_menu();
                });
                
                // fancyboxes
                                nnm = $("#nav-notifications-menu");
                                nnm.html(notifications_all + notifications_mark);
                                //nnm.attr('popup','true');
+
+                               var notification_lastitem = parseInt(localStorage.getItem("notification-lastitem"));
+                               var notification_id = 0;
                                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'), e.attr('seen'));
+                                       var text = e.text().format("<span class='contactname'>"+e.attr('name')+"</span>");
+                                       var seenclass = (e.attr('seen')==1)?"notify-seen":"notify-unseen";
+                                       var html = notifications_tpl.format(e.attr('href'),
+                                               e.attr('photo'),                    // {0}
+                                               text,                               // {1}
+                                               e.attr('date'),                     // {2}
+                                               seenclass,                          // {3}
+                                               new Date(e.attr('timestamp')*1000)  // {4}
+                                       );
                                        nnm.append(html);
+                               });
+                               $(eNotif.children("note").get().reverse()).each(function(){
+                                       e = $(this);
+                                       notification_id = parseInt(e.attr('timestamp'));
+                                       if (notification_lastitem!== null && notification_id > notification_lastitem) {
+                                               if (getNotificationPermission()==="granted") {
+                                                       var notification = new Notification(document.title, {
+                                                                                         body: e.text().replace('&rarr; ','').format(e.attr('name')),
+                                                                                         icon: e.attr('photo'),
+                                                                                        });
+                                                       notification['url'] = e.attr('href');
+                                                       notification.addEventListener("click", function(ev){
+                                                               window.location = ev.target.url;
+                                                       });
+                                               }
+                                       }
                                        
-                                       if(e.text().search('&rarr;') == 0) {
-                                         var notification = new Notification(document.title, {
-                                          body: e.text().replace('&rarr; ',''),
-                                          icon: e.attr('photo')
-                                         });
-   
-                                         // TODO (yet unsupported by most browsers): 
-                                         // Implement notification.onclick()
-                                         
-                                         // notifyMarkAll();
-                                       }
                                });
+                               notification_lastitem = notification_id;
+                               localStorage.setItem("notification-lastitem", notification_lastitem)
 
                                $("img[data-src]", nnm).each(function(i, el){
                                        // Add src attribute for images with a data-src attribute
@@ -762,3 +779,18 @@ function previewTheme(elm) {
        });
 
 }
+
+// notification permission settings in localstorage
+// set by settings page
+function getNotificationPermission() {
+       if (window["Notification"] === undefined) {
+               return null;
+       }
+    if (Notification.permission === 'granted') {
+        var val = localStorage.getItem('notification-permissions');
+               if (val === null) return 'denied';
+               return val;
+    } else {
+        return Notification.permission;
+    }
+}
index e3bade1a998f671d13bc393976fe3af8ab0b1c05..28a7a91e4be2eb14445147c5ca68355f4e07ab5d 100644 (file)
@@ -801,7 +801,7 @@ function admin_page_users_post(&$a){
        $nu_nickname = ( x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : '');
        $nu_email = ( x($_POST, 'new_user_email') ? $_POST['new_user_email'] : '');
 
-       check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
+       check_form_security_token_redirectOnErr($a->get_baseurl().'/admin/users', 'admin_users');
 
        if (!($nu_name==="") && !($nu_email==="") && !($nu_nickname==="")) {
                require_once('include/user.php');
@@ -955,11 +955,8 @@ function admin_page_users(&$a){
                                intval($a->pager['itemspage'])
                                );
 
-       function _setup_users($e){
-               $a = get_app();
-
-               $adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
-
+       $adminlist = explode(",", str_replace(" ", "", $a->config['admin_email']));
+       $_setup_users = function ($e) use ($adminlist){
                $accounts = Array(
                        t('Normal Account'),
                        t('Soapbox Account'),
@@ -972,10 +969,11 @@ function admin_page_users(&$a){
                $e['lastitem_date'] = relative_date($e['lastitem_date']);
                //$e['is_admin'] = ($e['email'] === $a->config['admin_email']);
                $e['is_admin'] = in_array($e['email'], $adminlist);
+               $e['is_deletable'] = (intval($e['uid']) != local_user());
                $e['deleted'] = ($e['account_removed']?relative_date($e['account_expires_on']):False);
                return $e;
-       }
-       $users = array_map("_setup_users", $users);
+       };
+       $users = array_map($_setup_users, $users);
 
 
        // Get rid of dashes in key names, Smarty3 can't handle them
index 5d40ff9940ad318753a5ac4c5225979251cd3889..6ee9a4a92b23165e2df3a49cfb4583482d14e338 100644 (file)
@@ -404,7 +404,9 @@ function contacts_content(&$a) {
                                }
 
                                $a->page['aside'] = '';
-                               return replace_macros(get_markup_template('confirm.tpl'), array(
+                               
+                               return replace_macros(get_markup_template('contact_drop_confirm.tpl'), array(
+                                       '$contact' =>  _contact_detail_for_template($orig_record[0]),
                                        '$method' => 'get',
                                        '$message' => t('Do you really want to delete this contact?'),
                                        '$extra_inputs' => $inputs,
@@ -732,54 +734,9 @@ function contacts_content(&$a) {
        $contacts = array();
 
        if(count($r)) {
-
                foreach($r as $rr) {
-
-                       switch($rr['rel']) {
-                               case CONTACT_IS_FRIEND:
-                                       $dir_icon = 'images/lrarrow.gif';
-                                       $alt_text = t('Mutual Friendship');
-                                       break;
-                               case  CONTACT_IS_FOLLOWER;
-                                       $dir_icon = 'images/larrow.gif';
-                                       $alt_text = t('is a fan of yours');
-                                       break;
-                               case CONTACT_IS_SHARING;
-                                       $dir_icon = 'images/rarrow.gif';
-                                       $alt_text = t('you are a fan of');
-                                       break;
-                               default:
-                                       break;
-                       }
-                       if(($rr['network'] === NETWORK_DFRN) && ($rr['rel'])) {
-                               $url = "redir/{$rr['id']}";
-                               $sparkle = ' class="sparkle" ';
-                       }
-                       else {
-                               $url = $rr['url'];
-                               $sparkle = '';
-                       }
-
-
-                       $contacts[] = array(
-                               'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
-                               'edit_hover' => t('Edit contact'),
-                               'photo_menu' => contact_photo_menu($rr),
-                               'id' => $rr['id'],
-                               'alt_text' => $alt_text,
-                               'dir_icon' => $dir_icon,
-                               'thumb' => proxy_url($rr['thumb']),
-                               'name' => $rr['name'],
-                               'username' => $rr['name'],
-                               'sparkle' => $sparkle,
-                               'itemurl' => $rr['url'],
-                               'url' => $url,
-                               'network' => network_to_name($rr['network']),
-                       );
+                       $contacts[] = _contact_detail_for_template($rr);
                }
-
-
-
        }
 
        $tpl = get_markup_template("contacts-template.tpl");
@@ -808,3 +765,48 @@ function contacts_content(&$a) {
 
        return $o;
 }
+
+function _contact_detail_for_template($rr){
+       switch($rr['rel']) {
+               case CONTACT_IS_FRIEND:
+                       $dir_icon = 'images/lrarrow.gif';
+                       $alt_text = t('Mutual Friendship');
+                       break;
+               case  CONTACT_IS_FOLLOWER;
+                       $dir_icon = 'images/larrow.gif';
+                       $alt_text = t('is a fan of yours');
+                       break;
+               case CONTACT_IS_SHARING;
+                       $dir_icon = 'images/rarrow.gif';
+                       $alt_text = t('you are a fan of');
+                       break;
+               default:
+                       break;
+       }
+       if(($rr['network'] === NETWORK_DFRN) && ($rr['rel'])) {
+               $url = "redir/{$rr['id']}";
+               $sparkle = ' class="sparkle" ';
+       }
+       else {
+               $url = $rr['url'];
+               $sparkle = '';
+       }
+       
+       
+       return array(
+               'img_hover' => sprintf( t('Visit %s\'s profile [%s]'),$rr['name'],$rr['url']),
+               'edit_hover' => t('Edit contact'),
+               'photo_menu' => contact_photo_menu($rr),
+               'id' => $rr['id'],
+               'alt_text' => $alt_text,
+               'dir_icon' => $dir_icon,
+               'thumb' => proxy_url($rr['thumb']),
+               'name' => $rr['name'],
+               'username' => $rr['name'],
+               'sparkle' => $sparkle,
+               'itemurl' => $rr['url'],
+               'url' => $url,
+               'network' => network_to_name($rr['network']),
+       );
+       
+}
\ No newline at end of file
index ed07c4ea6a2192f08b1e00476cf440606d693d90..99ebfc6bab3a792ace3514b68c8dcb3785eeb0b1 100755 (executable)
@@ -73,7 +73,7 @@ function install_post(&$a) {
                        // connect to db
                        $db = new dba($dbhost, $dbuser, $dbpass, $dbdata, true);
 
-                       $tpl = get_intltext_template('htconfig.tpl');
+                       $tpl = get_markup_template('htconfig.tpl');
                        $txt = replace_macros($tpl,array(
                                '$dbhost' => $dbhost,
                                '$dbuser' => $dbuser,
@@ -84,13 +84,15 @@ function install_post(&$a) {
                                '$phpath' => $phpath,
                                '$adminmail' => $adminmail
                        ));
+                       
 
                        $result = file_put_contents('.htconfig.php', $txt);
                        if(! $result) {
                                $a->data['txt'] = $txt;
                        }
-
+                       
                        $errors = load_database($db);
+                       
 
                        if($errors)
                                $a->data['db_failed'] = $errors;
@@ -148,7 +150,7 @@ function install_content(&$a) {
                        return replace_macros($tpl, array(
                                '$title' => $install_title,
                                '$pass' => '',
-                               '$status' => t('Permission denied.'),
+                               '$status' => t('Database already in use.'),
                                '$text' => '',
                        ));
                }
index 97a3070d8486fdfcb0e76946f428d68b25a4ae3e..e87ed985534bd0eaeccfc0a482857dd53f2ffc90 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 require_once("include/datetime.php");
 require_once('include/bbcode.php');
-
+require_once("mod/proxy.php");
 
 function ping_init(&$a) {
 
@@ -21,9 +21,7 @@ function ping_init(&$a) {
                        killme();
                }
 
-               $firehose = intval(get_pconfig(local_user(),'system','notify_full'));
-
-               $z = ping_get_notifications(local_user());
+               $notifs = ping_get_notifications(local_user());
                $sysnotify = 0; // we will update this in a moment
 
                $tags = array();
@@ -162,13 +160,23 @@ function ping_init(&$a) {
                }
 
 
-
-               function xmlize($href, $name, $url, $photo, $date, $seen, $message){
-                       require_once("mod/proxy.php");
-                       $photo = proxy_url($photo);
-
-                       $message = html_entity_decode($message, ENT_COMPAT | ENT_HTML401, "UTF-8");
-                       $name = html_entity_decode($name, ENT_COMPAT | ENT_HTML401, "UTF-8");
+               /**
+                * return xml from notification array
+                *
+                * @param array $n Notification array:
+                *              'href' => notification link
+                *              'name' => subject name
+                *              'url' => subject url
+                *              'photo' => subject photo
+                *              'date' => notification date
+                *              'seen' => bool true/false
+                *              'message' => notification message. "{0}" will be replaced by subject name
+                **/
+               function xmlize($n){
+                       $n['photo'] = proxy_url($n['photo']);
+
+                       $n['message'] = html_entity_decode($n['message'], ENT_COMPAT | ENT_HTML401, "UTF-8");
+                       $n['name'] = html_entity_decode($n['name'], ENT_COMPAT | ENT_HTML401, "UTF-8");
 
                        // Are the nofications calles from the regular process or via the friendica app?
                        $regularnotifications = (intval($_GET['uid']) AND intval($_GET['_']));
@@ -176,13 +184,16 @@ function ping_init(&$a) {
                        $a = get_app();
 
                        if ($a->is_friendica_app() OR !$regularnotifications)
-                               $message = str_replace("{0}", $name, $message);
+                               $n['message'] = str_replace("{0}", $n['name'], $n['message']);
 
-                       $data = array('href' => &$href, 'name' => &$name, 'url'=>&$url, 'photo'=>&$photo, 'date'=>&$date, 'seen'=>&$seen, 'messsage'=>&$message);
-                       call_hooks('ping_xmlize', $data);
-                       $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s" seen="%s" >%s</note>'."\n";
+                       $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']); 
+                               
+                       call_hooks('ping_xmlize', $n);
+                       $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s" seen="%s" timestamp="%s" >%s</note>'."\n";
                        return sprintf ( $notsxml,
-                               xmlify($href), xmlify($name), xmlify($url), xmlify($photo), xmlify($date), xmlify($seen), xmlify($message)
+                               xmlify($n['href']), xmlify($n['name']), xmlify($n['url']), xmlify($n['photo']),
+                               xmlify(relative_date($n['date'])), xmlify($n['seen']), xmlify(strtotime($local_time)),
+                               xmlify($n['message'])
                        );
                }
 
@@ -199,99 +210,79 @@ function ping_init(&$a) {
                        <birthdays>$birthdays</birthdays>
                        <birthdays-today>$birthdays_today</birthdays-today>\r\n";
 
-               $tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags);
 
-               if($firehose) {
-                       echo '  <notif count="'.$tot.'">';
-               }
-               else {
-                       if(count($z) && (! $sysnotify)) {
-                               foreach($z as $zz) {
-                                       if($zz['seen'] == 0)
-                                               $sysnotify ++;
-                               }
-                       }
-
-                       echo '  <notif count="'. ($sysnotify + $intro + $mail + $register) .'">';
-
-                       if ($intro>0){
-                               foreach ($intros as $i) {
-                                       echo xmlize($a->get_baseurl().'/notifications/intros/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), 'notify-unseen', "&rarr; ".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']), 'notify-unseen',"&rarr; ".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']), 'notify-unseen', "&rarr; ".t("{0} requested registration"));
-                               };
-                       }
-
-                       if(count($z)) {
-                               foreach($z as $zz) {
-                                       echo xmlize($a->get_baseurl() . '/notify/view/' . $zz['id'], $zz['name'],$zz['url'],$zz['photo'],relative_date($zz['date']), ($zz['seen'] ? 'notify-seen' : 'notify-unseen'), ($zz['seen'] ? '' : '&rarr; ') .strip_tags(bbcode($zz['msg'])));
-                               }
+               if(count($notifs) && (! $sysnotify)) {
+                       foreach($notifs as $zz) {
+                               if($zz['seen'] == 0)
+                                       $sysnotify ++;
                        }
                }
 
-               if($firehose) {
-                       if ($intro>0){
-                               foreach ($intros as $i) {
-                                       echo xmlize( $a->get_baseurl().'/notifications/intros/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), 'notify-unseen',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']), 'notify-unseen',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']), 'notify-unseen',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']), 'notify-unseen',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']), 'notify-unseen',sprintf( t("{0} liked %s's post"), $i['pname'] ) );
-                               };
+               echo '  <notif count="'. ($sysnotify + $intro + $mail + $register) .'">';
+
+               // merge all notification types in one array
+               if ($intro>0){
+                       foreach ($intros as $i) {
+                               $n = array(
+                                       'href' => $a->get_baseurl().'/notifications/intros/'.$i['id'],
+                                       'name' => $i['name'],
+                                       'url' => $i['url'], 
+                                       'photo' => $i['photo'],
+                                       'date' => $i['datetime'],
+                                       'seen' => false,
+                                       'message' => t("{0} wants to be your friend"),                          
+                               );
+                               $notifs[] = $n;
                        }
-                       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']), 'notify-unseen',sprintf( t("{0} disliked %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']), 'notify-unseen',sprintf( t("{0} is now friends with %s"), $i['fname'] ) );
-                               };
+               }
+               
+               if ($mail>0){
+                       foreach ($mails as $i) {
+                               $n = array(
+                                       'href' => $a->get_baseurl().'/message/'.$i['id'],
+                                       'name' => $i['from-name'],
+                                       'url' => $i['from-url'], 
+                                       'photo' => $i['from-photo'],
+                                       'date' => $i['created'],
+                                       'seen' => false,
+                                       'message' => t("{0} sent you a message"),                               
+                               );
+                               $notifs[] = $n;
                        }
-                       if (count($posts)){
-                               foreach ($posts 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']), 'notify-unseen',sprintf( t("{0} posted") ) );
-                               };
+               }
+               
+               if ($register>0){
+                       foreach ($regs as $i) {
+                               $n = array(
+                                       'href' => $a->get_baseurl().'/admin/users/',
+                                       'name' => $i['name'],
+                                       'url' => $i['url'], 
+                                       'photo' => $i['micro'],
+                                       'date' => $i['created'],
+                                       'seen' => false,
+                                       'message' => t("{0} requested registration"),                           
+                               );
+                               $notifs[] = $n;
                        }
-                       if (count($tags)){
-                               foreach ($tags 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']), 'notify-unseen',sprintf( t("{0} tagged %s's post with #%s"), $i['pname'], $i['tname'] ) );
-                               };
+               }
+               // sort notifications by $[]['date']
+               $sort_function = function($a, $b) {
+                       $adate = date($a['date']);
+                       $bdate = date($b['date']);
+                       if ($adate == $bdate) {
+                               return 0;
                        }
+                       return ($adate < $bdate) ? 1 : -1;
+               };
+               usort($notifs, $sort_function);
 
-                       if (count($cit)){
-                               foreach ($cit 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']), 'notify-unseen',t("{0} mentioned you in a post") );
-                               };
+               if(count($notifs)) {
+                       foreach($notifs as $n) {
+                               echo xmlize($n);
                        }
                }
 
+
                echo "  </notif>";
        }
        echo " <sysmsgs>";
@@ -322,7 +313,7 @@ function ping_get_notifications($uid) {
        $offset = 0;
        $seen = false;
        $seensql = "NOT";
-       $order = "";
+       $order = "DESC";
        $quit = false;
 
        $a = get_app();
@@ -348,6 +339,7 @@ function ping_get_notifications($uid) {
                        $quit = true;
                else
                        $offset += 50;
+                       
 
                foreach ($r AS $notification) {
                        if (is_null($notification["visible"]))
@@ -359,22 +351,26 @@ function ping_get_notifications($uid) {
                        if (is_null($notification["deleted"]))
                                $notification["deleted"] = 0;
 
-                       $notification["msg"] = strip_tags(bbcode($notification["msg"]));
+                       $notification["message"] = strip_tags(bbcode($notification["msg"]));
                        $notification["name"] = strip_tags(bbcode($notification["name"]));
 
                        // Replace the name with {0} but ensure to make that only once
                        // The {0} is used later and prints the name in bold.
 
-                       $pos = strpos($notification["msg"],$notification['name']);
+                       $pos = strpos($notification["message"],$notification['name']);
                        if ($pos !== false)
-                               $notification["msg"] = substr_replace($notification["msg"],"{0}",$pos,strlen($notification["name"]));
+                               $notification["message"] = substr_replace($notification["message"],"{0}",$pos,strlen($notification["name"]));
 
+                       $notification['href'] = $a->get_baseurl() . '/notify/view/' . $notification['id'];
+                               
                        if ($notification["visible"] AND !$notification["spam"] AND
-                               !$notification["deleted"] AND !is_array($result[$notification["parent"]]))
+                               !$notification["deleted"] AND !is_array($result[$notification["parent"]])) {
                                $result[$notification["parent"]] = $notification;
+                       }
                }
 
        } while ((count($result) < 50) AND !$quit);
 
+       
        return($result);
 }
index a003401dffeccd39c3ebfa387a415120713d19f6..9d2e2871578e0e6122211f224ca0831e263fcc5b 100644 (file)
@@ -1207,9 +1207,7 @@ function settings_content(&$a) {
                '$notify7'  => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''),
                '$notify8'  => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''),
 
-               '$desktop_notifications' => t('Activate desktop notifications'),
-                '$desktop_notifications_note' => t('Note: This is an experimental feature, as being not supported by each browser'),
-                '$desktop_notifications_success_message' => t('You will now receive desktop notifications!'),
+        '$desktop_notifications' => array('desktop_notifications', t('Activate desktop notifications') , false, t('Show desktop popup on new notifications')),
                 
                '$email_textonly' => array('email_textonly', t('Text-only notification emails'),
                                                                        get_pconfig(local_user(),'system','email_textonly'),
index db8bd55dd5a8dd6c6875490b6d82130f9efcc0ba..cb745a5ccf4ac6c82f612385134048ba554971ec 100644 (file)
@@ -1710,7 +1710,7 @@ $a->strings["Name:"] = "";
 $a->strings["Photo:"] = "";
 $a->strings["Please visit %s to approve or reject the suggestion."] = "";
 $a->strings["[Friendica:Notify] Connection accepted"] = "";
-$a->strings["'%1\$s' has acepted your connection request at %2\$s"] = "";
+$a->strings["'%1\$s' has accepted your connection request at %2\$s"] = "";
 $a->strings["%2\$s has accepted your [url=%1\$s]connection request[/url]."] = "";
 $a->strings["You are now mutual friends and may exchange status updates, photos, and email\n\twithout restriction."] = "";
 $a->strings["Please visit %s  if you wish to make any changes to this relationship."] = "";
diff --git a/view/ca/smarty3/htconfig.tpl b/view/ca/smarty3/htconfig.tpl
deleted file mode 100644 (file)
index cfe4d55..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'. 
-
-$a->path = '{{$urlpath}}';
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "La Meva Xarxa d'Amics";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting 
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on 
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default. 
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems 
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
diff --git a/view/cs/smarty3/htconfig.tpl b/view/cs/smarty3/htconfig.tpl
deleted file mode 100644 (file)
index a8062e6..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<?php
-
-// Nastavte následující pro Vaši instalaci MySQL
-// Zkopírujte nebo přejmenujte tento soubor na .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// Pokud používáte podadresár z vaší domény, budete zde potřebovat zadat
-// relativní cestu (od kořene vaší domény).
-// Například pokud je URL adresa vaší instance 'http://priklad.cz/adresar/podadresar',
-// nastavte $a->path na 'adresar/podadresar'. 
-
-$a->path = '{{$urlpath}}';
-// Vyberte platnou defaultní časovou zónu. Pokud si nejste jistí, použijte use "Europe/Prague".
-// Toto nastavení lze změnit i později a používá se pouze pro časové značky anonymních čtenářů.
-
-$default_timezone = '{{$timezone}}';
-
-// Jak se jmenuje Váš web?
-
-$a->config['sitename'] = "Moje síť přátel";
-
-// Nastavení defaultního jazyka webu
-
-$a->config['system']['language'] = 'cs';
-
-// Vaše možnosti jsou REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Ujistěte se, že jste si vytvořili Váš osobníúčet dříve, než nastavíte 
-// REGISTER_CLOSED. 'register_text' (pokud je nastaven) se bude zobrazovat jako první text na 
-// registrační stránce. REGISTER_APPROVE vyžaduje aby byl nastaven 'admin_email'
-// na e-mailovou adresu již existující registrované osoby, která může autorizovat
-// a/nebo schvalovat/odmítat žádosti o registraci.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximální velikost importované zprávy, 0 je neomezeno
-
-$a->config['max_import_size'] = 200000;
-
-// maximální velikost nahrávaných fotografií
-
-$a->config['system']['maximagesize'] = 800000;
-
-// cesta k PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// URL adresy globálního adresáře.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - také zvaný jako  pubsubhubbub URL. Tímto zajistíte doručování veřejných přízpěvků stejně rychle jako těch soukromých
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) je defaultně povolen. 
-// Šifrování bude zajištěno pouze pokud je toto nastaveno na true a
-// PHP mcrypt extension jsou nainstalována na obou systémech 
-
-$a->config['system']['rino_encrypt'] = true;
-
-// defaultní systémové grafické téma
-
-$a->config['system']['theme'] = 'duepuntozero';
-
-
diff --git a/view/de/smarty3/htconfig.tpl b/view/de/smarty3/htconfig.tpl
deleted file mode 100644 (file)
index c828bed..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'. 
-
-$a->path = '{{$urlpath}}';
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "My Friend Network";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting 
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on 
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default. 
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems 
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
diff --git a/view/en/smarty3/htconfig.tpl b/view/en/smarty3/htconfig.tpl
deleted file mode 100644 (file)
index ae9697d..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'. 
-
-$a->path = '{{$urlpath}}';
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "My Friend Network";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting 
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on 
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default. 
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems 
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
-// By default allow pseudonyms
-
-$a->config['system']['no_regfullname'] = true;
diff --git a/view/es/smarty3/htconfig.tpl b/view/es/smarty3/htconfig.tpl
deleted file mode 100644 (file)
index 340491c..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'. 
-
-$a->path = '{{$urlpath}}';
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "La Mia Rete di Amici";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting 
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on 
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default. 
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems 
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
diff --git a/view/fr/smarty3/htconfig.tpl b/view/fr/smarty3/htconfig.tpl
deleted file mode 100644 (file)
index c828bed..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'. 
-
-$a->path = '{{$urlpath}}';
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "My Friend Network";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting 
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on 
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default. 
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems 
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
index 0ce3855c58d481f793cf691b924b31abf96e6f3b..9bcd30229633fdaad828451efcee5293c13189c2 100644 (file)
@@ -169,3 +169,11 @@ h6 {
 span.oembed, h4 {
   margin: 0px 0px 0px 0px;
 }
+
+/* fields help text */
+.field .field_help {
+    clear: left;
+}
+
+/* notifications unseen */
+.notify-unseen { background-color: #cceeFF; }
\ No newline at end of file
diff --git a/view/it/smarty3/htconfig.tpl b/view/it/smarty3/htconfig.tpl
deleted file mode 100644 (file)
index b4ccf92..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '$dbhost';
-$db_user = '$dbuser';
-$db_pass = '$dbpass';
-$db_data = '$dbdata';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'.
-
-$a->path = '$urlpath';
-
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '$timezone';
-
-// What is your site name?
-
-$a->config['sitename'] = "La Mia Rete di Amici";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '$adminmail';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '$phpath';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default.
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
diff --git a/view/sv/smarty3/htconfig.tpl b/view/sv/smarty3/htconfig.tpl
deleted file mode 100644 (file)
index c828bed..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-
-<?php
-
-// Set the following for your MySQL installation
-// Copy or rename this file to .htconfig.php
-
-$db_host = '{{$dbhost}}';
-$db_user = '{{$dbuser}}';
-$db_pass = '{{$dbpass}}';
-$db_data = '{{$dbdata}}';
-
-// If you are using a subdirectory of your domain you will need to put the
-// relative path (from the root of your domain) here.
-// For instance if your URL is 'http://example.com/directory/subdirectory',
-// set $a->path to 'directory/subdirectory'. 
-
-$a->path = '{{$urlpath}}';
-// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
-// It can be changed later and only applies to timestamps for anonymous viewers.
-
-$default_timezone = '{{$timezone}}';
-
-// What is your site name?
-
-$a->config['sitename'] = "My Friend Network";
-
-// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
-// Be certain to create your own personal account before setting 
-// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on 
-// the registration page. REGISTER_APPROVE requires you set 'admin_email'
-// to the email address of an already registered person who can authorise
-// and/or approve/deny the request.
-
-$a->config['register_policy'] = REGISTER_OPEN;
-$a->config['register_text'] = '';
-$a->config['admin_email'] = '{{$adminmail}}';
-
-// Maximum size of an imported message, 0 is unlimited
-
-$a->config['max_import_size'] = 200000;
-
-// maximum size of uploaded photos
-
-$a->config['system']['maximagesize'] = 800000;
-
-// Location of PHP command line processor
-
-$a->config['php_path'] = '{{$phpath}}';
-
-// Location of global directory submission page.
-
-$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
-$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
-
-// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
-
-$a->config['system']['huburl'] = '[internal]';
-
-// Server-to-server private message encryption (RINO) is allowed by default. 
-// Encryption will only be provided if this setting is true and the
-// PHP mcrypt extension is installed on both systems 
-
-$a->config['system']['rino_encrypt'] = true;
-
-// default system theme
-
-$a->config['system']['theme'] = 'duepuntozero';
-
index fc3c6377f17b9cf8b3f8c12f36c95ecb708a28ce..3354cfe1a277492c66ea2ca2378cc438f84783f4 100644 (file)
                                                <td class='lastitem_date'>{{$u.lastitem_date}}</td>
                                                <td class='login_date'>{{$u.page_flags}} {{if $u.is_admin}}({{$siteadmin}}){{/if}} {{if $u.account_expired}}({{$accountexpired}}){{/if}}</td>
                                                <td class="checkbox"> 
-                                    {{if $u.is_admin}}
-                                        &nbsp;
-                                    {{else}}
-                                        <input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/></td>
-                                    {{/if}}
+                                               {{if $u.is_deletable}}
+                                                       <input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/></td>
+                                               {{else}}
+                                                       &nbsp;
+                                               {{/if}}
                                                <td class="tools">
-                                    {{if $u.is_admin}}
-                                        &nbsp;
-                                    {{else}}
-                                        <a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" title='{{if $u.blocked}}{{$unblock}}{{else}}{{$block}}{{/if}}'><span class='icon block {{if $u.blocked==0}}dim{{/if}}'></span></a>
-                                        <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon drop'></span></a>
-                                    {{/if}}
+                                               {{if $u.is_deletable}}
+                                                       <a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" title='{{if $u.blocked}}{{$unblock}}{{else}}{{$block}}{{/if}}'><span class='icon block {{if $u.blocked==0}}dim{{/if}}'></span></a>
+                                                       <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon drop'></span></a>
+                                               {{else}}
+                                                       &nbsp;
+                                               {{/if}}
                                                </td>
                                        </tr>
                                {{/foreach}}
index bb9e159078477936bd18daaf8a7dfcbb7fd0f33b..a365678184b400804dcf0af7a986d9103f41c95a 100644 (file)
@@ -2,7 +2,7 @@
 <center>
 <form action="{{$confirm_url}}" id="confirm-form" method="{{$method}}">
 
-       <span id="confirm-message">{{$message}}</span>
+       <h3 id="confirm-message">{{$message}}</h3>
        {{foreach $extra_inputs as $input}}
        <input type="hidden" name="{{$input.name}}" value="{{$input.value|escape:'html'}}" />
        {{/foreach}}
diff --git a/view/templates/contact_drop_confirm.tpl b/view/templates/contact_drop_confirm.tpl
new file mode 100644 (file)
index 0000000..9b9a359
--- /dev/null
@@ -0,0 +1,8 @@
+<h1>{{"Drop contact"|t}}</h1>\r
+\r
+{{include file="contact_template.tpl" no_contacts_checkbox=True}}\r
+\r
+{{include file="confirm.tpl"}}\r
+\r
+\r
+<div class="clear"></div>
\ No newline at end of file
index 196254960bc6c2dc9eaaa53910cdd2f55bc65308..d4f65f70f91c77c51c3a0ece4555e528f7bee513 100644 (file)
@@ -7,26 +7,28 @@
 
                        <a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
 
+                       {{if !$no_contacts_checkbox}}
                        <input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}">
+                       {{/if}}
                        {{if $contact.photo_menu}}
                        <span onclick="openClose('contact-photo-menu-{{$contact.id}}');" class="fakelink contact-photo-menu-button" id="contact-photo-menu-button-{{$contact.id}}">menu</span>
-                <div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
-                    <ul>
-                                               {{foreach $contact.photo_menu as $k=>$c}}
-                                               {{if $c.2}}
-                                               <li><a class="{{$k}}" target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
-                                               {{else}}
-                                               <li><a class="{{$k}}" href="{{$c.1}}">{{$c.0}}</a></li>
-                                               {{/if}}
-                                               {{/foreach}}
-                    </ul>
-                </div>
+                       <div class="contact-photo-menu" id="contact-photo-menu-{{$contact.id}}">
+                               <ul>
+                                       {{foreach $contact.photo_menu as $k=>$c}}
+                                       {{if $c.2}}
+                                       <li><a class="{{$k}}" target="redir" href="{{$c.1}}">{{$c.0}}</a></li>
+                                       {{else}}
+                                       <li><a class="{{$k}}" href="{{$c.1}}">{{$c.0}}</a></li>
+                                       {{/if}}
+                                       {{/foreach}}
+                               </ul>
+                       </div>
                        {{/if}}
                </div>
                        
        </div>
        <div class="contact-entry-photo-end" ></div>
-               <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
+       <div class="contact-entry-name" id="contact-entry-name-{{$contact.id}}" >{{$contact.name}}</div>
 
        <div class="contact-entry-end" ></div>
 </div>
index df163b8151037fd704f6dcc473fc58242f8c842c..9aceb3f1cba5f602e83ef027228aec866a1ff059 100644 (file)
@@ -4,7 +4,7 @@
 <div id="event-wrapper" style="display: none;" ><div id="event-title">{{$event_title}}</div>
 <div id="event-title-end"></div>
 {{foreach $events as $event}}
-<div class="event-list" id="event-{{$event.id}}"> <a href="events/{{$event.link}}">{{$event.title}}</a> {{$event.date}} </div>
+<div class="event-list" id="event-{{$event.id}}"> <a class="cboxElement" href="events/?id={{$event.id}}">{{$event.title}}</a> - {{$event.date}} </div>
 {{/foreach}}
 </div>
 {{/if}}
diff --git a/view/templates/htconfig.tpl b/view/templates/htconfig.tpl
new file mode 100644 (file)
index 0000000..7c71623
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+
+// Set the following for your MySQL installation
+// Copy or rename this file to .htconfig.php
+
+$db_host = '{{$dbhost}}';
+$db_user = '{{$dbuser}}';
+$db_pass = '{{$dbpass}}';
+$db_data = '{{$dbdata}}';
+
+// If you are using a subdirectory of your domain you will need to put the
+// relative path (from the root of your domain) here.
+// For instance if your URL is 'http://example.com/directory/subdirectory',
+// set path to 'directory/subdirectory'. 
+
+$a->path = '{{$urlpath}}';
+// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
+// It can be changed later and only applies to timestamps for anonymous viewers.
+
+$default_timezone = '{{$timezone}}';
+
+// What is your site name?
+
+$a->config['sitename'] = "My Friend Network";
+
+// Your choices are REGISTER_OPEN, REGISTER_APPROVE, or REGISTER_CLOSED.
+// Be certain to create your own personal account before setting 
+// REGISTER_CLOSED. 'register_text' (if set) will be displayed prominently on 
+// the registration page. REGISTER_APPROVE requires you set 'admin_email'
+// to the email address of an already registered person who can authorise
+// and/or approve/deny the request.
+
+$a->config['register_policy'] = REGISTER_OPEN;
+$a->config['register_text'] = '';
+$a->config['admin_email'] = '{{$adminmail}}';
+
+// Maximum size of an imported message, 0 is unlimited
+
+$a->config['max_import_size'] = 200000;
+
+// maximum size of uploaded photos
+
+$a->config['system']['maximagesize'] = 800000;
+
+// Location of PHP command line processor
+
+$a->config['php_path'] = '{{$phpath}}';
+
+// Location of global directory submission page.
+
+$a->config['system']['directory_submit_url'] = 'http://dir.friendica.com/submit';
+$a->config['system']['directory_search_url'] = 'http://dir.friendica.com/directory?search=';
+
+// PuSH - aka pubsubhubbub URL. This makes delivery of public posts as fast as private posts
+
+$a->config['system']['huburl'] = '[internal]';
+
+// Server-to-server private message encryption (RINO) is allowed by default. 
+// Encryption will only be provided if this setting is true and the
+// PHP mcrypt extension is installed on both systems 
+
+$a->config['system']['rino_encrypt'] = true;
+
+// default system theme
+
+$a->config['system']['theme'] = 'duepuntozero';
+
+// By default allow pseudonyms
+
+$a->config['system']['no_regfullname'] = true;
index 3a54066ad15531c3027ffb8bd28907e7fc4243c5..02fe6da3b9eda6283c3ff84b66706c384a9aca35 100644 (file)
@@ -65,5 +65,5 @@
 </nav>
 
 <ul id="nav-notifications-template" style="display:none;" rel="template">
-       <li class="{4}"><a href="{0}"><img data-src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
+       <li class="{4}"><a href="{0}" title="{5}"><img data-src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
 </ul>
index 95ee0f6fbc4cdc5ed18f81c88f0257509dd14872..26c44f91c35803ac0f24126cf63452a59e075151 100644 (file)
 {{include file="field_intcheckbox.tpl" field=$notify8}}
 </div>
 
+{{include file="field_checkbox.tpl" field=$email_textonly}}
+
+
+<!--
 <div class="field">
  <button onclick="javascript:Notification.requestPermission(function(perm){if(perm === 'granted')alert('{{$desktop_notifications_success_message}}');});return false;">{{$desktop_notifications}}</button>
  <span class="field_help">{{$desktop_notifications_note}}</span>
 </div>
-
-{{include file="field_checkbox.tpl" field=$email_textonly}}
+-->
+{{include file="field_yesno.tpl" field=$desktop_notifications}}
+<script>
+(function(){
+    var elm = $("#id_{{$desktop_notifications.0}}_onoff");
+    var ckbox = $("#id_{{$desktop_notifications.0}}");
+    
+    if (getNotificationPermission() === 'granted') {
+        ckbox.val(1);
+        elm.find(".off").addClass("hidden");
+        elm.find(".on").removeClass("hidden");
+    }
+       if (getNotificationPermission() === null) {
+               elm.parent(".field.yesno").hide();
+       }
+    
+    $("#id_{{$desktop_notifications.0}}_onoff").on("click", function(e){
+        
+        if (Notification.permission === 'granted') {
+            localStorage.setItem('notification-permissions', ckbox.val()==1 ? 'granted' : 'denied');
+        } else if (Notification.permission === 'denied') {
+            localStorage.setItem('notification-permissions', 'denied');
+            
+            ckbox.val(0);
+            elm.find(".on").addClass("hidden");
+            elm.find(".off").removeClass("hidden");
+            
+        } else if (Notification.permission === 'default') {
+            Notification.requestPermission(function(choice) {
+                if (choice === 'granted') {
+                    localStorage.setItem('notification-permissions', ckbox.val()==1 ? 'granted' : 'denied');
+
+                } else {
+                    localStorage.setItem('notification-permissions', 'denied');
+                    ckbox.val(0);
+                    elm.find(".on").addClass("hidden");
+                    elm.find(".off").removeClass("hidden");
+                }
+            });
+        }
+               
+               //console.log(getNotificationPermission());
+               
+        
+    })
+})();
+</script>
 
 </div>
 
index 3e821a31c308a4cf0df33f7bc1f35728f4a47c16..8149ef374ce1a25706d5fabe6cf4b88094d96699 100644 (file)
@@ -67,5 +67,5 @@
 </nav>
 
 <ul id="nav-notifications-template" style="display:none;" rel="template">
-       <li class="{4}"><a href="{0}"><img data-src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
+       <li class="{4}"><a href="{0}" title="{5}"><img data-src="{1}" height="24" width="24" alt="" />{2} <span class="notif-when">{3}</span></a></li>
 </ul>
index 865e9b5f5e50443f70c5637c65f52a72da0da447..7a335ff4bc5300043f1992237088e9576e60f98d 100644 (file)
@@ -514,6 +514,7 @@ header {
   margin: 0px;
   padding: 0px;
   /*width: 100%; height: 12px; */
+
   z-index: 110;
   color: #ffffff;
 }
@@ -846,6 +847,7 @@ aside .posted-date-selector-months {
   overflow: auto;
   height: auto;
   /*.contact-block-div { width:60px; height: 60px; }*/
+
 }
 #contact-block .contact-block-h4 {
   float: left;
@@ -927,6 +929,7 @@ aside .posted-date-selector-months {
   margin-bottom: 2em;
   /*.action .s10 { width: 10px; overflow: hidden; padding: 0px;}
        .action .s16 { width: 16px; overflow: hidden; padding: 0px;}*/
+
 }
 .widget h3 {
   padding: 0px;
@@ -1208,6 +1211,7 @@ section {
   height: 32px;
   margin-left: 16px;
   /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
 }
 .comment-edit-preview .contact-photo-menu-button {
   top: 15px !important;
@@ -2077,6 +2081,7 @@ ul.tabs li .active {
   min-height: 22px;
   padding-top: 6px;
   /* a { display: block;}*/
+
 }
 #photo-caption {
   display: block;
index 7a9326c67181a862f6fd9144779adf17cb588093..0fdbbbbbd080c834c360f5045b543602a62423e9 100644 (file)
@@ -514,6 +514,7 @@ header {
   margin: 0px;
   padding: 0px;
   /*width: 100%; height: 12px; */
+
   z-index: 110;
   color: #ffffff;
 }
@@ -846,6 +847,7 @@ aside .posted-date-selector-months {
   overflow: auto;
   height: auto;
   /*.contact-block-div { width:60px; height: 60px; }*/
+
 }
 #contact-block .contact-block-h4 {
   float: left;
@@ -927,6 +929,7 @@ aside .posted-date-selector-months {
   margin-bottom: 2em;
   /*.action .s10 { width: 10px; overflow: hidden; padding: 0px;}
        .action .s16 { width: 16px; overflow: hidden; padding: 0px;}*/
+
 }
 .widget h3 {
   padding: 0px;
@@ -1208,6 +1211,7 @@ section {
   height: 32px;
   margin-left: 16px;
   /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
 }
 .comment-edit-preview .contact-photo-menu-button {
   top: 15px !important;
@@ -2077,6 +2081,7 @@ ul.tabs li .active {
   min-height: 22px;
   padding-top: 6px;
   /* a { display: block;}*/
+
 }
 #photo-caption {
   display: block;
index baaa44c0a3479937f25becd6b8358623b1c7f9eb..7a0f7e537e0e1b1618000dfde544c068366a225f 100644 (file)
@@ -514,6 +514,7 @@ header {
   margin: 0px;
   padding: 0px;
   /*width: 100%; height: 12px; */
+
   z-index: 110;
   color: #ffffff;
 }
@@ -846,6 +847,7 @@ aside .posted-date-selector-months {
   overflow: auto;
   height: auto;
   /*.contact-block-div { width:60px; height: 60px; }*/
+
 }
 #contact-block .contact-block-h4 {
   float: left;
@@ -927,6 +929,7 @@ aside .posted-date-selector-months {
   margin-bottom: 2em;
   /*.action .s10 { width: 10px; overflow: hidden; padding: 0px;}
        .action .s16 { width: 16px; overflow: hidden; padding: 0px;}*/
+
 }
 .widget h3 {
   padding: 0px;
@@ -1208,6 +1211,7 @@ section {
   height: 32px;
   margin-left: 16px;
   /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
+
 }
 .comment-edit-preview .contact-photo-menu-button {
   top: 15px !important;
@@ -2077,6 +2081,7 @@ ul.tabs li .active {
   min-height: 22px;
   padding-top: 6px;
   /* a { display: block;}*/
+
 }
 #photo-caption {
   display: block;
index f29e38fb0edfbe4d2a046232381d1472dadff735..142bdc190a77d32fbb739cc0dba418841a4b796a 100644 (file)
@@ -1197,7 +1197,6 @@ ul.tabs {
                display: block;
                margin-left: 200px;
                color: @FieldHelpColor;
-
        }
 
 
index 249f1f6728a1a7476d48c8069e5ff47522f2584b..7f5ae2dfbc25d21fcfb2a994ddab17acb088e077 100644 (file)
                                                <td class='lastitem_date'>{{$u.lastitem_date}}</td>
                                                <td class='login_date'>{{$u.page_flags}} {{if $u.is_admin}}({{$siteadmin}}){{/if}} {{if $u.account_expired}}({{$accountexpired}}){{/if}}</td>
                                                <td class="checkbox"> 
-                                    {{if $u.is_admin}}
-                                        &nbsp;
-                                    {{else}}
-                                        <input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/></td>
-                                    {{/if}}
+                                               {{if $u.is_deletable}}
+                                                       <input type="checkbox" class="users_ckbx" id="id_user_{{$u.uid}}" name="user[]" value="{{$u.uid}}"/></td>
+                                               {{else}}
+                                                       &nbsp;
+                                               {{/if}}
                                                <td class="tools">
-                                    {{if $u.is_admin}}
-                                        &nbsp;
-                                    {{else}}
-                                        <a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" title='{{if $u.blocked}}{{$unblock}}{{else}}{{$block}}{{/if}}'><span class='icon {{if $u.blocked==0}}unlock{{else}}lock{{/if}}'></span></a>
-                                        <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon delete'></span></a>
-                                    {{/if}}
+                                               {{if $u.is_deletable}}
+                                                       <a href="{{$baseurl}}/admin/users/block/{{$u.uid}}?t={{$form_security_token}}" title='{{if $u.blocked}}{{$unblock}}{{else}}{{$block}}{{/if}}'><span class='icon {{if $u.blocked==0}}unlock{{else}}lock{{/if}}'></span></a>
+                                                       <a href="{{$baseurl}}/admin/users/delete/{{$u.uid}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><span class='icon delete'></span></a>
+                                               {{else}}
+                                                       &nbsp;
+                                               {{/if}}
                                                </td>
                                        </tr>
                                {{/foreach}}
index a63ffb3c9ad068f4c760cc16f397407ce4edd45e..0f0207b2bf602aecc3a6a6fc8c24e4fc0310579c 100644 (file)
@@ -7,7 +7,9 @@
 
                        <a href="{{$contact.url}}" title="{{$contact.img_hover}}" /><img src="{{$contact.thumb}}" {{$contact.sparkle}} alt="{{$contact.name}}" /></a>
 
+                       {{if !$no_contacts_checkbox}}
                        <input type="checkbox" class="contact-select" name="contact_batch[]" value="{{$contact.id}}">
+                       {{/if}}
                        {{if $contact.photo_menu}}
                        <a href="#" rel="#contact-photo-menu-{{$contact.id}}" class="contact-photo-menu-button icon s16 menu" id="contact-photo-menu-button-{{$contact.id}}">menu</a>
                        <ul class="contact-photo-menu menu-popup" id="contact-photo-menu-{{$contact.id}}">
index 2c646306ad3b2f014cbe8d3052f3ece7a8056342..e0c7ba8e3bd970f6215c72ab22f314c3dc6e741d 100644 (file)
 
 </nav>
 <ul id="nav-notifications-template" style="display:none;" rel="template">
-       <li><a href="{0}"><img data-src="{1}">{2} <span class="notif-when">{3}</span></a></li>
+       <li class="{4}"><a href="{0}" title="{5}"><img data-src="{1}">{2} <span class="notif-when">{3}</span></a></li>
 </ul>
 
 <div style="position: fixed; top: 3px; left: 5px; z-index:9999">{{$langselector}}</div>
index 3178b9613a3150686e136a6e214287d4ebc247b8..99fcb4fd78d03429ed146aaad06820952ac2ae07 100644 (file)
@@ -1374,6 +1374,59 @@ section.minimal {
 .wall-item-container.comment .wall-item-content {
   max-width: 585px;
 }
+.wall-item-container.thread_level_3 .wall-item-content {
+  max-width: 570px;
+}
+.wall-item-container.thread_level_4 .wall-item-content {
+  max-width: 555px;
+}
+.wall-item-container.thread_level_5 .wall-item-content {
+  max-width: 540px;
+}
+.wall-item-container.thread_level_6 .wall-item-content {
+  max-width: 525px;
+}
+.wall-item-container.thread_level_7 .wall-item-content {
+  max-width: 510px;
+}
+
+.children .wall-item-comment-wrapper textarea {
+  width: 570px;
+}
+.wall-item-container.thread_level_3 .wall-item-comment-wrapper textarea {
+  width: 555px;
+}
+.wall-item-container.thread_level_4 .wall-item-comment-wrapper textarea {
+  width: 540px;
+}
+.wall-item-container.thread_level_5 .wall-item-comment-wrapper textarea {
+  width: 525px;
+}
+.wall-item-container.thread_level_6 .wall-item-comment-wrapper textarea {
+  width: 510px;
+}
+.wall-item-container.thread_level_7 .wall-item-comment-wrapper textarea {
+  width: 495px;
+}
+
+.children .wall-item-bottom .comment-edit-preview {
+  width: 575px;
+}
+.wall-item-container.thread_level_3 .wall-item-bottom .comment-edit-preview {
+  width: 560px;
+}
+.wall-item-container.thread_level_4 .wall-item-bottom .comment-edit-preview {
+  width: 545px;
+}
+.wall-item-container.thread_level_5 .wall-item-bottom .comment-edit-preview {
+  width: 530px;
+}
+.wall-item-container.thread_level_6 .wall-item-bottom .comment-edit-preview {
+  width: 515px;
+}
+.wall-item-container.thread_level_7 .wall-item-bottom .comment-edit-preview {
+  width: 500px;
+}
 
 .wall-item-container.comment .contact-photo {
   width: 32px;
index ec1be842c6fa2d45aadbe08fe92ef9659d7c2e1a..26b34073a63d981bc0e85c441c5d87908f0f314c 100644 (file)
 
 </nav>
 <ul id="nav-notifications-template" style="display:none;" rel="template">
-       <li><a href="{0}"><img data-src="{1}">{2} <span class="notif-when">{3}</span></a></li>
+       <li class="{4}"><a href="{0}" title="{5}"><img data-src="{1}">{2} <span class="notif-when">{3}</span></a></li>
 </ul>
 <!--
 <div class="icon-flag" style="position: fixed; bottom: 10px; left: 20px; z-index:9;">{{$langselector}}</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> {{/if}}
-{{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> {{/if}}
-
-<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>{{/if}}
-
-<a id="nav-help-link" class="nav-link {{$nav.help.2}}" target="friendica-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>{{/if}}
-
-<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>{{/if}}
-
-{{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>
-{{/if}}
-{{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>
-{{/if}}
-
-{{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>{{/if}}
-{{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>{{/if}}
-{{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>{{/if}}
-
-
-</span>
-<span id="nav-end"></span>
-<span id="banner">{{$banner}}</span>
-*}}