Merge branch '0.7.x' into 0.8.x
This commit is contained in:
		| @@ -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__); | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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'); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -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'); | ||||
|  | ||||
|   | ||||
| @@ -137,4 +137,15 @@ class GroupmembersAction extends Action | ||||
|                           $this->page, 'groupmembers', | ||||
|                           array('nickname' => $this->group->nickname)); | ||||
|     } | ||||
| } | ||||
|  | ||||
|     /** | ||||
|      * 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)); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -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)); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -63,6 +63,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 | ||||
|      * | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -62,6 +62,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 | ||||
|      * | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -135,6 +135,17 @@ class PublicAction extends Action | ||||
|                               _('Public Stream Feed (Atom)'))); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 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 | ||||
|      * | ||||
|   | ||||
| @@ -138,6 +138,17 @@ class RepliesAction extends Action | ||||
|         return array(new Feed(Feed::RSS1, $rssurl, $rsstitle)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 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 | ||||
|      * | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -150,6 +150,18 @@ class ShowfavoritesAction extends Action | ||||
|         return array(new Feed(Feed::RSS1, $feedurl, $feedtitle)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 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 | ||||
|      * | ||||
|   | ||||
| @@ -311,6 +311,17 @@ class ShowgroupAction extends Action | ||||
|                                                         $this->group->nickname))); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 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. | ||||
|      * | ||||
|   | ||||
| @@ -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. | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
							
								
								
									
										42
									
								
								install.php
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								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> | ||||
| </html> | ||||
|   | ||||
| @@ -124,6 +124,7 @@ class Action extends HTMLOutputter // lawsuit | ||||
|         $this->showShortcutIcon(); | ||||
|         $this->showStylesheets(); | ||||
|         $this->showScripts(); | ||||
|         $this->showRelationshipLinks(); | ||||
|         $this->showOpenSearch(); | ||||
|         $this->showFeeds(); | ||||
|         $this->showDescription(); | ||||
| @@ -260,6 +261,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 | ||||
|      * | ||||
| @@ -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'))); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -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', | ||||
|   | ||||
| @@ -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]; | ||||
|   | ||||
							
								
								
									
										83
									
								
								scripts/triminboxes.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								scripts/triminboxes.php
									
									
									
									
									
										Normal file
									
								
							| @@ -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"; | ||||
| } | ||||
| @@ -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%; | ||||
| } | ||||
|   | ||||
| @@ -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%; | ||||
| } | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user