X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Faction.php;h=5987abf3c35dfe2fd28e01fae01ea0919221614d;hb=b7bf1f87f31dac025875e3ff1e656a077dafe2b3;hp=a8b5e70b13e624f3fd9c4757dba766b4bc795317;hpb=e847b9a128f3b943b746875858e1148665f14ce0;p=quix0rs-gnu-social.git diff --git a/lib/action.php b/lib/action.php index a8b5e70b13..5987abf3c3 100644 --- a/lib/action.php +++ b/lib/action.php @@ -134,11 +134,13 @@ class Action extends HTMLOutputter // lawsuit 'type' => 'text/css', 'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION, 'media' => 'screen, projection, tv')); + $this->comment('[if IE]>comment('[if lte IE '.$ver.']>elementStart('body'); + $this->elementStart('body', array('id' => $this->trimmed('action'))); $this->elementStart('div', 'wrap'); $this->showHeader(); $this->showCore(); $this->showFooter(); - $this->elementEnd('div', 'wrap'); + $this->elementEnd('div'); $this->elementEnd('body'); } @@ -208,25 +210,27 @@ class Action extends HTMLOutputter // lawsuit $this->showLogo(); $this->showPrimaryNav(); $this->showSiteNotice(); - $this->showNoticeForm(); + if (common_logged_in()) { + $this->showNoticeForm(); + } else { + $this->showAnonymousMessage(); + } $this->elementEnd('div'); } function showLogo() { $this->elementStart('address', array('id' => 'site_contact', - 'class' => 'vcard')); + 'class' => 'vcard')); $this->elementStart('a', array('class' => 'url home bookmark', - 'href' => common_local_url('public'))); - if ((isset($config['site']['logo']) && is_string($config['site']['logo']) && (strlen($config['site']['logo']) > 0)) - || file_exists(theme_file('logo.png'))) + 'href' => common_local_url('public'))); + if (common_config('site', 'logo') || file_exists(theme_file('logo.png'))) { $this->element('img', array('class' => 'logo photo', - 'src' => isset($config['site']['logo']) ? - ($config['site']['logo']) : theme_path('logo.png'), - 'alt' => $config['site']['name'])); + 'src' => (common_config('site', 'logo')) ? common_config('site', 'logo') : theme_path('logo.png'), + 'alt' => common_config('site', 'name'))); } - $this->element('span', array('class' => 'fn org'), $config['site']['name']); + $this->element('span', array('class' => 'fn org'), common_config('site', 'name')); $this->elementEnd('a'); $this->elementEnd('address'); } @@ -235,48 +239,52 @@ class Action extends HTMLOutputter // lawsuit { $this->elementStart('dl', array('id' => 'site_nav_global_primary')); $this->element('dt', null, _('Primary site navigation')); - $this->elementStart('dd'); + $this->elementStart('dd'); $user = common_current_user(); - $this->elementStart('ul', array('id' => 'nav')); + $this->elementStart('ul', array('class' => 'nav')); if ($user) { $this->menuItem(common_local_url('all', array('nickname' => $user->nickname)), - _('Home')); + _('Home'), _('Personal profile and friends timeline'), false, 'nav_home'); } - $this->menuItem(common_local_url('peoplesearch'), _('Search')); + $this->menuItem(common_local_url('peoplesearch'), + _('Search'), _('Search for people or text'), false, 'nav_search'); if ($user) { $this->menuItem(common_local_url('profilesettings'), - _('Settings')); - $this->menuItem(common_local_url('invite'), - _('Invite')); + _('Account'), _('Change your email, avatar, password, profile'), false, 'nav_account'); + $this->menuItem(common_local_url('imsettings'), + _('Connect'), _('Connect to IM, SMS, Twitter'), false, 'nav_connect'); $this->menuItem(common_local_url('logout'), - _('Logout')); + _('Logout'), _('Logout from the site'), false, 'nav_logout'); } else { - $this->menuItem(common_local_url('login'), _('Login')); + $this->menuItem(common_local_url('login'), + _('Login'), _('Login to the site'), false, 'nav_login'); if (!common_config('site', 'closed')) { - $this->menuItem(common_local_url('register'), _('Register')); + $this->menuItem(common_local_url('register'), + _('Register'), _('Create an account'), false, 'nav_register'); } - $this->menuItem(common_local_url('openidlogin'), _('OpenID')); + $this->menuItem(common_local_url('openidlogin'), + _('OpenID'), _('Login with OpenID'), false, 'nav_openid'); } $this->menuItem(common_local_url('doc', array('title' => 'help')), - _('Help')); + _('Help'), _('Help me!'), false, 'nav_help'); $this->elementEnd('ul'); - $this->elementEnd('dd'); + $this->elementEnd('dd'); $this->elementEnd('dl'); } // Revist. Should probably do an hAtom pattern here function showSiteNotice() { - $text = common_config('site', 'notice'); - if ($text) { - $this->elementStart('dl', array('id' => 'site_notice', - 'class' => 'system_notice')); - $this->element('dt', null, _('Site notice')); - $this->element('dd', null, $text); - $this->elementEnd('dl'); - } + $text = common_config('site', 'notice'); + if ($text) { + $this->elementStart('dl', array('id' => 'site_notice', + 'class' => 'system_notice')); + $this->element('dt', null, _('Site notice')); + $this->element('dd', null, $text); + $this->elementEnd('dl'); + } } - + // MAY overload if no notice form needed... or direct message box???? function showNoticeForm() @@ -285,15 +293,30 @@ class Action extends HTMLOutputter // lawsuit $notice_form->show(); } + function showAnonymousMessage() + { + // needs to be defined by the class + } + function showCore() { - $this->elementStart('div', array('class' => 'core')); - $this->showLocalNav(); + $this->elementStart('div', array('id' => 'core')); + $this->showLocalNavBlock(); $this->showContentBlock(); $this->showAside(); $this->elementEnd('div'); } + function showLocalNavBlock() + { + $this->elementStart('dl', array('id' => 'site_nav_local_views')); + $this->element('dt', null, _('Local views')); + $this->elementStart('dd'); + $this->showLocalNav(); + $this->elementEnd('dd'); + $this->elementEnd('dl'); + } + // SHOULD overload function showLocalNav() @@ -305,41 +328,48 @@ class Action extends HTMLOutputter // lawsuit { $this->elementStart('div', array('id' => 'content')); $this->showPageTitle(); - $this->showPageNotice(); + $this->showPageNoticeBlock(); + $this->elementStart('div', array('id' => 'content_inner')); + // show the actual content (forms, lists, whatever) $this->showContent(); $this->elementEnd('div'); + $this->elementEnd('div'); } function showPageTitle() { $this->element('h1', NULL, $this->title()); } - // SHOULD overload (unless there's not a notice) - - function showPageNotice() + function showPageNoticeBlock() { $this->elementStart('dl', array('id' => 'page_notice', 'class' => 'system_notice')); $this->element('dt', null, _('Page notice')); - $this->elementStart('dd', null); - // Output a bunch of paragraphs here + $this->elementStart('dd'); + $this->showPageNotice(); $this->elementEnd('dd'); $this->elementEnd('dl'); + } + + // SHOULD overload (unless there's not a notice) + + function showPageNotice() + { } // MUST overload function showContent() { - // show the actual content (forms, lists, whatever) - $this->elementStart('div', array('id' => 'content_inner')); - $this->elementEnd('div'); } function showAside() { + $this->elementStart('div', array('id' => 'aside_primary', + 'class' => 'aside')); $this->showExportData(); $this->showSections(); + $this->elementEnd('div'); } // MAY overload if there are feeds @@ -370,19 +400,19 @@ class Action extends HTMLOutputter // lawsuit $this->elementStart('dl', array('id' => 'site_nav_global_secondary')); $this->element('dt', null, _('Secondary site navigation')); $this->elementStart('dd', null); - $this->elementStart('ul', array('id' => 'nav')); + $this->elementStart('ul', array('class' => 'nav')); $this->menuItem(common_local_url('doc', array('title' => 'help')), - _('Help')); + _('Help')); $this->menuItem(common_local_url('doc', array('title' => 'about')), - _('About')); + _('About')); $this->menuItem(common_local_url('doc', array('title' => 'faq')), - _('FAQ')); + _('FAQ')); $this->menuItem(common_local_url('doc', array('title' => 'privacy')), - _('Privacy')); + _('Privacy')); $this->menuItem(common_local_url('doc', array('title' => 'source')), - _('Source')); + _('Source')); $this->menuItem(common_local_url('doc', array('title' => 'contact')), - _('Contact')); + _('Contact')); $this->elementEnd('ul'); $this->elementEnd('dd'); $this->elementEnd('dl'); @@ -417,23 +447,24 @@ class Action extends HTMLOutputter // lawsuit $this->element('dt', array('id' => 'site_content_license'), _('Laconica software license')); $this->elementStart('dd', array('id' => 'site_content_license_cc')); $this->elementStart('p'); - $this->text(_('Unless otherwise specified, contents of this site are copyright by the contributors and available under the ')); + $this->element('img', array('id' => 'license_cc', + 'src' => common_config('license', 'image'), + 'alt' => common_config('license', 'title'))); + //TODO: This is dirty: i18n + $this->text(_('All '.common_config('site', 'name').' content and data are available under the ')); $this->element('a', array('class' => 'license', 'rel' => 'external license', - 'href' => $config['license']['url']), - $config['license']['title']); - $this->text(_('. Contributors should be attributed by full name or nickname.')); + 'href' => common_config('license', 'url')), + common_config('license', 'title')); + $this->text(_('license.')); $this->elementEnd('p'); - $this->element('img', array('id' => 'license_cc', - 'src' => $config['license']['image'], - 'alt' => $config['license']['title'])); $this->elementEnd('dd'); } // For comparison with If-Last-Modified // If not applicable, return null - function last_modified() + function lastModified() { return null; } @@ -443,7 +474,7 @@ class Action extends HTMLOutputter // lawsuit return null; } - function is_readonly() + function isReadOnly() { return false; } @@ -468,7 +499,7 @@ class Action extends HTMLOutputter // lawsuit function handle($argarray=null) { - $lm = $this->last_modified(); + $lm = $this->lastModified(); $etag = $this->etag(); if ($etag) { @@ -482,7 +513,7 @@ class Action extends HTMLOutputter // lawsuit $ims = strtotime($if_modified_since); if ($lm <= $ims) { if (!$etag || - $this->_has_etag($etag, $_SERVER['HTTP_IF_NONE_MATCH'])) { + $this->_hasEtag($etag, $_SERVER['HTTP_IF_NONE_MATCH'])) { header('HTTP/1.1 304 Not Modified'); // Better way to do this? exit(0); @@ -492,7 +523,7 @@ class Action extends HTMLOutputter // lawsuit } } - function _has_etag($etag, $if_none_match) + function _hasEtag($etag, $if_none_match) { return ($if_none_match) && in_array($etag, explode(',', $if_none_match)); } @@ -512,21 +543,21 @@ class Action extends HTMLOutputter // lawsuit } } - function server_error($msg, $code=500) + function serverError($msg, $code=500) { $action = $this->trimmed('action'); common_debug("Server error '$code' on '$action': $msg", __FILE__); common_server_error($msg, $code); } - function client_error($msg, $code=400) + function clientError($msg, $code=400) { $action = $this->trimmed('action'); common_debug("User error '$code' on '$action': $msg", __FILE__); common_user_error($msg, $code); } - function self_url() + function selfUrl() { $action = $this->trimmed('action'); $args = $this->args; @@ -537,42 +568,6 @@ class Action extends HTMLOutputter // lawsuit return common_local_url($action, $args); } - function nav_menu($menu) - { - $action = $this->trimmed('action'); - $this->elementStart('ul', array('id' => 'nav_views')); - foreach ($menu as $menuaction => $menudesc) { - $this->menuItem(common_local_url($menuaction, - isset($menudesc[2]) ? $menudesc[2] : null), - $menudesc[0], - $menudesc[1], - $action == $menuaction); - } - $this->elementEnd('ul'); - } - - function common_show_header($pagetitle, $callable=null, $data=null, $headercall=null) - { - global $config, $xw; - global $action; /* XXX: kind of cheating here. */ - - common_start_html(); - - $this->elementStart('head'); - - if ($callable) { - if ($data) { - call_user_func($callable, $data); - } else { - call_user_func($callable); - } - } - $this->elementEnd('head'); - $this->elementStart('body', $action); - $this->elementStart('div', array('id' => 'wrap')); - $this->elementStart('div', array('id' => 'content')); - } - // Added @id to li for some control. // XXX: We might want to move this to htmloutputter.php @@ -583,7 +578,9 @@ class Action extends HTMLOutputter // lawsuit $lattrs['class'] = 'current'; } - $this->elementStart('li', (is_null($id)) ? null : array('id' => $id), $lattrs); + (is_null($id)) ? $lattrs : $lattrs['id'] = $id; + + $this->elementStart('li', $lattrs); $attrs['href'] = $url; if ($title) { $attrs['title'] = $title;