diff options
-rw-r--r-- | actions/showgroup.php | 29 | ||||
-rw-r--r-- | actions/showstream.php | 57 | ||||
-rw-r--r-- | js/jcrop/jquery.Jcrop.go.js | 7 | ||||
-rw-r--r-- | lib/action.php | 385 | ||||
-rw-r--r-- | lib/blockform.php | 2 | ||||
-rw-r--r-- | lib/groupeditform.php | 18 | ||||
-rw-r--r-- | lib/groupminilist.php | 6 | ||||
-rw-r--r-- | lib/profilelist.php | 13 | ||||
-rw-r--r-- | lib/profileminilist.php | 4 | ||||
-rw-r--r-- | theme/base/css/display.css | 155 | ||||
-rw-r--r-- | theme/identica/css/display.css | 8 |
11 files changed, 486 insertions, 198 deletions
diff --git a/actions/showgroup.php b/actions/showgroup.php index c2cd3d295..1af080c7e 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -195,13 +195,12 @@ class ShowgroupAction extends Action function showGroupProfile() { - $this->elementStart('div', array('id' => 'group_profile', - 'class' => 'vcard author')); + $this->elementStart('div', 'entity_profile vcard author'); $this->element('h2', null, _('Group profile')); - $this->elementStart('dl', 'group_depiction'); - $this->element('dt', null, _('Photo')); + $this->elementStart('dl', 'entity_depiction'); + $this->element('dt', null, _('Avatar')); $this->elementStart('dd'); $logo = ($this->group->homepage_logo) ? @@ -215,10 +214,10 @@ class ShowgroupAction extends Action $this->elementEnd('dd'); $this->elementEnd('dl'); - $this->elementStart('dl', 'group_nickname'); + $this->elementStart('dl', 'entity_nickname'); $this->element('dt', null, _('Nickname')); $this->elementStart('dd'); - $hasFN = ($this->group->fullname) ? 'nickname url uid' : 'fn nickname url uid'; + $hasFN = ($this->group->fullname) ? 'nickname url uid' : 'fn org nickname url uid'; $this->element('a', array('href' => $this->group->homeUrl(), 'rel' => 'me', 'class' => $hasFN), $this->group->nickname); @@ -226,23 +225,23 @@ class ShowgroupAction extends Action $this->elementEnd('dl'); if ($this->group->fullname) { - $this->elementStart('dl', 'group_fn'); + $this->elementStart('dl', 'entity_fn'); $this->element('dt', null, _('Full name')); $this->elementStart('dd'); - $this->element('span', 'fn', $this->group->fullname); + $this->element('span', 'fn org', $this->group->fullname); $this->elementEnd('dd'); $this->elementEnd('dl'); } if ($this->group->location) { - $this->elementStart('dl', 'group_location'); + $this->elementStart('dl', 'entity_location'); $this->element('dt', null, _('Location')); $this->element('dd', 'location', $this->group->location); $this->elementEnd('dl'); } if ($this->group->homepage) { - $this->elementStart('dl', 'group_url'); + $this->elementStart('dl', 'entity_url'); $this->element('dt', null, _('URL')); $this->elementStart('dd'); $this->element('a', array('href' => $this->group->homepage, @@ -253,7 +252,7 @@ class ShowgroupAction extends Action } if ($this->group->description) { - $this->elementStart('dl', 'group_note'); + $this->elementStart('dl', 'entity_note'); $this->element('dt', null, _('Note')); $this->element('dd', 'note', $this->group->description); $this->elementEnd('dl'); @@ -261,10 +260,10 @@ class ShowgroupAction extends Action $this->elementEnd('div'); - $this->elementStart('div', array('id' => 'group_actions')); + $this->elementStart('div', 'entity_actions'); $this->element('h2', null, _('Group actions')); $this->elementStart('ul'); - $this->elementStart('li', array('id' => 'group_subscribe')); + $this->elementStart('li', array('id' => 'entity_subscribe')); $cur = common_current_user(); if ($cur) { if ($cur->isMember($this->group)) { @@ -342,7 +341,7 @@ class ShowgroupAction extends Action return; } - $this->elementStart('div', array('id' => 'user_subscriptions', + $this->elementStart('div', array('id' => 'entity_subscriptions', 'class' => 'section')); $this->element('h2', null, _('Members')); @@ -361,4 +360,4 @@ class ShowgroupAction extends Action _('All members')); } } -}
\ No newline at end of file +} diff --git a/actions/showstream.php b/actions/showstream.php index 9734c2907..1ea84cf21 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -169,14 +169,14 @@ class ShowstreamAction extends Action $this->element('link', array('rel' => 'alternate', 'href' => common_local_url('api', array('apiaction' => 'statuses', - 'method' => 'user_timeline.rss', + 'method' => 'entity_timeline.rss', 'argument' => $this->user->nickname)), 'type' => 'application/rss+xml', 'title' => sprintf(_('Notice feed for %s'), $this->user->nickname))); $this->element('link', array('rel' => 'alternate feed', 'href' => common_local_url('api', array('apiaction' => 'statuses', - 'method' => 'user_timeline.atom', + 'method' => 'entity_timeline.atom', 'argument' => $this->user->nickname)), 'type' => 'application/atom+xml', 'title' => sprintf(_('Notice feed for %s'), $this->user->nickname))); @@ -227,11 +227,11 @@ class ShowstreamAction extends Action function showProfile() { - $this->elementStart('div', array('id' => 'user_profile', 'class' => 'vcard author')); + $this->elementStart('div', 'entity_profile vcard author'); $this->element('h2', null, _('User profile')); $avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE); - $this->elementStart('dl', 'user_depiction'); + $this->elementStart('dl', 'entity_depiction'); $this->element('dt', null, _('Photo')); $this->elementStart('dd'); $this->element('img', array('src' => ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_PROFILE_SIZE), @@ -242,7 +242,7 @@ class ShowstreamAction extends Action $this->elementEnd('dd'); $this->elementEnd('dl'); - $this->elementStart('dl', 'user_nickname'); + $this->elementStart('dl', 'entity_nickname'); $this->element('dt', null, _('Nickname')); $this->elementStart('dd'); $hasFN = ($this->profile->fullname) ? 'nickname url uid' : 'fn nickname url uid'; @@ -253,7 +253,7 @@ class ShowstreamAction extends Action $this->elementEnd('dl'); if ($this->profile->fullname) { - $this->elementStart('dl', 'user_fn'); + $this->elementStart('dl', 'entity_fn'); $this->element('dt', null, _('Full name')); $this->elementStart('dd'); $this->element('span', 'fn', $this->profile->fullname); @@ -262,14 +262,14 @@ class ShowstreamAction extends Action } if ($this->profile->location) { - $this->elementStart('dl', 'user_location'); + $this->elementStart('dl', 'entity_location'); $this->element('dt', null, _('Location')); $this->element('dd', 'location', $this->profile->location); $this->elementEnd('dl'); } if ($this->profile->homepage) { - $this->elementStart('dl', 'user_url'); + $this->elementStart('dl', 'entity_url'); $this->element('dt', null, _('URL')); $this->elementStart('dd'); $this->element('a', array('href' => $this->profile->homepage, @@ -280,7 +280,7 @@ class ShowstreamAction extends Action } if ($this->profile->bio) { - $this->elementStart('dl', 'user_note'); + $this->elementStart('dl', 'entity_note'); $this->element('dt', null, _('Note')); $this->element('dd', 'note', $this->profile->bio); $this->elementEnd('dl'); @@ -288,7 +288,7 @@ class ShowstreamAction extends Action $tags = Profile_tag::getTags($this->profile->id, $this->profile->id); if (count($tags) > 0) { - $this->elementStart('dl', 'user_tags'); + $this->elementStart('dl', 'entity_tags'); $this->element('dt', null, _('Tags')); $this->elementStart('dd'); $this->elementStart('ul', 'tags xoxo'); @@ -307,10 +307,11 @@ class ShowstreamAction extends Action } $this->elementEnd('div'); - $this->elementStart('div', array('id' => 'user_actions')); + //XXX: entity_actions doesn't need to be outputted if entity is looking at their own profile + $this->elementStart('div', 'entity_actions'); $this->element('h2', null, _('User actions')); $this->elementStart('ul'); - $this->elementStart('li', array('id' => 'user_subscribe')); + $this->elementStart('li', array('id' => 'entity_subscribe')); $cur = common_current_user(); if ($cur) { if ($cur->id != $this->profile->id) { @@ -331,14 +332,14 @@ class ShowstreamAction extends Action $user = User::staticGet('id', $this->profile->id); if ($cur && $cur->id != $user->id && $cur->mutuallySubscribed($user)) { - $this->elementStart('li', array('id' => 'user_send-a-message')); + $this->elementStart('li', array('id' => 'entity_send-a-message')); $this->element('a', array('href' => common_local_url('newmessage', array('to' => $user->id)), 'title' => _('Send a direct message to this user')), _('Message')); $this->elementEnd('li'); if ($user->email && $user->emailnotifynudge) { - $this->elementStart('li', array('id' => 'user_nudge')); + $this->elementStart('li', array('id' => 'entity_nudge')); $nf = new NudgeForm($this, $user); $nf->show(); $this->elementEnd('li'); @@ -347,7 +348,7 @@ class ShowstreamAction extends Action if ($cur && $cur->id != $this->profile->id) { $blocked = $cur->hasBlocked($this->profile); - $this->elementStart('li', array('id' => 'user_block')); + $this->elementStart('li', array('id' => 'entity_block')); if ($blocked) { $ubf = new UnblockForm($this, $this->profile); $ubf->show(); @@ -366,7 +367,7 @@ class ShowstreamAction extends Action $url = common_local_url('remotesubscribe', array('nickname' => $this->profile->nickname)); $this->element('a', array('href' => $url, - 'id' => 'user_subscribe_remote'), + 'id' => 'entity_subscribe_remote'), _('Subscribe')); } @@ -383,17 +384,17 @@ class ShowstreamAction extends Action function showSections() { - $this->showStatistics(); $this->showSubscriptions(); $this->showSubscribers(); $this->showGroups(); + $this->showStatistics(); } function showSubscriptions() { $profile = $this->user->getSubscriptions(0, PROFILES_PER_MINILIST + 1); - $this->elementStart('div', array('id' => 'user_subscriptions', + $this->elementStart('div', array('id' => 'entity_subscriptions', 'class' => 'section')); $this->element('h2', null, _('Subscriptions')); @@ -410,7 +411,7 @@ class ShowstreamAction extends Action $this->elementStart('p'); $this->element('a', array('href' => common_local_url('subscriptions', array('nickname' => $this->profile->nickname)), - 'class' => 'mores'), + 'class' => 'more'), _('All subscriptions')); $this->elementEnd('p'); } @@ -422,7 +423,7 @@ class ShowstreamAction extends Action { $profile = $this->user->getSubscribers(0, PROFILES_PER_MINILIST + 1); - $this->elementStart('div', array('id' => 'user_subscribers', + $this->elementStart('div', array('id' => 'entity_subscribers', 'class' => 'section')); $this->element('h2', null, _('Subscribers')); @@ -439,7 +440,7 @@ class ShowstreamAction extends Action $this->elementStart('p'); $this->element('a', array('href' => common_local_url('subscribers', array('nickname' => $this->profile->nickname)), - 'class' => 'mores'), + 'class' => 'more'), _('All subscribers')); $this->elementEnd('p'); } @@ -462,19 +463,19 @@ class ShowstreamAction extends Action $notices->profile_id = $this->profile->id; $notice_count = (int) $notices->count(); - $this->elementStart('div', array('id' => 'user_statistics', + $this->elementStart('div', array('id' => 'entity_statistics', 'class' => 'section')); $this->element('h2', null, _('Statistics')); // Other stats...? - $this->elementStart('dl', 'user_member-since'); + $this->elementStart('dl', 'entity_member-since'); $this->element('dt', null, _('Member since')); $this->element('dd', null, date('j M Y', strtotime($this->profile->created))); $this->elementEnd('dl'); - $this->elementStart('dl', 'user_subscriptions'); + $this->elementStart('dl', 'entity_subscriptions'); $this->elementStart('dt'); $this->element('a', array('href' => common_local_url('subscriptions', array('nickname' => $this->profile->nickname))), @@ -483,7 +484,7 @@ class ShowstreamAction extends Action $this->element('dd', null, (is_int($subs_count)) ? $subs_count : '0'); $this->elementEnd('dl'); - $this->elementStart('dl', 'user_subscribers'); + $this->elementStart('dl', 'entity_subscribers'); $this->elementStart('dt'); $this->element('a', array('href' => common_local_url('subscribers', array('nickname' => $this->profile->nickname))), @@ -492,7 +493,7 @@ class ShowstreamAction extends Action $this->element('dd', 'subscribers', (is_int($subbed_count)) ? $subbed_count : '0'); $this->elementEnd('dl'); - $this->elementStart('dl', 'user_notices'); + $this->elementStart('dl', 'entity_notices'); $this->element('dt', null, _('Notices')); $this->element('dd', null, (is_int($notice_count)) ? $notice_count : '0'); $this->elementEnd('dl'); @@ -504,7 +505,7 @@ class ShowstreamAction extends Action { $groups = $this->user->getGroups(0, GROUPS_PER_MINILIST + 1); - $this->elementStart('div', array('id' => 'user_groups', + $this->elementStart('div', array('id' => 'entity_groups', 'class' => 'section')); $this->element('h2', null, _('Groups')); @@ -521,7 +522,7 @@ class ShowstreamAction extends Action $this->elementStart('p'); $this->element('a', array('href' => common_local_url('usergroups', array('nickname' => $this->profile->nickname)), - 'class' => 'mores'), + 'class' => 'more'), _('All groups')); $this->elementEnd('p'); } diff --git a/js/jcrop/jquery.Jcrop.go.js b/js/jcrop/jquery.Jcrop.go.js index d5176c14c..b2737407b 100644 --- a/js/jcrop/jquery.Jcrop.go.js +++ b/js/jcrop/jquery.Jcrop.go.js @@ -1,7 +1,12 @@ $(function(){ + var x = ($('#avatar_crop_x').val()) ? $('#avatar_crop_x').val() : 0; + var y = ($('#avatar_crop_y').val()) ? $('#avatar_crop_y').val() : 0; + var w = ($('#avatar_crop_w').val()) ? $('#avatar_crop_w').val() : $("#avatar_original img").attr("width"); + var h = ($('#avatar_crop_h').val()) ? $('#avatar_crop_h').val() : $("#avatar_original img").attr("height"); + jQuery("#avatar_original img").Jcrop({ onChange: showPreview, - setSelect: [ 0, 0, $("#avatar_original img").attr("width"), $("#avatar_original img").attr("height") ], + setSelect: [ x, y, w, h ], onSelect: updateCoords, aspectRatio: 1, boxWidth: 480, diff --git a/lib/action.php b/lib/action.php index 5987abf3c..bf053424f 100644 --- a/lib/action.php +++ b/lib/action.php @@ -53,7 +53,6 @@ require_once INSTALLDIR.'/lib/htmloutputter.php'; * * @see HTMLOutputter */ - class Action extends HTMLOutputter // lawsuit { var $args; @@ -69,20 +68,30 @@ class Action extends HTMLOutputter // lawsuit * @see XMLOutputter::__construct * @see HTMLOutputter::__construct */ - function __construct($output='php://output', $indent=true) { parent::__construct($output, $indent); } - // For initializing members of the class + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ function prepare($argarray) { $this->args =& common_copy_args($argarray); return true; } + /** + * Show page, a template method. + * + * @return nothing + */ function showPage() { $this->startHTML(); @@ -91,6 +100,11 @@ class Action extends HTMLOutputter // lawsuit $this->endHTML(); } + /** + * Show head, a template method. + * + * @return nothing + */ function showHead() { // XXX: attributes (profile?) @@ -105,6 +119,11 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('head'); } + /** + * Show title, a template method. + * + * @return nothing + */ function showTitle() { $this->element('title', null, @@ -113,13 +132,24 @@ class Action extends HTMLOutputter // lawsuit common_config('site', 'name'))); } - // SHOULD overload + /** + * Returns the page title + * + * SHOULD overload + * + * @return string page title + */ function title() { return _("Untitled page"); } + /** + * Show stylesheets + * + * @return nothing + */ function showStylesheets() { $this->element('link', array('rel' => 'stylesheet', @@ -145,6 +175,11 @@ class Action extends HTMLOutputter // lawsuit } } + /** + * Show javascript headers + * + * @return nothing + */ function showScripts() { $this->element('script', array('type' => 'text/javascript', @@ -161,38 +196,66 @@ class Action extends HTMLOutputter // lawsuit ' '); } + /** + * Show OpenSearch headers + * + * @return nothing + */ function showOpenSearch() { - $this->element('link', array('rel' => 'search', 'type' => 'application/opensearchdescription+xml', + $this->element('link', array('rel' => 'search', + 'type' => 'application/opensearchdescription+xml', 'href' => common_local_url('opensearch', array('type' => 'people')), 'title' => common_config('site', 'name').' People Search')); - $this->element('link', array('rel' => 'search', 'type' => 'application/opensearchdescription+xml', 'href' => common_local_url('opensearch', array('type' => 'notice')), 'title' => common_config('site', 'name').' Notice Search')); } - // MAY overload - + /** + * Show feed headers + * + * MAY overload + * + * @return nothing + */ function showFeeds() { // does nothing by default } - // SHOULD overload - + /** + * Show description. + * + * SHOULD overload + * + * @return nothing + */ function showDescription() { // does nothing by default } - // MAY overload - + /** + * Show extra stuff in <head>. + * + * MAY overload + * + * @return nothing + */ function extraHead() { // does nothing by default } + + /** + * Show body. + * + * Calls template methods + * + * @return nothing + */ function showBody() { $this->elementStart('body', array('id' => $this->trimmed('action'))); @@ -204,6 +267,13 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('body'); } + /** + * Show header of the page. + * + * Calls template methods + * + * @return nothing + */ function showHeader() { $this->elementStart('div', array('id' => 'header')); @@ -218,14 +288,18 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('div'); } + /** + * Show configured logo. + * + * @return nothing + */ function showLogo() { $this->elementStart('address', array('id' => 'site_contact', 'class' => 'vcard')); $this->elementStart('a', array('class' => 'url home bookmark', 'href' => common_local_url('public'))); - if (common_config('site', 'logo') || file_exists(theme_file('logo.png'))) - { + if (common_config('site', 'logo') || file_exists(theme_file('logo.png'))) { $this->element('img', array('class' => 'logo photo', 'src' => (common_config('site', 'logo')) ? common_config('site', 'logo') : theme_path('logo.png'), 'alt' => common_config('site', 'name'))); @@ -235,6 +309,11 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('address'); } + /** + * Show primary navigation. + * + * @return nothing + */ function showPrimaryNav() { $this->elementStart('dl', array('id' => 'site_nav_global_primary')); @@ -271,10 +350,15 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('dd'); $this->elementEnd('dl'); } - - // Revist. Should probably do an hAtom pattern here + + /** + * Show site notice. + * + * @return nothing + */ function showSiteNotice() { + // Revist. Should probably do an hAtom pattern here $text = common_config('site', 'notice'); if ($text) { $this->elementStart('dl', array('id' => 'site_notice', @@ -285,19 +369,38 @@ class Action extends HTMLOutputter // lawsuit } } - // MAY overload if no notice form needed... or direct message box???? - + /** + * Show notice form. + * + * MAY overload if no notice form needed... or direct message box???? + * + * @return nothing + */ function showNoticeForm() { $notice_form = new NoticeForm($this); $notice_form->show(); } - + + /** + * Show anonymous message. + * + * SHOULD overload + * + * @return nothing + */ function showAnonymousMessage() { // needs to be defined by the class } + /** + * Show core. + * + * Shows local navigation, content block and aside. + * + * @return nothing + */ function showCore() { $this->elementStart('div', array('id' => 'core')); @@ -307,6 +410,11 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('div'); } + /** + * Show local navigation block. + * + * @return nothing + */ function showLocalNavBlock() { $this->elementStart('dl', array('id' => 'site_nav_local_views')); @@ -317,13 +425,23 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('dl'); } - // SHOULD overload - + /** + * Show local navigation. + * + * SHOULD overload + * + * @return nothing + */ function showLocalNav() { // does nothing by default } + /** + * Show content block. + * + * @return nothing + */ function showContentBlock() { $this->elementStart('div', array('id' => 'content')); @@ -336,10 +454,21 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('div'); } - function showPageTitle() { - $this->element('h1', NULL, $this->title()); + /** + * Show page title. + * + * @return nothing + */ + function showPageTitle() + { + $this->element('h1', null, $this->title()); } + /** + * Show page notice block. + * + * @return nothing + */ function showPageNoticeBlock() { $this->elementStart('dl', array('id' => 'page_notice', @@ -349,20 +478,35 @@ class Action extends HTMLOutputter // lawsuit $this->showPageNotice(); $this->elementEnd('dd'); $this->elementEnd('dl'); - } - - // SHOULD overload (unless there's not a notice) + } + /** + * Show page notice. + * + * SHOULD overload (unless there's not a notice) + * + * @return nothing + */ function showPageNotice() { } - // MUST overload - + /** + * Show content. + * + * MUST overload (unless there's not a notice) + * + * @return nothing + */ function showContent() { } + /** + * Show Aside. + * + * @return nothing + */ function showAside() { $this->elementStart('div', array('id' => 'aside_primary', @@ -372,8 +516,13 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('div'); } - // MAY overload if there are feeds - + /** + * Show export data feeds. + * + * MAY overload if there are feeds + * + * @return nothing + */ function showExportData() { // is there structure to this? @@ -381,12 +530,23 @@ class Action extends HTMLOutputter // lawsuit // can we reuse list of feeds from showFeeds() ? } - // SHOULD overload - - function showSections() { + /** + * Show sections. + * + * SHOULD overload + * + * @return nothing + */ + function showSections() + { // for each section, show it } + /** + * Show footer. + * + * @return nothing + */ function showFooter() { $this->elementStart('div', array('id' => 'footer')); @@ -395,6 +555,11 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('div'); } + /** + * Show secondary navigation. + * + * @return nothing + */ function showSecondaryNav() { $this->elementStart('dl', array('id' => 'site_nav_global_secondary')); @@ -418,6 +583,11 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('dl'); } + /** + * Show licenses. + * + * @return nothing + */ function showLicenses() { $this->elementStart('dl', array('id' => 'licenses')); @@ -426,6 +596,11 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('dl'); } + /** + * Show Laconica license. + * + * @return nothing + */ function showLaconicaLicense() { $this->element('dt', array('id' => 'site_laconica_license'), _('Laconica software license')); @@ -442,6 +617,11 @@ class Action extends HTMLOutputter // lawsuit // do it } + /** + * Show content license. + * + * @return nothing + */ function showContentLicense() { $this->element('dt', array('id' => 'site_content_license'), _('Laconica software license')); @@ -461,24 +641,52 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('dd'); } - // For comparison with If-Last-Modified - // If not applicable, return null - + /** + * Return last modified, if applicable. + * + * MAY override + * + * @return string last modified http header + */ function lastModified() { + // For comparison with If-Last-Modified + // If not applicable, return null return null; } + /** + * Return etag, if applicable. + * + * MAY override + * + * @return string etag http header + */ function etag() { return null; } + /** + * Return true if read only. + * + * MAY override + * + * @return boolean is read only action? + */ function isReadOnly() { return false; } + /** + * Returns query argument or default value if not found + * + * @param string $key requested argument + * @param string $def default value to return if $key is not provided + * + * @return boolean is read only action? + */ function arg($key, $def=null) { if (array_key_exists($key, $this->args)) { @@ -488,24 +696,34 @@ class Action extends HTMLOutputter // lawsuit } } + /** + * Returns trimmed query argument or default value if not found + * + * @param string $key requested argument + * @param string $def default value to return if $key is not provided + * + * @return boolean is read only action? + */ function trimmed($key, $def=null) { $arg = $this->arg($key, $def); - return (is_string($arg)) ? trim($arg) : $arg; + return is_string($arg) ? trim($arg) : $arg; } - // Note: argarray ignored, since it's now passed in in prepare() - + /** + * Handler method + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return boolean is read only action? + */ function handle($argarray=null) { - - $lm = $this->lastModified(); + $lm = $this->lastModified(); $etag = $this->etag(); - if ($etag) { header('ETag: ' . $etag); } - if ($lm) { header('Last-Modified: ' . date(DATE_RFC1123, $lm)); $if_modified_since = $_SERVER['HTTP_IF_MODIFIED_SINCE']; @@ -523,11 +741,27 @@ class Action extends HTMLOutputter // lawsuit } } + /** + * HasĀ etag? (private) + * + * @param string $etag etag http header + * @param string $if_none_match ifNoneMatch http header + * + * @return boolean + */ function _hasEtag($etag, $if_none_match) { return ($if_none_match) && in_array($etag, explode(',', $if_none_match)); } + /** + * Boolean understands english (yes, no, true, false) + * + * @param string $key query key we're interested in + * @param string $def default value + * + * @return boolean interprets yes/no strings as boolean + */ function boolean($key, $def=false) { $arg = strtolower($this->trimmed($key)); @@ -543,6 +777,14 @@ class Action extends HTMLOutputter // lawsuit } } + /** + * Server error + * + * @param string $msg error message to display + * @param integer $code http error code, 500 by default + * + * @return nothing + */ function serverError($msg, $code=500) { $action = $this->trimmed('action'); @@ -550,6 +792,14 @@ class Action extends HTMLOutputter // lawsuit common_server_error($msg, $code); } + /** + * Client error + * + * @param string $msg error message to display + * @param integer $code http error code, 400 by default + * + * @return nothing + */ function clientError($msg, $code=400) { $action = $this->trimmed('action'); @@ -557,10 +807,15 @@ class Action extends HTMLOutputter // lawsuit common_user_error($msg, $code); } + /** + * Returns the current URL + * + * @return string current URL + */ function selfUrl() { $action = $this->trimmed('action'); - $args = $this->args; + $args = $this->args; unset($args['action']); foreach (array_keys($_COOKIE) as $cookie) { unset($args[$cookie]); @@ -568,11 +823,21 @@ class Action extends HTMLOutputter // lawsuit return common_local_url($action, $args); } - // Added @id to li for some control. - // XXX: We might want to move this to htmloutputter.php - + /** + * Generate a menu item + * + * @param string $url menu URL + * @param string $text menu name + * @param string $title title attribute, null by default + * @param boolean $is_selected current menu item, false by default + * @param string $id element id, null by default + * + * @return nothing + */ function menuItem($url, $text, $title=null, $is_selected=false, $id=null) { + // Added @id to li for some control. + // XXX: We might want to move this to htmloutputter.php $lattrs = array(); if ($is_selected) { $lattrs['class'] = 'current'; @@ -589,10 +854,20 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('li'); } - // Does a little before-after block for next/prev page - + /** + * Generate pagination links + * + * @param boolean $have_before is there something before? + * @param boolean $have_after is there something after? + * @param integer $page current page + * @param string $action current action + * @param array $args rest of query arguments + * + * @return nothing + */ function pagination($have_before, $have_after, $page, $action, $args=null) { + // Does a little before-after block for next/prev page if ($have_before || $have_after) { $this->elementStart('div', array('class' => 'pagination')); $this->elementStart('dl', null); @@ -600,26 +875,22 @@ class Action extends HTMLOutputter // lawsuit $this->elementStart('dd', null); $this->elementStart('ul', array('class' => 'nav')); } - if ($have_before) { - $pargs = array('page' => $page-1); - $newargs = ($args) ? array_merge($args,$pargs) : $pargs; - + $pargs = array('page' => $page-1); + $newargs = $args ? array_merge($args, $pargs) : $pargs; $this->elementStart('li', array('class' => 'nav_prev')); $this->element('a', array('href' => common_local_url($action, $newargs), 'rel' => 'prev'), _('After')); $this->elementEnd('li'); } - if ($have_after) { - $pargs = array('page' => $page+1); - $newargs = ($args) ? array_merge($args,$pargs) : $pargs; + $pargs = array('page' => $page+1); + $newargs = $args ? array_merge($args, $pargs) : $pargs; $this->elementStart('li', array('class' => 'nav_next')); $this->element('a', array('href' => common_local_url($action, $newargs), 'rel' => 'next'), _('Before')); $this->elementEnd('li'); } - if ($have_before || $have_after) { $this->elementEnd('ul'); $this->elementEnd('dd'); diff --git a/lib/blockform.php b/lib/blockform.php index ea22c1cec..af766b823 100644 --- a/lib/blockform.php +++ b/lib/blockform.php @@ -150,6 +150,6 @@ class BlockForm extends Form function formActions() { - $this->out->submit('submit', _('block'), 'submit', null, _('Block this user')); + $this->out->submit('submit', _('Block'), 'submit', null, _('Block this user')); } } diff --git a/lib/groupeditform.php b/lib/groupeditform.php index f6e326078..14205d250 100644 --- a/lib/groupeditform.php +++ b/lib/groupeditform.php @@ -78,9 +78,9 @@ class GroupEditForm extends Form function id() { if ($this->group) { - return 'group_edit-' . $this->group->id; + return 'form_group_edit-' . $this->group->id; } else { - return 'group_add'; + return 'form_group_add'; } } @@ -92,7 +92,7 @@ class GroupEditForm extends Form function formClass() { - return 'form_group_add'; + return 'form_settings'; } /** @@ -111,6 +111,18 @@ class GroupEditForm extends Form } } + + /** + * Name of the form + * + * @return void + */ + + function formLegend() + { + $this->out->element('legend', null, _('Create a new group')); + } + /** * Data elements of the form * diff --git a/lib/groupminilist.php b/lib/groupminilist.php index e4d4c68fd..fe38d0340 100644 --- a/lib/groupminilist.php +++ b/lib/groupminilist.php @@ -49,7 +49,7 @@ class GroupMiniList extends GroupList { function show() { - $this->out->elementStart('ul', 'groups'); + $this->out->elementStart('ul', 'entities groups xoxo'); $cnt = 0; @@ -73,7 +73,7 @@ class GroupMiniList extends GroupList $this->group->fullname : $this->group->nickname, 'href' => $this->group->homeUrl(), - 'rel' => 'contact', + 'rel' => 'contact group', 'class' => 'url')); $logo = ($this->group->stream_logo) ? $this->group->stream_logo : User_group::defaultLogo(AVATAR_STREAM_SIZE); @@ -85,7 +85,7 @@ class GroupMiniList extends GroupList 'alt' => ($this->group->fullname) ? $this->group->fullname : $this->group->nickname)); - $this->out->element('span', 'fn nickname', $this->group->nickname); + $this->out->element('span', 'fn org nickname', $this->group->nickname); $this->out->elementEnd('a'); $this->out->elementEnd('li'); } diff --git a/lib/profilelist.php b/lib/profilelist.php index f7ed5d19c..73c129efe 100644 --- a/lib/profilelist.php +++ b/lib/profilelist.php @@ -93,8 +93,7 @@ class ProfileList extends Widget $user = common_current_user(); - $this->out->elementStart('div', array('id' => 'user_profile', - 'class' => 'vcard')); + $this->out->elementStart('div', 'entity_profile vcard'); $avatar = $this->profile->getAvatar(AVATAR_STREAM_SIZE); $this->out->elementStart('a', array('href' => $this->profile->profileurl, @@ -113,7 +112,7 @@ class ProfileList extends Widget $this->out->elementEnd('a'); if ($this->profile->fullname) { - $this->out->elementStart('dl', 'user_fn'); + $this->out->elementStart('dl', 'entity_fn'); $this->out->element('dt', null, 'Full name'); $this->out->elementStart('dd'); $this->out->elementStart('span', 'fn'); @@ -123,7 +122,7 @@ class ProfileList extends Widget $this->out->elementEnd('dl'); } if ($this->profile->location) { - $this->out->elementStart('dl', 'user_location'); + $this->out->elementStart('dl', 'entity_location'); $this->out->element('dt', null, _('Location')); $this->out->elementStart('dd', 'location'); $this->out->raw($this->highlight($this->profile->location)); @@ -131,7 +130,7 @@ class ProfileList extends Widget $this->out->elementEnd('dl'); } if ($this->profile->homepage) { - $this->out->elementStart('dl', 'user_url'); + $this->out->elementStart('dl', 'entity_url'); $this->out->element('dt', null, _('URL')); $this->out->elementStart('dd'); $this->out->elementStart('a', array('href' => $this->profile->homepage, @@ -142,7 +141,7 @@ class ProfileList extends Widget $this->out->elementEnd('dl'); } if ($this->profile->bio) { - $this->out->elementStart('dl', 'user_note'); + $this->out->elementStart('dl', 'entity_note'); $this->out->element('dt', null, _('Note')); $this->out->elementStart('dd', 'note'); $this->out->raw($this->highlight($this->profile->bio)); @@ -156,7 +155,7 @@ class ProfileList extends Widget # Get tags $tags = Profile_tag::getTags($this->owner->id, $this->profile->id); - $this->out->elementStart('dl', 'user_tags'); + $this->out->elementStart('dl', 'entity_tags'); $this->out->elementStart('dt'); if ($user->id == $this->owner->id) { $this->out->element('a', array('href' => common_local_url('tagother', diff --git a/lib/profileminilist.php b/lib/profileminilist.php index c6970f808..56b768419 100644 --- a/lib/profileminilist.php +++ b/lib/profileminilist.php @@ -49,7 +49,7 @@ class ProfileMiniList extends ProfileList { function show() { - $this->out->elementStart('ul', 'users'); + $this->out->elementStart('ul', 'entities users xoxo'); $cnt = 0; @@ -73,7 +73,7 @@ class ProfileMiniList extends ProfileList $this->profile->fullname : $this->profile->nickname, 'href' => $this->profile->profileurl, - 'rel' => 'contact', + 'rel' => 'contact member', 'class' => 'url')); $avatar = $this->profile->getAvatar(AVATAR_MINI_SIZE); $this->out->element('img', array('src' => (($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_MINI_SIZE)), diff --git a/theme/base/css/display.css b/theme/base/css/display.css index cfe445a98..253cbfa38 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -149,7 +149,9 @@ font-weight:bold; #form_login legend, #form_register legend, #form_password legend, -#form_settings_avatar legend { +#form_settings_avatar legend, +#newgroup legend, +#editgroup legend { display:none; } @@ -189,6 +191,8 @@ border-radius:4px; padding:0 7px; } + + /* FORM SETTINGS */ @@ -445,7 +449,7 @@ margin-left:4px; #form_notice .form_note { position:absolute; -top:120px; +top:118px; right:98px; z-index:9; } @@ -457,6 +461,7 @@ display:none; #notice_text-count { font-weight:bold; line-height:1.15; +padding:1px 2px; } #form_notice #notice_data-attach_view { @@ -504,8 +509,8 @@ float:left; -/* user_profile */ -#user_profile { +/* entity_profile */ +.entity_profile { position:relative; width:475px; min-height:123px; @@ -513,23 +518,23 @@ float:left; margin-bottom:17px; margin-left:0; } -#user_profile dt, -#user_statistics dt { +.entity_profile dt, +#entity_statistics dt { font-weight:bold; } -#user_profile .user_depiction { +.entity_profile .entity_depiction { float:left; position:absolute; top:0; left:0; width:96px; } -#user_profile .user_fn, -#user_profile .user_nickname, -#user_profile .user_location, -#user_profile .user_url, -#user_profile .user_note, -#user_profile .user_tags { +.entity_profile .entity_fn, +.entity_profile .entity_nickname, +.entity_profile .entity_location, +.entity_profile .entity_url, +.entity_profile .entity_note, +.entity_profile .entity_tags { float:left; clear:left; margin-left:113px; @@ -537,81 +542,81 @@ width:322px; margin-bottom:4px; } -#user_profile .user_fn, -#user_profile .user_nickname { +.entity_profile .entity_fn, +.entity_profile .entity_nickname { width:auto; clear:none; } -#user_profile .user_fn { +.entity_profile .entity_fn { margin-left:11px; margin-right:4px; } -#user_profile .user_fn .fn { +.entity_profile .entity_fn .fn { font-weight:bold; font-style:normal; } -#user_profile .nickname { +.entity_profile .nickname { font-style:italic; font-weight:bold; } -#user_profile .user_fn dd:before { +.entity_profile .entity_fn dd:before { content: "("; font-weight:normal; } -#user_profile .user_fn dd:after { +.entity_profile .entity_fn dd:after { content: ")"; font-weight:normal; } -#user_profile dt { +.entity_profile dt { display:none; } -#user_profile h2 { +.entity_profile h2 { display:none; } -/* user_profile */ +/* entity_profile */ -/*user_actions*/ -#user_actions { +/*entity_actions*/ +.entity_actions { clear:left; float:left; position:absolute; top:0; right:0; } -#user_actions h2 { +.entity_actions h2 { display:none; } -#user_actions ul { +.entity_actions ul { list-style-type:none; } -#user_actions li { +.entity_actions li { margin-bottom:4px; } -#user_actions li:first-child { +.entity_actions li:first-child { border-top:0; } -#user_actions fieldset { +.entity_actions fieldset { border:0; padding:0; } -#user_actions legend { +.entity_actions legend { display:none; } -#user_actions input.submit { +.entity_actions input.submit { display:block; text-align:left; cursor:pointer; width:100%; } -#user_actions a { +.entity_actions a { text-decoration:none; font-weight:bold; width:100%; @@ -622,35 +627,22 @@ display:block; .form_user_block input.submit, .form_user_unblock input.submit, -#user_send-a-message a, +#entity_send-a-message a, .form_user_nudge input.submit { border:0; padding-left:20px; } -#user_send-a-message a { +#entity_send-a-message a { padding:4px 4px 4px 23px; - } -#user_subscribe input.submit, -.form_user_subscribe input.submit { - -} - - - -#user_send-a-message form { -} - -#user_send-a-message textarea { -} -.user_tags ul { +.entity_tags ul { list-style-type:none; } -.user_tags li { +.entity_tags li { display:inline; margin-right:1em; float:left; @@ -661,41 +653,43 @@ float:left; .aside .section { margin-bottom:29px; clear:both; +float:left; +width:100%; } .aside .section h2 { text-transform:uppercase; font-size:1em; } -#user_statistics dt, -#user_statistics dd { +#entity_statistics dt, +#entity_statistics dd { display:inline; } -#user_statistics dt:after { +#entity_statistics dt:after { content: ":"; } #user_subscriptions, -#user_subscriptions-common { -float:left; +#user_subscribers, +#user_groups, { + } -#user_subscriptions ul.users { +.section ul.entities { width:220px; float:left; } -#user_subscriptions .users li { +.section .entities li { list-style-type:none; float:left; margin-right:7px; margin-bottom:7px; } -#user_subscriptions .users li .photo { -width:24px; -height:24px; +.section .entities li .photo { margin-right:0; +margin-bottom:0; } -#user_subscriptions .users li .fn { +.section .entities li .fn { display:none; } .aside .section .more { @@ -704,29 +698,36 @@ clear:both; -.profile #user_profile { +.profile .entity_profile { margin-bottom:0; min-height:60px; } +.profile .form_user_subscribe, .profile .form_user_unsubscribe { float:right; } +.profile .form_user_subscribe legend, +.profile .form_user_unsubscribe legend { +display:none; +} + + .profiles { list-style-type:none; } -.profile #user_profile .user_location { +.profile .entity_profile .entity_location { width:auto; clear:none; margin-left:11px; } -.profile #user_profile dl, -.profile #user_profile dd { +.profile .entity_profile dl, +.profile .entity_profile dd { display:inline; float:none; } -.profile #user_profile .user_note, -.profile #user_profile .user_url { +.profile .entity_profile .entity_note, +.profile .entity_profile .entity_url { margin-left:59px; clear:none; display:block; @@ -1051,9 +1052,9 @@ background-color:#D1D9E4; -#user_actions #user_subscribe .form_note, -#user_actions #user_subscribe .form_data, -#user_actions #user_subscribe .form_actions label { +.entity_actions #user_subscribe .form_note, +.entity_actions #user_subscribe .form_data, +.entity_actions #user_subscribe .form_actions label { display:none; } #form_user-relationship .form_note, @@ -1062,7 +1063,7 @@ display:none; display:block; } -#user_actions #user-relationship_submit { +.entity_actions #user-relationship_submit { margin-bottom:0; } #form_user-relationship .form_data li label { @@ -1193,34 +1194,34 @@ margin-bottom:0; -.section .groups, +#groups_related ul, #users_featured ul { list-style-type:none; } -.section .groups li, +#groups_related li, #users_featured li { margin-top:11px; float:left; width:100%; } -.section .groups li:first-child, +#groups_related li:first-child, #users_featured li:first-child { margin-top:0; } -.section .groups .vcard, +#groups_related .vcard, #users_featured .vcard { float:left; margin-bottom:-23px; } -.section .groups dl, +#groups_related dl, #users_featured dl { float:left; margin-left:63px; clear:left; } -.section .groups dt, +#groups_related dt, #users_featured dt { display:none; font-weight:bold; diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index 2b91c5504..c702c77e6 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -42,7 +42,7 @@ a, div.notice-options input, .form_user_block input.submit, .form_user_unblock input.submit, -#user_send-a-message a, +#entity_send-a-message a, .form_user_nudge input.submit { color:#002E6E; } @@ -55,7 +55,7 @@ background-color:#fcfffc; } #aside_primary, -#user_subscribe a, +#entity_subscribe a, #TB_window input.submit, .form_user_subscribe input.submit { background-color:#CEE1E9; @@ -132,7 +132,7 @@ background-image:url(../../base/images/icons/icon_vcard.gif); } -#user_send-a-message a, +#entity_send-a-message a, .form_user_nudge input.submit, .form_user_block input.submit, .form_user_unblock input.submit { @@ -149,7 +149,7 @@ color:#fff; background-color:#97BFD1; } -#user_send-a-message a { +#entity_send-a-message a { background-image:url(../images/icons/twotone/green/quote.gif); } .form_user_nudge input.submit { |