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
  ...
This commit is contained in:
Zach Copley 2009-10-05 10:05:43 -07:00
commit 2b7d8d0c29
26 changed files with 466 additions and 1533 deletions

View File

@ -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)

View File

@ -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

View File

@ -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();
}
}

View File

@ -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?
}
}

View File

@ -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) {

View File

@ -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
*/

View File

@ -120,14 +120,16 @@ class Action extends HTMLOutputter // lawsuit
{
// XXX: attributes (profile?)
$this->elementStart('head');
if (Event::handle('StartShowHeadElements', array($this))) {
$this->showTitle();
$this->showShortcutIcon();
$this->showStylesheets();
$this->showScripts();
$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');
}

View File

@ -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');
}
}

View File

@ -142,6 +142,7 @@ class NoticeForm extends Form
function formData()
{
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
@ -176,6 +177,9 @@ class NoticeForm extends Form
$this->out->hidden('notice_return-to', $this->action, 'returnto');
}
$this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto');
Event::handle('StartShowNoticeFormData', array($this));
}
}
/**

View File

@ -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/";
}
}

View File

@ -0,0 +1,2 @@
TCPSocket = Orbited.TCPSocket;

View File

@ -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);
}
}
}();

View File

@ -230,6 +230,7 @@ class RealtimePlugin extends Plugin
}
$action->showContentBlock();
$action->showScripts();
$action->elementEnd('body');
return false; // No default processing
}

68
scripts/deleteuser.php Normal file
View File

@ -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";

View File

@ -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;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -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;
}

View File

@ -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%;
}

View File

@ -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;
}

View File

@ -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;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 818 B