From 6e2f04583728714ff937eb1fa3ab34e99bcdb6a6 Mon Sep 17 00:00:00 2001 From: Meitar Moscovitz Date: Mon, 9 Feb 2009 00:02:51 +1100 Subject: [PATCH 01/19] Add machine-readable pagination using HTML4.01 ``, etc. These extra `` elements only appear on pages where pagination makes sense. They trigger functionality in some user agents, such as Opera's Navigation Bar for more easily navigating forward and backwards across a paged set of notices, messages, or group lists, etc. --- actions/all.php | 22 ++++++++++++++++++++++ actions/favorited.php | 20 ++++++++++++++++++++ actions/groupmembers.php | 24 +++++++++++++++++++++++- actions/groups.php | 20 ++++++++++++++++++++ actions/inbox.php | 22 ++++++++++++++++++++++ actions/outbox.php | 22 ++++++++++++++++++++++ actions/public.php | 20 ++++++++++++++++++++ actions/replies.php | 22 ++++++++++++++++++++++ actions/showfavorites.php | 22 ++++++++++++++++++++++ actions/showgroup.php | 22 ++++++++++++++++++++++ actions/showstream.php | 22 ++++++++++++++++++++++ actions/tag.php | 22 ++++++++++++++++++++++ lib/action.php | 14 ++++++++++++++ 13 files changed, 273 insertions(+), 1 deletion(-) diff --git a/actions/all.php b/actions/all.php index d75d1b9461..76b1bbcdf8 100644 --- a/actions/all.php +++ b/actions/all.php @@ -78,6 +78,28 @@ class AllAction extends Action 'title' => sprintf(_('Feed for friends of %s'), $this->user->nickname))); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('all', + array('nickname' => $this->user->nickname, + 'page' => $this->page - 1)), + 'title' => _('Next Notices'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('all', + array('nickname' => $this->user->nickname, + 'page' => $this->page + 1)), + 'title' => _('Previous Notices'))); + } + function showLocalNav() { $nav = new PersonalGroupNav($this); diff --git a/actions/favorited.php b/actions/favorited.php index fd5ff413cb..367fb6dd69 100644 --- a/actions/favorited.php +++ b/actions/favorited.php @@ -195,4 +195,24 @@ class FavoritedAction extends Action $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, $this->page, 'favorited'); } + + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('favorited', + array('page' => $this->page - 1)), + 'title' => _('Next Notices'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('favorited', + array('page' => $this->page + 1)), + 'title' => _('Previous Notices'))); + } } diff --git a/actions/groupmembers.php b/actions/groupmembers.php index 00f43a9f55..2b2bdba93d 100644 --- a/actions/groupmembers.php +++ b/actions/groupmembers.php @@ -137,4 +137,26 @@ class GroupmembersAction extends Action $this->page, 'groupmembers', array('nickname' => $this->group->nickname)); } -} \ No newline at end of file + + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('groupmembers', + array('nickname' => $this->group->nickname, + 'page' => $this->page - 1)), + 'title' => _('Next Group Members'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('groupmembers', + array('nickname' => $this->group->nickname, + 'page' => $this->page + 1)), + 'title' => _('Previous Group Members'))); + } +} diff --git a/actions/groups.php b/actions/groups.php index 39dc2232bc..b0bf7cfc2a 100644 --- a/actions/groups.php +++ b/actions/groups.php @@ -129,4 +129,24 @@ class GroupsAction extends Action $gbm = new GroupsByMembersSection($this); $gbm->show(); } + + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('groups', + array('page' => $this->page - 1)), + 'title' => _('Next Groups'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('groups', + array('page' => $this->page + 1)), + 'title' => _('Previous Groups'))); + } } diff --git a/actions/inbox.php b/actions/inbox.php index b553ab26ca..d12f3f20ae 100644 --- a/actions/inbox.php +++ b/actions/inbox.php @@ -63,6 +63,28 @@ class InboxAction extends MailboxAction } } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('inbox', + array('nickname' => $this->user->nickname, + 'page' => $this->page - 1)), + 'title' => _('Next Messages'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('inbox', + array('nickname' => $this->user->nickname, + 'page' => $this->page + 1)), + 'title' => _('Previous Messages'))); + } + /** * Retrieve the messages for this user and this page * diff --git a/actions/outbox.php b/actions/outbox.php index c8d7f28125..043b74edc4 100644 --- a/actions/outbox.php +++ b/actions/outbox.php @@ -62,6 +62,28 @@ class OutboxAction extends MailboxAction } } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('outbox', + array('nickname' => $this->user->nickname, + 'page' => $this->page - 1)), + 'title' => _('Next Messages'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('outbox', + array('nickname' => $this->user->nickname, + 'page' => $this->page + 1)), + 'title' => _('Previous Messages'))); + } + /** * retrieve the messages for this user and this page * diff --git a/actions/public.php b/actions/public.php index cc6537f74f..25889eee5a 100644 --- a/actions/public.php +++ b/actions/public.php @@ -127,6 +127,26 @@ class PublicAction extends Action 'title' => _('Public Stream Feed'))); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('public', + array('page' => $this->page - 1)), + 'title' => _('Next Notices'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('public', + array('page' => $this->page + 1)), + 'title' => _('Previous Notices'))); + } + /** * Extra head elements * diff --git a/actions/replies.php b/actions/replies.php index 7eff74a669..5ae99e1652 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -141,6 +141,28 @@ class RepliesAction extends Action 'title' => $rsstitle)); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('replies', + array('nickname' => $this->user->nickname, + 'page' => $this->page - 1)), + 'title' => _('Next Notices'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('replies', + array('nickname' => $this->user->nickname, + 'page' => $this->page + 1)), + 'title' => _('Previous Notices'))); + } + /** * show the personal group nav * diff --git a/actions/showfavorites.php b/actions/showfavorites.php index 31479e1a78..f0297172a6 100644 --- a/actions/showfavorites.php +++ b/actions/showfavorites.php @@ -153,6 +153,28 @@ class ShowfavoritesAction extends Action 'title' => $feedtitle)); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('showfavorites', + array('nickname' => $this->user->nickname, + 'page' => $this->page - 1)), + 'title' => _('Next Favorite Notices'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('showfavorites', + array('nickname' => $this->user->nickname, + 'page' => $this->page + 1)), + 'title' => _('Previous Favorite Notices'))); + } + /** * show the personal group nav * diff --git a/actions/showgroup.php b/actions/showgroup.php index 7bc68fbc64..7599a8de6e 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -326,6 +326,28 @@ class ShowgroupAction extends Action $this->group->nickname))); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('showgroup', + array('nickname' => $this->group->nickname, + 'page' => $this->page - 1)), + 'title' => _('Next Notices'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('showgroup', + array('nickname' => $this->group->nickname, + 'page' => $this->page + 1)), + 'title' => _('Previous Notices'))); + } + /** * Fill in the sidebar. * diff --git a/actions/showstream.php b/actions/showstream.php index 28bb8453f8..11615ebb0d 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -195,6 +195,28 @@ class ShowstreamAction extends Action $this->user->nickname))); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('showstream', + array('nickname' => $this->user->nickname, + 'page' => $this->page - 1)), + 'title' => _('Next Notices'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('showstream', + array('nickname' => $this->user->nickname, + 'page' => $this->page + 1)), + 'title' => _('Previous Notices'))); + } + function extraHead() { // FOAF diff --git a/actions/tag.php b/actions/tag.php index 4401f892a9..f71f6d342f 100644 --- a/actions/tag.php +++ b/actions/tag.php @@ -69,6 +69,28 @@ class TagAction extends Action 'title' => sprintf(_('Feed for tag %s'), $this->tag))); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + // Machine-readable pagination + if ($this->page > 1) { + $this->element('link', array('rel' => 'next', + 'href' => common_local_url('tag', + array('tag' => $this->tag, + 'page' => $this->page - 1)), + 'title' => _('Next Notices'))); + } + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url('tag', + array('tag' => $this->tag, + 'page' => $this->page + 1)), + 'title' => _('Previous Notices'))); + } + function showPageNotice() { return sprintf(_('Messages tagged "%s", most recent first'), $this->tag); diff --git a/lib/action.php b/lib/action.php index c4172ada11..ab51d0252c 100644 --- a/lib/action.php +++ b/lib/action.php @@ -111,6 +111,7 @@ class Action extends HTMLOutputter // lawsuit $this->showTitle(); $this->showStylesheets(); $this->showScripts(); + $this->showRelationshipLinks(); $this->showOpenSearch(); $this->showFeeds(); $this->showDescription(); @@ -193,6 +194,19 @@ class Action extends HTMLOutputter // lawsuit ' '); } + /** + * Show document relationship links + * + * SHOULD overload + * + * @return nothing + */ + function showRelationshipLinks() + { + // output elements with appropriate HTML4.01 link types: + // http://www.w3.org/TR/html401/types.html#type-links + } + /** * Show OpenSearch headers * From b240a1719485b15c4a6497b6053c24e8a40a4e3c Mon Sep 17 00:00:00 2001 From: Meitar Moscovitz Date: Tue, 10 Feb 2009 19:42:01 +1100 Subject: [PATCH 02/19] Beginning to refactor document relationship links to reduce common code. My attempts here are to mimic the `pagination()` method shared by actions. I'm tentatively adding the `$count` property to actions so that we can query the number of notices ''being displayed'' per page prior to calling the actual `pagination()` method itself, since document relationship `` elements need to be output inside of `showHead()`, before `showContent()`, which is where `pagination()` is, gets called. --- actions/all.php | 15 ++------------- actions/favorited.php | 13 ++----------- actions/groupmembers.php | 15 ++------------- actions/groups.php | 13 ++----------- actions/inbox.php | 15 ++------------- actions/outbox.php | 15 ++------------- actions/public.php | 25 ++++++++++++++----------- actions/replies.php | 15 ++------------- actions/showfavorites.php | 16 +++------------- actions/showgroup.php | 15 ++------------- actions/showstream.php | 15 ++------------- actions/tag.php | 15 ++------------- lib/action.php | 34 ++++++++++++++++++++++++++++++++++ 13 files changed, 71 insertions(+), 150 deletions(-) diff --git a/actions/all.php b/actions/all.php index 76b1bbcdf8..4a625207a4 100644 --- a/actions/all.php +++ b/actions/all.php @@ -85,19 +85,8 @@ class AllAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('all', - array('nickname' => $this->user->nickname, - 'page' => $this->page - 1)), - 'title' => _('Next Notices'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('all', - array('nickname' => $this->user->nickname, - 'page' => $this->page + 1)), - 'title' => _('Previous Notices'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'all', array('nickname' => $this->user->nickname)); } function showLocalNav() diff --git a/actions/favorited.php b/actions/favorited.php index 367fb6dd69..74920ca7e4 100644 --- a/actions/favorited.php +++ b/actions/favorited.php @@ -203,16 +203,7 @@ class FavoritedAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('favorited', - array('page' => $this->page - 1)), - 'title' => _('Next Notices'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('favorited', - array('page' => $this->page + 1)), - 'title' => _('Previous Notices'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'favorited'); } } diff --git a/actions/groupmembers.php b/actions/groupmembers.php index 2b2bdba93d..b80f3d90d1 100644 --- a/actions/groupmembers.php +++ b/actions/groupmembers.php @@ -145,18 +145,7 @@ class GroupmembersAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('groupmembers', - array('nickname' => $this->group->nickname, - 'page' => $this->page - 1)), - 'title' => _('Next Group Members'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('groupmembers', - array('nickname' => $this->group->nickname, - 'page' => $this->page + 1)), - 'title' => _('Previous Group Members'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'groupmembers', array('nickname' => $this->group->nickname)); } } diff --git a/actions/groups.php b/actions/groups.php index b0bf7cfc2a..e158698de2 100644 --- a/actions/groups.php +++ b/actions/groups.php @@ -137,16 +137,7 @@ class GroupsAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('groups', - array('page' => $this->page - 1)), - 'title' => _('Next Groups'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('groups', - array('page' => $this->page + 1)), - 'title' => _('Previous Groups'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'groups', array('nickname' => $this->group->nickname)); } } diff --git a/actions/inbox.php b/actions/inbox.php index d12f3f20ae..7b5cf2d203 100644 --- a/actions/inbox.php +++ b/actions/inbox.php @@ -70,19 +70,8 @@ class InboxAction extends MailboxAction */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('inbox', - array('nickname' => $this->user->nickname, - 'page' => $this->page - 1)), - 'title' => _('Next Messages'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('inbox', - array('nickname' => $this->user->nickname, - 'page' => $this->page + 1)), - 'title' => _('Previous Messages'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'inbox', array('nickname' => $this->user->nickname)); } /** diff --git a/actions/outbox.php b/actions/outbox.php index 043b74edc4..deef1cc870 100644 --- a/actions/outbox.php +++ b/actions/outbox.php @@ -69,19 +69,8 @@ class OutboxAction extends MailboxAction */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('outbox', - array('nickname' => $this->user->nickname, - 'page' => $this->page - 1)), - 'title' => _('Next Messages'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('outbox', - array('nickname' => $this->user->nickname, - 'page' => $this->page + 1)), - 'title' => _('Previous Messages'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'outbox', array('nickname' => $this->user->nickname)); } /** diff --git a/actions/public.php b/actions/public.php index 25889eee5a..eb2a4b1b00 100644 --- a/actions/public.php +++ b/actions/public.php @@ -56,6 +56,18 @@ class PublicAction extends Action var $page = null; + /** + * Number of notices being shown on this page. + */ + // Does this need to be here? Should it be? + // If it does, this property needs to be + // added to other actions as well, like $page. + // I'm trying to find a way to capture the + // output of the $cnt variable from this + // action's showContent() method but need + // to do so earlier, I think...? + var $count = null; + function isReadOnly() { return true; @@ -134,17 +146,8 @@ class PublicAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('public', - array('page' => $this->page - 1)), - 'title' => _('Next Notices'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('public', - array('page' => $this->page + 1)), - 'title' => _('Previous Notices'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'public'); } /** diff --git a/actions/replies.php b/actions/replies.php index 5ae99e1652..7c24b554e0 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -148,19 +148,8 @@ class RepliesAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('replies', - array('nickname' => $this->user->nickname, - 'page' => $this->page - 1)), - 'title' => _('Next Notices'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('replies', - array('nickname' => $this->user->nickname, - 'page' => $this->page + 1)), - 'title' => _('Previous Notices'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'replies', array('nickname' => $this->user->nickname)); } /** diff --git a/actions/showfavorites.php b/actions/showfavorites.php index f0297172a6..585b3b75ab 100644 --- a/actions/showfavorites.php +++ b/actions/showfavorites.php @@ -160,21 +160,11 @@ class ShowfavoritesAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('showfavorites', - array('nickname' => $this->user->nickname, - 'page' => $this->page - 1)), - 'title' => _('Next Favorite Notices'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('showfavorites', - array('nickname' => $this->user->nickname, - 'page' => $this->page + 1)), - 'title' => _('Previous Favorite Notices'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'showfavorites', array('nickname' => $this->user->nickname)); } + /** * show the personal group nav * diff --git a/actions/showgroup.php b/actions/showgroup.php index 7599a8de6e..a2b40f9948 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -333,19 +333,8 @@ class ShowgroupAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('showgroup', - array('nickname' => $this->group->nickname, - 'page' => $this->page - 1)), - 'title' => _('Next Notices'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('showgroup', - array('nickname' => $this->group->nickname, - 'page' => $this->page + 1)), - 'title' => _('Previous Notices'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'showgroup', array('nickname' => $this->group->nickname)); } /** diff --git a/actions/showstream.php b/actions/showstream.php index 0c8fea1821..1779c70f2c 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -202,19 +202,8 @@ class ShowstreamAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('showstream', - array('nickname' => $this->user->nickname, - 'page' => $this->page - 1)), - 'title' => _('Next Notices'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('showstream', - array('nickname' => $this->user->nickname, - 'page' => $this->page + 1)), - 'title' => _('Previous Notices'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'showstream', array('nickname' => $this->user->nickname)); } function extraHead() diff --git a/actions/tag.php b/actions/tag.php index f71f6d342f..2a564a25d4 100644 --- a/actions/tag.php +++ b/actions/tag.php @@ -76,19 +76,8 @@ class TagAction extends Action */ function showRelationshipLinks() { - // Machine-readable pagination - if ($this->page > 1) { - $this->element('link', array('rel' => 'next', - 'href' => common_local_url('tag', - array('tag' => $this->tag, - 'page' => $this->page - 1)), - 'title' => _('Next Notices'))); - } - $this->element('link', array('rel' => 'prev', - 'href' => common_local_url('tag', - array('tag' => $this->tag, - 'page' => $this->page + 1)), - 'title' => _('Previous Notices'))); + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'tag', array('tag' => $this->tag)); } function showPageNotice() diff --git a/lib/action.php b/lib/action.php index 8d0fea7afd..80a8969fa2 100644 --- a/lib/action.php +++ b/lib/action.php @@ -938,4 +938,38 @@ class Action extends HTMLOutputter // lawsuit $this->elementEnd('div'); } } + + /** + * Generate document metadata for sequential navigation + * + * @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 sequenceRelationships($have_next, $have_previous, $page, $action, $args=null) + { + // Outputs machine-readable pagination in elements. + // Pattern taken from $this->pagination() method. + + // "next" is equivalent to "after" + if ($have_next) { + $pargs = array('page' => $page-1); + $newargs = $args ? array_merge($args, $pargs) : $pargs; + $this->element('link', array('rel' => 'next', + 'href' => common_local_url($action, $newargs), + 'title' => _('Next'))); + } + // "previous" is equivalent to "before" + if ($have_previous=true) { // FIXME + $pargs = array('page' => $page+1); + $newargs = $args ? array_merge($args, $pargs) : $pargs; + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url($action, $newargs), + 'title' => _('Previous'))); + } + } } From 1ba3ac9ee3f00472e0b7f8f25955967ab816a3fd Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Sun, 8 Mar 2009 08:45:32 +0100 Subject: [PATCH 03/19] Make OMB work if the configured domain name does not exclusively contain lower case letters. If the configured domain is mixed-case OAuth throws invalidsignature errors. The current URL is part of the signated parts; since the consumer does not pass the current URL, the service has to get it itself and add it to the other OAuth params for signature rebuilding. OAuth.php uses $_SERVER for this, however, the domain is lcased in $_SERVER. Hence we pass the complete current URL as generated by common_local_url to OAuthRequest. --- actions/accesstoken.php | 2 +- actions/finishremotesubscribe.php | 2 +- actions/postnotice.php | 2 +- actions/requesttoken.php | 2 +- actions/updateprofile.php | 2 +- actions/userauthorization.php | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/actions/accesstoken.php b/actions/accesstoken.php index 77fdf6aefa..bb68d3314d 100644 --- a/actions/accesstoken.php +++ b/actions/accesstoken.php @@ -59,7 +59,7 @@ class AccesstokenAction extends Action try { common_debug('getting request from env variables', __FILE__); common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_locale_url('accesstoken')); common_debug('getting a server', __FILE__); $server = omb_oauth_server(); common_debug('fetching the access token', __FILE__); diff --git a/actions/finishremotesubscribe.php b/actions/finishremotesubscribe.php index eaf57c2d8f..6d73ee2348 100644 --- a/actions/finishremotesubscribe.php +++ b/actions/finishremotesubscribe.php @@ -44,7 +44,7 @@ class FinishremotesubscribeAction extends Action common_debug('stored request: '.print_r($omb,true), __FILE__); common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_local_url('finishuserauthorization')); $token = $req->get_parameter('oauth_token'); diff --git a/actions/postnotice.php b/actions/postnotice.php index c32d8ca94b..3e98b3cd55 100644 --- a/actions/postnotice.php +++ b/actions/postnotice.php @@ -28,7 +28,7 @@ class PostnoticeAction extends Action parent::handle($args); try { common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_local_url('postnotice')); # Note: server-to-server function! $server = omb_oauth_server(); list($consumer, $token) = $server->verify_request($req); diff --git a/actions/requesttoken.php b/actions/requesttoken.php index ca253b97aa..4e6f92913a 100644 --- a/actions/requesttoken.php +++ b/actions/requesttoken.php @@ -69,7 +69,7 @@ class RequesttokenAction extends Action parent::handle($args); try { common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_local_url('requesttoken')); $server = omb_oauth_server(); $token = $server->fetch_request_token($req); print $token; diff --git a/actions/updateprofile.php b/actions/updateprofile.php index 7dc52fda9e..08cb31ae03 100644 --- a/actions/updateprofile.php +++ b/actions/updateprofile.php @@ -29,7 +29,7 @@ class UpdateprofileAction extends Action parent::handle($args); try { common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('POST', common_local_url('updateprofile')); # Note: server-to-server function! $server = omb_oauth_server(); list($consumer, $token) = $server->verify_request($req); diff --git a/actions/userauthorization.php b/actions/userauthorization.php index 6a76e3a4c2..9eb1e8836f 100644 --- a/actions/userauthorization.php +++ b/actions/userauthorization.php @@ -382,7 +382,7 @@ class UserauthorizationAction extends Action function getNewRequest() { common_remove_magic_from_request(); - $req = OAuthRequest::from_request(); + $req = OAuthRequest::from_request('GET', common_local_url('userauthorization')); return $req; } From e9e75fc9d5f44b2ffe10602a3bd183cccb7da4ec Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 13 Apr 2009 15:49:26 -0400 Subject: [PATCH 04/19] isReadOnly() now takes arguments Add an array of arguments to isReadOnly() method of actions, to let them change their results depending on what actions are called. Primarily used by the 'api' action. Ideally in the future that will be multiple actions. But this might still be useful. --- actions/all.php | 2 +- actions/api.php | 13 ++++++------- actions/avatarbynickname.php | 2 +- actions/doc.php | 2 +- actions/favorited.php | 2 +- actions/featured.php | 2 +- actions/foaf.php | 2 +- actions/groupbyid.php | 2 +- actions/groupmembers.php | 2 +- actions/grouprss.php | 2 +- actions/groups.php | 2 +- actions/invite.php | 2 +- actions/login.php | 2 +- actions/logout.php | 2 +- actions/microsummary.php | 2 +- actions/noticesearchrss.php | 2 +- actions/nudge.php | 2 +- actions/opensearch.php | 2 +- actions/public.php | 2 +- actions/publicrss.php | 2 +- actions/publictagcloud.php | 2 +- actions/publicxrds.php | 2 +- actions/replies.php | 2 +- actions/repliesrss.php | 2 +- actions/requesttoken.php | 2 +- actions/showfavorites.php | 2 +- actions/showgroup.php | 2 +- actions/showmessage.php | 2 +- actions/shownotice.php | 2 +- actions/showstream.php | 2 +- actions/subscribers.php | 2 +- actions/sup.php | 2 +- actions/tag.php | 2 +- actions/tagrss.php | 2 +- actions/twitapisearchjson.php | 2 +- actions/userbyid.php | 2 +- actions/usergroups.php | 2 +- actions/userrss.php | 2 +- actions/xrds.php | 2 +- index.php | 2 +- lib/action.php | 5 ++++- lib/error.php | 2 +- lib/galleryaction.php | 2 +- lib/peoplesearchresults.php | 2 +- lib/personal.php | 2 +- lib/searchaction.php | 2 +- 46 files changed, 54 insertions(+), 52 deletions(-) diff --git a/actions/all.php b/actions/all.php index f5bbfe2e39..69890a70ca 100644 --- a/actions/all.php +++ b/actions/all.php @@ -25,7 +25,7 @@ require_once INSTALLDIR.'/lib/feedlist.php'; class AllAction extends ProfileAction { - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/api.php b/actions/api.php index c18d551b6d..e40a187987 100644 --- a/actions/api.php +++ b/actions/api.php @@ -134,8 +134,8 @@ class ApiAction extends Action 'favorites/favorites'); $fullname = "$this->api_action/$this->api_method"; - - // If the site is "private", all API methods except laconica/config + + // If the site is "private", all API methods except laconica/config // need authentication if (common_config('site', 'private')) { return $fullname != 'laconica/config' || false; @@ -180,11 +180,11 @@ class ApiAction extends Action } } - function isReadOnly() + function isReadOnly($args)($args) { - # NOTE: before handle(), can't use $this->arg - $apiaction = $_REQUEST['apiaction']; - $method = $_REQUEST['method']; + $apiaction = $args['apiaction']; + $method = $args['method']; + list($cmdtext, $fmt) = explode('.', $method); static $write_methods = array( @@ -207,5 +207,4 @@ class ApiAction extends Action return false; } - } diff --git a/actions/avatarbynickname.php b/actions/avatarbynickname.php index ca58c96537..e92a993722 100644 --- a/actions/avatarbynickname.php +++ b/actions/avatarbynickname.php @@ -98,7 +98,7 @@ class AvatarbynicknameAction extends Action common_redirect($url, 302); } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/doc.php b/actions/doc.php index ebffb7c154..e6508030b6 100644 --- a/actions/doc.php +++ b/actions/doc.php @@ -108,7 +108,7 @@ class DocAction extends Action return ucfirst($this->title); } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/favorited.php b/actions/favorited.php index 09ab1216a6..c902d80f53 100644 --- a/actions/favorited.php +++ b/actions/favorited.php @@ -85,7 +85,7 @@ class FavoritedAction extends Action * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/featured.php b/actions/featured.php index 86fd3f374a..79eba2aa67 100644 --- a/actions/featured.php +++ b/actions/featured.php @@ -50,7 +50,7 @@ class FeaturedAction extends Action { var $page = null; - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/foaf.php b/actions/foaf.php index 416935b1b7..2d5b78d123 100644 --- a/actions/foaf.php +++ b/actions/foaf.php @@ -25,7 +25,7 @@ define('BOTH', 0); class FoafAction extends Action { - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/groupbyid.php b/actions/groupbyid.php index 678119a945..7d327d56cc 100644 --- a/actions/groupbyid.php +++ b/actions/groupbyid.php @@ -59,7 +59,7 @@ class GroupbyidAction extends Action * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/groupmembers.php b/actions/groupmembers.php index 00f43a9f55..a90108e4d4 100644 --- a/actions/groupmembers.php +++ b/actions/groupmembers.php @@ -48,7 +48,7 @@ class GroupmembersAction extends Action { var $page = null; - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/grouprss.php b/actions/grouprss.php index de76a59600..a9a2eef877 100644 --- a/actions/grouprss.php +++ b/actions/grouprss.php @@ -57,7 +57,7 @@ class groupRssAction extends Rss10Action * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/groups.php b/actions/groups.php index 39dc2232bc..26b52a5fcd 100644 --- a/actions/groups.php +++ b/actions/groups.php @@ -51,7 +51,7 @@ class GroupsAction extends Action var $page = null; var $profile = null; - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/invite.php b/actions/invite.php index df6e3b7147..7e52cdbcc6 100644 --- a/actions/invite.php +++ b/actions/invite.php @@ -27,7 +27,7 @@ class InviteAction extends Action var $subbed = null; var $sent = null; - function isReadOnly() + function isReadOnly($args) { return false; } diff --git a/actions/login.php b/actions/login.php index 59c6b4874b..50de83f6fb 100644 --- a/actions/login.php +++ b/actions/login.php @@ -55,7 +55,7 @@ class LoginAction extends Action * @return boolean false */ - function isReadOnly() + function isReadOnly($args) { return false; } diff --git a/actions/logout.php b/actions/logout.php index b7681be382..9f3bfe2470 100644 --- a/actions/logout.php +++ b/actions/logout.php @@ -52,7 +52,7 @@ class LogoutAction extends Action * * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return false; } diff --git a/actions/microsummary.php b/actions/microsummary.php index 065a2e0eba..0b408ec953 100644 --- a/actions/microsummary.php +++ b/actions/microsummary.php @@ -74,7 +74,7 @@ class MicrosummaryAction extends Action print $user->nickname . ': ' . $notice->content; } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/noticesearchrss.php b/actions/noticesearchrss.php index ba5276d06e..f6da969ee4 100644 --- a/actions/noticesearchrss.php +++ b/actions/noticesearchrss.php @@ -92,7 +92,7 @@ class NoticesearchrssAction extends Rss10Action return null; } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/nudge.php b/actions/nudge.php index b4e5e01dd8..c23d3e6435 100644 --- a/actions/nudge.php +++ b/actions/nudge.php @@ -124,7 +124,7 @@ class NudgeAction extends Action } } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/opensearch.php b/actions/opensearch.php index 2eb8183066..d1f4895ce4 100644 --- a/actions/opensearch.php +++ b/actions/opensearch.php @@ -84,7 +84,7 @@ class OpensearchAction extends Action $this->endXML(); } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/public.php b/actions/public.php index 5a380de9a8..27153f1315 100644 --- a/actions/public.php +++ b/actions/public.php @@ -56,7 +56,7 @@ class PublicAction extends Action var $page = null; - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/publicrss.php b/actions/publicrss.php index 77e26e0f4c..bc52f29522 100644 --- a/actions/publicrss.php +++ b/actions/publicrss.php @@ -102,7 +102,7 @@ class PublicrssAction extends Rss10Action // nop } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/publictagcloud.php b/actions/publictagcloud.php index 855cfed9b5..e9f33d58b6 100644 --- a/actions/publictagcloud.php +++ b/actions/publictagcloud.php @@ -47,7 +47,7 @@ define('TAGS_PER_PAGE', 100); class PublictagcloudAction extends Action { - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/publicxrds.php b/actions/publicxrds.php index 2c52f12468..283a932ca5 100644 --- a/actions/publicxrds.php +++ b/actions/publicxrds.php @@ -54,7 +54,7 @@ class PublicxrdsAction extends Action * * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/replies.php b/actions/replies.php index 2769cb4227..eac4d0a3ae 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -196,7 +196,7 @@ class RepliesAction extends Action $this->elementEnd('div'); } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/repliesrss.php b/actions/repliesrss.php index 985318bf16..2017c43094 100644 --- a/actions/repliesrss.php +++ b/actions/repliesrss.php @@ -83,7 +83,7 @@ class RepliesrssAction extends Rss10Action return ($avatar) ? $avatar->url : null; } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/requesttoken.php b/actions/requesttoken.php index ca253b97aa..fb577fdd57 100644 --- a/actions/requesttoken.php +++ b/actions/requesttoken.php @@ -52,7 +52,7 @@ class RequesttokenAction extends Action * * @return boolean false */ - function isReadOnly() + function isReadOnly($args) { return false; } diff --git a/actions/showfavorites.php b/actions/showfavorites.php index 4d43495054..e8cf1cb01c 100644 --- a/actions/showfavorites.php +++ b/actions/showfavorites.php @@ -58,7 +58,7 @@ class ShowfavoritesAction extends Action * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/showgroup.php b/actions/showgroup.php index 79445851f9..7e86a79f15 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -60,7 +60,7 @@ class ShowgroupAction extends Action * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/showmessage.php b/actions/showmessage.php index 572a71739a..4fcaadbe83 100644 --- a/actions/showmessage.php +++ b/actions/showmessage.php @@ -177,7 +177,7 @@ class ShowmessageAction extends MailboxAction return ''; } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/shownotice.php b/actions/shownotice.php index ccae49bb3e..2c469c9dee 100644 --- a/actions/shownotice.php +++ b/actions/shownotice.php @@ -106,7 +106,7 @@ class ShownoticeAction extends Action * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/showstream.php b/actions/showstream.php index ce237dae22..c1a2c337a0 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -56,7 +56,7 @@ require_once INSTALLDIR.'/lib/feedlist.php'; class ShowstreamAction extends ProfileAction { - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/subscribers.php b/actions/subscribers.php index 7ebb54d33d..d91a7d4fd3 100644 --- a/actions/subscribers.php +++ b/actions/subscribers.php @@ -130,7 +130,7 @@ class SubscribersList extends ProfileList $bf->show(); } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/sup.php b/actions/sup.php index 246b3299d3..691153d6a3 100644 --- a/actions/sup.php +++ b/actions/sup.php @@ -79,7 +79,7 @@ class SupAction extends Action return $updates; } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/tag.php b/actions/tag.php index c413bf8c34..7f82c2a581 100644 --- a/actions/tag.php +++ b/actions/tag.php @@ -87,7 +87,7 @@ class TagAction extends Action $this->page, 'tag', array('tag' => $this->tag)); } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/tagrss.php b/actions/tagrss.php index a77fa12c98..83cf3afe2f 100644 --- a/actions/tagrss.php +++ b/actions/tagrss.php @@ -65,7 +65,7 @@ class TagrssAction extends Rss10Action return $c; } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/twitapisearchjson.php b/actions/twitapisearchjson.php index 0f9f523a14..b0e3be687c 100644 --- a/actions/twitapisearchjson.php +++ b/actions/twitapisearchjson.php @@ -142,7 +142,7 @@ class TwitapisearchjsonAction extends TwitterapiAction * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/userbyid.php b/actions/userbyid.php index 1e30d1aac3..4a985fcd72 100644 --- a/actions/userbyid.php +++ b/actions/userbyid.php @@ -50,7 +50,7 @@ class UserbyidAction extends Action * * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/usergroups.php b/actions/usergroups.php index 06b2334bf5..e3088dcbd8 100644 --- a/actions/usergroups.php +++ b/actions/usergroups.php @@ -52,7 +52,7 @@ class UsergroupsAction extends Action var $page = null; var $profile = null; - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/userrss.php b/actions/userrss.php index d3bf352d8d..5861d9ee36 100644 --- a/actions/userrss.php +++ b/actions/userrss.php @@ -96,7 +96,7 @@ class UserrssAction extends Rss10Action parent::initRss($limit); } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/actions/xrds.php b/actions/xrds.php index 0758318037..1335b6b806 100644 --- a/actions/xrds.php +++ b/actions/xrds.php @@ -52,7 +52,7 @@ class XrdsAction extends Action * * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/index.php b/index.php index e83d08c13e..e24bde9179 100644 --- a/index.php +++ b/index.php @@ -128,7 +128,7 @@ function main() // XXX: find somewhere for this little block to live - if (common_config('db', 'mirror') && $action_obj->isReadOnly()) { + if (common_config('db', 'mirror') && $action_obj->isReadOnly($args)) { if (is_array(common_config('db', 'mirror'))) { // "load balancing", ha ha $arr = common_config('db', 'mirror'); diff --git a/lib/action.php b/lib/action.php index cc98d4445a..6735492467 100644 --- a/lib/action.php +++ b/lib/action.php @@ -791,9 +791,12 @@ class Action extends HTMLOutputter // lawsuit * * MAY override * + * @param array $args other arguments + * * @return boolean is read only action? */ - function isReadOnly() + + function isReadOnly($args)($args) { return false; } diff --git a/lib/error.php b/lib/error.php index 526d9f81be..282682133a 100644 --- a/lib/error.php +++ b/lib/error.php @@ -93,7 +93,7 @@ class ErrorAction extends Action return $this->message; } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/lib/galleryaction.php b/lib/galleryaction.php index 8e21d7393b..0484918ce2 100644 --- a/lib/galleryaction.php +++ b/lib/galleryaction.php @@ -76,7 +76,7 @@ class GalleryAction extends Action return true; } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/lib/peoplesearchresults.php b/lib/peoplesearchresults.php index f8ab7cf3b6..d3f8408525 100644 --- a/lib/peoplesearchresults.php +++ b/lib/peoplesearchresults.php @@ -67,7 +67,7 @@ class PeopleSearchResults extends ProfileList return preg_replace($this->pattern, '\\1', htmlspecialchars($text)); } - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/lib/personal.php b/lib/personal.php index e46350c630..f92732375b 100644 --- a/lib/personal.php +++ b/lib/personal.php @@ -47,7 +47,7 @@ class PersonalAction extends Action var $user = null; - function isReadOnly() + function isReadOnly($args) { return true; } diff --git a/lib/searchaction.php b/lib/searchaction.php index e7ad4affda..e74450e11f 100644 --- a/lib/searchaction.php +++ b/lib/searchaction.php @@ -51,7 +51,7 @@ class SearchAction extends Action * * @return boolean true */ - function isReadOnly() + function isReadOnly($args) { return true; } From 4c9be4d566c4d4b6e846935cbabd951f5d59259d Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 13 Apr 2009 15:52:15 -0400 Subject: [PATCH 05/19] typo in api.php --- actions/api.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/api.php b/actions/api.php index e40a187987..d2f0a2eff0 100644 --- a/actions/api.php +++ b/actions/api.php @@ -180,7 +180,7 @@ class ApiAction extends Action } } - function isReadOnly($args)($args) + function isReadOnly($args) { $apiaction = $args['apiaction']; $method = $args['method']; From 4684d34713a8057387750bc52802d0c0475ec926 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 13 Apr 2009 15:54:16 -0400 Subject: [PATCH 06/19] typo in lib action --- lib/action.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/action.php b/lib/action.php index 6735492467..1ba062812a 100644 --- a/lib/action.php +++ b/lib/action.php @@ -796,7 +796,7 @@ class Action extends HTMLOutputter // lawsuit * @return boolean is read only action? */ - function isReadOnly($args)($args) + function isReadOnly($args) { return false; } From 01695dc3465c8198123c254816f9a93a35b6c773 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 13 Apr 2009 15:03:34 -0700 Subject: [PATCH 07/19] Fix bad dates in API's JSON search results --- lib/jsonsearchresultslist.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jsonsearchresultslist.php b/lib/jsonsearchresultslist.php index 0cdcf0c516..f786c20a80 100644 --- a/lib/jsonsearchresultslist.php +++ b/lib/jsonsearchresultslist.php @@ -232,7 +232,7 @@ class ResultItem $this->profile_image_url = ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE); - $this->created_at = date('r', $this->notice->created); + $this->created_at = common_date_rfc2822($this->notice->created); } /** From 9f2e2e4b2c1b428a1892c57c7194fbc5ede5b125 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 14 Apr 2009 11:50:59 -0700 Subject: [PATCH 08/19] Notice sources: Fixed Nambu, added Tricklepost and sorted the list. --- db/notice_source.sql | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/db/notice_source.sql b/db/notice_source.sql index ac23f14aa1..d5124e223a 100644 --- a/db/notice_source.sql +++ b/db/notice_source.sql @@ -1,29 +1,28 @@ INSERT INTO notice_source (code, name, url, created) VALUES - ('Do','Gnome Do','http://do.davebsd.com/wiki/index.php?title=Microblog_Plugin', now()), - ('Facebook','Facebook','http://apps.facebook.com/identica/', now()), - ('Gwibber','Gwibber','http://launchpad.net/gwibber', now()), - ('HelloTxt','HelloTxt','http://hellotxt.com/', now()), - ('IdentiFox','IdentiFox','http://www.bitbucket.org/uncryptic/identifox/', now()), - ('LaTwit','LaTwit','http://latwit.mac65.com/', now()), - ('Nambu','Nambu','http://www.nambu.com/', now()), - ('Pikchur','Pikchur','http://www.pikchur.com/', now()), - ('Ping.fm','Ping.fm','http://ping.fm/', now()), - ('Twidge','Twidge','http://software.complete.org/twidge', now()), - ('Updating.Me','Updating.Me','http://updating.me/', now()), + ('adium', 'Adium', 'http://www.adiumx.com/', now()), ('betwittered','BeTwittered','http://www.32hours.com/betwitteredinfo/', now()), ('bti','bti','http://gregkh.github.com/bti/', now()), ('cliqset', 'Cliqset', 'http://www.cliqset.com/', now()), ('deskbar','Deskbar-Applet','http://www.gnome.org/projects/deskbar-applet/', now()), + ('Do','Gnome Do','http://do.davebsd.com/wiki/index.php?title=Microblog_Plugin', now()), + ('Facebook','Facebook','http://apps.facebook.com/identica/', now()), + ('Gwibber','Gwibber','http://launchpad.net/gwibber', now()), + ('HelloTxt','HelloTxt','http://hellotxt.com/', now()), ('identicatools','Laconica Tools','http://bitbucketlabs.net/laconica-tools/', now()), ('identichat','identichat','http://identichat.prosody.im/', now()), + ('IdentiFox','IdentiFox','http://www.bitbucket.org/uncryptic/identifox/', now()), ('identitwitch','IdentiTwitch','http://richfish.org/identitwitch/', now()), + ('LaTwit','LaTwit','http://latwit.mac65.com/', now()), ('maisha', 'Maisha', 'http://maisha.grango.org/', now()), ('mbpidgin','mbpidgin','http://code.google.com/p/microblog-purple/', now()), ('Mobidentica', 'Mobidentica', 'http://www.substanceofcode.com/software/mobidentica/', now()), ('moconica','Moconica','http://moconica.com/', now()), + ('nambu','Nambu','http://www.nambu.com/', now()), ('peoplebrowsr', 'PeopleBrowsr', 'http://www.peoplebrowsr.com/', now()), + ('Pikchur','Pikchur','http://www.pikchur.com/', now()), + ('Ping.fm','Ping.fm','http://ping.fm/', now()), ('pocketwit','PockeTwit','http://code.google.com/p/pocketwit/', now()), ('posty','Posty','http://spreadingfunkyness.com/posty/', now()), ('royalewithcheese','Royale With Cheese','http://p.hellyeah.org/', now()), @@ -35,9 +34,11 @@ VALUES ('tarpipe','tarpipe','http://tarpipe.com/', now()), ('tjunar','Tjunar','http://nederflash.nl/boek/titels/tjunar-air', now()), ('tr.im','tr.im','http://tr.im/', now()), + ('triklepost', 'Tricklepost', 'http://github.com/zcopley/tricklepost/tree/master', now()), ('tweenky','Tweenky','http://beta.tweenky.com/', now()), ('twhirl','Twhirl','http://www.twhirl.org/', now()), ('twibble','twibble','http://www.twibble.de/', now()), + ('Twidge','Twidge','http://software.complete.org/twidge', now()), ('twidge','Twidge','http://software.complete.org/twidge', now()), ('twidroid','twidroid','http://www.twidroid.com/', now()), ('twittelator','Twittelator','http://www.stone.com/iPhone/Twittelator/', now()), @@ -47,6 +48,6 @@ VALUES ('twittertools','Twitter Tools','http://wordpress.org/extend/plugins/twitter-tools/', now()), ('twitux','Twitux','http://live.gnome.org/DanielMorales/Twitux', now()), ('twitvim','TwitVim','http://vim.sourceforge.net/scripts/script.php?script_id=2204', now()), + ('Updating.Me','Updating.Me','http://updating.me/', now()), ('urfastr','urfastr','http://urfastr.net/', now()), - ('adium', 'Adium', 'http://www.adiumx.com/', now()), ('yatca','Yatca','http://www.yatca.com/', now()); From b1940bcb7b028b993b26cd3c36f4fdbbc79c96e6 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 14 Apr 2009 16:01:02 -0400 Subject: [PATCH 09/19] escape slash in regexp --- plugins/LinkbackPlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/LinkbackPlugin.php b/plugins/LinkbackPlugin.php index 56a26176b1..881ead99ec 100644 --- a/plugins/LinkbackPlugin.php +++ b/plugins/LinkbackPlugin.php @@ -99,7 +99,7 @@ class LinkbackPlugin extends Plugin if (array_key_exists('X-Pingback', $result->headers)) { $pb = $result->headers['X-Pingback']; - } else if (preg_match('//', + } else if (preg_match('//', $result->body, $match)) { $pb = $match[1]; From b142c260108f43636b69adb90d5a27ffa44f0f74 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 14 Apr 2009 16:02:09 -0400 Subject: [PATCH 10/19] Make stuff work with no base --- lib/action.php | 4 ---- theme/default/css/display.css | 10 ++-------- theme/identica/css/display.css | 10 ++-------- theme/iphone/display.css | 16 +++++++--------- 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/lib/action.php b/lib/action.php index 1ba062812a..b02f525f0b 100644 --- a/lib/action.php +++ b/lib/action.php @@ -192,10 +192,6 @@ class Action extends HTMLOutputter // lawsuit { if (Event::handle('StartShowStyles', array($this))) { if (Event::handle('StartShowLaconicaStyles', array($this))) { - $this->element('link', array('rel' => 'stylesheet', - 'type' => 'text/css', - 'href' => theme_path('css/display.css', 'base') . '?version=' . LACONICA_VERSION, - 'media' => 'screen, projection, tv')); $this->element('link', array('rel' => 'stylesheet', 'type' => 'text/css', 'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION, diff --git a/theme/default/css/display.css b/theme/default/css/display.css index c5d6946108..69a600cc28 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -7,6 +7,8 @@ * @link http://laconi.ca/ */ +@import url(../../base/css/display.css); + html, body, a:active { @@ -70,7 +72,6 @@ border-top-color:#D1D9E4; border-top-color:#97BFD1; } - #content .notice p.entry-content a:visited { background-color:#fcfcfc; } @@ -82,7 +83,6 @@ background-color:#fcfffc; background-color:#CEE1E9; } - #notice_text-count { color:#333; } @@ -112,7 +112,6 @@ background-color:rgba(255, 255, 255, 0.2); background-color:rgba(255, 255, 255, 0.7); } - .error { background-color:#F7E8E8; } @@ -120,7 +119,6 @@ background-color:#F7E8E8; background-color:#EFF3DC; } - #anon_notice { background-color:#97BFD1; color:#fff; @@ -131,7 +129,6 @@ border-color:#fff; background-color:#A9BF4F; } - #export_data li a { background-repeat:no-repeat; background-position:0 45%; @@ -184,8 +181,6 @@ background-image:url(../images/icons/twotone/green/mail.gif); background-image:url(../images/icons/twotone/green/shield.gif); } - - /* NOTICES */ .notices li.over { background-color:#fcfcfc; @@ -228,7 +223,6 @@ background-color:#fcfcfc; } /*END: NOTICES */ - #new_group a { background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%; } diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index c32b6269d0..d05578d439 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -7,6 +7,8 @@ * @link http://laconi.ca/ */ +@import url(../../base/css/display.css); + html, body, a:active { @@ -70,7 +72,6 @@ border-top-color:#CEE1E9; border-top-color:#87B4C8; } - #content .notice p.entry-content a:visited { background-color:#fcfcfc; } @@ -82,7 +83,6 @@ background-color:#fcfffc; background-color:#CEE1E9; } - #notice_text-count { color:#333; } @@ -112,7 +112,6 @@ background-color:rgba(135, 180, 200, 0.3); background-color:rgba(255, 255, 255, 0.7); } - .error { background-color:#F7E8E8; } @@ -120,7 +119,6 @@ background-color:#F7E8E8; background-color:#EFF3DC; } - #anon_notice { background-color:#87B4C8; color:#fff; @@ -131,7 +129,6 @@ border-color:#fff; background-color:#9BB43E; } - #export_data li a { background-repeat:no-repeat; background-position:0 45%; @@ -184,8 +181,6 @@ background-image:url(../images/icons/twotone/green/mail.gif); background-image:url(../images/icons/twotone/green/shield.gif); } - - /* NOTICES */ .notices li.over { background-color:#fcfcfc; @@ -228,7 +223,6 @@ background-color:#fcfcfc; } /*END: NOTICES */ - #new_group a { background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%; } diff --git a/theme/iphone/display.css b/theme/iphone/display.css index 6ac471c1e8..1838a8e86e 100644 --- a/theme/iphone/display.css +++ b/theme/iphone/display.css @@ -2,6 +2,8 @@ /* Design & CSS by Marie-Claude Doyon http://www.marieclaudedoyon.com */ /* Simplified for mobile by Ken Sheppardson http://identi.ca/kshep */ +@import url(../../base/css/display.css); + html {} body { width: 100%; @@ -28,7 +30,6 @@ h1 { font-size: 1.2em; } - #wrap { margin: 0; } @@ -196,7 +197,7 @@ p#branding a { } .instructions a:hover, .success a:hover, .error a:hover { color: #FCFFF5; -} +} .success { clear: both; float: left; @@ -210,7 +211,6 @@ p#branding a { background-color: #ce3728; } - /* ----- Stream -----*/ #notices { @@ -273,7 +273,7 @@ p.time { p.time a { color: #91AA9D; } - + /* ----- Profile -----*/ #profile { clear: both; @@ -356,7 +356,7 @@ dl.statistics { clear: left; float: left; width: 200px; -} +} .statistics dd { float: left; } @@ -402,8 +402,6 @@ ul.subscriptions li, ul.subscribers li { } /* ----- End Subscriptions & Subscribers -----*/ - - #pagination { margin: 18px auto; } @@ -488,7 +486,7 @@ input#submit:hover, input.submit:hover { input.checkbox { width: auto; border: 0; -} +} textarea, input { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 1em; @@ -629,7 +627,7 @@ input#openid_url { #profiles a:hover { text-decoration: underline; } - + .profile_single { clear: both; display: block; From 20394664957a202cc86cc48ee2d115032e82c58a Mon Sep 17 00:00:00 2001 From: Robin Millette Date: Tue, 14 Apr 2009 23:03:19 +0000 Subject: [PATCH 11/19] trac#1223 Show most popular notices per tag in the tag page sidebar. --- actions/tag.php | 7 +++++++ lib/popularnoticesection.php | 25 +++++++++++++++++-------- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/actions/tag.php b/actions/tag.php index d15f64498d..cb6572b962 100644 --- a/actions/tag.php +++ b/actions/tag.php @@ -45,6 +45,13 @@ class TagAction extends Action return true; } + function showSections() + { + $pop = new PopularNoticeSection($this); + $pop->show(); + } + + function title() { if ($this->page == 1) { diff --git a/lib/popularnoticesection.php b/lib/popularnoticesection.php index 0505f0fa9a..a8d47ef542 100644 --- a/lib/popularnoticesection.php +++ b/lib/popularnoticesection.php @@ -50,17 +50,26 @@ class PopularNoticeSection extends NoticeSection { if (common_config('db', 'type') == 'pgsql') { $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))'; + if (!empty($this->out->tag)) { + $tag = pg_escape_string($this->tag); + } } else { $weightexpr='sum(exp(-(now() - fave.modified) / %s))'; + if (!empty($this->out->tag)) { + $tag = mysql_escape_string($this->out->tag); + } } - - $qry = 'SELECT notice.*, '. - $weightexpr . ' as weight ' . - 'FROM notice JOIN fave ON notice.id = fave.notice_id ' . - 'GROUP BY notice.id,notice.profile_id,notice.content,notice.uri,' . - 'notice.rendered,notice.url,notice.created,notice.modified,' . - 'notice.reply_to,notice.is_local,notice.source ' . - 'ORDER BY weight DESC'; + $qry = "SELECT notice.*, $weightexpr as weight "; + if(isset($tag)) { + $qry .= 'FROM notice_tag, notice JOIN fave ON notice.id = fave.notice_id ' . + "WHERE notice.id = notice_tag.notice_id and '$tag' = notice_tag.tag"; + } else { + $qry .= 'FROM notice JOIN fave ON notice.id = fave.notice_id'; + } + $qry .= ' GROUP BY notice.id,notice.profile_id,notice.content,notice.uri,' . + 'notice.rendered,notice.url,notice.created,notice.modified,' . + 'notice.reply_to,notice.is_local,notice.source ' . + 'ORDER BY weight DESC'; $offset = 0; $limit = NOTICES_PER_SECTION + 1; From 7095c93f66fa2fc4fdae57276ca66ad777788afd Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 14 Apr 2009 23:13:02 +0000 Subject: [PATCH 12/19] Simpler separation of themes. New themes can either make use of the default styles or make their own. --- lib/action.php | 18 +- theme/{default => }/base/css/display.css | 0 theme/{cloudy => }/base/css/facebookapp.css | 0 theme/{default => }/base/css/farbtastic.css | 0 theme/{cloudy => }/base/css/ie.css | 0 theme/{cloudy => }/base/css/ie6.css | 0 theme/{cloudy => }/base/css/jquery.Jcrop.css | 0 theme/{cloudy => }/base/css/mobile.css | 0 theme/{cloudy => }/base/css/print.css | 0 theme/{cloudy => }/base/css/thickbox.css | 0 theme/base/default-avatar-mini.png | Bin 0 -> 646 bytes theme/base/default-avatar-profile.png | Bin 0 -> 2853 bytes theme/base/default-avatar-stream.png | Bin 0 -> 1487 bytes .../base/images/icons/icon_atom.png | Bin .../base/images/icons/icon_foaf.gif | Bin .../base/images/icons/icon_rss.png | Bin .../base/images/icons/icon_vcard.gif | Bin .../images/icons/twotone/green/arrow-left.gif | Bin .../icons/twotone/green/arrow-right.gif | Bin .../icons/twotone/green/disfavourite.gif | Bin .../images/icons/twotone/green/edit.gif | Bin .../images/icons/twotone/green/favourite.gif | Bin .../images/icons/twotone/green/mail.gif | Bin .../images/icons/twotone/green/news.gif | Bin .../images/icons/twotone/green/quote.gif | Bin .../images/icons/twotone/green/reply.gif | Bin .../images/icons/twotone/green/shield.gif | Bin .../images/icons/twotone/green/trash.gif | Bin .../base/images/illustrations/illu_jcrop.gif | Bin .../illu_progress_loading-01.gif | Bin theme/{default => base}/logo.png | Bin theme/cloudy/{base => }/css/display.css | 308 +++++++++++++++++ theme/cloudy/{skin/default => }/css/ie.css | 0 .../images/icons/icon_atom.png | Bin .../images/icons/icon_disfavourite.gif | Bin .../images/icons/icon_favourite.gif | Bin .../default => }/images/icons/icon_foaf.gif | Bin .../images/icons/icon_processing.gif | Bin .../default => }/images/icons/icon_reply.gif | Bin .../base => cloudy}/images/icons/icon_rss.png | Bin .../default => }/images/icons/icon_trash.gif | Bin .../default => }/images/icons/icon_vcard.gif | Bin .../images/icons/twotone/green/arrow-left.gif | Bin .../icons/twotone/green/arrow-right.gif | Bin .../images/icons/twotone/green/edit.gif | Bin .../images/icons/twotone/green/mail.gif | Bin .../images/icons/twotone/green/news.gif | Bin .../images/icons/twotone/green/quote.gif | Bin .../images/icons/twotone/green/shield.gif | Bin .../images/illustrations/illu_arrow-up-01.gif | Bin .../images/illustrations/illu_clouds-01.gif | Bin .../images/illustrations/illu_jcrop.gif | Bin .../illu_progress_loading-01.gif | Bin .../images/illustrations/illu_unicorn-01.png | Bin theme/cloudy/skin/default/css/display.css | 314 ------------------ .../skin/default/images/icons/icon_atom.jpg | Bin 1117 -> 0 bytes .../skin/default/images/icons/icon_rss.jpg | Bin 1166 -> 0 bytes theme/default/base/css/facebookapp.css | 100 ------ theme/default/base/css/ie.css | 32 -- theme/default/base/css/ie6.css | 30 -- theme/default/base/css/jquery.Jcrop.css | 45 --- theme/default/base/css/mobile.css | 150 --------- theme/default/base/css/print.css | 36 -- theme/default/base/css/thickbox.css | 163 --------- theme/default/base/images/icons/icon_foaf.gif | Bin 1144 -> 0 bytes .../base/images/icons/icon_processing.gif | Bin 673 -> 0 bytes .../default/base/images/icons/icon_vcard.gif | Bin 331 -> 0 bytes .../{skin/default => }/css/display.css | 32 +- theme/default/{skin/default => }/css/ie.css | 0 .../skin/default/images/icons/icon_atom.jpg | Bin 1117 -> 0 bytes .../skin/default/images/icons/icon_foaf.gif | Bin 1144 -> 0 bytes .../skin/default/images/icons/icon_rss.jpg | Bin 1166 -> 0 bytes .../skin/default/images/icons/icon_vcard.gif | Bin 331 -> 0 bytes .../skin/identica/images/icons/icon_atom.jpg | Bin 1117 -> 0 bytes .../skin/identica/images/icons/icon_foaf.gif | Bin 1144 -> 0 bytes .../skin/identica/images/icons/icon_rss.jpg | Bin 1166 -> 0 bytes .../skin/identica/images/icons/icon_vcard.gif | Bin 331 -> 0 bytes .../images/icons/twotone/green/arrow-left.gif | Bin 73 -> 0 bytes .../icons/twotone/green/arrow-right.gif | Bin 74 -> 0 bytes .../icons/twotone/green/disfavourite.gif | Bin 88 -> 0 bytes .../images/icons/twotone/green/edit.gif | Bin 75 -> 0 bytes .../images/icons/twotone/green/favourite.gif | Bin 73 -> 0 bytes .../images/icons/twotone/green/mail.gif | Bin 82 -> 0 bytes .../images/icons/twotone/green/news.gif | Bin 76 -> 0 bytes .../images/icons/twotone/green/quote.gif | Bin 79 -> 0 bytes .../images/icons/twotone/green/reply.gif | Bin 79 -> 0 bytes .../images/icons/twotone/green/shield.gif | Bin 85 -> 0 bytes .../images/icons/twotone/green/trash.gif | Bin 77 -> 0 bytes .../skin => }/identica/css/display.css | 32 +- theme/{default/skin => }/identica/css/ie.css | 0 theme/identica/default-avatar-mini.png | Bin 0 -> 646 bytes theme/identica/default-avatar-profile.png | Bin 0 -> 2853 bytes theme/identica/default-avatar-stream.png | Bin 0 -> 1487 bytes theme/identica/logo.png | Bin 0 -> 4988 bytes 94 files changed, 349 insertions(+), 911 deletions(-) rename theme/{default => }/base/css/display.css (100%) rename theme/{cloudy => }/base/css/facebookapp.css (100%) rename theme/{default => }/base/css/farbtastic.css (100%) rename theme/{cloudy => }/base/css/ie.css (100%) rename theme/{cloudy => }/base/css/ie6.css (100%) rename theme/{cloudy => }/base/css/jquery.Jcrop.css (100%) rename theme/{cloudy => }/base/css/mobile.css (100%) rename theme/{cloudy => }/base/css/print.css (100%) rename theme/{cloudy => }/base/css/thickbox.css (100%) create mode 100644 theme/base/default-avatar-mini.png create mode 100644 theme/base/default-avatar-profile.png create mode 100644 theme/base/default-avatar-stream.png rename theme/{cloudy => }/base/images/icons/icon_atom.png (100%) rename theme/{cloudy => }/base/images/icons/icon_foaf.gif (100%) rename theme/{cloudy => }/base/images/icons/icon_rss.png (100%) rename theme/{cloudy => }/base/images/icons/icon_vcard.gif (100%) rename theme/{cloudy/skin/default => base}/images/icons/twotone/green/arrow-left.gif (100%) rename theme/{cloudy/skin/default => base}/images/icons/twotone/green/arrow-right.gif (100%) rename theme/{default/skin/default => base}/images/icons/twotone/green/disfavourite.gif (100%) rename theme/{cloudy/skin/default => base}/images/icons/twotone/green/edit.gif (100%) rename theme/{default/skin/default => base}/images/icons/twotone/green/favourite.gif (100%) rename theme/{cloudy/skin/default => base}/images/icons/twotone/green/mail.gif (100%) rename theme/{cloudy/skin/default => base}/images/icons/twotone/green/news.gif (100%) rename theme/{cloudy/skin/default => base}/images/icons/twotone/green/quote.gif (100%) rename theme/{default/skin/default => base}/images/icons/twotone/green/reply.gif (100%) rename theme/{cloudy/skin/default => base}/images/icons/twotone/green/shield.gif (100%) rename theme/{default/skin/default => base}/images/icons/twotone/green/trash.gif (100%) rename theme/{cloudy => }/base/images/illustrations/illu_jcrop.gif (100%) rename theme/{cloudy => }/base/images/illustrations/illu_progress_loading-01.gif (100%) rename theme/{default => base}/logo.png (100%) rename theme/cloudy/{base => }/css/display.css (75%) rename theme/cloudy/{skin/default => }/css/ie.css (100%) rename theme/{default/base => cloudy}/images/icons/icon_atom.png (100%) rename theme/cloudy/{skin/default => }/images/icons/icon_disfavourite.gif (100%) rename theme/cloudy/{skin/default => }/images/icons/icon_favourite.gif (100%) rename theme/cloudy/{skin/default => }/images/icons/icon_foaf.gif (100%) rename theme/cloudy/{base => }/images/icons/icon_processing.gif (100%) rename theme/cloudy/{skin/default => }/images/icons/icon_reply.gif (100%) rename theme/{default/base => cloudy}/images/icons/icon_rss.png (100%) rename theme/cloudy/{skin/default => }/images/icons/icon_trash.gif (100%) rename theme/cloudy/{skin/default => }/images/icons/icon_vcard.gif (100%) rename theme/{default/skin/default => cloudy}/images/icons/twotone/green/arrow-left.gif (100%) rename theme/{default/skin/default => cloudy}/images/icons/twotone/green/arrow-right.gif (100%) rename theme/{default/skin/default => cloudy}/images/icons/twotone/green/edit.gif (100%) rename theme/{default/skin/default => cloudy}/images/icons/twotone/green/mail.gif (100%) rename theme/{default/skin/default => cloudy}/images/icons/twotone/green/news.gif (100%) rename theme/{default/skin/default => cloudy}/images/icons/twotone/green/quote.gif (100%) rename theme/{default/skin/default => cloudy}/images/icons/twotone/green/shield.gif (100%) rename theme/cloudy/{skin/default => }/images/illustrations/illu_arrow-up-01.gif (100%) rename theme/cloudy/{skin/default => }/images/illustrations/illu_clouds-01.gif (100%) rename theme/{default/base => cloudy}/images/illustrations/illu_jcrop.gif (100%) rename theme/{default/base => cloudy}/images/illustrations/illu_progress_loading-01.gif (100%) rename theme/cloudy/{skin/default => }/images/illustrations/illu_unicorn-01.png (100%) delete mode 100644 theme/cloudy/skin/default/css/display.css delete mode 100644 theme/cloudy/skin/default/images/icons/icon_atom.jpg delete mode 100644 theme/cloudy/skin/default/images/icons/icon_rss.jpg delete mode 100644 theme/default/base/css/facebookapp.css delete mode 100644 theme/default/base/css/ie.css delete mode 100644 theme/default/base/css/ie6.css delete mode 100644 theme/default/base/css/jquery.Jcrop.css delete mode 100644 theme/default/base/css/mobile.css delete mode 100644 theme/default/base/css/print.css delete mode 100644 theme/default/base/css/thickbox.css delete mode 100644 theme/default/base/images/icons/icon_foaf.gif delete mode 100644 theme/default/base/images/icons/icon_processing.gif delete mode 100644 theme/default/base/images/icons/icon_vcard.gif rename theme/default/{skin/default => }/css/display.css (76%) rename theme/default/{skin/default => }/css/ie.css (100%) delete mode 100644 theme/default/skin/default/images/icons/icon_atom.jpg delete mode 100644 theme/default/skin/default/images/icons/icon_foaf.gif delete mode 100644 theme/default/skin/default/images/icons/icon_rss.jpg delete mode 100644 theme/default/skin/default/images/icons/icon_vcard.gif delete mode 100644 theme/default/skin/identica/images/icons/icon_atom.jpg delete mode 100644 theme/default/skin/identica/images/icons/icon_foaf.gif delete mode 100644 theme/default/skin/identica/images/icons/icon_rss.jpg delete mode 100644 theme/default/skin/identica/images/icons/icon_vcard.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/arrow-left.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/arrow-right.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/disfavourite.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/edit.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/favourite.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/mail.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/news.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/quote.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/reply.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/shield.gif delete mode 100644 theme/default/skin/identica/images/icons/twotone/green/trash.gif rename theme/{default/skin => }/identica/css/display.css (76%) rename theme/{default/skin => }/identica/css/ie.css (100%) create mode 100644 theme/identica/default-avatar-mini.png create mode 100644 theme/identica/default-avatar-profile.png create mode 100644 theme/identica/default-avatar-stream.png create mode 100644 theme/identica/logo.png diff --git a/lib/action.php b/lib/action.php index 0a628bfdfe..ff75ee8554 100644 --- a/lib/action.php +++ b/lib/action.php @@ -194,37 +194,33 @@ class Action extends HTMLOutputter // lawsuit if (Event::handle('StartShowLaconicaStyles', array($this))) { $this->element('link', array('rel' => 'stylesheet', 'type' => 'text/css', - 'href' => theme_path('base/css/display.css') . '?version=' . LACONICA_VERSION, - 'media' => 'screen, projection, tv')); - $this->element('link', array('rel' => 'stylesheet', - 'type' => 'text/css', - 'href' => skin_path('css/display.css') . '?version=' . LACONICA_VERSION, + 'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION, 'media' => 'screen, projection, tv')); if (common_config('site', 'mobile')) { $this->element('link', array('rel' => 'stylesheet', 'type' => 'text/css', - 'href' => theme_path('base/css/mobile.css') . '?version=' . LACONICA_VERSION, + 'href' => theme_path('css/mobile.css', 'base') . '?version=' . LACONICA_VERSION, // TODO: "handheld" CSS for other mobile devices 'media' => 'only screen and (max-device-width: 480px)')); // Mobile WebKit } $this->element('link', array('rel' => 'stylesheet', 'type' => 'text/css', - 'href' => theme_path('base/css/print.css') . '?version=' . LACONICA_VERSION, + 'href' => theme_path('css/print.css', 'base') . '?version=' . LACONICA_VERSION, 'media' => 'print')); Event::handle('EndShowLaconicaStyles', array($this)); } if (Event::handle('StartShowUAStyles', array($this))) { $this->comment('[if IE]>comment('[if lte IE '.$ver.']>comment('[if IE]>t7_1ao1dG5H5=fedf?I_U zERrsbGN6ogMr}` z=geF#+zTQC5di=LaBdjJM@3P-0idfKA;f20*DnA(@I8qLjEKM(3u~J8S_pAFm&<9f zSPbEC7@TwLgOn1}=@gFRpkA-LjIlSH&E_!?ePIBYs;Zr6Ga4*xpF`v&- zEEdi`SF2Su6bfC-+-EQtpin4yM0AgV_}m^LaEH4M-{d zNe9pK002AF4@7iH=bR&(&2Ehsiv@`2laNxrAB{#2)9Ew=0L!vqS=K>6*rng^e_gNF z@3`x_^;WAT4=u}|=ytns97hAt;6zjd&?=Y9n`49wheK2$*>gXpP+!1HdC8#9K|%7P#8l;_13R g5kkBIaJK9D9f4f}@hqK`?*IS*07*qoM6N<$f=KKaB>(^b literal 0 HcmV?d00001 diff --git a/theme/base/default-avatar-profile.png b/theme/base/default-avatar-profile.png new file mode 100644 index 0000000000000000000000000000000000000000..f8357d4fc296271b837b3d9911cfbc133918ef2f GIT binary patch literal 2853 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 MfY_K+7Z|aDy3W6;R?}) zJJa7D+8b}%q`4{D>!4paaL(^{&bi<3xi|OxZhl9J2i|dE0WSwJ z;8&o3y8I|2|D^3LB6AAh1ik=tKx{650`H~bDI%!ZcR(rC1bhe718ACt%jLrDcH?%t zsjjXjCnqQSb+v$ri3#rCzt6pU_lQIyjE#+%-9G>yipXCx_?iVMr9J?@266xz8X9P8 zYooHV@|6(Ign@wpIy*awMx%!5Z{TeaxosGd0+dqgn0n^&moHz={{8#ev17+#bDo2E zJkFUjXSj6flJR)|25b=#9i{~+rE-CvflW@QlM^RS;BvWaq&*i`u3X{NsZ&PtOA+}5 zK$|uk1vUZf+qdtvBM;Eh(!%D=n~mm2N~yO1G^JDl@G*eb>t*N8oim5o3i!0z3_V#k~=FJ5Y5fL6fe8}a?ml+uuu{^G}w$|L-;$Zs6JIj$0x~_BN z$PvQfu<=TxwzihNd-u}N&|sOw;NTz~9UY91j{}gClY`Ia!|(S~US2-$*ouk@%F4=k z^5hA?CJiVBC@U+=c;T+DE(Qk&F>ij6NQ91#4&w2+CGxtibMoZLBzb^DBEi+GR|y0H zmgXoeElpOn`8t~M;K2hfUc8vn7mvree*L9I7=(9lp?pRVhKLLsY^fGh+wHa6mLq>rRmtXN@bp62G}dHpL_uCz)C z$U;C-QBm59mz0#SXU`r>^K9F;jl8_Pls=!&$NKf_tx^KA5CGu!`|*0cGi(lrgF}Z7 zQCwVXX^w(|0uCQOJm-#8R#tN0z=3S&OkF>l&Z}3iroFwLTeoh}-`~%M4I8MhueZE^ z7}&mjJ6pGIB^V5%>pEVqmztWI1w{c1`aJY_Ja{~wg$zw1H#hgC#9diELa!s11lWxw z0d`|afZbRUU^kWo*p2_a087E#=;$cdu3aM*i=mWCMvY1-G)+s^&Gy*^NZD7@v^nFJ zEn7xYQdM$J zqX0X|X9Eq00_G&b4EX*2SC)~P4@#-D`H9idQKK4l0DXYx?%lg7JJ;3K5eNhbg+e@g z_RO3|Lqw8y$ZVf&OJ_H1=J`Z~f`S5kJ|9(8Rde`^jEoSA#f)a3A>e((QCL_wXHZE= z$!n3V0hqPWeHv2&0JwAK&Y}~_7U6K%sE&!qkj7NbX&m76>C-%a{@gBZ8S(h>V}ik; z(d+@xMC4zlGc-d(L!3Kz&L(>EBaujO{P=NnT?d!|K7;AksEB+E`~+~}!UYBf2JGUQ z7H7|%B@&4k%}+%n3^UWLRlseaLen&M?b?Ok@5kwM+CtbsG#aI|v(vn&-M~9CO?-Bu zyA}8zCnAEEc#v$kH_im?j{fjm~#(*06q~({y(4Us6jRG4bWoPoK7ce z)~s37qXxsn!{)#96Tnx%=OQvQlalTb1>gt9u>Y{fFF>Q^!yaZRr3!&Jd2!sP5vT!P pRW4Qse&@wen|>f9B54D%{{RsfdHbSpK`#IR002ovPDHLkV1m@7$GHFi literal 0 HcmV?d00001 diff --git a/theme/cloudy/base/images/icons/icon_atom.png b/theme/base/images/icons/icon_atom.png similarity index 100% rename from theme/cloudy/base/images/icons/icon_atom.png rename to theme/base/images/icons/icon_atom.png diff --git a/theme/cloudy/base/images/icons/icon_foaf.gif b/theme/base/images/icons/icon_foaf.gif similarity index 100% rename from theme/cloudy/base/images/icons/icon_foaf.gif rename to theme/base/images/icons/icon_foaf.gif diff --git a/theme/cloudy/base/images/icons/icon_rss.png b/theme/base/images/icons/icon_rss.png similarity index 100% rename from theme/cloudy/base/images/icons/icon_rss.png rename to theme/base/images/icons/icon_rss.png diff --git a/theme/cloudy/base/images/icons/icon_vcard.gif b/theme/base/images/icons/icon_vcard.gif similarity index 100% rename from theme/cloudy/base/images/icons/icon_vcard.gif rename to theme/base/images/icons/icon_vcard.gif diff --git a/theme/cloudy/skin/default/images/icons/twotone/green/arrow-left.gif b/theme/base/images/icons/twotone/green/arrow-left.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/twotone/green/arrow-left.gif rename to theme/base/images/icons/twotone/green/arrow-left.gif diff --git a/theme/cloudy/skin/default/images/icons/twotone/green/arrow-right.gif b/theme/base/images/icons/twotone/green/arrow-right.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/twotone/green/arrow-right.gif rename to theme/base/images/icons/twotone/green/arrow-right.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/disfavourite.gif b/theme/base/images/icons/twotone/green/disfavourite.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/disfavourite.gif rename to theme/base/images/icons/twotone/green/disfavourite.gif diff --git a/theme/cloudy/skin/default/images/icons/twotone/green/edit.gif b/theme/base/images/icons/twotone/green/edit.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/twotone/green/edit.gif rename to theme/base/images/icons/twotone/green/edit.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/favourite.gif b/theme/base/images/icons/twotone/green/favourite.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/favourite.gif rename to theme/base/images/icons/twotone/green/favourite.gif diff --git a/theme/cloudy/skin/default/images/icons/twotone/green/mail.gif b/theme/base/images/icons/twotone/green/mail.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/twotone/green/mail.gif rename to theme/base/images/icons/twotone/green/mail.gif diff --git a/theme/cloudy/skin/default/images/icons/twotone/green/news.gif b/theme/base/images/icons/twotone/green/news.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/twotone/green/news.gif rename to theme/base/images/icons/twotone/green/news.gif diff --git a/theme/cloudy/skin/default/images/icons/twotone/green/quote.gif b/theme/base/images/icons/twotone/green/quote.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/twotone/green/quote.gif rename to theme/base/images/icons/twotone/green/quote.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/reply.gif b/theme/base/images/icons/twotone/green/reply.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/reply.gif rename to theme/base/images/icons/twotone/green/reply.gif diff --git a/theme/cloudy/skin/default/images/icons/twotone/green/shield.gif b/theme/base/images/icons/twotone/green/shield.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/twotone/green/shield.gif rename to theme/base/images/icons/twotone/green/shield.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/trash.gif b/theme/base/images/icons/twotone/green/trash.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/trash.gif rename to theme/base/images/icons/twotone/green/trash.gif diff --git a/theme/cloudy/base/images/illustrations/illu_jcrop.gif b/theme/base/images/illustrations/illu_jcrop.gif similarity index 100% rename from theme/cloudy/base/images/illustrations/illu_jcrop.gif rename to theme/base/images/illustrations/illu_jcrop.gif diff --git a/theme/cloudy/base/images/illustrations/illu_progress_loading-01.gif b/theme/base/images/illustrations/illu_progress_loading-01.gif similarity index 100% rename from theme/cloudy/base/images/illustrations/illu_progress_loading-01.gif rename to theme/base/images/illustrations/illu_progress_loading-01.gif diff --git a/theme/default/logo.png b/theme/base/logo.png similarity index 100% rename from theme/default/logo.png rename to theme/base/logo.png diff --git a/theme/cloudy/base/css/display.css b/theme/cloudy/css/display.css similarity index 75% rename from theme/cloudy/base/css/display.css rename to theme/cloudy/css/display.css index c71a59ef2c..151758b489 100644 --- a/theme/cloudy/base/css/display.css +++ b/theme/cloudy/css/display.css @@ -1240,3 +1240,311 @@ padding-top:160px; #tag #form_notice { display:none; } + + +html, +body, +a:active { +background-color:#9AE4E8; +} +body { +font-family:'Lucida Grande',sans-serif; +background:#9AE4E8 url(../images/illustrations/illu_clouds-01.gif) 0 0 no-repeat; +color:#333333; +} +#core { +background:url(../images/illustrations/illu_arrow-up-01.gif) no-repeat 25px 0; +} + +input, textarea, select, option { +font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif; +} +input, textarea, select, +.entity_remote_subscribe { +border-color:#aaa; +} +#filter_tags ul li { +border-color:#ddd; +} + +.form_settings input.form_action-secondary { +background:none; +} + +input.submit, +#form_notice.warning #notice_text-count, +#nav_register a, +.form_settings .form_note, +.entity_remote_subscribe { +background-color:#9BB43E; +} + +input:focus, textarea:focus, select:focus, +#form_notice.warning #notice_data-text { +border-color:#9BB43E; +} +input.submit, +#nav_register a, +.entity_remote_subscribe { +color:#fff; +} + +a, +div.notice-options input, +.form_user_block input.submit, +.form_user_unblock input.submit, +.entity_send-a-message a, +.form_user_nudge input.submit, +.entity_nudge p, +.form_settings input.form_action-secondary { +color:#0084B4; +} + +.notice, +.profile { +border-top-color:#DDFFCC; +} +.section .profile { +border-top-color:#87B4C8; +} + + +#content .notice p.entry-content a:visited { +background-color:#fcfcfc; +} +#content .notice p.entry-content .vcard a { +background-color:#fcfffc; +} + +#aside_primary { +background-color:#DDFFCC; +} + + +#notice_text-count { +color:#333; +} +#form_notice.warning #notice_text-count { +color:#000; +} +#form_notice.processing #notice_action-submit { +background:#fff url(../../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; +cursor:wait; +text-indent:-9999px; +} + +#content, +#site_nav_local_views a, +#aside_primary { +border-color:#fff; +} +#content, +#site_nav_local_views .current a { +background-color:#fff; +} + +#site_nav_local_views a { +background-color:rgba(135, 180, 200, 0.3); +} +#site_nav_local_views a:hover { +background-color:rgba(255, 255, 255, 0.7); +} + + +.error { +background-color:#F7E8E8; +} +.success { +background-color:#EFF3DC; +} + + +#anon_notice { +background-color:#FEFFDF; +color:#333; +border-color:#fff; +} + +#showstream #anon_notice { +background-color:#FEFFDF; +} + + +#export_data li a { +background-repeat:no-repeat; +background-position:0 45%; +} +#export_data li a.rss { +background-image:url(../../base/images/icons/icon_rss.png); +} +#export_data li a.atom { +background-image:url(../../base/images/icons/icon_atom.png); +} +#export_data li a.foaf { +background-image:url(../../base/images/icons/icon_foaf.gif); +} + +.entity_edit a, +.entity_send-a-message a, +.form_user_nudge input.submit, +.form_user_block input.submit, +.form_user_unblock input.submit, +.entity_nudge p { +background-position: 0 40%; +background-repeat: no-repeat; +background-color:transparent; +} +.form_group_join input.submit, +.form_group_leave input.submit +.form_user_subscribe input.submit, +.form_user_unsubscribe input.submit { +background-color:#9BB43E; +color:#fff; +} +.form_user_unsubscribe input.submit, +.form_group_leave input.submit { +background-color:#87B4C8; +} + +.entity_edit a { +background-image:url(../images/icons/twotone/green/edit.gif); +} +.entity_send-a-message a { +background-image:url(../images/icons/twotone/green/quote.gif); +} +.entity_nudge p, +.form_user_nudge input.submit { +background-image:url(../images/icons/twotone/green/mail.gif); +} +.form_user_block input.submit, +.form_user_unblock input.submit { +background-image:url(../images/icons/twotone/green/shield.gif); +} + + + +/* NOTICES */ +.notices li.over { +background-color:#fcfcfc; +} + +.notice-options .notice_reply a, +.notice-options form input.submit { +background-color:transparent; +} +.notice-options .notice_reply a { +background:transparent url(../images/icons/icon_reply.gif) no-repeat 0 45%; +} +.notice-options form.form_favor input.submit { +background:transparent url(../images/icons/icon_favourite.gif) no-repeat 0 45%; +} +.notice-options form.form_disfavor input.submit { +background:transparent url(../images/icons/icon_disfavourite.gif) no-repeat 0 45%; +} +.notice-options .notice_delete a { +background:transparent url(../images/icons/icon_trash.gif) no-repeat 0 45%; +} + +.notices div.entry-content, +.notices div.notice-options { +opacity:0.4; +} +.notices li.hover div.entry-content, +.notices li.hover div.notice-options { +opacity:1; +} +div.entry-content { +color:#333; +} +div.notice-options a, +div.notice-options input { +font-family:sans-serif; +} +.notices li.hover { +background-color:#fcfcfc; +} +/*END: NOTICES */ + + +#new_group a { +background:transparent url(../../base/images/icons/twotone/green/news.gif) no-repeat 0 45%; +} + +.pagination .nav_prev a, +.pagination .nav_next a { +background-repeat:no-repeat; +border-color:#DDFFCC; +} +.pagination .nav_prev a { +background-image:url(../../base/images/icons/twotone/green/arrow-left.gif); +background-position:10% 45%; +} +.pagination .nav_next a { +background-image:url(../../base/images/icons/twotone/green/arrow-right.gif); +background-position:90% 45%; +} + + +/*--------------------------------------*/ + +#anon_notice { +background:url(../images/illustrations/illu_unicorn-01.png) no-repeat 0 0; +} +#showstream #anon_notice, +#content .notice p.entry-content a:visited, +content .notice p.entry-content .vcard a { +background-color:transparent; +} + +#anon_notice p { +background-color:#FEFFDF; +border-color:#FFFF00; +} + + +#form_notice .form_note { +color:#CCC; +} +input.submit { +background-color:#eee; +color:#666; +} + +.notices li.hover { +background-color:#F7F7F7; +} + + +.notice div.entry-content, +.notice div.entry-content a { +color:#999; +} + +.notices div.entry-content, +.notices div.notice-options { +opacity:1; +} + +#site_nav_local_views { +background-color:#DDFFCC; +} +#site_nav_local_views li, +#aside_primary { +border-color:#BDDCAD; +} +#site_nav_local_views a, +.aside .section h2 { +background-color:transparent; +border-color:transparent; +color:#4C4C4C; +} +#site_nav_local_views .current { +border-left-color:#fff; +} + +#site_nav_local_views .current a, +#site_nav_global_primary, +#footer { +background-color:#fff; +} + diff --git a/theme/cloudy/skin/default/css/ie.css b/theme/cloudy/css/ie.css similarity index 100% rename from theme/cloudy/skin/default/css/ie.css rename to theme/cloudy/css/ie.css diff --git a/theme/default/base/images/icons/icon_atom.png b/theme/cloudy/images/icons/icon_atom.png similarity index 100% rename from theme/default/base/images/icons/icon_atom.png rename to theme/cloudy/images/icons/icon_atom.png diff --git a/theme/cloudy/skin/default/images/icons/icon_disfavourite.gif b/theme/cloudy/images/icons/icon_disfavourite.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/icon_disfavourite.gif rename to theme/cloudy/images/icons/icon_disfavourite.gif diff --git a/theme/cloudy/skin/default/images/icons/icon_favourite.gif b/theme/cloudy/images/icons/icon_favourite.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/icon_favourite.gif rename to theme/cloudy/images/icons/icon_favourite.gif diff --git a/theme/cloudy/skin/default/images/icons/icon_foaf.gif b/theme/cloudy/images/icons/icon_foaf.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/icon_foaf.gif rename to theme/cloudy/images/icons/icon_foaf.gif diff --git a/theme/cloudy/base/images/icons/icon_processing.gif b/theme/cloudy/images/icons/icon_processing.gif similarity index 100% rename from theme/cloudy/base/images/icons/icon_processing.gif rename to theme/cloudy/images/icons/icon_processing.gif diff --git a/theme/cloudy/skin/default/images/icons/icon_reply.gif b/theme/cloudy/images/icons/icon_reply.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/icon_reply.gif rename to theme/cloudy/images/icons/icon_reply.gif diff --git a/theme/default/base/images/icons/icon_rss.png b/theme/cloudy/images/icons/icon_rss.png similarity index 100% rename from theme/default/base/images/icons/icon_rss.png rename to theme/cloudy/images/icons/icon_rss.png diff --git a/theme/cloudy/skin/default/images/icons/icon_trash.gif b/theme/cloudy/images/icons/icon_trash.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/icon_trash.gif rename to theme/cloudy/images/icons/icon_trash.gif diff --git a/theme/cloudy/skin/default/images/icons/icon_vcard.gif b/theme/cloudy/images/icons/icon_vcard.gif similarity index 100% rename from theme/cloudy/skin/default/images/icons/icon_vcard.gif rename to theme/cloudy/images/icons/icon_vcard.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/arrow-left.gif b/theme/cloudy/images/icons/twotone/green/arrow-left.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/arrow-left.gif rename to theme/cloudy/images/icons/twotone/green/arrow-left.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/arrow-right.gif b/theme/cloudy/images/icons/twotone/green/arrow-right.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/arrow-right.gif rename to theme/cloudy/images/icons/twotone/green/arrow-right.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/edit.gif b/theme/cloudy/images/icons/twotone/green/edit.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/edit.gif rename to theme/cloudy/images/icons/twotone/green/edit.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/mail.gif b/theme/cloudy/images/icons/twotone/green/mail.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/mail.gif rename to theme/cloudy/images/icons/twotone/green/mail.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/news.gif b/theme/cloudy/images/icons/twotone/green/news.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/news.gif rename to theme/cloudy/images/icons/twotone/green/news.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/quote.gif b/theme/cloudy/images/icons/twotone/green/quote.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/quote.gif rename to theme/cloudy/images/icons/twotone/green/quote.gif diff --git a/theme/default/skin/default/images/icons/twotone/green/shield.gif b/theme/cloudy/images/icons/twotone/green/shield.gif similarity index 100% rename from theme/default/skin/default/images/icons/twotone/green/shield.gif rename to theme/cloudy/images/icons/twotone/green/shield.gif diff --git a/theme/cloudy/skin/default/images/illustrations/illu_arrow-up-01.gif b/theme/cloudy/images/illustrations/illu_arrow-up-01.gif similarity index 100% rename from theme/cloudy/skin/default/images/illustrations/illu_arrow-up-01.gif rename to theme/cloudy/images/illustrations/illu_arrow-up-01.gif diff --git a/theme/cloudy/skin/default/images/illustrations/illu_clouds-01.gif b/theme/cloudy/images/illustrations/illu_clouds-01.gif similarity index 100% rename from theme/cloudy/skin/default/images/illustrations/illu_clouds-01.gif rename to theme/cloudy/images/illustrations/illu_clouds-01.gif diff --git a/theme/default/base/images/illustrations/illu_jcrop.gif b/theme/cloudy/images/illustrations/illu_jcrop.gif similarity index 100% rename from theme/default/base/images/illustrations/illu_jcrop.gif rename to theme/cloudy/images/illustrations/illu_jcrop.gif diff --git a/theme/default/base/images/illustrations/illu_progress_loading-01.gif b/theme/cloudy/images/illustrations/illu_progress_loading-01.gif similarity index 100% rename from theme/default/base/images/illustrations/illu_progress_loading-01.gif rename to theme/cloudy/images/illustrations/illu_progress_loading-01.gif diff --git a/theme/cloudy/skin/default/images/illustrations/illu_unicorn-01.png b/theme/cloudy/images/illustrations/illu_unicorn-01.png similarity index 100% rename from theme/cloudy/skin/default/images/illustrations/illu_unicorn-01.png rename to theme/cloudy/images/illustrations/illu_unicorn-01.png diff --git a/theme/cloudy/skin/default/css/display.css b/theme/cloudy/skin/default/css/display.css deleted file mode 100644 index b30ca9d0da..0000000000 --- a/theme/cloudy/skin/default/css/display.css +++ /dev/null @@ -1,314 +0,0 @@ -/** theme: twitter - * - * @package Laconica - * @author Sarven Capadisli - * @copyright 2009 Control Yourself, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ - */ -html, -body, -a:active { -background-color:#9AE4E8; -} -body { -font-family:'Lucida Grande',sans-serif; -background:#9AE4E8 url(../images/illustrations/illu_clouds-01.gif) 0 0 no-repeat; -color:#333333; -} -#core { -background:url(../images/illustrations/illu_arrow-up-01.gif) no-repeat 25px 0; -} - -input, textarea, select, option { -font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif; -} -input, textarea, select, -.entity_remote_subscribe { -border-color:#aaa; -} -#filter_tags ul li { -border-color:#ddd; -} - -.form_settings input.form_action-secondary { -background:none; -} - -input.submit, -#form_notice.warning #notice_text-count, -#nav_register a, -.form_settings .form_note, -.entity_remote_subscribe { -background-color:#9BB43E; -} - -input:focus, textarea:focus, select:focus, -#form_notice.warning #notice_data-text { -border-color:#9BB43E; -} -input.submit, -#nav_register a, -.entity_remote_subscribe { -color:#fff; -} - -a, -div.notice-options input, -.form_user_block input.submit, -.form_user_unblock input.submit, -.entity_send-a-message a, -.form_user_nudge input.submit, -.entity_nudge p, -.form_settings input.form_action-secondary { -color:#0084B4; -} - -.notice, -.profile { -border-top-color:#DDFFCC; -} -.section .profile { -border-top-color:#87B4C8; -} - - -#content .notice p.entry-content a:visited { -background-color:#fcfcfc; -} -#content .notice p.entry-content .vcard a { -background-color:#fcfffc; -} - -#aside_primary { -background-color:#DDFFCC; -} - - -#notice_text-count { -color:#333; -} -#form_notice.warning #notice_text-count { -color:#000; -} -#form_notice.processing #notice_action-submit { -background:#fff url(../../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; -cursor:wait; -text-indent:-9999px; -} - -#content, -#site_nav_local_views a, -#aside_primary { -border-color:#fff; -} -#content, -#site_nav_local_views .current a { -background-color:#fff; -} - -#site_nav_local_views a { -background-color:rgba(135, 180, 200, 0.3); -} -#site_nav_local_views a:hover { -background-color:rgba(255, 255, 255, 0.7); -} - - -.error { -background-color:#F7E8E8; -} -.success { -background-color:#EFF3DC; -} - - -#anon_notice { -background-color:#FEFFDF; -color:#333; -border-color:#fff; -} - -#showstream #anon_notice { -background-color:#FEFFDF; -} - - -#export_data li a { -background-repeat:no-repeat; -background-position:0 45%; -} -#export_data li a.rss { -background-image:url(../../../base/images/icons/icon_rss.png); -} -#export_data li a.atom { -background-image:url(../../../base/images/icons/icon_atom.png); -} -#export_data li a.foaf { -background-image:url(../../../base/images/icons/icon_foaf.gif); -} - -.entity_edit a, -.entity_send-a-message a, -.form_user_nudge input.submit, -.form_user_block input.submit, -.form_user_unblock input.submit, -.entity_nudge p { -background-position: 0 40%; -background-repeat: no-repeat; -background-color:transparent; -} -.form_group_join input.submit, -.form_group_leave input.submit -.form_user_subscribe input.submit, -.form_user_unsubscribe input.submit { -background-color:#9BB43E; -color:#fff; -} -.form_user_unsubscribe input.submit, -.form_group_leave input.submit { -background-color:#87B4C8; -} - -.entity_edit a { -background-image:url(../images/icons/twotone/green/edit.gif); -} -.entity_send-a-message a { -background-image:url(../images/icons/twotone/green/quote.gif); -} -.entity_nudge p, -.form_user_nudge input.submit { -background-image:url(../images/icons/twotone/green/mail.gif); -} -.form_user_block input.submit, -.form_user_unblock input.submit { -background-image:url(../images/icons/twotone/green/shield.gif); -} - - - -/* NOTICES */ -.notices li.over { -background-color:#fcfcfc; -} - -.notice-options .notice_reply a, -.notice-options form input.submit { -background-color:transparent; -} -.notice-options .notice_reply a { -background:transparent url(../images/icons/icon_reply.gif) no-repeat 0 45%; -} -.notice-options form.form_favor input.submit { -background:transparent url(../images/icons/icon_favourite.gif) no-repeat 0 45%; -} -.notice-options form.form_disfavor input.submit { -background:transparent url(../images/icons/icon_disfavourite.gif) no-repeat 0 45%; -} -.notice-options .notice_delete a { -background:transparent url(../images/icons/icon_trash.gif) no-repeat 0 45%; -} - -.notices div.entry-content, -.notices div.notice-options { -opacity:0.4; -} -.notices li.hover div.entry-content, -.notices li.hover div.notice-options { -opacity:1; -} -div.entry-content { -color:#333; -} -div.notice-options a, -div.notice-options input { -font-family:sans-serif; -} -.notices li.hover { -background-color:#fcfcfc; -} -/*END: NOTICES */ - - -#new_group a { -background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%; -} - -.pagination .nav_prev a, -.pagination .nav_next a { -background-repeat:no-repeat; -border-color:#DDFFCC; -} -.pagination .nav_prev a { -background-image:url(../images/icons/twotone/green/arrow-left.gif); -background-position:10% 45%; -} -.pagination .nav_next a { -background-image:url(../images/icons/twotone/green/arrow-right.gif); -background-position:90% 45%; -} - - -/*--------------------------------------*/ - -#anon_notice { -background:url(../images/illustrations/illu_unicorn-01.png) no-repeat 0 0; -} -#showstream #anon_notice, -#content .notice p.entry-content a:visited, -content .notice p.entry-content .vcard a { -background-color:transparent; -} - -#anon_notice p { -background-color:#FEFFDF; -border-color:#FFFF00; -} - - -#form_notice .form_note { -color:#CCC; -} -input.submit { -background-color:#eee; -color:#666; -} - -.notices li.hover { -background-color:#F7F7F7; -} - - -.notice div.entry-content, -.notice div.entry-content a { -color:#999; -} - -.notices div.entry-content, -.notices div.notice-options { -opacity:1; -} - -#site_nav_local_views { -background-color:#DDFFCC; -} -#site_nav_local_views li, -#aside_primary { -border-color:#BDDCAD; -} -#site_nav_local_views a, -.aside .section h2 { -background-color:transparent; -border-color:transparent; -color:#4C4C4C; -} -#site_nav_local_views .current { -border-left-color:#fff; -} - -#site_nav_local_views .current a, -#site_nav_global_primary, -#footer { -background-color:#fff; -} - diff --git a/theme/cloudy/skin/default/images/icons/icon_atom.jpg b/theme/cloudy/skin/default/images/icons/icon_atom.jpg deleted file mode 100644 index 22853edc43ff04778001d28e5e14e64b32693f05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmex=xE0R}-11_1^EW=25anV3L`8Hkvf zSy(w(Sy@>Qk2+yV?tKuefdm_beh zs;mXdF|Y`-3Mm>ovIz$!vMUve7&T5@$f4}C@t|nX#SbdRNkvVZTw>x9l2WQ_>Kd9_ zCZ=ZQ7M51dF0O9w9-dyoA)#U65s^{JDXD4c8JStdC8cHM6_r)ZEv;?s9i3g1CQq3< zZTgIvvlcC0vUJ(<6)RV5+Pr1!w(UE1?mBe%$kAiRPnGGAU*RJ2VdF$b$$4{O< zd;a3(tB;>PfBE|D`;VW$7#Wx$-T{&r{s9I*BNGb?GYdP&Ka5P}K+G)2!m4P(ZXWYowZ;xuvL#)F*7#z7xMlZq~KiK&=8RQ(9@64*z?d8mmjAHh8Y_s{=Z3_Q$? zz+}TL$Y9U#^*!s4{C`4kQ@{F)F8#NE<^7nNX{$BEX7;OWE|d3v8oxYgwT`W+-_*q- z+uzjLw=VzM)weYJobTH^U)E+Hs>*NOQoXkN(6;Tf#Fj2Ov+-`EuiCfmW$ej|9|&k>x-`dJy*iwaIS@snEOaP0Pi8o%z1YZ)MKM zRh|Np+Y=60roJjLZm^p5YSuI*^Cmyt+P{5LF*_nZUCA@@&Al93&$PVvpTfaM*5M!4 zAAY>*^{;80%VnnTYCTgO_i(zRpnz~I%X9Ugp$`rGx_=#0x)>OxdU^ku>!Q7(i@)aR QKG!^Hc0cZ<-tqr80k4%pzW@LL diff --git a/theme/cloudy/skin/default/images/icons/icon_rss.jpg b/theme/cloudy/skin/default/images/icons/icon_rss.jpg deleted file mode 100644 index da23422d0616d0d2925545214c2591b78dd1d6cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmex=Qa5@J#!Vq&6< zKy9o*9jvTeqI^7je4?a+|3?@XF)%Q)GJ*jxbisg;3FsI$b`DN1ZUF`+pe0N!%pj)$ zRn`LK7+3^Zg%k}P*@OcV*_8@Kj2b5{ECr+Nabot8FYu9hwy!G(W<0ns_ zJ%91?)yGetzkL1n{m0K=j10^W?*K^*{{VxZk%@(cnS~wXA4aBfAZ8Y1VO2C_6LJh> zPb?HxGHT=yahkYr<3Ubk6e=l{~ZV&R(P($<#Tc_eT}|Zsr;?yuxz;gdKo>o08iH_ez(7J*Xx$0_w2DP{4nd=rPuyD z`a)(@-l|)kedxsE9m)%3QmU^v_nh7s>82){>G!efn0MO#wHIGL{c+0jtmNgD(xyum zefR%$bCwl<_gg!Wm##8d)9z_*-yNvB?~T)ip1kmw&vVT4op{R=4C8OwoLuR)CoA_` zOx3bo_v7ZyN>|fo)OqB&T-^0={g$N{mw&I*Tx@-;&iYcF!b_?4mOt{Tt77hWuXV3n z?EbBWV{xfmmW=#VXK{s+mvPsWMca>EoX5{A_C9zP*X`J>JyYMgG3%|L9@=Its - * @author Sarven Capadisli - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ - */ - -body { -font-size:2.5em; -} - -#wrap { -width:95%; -} - -#header, -#header address, -#anon_notice, -#site_nav_local_views .nav, -#form_notice, -#form_notice .form_data li, -#core, -#content_inner, -#notices_primary, -.notice, -.notice .entry-title, -.notice div.entry-content, -.notice-options, -.notice .notice-options a, -.pagination, -.pagination .nav, -.aside .section { -float:none; -} - -.notice-options .notice_reply, -.notice-options .notice_delete, -.notice-options .form_favor, -.notice-options .form_disfavor { -position:static; -} - -#form_notice, -#anon_notice, -#footer, -#form_notice .form_actions input.submit { -width:auto; -} - -.form_settings label { -width:25%; -} -.form_settings .form_data p.form_guide { -margin-left:26%; -} - -#site_nav_global_primary { -width:75%; -} - -.entity_profile { -width:65%; -} -.entity_actions { -margin-left:0; -} - -#form_notice, -#anon_notice { -clear:both; -} - -#content, -#aside_primary { -width:96%; -padding-left:2%; -padding-right:2%; -} - -#site_notice { -position:static; -float:right; -clear:right; -width:75%; -margin-right:0; -margin-bottom:11px; -} - -.notices { -font-size:1.5em; -} - -#form_notice textarea { -width:80%; -height:5em; -} -#form_notice .form_note { -right:20%; -top:6em; -} - - -.vcard .photo, -.section .vcard .photo { -margin-right:18px; -} -.notice, -.profile { -margin-bottom:18px; -} - -.notices .entry-title, -.notices div.entry-content { -width:90%; -} -.notice div.entry-content { -margin-left:0; -} - -.notice .author .photo { -height:4.5em; -width:4.5em; -} -.notice-options { -position:absolute; -top:0; -right:0; -padding-left:7%; -width:3%; -} - -.notice-options .notice_delete a { -float:left; -} -.pagination .nav { -overflow:auto; -} - -#export_data { -display:none; -} - -#site_nav_local_views li { -margin-right:4px; -} -#site_nav_local_views a { -padding:18px 11px; -} diff --git a/theme/default/base/css/print.css b/theme/default/base/css/print.css deleted file mode 100644 index d76dd608c4..0000000000 --- a/theme/default/base/css/print.css +++ /dev/null @@ -1,36 +0,0 @@ -/** theme: base - * - * @package Laconica - * @author Sarven Capadisli - * @copyright 2009 Control Yourself, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ - */ - -a:after { background-color:#fff; } -a:not([href^="#"]):after { content:" ( "attr(href)" ) "; } - -img { border:none; } -p { orphans: 2; widows: 1; } - -#site_nav_global_primary, -#site_nav_local_views, -#form_notice, -.pagination, -#site_nav_global_secondary, -.entity_actions, -.notice-options, -#aside_primary, -.form_subscription_edit .submit { -display:none; -} - -.timestamp dt, .timestamp dd, -.device dt, .device dd { -display:inline; -} - -.profiles li, -.notices li { -margin-bottom:18px; -} diff --git a/theme/default/base/css/thickbox.css b/theme/default/base/css/thickbox.css deleted file mode 100644 index d24b9bedff..0000000000 --- a/theme/default/base/css/thickbox.css +++ /dev/null @@ -1,163 +0,0 @@ -/* ----------------------------------------------------------------------------------------------------------------*/ -/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ -/* ----------------------------------------------------------------------------------------------------------------*/ -*{padding: 0; margin: 0;} - -/* ----------------------------------------------------------------------------------------------------------------*/ -/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ -/* ----------------------------------------------------------------------------------------------------------------*/ -#TB_window { - font: 12px Arial, Helvetica, sans-serif; - color: #333333; -} - -#TB_secondLine { - font: 10px Arial, Helvetica, sans-serif; - color:#666666; -} - -#TB_window a:link {color: #666666;} -#TB_window a:visited {color: #666666;} -#TB_window a:hover {color: #000;} -#TB_window a:active {color: #666666;} -#TB_window a:focus{color: #666666;} - -/* ----------------------------------------------------------------------------------------------------------------*/ -/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ -/* ----------------------------------------------------------------------------------------------------------------*/ -#TB_overlay { - position: fixed; - z-index:100; - top: 0px; - left: 0px; - height:100%; - width:100%; -} - -.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;} -.TB_overlayBG { - background-color:#000; - filter:alpha(opacity=75); - -moz-opacity: 0.75; - opacity: 0.75; -} - -* html #TB_overlay { /* ie6 hack */ - position: absolute; - height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); -} - -#TB_window { - position: fixed; - background: #ffffff; - z-index: 102; - color:#000000; - display:none; - border: 4px solid #525252; - text-align:left; - top:50%; - left:50%; -} - -* html #TB_window { /* ie6 hack */ -position: absolute; -margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); -} - -#TB_window img#TB_Image { - display:block; - margin: 15px 0 0 15px; - border-right: 1px solid #ccc; - border-bottom: 1px solid #ccc; - border-top: 1px solid #666; - border-left: 1px solid #666; -} - -#TB_caption{ - height:25px; - padding:7px 30px 10px 25px; - float:left; -} - -#TB_closeWindow{ - height:25px; - padding:11px 25px 10px 0; - float:right; -} - -#TB_closeAjaxWindow{ - padding:7px 10px 5px 0; - margin-bottom:1px; - text-align:right; - float:right; -} - -#TB_ajaxWindowTitle{ - float:left; - padding:7px 0 5px 10px; - margin-bottom:1px; -} - -#TB_title{ - background-color:#e8e8e8; - height:27px; -} - -#TB_ajaxContent{ - clear:both; - padding:2px 15px 15px 15px; - overflow:auto; - text-align:left; - line-height:1.4em; -} - -#TB_ajaxContent.TB_modal{ - padding:15px; -} - -#TB_ajaxContent p{ - padding:5px 0px 5px 0px; -} - -#TB_load{ - position: fixed; - display:none; - height:13px; - width:208px; - z-index:103; - top: 50%; - left: 50%; - margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */ -} - -* html #TB_load { /* ie6 hack */ -position: absolute; -margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); -} - -#TB_HideSelect{ - z-index:99; - position:fixed; - top: 0; - left: 0; - background-color:#fff; - border:none; - filter:alpha(opacity=0); - -moz-opacity: 0; - opacity: 0; - height:100%; - width:100%; -} - -* html #TB_HideSelect { /* ie6 hack */ - position: absolute; - height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); -} - -#TB_iframeContent{ - clear:both; - border:none; - margin-bottom:-1px; - margin-top:1px; - _margin-bottom:1px; -} diff --git a/theme/default/base/images/icons/icon_foaf.gif b/theme/default/base/images/icons/icon_foaf.gif deleted file mode 100644 index f8f78442355bf0d0b509536bca7c57b4eedab04a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1144 zcmd^;?N1ta0Dyn!iB*(>T3&i*JrF8R7w1whHElM8C<3ml?j+W9-3dwyO`2L|HqDkn z5%F#4%5=zqhahRU8WmVVw{A%ro6Wr`PE6ceVj2??L*}%}w$5a?_V3v9;raf2cvR|! zleHa30UP`^2O^P(TCHAKSg=~He14Hqsif%uZ8F&hVl+)kq!MMLzPTBX#bWfui_Upx zD&?A({APN6nl_tVpScF^4um#Ch!`OgWH@Z1X>XUc>*oB;p^^I*kHugxqzIz#MkuV+ z27e0fbavY2Z0Yob-EJpWNrkE-kx0z`GV7<3B)Q`M(a*|fwO?ze5|oczl~rJTgzvcP zz!1czQbk)^OUg=ic0LdYc>Kb`Zg=9odT3ob5qn5U- zZT@vXO;3k^3m?hNp^{WgtIf?~Vi*>WTf)DFYicA*OYfDHpIEwZfu=*Xwa2whum5W{ zlO!obgc%u(w8@kv2n>cj-+78r7)Id$weIzL7Z!R>!0^-*v5e!F&8~w3Z(YM%0)Y@I zE{Nm!F$q#$j-}IMH89-M7w}AdKk~&$^8EQ0k%;<%3Q);-{B4CovDekr^qO&h-@R)# zADB!U?U`h6#s5A^?%aeE|u=?euQDt>S{El*K_kZ{mxHA zKZiIhc5pN3^BG3p|I*eU;lW3AS9DcXD27Q~_gwCYuVpe!2=hknj|h-5S$U0@T;=iD z)k0w^HAb$Gi#YE0tpNaNntta0C!(hi1AsYD`8@ym6W|aH&PB`*h_CXP`B1cFukIl$ zs|1(%WPd!$fVg5p|HQsAS^bi1b0#pP6%J=GW{H{G^{kf%TYUG<8ipXeV7Bse-~cv| zbFQln4K0m}iaXIuv5tC2w(J<*7GbcULq^Pkw5D#|;fUDp4ksPTyrZ@I+X3#gFQA-x zk0&Fbfm(V`Kb^8?Lhb_Ijq8^l&o~_g;dlNH1SJ|q-7P$;xu;vu8g;$-KF`Z%EK&)8HeT>g)Y#vUAp}MLgmL1PV~(!a7HD+ zI?Nr*lXC$Eu30nL$d)62zg!{*uVkS>^T@WwmwfEeqXVc$01lsS6Nu{>3~=f{5zlh9 diff --git a/theme/default/base/images/icons/icon_processing.gif b/theme/default/base/images/icons/icon_processing.gif deleted file mode 100644 index d0bce1542342e912da81a2c260562df172f30d73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 diff --git a/theme/default/base/images/icons/icon_vcard.gif b/theme/default/base/images/icons/icon_vcard.gif deleted file mode 100644 index 6d52947f3e96c0f74f00a80b430f99695e110e5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 zcmV-R0kr-{Nk%w1VHW@n0K^{vi^LV;@6MUi1^D~(*6OmW*GsnCZu9x+db$Rr+7rg( zj*Y_!l*MRc(@bU8V@GBo706UV+d;tIe diff --git a/theme/default/skin/default/css/display.css b/theme/default/css/display.css similarity index 76% rename from theme/default/skin/default/css/display.css rename to theme/default/css/display.css index e290c208b0..2f41a9843c 100644 --- a/theme/default/skin/default/css/display.css +++ b/theme/default/css/display.css @@ -7,6 +7,8 @@ * @link http://laconi.ca/ */ +@import url(../../base/css/display.css); + html, body, a:active { @@ -90,7 +92,7 @@ color:#333; color:#000; } #form_notice.processing #notice_action-submit { -background:#fff url(../../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; +background:#fff url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; cursor:wait; text-indent:-9999px; } @@ -137,13 +139,13 @@ background-repeat:no-repeat; background-position:0 45%; } #export_data li a.rss { -background-image:url(../../../base/images/icons/icon_rss.png); +background-image:url(../../base/images/icons/icon_rss.png); } #export_data li a.atom { -background-image:url(../../../base/images/icons/icon_atom.png); +background-image:url(../../base/images/icons/icon_atom.png); } #export_data li a.foaf { -background-image:url(../../../base/images/icons/icon_foaf.gif); +background-image:url(../../base/images/icons/icon_foaf.gif); } .entity_edit a, @@ -170,18 +172,18 @@ background-color:#97BFD1; } .entity_edit a { -background-image:url(../images/icons/twotone/green/edit.gif); +background-image:url(../../base/images/icons/twotone/green/edit.gif); } .entity_send-a-message a { -background-image:url(../images/icons/twotone/green/quote.gif); +background-image:url(../../base/images/icons/twotone/green/quote.gif); } .entity_nudge p, .form_user_nudge input.submit { -background-image:url(../images/icons/twotone/green/mail.gif); +background-image:url(../../base/images/icons/twotone/green/mail.gif); } .form_user_block input.submit, .form_user_unblock input.submit { -background-image:url(../images/icons/twotone/green/shield.gif); +background-image:url(../../base/images/icons/twotone/green/shield.gif); } @@ -196,16 +198,16 @@ background-color:#fcfcfc; background-color:transparent; } .notice-options .notice_reply a { -background:transparent url(../images/icons/twotone/green/reply.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/reply.gif) no-repeat 0 45%; } .notice-options form.form_favor input.submit { -background:transparent url(../images/icons/twotone/green/favourite.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/favourite.gif) no-repeat 0 45%; } .notice-options form.form_disfavor input.submit { -background:transparent url(../images/icons/twotone/green/disfavourite.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/disfavourite.gif) no-repeat 0 45%; } .notice-options .notice_delete a { -background:transparent url(../images/icons/twotone/green/trash.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/trash.gif) no-repeat 0 45%; } .notices div.entry-content, @@ -230,7 +232,7 @@ background-color:#fcfcfc; #new_group a { -background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/news.gif) no-repeat 0 45%; } .pagination .nav_prev a, @@ -239,10 +241,10 @@ background-repeat:no-repeat; border-color:#D1D9E4; } .pagination .nav_prev a { -background-image:url(../images/icons/twotone/green/arrow-left.gif); +background-image:url(../../base/images/icons/twotone/green/arrow-left.gif); background-position:10% 45%; } .pagination .nav_next a { -background-image:url(../images/icons/twotone/green/arrow-right.gif); +background-image:url(../../base/images/icons/twotone/green/arrow-right.gif); background-position:90% 45%; } diff --git a/theme/default/skin/default/css/ie.css b/theme/default/css/ie.css similarity index 100% rename from theme/default/skin/default/css/ie.css rename to theme/default/css/ie.css diff --git a/theme/default/skin/default/images/icons/icon_atom.jpg b/theme/default/skin/default/images/icons/icon_atom.jpg deleted file mode 100644 index 22853edc43ff04778001d28e5e14e64b32693f05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmex=xE0R}-11_1^EW=25anV3L`8Hkvf zSy(w(Sy@>Qk2+yV?tKuefdm_beh zs;mXdF|Y`-3Mm>ovIz$!vMUve7&T5@$f4}C@t|nX#SbdRNkvVZTw>x9l2WQ_>Kd9_ zCZ=ZQ7M51dF0O9w9-dyoA)#U65s^{JDXD4c8JStdC8cHM6_r)ZEv;?s9i3g1CQq3< zZTgIvvlcC0vUJ(<6)RV5+Pr1!w(UE1?mBe%$kAiRPnGGAU*RJ2VdF$b$$4{O< zd;a3(tB;>PfBE|D`;VW$7#Wx$-T{&r{s9I*BNGb?GYdP&Ka5P}K+G)2!m4P(ZXWYowZ;xuvL#)F*7#z7xMlZq~KiK&=8RQ(9@64*z?d8mmjAHh8Y_s{=Z3_Q$? zz+}TL$Y9U#^*!s4{C`4kQ@{F)F8#NE<^7nNX{$BEX7;OWE|d3v8oxYgwT`W+-_*q- z+uzjLw=VzM)weYJobTH^U)E+Hs>*NOQoXkN(6;Tf#Fj2Ov+-`EuiCfmW$ej|9|&k>x-`dJy*iwaIS@snEOaP0Pi8o%z1YZ)MKM zRh|Np+Y=60roJjLZm^p5YSuI*^Cmyt+P{5LF*_nZUCA@@&Al93&$PVvpTfaM*5M!4 zAAY>*^{;80%VnnTYCTgO_i(zRpnz~I%X9Ugp$`rGx_=#0x)>OxdU^ku>!Q7(i@)aR QKG!^Hc0cZ<-tqr80k4%pzW@LL diff --git a/theme/default/skin/default/images/icons/icon_foaf.gif b/theme/default/skin/default/images/icons/icon_foaf.gif deleted file mode 100644 index f8f78442355bf0d0b509536bca7c57b4eedab04a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1144 zcmd^;?N1ta0Dyn!iB*(>T3&i*JrF8R7w1whHElM8C<3ml?j+W9-3dwyO`2L|HqDkn z5%F#4%5=zqhahRU8WmVVw{A%ro6Wr`PE6ceVj2??L*}%}w$5a?_V3v9;raf2cvR|! zleHa30UP`^2O^P(TCHAKSg=~He14Hqsif%uZ8F&hVl+)kq!MMLzPTBX#bWfui_Upx zD&?A({APN6nl_tVpScF^4um#Ch!`OgWH@Z1X>XUc>*oB;p^^I*kHugxqzIz#MkuV+ z27e0fbavY2Z0Yob-EJpWNrkE-kx0z`GV7<3B)Q`M(a*|fwO?ze5|oczl~rJTgzvcP zz!1czQbk)^OUg=ic0LdYc>Kb`Zg=9odT3ob5qn5U- zZT@vXO;3k^3m?hNp^{WgtIf?~Vi*>WTf)DFYicA*OYfDHpIEwZfu=*Xwa2whum5W{ zlO!obgc%u(w8@kv2n>cj-+78r7)Id$weIzL7Z!R>!0^-*v5e!F&8~w3Z(YM%0)Y@I zE{Nm!F$q#$j-}IMH89-M7w}AdKk~&$^8EQ0k%;<%3Q);-{B4CovDekr^qO&h-@R)# zADB!U?U`h6#s5A^?%aeE|u=?euQDt>S{El*K_kZ{mxHA zKZiIhc5pN3^BG3p|I*eU;lW3AS9DcXD27Q~_gwCYuVpe!2=hknj|h-5S$U0@T;=iD z)k0w^HAb$Gi#YE0tpNaNntta0C!(hi1AsYD`8@ym6W|aH&PB`*h_CXP`B1cFukIl$ zs|1(%WPd!$fVg5p|HQsAS^bi1b0#pP6%J=GW{H{G^{kf%TYUG<8ipXeV7Bse-~cv| zbFQln4K0m}iaXIuv5tC2w(J<*7GbcULq^Pkw5D#|;fUDp4ksPTyrZ@I+X3#gFQA-x zk0&Fbfm(V`Kb^8?Lhb_Ijq8^l&o~_g;dlNH1SJ|q-7P$;xu;vu8g;$-KF`Z%EK&)8HeT>g)Y#vUAp}MLgmL1PV~(!a7HD+ zI?Nr*lXC$Eu30nL$d)62zg!{*uVkS>^T@WwmwfEeqXVc$01lsS6Nu{>3~=f{5zlh9 diff --git a/theme/default/skin/default/images/icons/icon_rss.jpg b/theme/default/skin/default/images/icons/icon_rss.jpg deleted file mode 100644 index da23422d0616d0d2925545214c2591b78dd1d6cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmex=Qa5@J#!Vq&6< zKy9o*9jvTeqI^7je4?a+|3?@XF)%Q)GJ*jxbisg;3FsI$b`DN1ZUF`+pe0N!%pj)$ zRn`LK7+3^Zg%k}P*@OcV*_8@Kj2b5{ECr+Nabot8FYu9hwy!G(W<0ns_ zJ%91?)yGetzkL1n{m0K=j10^W?*K^*{{VxZk%@(cnS~wXA4aBfAZ8Y1VO2C_6LJh> zPb?HxGHT=yahkYr<3Ubk6e=l{~ZV&R(P($<#Tc_eT}|Zsr;?yuxz;gdKo>o08iH_ez(7J*Xx$0_w2DP{4nd=rPuyD z`a)(@-l|)kedxsE9m)%3QmU^v_nh7s>82){>G!efn0MO#wHIGL{c+0jtmNgD(xyum zefR%$bCwl<_gg!Wm##8d)9z_*-yNvB?~T)ip1kmw&vVT4op{R=4C8OwoLuR)CoA_` zOx3bo_v7ZyN>|fo)OqB&T-^0={g$N{mw&I*Tx@-;&iYcF!b_?4mOt{Tt77hWuXV3n z?EbBWV{xfmmW=#VXK{s+mvPsWMca>EoX5{A_C9zP*X`J>JyYMgG3%|L9@=ItsMRc(@bU8V@GBo706UV+d;tIe diff --git a/theme/default/skin/identica/images/icons/icon_atom.jpg b/theme/default/skin/identica/images/icons/icon_atom.jpg deleted file mode 100644 index 22853edc43ff04778001d28e5e14e64b32693f05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmex=xE0R}-11_1^EW=25anV3L`8Hkvf zSy(w(Sy@>Qk2+yV?tKuefdm_beh zs;mXdF|Y`-3Mm>ovIz$!vMUve7&T5@$f4}C@t|nX#SbdRNkvVZTw>x9l2WQ_>Kd9_ zCZ=ZQ7M51dF0O9w9-dyoA)#U65s^{JDXD4c8JStdC8cHM6_r)ZEv;?s9i3g1CQq3< zZTgIvvlcC0vUJ(<6)RV5+Pr1!w(UE1?mBe%$kAiRPnGGAU*RJ2VdF$b$$4{O< zd;a3(tB;>PfBE|D`;VW$7#Wx$-T{&r{s9I*BNGb?GYdP&Ka5P}K+G)2!m4P(ZXWYowZ;xuvL#)F*7#z7xMlZq~KiK&=8RQ(9@64*z?d8mmjAHh8Y_s{=Z3_Q$? zz+}TL$Y9U#^*!s4{C`4kQ@{F)F8#NE<^7nNX{$BEX7;OWE|d3v8oxYgwT`W+-_*q- z+uzjLw=VzM)weYJobTH^U)E+Hs>*NOQoXkN(6;Tf#Fj2Ov+-`EuiCfmW$ej|9|&k>x-`dJy*iwaIS@snEOaP0Pi8o%z1YZ)MKM zRh|Np+Y=60roJjLZm^p5YSuI*^Cmyt+P{5LF*_nZUCA@@&Al93&$PVvpTfaM*5M!4 zAAY>*^{;80%VnnTYCTgO_i(zRpnz~I%X9Ugp$`rGx_=#0x)>OxdU^ku>!Q7(i@)aR QKG!^Hc0cZ<-tqr80k4%pzW@LL diff --git a/theme/default/skin/identica/images/icons/icon_foaf.gif b/theme/default/skin/identica/images/icons/icon_foaf.gif deleted file mode 100644 index f8f78442355bf0d0b509536bca7c57b4eedab04a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1144 zcmd^;?N1ta0Dyn!iB*(>T3&i*JrF8R7w1whHElM8C<3ml?j+W9-3dwyO`2L|HqDkn z5%F#4%5=zqhahRU8WmVVw{A%ro6Wr`PE6ceVj2??L*}%}w$5a?_V3v9;raf2cvR|! zleHa30UP`^2O^P(TCHAKSg=~He14Hqsif%uZ8F&hVl+)kq!MMLzPTBX#bWfui_Upx zD&?A({APN6nl_tVpScF^4um#Ch!`OgWH@Z1X>XUc>*oB;p^^I*kHugxqzIz#MkuV+ z27e0fbavY2Z0Yob-EJpWNrkE-kx0z`GV7<3B)Q`M(a*|fwO?ze5|oczl~rJTgzvcP zz!1czQbk)^OUg=ic0LdYc>Kb`Zg=9odT3ob5qn5U- zZT@vXO;3k^3m?hNp^{WgtIf?~Vi*>WTf)DFYicA*OYfDHpIEwZfu=*Xwa2whum5W{ zlO!obgc%u(w8@kv2n>cj-+78r7)Id$weIzL7Z!R>!0^-*v5e!F&8~w3Z(YM%0)Y@I zE{Nm!F$q#$j-}IMH89-M7w}AdKk~&$^8EQ0k%;<%3Q);-{B4CovDekr^qO&h-@R)# zADB!U?U`h6#s5A^?%aeE|u=?euQDt>S{El*K_kZ{mxHA zKZiIhc5pN3^BG3p|I*eU;lW3AS9DcXD27Q~_gwCYuVpe!2=hknj|h-5S$U0@T;=iD z)k0w^HAb$Gi#YE0tpNaNntta0C!(hi1AsYD`8@ym6W|aH&PB`*h_CXP`B1cFukIl$ zs|1(%WPd!$fVg5p|HQsAS^bi1b0#pP6%J=GW{H{G^{kf%TYUG<8ipXeV7Bse-~cv| zbFQln4K0m}iaXIuv5tC2w(J<*7GbcULq^Pkw5D#|;fUDp4ksPTyrZ@I+X3#gFQA-x zk0&Fbfm(V`Kb^8?Lhb_Ijq8^l&o~_g;dlNH1SJ|q-7P$;xu;vu8g;$-KF`Z%EK&)8HeT>g)Y#vUAp}MLgmL1PV~(!a7HD+ zI?Nr*lXC$Eu30nL$d)62zg!{*uVkS>^T@WwmwfEeqXVc$01lsS6Nu{>3~=f{5zlh9 diff --git a/theme/default/skin/identica/images/icons/icon_rss.jpg b/theme/default/skin/identica/images/icons/icon_rss.jpg deleted file mode 100644 index da23422d0616d0d2925545214c2591b78dd1d6cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmex=Qa5@J#!Vq&6< zKy9o*9jvTeqI^7je4?a+|3?@XF)%Q)GJ*jxbisg;3FsI$b`DN1ZUF`+pe0N!%pj)$ zRn`LK7+3^Zg%k}P*@OcV*_8@Kj2b5{ECr+Nabot8FYu9hwy!G(W<0ns_ zJ%91?)yGetzkL1n{m0K=j10^W?*K^*{{VxZk%@(cnS~wXA4aBfAZ8Y1VO2C_6LJh> zPb?HxGHT=yahkYr<3Ubk6e=l{~ZV&R(P($<#Tc_eT}|Zsr;?yuxz;gdKo>o08iH_ez(7J*Xx$0_w2DP{4nd=rPuyD z`a)(@-l|)kedxsE9m)%3QmU^v_nh7s>82){>G!efn0MO#wHIGL{c+0jtmNgD(xyum zefR%$bCwl<_gg!Wm##8d)9z_*-yNvB?~T)ip1kmw&vVT4op{R=4C8OwoLuR)CoA_` zOx3bo_v7ZyN>|fo)OqB&T-^0={g$N{mw&I*Tx@-;&iYcF!b_?4mOt{Tt77hWuXV3n z?EbBWV{xfmmW=#VXK{s+mvPsWMca>EoX5{A_C9zP*X`J>JyYMgG3%|L9@=ItsMRc(@bU8V@GBo706UV+d;tIe diff --git a/theme/default/skin/identica/images/icons/twotone/green/arrow-left.gif b/theme/default/skin/identica/images/icons/twotone/green/arrow-left.gif deleted file mode 100644 index afed190841f8b88f930d0dfe7030339f8aea296c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73 zcmZ?wbhEHb6krfwn8?KN|NsB^DFQ%}fq_BsCkrD30~3P|kPVa-0J5b*`erVB%fEOI ZBSY5uGcnueIVwI2eAel8Mn#0d8UQdZ7iIte diff --git a/theme/default/skin/identica/images/icons/twotone/green/arrow-right.gif b/theme/default/skin/identica/images/icons/twotone/green/arrow-right.gif deleted file mode 100644 index ee1707ed96a315d287e778dd7650fdad9f5ccc55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74 zcmZ?wbhEHb6krfwn8?KN|NsB^DFQ%}fq_BsCkrD30~3P|kPVa-0J5b+`erVB%fEOI a2ZPj`+FkFTWlpxJyV1Ff%b1gu!5RQfjTe{z diff --git a/theme/default/skin/identica/images/icons/twotone/green/disfavourite.gif b/theme/default/skin/identica/images/icons/twotone/green/disfavourite.gif deleted file mode 100644 index 3946869ae070474df5622c56ba6d0984bb06af5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88 zcmZ?wbhEHb6krfwSjfQe|NsB^DFQ$e2o!&^FfuSOG3YP=0Z5*KNi(ExCfnQpd~^IR nW#;qjPMx6XakMgtb5Z7{-1x4Q%h>kLs(l!eFlSK!1A{dHn&}~% diff --git a/theme/default/skin/identica/images/icons/twotone/green/edit.gif b/theme/default/skin/identica/images/icons/twotone/green/edit.gif deleted file mode 100644 index c746aca601dfce71bec63cc34bd2cea576a608c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75 zcmZ?wbhEHb6krfwn8?KN|NsB^DFQ%}fq_BsCkrD30~3P|kPVa-0J3F5`erVB%fFb# bLC#BkUBTx**BG_BS(!^$or-W`WUvMRPNf%3 diff --git a/theme/default/skin/identica/images/icons/twotone/green/favourite.gif b/theme/default/skin/identica/images/icons/twotone/green/favourite.gif deleted file mode 100644 index d93515e3790aa4672656512f416edf2c5c30f2f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73 zcmZ?wbhEHb6krfwn8?KN|NsB^DFQ%}fq_BsCkrD30~3P|kPVa-0J5b*`erVB%fEOI Z!yK;F*Ye-L@sv;Xeb%|`jEV?@H2^xX7##or diff --git a/theme/default/skin/identica/images/icons/twotone/green/mail.gif b/theme/default/skin/identica/images/icons/twotone/green/mail.gif deleted file mode 100644 index 1084c862f62fd5490abc582fcfe7b577d450efff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82 zcmZ?wbhEHb6krfwn8?KN|NsB^DFQ%}fq_BsCkrD30~3P|kPVa-0J4=s`erVB%fEQa if?KZ~c0{bs%Z(FiQZABxslH78RN`eH|DIR|25SH{2phKm diff --git a/theme/default/skin/identica/images/icons/twotone/green/news.gif b/theme/default/skin/identica/images/icons/twotone/green/news.gif deleted file mode 100644 index 712c685dc0b02b2bfd262e9007b7a8ce0f81e2e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmZ?wbhEHb6krfwn8?KN|NsB^DFQ%}fq_BsCkrD30~3P|kPVa-0J3F6`erVB%dgDh c(B`#%N#&>iH4Co$ilZOy#&cDmB_R$kzum%90svYG3 diff --git a/theme/default/skin/identica/images/icons/twotone/green/trash.gif b/theme/default/skin/identica/images/icons/twotone/green/trash.gif deleted file mode 100644 index 78dd64a3d8a2ee60d4696de96c0e5b2945cafe98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77 zcmZ?wbhEHb6krfwn8?KN|NsB^DFQ%}fq_BsCkrD30~3P|kPVa-0J7ym`erVB%g;YU d;ZpSCX%+k4SteZTk*_G5uxqQ-W=>WHYXF^I8F2sr diff --git a/theme/default/skin/identica/css/display.css b/theme/identica/css/display.css similarity index 76% rename from theme/default/skin/identica/css/display.css rename to theme/identica/css/display.css index a44b8cdd70..a961188979 100644 --- a/theme/default/skin/identica/css/display.css +++ b/theme/identica/css/display.css @@ -7,6 +7,8 @@ * @link http://laconi.ca/ */ +@import url(../../base/css/display.css); + html, body, a:active { @@ -90,7 +92,7 @@ color:#333; color:#000; } #form_notice.processing #notice_action-submit { -background:#fff url(../../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; +background:#fff url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; cursor:wait; text-indent:-9999px; } @@ -137,13 +139,13 @@ background-repeat:no-repeat; background-position:0 45%; } #export_data li a.rss { -background-image:url(../../../base/images/icons/icon_rss.png); +background-image:url(../../base/images/icons/icon_rss.png); } #export_data li a.atom { -background-image:url(../../../base/images/icons/icon_atom.png); +background-image:url(../../base/images/icons/icon_atom.png); } #export_data li a.foaf { -background-image:url(../../../base/images/icons/icon_foaf.gif); +background-image:url(../../base/images/icons/icon_foaf.gif); } .entity_edit a, @@ -170,18 +172,18 @@ background-color:#87B4C8; } .entity_edit a { -background-image:url(../images/icons/twotone/green/edit.gif); +background-image:url(../../base/images/icons/twotone/green/edit.gif); } .entity_send-a-message a { -background-image:url(../images/icons/twotone/green/quote.gif); +background-image:url(../../base/images/icons/twotone/green/quote.gif); } .entity_nudge p, .form_user_nudge input.submit { -background-image:url(../images/icons/twotone/green/mail.gif); +background-image:url(../../base/images/icons/twotone/green/mail.gif); } .form_user_block input.submit, .form_user_unblock input.submit { -background-image:url(../images/icons/twotone/green/shield.gif); +background-image:url(../../base/images/icons/twotone/green/shield.gif); } @@ -196,16 +198,16 @@ background-color:#fcfcfc; background-color:transparent; } .notice-options .notice_reply a { -background:transparent url(../images/icons/twotone/green/reply.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/reply.gif) no-repeat 0 45%; } .notice-options form.form_favor input.submit { -background:transparent url(../images/icons/twotone/green/favourite.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/favourite.gif) no-repeat 0 45%; } .notice-options form.form_disfavor input.submit { -background:transparent url(../images/icons/twotone/green/disfavourite.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/disfavourite.gif) no-repeat 0 45%; } .notice-options .notice_delete a { -background:transparent url(../images/icons/twotone/green/trash.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/trash.gif) no-repeat 0 45%; } .notices div.entry-content, @@ -230,7 +232,7 @@ background-color:#fcfcfc; #new_group a { -background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%; +background:transparent url(../../base/images/icons/twotone/green/news.gif) no-repeat 0 45%; } .pagination .nav_prev a, @@ -239,10 +241,10 @@ background-repeat:no-repeat; border-color:#CEE1E9; } .pagination .nav_prev a { -background-image:url(../images/icons/twotone/green/arrow-left.gif); +background-image:url(../../base/images/icons/twotone/green/arrow-left.gif); background-position:10% 45%; } .pagination .nav_next a { -background-image:url(../images/icons/twotone/green/arrow-right.gif); +background-image:url(../../base/images/icons/twotone/green/arrow-right.gif); background-position:90% 45%; } diff --git a/theme/default/skin/identica/css/ie.css b/theme/identica/css/ie.css similarity index 100% rename from theme/default/skin/identica/css/ie.css rename to theme/identica/css/ie.css diff --git a/theme/identica/default-avatar-mini.png b/theme/identica/default-avatar-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..38b8692b4a2f71c8de3d6a12b715df33aada5f7c GIT binary patch literal 646 zcmV;10(t$3P)t7_1ao1dG5H5=fedf?I_U zERrsbGN6ogMr}` z=geF#+zTQC5di=LaBdjJM@3P-0idfKA;f20*DnA(@I8qLjEKM(3u~J8S_pAFm&<9f zSPbEC7@TwLgOn1}=@gFRpkA-LjIlSH&E_!?ePIBYs;Zr6Ga4*xpF`v&- zEEdi`SF2Su6bfC-+-EQtpin4yM0AgV_}m^LaEH4M-{d zNe9pK002AF4@7iH=bR&(&2Ehsiv@`2laNxrAB{#2)9Ew=0L!vqS=K>6*rng^e_gNF z@3`x_^;WAT4=u}|=ytns97hAt;6zjd&?=Y9n`49wheK2$*>gXpP+!1HdC8#9K|%7P#8l;_13R g5kkBIaJK9D9f4f}@hqK`?*IS*07*qoM6N<$f=KKaB>(^b literal 0 HcmV?d00001 diff --git a/theme/identica/default-avatar-profile.png b/theme/identica/default-avatar-profile.png new file mode 100644 index 0000000000000000000000000000000000000000..f8357d4fc296271b837b3d9911cfbc133918ef2f GIT binary patch literal 2853 zcmb_ei8mD78y=G~k);$_B4nAeWf!uJb!=mwFxIgpYYNHGgi?(!!!%2>gg$GQDZ3$C zn6Z3Be3pqYcBbs~o9}=4-E-dioO|zk&w1~C&-1+RGdmkIZcbrN006*kVQvCrq1S%~ zI>VZOym_F-0`@2)3r7%ZJOcTpvDRn9&E29{{$u|cn~@yxA!}188sZx55QdC?;2r4? zc<|tXV$i*iC|~bzf5ouK0OGo?FaW@rZ((BS_>i>rHW4c7FWjxaVWi+;PI(&gUGbv) zCr`avoO2*wy=Ua~C1uC-v5*p$Q2JAp6N$SP)UT0fjP1Qa2BpIrR1SKnCEBZ}tIn-pzCOAL^VgF4S4C^PNcO*LaWpw=UvIUY^7m4i3h~MsaKF%sZz6N(33sl$Ce5KKlzn4d&swu~LH8q(F3rIK|9vBuDK&Xxv*&|}Nitk@B&1Xm=RlEy_1+0Kbz(#Fg+!DDI8Ugks(!DJ zlHJ;3R+WhBlF8(z-Rby$TN3V2k3L}|iG(&|fP@JrEjY`G;cjO~VGihvZ<#e~wwxS< z?5s_8_w=L@VjHpBh+e2V+cHXD?uusEbpJoL`sGe#%uBD|9!)k10S+Ja_ z0a9dwpwY!V*j{~oJ?mM4S5}&?NlQQ7-i{=fnyAsTpMdMw`HbWN(~h^wT&t3YhlkTj zf1=xucV`B;l$vspajqcy*&O=gGfkkfXiZZH#2ya66}Ix5?)N2y+t1(sZ~Tb_I*s72 z%yvZDdOl$agTdMb<{vHM19Bv;U$?{`i+J_Tx6cb@aL7mOst~EVTOIt~+~F;m1VV2L zx5x-I5q}f_Ls?s5+S`o^Dk|BCnqkh3i6<5y?-T_4Lnvcw_6cu_c5Tm9F!)*44VUXR zf^7Q$8HtWyl9EeNS*=g!bNn-9;AW(6oC-JmXa0?fm%o`2Ao1*s5cG_TyF6G&MPD zX&oKxPEJmQ?)+==z*;hSXmF5kq#<+6r#xIsRP?)B}1gBe9za%a;4x2G{S zR%T|YMZ3v;I3;4{bAauXR;mn{=sKJT}1XAVO%|mv1PPm}K#>vI?{ZlA$M&AI`#-iMpVKHn@jtv9? zF|d{=YJ^HkNf|R;v1n^Rc+Tm{<{ja50flYG=V%7ZGmas>-nh~7vGes`f3=+)A6i&h zF&Tm)B32O*H}8DD$9+eB9o>wf6VyXKl$FhQJmVi3nTxkm&EpfUiC|GlEszE5| zm5rrkes%Thxo!+|>cNcn=Sjxe8pP592D>1ldGDIOe&WO_Q!C{A%z(JKTRJhT;R={n zuT)f2l1G<^j@4G*P?0$aJ8om!RH7z>!DtI6FApy|;XFS@L_~CSb~36$cm?ELb7LnH zucCj8c`56q0B-q$a#jDYK-hiJcz;DePfrgdVPqqd$=tI$)M2QO4M9;>I7NE|VgRoi z(0b!+xiR#zy05(;guDP-o(Me;JHtDJ2!$U)c2n1q~pIBe~HLiIA@tHwJzNo9yij0bKYkjPT z$BPvt9GDbByOUZ1DFrGbQ1b9yjTMbHni)xk8W6=bAEx#>dUg z%*-AZqytz5EkE1iMq))f9`GKELxJZYmSCxhEQb&RflwDtPbPd-A1aO~dlwI{uoQ^! zN=(G!1qQ=BIV|BXd3>!fdMe5TXb#ptb=x_v_4l_s?yc)vWysl6U}+8>QM-_`#%Dha zT%1XL;k3Plc6#{7fB~_T)Mgt{aPI7Ql`rXb0-XA*0=r!u-*u7gJ$8-4_7greHMKg` zIJVJNDTQ|^wuv~}i%`$JGG5;ANVHNB-s9agE3Ba+=SE!+>I(u6-abCbUs8FQTis$V z5h(Gb84Ivpm*I}a+fdzbfjXBURU#Feon6f$;9x^UADn7w^lXS(2M|AoC8Y&D#^ z6k@a(P2%M$3A<8VT`dO&(<>U+Ib{}N+gN|fD&r#~BYO?HI4kgtCZS^D@S{t1Tpwsb z(&*W|RI&WJx;HFc&_N9@YDh^*Jv!N6e6-od(Q;rgb;k2A*gBJ}@D2z7NnAh`800Cn zc66Bh*R}NaN-8M4M5EEMH_v{+zNXW?4-OCamrE-HgMzlcH85ybKRQ{)1~;tP-Tl(sYl+ zS!I7?qkq$*l6##{qYBc%D6;rIMoURyO261pF_VNj@`K5~N77M-xR!a-8 MfY_K+7Z|aDy3W6;R?}) zJJa7D+8b}%q`4{D>!4paaL(^{&bi<3xi|OxZhl9J2i|dE0WSwJ z;8&o3y8I|2|D^3LB6AAh1ik=tKx{650`H~bDI%!ZcR(rC1bhe718ACt%jLrDcH?%t zsjjXjCnqQSb+v$ri3#rCzt6pU_lQIyjE#+%-9G>yipXCx_?iVMr9J?@266xz8X9P8 zYooHV@|6(Ign@wpIy*awMx%!5Z{TeaxosGd0+dqgn0n^&moHz={{8#ev17+#bDo2E zJkFUjXSj6flJR)|25b=#9i{~+rE-CvflW@QlM^RS;BvWaq&*i`u3X{NsZ&PtOA+}5 zK$|uk1vUZf+qdtvBM;Eh(!%D=n~mm2N~yO1G^JDl@G*eb>t*N8oim5o3i!0z3_V#k~=FJ5Y5fL6fe8}a?ml+uuu{^G}w$|L-;$Zs6JIj$0x~_BN z$PvQfu<=TxwzihNd-u}N&|sOw;NTz~9UY91j{}gClY`Ia!|(S~US2-$*ouk@%F4=k z^5hA?CJiVBC@U+=c;T+DE(Qk&F>ij6NQ91#4&w2+CGxtibMoZLBzb^DBEi+GR|y0H zmgXoeElpOn`8t~M;K2hfUc8vn7mvree*L9I7=(9lp?pRVhKLLsY^fGh+wHa6mLq>rRmtXN@bp62G}dHpL_uCz)C z$U;C-QBm59mz0#SXU`r>^K9F;jl8_Pls=!&$NKf_tx^KA5CGu!`|*0cGi(lrgF}Z7 zQCwVXX^w(|0uCQOJm-#8R#tN0z=3S&OkF>l&Z}3iroFwLTeoh}-`~%M4I8MhueZE^ z7}&mjJ6pGIB^V5%>pEVqmztWI1w{c1`aJY_Ja{~wg$zw1H#hgC#9diELa!s11lWxw z0d`|afZbRUU^kWo*p2_a087E#=;$cdu3aM*i=mWCMvY1-G)+s^&Gy*^NZD7@v^nFJ zEn7xYQdM$J zqX0X|X9Eq00_G&b4EX*2SC)~P4@#-D`H9idQKK4l0DXYx?%lg7JJ;3K5eNhbg+e@g z_RO3|Lqw8y$ZVf&OJ_H1=J`Z~f`S5kJ|9(8Rde`^jEoSA#f)a3A>e((QCL_wXHZE= z$!n3V0hqPWeHv2&0JwAK&Y}~_7U6K%sE&!qkj7NbX&m76>C-%a{@gBZ8S(h>V}ik; z(d+@xMC4zlGc-d(L!3Kz&L(>EBaujO{P=NnT?d!|K7;AksEB+E`~+~}!UYBf2JGUQ z7H7|%B@&4k%}+%n3^UWLRlseaLen&M?b?Ok@5kwM+CtbsG#aI|v(vn&-M~9CO?-Bu zyA}8zCnAEEc#v$kH_im?j{fjm~#(*06q~({y(4Us6jRG4bWoPoK7ce z)~s37qXxsn!{)#96Tnx%=OQvQlalTb1>gt9u>Y{fFF>Q^!yaZRr3!&Jd2!sP5vT!P pRW4Qse&@wen|>f9B54D%{{RsfdHbSpK`#IR002ovPDHLkV1m@7$GHFi literal 0 HcmV?d00001 diff --git a/theme/identica/logo.png b/theme/identica/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7c68b34f61008753d12394806c3cf46f7b04effd GIT binary patch literal 4988 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 Date: Tue, 14 Apr 2009 23:17:25 +0000 Subject: [PATCH 13/19] Removed skin config option --- config.php.sample | 1 - 1 file changed, 1 deletion(-) diff --git a/config.php.sample b/config.php.sample index 4c4c9f08bc..b8ed45fa83 100644 --- a/config.php.sample +++ b/config.php.sample @@ -18,7 +18,6 @@ $config['site']['server'] = 'localhost'; $config['site']['path'] = 'laconica'; #$config['site']['fancy'] = false; #$config['site']['theme'] = 'default'; -#$config['site']['skin'] = 'default'; #To enable the built-in mobile style sheet, defaults to false. #$config['site']['mobile'] = true; #For contact email, defaults to $_SERVER["SERVER_ADMIN"] From 64e4b8a20f5ec3fb4f1a4c68337ae40b1b0b0dcf Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 14 Apr 2009 23:32:09 +0000 Subject: [PATCH 14/19] Updated remaining files and styles for style separation for themes --- actions/avatarsettings.php | 2 +- actions/designsettings.php | 2 +- theme/base/css/farbtastic.css | 6 +++--- theme/base/images/icons/icon_processing.gif | Bin 0 -> 673 bytes theme/cloudy/css/display.css | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 theme/base/images/icons/icon_processing.gif diff --git a/actions/avatarsettings.php b/actions/avatarsettings.php index 60f69b6850..c2bb35a395 100644 --- a/actions/avatarsettings.php +++ b/actions/avatarsettings.php @@ -383,7 +383,7 @@ class AvatarsettingsAction extends AccountSettingsAction { parent::showStylesheets(); $jcropStyle = - common_path('theme/default/base/css/jquery.Jcrop.css?version='.LACONICA_VERSION); + common_path('theme/base/css/jquery.Jcrop.css?version='.LACONICA_VERSION); $this->element('link', array('rel' => 'stylesheet', 'type' => 'text/css', diff --git a/actions/designsettings.php b/actions/designsettings.php index 05293f7126..cdd950e78c 100644 --- a/actions/designsettings.php +++ b/actions/designsettings.php @@ -196,7 +196,7 @@ class DesignsettingsAction extends AccountSettingsAction { parent::showStylesheets(); $farbtasticStyle = - common_path('theme/default/base/css/farbtastic.css?version='.LACONICA_VERSION); + common_path('theme/base/css/farbtastic.css?version='.LACONICA_VERSION); $this->element('link', array('rel' => 'stylesheet', 'type' => 'text/css', diff --git a/theme/base/css/farbtastic.css b/theme/base/css/farbtastic.css index 3b8fec58f8..7efcc73c3b 100644 --- a/theme/base/css/farbtastic.css +++ b/theme/base/css/farbtastic.css @@ -16,17 +16,17 @@ height: 101px; } .farbtastic .wheel { - background: url(../../../../js/farbtastic/wheel.png) no-repeat; + background: url(../../../js/farbtastic/wheel.png) no-repeat; width: 195px; height: 195px; } .farbtastic .overlay { - background: url(../../../../js/farbtastic/mask.png) no-repeat; + background: url(../../../js/farbtastic/mask.png) no-repeat; } .farbtastic .marker { width: 17px; height: 17px; margin: -8px 0 0 -8px; overflow: hidden; - background: url(../../../../js/farbtastic/marker.png) no-repeat; + background: url(../../../js/farbtastic/marker.png) no-repeat; } diff --git a/theme/base/images/icons/icon_processing.gif b/theme/base/images/icons/icon_processing.gif new file mode 100644 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 151758b489..b87722eec1 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -1328,7 +1328,7 @@ color:#333; color:#000; } #form_notice.processing #notice_action-submit { -background:#fff url(../../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; +background:#fff url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; cursor:wait; text-indent:-9999px; } From e876b74e8ba7e80edcb9a13bff15deff4aa6ff15 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 15 Apr 2009 08:38:05 +0200 Subject: [PATCH 15/19] Add license notice to install.php, replace short and asp style tags by more portable long tag form. --- install.php | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/install.php b/install.php index 0240349bb1..87a99a6508 100644 --- a/install.php +++ b/install.php @@ -1,4 +1,22 @@ -. + */ + define('INSTALLDIR', dirname(__FILE__)); function main() @@ -19,12 +37,12 @@ function checkPrereqs() { if (file_exists(INSTALLDIR.'/config.php')) { ?>

Config file "config.php" already exists.

-

Require PHP version 5 or greater.

Require PHP version 5 or greater.

Cannot load required extension "".

Cannot load required extension "".

Cannot write config file to "".

+ ?>

Cannot write config file to "".

On your server, try this command:

-
chmod a+w
- chmod a+w +

Cannot write avatar directory "/avatar/".

+ ?>

Cannot write avatar directory "/avatar/".

On your server, try this command:

-
chmod a+w /avatar/
+
chmod a+w /avatar/

Install Laconica

- +
- \ No newline at end of file + From e8fc34e75c4c9684b8c7e03d471a905e08446618 Mon Sep 17 00:00:00 2001 From: Fil Date: Wed, 15 Apr 2009 10:35:15 +0200 Subject: [PATCH 16/19] Use preg_quote to fix http://laconi.ca/trac/ticket/1342 --- actions/noticesearch.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/actions/noticesearch.php b/actions/noticesearch.php index 095d0a454a..0828e47d77 100644 --- a/actions/noticesearch.php +++ b/actions/noticesearch.php @@ -184,11 +184,11 @@ class SearchNoticeListItem extends NoticeListItem { function highlight($text, $terms) { /* Highligh search terms */ - $pattern = '/('.implode('|', array_map('htmlspecialchars', $terms)).')/i'; + $pattern = '/('.implode('|', array_map('preg_quote', array_map('htmlspecialchars', $terms))).')/i'; $result = preg_replace($pattern, '\\1', $text); /* Remove highlighting from inside links, loop incase multiple highlights in links */ - $pattern = '/(href="[^"]*)('.implode('|', array_map('htmlspecialchars', $terms)).')<\/strong>([^"]*")/iU'; + $pattern = '/(href="[^"]*)('.implode('|', array_map('preg_quote', array_map('htmlspecialchars', $terms))).')<\/strong>([^"]*")/iU'; do { $result = preg_replace($pattern, '\\1\\2\\3', $result, -1, $count); } while ($count); From 8439477201cd59a6c0dba84ddf48eb86a6154199 Mon Sep 17 00:00:00 2001 From: Adrian Lang Date: Wed, 15 Apr 2009 13:29:52 +0200 Subject: [PATCH 17/19] Add escaping of /. --- actions/noticesearch.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/actions/noticesearch.php b/actions/noticesearch.php index 0828e47d77..d996998fc6 100644 --- a/actions/noticesearch.php +++ b/actions/noticesearch.php @@ -184,11 +184,13 @@ class SearchNoticeListItem extends NoticeListItem { function highlight($text, $terms) { /* Highligh search terms */ - $pattern = '/('.implode('|', array_map('preg_quote', array_map('htmlspecialchars', $terms))).')/i'; + $options = implode('|', array_map('preg_quote', array_map('htmlspecialchars', $terms), + array_fill(0, sizeof($terms), '/'))); + $pattern = "/($options)/i"; $result = preg_replace($pattern, '\\1', $text); /* Remove highlighting from inside links, loop incase multiple highlights in links */ - $pattern = '/(href="[^"]*)('.implode('|', array_map('preg_quote', array_map('htmlspecialchars', $terms))).')<\/strong>([^"]*")/iU'; + $pattern = '/(href="[^"]*)('.$options.')<\/strong>([^"]*")/iU'; do { $result = preg_replace($pattern, '\\1\\2\\3', $result, -1, $count); } while ($count); From 8da76e0810342a90ac006f67cfd73500972f883a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 15 Apr 2009 10:05:16 -0400 Subject: [PATCH 18/19] add user id to statistics --- lib/profileaction.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/profileaction.php b/lib/profileaction.php index c81924e316..1f2e309945 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -179,6 +179,11 @@ class ProfileAction extends Action $this->element('h2', null, _('Statistics')); // Other stats...? + $this->elementStart('dl', 'entity_user-id'); + $this->element('dt', null, _('User ID')); + $this->element('dd', null, $this->profile->id); + $this->elementEnd('dl'); + $this->elementStart('dl', 'entity_member-since'); $this->element('dt', null, _('Member since')); $this->element('dd', null, date('j M Y', From 7ba3f8aeb3277bec52eee896f0c6807c7121104c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 15 Apr 2009 11:30:33 -0400 Subject: [PATCH 19/19] script to trim very old notices from inboxes --- scripts/triminboxes.php | 83 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 scripts/triminboxes.php diff --git a/scripts/triminboxes.php b/scripts/triminboxes.php new file mode 100644 index 0000000000..0d2eaeaf09 --- /dev/null +++ b/scripts/triminboxes.php @@ -0,0 +1,83 @@ +#!/usr/bin/env php +. + */ + +# Abort if called from a web server +if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { + print "This script must be run from the command line\n"; + exit(1); +} + +ini_set("max_execution_time", "0"); +ini_set("max_input_time", "0"); +set_time_limit(0); +mb_internal_encoding('UTF-8'); + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); +define('LACONICA', true); + +require_once(INSTALLDIR . '/lib/common.php'); + +$user = new User(); +if ($argc > 1) { + $user->whereAdd('id > ' . $argv[1]); +} +$cnt = $user->find(); + +while ($user->fetch()) { + + $inbox_entry = new Notice_inbox(); + $inbox_entry->user_id = $user->id; + $inbox_entry->orderBy('created DESC'); + $inbox_entry->limit(1000, 1); + + $id = null; + + if ($inbox_entry->find(true)) { + $id = $inbox_entry->notice_id; + } + + $inbox_entry->free(); + unset($inbox_entry); + + if (is_null($id)) { + continue; + } + + $start = microtime(true); + + $old_inbox = new Notice_inbox(); + $cnt = $old_inbox->query('DELETE from notice_inbox WHERE user_id = ' . $user->id . ' AND notice_id < ' . $id); + $old_inbox->free(); + unset($old_inbox); + + print "Deleted $cnt notices for $user->nickname ($user->id).\n"; + + $finish = microtime(true); + + $delay = 3.0 * ($finish - $start); + + print "Delaying $delay seconds..."; + + // Wait to let slaves catch up + + usleep($delay * 1000000); + + print "DONE.\n"; +}