aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/main.js58
-rw-r--r--include/nav.php45
-rw-r--r--include/template_processor.php16
-rw-r--r--include/text.php36
4 files changed, 115 insertions, 40 deletions
diff --git a/include/main.js b/include/main.js
index d59c99223..83dcc720c 100644
--- a/include/main.js
+++ b/include/main.js
@@ -34,6 +34,9 @@
msie = $.browser.msie ;
+ /* setup navbar menus */
+
+
/* setup onoff widgets */
$(".onoff input").each(function(){
@@ -55,34 +58,51 @@
/* setup field_richtext */
setupFieldRichtext();
-
- /* load tinyMCE if needed and setup field_richtext */
- /*if(typeof tinyMCE == "undefined") {
- window.tinyMCEPreInit = {
- suffix:"",
- base: baseurl+"/library/tinymce/jscripts/tiny_mce/",
- query:"",
- };
- $.getScript(baseurl +"/library/tinymce/jscripts/tiny_mce/tiny_mce_src.js", setupFieldRichtext);
- } else {
- }*/
+
+ /* popup menus */
+ $('a[rel^=#]').click(function(e){
+ menu = $( $(this).attr('rel') );
+ e.stopPropagation();
+ if (menu.attr('popup')=="false") return false;
+ $(this).parent().toggleClass("selected");
+ menu.toggle();
+ return false;
+ });
+
+ /* notifications template */
+ var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html());
+ var notifications_empty = unescape($("#nav-notifications-menu").html());
/* nav update event */
$('nav').bind('nav-update', function(e,data){;
var net = $(data).find('net').text();
- if(net == 0) { net = ''; $('#net-update').hide() } else { $('#net-update').show() }
+ if(net == 0) { net = ''; $('#net-update').removeClass('show') } else { $('#net-update').addClass('show') }
$('#net-update').html(net);
+
var home = $(data).find('home').text();
- if(home == 0) { home = ''; $('#home-update').hide() } else { $('#home-update').show() }
+ if(home == 0) { home = ''; $('#home-update').removeClass('show') } else { $('#home-update').addClass('show') }
$('#home-update').html(home);
- var mail = $(data).find('mail').text();
- if(mail == 0) { mail = ''; $('#mail-update').hide() } else { $('#mail-update').show() }
- $('#mail-update').html(mail);
- var intro = $(data).find('intro').text();
- if(intro == 0) { intro = ''; $('#notify-update').hide() } else { $('#notify-update').show() }
- $('#notify-update').html(intro);
+
+ var eNotif = $(data).find('notif')
+ notif = eNotif.attr('count');
+ if (notif>0){
+ nnm = $("#nav-notifications-menu");
+ nnm.html("");
+ nnm.attr('popup','true');
+ eNotif.children("note").each(function(){
+ e = $(this);
+ text = e.text().format("<span class='contactname'>"+e.attr('name')+"</span>");
+ html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'));
+ nnm.append(html);
+ });
+ } else {
+ $("#nav-notifications-menu").html(notifications_empty);
+ }
+ if(notif == 0) { notif = ''; $('#notify-update').removeClass('show') } else { $('#notify-update').addClass('show') }
+ $('#notify-update').html(notif);
+
});
diff --git a/include/nav.php b/include/nav.php
index 895c321e6..b290a8da2 100644
--- a/include/nav.php
+++ b/include/nav.php
@@ -37,11 +37,29 @@ function nav(&$a) {
* Display login or logout
*/
+ $nav['usermenu']=array();
+ $userinfo = null;
+
if(local_user()) {
$nav['logout'] = Array('logout',t('Logout'), "", t('End this session'));
+
+ // user menu
+ $nav['usermenu'][] = Array('profile/' . $a->user['nickname'], t('Status'), "", t('Your posts and conversations'));
+ $nav['usermenu'][] = Array('profile/' . $a->user['nickname']. '?tab=profile', t('Profile'), "", t('Your profile page'));
+ $nav['usermenu'][] = Array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
+ $nav['usermenu'][] = Array('events/', t('Events'), "", t('Your events'));
+ $nav['usermenu'][] = Array('notes/', t('Personal notes'), "", t('Your personal photos'));
+
+ // user info
+ $r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
+ $userinfo = array(
+ 'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl()."/images/default-profile-mm.jpg"),
+ 'name' => $a->user['username'],
+ );
+
}
else {
- $nav['login'] = Array('login',t('Login'), ($a->module == 'login'?'nav-selected':''), t('Sign in'));
+ $nav['login'] = Array('login',t('Login'), ($a->module == 'login'?'selected':''), t('Sign in'));
}
@@ -63,7 +81,7 @@ function nav(&$a) {
if(! get_config('system','hide_help'))
$nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'));
- if($a->apps)
+ if(count($a->apps)>0)
$nav['apps'] = array('apps', t('Apps'), "", t('Addon applications, utilities, games'));
$nav['search'] = array('search', t('Search'), "", t('Search site content'));
@@ -137,8 +155,31 @@ function nav(&$a) {
'$sitelocation' => $sitelocation,
'$nav' => $nav,
'$banner' => $banner,
+ '$emptynotifications' => t('Nothing new here'),
+ '$userinfo' => $userinfo,
+ '$sel' => $a->nav_sel,
+ '$apps' => $a->apps,
));
call_hooks('page_header', $a->page['nav']);
+}
+/*
+ * Set a menu item in navbar as selected
+ *
+ */
+function nav_set_selected($item){
+ $a = get_app();
+ $a->nav_sel = array(
+ 'community' => null,
+ 'network' => null,
+ 'home' => null,
+ 'profiles' => null,
+ 'notifications' => null,
+ 'messages' => null,
+ 'directyory' => null,
+ 'settings' => null,
+ 'contacts' => null,
+ );
+ $a->nav_sel[$item] = 'selected';
}
diff --git a/include/template_processor.php b/include/template_processor.php
index 83f680f02..11769bbd0 100644
--- a/include/template_processor.php
+++ b/include/template_processor.php
@@ -11,15 +11,18 @@
private function _preg_error(){
switch(preg_last_error()){
- case PREG_INTERNAL_ERROR: die('PREG_INTERNAL_ERROR'); break;
- case PREG_BACKTRACK_LIMIT_ERROR: die('PREG_BACKTRACK_LIMIT_ERROR'); break;
- case PREG_RECURSION_LIMIT_ERROR: die('PREG_RECURSION_LIMIT_ERROR'); break;
- case PREG_BAD_UTF8_ERROR: die('PREG_BAD_UTF8_ERROR'); break;
- case PREG_BAD_UTF8_OFFSET_ERROR: die('PREG_BAD_UTF8_OFFSET_ERROR'); break;
+ case PREG_INTERNAL_ERROR: echo('PREG_INTERNAL_ERROR'); break;
+ case PREG_BACKTRACK_LIMIT_ERROR: echo('PREG_BACKTRACK_LIMIT_ERROR'); break;
+ case PREG_RECURSION_LIMIT_ERROR: echo('PREG_RECURSION_LIMIT_ERROR'); break;
+ case PREG_BAD_UTF8_ERROR: echo('PREG_BAD_UTF8_ERROR'); break;
+ case PREG_BAD_UTF8_OFFSET_ERROR: echo('PREG_BAD_UTF8_OFFSET_ERROR'); break;
default:
//die("Unknown preg error.");
return;
}
+ echo "<hr><pre>";
+ debug_print_backtrace();
+ die();
}
private function _build_replace($r, $prefix){
@@ -166,6 +169,9 @@
$s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s);
if ($s==Null) $this->_preg_error();
+ // remove comments block
+ $s = preg_replace('/{#[^#]*#}/', "" , $s);
+
// replace strings recursively (limit to 10 loops)
$os = ""; $count=0;
while($os!=$s && $count<10){
diff --git a/include/text.php b/include/text.php
index e3d984a1f..78eae145e 100644
--- a/include/text.php
+++ b/include/text.php
@@ -539,22 +539,30 @@ function contact_block() {
$total = intval($r[0]['total']);
}
if(! $total) {
- $o .= '<h4 class="contact-h4">' . t('No contacts') . '</h4>';
- return $o;
- }
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 ORDER BY RAND() LIMIT %d",
- intval($a->profile['uid']),
- intval($shown)
- );
- if(count($r)) {
- $o .= '<h4 class="contact-h4">' . sprintf( tt('%d Contact','%d Contacts', $total),$total) . '</h4><div id="contact-block">';
- foreach($r as $rr) {
- $o .= micropro($rr,true,'mpfriend');
- }
- $o .= '</div><div id="contact-block-end"></div>';
- $o .= '<div id="viewcontacts"><a id="viewcontacts-link" href="viewcontacts/' . $a->profile['nickname'] . '">' . t('View Contacts') . '</a></div>';
+ $contacts = t('No contacts');
+ $micropro = Null;
+ } else {
+ $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 and `pending` = 0 ORDER BY RAND() LIMIT %d",
+ intval($a->profile['uid']),
+ intval($shown)
+ );
+ if(count($r)) {
+ $contacts = sprintf( tt('%d Contact','%d Contacts', $total),$total);
+ $micropro = Array();
+ foreach($r as $rr) {
+ $micropro[] = micropro($rr,true,'mpfriend');
+ }
+ }
}
+
+ $tpl = get_markup_template('contact_block.tpl');
+ $o = replace_macros($tpl, array(
+ '$contacts' => $contacts,
+ '$nickname' => $a->profile['nickname'],
+ '$viewcontacts' => t('View Contacts'),
+ '$micropro' => $micropro,
+ ));
$arr = array('contacts' => $r, 'output' => $o);