diff options
-rw-r--r-- | actions/accesstoken.php | 2 | ||||
-rw-r--r-- | actions/all.php | 11 | ||||
-rw-r--r-- | actions/favorited.php | 11 | ||||
-rw-r--r-- | actions/finishremotesubscribe.php | 2 | ||||
-rw-r--r-- | actions/groupmembers.php | 13 | ||||
-rw-r--r-- | actions/groups.php | 11 | ||||
-rw-r--r-- | actions/inbox.php | 11 | ||||
-rw-r--r-- | actions/noticesearch.php | 6 | ||||
-rw-r--r-- | actions/outbox.php | 11 | ||||
-rw-r--r-- | actions/postnotice.php | 2 | ||||
-rw-r--r-- | actions/public.php | 11 | ||||
-rw-r--r-- | actions/replies.php | 11 | ||||
-rw-r--r-- | actions/requesttoken.php | 2 | ||||
-rw-r--r-- | actions/showfavorites.php | 12 | ||||
-rw-r--r-- | actions/showgroup.php | 11 | ||||
-rw-r--r-- | actions/showstream.php | 11 | ||||
-rw-r--r-- | actions/tag.php | 11 | ||||
-rw-r--r-- | actions/updateprofile.php | 2 | ||||
-rw-r--r-- | install.php | 42 | ||||
-rw-r--r-- | lib/action.php | 46 | ||||
-rw-r--r-- | lib/profileaction.php | 5 | ||||
-rw-r--r-- | plugins/LinkbackPlugin.php | 2 | ||||
-rw-r--r-- | scripts/triminboxes.php | 83 | ||||
-rw-r--r-- | theme/default/css/display.css | 8 | ||||
-rw-r--r-- | theme/identica/css/display.css | 8 | ||||
-rw-r--r-- | theme/iphone/display.css | 16 |
26 files changed, 315 insertions, 46 deletions
diff --git a/actions/accesstoken.php b/actions/accesstoken.php index 77fdf6aef..bb68d3314 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/all.php b/actions/all.php index 69890a70c..a92e55462 100644 --- a/actions/all.php +++ b/actions/all.php @@ -69,6 +69,17 @@ class AllAction extends ProfileAction sprintf(_('Feed for friends of %s (Atom)'), $this->user->nickname))); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'all', array('nickname' => $this->user->nickname)); + } + function showLocalNav() { $nav = new PersonalGroupNav($this); diff --git a/actions/favorited.php b/actions/favorited.php index c902d80f5..7e31303e3 100644 --- a/actions/favorited.php +++ b/actions/favorited.php @@ -221,4 +221,15 @@ class FavoritedAction extends Action $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE, $this->page, 'favorited'); } + + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'favorited'); + } } diff --git a/actions/finishremotesubscribe.php b/actions/finishremotesubscribe.php index d54c29a60..3e3a81715 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/groupmembers.php b/actions/groupmembers.php index a90108e4d..909935bec 100644 --- a/actions/groupmembers.php +++ b/actions/groupmembers.php @@ -137,4 +137,15 @@ 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() + { + $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 26b52a5fc..e20acce70 100644 --- a/actions/groups.php +++ b/actions/groups.php @@ -129,4 +129,15 @@ class GroupsAction extends Action $gbm = new GroupsByMembersSection($this); $gbm->show(); } + + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $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 b553ab26c..7b5cf2d20 100644 --- a/actions/inbox.php +++ b/actions/inbox.php @@ -64,6 +64,17 @@ class InboxAction extends MailboxAction } /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'inbox', array('nickname' => $this->user->nickname)); + } + + /** * Retrieve the messages for this user and this page * * Does a query for the right messages diff --git a/actions/noticesearch.php b/actions/noticesearch.php index 095d0a454..d996998fc 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('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, '<strong>\\1</strong>', $text); /* Remove highlighting from inside links, loop incase multiple highlights in links */ - $pattern = '/(href="[^"]*)<strong>('.implode('|', array_map('htmlspecialchars', $terms)).')<\/strong>([^"]*")/iU'; + $pattern = '/(href="[^"]*)<strong>('.$options.')<\/strong>([^"]*")/iU'; do { $result = preg_replace($pattern, '\\1\\2\\3', $result, -1, $count); } while ($count); diff --git a/actions/outbox.php b/actions/outbox.php index c8d7f2812..deef1cc87 100644 --- a/actions/outbox.php +++ b/actions/outbox.php @@ -63,6 +63,17 @@ class OutboxAction extends MailboxAction } /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'outbox', array('nickname' => $this->user->nickname)); + } + + /** * retrieve the messages for this user and this page * * Does a query for the right messages diff --git a/actions/postnotice.php b/actions/postnotice.php index c32d8ca94..3e98b3cd5 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/public.php b/actions/public.php index 27153f131..d2f9da646 100644 --- a/actions/public.php +++ b/actions/public.php @@ -136,6 +136,17 @@ class PublicAction extends Action } /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'public'); + } + + /** * Extra head elements * * We include a <meta> element linking to the publicxrds page, for OpenID diff --git a/actions/replies.php b/actions/replies.php index eac4d0a3a..dfb520d64 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -139,6 +139,17 @@ class RepliesAction extends Action } /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'replies', array('nickname' => $this->user->nickname)); + } + + /** * show the personal group nav * * @return void diff --git a/actions/requesttoken.php b/actions/requesttoken.php index fb577fdd5..9507e3d6c 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/showfavorites.php b/actions/showfavorites.php index e8cf1cb01..6e011d5ca 100644 --- a/actions/showfavorites.php +++ b/actions/showfavorites.php @@ -151,6 +151,18 @@ class ShowfavoritesAction extends Action } /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'showfavorites', array('nickname' => $this->user->nickname)); + } + + + /** * show the personal group nav * * @return void diff --git a/actions/showgroup.php b/actions/showgroup.php index 7e86a79f1..025f8383a 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -312,6 +312,17 @@ class ShowgroupAction extends Action } /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'showgroup', array('nickname' => $this->group->nickname)); + } + + /** * Fill in the sidebar. * * @return void diff --git a/actions/showstream.php b/actions/showstream.php index c1a2c337a..82665e5b8 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -135,6 +135,17 @@ class ShowstreamAction extends ProfileAction sprintf(_('FOAF for %s'), $this->user->nickname))); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'showstream', array('nickname' => $this->user->nickname)); + } + function extraHead() { // for remote subscriptions etc. diff --git a/actions/tag.php b/actions/tag.php index 3944bea43..02f3e3522 100644 --- a/actions/tag.php +++ b/actions/tag.php @@ -77,6 +77,17 @@ class TagAction extends Action sprintf(_('Feed for tag %s'), $this->tag))); } + /** + * Output document relationship links + * + * @return void + */ + function showRelationshipLinks() + { + $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME + $this->page, 'tag', array('tag' => $this->tag)); + } + function showPageNotice() { return sprintf(_('Messages tagged "%s", most recent first'), $this->tag); diff --git a/actions/updateprofile.php b/actions/updateprofile.php index 7dc52fda9..08cb31ae0 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/install.php b/install.php index 0240349bb..87a99a650 100644 --- a/install.php +++ b/install.php @@ -1,4 +1,22 @@ -<? +<?php +/** + * Laconica - a distributed open-source microblogging tool + * Copyright (C) 2009, Controlez-Vous, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + define('INSTALLDIR', dirname(__FILE__)); function main() @@ -19,12 +37,12 @@ function checkPrereqs() { if (file_exists(INSTALLDIR.'/config.php')) { ?><p class="error">Config file "config.php" already exists.</p> - <? + <?php return false; } if (version_compare(PHP_VERSION, '5.0.0', '<')) { - ?><p class="error">Require PHP version 5 or greater.</p><? + ?><p class="error">Require PHP version 5 or greater.</p><?php return false; } @@ -34,23 +52,23 @@ function checkPrereqs() foreach ($reqs as $req) { if (!checkExtension($req)) { - ?><p class="error">Cannot load required extension "<?= $req ?>".</p><? + ?><p class="error">Cannot load required extension "<?php echo $req; ?>".</p><?php return false; } } if (!is_writable(INSTALLDIR)) { - ?><p class="error">Cannot write config file to "<?= INSTALLDIR ?>".</p> + ?><p class="error">Cannot write config file to "<?php echo INSTALLDIR; ?>".</p> <p>On your server, try this command:</p> - <blockquote>chmod a+w <?= INSTALLDIR ?></blockquote> - <? + <blockquote>chmod a+w <?php echo INSTALLDIR; ?></blockquote> + <?php return false; } if (!is_writable(INSTALLDIR.'/avatar/')) { - ?><p class="error">Cannot write avatar directory "<?= INSTALLDIR ?>/avatar/".</p> + ?><p class="error">Cannot write avatar directory "<?php echo INSTALLDIR; ?>/avatar/".</p> <p>On your server, try this command:</p> - <blockquote>chmod a+w <?= INSTALLDIR ?>/avatar/</blockquote> + <blockquote>chmod a+w <?php echo INSTALLDIR; ?>/avatar/</blockquote> <? return false; } @@ -211,7 +229,7 @@ function handlePost() function writeConf($sitename, $sqlUrl) { $res = file_put_contents(INSTALLDIR.'/config.php', - "<?\n". + "<?php\n". "\$config['site']['name'] = \"$sitename\";\n\n". "\$config['db']['database'] = \"$sqlUrl\";\n\n"); return $res; @@ -247,9 +265,9 @@ function runDbScript($filename, $conn) <div id="core"> <div id="content"> <h1>Install Laconica</h1> -<? main() ?> +<?php main(); ?> </div> </div> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/lib/action.php b/lib/action.php index ff75ee855..3e43ffe3e 100644 --- a/lib/action.php +++ b/lib/action.php @@ -124,6 +124,7 @@ class Action extends HTMLOutputter // lawsuit $this->showShortcutIcon(); $this->showStylesheets(); $this->showScripts(); + $this->showRelationshipLinks(); $this->showOpenSearch(); $this->showFeeds(); $this->showDescription(); @@ -261,6 +262,19 @@ class Action extends HTMLOutputter // lawsuit } /** + * Show document relationship links + * + * SHOULD overload + * + * @return nothing + */ + function showRelationshipLinks() + { + // output <link> elements with appropriate HTML4.01 link types: + // http://www.w3.org/TR/html401/types.html#type-links + } + + /** * Show OpenSearch headers * * @return nothing @@ -1040,4 +1054,36 @@ class Action extends HTMLOutputter // lawsuit { return null; } + + /** + * 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 <link> elements. + // Pattern taken from $this->pagination() method. + + // "next" is equivalent to "after" + if ($have_next) { + $pargs = array('page' => $page-1); + $this->element('link', array('rel' => 'next', + 'href' => common_local_url($action, $args, $pargs), + 'title' => _('Next'))); + } + // "previous" is equivalent to "before" + if ($have_previous=true) { // FIXME + $pargs = array('page' => $page+1); + $this->element('link', array('rel' => 'prev', + 'href' => common_local_url($action, $args, $pargs), + 'title' => _('Previous'))); + } + } } diff --git a/lib/profileaction.php b/lib/profileaction.php index c81924e31..1f2e30994 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', diff --git a/plugins/LinkbackPlugin.php b/plugins/LinkbackPlugin.php index 56a26176b..881ead99e 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('/<link rel="pingback" href="([^"]+)" ?/?>/', + } else if (preg_match('/<link rel="pingback" href="([^"]+)" ?\/?>/', $result->body, $match)) { $pb = $match[1]; diff --git a/scripts/triminboxes.php b/scripts/triminboxes.php new file mode 100644 index 000000000..0d2eaeaf0 --- /dev/null +++ b/scripts/triminboxes.php @@ -0,0 +1,83 @@ +#!/usr/bin/env php +<?php +/* + * Laconica - a distributed open-source microblogging tool + * Copyright (C) 2009, Control Yourself, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +# 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"; +} diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 2f41a9843..0c8fae166 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -72,7 +72,6 @@ border-top-color:#D1D9E4; border-top-color:#97BFD1; } - #content .notice p.entry-content a:visited { background-color:#fcfcfc; } @@ -84,7 +83,6 @@ background-color:#fcfffc; background-color:#CEE1E9; } - #notice_text-count { color:#333; } @@ -114,7 +112,6 @@ background-color:rgba(255, 255, 255, 0.2); background-color:rgba(255, 255, 255, 0.7); } - .error { background-color:#F7E8E8; } @@ -122,7 +119,6 @@ background-color:#F7E8E8; background-color:#EFF3DC; } - #anon_notice { background-color:#97BFD1; color:#fff; @@ -133,7 +129,6 @@ border-color:#fff; background-color:#A9BF4F; } - #export_data li a { background-repeat:no-repeat; background-position:0 45%; @@ -186,8 +181,6 @@ background-image:url(../../base/images/icons/twotone/green/mail.gif); background-image:url(../../base/images/icons/twotone/green/shield.gif); } - - /* NOTICES */ .notices li.over { background-color:#fcfcfc; @@ -230,7 +223,6 @@ background-color:#fcfcfc; } /*END: NOTICES */ - #new_group a { background:transparent url(../../base/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 a96118897..cc19da0f7 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -72,7 +72,6 @@ border-top-color:#CEE1E9; border-top-color:#87B4C8; } - #content .notice p.entry-content a:visited { background-color:#fcfcfc; } @@ -84,7 +83,6 @@ background-color:#fcfffc; background-color:#CEE1E9; } - #notice_text-count { color:#333; } @@ -114,7 +112,6 @@ background-color:rgba(135, 180, 200, 0.3); background-color:rgba(255, 255, 255, 0.7); } - .error { background-color:#F7E8E8; } @@ -122,7 +119,6 @@ background-color:#F7E8E8; background-color:#EFF3DC; } - #anon_notice { background-color:#87B4C8; color:#fff; @@ -133,7 +129,6 @@ border-color:#fff; background-color:#9BB43E; } - #export_data li a { background-repeat:no-repeat; background-position:0 45%; @@ -186,8 +181,6 @@ background-image:url(../../base/images/icons/twotone/green/mail.gif); background-image:url(../../base/images/icons/twotone/green/shield.gif); } - - /* NOTICES */ .notices li.over { background-color:#fcfcfc; @@ -230,7 +223,6 @@ background-color:#fcfcfc; } /*END: NOTICES */ - #new_group a { background:transparent url(../../base/images/icons/twotone/green/news.gif) no-repeat 0 45%; } diff --git a/theme/iphone/display.css b/theme/iphone/display.css index 6ac471c1e..1838a8e86 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; |