From 18eb40c98807e8c51e6a695e00a7ba03c004ac5f Mon Sep 17 00:00:00 2001 From: sarven Date: Sat, 24 Jan 2009 00:58:12 +0000 Subject: [PATCH] Search form markup and style --- actions/noticesearch.php | 76 +++++++++++++++++++++++++++----------- lib/searchaction.php | 16 +++++--- lib/searchgroupnav.php | 2 +- theme/base/css/display.css | 15 ++++++-- 4 files changed, 77 insertions(+), 32 deletions(-) diff --git a/actions/noticesearch.php b/actions/noticesearch.php index 3c3fdca9f1..970d7cf882 100644 --- a/actions/noticesearch.php +++ b/actions/noticesearch.php @@ -8,6 +8,7 @@ * @package Laconica * @author Evan Prodromou * @author Robin Millette + * @author Sarven Capadisli * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://laconi.ca/ * @@ -90,7 +91,7 @@ class NoticesearchAction extends SearchAction } if ($cnt > 0) { $terms = preg_split('/[\s,]+/', $q); - $this->elementStart('ul', array('id' => 'notices')); + $this->elementStart('ul', array('class' => 'notices')); for ($i = 0; $i < min($cnt, NOTICES_PER_PAGE); $i++) { if ($notice->fetch()) { $this->showNotice($notice, $terms); @@ -147,23 +148,26 @@ class NoticesearchAction extends SearchAction return; } // XXX: RDFa - $this->elementStart('li', array('class' => 'notice_single', + $this->elementStart('li', array('class' => 'hentry notice', 'id' => 'notice-' . $notice->id)); + + $this->elementStart('div', 'entry-title'); + $this->elementStart('span', 'vcard author'); $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE); $this->elementStart('a', array('href' => $profile->profileurl)); $this->element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE), - 'class' => 'avatar stream', + 'class' => 'avatar photo', 'width' => AVATAR_STREAM_SIZE, 'height' => AVATAR_STREAM_SIZE, 'alt' => ($profile->fullname) ? $profile->fullname : $profile->nickname)); + $this->element('span', 'nickname fn', $profile->nickname); $this->elementEnd('a'); - $this->element('a', array('href' => $profile->profileurl, - 'class' => 'nickname'), - $profile->nickname); + $this->elementEnd('span'); + // FIXME: URL, image, video, audio - $this->elementStart('p', array('class' => 'content')); + $this->elementStart('p', array('class' => 'entry-content')); if ($notice->rendered) { $this->raw($this->highlight($notice->rendered, $terms)); } else { @@ -173,20 +177,52 @@ class NoticesearchAction extends SearchAction $this->raw($this->highlight(common_render_content($notice->content, $notice), $terms)); } $this->elementEnd('p'); + $this->elementEnd('div'); + $noticeurl = common_local_url('shownotice', array('notice' => $notice->id)); - $this->elementStart('p', 'time'); - $this->element('a', array('class' => 'permalink', - 'href' => $noticeurl, - 'title' => common_exact_date($notice->created)), - common_date_string($notice->created)); + $this->elementStart('div', 'entry-content'); + $this->elementStart('dl', 'timestamp'); + $this->element('dt', null, _('Published')); + $this->elementStart('dd', null); + $this->elementStart('a', array('rel' => 'bookmark', + 'href' => $noticeurl)); + $dt = common_date_iso8601($notice->created); + $this->element('abbr', array('class' => 'published', + 'title' => $dt), + common_date_string($notice->created)); + $this->elementEnd('a'); + $this->elementEnd('dd'); + $this->elementEnd('dl'); + $this->elementEnd('div'); + + $this->elementStart('div', 'notice-options'); if ($notice->reply_to) { - $replyurl = common_local_url('shownotice', array('notice' => $notice->reply_to)); - $this->text(' ('); - $this->element('a', array('class' => 'inreplyto', - 'href' => $replyurl), - _('in reply to...')); - $this->text(')'); + $replyurl = common_local_url('shownotice', + array('notice' => $this->notice->reply_to)); + $this->elementStart('dl', 'response'); + $this->element('dt', null, _('To')); + $this->elementStart('dd'); + $this->element('a', array('href' => $replyurl, + 'rel' => 'in-reply-to'), + _('in reply to')); + $this->elementEnd('dd'); + $this->elementEnd('dl'); } + + $reply_url = common_local_url('newnotice', + array('replyto' => $profile->nickname)); + + $this->elementStart('dl', 'notice_reply'); + $this->element('dt', null, _('Reply to this notice')); + $this->elementStart('dd'); + $this->elementStart('a', array('href' => $reply_url, + 'title' => _('Reply to this notice'))); + $this->text(_('Reply')); + $this->element('span', 'notice_id', $notice->id); + $this->elementEnd('a'); + $this->elementEnd('dd'); + $this->elementEnd('dl'); + $this->elementStart('a', array('href' => common_local_url('newnotice', array('replyto' => $profile->nickname)), @@ -194,10 +230,8 @@ class NoticesearchAction extends SearchAction 'title' => _('reply'), 'class' => 'replybutton')); $this->hidden('posttoken', common_session_token()); - - $this->raw('→'); $this->elementEnd('a'); - $this->elementEnd('p'); + $this->elementEnd('div'); $this->elementEnd('li'); } diff --git a/lib/searchaction.php b/lib/searchaction.php index 70e63146a6..fdfb8dc5ad 100644 --- a/lib/searchaction.php +++ b/lib/searchaction.php @@ -114,17 +114,21 @@ class SearchAction extends Action $q = $this->trimmed('q'); $page = $this->trimmed('page', 1); $this->elementStart('form', array('method' => 'get', - 'id' => 'login', + 'id' => 'form_search', + 'class' => 'form_settings', 'action' => common_local_url($this->trimmed('action')))); - $this->elementStart('p'); + $this->elementStart('fieldset'); + $this->element('legend', null, _('Search site')); + $this->elementStart('ul', 'form_data'); + $this->elementStart('li'); if (!isset($config['site']['fancy']) || !$config['site']['fancy']) { $this->hidden('action', $this->trimmed('action')); } - $this->input('q', '', $q); - $this->text(' '); + $this->input('q', 'Keyword(s)', $q); $this->submit('search', 'Search'); - - $this->elementEnd('p'); + $this->elementEnd('li'); + $this->elementEnd('ul'); + $this->elementEnd('fieldset'); $this->elementEnd('form'); if ($q) { $this->showResults($q, $page); diff --git a/lib/searchgroupnav.php b/lib/searchgroupnav.php index 9fe3c2379a..3ba3f9cd9a 100644 --- a/lib/searchgroupnav.php +++ b/lib/searchgroupnav.php @@ -82,7 +82,7 @@ class SearchGroupNav extends Widget $this->out->menuItem(common_local_url('noticesearch', $args), _('Notice'), _('Find content of notices'), $action_name == 'noticesearch', 'nav_search_notice'); $this->out->menuItem(common_local_url('groupsearch', $args), _('Group'), - _('Find groups on this site'), $action_name == 'groupsearch', 'nav_search_notice'); + _('Find groups on this site'), $action_name == 'groupsearch', 'nav_search_group'); $this->action->elementEnd('ul'); } } diff --git a/theme/base/css/display.css b/theme/base/css/display.css index efa3d2afa6..367396338f 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -151,7 +151,8 @@ font-weight:bold; #editgroup legend, #form_tag_user legend, #form_remote_subscribe legend, -#form_openid_login legend { +#form_openid_login legend, +#form_search legend { display:none; } @@ -181,7 +182,8 @@ width:90%; #form_login p.form_guide, #form_register #settings_rememberme p.form_guide, #form_openid_login #settings_rememberme p.form_guide, -#settings_twitter_remove p.form_guide { +#settings_twitter_remove p.form_guide, +#form_search ul.form_data #q { margin-left:0; } @@ -192,6 +194,11 @@ border-radius:4px; padding:0 7px; } +#form_search .submit { +margin-left:11px; +} + + address { float:left; @@ -627,11 +634,11 @@ border-radius:4px; .entity_tags ul { list-style-type:none; +display:inline; } .entity_tags li { display:inline; -margin-right:1em; -float:left; +margin-right:4px; } .aside .section {