diff options
author | Zach Copley <zach@status.net> | 2009-10-05 10:05:43 -0700 |
---|---|---|
committer | Zach Copley <zach@status.net> | 2009-10-05 10:05:43 -0700 |
commit | 2b7d8d0c29a9b28700828db5184ed6d1dc7b1922 (patch) | |
tree | 3dd0b4bdbbc421b155750fa77ddd38edd058d136 | |
parent | ee207ffd8be4a7178d06ff7c6928dba3714146ec (diff) | |
parent | 7a33125a6c05a885a7e4c6d80be4e0fe26499565 (diff) |
Merge branch '0.9.x' into refactor-api
* 0.9.x: (23 commits)
Added hook to wrap the notice form data block
Unnecessary selector bit
Removed obsolete iphone theme (pre v0.7)
remove spurious readme from Orbited
need to show scripts at end of body in RealtimePlugin
Some changes required from Orbited debugging
Update OrbitedPlugin to work with RealtimePlugin framework
updated OrbitedPlugin to use RealtimePlugin
remove unused files for OrbitedPlugin
rename plugin
copy Comet plugin to Orbited
move scripts to just before </body>, add event for scripts that need to be in <head>
reformat Notice.php
added all them doxygens
Using CDATA for autofocus script
more doxygen
added doxygen
indent fix
better handling of y response in deleteuser.php
script to permanently delete a user
...
26 files changed, 469 insertions, 1536 deletions
diff --git a/EVENTS.txt b/EVENTS.txt index fbb2f36a7..02b11a8a6 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -93,6 +93,12 @@ StartShowAside: Showing before the Aside container EndShowAside: Showing after the Aside container - $action: the current action +StartShowNoticeFormData: Showing before the notice form data +- $action: the current action + +EndShowNoticeFormData: Showing after the notice form data +- $action: the current action + StartNoticeSave: before inserting a notice (good place for content filters) - $notice: notice being saved (no ID or URI) diff --git a/classes/Notice.php b/classes/Notice.php index 93d5de790..ba2227c0a 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1,5 +1,5 @@ <?php -/* +/** * StatusNet - the distributed open-source microblogging tool * Copyright (C) 2008, 2009, StatusNet, Inc. * @@ -15,9 +15,26 @@ * * 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/>. + * + * @category Notices + * @package StatusNet + * @author Brenda Wallace <shiny@cpan.org> + * @author Christopher Vollick <psycotica0@gmail.com> + * @author CiaranG <ciaran@ciarang.com> + * @author Craig Andrews <candrews@integralblue.com> + * @author Evan Prodromou <evan@controlezvous.ca> + * @author Gina Haeussge <osd@foosel.net> + * @author Jeffery To <jeffery.to@gmail.com> + * @author Mike Cochrane <mikec@mikenz.geek.nz> + * @author Robin Millette <millette@controlyourself.ca> + * @author Sarven Capadisli <csarven@controlyourself.ca> + * @author Tom Adams <tom@holizz.com> + * @license GNU Affero General Public License http://www.gnu.org/licenses/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} /** * Table Definition for notice @@ -168,11 +185,11 @@ class Notice extends Memcached_DataObject if (common_config('site', 'dupelimit') > 0 && !Notice::checkDupes($profile_id, $final)) { common_log(LOG_WARNING, 'Dupe posting by profile #' . $profile_id . '; throttled.'); - throw new ClientException(_('Too many duplicate messages too quickly;'. + throw new ClientException(_('Too many duplicate messages too quickly;'. ' take a breather and post again in a few minutes.')); } - $banned = common_config('profile', 'banned'); + $banned = common_config('profile', 'banned'); if ( in_array($profile_id, $banned) || in_array($profile->nickname, $banned)) { common_log(LOG_WARNING, "Attempted post from banned user: $profile->nickname (user id = $profile_id)."); @@ -200,12 +217,12 @@ class Notice extends Memcached_DataObject $notice->created = common_sql_now(); } - $notice->content = $final; - $notice->rendered = common_render_content($final, $notice); - $notice->source = $source; - $notice->uri = $uri; + $notice->content = $final; + $notice->rendered = common_render_content($final, $notice); + $notice->source = $source; + $notice->uri = $uri; - $notice->reply_to = self::getReplyTo($reply_to, $profile_id, $source, $final); + $notice->reply_to = self::getReplyTo($reply_to, $profile_id, $source, $final); if (!empty($notice->reply_to)) { $reply = Notice::staticGet('id', $notice->reply_to); diff --git a/classes/Profile.php b/classes/Profile.php index 7f0d12758..4a069ee84 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -476,4 +476,79 @@ class Profile extends Memcached_DataObject $biolimit = self::maxBio(); return ($biolimit > 0 && !empty($bio) && (mb_strlen($bio) > $biolimit)); } + + function delete() + { + $this->_deleteNotices(); + $this->_deleteSubscriptions(); + $this->_deleteMessages(); + $this->_deleteTags(); + $this->_deleteBlocks(); + + $related = array('Avatar', + 'Reply', + 'Group_member', + ); + + foreach ($related as $cls) { + $inst = new $cls(); + $inst->profile_id = $this->id; + $inst->delete(); + } + + parent::delete(); + } + + function _deleteNotices() + { + $notice = new Notice(); + $notice->profile_id = $this->id; + + if ($notice->find()) { + while ($notice->fetch()) { + $other = clone($notice); + $other->delete(); + } + } + } + + function _deleteSubscriptions() + { + $sub = new Subscription(); + $sub->subscriber = $this->id; + $sub->delete(); + + $subd = new Subscription(); + $subd->subscribed = $this->id; + $subd->delete(); + } + + function _deleteMessages() + { + $msg = new Message(); + $msg->from_profile = $this->id; + $msg->delete(); + + $msg = new Message(); + $msg->to_profile = $this->id; + $msg->delete(); + } + + function _deleteTags() + { + $tag = new Profile_tag(); + $tag->tagged = $this->id; + $tag->delete(); + } + + function _deleteBlocks() + { + $block = new Profile_block(); + $block->blocked = $this->id; + $block->delete(); + + $block = new Group_block(); + $block->blocked = $this->id; + $block->delete(); + } } diff --git a/classes/User.php b/classes/User.php index 3f7ed09bb..48df0cdd7 100644 --- a/classes/User.php +++ b/classes/User.php @@ -740,4 +740,48 @@ class User extends Memcached_DataObject } return $result; } + + function delete() + { + $profile = $this->getProfile(); + $profile->delete(); + + $related = array('Fave', + 'User_openid', + 'Confirm_address', + 'Remember_me', + 'Foreign_link', + 'Invitation', + ); + + if (common_config('inboxes', 'enabled')) { + $related[] = 'Notice_inbox'; + } + + foreach ($related as $cls) { + $inst = new $cls(); + $inst->user_id = $this->id; + $inst->delete(); + } + + $this->_deleteTags(); + $this->_deleteBlocks(); + + parent::delete(); + } + + function _deleteTags() + { + $tag = new Profile_tag(); + $tag->tagger = $this->id; + $tag->delete(); + } + + function _deleteBlocks() + { + $block = new Profile_block(); + $block->blocker = $this->id; + $block->delete(); + // XXX delete group block? Reset blocker? + } } @@ -61,6 +61,11 @@ function getPath($req) } } +/** + * logs and then displays error messages + * + * @return void + */ function handleError($error) { if ($error->getCode() == DB_DATAOBJECT_ERROR_NODATA) { diff --git a/install.php b/install.php index c2a5bb29e..69f025a6a 100644 --- a/install.php +++ b/install.php @@ -1,3 +1,4 @@ + <?php /** * StatusNet - the distributed open-source microblogging tool @@ -31,7 +32,7 @@ * @author Sarven Capadisli <csarven@status.net> * @author Tom Adams <tom@holizz.com> * @license GNU Affero General Public License http://www.gnu.org/licenses/ - * @version 0.9 + * @version 0.9.x * @link http://status.net */ @@ -340,13 +341,13 @@ function checkExtension($name) if (extension_loaded($name)) { return true; } elseif (function_exists('dl') && ini_get('enable_dl') && !ini_get('safe_mode')) { - // dl will throw a fatal error if it's disabled or we're in safe mode. - // More fun, it may not even exist under some SAPIs in 5.3.0 or later... - $soname = $name . '.' . PHP_SHLIB_SUFFIX; - if (PHP_SHLIB_SUFFIX == 'dll') { - $soname = "php_" . $soname; - } - return @dl($soname); + // dl will throw a fatal error if it's disabled or we're in safe mode. + // More fun, it may not even exist under some SAPIs in 5.3.0 or later... + $soname = $name . '.' . PHP_SHLIB_SUFFIX; + if (PHP_SHLIB_SUFFIX == 'dll') { + $soname = "php_" . $soname; + } + return @dl($soname); } else { return false; } diff --git a/lib/action.php b/lib/action.php index 71ceffe20..1b2f73752 100644 --- a/lib/action.php +++ b/lib/action.php @@ -120,14 +120,16 @@ class Action extends HTMLOutputter // lawsuit { // XXX: attributes (profile?) $this->elementStart('head'); - $this->showTitle(); - $this->showShortcutIcon(); - $this->showStylesheets(); - $this->showScripts(); - $this->showOpenSearch(); - $this->showFeeds(); - $this->showDescription(); - $this->extraHead(); + if (Event::handle('StartShowHeadElements', array($this))) { + $this->showTitle(); + $this->showShortcutIcon(); + $this->showStylesheets(); + $this->showOpenSearch(); + $this->showFeeds(); + $this->showDescription(); + $this->extraHead(); + Event::handle('EndShowHeadElements', array($this)); + } $this->elementEnd('head'); } @@ -352,6 +354,7 @@ class Action extends HTMLOutputter // lawsuit Event::handle('EndShowFooter', array($this)); } $this->elementEnd('div'); + $this->showScripts(); $this->elementEnd('body'); } diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php index c70f96537..ce83295fb 100644 --- a/lib/htmloutputter.php +++ b/lib/htmloutputter.php @@ -427,16 +427,12 @@ class HTMLOutputter extends XMLOutputter function autofocus($id) { $this->elementStart('script', array('type' => 'text/javascript')); - $this->raw(' - <!-- - $(document).ready(function() { - var el = $("#' . $id . '"); - if (el.length) { - el.focus(); - } - }); - --> - '); + $this->raw('/*<![CDATA[*/'. + ' $(document).ready(function() {'. + ' var el = $("#' . $id . '");'. + ' if (el.length) { el.focus(); }'. + ' });'. + ' /*]]>*/'); $this->elementEnd('script'); } } diff --git a/lib/noticeform.php b/lib/noticeform.php index 186330bf1..9864d15eb 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -142,40 +142,44 @@ class NoticeForm extends Form function formData() { - $this->out->element('label', array('for' => 'notice_data-text'), - sprintf(_('What\'s up, %s?'), $this->user->nickname)); - // XXX: vary by defined max size - $this->out->element('textarea', array('id' => 'notice_data-text', - 'cols' => 35, - 'rows' => 4, - 'name' => 'status_textarea'), - ($this->content) ? $this->content : ''); - - $contentLimit = Notice::maxContent(); - - $this->out->element('script', array('type' => 'text/javascript'), - 'maxLength = ' . $contentLimit . ';'); - - if ($contentLimit > 0) { - $this->out->elementStart('dl', 'form_note'); - $this->out->element('dt', null, _('Available characters')); - $this->out->element('dd', array('id' => 'notice_text-count'), - $contentLimit); - $this->out->elementEnd('dl'); + if (Event::handle('StartShowNoticeFormData', array($this))) { + $this->out->element('label', array('for' => 'notice_data-text'), + sprintf(_('What\'s up, %s?'), $this->user->nickname)); + // XXX: vary by defined max size + $this->out->element('textarea', array('id' => 'notice_data-text', + 'cols' => 35, + 'rows' => 4, + 'name' => 'status_textarea'), + ($this->content) ? $this->content : ''); + + $contentLimit = Notice::maxContent(); + + $this->out->element('script', array('type' => 'text/javascript'), + 'maxLength = ' . $contentLimit . ';'); + + if ($contentLimit > 0) { + $this->out->elementStart('dl', 'form_note'); + $this->out->element('dt', null, _('Available characters')); + $this->out->element('dd', array('id' => 'notice_text-count'), + $contentLimit); + $this->out->elementEnd('dl'); + } + + if (common_config('attachments', 'uploads')) { + $this->out->element('label', array('for' => 'notice_data-attach'),_('Attach')); + $this->out->element('input', array('id' => 'notice_data-attach', + 'type' => 'file', + 'name' => 'attach', + 'title' => _('Attach a file'))); + $this->out->hidden('MAX_FILE_SIZE', common_config('attachments', 'file_quota')); + } + if ($this->action) { + $this->out->hidden('notice_return-to', $this->action, 'returnto'); + } + $this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto'); + + Event::handle('StartShowNoticeFormData', array($this)); } - - if (common_config('attachments', 'uploads')) { - $this->out->element('label', array('for' => 'notice_data-attach'),_('Attach')); - $this->out->element('input', array('id' => 'notice_data-attach', - 'type' => 'file', - 'name' => 'attach', - 'title' => _('Attach a file'))); - $this->out->hidden('MAX_FILE_SIZE', common_config('attachments', 'file_quota')); - } - if ($this->action) { - $this->out->hidden('notice_return-to', $this->action, 'returnto'); - } - $this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto'); } /** diff --git a/plugins/Orbited/OrbitedPlugin.php b/plugins/Orbited/OrbitedPlugin.php new file mode 100644 index 000000000..ba87b266a --- /dev/null +++ b/plugins/Orbited/OrbitedPlugin.php @@ -0,0 +1,154 @@ +<?php +/** + * Laconica, the distributed open-source microblogging tool + * + * Plugin to do "real time" updates using Orbited + STOMP + * + * PHP version 5 + * + * LICENCE: 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/>. + * + * @category Plugin + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @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/ + */ + +if (!defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR.'/plugins/Realtime/RealtimePlugin.php'; + +/** + * Plugin to do realtime updates using Orbited + STOMP + * + * This plugin pushes data to a STOMP server which is then served to the + * browser by the Orbited server. + * + * @category Plugin + * @package Laconica + * @author Evan Prodromou <evan@controlyourself.ca> + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://laconi.ca/ + */ + +class OrbitedPlugin extends RealtimePlugin +{ + public $webserver = null; + public $webport = null; + public $channelbase = null; + public $stompserver = null; + public $stompport = null; + public $username = null; + public $password = null; + public $webuser = null; + public $webpass = null; + + protected $con = null; + + function onStartShowHeadElements($action) + { + // See http://orbited.org/wiki/Deployment#Cross-SubdomainDeployment + $action->element('script', null, ' document.domain = document.domain; '); + } + + function _getScripts() + { + $scripts = parent::_getScripts(); + + $port = (is_null($this->webport)) ? 8000 : $this->webport; + + $server = (is_null($this->webserver)) ? common_config('site', 'server') : $this->webserver; + + $root = 'http://'.$server.(($port == 80) ? '':':'.$port); + + $scripts[] = $root.'/static/Orbited.js'; + $scripts[] = common_path('plugins/Orbited/orbitedextra.js'); + $scripts[] = $root.'/static/protocols/stomp/stomp.js'; + $scripts[] = common_path('plugins/Orbited/orbitedupdater.js'); + + return $scripts; + } + + function _updateInitialize($timeline, $user_id) + { + $script = parent::_updateInitialize($timeline, $user_id); + + $server = $this->_getStompServer(); + $port = $this->_getStompPort(); + + return $script." OrbitedUpdater.init(\"$server\", $port, ". + "\"{$timeline}\", \"{$this->webuser}\", \"{$this->webpass}\");"; + } + + function _connect() + { + require_once(INSTALLDIR.'/extlib/Stomp.php'); + + $url = $this->_getStompUrl(); + + $this->con = new Stomp($url); + + if ($this->con->connect($this->username, $this->password)) { + $this->log(LOG_INFO, "Connected."); + } else { + $this->log(LOG_ERR, 'Failed to connect to queue server'); + throw new ServerException('Failed to connect to queue server'); + } + } + + function _publish($channel, $message) + { + $result = $this->con->send($channel, + json_encode($message)); + + return $result; + // TODO: parse and deal with result + } + + function _disconnect() + { + $this->con->disconnect(); + } + + function _pathToChannel($path) + { + if (!empty($this->channelbase)) { + array_unshift($path, $this->channelbase); + } + return '/' . implode('/', $path); + } + + function _getStompServer() + { + return (!is_null($this->stompserver)) ? $this->stompserver : + (!is_null($this->webserver)) ? $this->webserver : + common_config('site', 'server'); + } + + function _getStompPort() + { + return (!is_null($this->stompport)) ? $this->stompport : 61613; + } + + function _getStompUrl() + { + $server = $this->_getStompServer(); + $port = $this->_getStompPort(); + return "tcp://$server:$port/"; + } +} diff --git a/plugins/Orbited/orbitedextra.js b/plugins/Orbited/orbitedextra.js new file mode 100644 index 000000000..47e5c0c80 --- /dev/null +++ b/plugins/Orbited/orbitedextra.js @@ -0,0 +1,2 @@ +TCPSocket = Orbited.TCPSocket; + diff --git a/plugins/Orbited/orbitedupdater.js b/plugins/Orbited/orbitedupdater.js new file mode 100644 index 000000000..8c5ab3b73 --- /dev/null +++ b/plugins/Orbited/orbitedupdater.js @@ -0,0 +1,24 @@ +// Update the local timeline from a Orbited server + +var OrbitedUpdater = function() +{ + return { + + init: function(server, port, timeline, username, password) + { + // set up stomp client. + stomp = new STOMPClient(); + + stomp.onmessageframe = function(frame) { + RealtimeUpdate.receive(JSON.parse(frame.body)); + }; + + stomp.onconnectedframe = function() { + stomp.subscribe(timeline); + } + + stomp.connect(server, port, username, password); + } + } +}(); + diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php index 0f0d0f9f4..181927968 100644 --- a/plugins/Realtime/RealtimePlugin.php +++ b/plugins/Realtime/RealtimePlugin.php @@ -230,6 +230,7 @@ class RealtimePlugin extends Plugin } $action->showContentBlock(); + $action->showScripts(); $action->elementEnd('body'); return false; // No default processing } diff --git a/scripts/deleteuser.php b/scripts/deleteuser.php new file mode 100644 index 000000000..52389123c --- /dev/null +++ b/scripts/deleteuser.php @@ -0,0 +1,68 @@ +#!/usr/bin/env php +<?php +/* + * StatusNet - a distributed open-source microblogging tool + * Copyright (C) 2008, 2009, StatusNet, 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', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i::n::y'; +$longoptions = array('id::nickname::yes'); + +$helptext = <<<END_OF_DELETEUSER_HELP +deleteuser.php [options] +deletes a user from the database + + -i --id ID of the user + -n --nickname nickname of the user + -y --yes do not wait for confirmation + +END_OF_DELETEUSER_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +if (have_option('i', 'id')) { + $id = get_option_value('i', 'id'); + $user = User::staticGet('id', $id); + if (empty($user)) { + print "Can't find user with ID $id\n"; + exit(1); + } +} else if (have_option('n', 'nickname')) { + $nickname = get_option_value('n', 'nickname'); + $user = User::staticGet('nickname', $nickname); + if (empty($user)) { + print "Can't find user with nickname '$nickname'\n"; + exit(1); + } +} else { + print "You must provide either an ID or a nickname.\n"; + exit(1); +} + +if (!have_option('y', 'yes')) { + print "About to PERMANENTLY delete user '{$user->nickname}' ({$user->id}). Are you sure? [y/N] "; + $response = fgets(STDIN); + if (strtolower(trim($response)) != 'y') { + print "Aborting.\n"; + exit(0); + } +} + +print "Deleting..."; +$user->delete(); +print "DONE.\n"; diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 7706fba48..76709113f 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -251,7 +251,7 @@ margin-right:18px; margin-bottom:11px; margin-left:18px; } -#site_nav_global_primary ul li { +#site_nav_global_primary li { display:inline; margin-left:11px; } diff --git a/theme/iphone/bg-body.gif b/theme/iphone/bg-body.gif Binary files differdeleted file mode 100644 index d87e2e8d7..000000000 --- a/theme/iphone/bg-body.gif +++ /dev/null diff --git a/theme/iphone/bg-header.gif b/theme/iphone/bg-header.gif Binary files differdeleted file mode 100644 index 5154b2e5e..000000000 --- a/theme/iphone/bg-header.gif +++ /dev/null diff --git a/theme/iphone/default-avatar-mini.png b/theme/iphone/default-avatar-mini.png Binary files differdeleted file mode 100644 index 38b8692b4..000000000 --- a/theme/iphone/default-avatar-mini.png +++ /dev/null diff --git a/theme/iphone/default-avatar-profile.png b/theme/iphone/default-avatar-profile.png Binary files differdeleted file mode 100644 index f8357d4fc..000000000 --- a/theme/iphone/default-avatar-profile.png +++ /dev/null diff --git a/theme/iphone/default-avatar-stream.png b/theme/iphone/default-avatar-stream.png Binary files differdeleted file mode 100644 index 6b63baa70..000000000 --- a/theme/iphone/default-avatar-stream.png +++ /dev/null diff --git a/theme/iphone/display.css b/theme/iphone/display.css deleted file mode 100644 index 1838a8e86..000000000 --- a/theme/iphone/display.css +++ /dev/null @@ -1,698 +0,0 @@ -/* CSS Document */ -/* 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%; - padding: 0; - margin: 0; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 24px; - min-height: 100%; - height: 100%; - color: #193441; -} - -a { - color: #C15D42; - text-decoration: none; -} -a:hover { - text-decoration: underline; -} -img, img a { - border: 0; -} -h1 { - font-size: 1.2em; -} - -#wrap { - margin: 0; -} - -#header { - width: 100%; - float: left; - background-color: #193441; - margin: 0 0 20px 0; - padding: 0; -} -#logo { - float: left; - margin: 10px 0px 0px 10px; -} -p#branding { - margin: 0; - padding: 6px 0 3px 0; - color: #fbf2d7; - font-size: 2em; - font-weight: bold; - line-height: 2.5em; -} -p#branding a { - color: #dab134; -} - -#header h1.pagetitle { - display: none; - margin: 0; - padding: 0; - font-size: 1.2em; - line-height: 2em; - color: #d8e2d7; -} - -#header h2.sitename { - display: none; - margin: 0; - padding: 0; - color: #FCFFF5; -} - -/* ===== Begin Navigation Styling ===== */ - -/* ----- Navigation ------ */ -#nav { - float: right; - margin: 0; - padding: 0; - list-style-type: none; - font-size: 1.2em; -} -#nav li { - display: block; - float: left; -} -#nav li a { - display: block; - padding: 9px 15px 12px 0px; - color: #91AA9D; -} -#nav li a:hover { - text-decoration: underline; -} - -/* ----- Tabs ----- */ -#nav_views { - clear: both; - float: left; - margin: 10px 0px 0px 5px; - padding: 0; - bottom: 0; - list-style-type: none; - font-size: 1.1em; - font-weight: bold; -} -#nav_views li { - display: block; - float: left; - line-height: 1.3em; -} -#nav_views li a { - display: block; - margin: 0; - padding: 4px 12px 3px 12px; - color: #FCFFF5; - background-color: #91AA9D; - border-right: 1px solid #6A8787; -} -#nav_views li a:hover { - text-decoration: none; -} -#nav_views li.current a, #nav_views li.current a:hover { - color: #3F606F; - background-color: #FCFFF5; - border-right: 1px solid #6A8787; -} -#nav_views li.current a:hover { - color: #193441; -} -#nav_views li a:hover { - color: #FCFFF5; - background-color: #3F606F; - border-right: 1px solid #6A8787; -} - -/* ----- Nav Footer ----- */ -#nav_sub { - clear: both; - margin: 18px 10px 0 10px; - padding: 0; - list-style-type: none; - font-size: 1.1em; - font-weight: bold; - line-height: 2em; - border-top: 1px solid #D8E2D7; -} -#nav_sub li { - display: block; - float: left; -} -#nav_sub li a { - padding: 6px 24px 6px 0; -} -#nav_sub li a:hover { - text-decoration: underline; -} -/* ===== End Navigation Styling ===== */ - -#content { - clear: left; - margin: 10px; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 1em; - line-height: 1.1em; -} -#content h2 { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 1.1em; -} -#content label { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 1.1em; -} - -.instructions { - clear: both; - float: left; - margin: 5px 5px 10px 5px; -} -.instructions p, .success, .error { - font-weight: normal; - margin: 0; - padding: 10px; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 1.1em; - line-height: 1.2em; - border: 1px solid #91AA9D; - color: #FCFFF5; -} -.instructions a, .success a, .error a { - color: #d8e2d7; - text-decoration: underline; -} -.instructions a:hover, .success a:hover, .error a:hover { - color: #FCFFF5; -} -.success { - clear: both; - float: left; - margin: 5px 5px 10px 5px; - background-color: #48705b; -} -.error { - clear: both; - float: left; - margin: 5px 5px 10px 5px; - background-color: #ce3728; -} - -/* ----- Stream -----*/ - -#notices { - clear: both; - margin: 0 auto; - padding: 0; - list-style-type: none; - border-top: 1px solid #D8E2D7; -} -#notices a:hover { - text-decoration: underline; -} -.notice_single { - clear: both; - display: block; - margin: 0; - padding: 5px 5px 5px 0; - min-height: 48px; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 1em; - line-height: 1.4em; - border-bottom: 1px solid #D8E2D7; -} -.notice_single:hover { - background-color: #F3F8EA; -} -.notice_single p { - display: inline; - margin: 0; - padding: 0; -} -#notice_delete_form #confirmation_text { - display: block; - font-size: 1.1em; - font-weight: bold; -} -input#submit_yes, input#submit_no { - margin: 18px 10px 0px 0px; - padding: 4px; - font-weight: bold; - color: #FCFFF5; - background-color: #C15D42; - cursor: pointer; - border: 0; - width: 40px; -} -input#submit_yes:hover, input#submit_no:hover { - background-color: #904632; -} -.avatar.stream { - float: left; - margin: 0 10px 0 0; -} -p.time { - display: block; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 0.9em; - line-height: 2em; -} -p.time a { - color: #91AA9D; -} - -/* ----- Profile -----*/ -#profile { - clear: both; - float: left; - padding: 10px 0 0 0; - border-top: 1px solid #D8E2D7; - font-family: Georgia, "Times New Roman", Times, serif; -} -#profile h1 { - clear: both; - float: left; - margin: 0; - padding: 0; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 1.2em; -} -#profile h2 { - clear: both; - float: left; - margin: 0; - padding: 1em 0 0.2em 0; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 1.1em; - text-transform: uppercase; - color: #91AA9D; -} -#profile p { - clear: both; - float: left; - margin: 0 10px 0 0; - font-size: 1em; - line-height: 1.4em; -} -#profile p.location { - margin: 0 10px 12px 0; - font-style: italic; -} -#profile p.notice_current { - font-size: 1.2em; - line-height: 1.3em; -} -#profile_avatar { - float: left; - margin-right: 4px; -} -#profile_avatar img { - margin-bottom: 5px; -} -.avatar.profile { - clear: left; - margin: 0 10px 5px 0; -} -.avatar.original { - float: left; - margin: 0 10px 18px 0; -} -a.nickname { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-weight: bold; - font-size: 1.1em; - padding-right: 3px; -} -#profile_information { - float: left; -} - -.statistics { - clear: both; - float: left; -} -.statistics h2 { - clear: both; - float: left; - margin: 12px 0 3px 0; -} -dl.statistics { - margin: 0; -} -.statistics dt { - clear: left; - float: left; - width: 200px; -} -.statistics dd { - float: left; -} -.statistics dt:after { - content: ":"; -} -#subscriptions { - clear: both; - float: left; - margin: 18px 0 30px 0; -} -#subscriptions_avatars { - clear: both; - float: left; - margin: 6px 0 0 0; - padding: 0; - list-style-type: none; -} -#subscriptions_avatars li .avatar.mini { - float: left; - margin: 0 3px 3px 0; - padding: 0; - line-height: 0; -} -#subscriptions_viewall { - clear: left; -} -/* ----- End Profile -----*/ - -/* ----- Begin Subscriptions & Subscribers -----*/ - -ul.subscriptions, ul.subscribers { - float: none; - margin: 0; - padding: 0; - list-style-type: none; - overflow: auto; -} -ul.subscriptions li, ul.subscribers li { - display: block; - float: left; - padding: 0; -} -/* ----- End Subscriptions & Subscribers -----*/ - -#pagination { - margin: 18px auto; -} -#nav_pagination { - margin: 0 0 36px 0; - padding: 0; - float: right; - list-style-type: none; - font-size: 12px; - font-weight: bold; -} -#nav_pagination li { - display: block; - float: left; - background-color: #91AA9D; -} -#nav_pagination li.before { - margin-right: 1px; -} -#nav_pagination li a { - padding: 6px 15px; - line-height: 2em; - background-color: #91AA9D; - color: #FCFFF5; -} -#nav_pagination li a:hover { - background-color: #3F606F; - color: #FCFFF5; - text-decoration: none; -} - -#footer { - clear: both; - margin: 10px; - border-top: 1px solid #D8E2D7; -} -#footer p { - font-size: 0.8em; - margin-top: 1em; - line-height: 1.2em; -} -#cc { - float: left; - margin: 3px 10px 0 0; -} - -/* ===== Begin Forms Styling ===== */ - -/* ----- Forms General Style ----- */ -form { - margin: 0 auto; - padding: 0; -} -form { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 1em; -} -form label { - display: block; - font-size: 1em; - font-weight: bold; - line-height: 1.5em; -} -form input { - border: 1px solid #D8E2D7; - width: 264px; -} -input#submit, input.submit { - display: block; - margin: 18px 0; - padding: 4px; - font-weight: bold; - color: #FCFFF5; - background-color: #C15D42; - cursor: pointer; - border: 0; - width: auto; -} -input#submit:hover, input.submit:hover { - background-color: #904632; -} -input.checkbox { - width: auto; - border: 0; -} -textarea, input { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 1em; - color: #193441; - padding: 3px; -} -textarea:focus, input:focus { - background-color: #f0f6eb; -} -textarea { - width: 270px; - border: 1px solid #D8E2D7; -} -.input_instructions { - margin-top: 3px; - display: block; - font-size: 1em; - line-height: 1.2em; - color: #91aa9d; - font-family: Verdana, Arial, Helvetica, sans-serif; -} - -/* ----- Status Form ----- */ -#status_form { - width: 100%; - margin: 0px 0px 10px 5px; -} -#status_form p { - margin: 0; - padding: 0; -} -#status_label { - display: none; - clear: both; - margin: 0; - padding: 0 0 3px 0; - font-size: 1.5em; - font-weight: bold; - line-height: 2em; - color: #91AA9D; -} -#status_textarea { - display: block; - float: left; - width: 70%; - height: 3em; - margin: 0 0 10px 0; - padding: 0; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 1.1em; - color: #193441; - border: 0; -} -#status_submit { - display: block; - float: left; - margin: 0 0 0 4px; - padding: 1em 10px 1em 10px; - line-height: 1em; - width: 10%; - background-color: #C15D42; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-weight: bold; - font-size: 1em; - color: #FCFFF5; - cursor: pointer; - border: 0; -} -#status_submit:hover { - background-color: #904632; -} -#counter { - padding: 1em .5em 1em 5px; - color: #fff; - clear: both; - float: left; - font-weight: bold; - text-align: right; -} -/* ----- Subscribe Form ----- */ -#subscribe .submit, #unsubscribe .submit, #remotesubscribe .button, #remotesubscribe { - clear: left; - margin: 0; - width: 96px; - height: 27px; - font-family: verdana, arial, helvetica, sans-serif; - font-weight: bold; - font-size: 12px; - text-transform: uppercase; - background-color: #c15d42; - color: #fcfff5; - border: 0; -} -#remotesubscribe { - width: 96px; - height: 22px; - padding: 5px 0 0 0; - text-align: center; -} -#subscribe .button:hover, #unsubscribe .button:hover { - background-color: #904632; - cursor: pointer; -} - -a#remotesubscribe { - display: block; -} - -/* ----- Login Form -----*/ -input#license { - width: auto; - border: 0; -} -/* ----- Avatar Form -----*/ -form { - clear: left; -} - -/* ----- OpenID Form -----*/ - -input#openid_url { - background: url(login-bg.gif) no-repeat; - background-color: #fff; - background-position: 4px 50%; - color: #000; - padding-left: 24px; -} - -/* People lists (search results, maybe subscribers) */ - -#profiles { - clear: both; - margin: 0 auto; - padding: 0; - list-style-type: none; - border-top: 1px solid #D8E2D7; -} -#profiles a:hover { - text-decoration: underline; -} - -.profile_single { - clear: both; - display: block; - margin: 0; - padding: 5px 5px 5px 0; - min-height: 48px; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 1.2em; - line-height: 1.4em; - border-bottom: 1px solid #D8E2D7; -} -.profile_single:hover { - background-color: #F3F8EA; -} - -/* ----- IM Settings Form -----*/ - -#imsettings p { - margin: 0; - padding: 0; - line-height: 1.3em; -} - -/* ===== End Forms Styling ===== */ - -/* ===== Tag Cloud Styling ===== */ - -p.tagcloud { -text-align: center; -} - -p.tagcloud a { -line-height:1em; -vertical-align:middle; -} - -p.tagcloud a.largest { -font-size: 4em; -} -p.tagcloud a.verylarge { -font-size: 3em; -} - -p.tagcloud a.large { -font-size: 2em; -} - -p.tagcloud a.medium { -font-size: 1.5em; -} - -p.tagcloud a.small { -font-size: 1em; -} - -p.tagcloud a.verysmall { -font-size: 80%; -} - -p.tagcloud a.smallest { -font-size: 60%; -} - -a.replybutton { - border: 1px solid #D8E2D7; - padding: 0px 10px 0px 10px; - line-height: 0.8em; -} diff --git a/theme/iphone/display.css.dist b/theme/iphone/display.css.dist deleted file mode 100644 index 395da2e2f..000000000 --- a/theme/iphone/display.css.dist +++ /dev/null @@ -1,686 +0,0 @@ -/* CSS Document */ -/* Design & CSS by Marie-Claude Doyon http://www.marieclaudedoyon.com */ - -html { - background: url(bg-body.gif) repeat-y top center #d8e2d7; - } -body { - position: absolute; - width: 100%; - margin: 0; - padding: 0; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 10px; - line-height: 12px; - min-height: 100%; - height: 100%; - color: #193441; - } -a { - color: #C15D42; - text-decoration: none; - } -a:hover { - text-decoration: underline; - } -img, img a { - border: 0; - } -h1 { - font-size: 14px; - } - - -#wrap { - margin: 0 auto; - padding: 0 20px; - width: 760px; - background: url(bg-header.gif) repeat-x #FCFFF5; - } -#header { - position: relative; - margin: 0 auto; - width: 540px; - height: 216px; - } -#logo { - margin-top: 9px; - } -p#branding { - margin: 0; - padding: 6px 0 3px 0; - color: #fbf2d7; - font-size: 21px; - font-weight: bold; - line-height: 27px; - } -p#branding a { - color: #dab134; - } - -#header h1.pagetitle { - margin: 0; - padding: 0; - font-size: 15px; - line-height: 24px; - color: #d8e2d7; -} - -#header h2.sitename { - display: none; - margin: 0; - padding: 0; - color: #FCFFF5; -} - -/* ===== Begin Navigation Styling ===== */ - -/* ----- Navigation ------ */ -#nav { - float: right; - margin: 0; - padding: 0; - list-style-type: none; - font-size: 12px; - } -#nav li { - display: block; - float: left; - } -#nav li a { - display: block; - padding: 9px 9px 12px 9px; - color: #91AA9D; - } -#nav li a:hover { - text-decoration: underline; - } - -/* ----- Tabs ----- */ -#nav_views { - margin: 0 auto; - padding: 0; - position: absolute; - bottom: 0; - list-style-type: none; - font-size: 14px; - font-weight: bold; - width: 540px; - /*height: 30px;*/ - } -#nav_views li { - display: block; - float: left; - line-height: 21px; - } -#nav_views li a { - display: block; - margin: 0; - padding: 4px 12px 3px 12px; - color: #FCFFF5; - background-color: #91AA9D; - border-right: 1px solid #6A8787; - } -#nav_views li a:hover { - text-decoration: none; - } -#nav_views li.current a, #nav_views li.current a:hover { - color: #3F606F; - background-color: #FCFFF5; - border-right: 1px solid #6A8787; - } -#nav_views li.current a:hover { - color: #193441; - } -#nav_views li a:hover { - color: #FCFFF5; - background-color: #3F606F; - border-right: 1px solid #6A8787; - } - -/* ----- Nav Footer ----- */ -#nav_sub { - clear: both; - margin: 18px auto 0 auto; - padding: 0; - list-style-type: none; - font-size: 11px; - font-weight: bold; - line-height: 21px; - border-top: 1px solid #D8E2D7; - width: 540px; - } -#nav_sub li { - display: block; - float: left; - } -#nav_sub li a { - padding: 6px 24px 6px 0; - } -#nav_sub li a:hover { - text-decoration: underline; - } -/* ===== End Navigation Styling ===== */ - -#content { - clear: left; - margin: 40px 0 45px 0; - padding: 0 110px; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 14px; - line-height: 18px; - } -#content h2 { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 15px; - } -#content label { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; - } -.instructions p, .success, .error { - font-weight: normal; - margin: 36px 0 0 0; - padding: 10px; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 13px; - line-height: 15px; - border: 1px solid #91AA9D; - color: #FCFFF5; - } -.instructions a, .success a, .error a { - color: #d8e2d7; - text-decoration: underline; - } -.instructions a:hover, .success a:hover, .error a:hover { - color: #FCFFF5; - } -.success { - background-color: #48705b; - } -.error { - background-color: #ce3728; - } - - -/* ----- Stream -----*/ - -#notices { - clear: both; - margin: 0 auto; - padding: 0; - list-style-type: none; - width: 540px; - border-top: 1px solid #D8E2D7; - } -#notices a:hover { - text-decoration: underline; - } -.notice_single { - clear: both; - display: block; - margin: 0; - padding: 5px 5px 5px 0; - min-height: 48px; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 13px; - line-height: 16px; - border-bottom: 1px solid #D8E2D7; - } -.notice_single:hover { - background-color: #F3F8EA; - } -.notice_single p { - display: inline; - margin: 0; - padding: 0; - } -#notice_delete_form #confirmation_text { - display: block; - font-size: 14px; - font-weight: bold; - } -input#submit_yes, input#submit_no { - margin: 18px 10px 0px 0px; - padding: 4px; - font-weight: bold; - color: #FCFFF5; - background-color: #C15D42; - cursor: pointer; - border: 0; - width: 40px; - } -input#submit_yes:hover, input#submit_no:hover { - background-color: #904632; - } -.avatar.stream { - float: left; - margin: 0 10px 0 0; - } -p.time { - display: block; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 10px; - line-height: 15px; - } -p.time a { - color: #91AA9D; - } - -/* ----- Profile -----*/ -#profile { - clear: left; - margin: 0 -110px; - padding: 10px 0 0 0; - min-height: 170px; - border-top: 1px solid #D8E2D7; - font-family: Georgia, "Times New Roman", Times, serif; - } -#profile h1 { - margin: 0; - padding: 0; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 14px; - } -#profile h2 { - margin: 0; - padding: 0; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 11px; - text-transform: uppercase; - color: #91AA9D; - } -#profile p { - margin: 0 10px 0 0; - font-size: 12px; - line-height: 14px; - } -#profile p.location { - margin: 0 10px 12px 0; - font-style: italic; - } -#profile p.notice_current { - font-size: 18px; - line-height: 21px; - } -#profile_avatar { - float: left; - margin-right: 4px; - } -#profile_avatar img { - margin-bottom: 5px; - } -.avatar.profile { - clear: left; - margin: 0 10px 5px 0; - } -.avatar.original { - float: left; - margin: 0 10px 18px 0; - } -a.nickname { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-weight: bold; - font-size: 12px; - padding-right: 3px; - } -#profile_information { - float: left; - position: relative; - width: 270px; - height: 200px; - } -.statistics { - margin-top: 18px; - } -.statistics h2 { - margin: 12px 0 3px 0; - } -dl.statistics { - margin: 0; - font-size: 12px; - line-height: 14px; - } -.statistics dt { - float: left; - width: 96px; -} -.statistics dd { - margin-left: 100px; -} -.statistics dt:after { - content: ":"; - } -#subscriptions { - float: left; - margin: 18px 0 30px 0; - } -#subscriptions_avatars { - float: left; - margin: 6px 0 0 0; - padding: 0; - list-style-type: none; - width: 270px; - } -#subscriptions_avatars li .avatar.mini { - float: left; - margin: 0 3px 3px 0; - padding: 0; - line-height: 0; - /* border: 1px solid #f00; */ - } -#subscriptions_viewall { - clear: left; - } -/* ----- End Profile -----*/ - -/* ----- Begin Subscriptions & Subscribers -----*/ - -ul.subscriptions, ul.subscribers { - float: none; - margin: 0; - padding: 0; - list-style-type: none; - overflow: auto; - } -ul.subscriptions li, ul.subscribers li { - display: block; - float: left; - padding: 0; - } -/* ----- End Subscriptions & Subscribers -----*/ - - - -#pagination { - margin: 18px auto; - width: 540px; - } -#nav_pagination { - margin: 0 0 36px 0; - padding: 0; - float: right; - list-style-type: none; - font-size: 12px; - font-weight: bold; - } -#nav_pagination li { - display: block; - float: left; - background-color: #91AA9D; - } -#nav_pagination li.before { - margin-right: 1px; - } -#nav_pagination li a { - padding: 6px 15px; - line-height: 21px; - background-color: #91AA9D; - color: #FCFFF5; - } -#nav_pagination li a:hover { - background-color: #3F606F; - color: #FCFFF5; - text-decoration: none; - } - -#footer { - clear: both; - margin: 0 auto; - padding: 0 0 36px 0; - width: 540px; - border-top: 1px solid #D8E2D7; - } -#footer p { - margin-top: 9px; - line-height: 12px; - } -#cc { - float: left; - margin: 3px 10px 0 0; - } - -/* ===== Begin Forms Styling ===== */ - -/* ----- Forms General Style ----- */ -form { - margin: 0 auto; - padding: 0; - } -form { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; - } -form label { - display: block; - font-size: 12px; - font-weight: bold; - line-height: 18px; - } -form input { - border: 1px solid #D8E2D7; - width: 264px; - } -input#submit, input.submit { - display: block; - margin: 18px 0; - padding: 4px; - font-weight: bold; - color: #FCFFF5; - background-color: #C15D42; - cursor: pointer; - border: 0; - width: auto; - } -input#submit:hover, input.submit:hover { - background-color: #904632; - } -input.checkbox { - /*width: 14px; - height: 14px;*/ - width: auto; - border: 0; - } -textarea, input { - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; - color: #193441; - padding: 3px; - } -textarea:focus, input:focus { - background-color: #f0f6eb; - } -textarea { - width: 270px; - border: 1px solid #D8E2D7; - } -.input_instructions { - margin-top: 3px; - display: block; - font-size: 11px; - line-height: 15px; - color: #91aa9d; - font-family: Verdana, Arial, Helvetica, sans-serif; - } - -/* ----- Status Form ----- */ -#status_form { - height: 96px; - /*background-color: #F00;*/ - } -#status_form p { - margin: 36px 0 0 0; - padding: 0; - } -#status_label { - display: block; - clear: both; - margin: 0; - padding: 0 0 3px 0; - font-size: 18px; - font-weight: bold; - line-height: 24px; - color: #91AA9D; - } -#status_textarea { - display: block; - float: left; - width: 463px; - height: 35px; - padding: 5px; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; - color: #193441; - border: 0; - } -#status_submit { - display: block; - float: left; - margin: 1px 0 0 4px; - width: 63px; - height: 45px; - background-color: #C15D42; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-weight: bold; - font-size: 14px; - color: #FCFFF5; - cursor: pointer; - border: 0; - } -#status_submit:hover { - background-color: #904632; - } -#counter { - position: absolute; - top: 140px; - left: -64px; - width: 50px; - font-weight: bold; - text-align: right; -} -/* ----- Subscribe Form ----- */ -#subscribe .submit, #unsubscribe .submit, #remotesubscribe .button, #remotesubscribe { - clear: left; - margin: 0; - width: 96px; - height: 27px; - font-family: verdana, arial, helvetica, sans-serif; - font-weight: bold; - font-size: 10px; - text-transform: uppercase; - background-color: #c15d42; - color: #fcfff5; - border: 0; - } -#remotesubscribe { - width: 96px; - height: 22px; - padding: 5px 0 0 0; - text-align: center; - } -#subscribe .button:hover, #unsubscribe .button:hover { - background-color: #904632; - cursor: pointer; - } - -a#remotesubscribe { - display: block; -} - -/* ----- Login Form -----*/ -input#license { - width: auto; - border: 0; - } -/* ----- Avatar Form -----*/ -form { - clear: left; -} - -/* ----- OpenID Form -----*/ - -input#openid_url { - background: url(login-bg.gif) no-repeat; - background-color: #fff; - background-position: 4px 50%; - color: #000; - padding-left: 24px; -} - -/* People lists (search results, maybe subscribers) */ - -#profiles { - clear: both; - margin: 0 auto; - padding: 0; - list-style-type: none; - width: 540px; - border-top: 1px solid #D8E2D7; - /*border: 1px solid #F00;*/ - } -#profiles a:hover { - text-decoration: underline; - } - -.profile_single { - clear: both; - display: block; - margin: 0; - padding: 5px 5px 5px 0; - min-height: 48px; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 13px; - line-height: 16px; - border-bottom: 1px solid #D8E2D7; - } -.profile_single:hover { - background-color: #F3F8EA; - } - -/* ----- IM Settings Form -----*/ - -#imsettings p { - margin: 0; - padding: 0; - line-height: 15px; -} - -/* ===== End Forms Styling ===== */ - -/* ===== Tag Cloud Styling ===== */ - -p.tagcloud { -text-align: center; -} - -p.tagcloud a { -line-height:100%; -vertical-align:middle; -} - -p.tagcloud a.largest { -font-size: 400%; -} -p.tagcloud a.verylarge { -font-size: 300%; -} - -p.tagcloud a.large { -font-size: 200%; -} - -p.tagcloud a.medium { -font-size: 150%; -} - -p.tagcloud a.small { -font-size: 100%; -} - -p.tagcloud a.verysmall { -font-size: 80%; -} - -p.tagcloud a.smallest { -font-size: 60%; -} diff --git a/theme/iphone/ie6.css.dist b/theme/iphone/ie6.css.dist deleted file mode 100644 index 97d9fee3f..000000000 --- a/theme/iphone/ie6.css.dist +++ /dev/null @@ -1,63 +0,0 @@ -@charset "UTF-8"; -/* CSS Document */ -body { - text-align: center; -} -input { - height: 24px; -} -#wrap { - margin: 0 auto; - padding: 0 20px; - width: 800px; - text-align: left; - background: url(bg-header.gif) repeat-x #FCFFF5; - } -#header { - position: relative; - margin-left: 108px; - } -#nav_views { - margin: 0; - } -#nav_views li { - line-height: 19px; - } -.statistics dd { - margin-top: -15px; - clear: both; - } -#notices { - margin: 0; - } -.notice_single { - height: 48px; - } -#profile p.notice_current { - height: 96px; - } - -#subscriptions_avatars li { - float: left; - margin: 0; - padding: 0; - } -img.avatar.original, img.avatar.profile { - clear: none; - float: left; -} -#status_textarea { - height: 46px; - } - -#nav_pagination li a { - padding: 6px 15px; - line-height: 27px; - } -#nav_sub { - position: relative; - margin-left: 108px; - } -#footer { - margin-left: 108px; -} diff --git a/theme/iphone/ie7.css.dist b/theme/iphone/ie7.css.dist deleted file mode 100644 index bbf52d5cf..000000000 --- a/theme/iphone/ie7.css.dist +++ /dev/null @@ -1,20 +0,0 @@ -@charset "UTF-8"; -/* CSS Document */ - -#statistics dd { - clear: both; - } - - -#subscriptions_avatars li { - float: left; - } -img.avatar.original, img.avatar.profile { - clear: none; - float: left; -} - -#nav_pagination li a { - padding: 6px 15px; - line-height: 27px; - }
\ No newline at end of file diff --git a/theme/iphone/login-bg.gif b/theme/iphone/login-bg.gif Binary files differdeleted file mode 100644 index e2d8377db..000000000 --- a/theme/iphone/login-bg.gif +++ /dev/null diff --git a/theme/iphone/logo.png b/theme/iphone/logo.png Binary files differdeleted file mode 100644 index 3b271814d..000000000 --- a/theme/iphone/logo.png +++ /dev/null |