]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/action.php
Merge branch '0.9.x' into 1.0.x
[quix0rs-gnu-social.git] / lib / action.php
index 17d3e2311aa9a81f945572a638c48ad0b603ad23..3ef9ffa3c86aa6b5c2a09fef127e3dfcc75bf03d 100644 (file)
@@ -111,6 +111,19 @@ class Action extends HTMLOutputter // lawsuit
         }
     }
 
+    function endHTML()
+    {
+        global $_startTime;
+
+        if (isset($_startTime)) {
+            $endTime = microtime(true);
+            $diff = round(($endTime - $_startTime) * 1000);
+            $this->raw("<!-- ${diff}ms -->");
+        }
+
+        return parent::endHTML();
+    }
+
     /**
      * Show head, a template method.
      *
@@ -274,15 +287,15 @@ class Action extends HTMLOutputter // lawsuit
         if (Event::handle('StartShowScripts', array($this))) {
             if (Event::handle('StartShowJQueryScripts', array($this))) {
                 $this->script('jquery.min.js');
-                $this->script('jquery.form.js');
-                $this->script('jquery.cookie.js');
-                $this->inlineScript('if (typeof window.JSON !== "object") { $.getScript("'.common_path('js/json2.js').'"); }');
+                $this->script('jquery.form.min.js');
+                $this->script('jquery.cookie.min.js');
+                $this->inlineScript('if (typeof window.JSON !== "object") { $.getScript("'.common_path('js/json2.min.js').'"); }');
                 $this->script('jquery.joverlay.min.js');
                 Event::handle('EndShowJQueryScripts', array($this));
             }
             if (Event::handle('StartShowStatusNetScripts', array($this)) &&
                 Event::handle('StartShowLaconicaScripts', array($this))) {
-                $this->script('util.js');
+                $this->script('util.min.js');
                 $this->showScriptMessages();
                 // Frame-busting code to avoid clickjacking attacks.
                 $this->inlineScript('if (window.top !== window.self) { window.top.location.href = window.self.location.href; }');
@@ -300,9 +313,11 @@ class Action extends HTMLOutputter // lawsuit
      * events and appending to the array. Try to avoid adding strings that won't be used, as
      * they'll be added to HTML output.
      */
+
     function showScriptMessages()
     {
         $messages = array();
+
         if (Event::handle('StartScriptMessages', array($this, &$messages))) {
             // Common messages needed for timeline views etc...
 
@@ -310,11 +325,14 @@ class Action extends HTMLOutputter // lawsuit
             $messages['showmore_tooltip'] = _m('TOOLTIP', 'Show more');
 
             $messages = array_merge($messages, $this->getScriptMessages());
+
+           Event::handle('EndScriptMessages', array($this, &$messages));
         }
-        Event::handle('EndScriptMessages', array($this, &$messages));
-        if ($messages) {
+
+        if (!empty($messages)) {
             $this->inlineScript('SN.messages=' . json_encode($messages));
         }
+
         return $messages;
     }
 
@@ -471,9 +489,13 @@ class Action extends HTMLOutputter // lawsuit
                 $user = User::singleUser();
                 $url = common_local_url('showstream',
                                         array('nickname' => $user->nickname));
+            } else if (common_logged_in()) {
+                $cur = common_current_user();
+                $url = common_local_url('all', array('nickname' => $cur->nickname));
             } else {
                 $url = common_local_url('public');
             }
+
             $this->elementStart('a', array('class' => 'url home bookmark',
                                            'href' => $url));
 
@@ -508,6 +530,7 @@ class Action extends HTMLOutputter // lawsuit
             $this->text(' ');
             $this->element('span', array('class' => 'fn org'), common_config('site', 'name'));
             $this->elementEnd('a');
+
             Event::handle('EndAddressData', array($this));
         }
         $this->elementEnd('address');
@@ -521,82 +544,68 @@ class Action extends HTMLOutputter // lawsuit
     function showPrimaryNav()
     {
         $user = common_current_user();
-        $this->elementStart('dl', array('id' => 'site_nav_global_primary'));
-        // TRANS: DT element for primary navigation menu. String is hidden in default CSS.
-        $this->element('dt', null, _('Primary site navigation'));
-        $this->elementStart('dd');
-        $this->elementStart('ul', array('class' => 'nav'));
+        $this->elementStart('ul', array('class' => 'nav',
+                                        'id' => 'site_nav_global_primary'));
         if (Event::handle('StartPrimaryNav', array($this))) {
-            if ($user) {
-                // TRANS: Tooltip for main menu option "Personal"
-                $tooltip = _m('TOOLTIP', 'Personal profile and friends timeline');
-                $this->menuItem(common_local_url('all', array('nickname' => $user->nickname)),
-                                // TRANS: Main menu option when logged in for access to personal profile and friends timeline
-                                _m('MENU', 'Personal'), $tooltip, false, 'nav_home');
-                // TRANS: Tooltip for main menu option "Account"
-                $tooltip = _m('TOOLTIP', 'Change your email, avatar, password, profile');
+            if (!empty($user)) {
+                $this->menuItem(common_local_url('all', 
+                                                 array('nickname' => $user->nickname)),
+                                _m('Home'),
+                                _m('Friends timeline'),
+                                false,
+                                'nav_home');
+                $this->menuItem(common_local_url('showstream', 
+                                                 array('nickname' => $user->nickname)),
+                                _m('Profile'),
+                                _m('Your profile'),
+                                false,
+                                'nav_profile');
+                $this->menuItem(common_local_url('public'),
+                                _m('Public'),
+                                _m('Everyone on this site'),
+                                false,
+                                'nav_public');
                 $this->menuItem(common_local_url('profilesettings'),
-                                // TRANS: Main menu option when logged in for access to user settings
-                                _('Account'), $tooltip, false, 'nav_account');
-                // TRANS: Tooltip for main menu option "Services"
-                $tooltip = _m('TOOLTIP', 'Connect to services');
-                $this->menuItem(common_local_url('oauthconnectionssettings'),
-                                // TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
-                                _('Connect'), $tooltip, false, 'nav_connect');
+                                _m('Settings'),
+                                _m('Change your personal settings'),
+                                false,
+                                'nav_account');
                 if ($user->hasRight(Right::CONFIGURESITE)) {
-                    // TRANS: Tooltip for menu option "Admin"
-                    $tooltip = _m('TOOLTIP', 'Change site configuration');
                     $this->menuItem(common_local_url('siteadminpanel'),
-                                    // TRANS: Main menu option when logged in and site admin for access to site configuration
-                                    _m('MENU', 'Admin'), $tooltip, false, 'nav_admin');
-                }
-                if (common_config('invite', 'enabled')) {
-                    // TRANS: Tooltip for main menu option "Invite"
-                    $tooltip = _m('TOOLTIP', 'Invite friends and colleagues to join you on %s');
-                    $this->menuItem(common_local_url('invite'),
-                                    // TRANS: Main menu option when logged in and invitations are allowed for inviting new users
-                                    _m('MENU', 'Invite'),
-                                    sprintf($tooltip,
-                                            common_config('site', 'name')),
-                                    false, 'nav_invitecontact');
+                                    _m('Admin'), 
+                                    _m('Site configuration'),
+                                    false,
+                                    'nav_admin');
                 }
-                // TRANS: Tooltip for main menu option "Logout"
-                $tooltip = _m('TOOLTIP', 'Logout from the site');
                 $this->menuItem(common_local_url('logout'),
-                                // TRANS: Main menu option when logged in to log out the current user
-                                _m('MENU', 'Logout'), $tooltip, false, 'nav_logout');
-            }
-            else {
-                if (!common_config('site', 'closed') && !common_config('site', 'inviteonly')) {
-                    // TRANS: Tooltip for main menu option "Register"
-                    $tooltip = _m('TOOLTIP', 'Create an account');
-                    $this->menuItem(common_local_url('register'),
-                                    // TRANS: Main menu option when not logged in to register a new account
-                                    _m('MENU', 'Register'), $tooltip, false, 'nav_register');
-                }
-                // TRANS: Tooltip for main menu option "Login"
-                $tooltip = _m('TOOLTIP', 'Login to the site');
+                                _m('Logout'), 
+                                _m('Logout from the site'),
+                                false,
+                                'nav_logout');
+            } else {
+                $this->menuItem(common_local_url('public'),
+                                _m('Public'),
+                                _m('Everyone on this site'),
+                                false,
+                                'nav_public');
                 $this->menuItem(common_local_url('login'),
-                                // TRANS: Main menu option when not logged in to log in
-                                _m('MENU', 'Login'), $tooltip, false, 'nav_login');
+                                _m('Login'), 
+                                _m('Login to the site'),
+                                false,
+                                'nav_login');
             }
-            // TRANS: Tooltip for main menu option "Help"
-            $tooltip = _m('TOOLTIP', 'Help me!');
-            $this->menuItem(common_local_url('doc', array('title' => 'help')),
-                            // TRANS: Main menu option for help on the StatusNet site
-                            _m('MENU', 'Help'), $tooltip, false, 'nav_help');
-            if ($user || !common_config('site', 'private')) {
-                // TRANS: Tooltip for main menu option "Search"
-                $tooltip = _m('TOOLTIP', 'Search for people or text');
-                $this->menuItem(common_local_url('peoplesearch'),
-                                // TRANS: Main menu option when logged in or when the StatusNet instance is not private
-                                _m('MENU', 'Search'), $tooltip, false, 'nav_search');
+
+            if (!empty($user) || !common_config('site', 'private')) {
+                $this->menuItem(common_local_url('noticesearch'),
+                                _m('Search'),
+                                _m('Search the site'),
+                                false,
+                                'nav_search');
             }
+
             Event::handle('EndPrimaryNav', array($this));
         }
         $this->elementEnd('ul');
-        $this->elementEnd('dd');
-        $this->elementEnd('dl');
     }
 
     /**
@@ -609,14 +618,10 @@ class Action extends HTMLOutputter // lawsuit
         // Revist. Should probably do an hAtom pattern here
         $text = common_config('site', 'notice');
         if ($text) {
-            $this->elementStart('dl', array('id' => 'site_notice',
+            $this->elementStart('div', array('id' => 'site_notice',
                                             'class' => 'system_notice'));
-            // TRANS: DT element for site notice. String is hidden in default CSS.
-            $this->element('dt', null, _('Site notice'));
-            $this->elementStart('dd', null);
             $this->raw($text);
-            $this->elementEnd('dd');
-            $this->elementEnd('dl');
+            $this->elementEnd('div');
         }
     }
 
@@ -677,13 +682,11 @@ class Action extends HTMLOutputter // lawsuit
      */
     function showLocalNavBlock()
     {
-        $this->elementStart('dl', array('id' => 'site_nav_local_views'));
-        // TRANS: DT element for local views block. String is hidden in default CSS.
-        $this->element('dt', null, _('Local views'));
-        $this->elementStart('dd');
+        // Need to have this ID for CSS; I'm too lazy to add it to
+        // all menus
+        $this->elementStart('div', array('id' => 'site_nav_local_views'));
         $this->showLocalNav();
-        $this->elementEnd('dd');
-        $this->elementEnd('dl');
+        $this->elementEnd('div');
     }
 
     /**
@@ -746,17 +749,13 @@ class Action extends HTMLOutputter // lawsuit
 
         if ($dclass != 'Action' || Event::hasHandler('StartShowPageNotice')) {
 
-            $this->elementStart('dl', array('id' => 'page_notice',
+            $this->elementStart('div', array('id' => 'page_notice',
                                             'class' => 'system_notice'));
-            // TRANS: DT element for page notice. String is hidden in default CSS.
-            $this->element('dt', null, _('Page notice'));
-            $this->elementStart('dd');
             if (Event::handle('StartShowPageNotice', array($this))) {
                 $this->showPageNotice();
                 Event::handle('EndShowPageNotice', array($this));
             }
-            $this->elementEnd('dd');
-            $this->elementEnd('dl');
+            $this->elementEnd('div');
         }
     }
 
@@ -836,8 +835,11 @@ class Action extends HTMLOutputter // lawsuit
     function showFooter()
     {
         $this->elementStart('div', array('id' => 'footer'));
-        $this->showSecondaryNav();
-        $this->showLicenses();
+        if (Event::handle('StartShowInsideFooter', array($this))) {
+            $this->showSecondaryNav();
+            $this->showLicenses();
+            Event::handle('EndShowInsideFooter', array($this));
+        }
         $this->elementEnd('div');
     }
 
@@ -848,11 +850,8 @@ class Action extends HTMLOutputter // lawsuit
      */
     function showSecondaryNav()
     {
-        $this->elementStart('dl', array('id' => 'site_nav_global_secondary'));
-        // TRANS: DT element for secondary navigation menu. String is hidden in default CSS.
-        $this->element('dt', null, _('Secondary site navigation'));
-        $this->elementStart('dd', null);
-        $this->elementStart('ul', array('class' => 'nav'));
+        $this->elementStart('ul', array('class' => 'nav',
+                                        'id' => 'site_nav_global_secondary'));
         if (Event::handle('StartSecondaryNav', array($this))) {
             $this->menuItem(common_local_url('doc', array('title' => 'help')),
                             // TRANS: Secondary navigation menu option leading to help on StatusNet.
@@ -888,8 +887,6 @@ class Action extends HTMLOutputter // lawsuit
             Event::handle('EndSecondaryNav', array($this));
         }
         $this->elementEnd('ul');
-        $this->elementEnd('dd');
-        $this->elementEnd('dl');
     }
 
     /**
@@ -899,10 +896,8 @@ class Action extends HTMLOutputter // lawsuit
      */
     function showLicenses()
     {
-        $this->elementStart('dl', array('id' => 'licenses'));
         $this->showStatusNetLicense();
         $this->showContentLicense();
-        $this->elementEnd('dl');
     }
 
     /**
@@ -912,9 +907,6 @@ class Action extends HTMLOutputter // lawsuit
      */
     function showStatusNetLicense()
     {
-        // TRANS: DT element for StatusNet software license.
-        $this->element('dt', array('id' => 'site_statusnet_license'), _('StatusNet software license'));
-        $this->elementStart('dd', null);
         if (common_config('site', 'broughtby')) {
             // TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
             // TRANS: Text between [] is a link description, text between () is the link itself.
@@ -933,7 +925,6 @@ class Action extends HTMLOutputter // lawsuit
         $instr .= sprintf(_('It runs the [StatusNet](http://status.net/) microblogging software, version %s, available under the [GNU Affero General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html).'), STATUSNET_VERSION);
         $output = common_markup_to_html($instr);
         $this->raw($output);
-        $this->elementEnd('dd');
         // do it
     }
 
@@ -945,10 +936,6 @@ class Action extends HTMLOutputter // lawsuit
     function showContentLicense()
     {
         if (Event::handle('StartShowContentLicense', array($this))) {
-            // TRANS: DT element for StatusNet site content license.
-            $this->element('dt', array('id' => 'site_content_license'), _('Site content license'));
-            $this->elementStart('dd', array('id' => 'site_content_license_cc'));
-
             switch (common_config('license', 'type')) {
             case 'private':
                 // TRANS: Content license displayed when license is set to 'private'.
@@ -1009,7 +996,6 @@ class Action extends HTMLOutputter // lawsuit
                 break;
             }
 
-            $this->elementEnd('dd');
             Event::handle('EndShowContentLicense', array($this));
         }
     }
@@ -1330,11 +1316,8 @@ class Action extends HTMLOutputter // lawsuit
     {
         // Does a little before-after block for next/prev page
         if ($have_before || $have_after) {
-            $this->elementStart('dl', 'pagination');
-            // TRANS: DT element for pagination (previous/next, etc.).
-            $this->element('dt', null, _('Pagination'));
-            $this->elementStart('dd', null);
-            $this->elementStart('ul', array('class' => 'nav'));
+            $this->elementStart('ul', array('class' => 'nav',
+                                            'id' => 'pagination'));
         }
         if ($have_before) {
             $pargs   = array('page' => $page-1);
@@ -1358,8 +1341,6 @@ class Action extends HTMLOutputter // lawsuit
         }
         if ($have_before || $have_after) {
             $this->elementEnd('ul');
-            $this->elementEnd('dd');
-            $this->elementEnd('dl');
         }
     }