Merge branch '0.8.x' of git://gitorious.org/laconica/dev into 0.8.x

This commit is contained in:
Sarven Capadisli 2009-05-20 19:40:29 -04:00
commit d835267cc7
9 changed files with 325 additions and 279 deletions

View File

@ -82,7 +82,16 @@ class DesignsettingsAction extends AccountSettingsAction
$this->element('legend', null, _('Change background image'));
$this->elementStart('ul', 'form_data');
$this->elementStart('li');
$this->element('p', null, _('Upload background image'));
$this->element('label', array('for' => 'design_ background-image_file'),
_('Upload file'));
$this->element('input', array('name' => 'design_background-image_file',
'type' => 'file',
'id' => 'design_background-image_file'));
$this->element('p', 'form_guide', _('You can upload your personal background image. The maximum file size is 2Mb.'));
$this->element('input', array('name' => 'MAX_FILE_SIZE',
'type' => 'hidden',
'id' => 'MAX_FILE_SIZE',
'value' => ImageFile::maxFileSizeInt()));
$this->elementEnd('li');
$this->elementEnd('ul');
$this->elementEnd('fieldset');
@ -108,15 +117,22 @@ class DesignsettingsAction extends AccountSettingsAction
$userSwatch = ($userSwatch) ? json_decode($userSwatch, true) : $defaultSwatch;
$s = 0;
$labelSwatch = array('Background color',
'Content background color',
'Sidebar background color',
'Text color',
'Link color');
$labelSwatch = array('Background',
'Content',
'Sidebar',
'Text',
'Links');
foreach($userSwatch as $propertyvalue => $value) {
$foo = array_values($value); //Is this necessary? $value[0] doesn't work because of invalid key
$foo = array_values($value);
$this->elementStart('li');
$this->input("swatch-".$s, $labelSwatch[$s], $foo[0]);
$this->element('label', array('for' => 'swatch-'.$s), _($labelSwatch[$s]));
$this->element('input', array('name' => 'swatch-'.$s, //prefer swatch[$s] ?
'type' => 'text',
'id' => 'swatch-'.$s,
'class' => 'swatch',
'maxlength' => '7',
'size' => '7',
'value' => $foo[0]));
$this->elementEnd('li');
$s++;
}
@ -125,6 +141,11 @@ class DesignsettingsAction extends AccountSettingsAction
$this->elementEnd('fieldset');
$this->submit('save', _('Save'));
$this->element('input', array('id' => 'settings_design_reset',
'type' => 'reset',
'value' => 'Reset',
'class' => 'form_action-secondary'));
/*TODO: Check submitted form values:
json_encode(form values)
if submitted Swatch == DefaultSwatch, don't store in DB.

View File

@ -3,219 +3,206 @@
if (!defined('LACONICA')) { exit(1); }
#If you have downloaded libraries in random little places, you
#can add the paths here
// If you have downloaded libraries in random little places, you
// can add the paths here
#$extra_path = array("/opt/php-openid-2.0.1", "/usr/local/share/php");
#set_include_path(implode(PATH_SEPARATOR, $extra_path) . PATH_SEPARATOR . get_include_path());
// $extra_path = array("/opt/php-openid-2.0.1", "/usr/local/share/php");
// set_include_path(implode(PATH_SEPARATOR, $extra_path) . PATH_SEPARATOR . get_include_path());
# We get called by common.php, $config is a tree with lots of config
# options
# These are for configuring your URLs
// We get called by common.php, $config is a tree with lots of config
// options
// These are for configuring your URLs
$config['site']['name'] = 'Just another Laconica microblog';
$config['site']['server'] = 'localhost';
$config['site']['path'] = 'laconica';
#$config['site']['fancy'] = false;
#$config['site']['theme'] = 'default';
#To enable the built-in mobile style sheet, defaults to false.
#$config['site']['mobile'] = true;
#For contact email, defaults to $_SERVER["SERVER_ADMIN"]
#$config['site']['email'] = 'admin@example.net';
#Brought by...
#$config['site']['broughtby'] = 'Individual or Company';
#$config['site']['broughtbyurl'] = 'http://example.net/';
#If you don't want to let users register (say, for a one-person install)
#Crude but effective -- register everybody, then lock down
#$config['site']['closed'] = true;
#Only allow registration for people invited by another user
#$config['site']['inviteonly'] = true;
#Make the site invisible to non-logged-in users
#$config['site']['private'] = true;
// $config['site']['fancy'] = false;
// $config['site']['theme'] = 'default';
// To enable the built-in mobile style sheet, defaults to false.
// $config['site']['mobile'] = true;
// For contact email, defaults to $_SERVER["SERVER_ADMIN"]
// $config['site']['email'] = 'admin@example.net';
// Brought by...
// $config['site']['broughtby'] = 'Individual or Company';
// $config['site']['broughtbyurl'] = 'http://example.net/';
// If you don't want to let users register (say, for a one-person install)
// Crude but effective -- register everybody, then lock down
// $config['site']['closed'] = true;
// Only allow registration for people invited by another user
// $config['site']['inviteonly'] = true;
// Make the site invisible to non-logged-in users
// $config['site']['private'] = true;
# 'direct' for direct notice links in sections
# 'attachment' for notice attachment links in sections
# left undefined, no link is showed
#$config['site']['notice_link'] = 'attachment';
#$config['site']['notice_link'] = 'direct';
// If you want logging sent to a file instead of syslog
// $config['site']['logfile'] = '/tmp/laconica.log';
# If you want logging sent to a file instead of syslog
#$config['site']['logfile'] = '/tmp/laconica.log';
// Enables extra log information, for example full details of PEAR DB errors
// $config['site']['logdebug'] = true;
# Enables extra log information, for example full details of PEAR DB errors
#$config['site']['logdebug'] = true;
// To set your own logo, overriding the one in the theme
// $config['site']['logo'] = '/mylogo.png';
#To set your own logo, overriding the one in the theme
#$config['site']['logo'] = '/mylogo.png';
# This is a PEAR DB DSN, see http://pear.php.net/manual/en/package.database.db.intro-dsn.php
# Set it to match your actual database
// This is a PEAR DB DSN, see http://pear.php.net/manual/en/package.database.db.intro-dsn.php
// Set it to match your actual database
$config['db']['database'] = 'mysql://laconica:microblog@localhost/laconica';
#$config['db']['ini_your_db_name'] = $config['db']['schema_location'].'/laconica.ini';
# *** WARNING *** WARNING *** WARNING *** WARNING ***
# Setting debug to a non-zero value will expose your DATABASE PASSWORD to Web users.
# !!!!!! DO NOT SET THIS ON PRODUCTION SERVERS !!!!!! DB_DataObject's bug, btw, not
# ours.
# *** WARNING *** WARNING *** WARNING *** WARNING ***
#$config['db']['debug'] = 0;
#$config['db']['db_driver'] = 'MDB2';
// $config['db']['ini_your_db_name'] = $config['db']['schema_location'].'/laconica.ini';
// *** WARNING *** WARNING *** WARNING *** WARNING ***
// Setting debug to a non-zero value will expose your DATABASE PASSWORD to Web users.
// !!!!!! DO NOT SET THIS ON PRODUCTION SERVERS !!!!!! DB_DataObject's bug, btw, not
// ours.
// *** WARNING *** WARNING *** WARNING *** WARNING ***
// $config['db']['debug'] = 0;
// $config['db']['db_driver'] = 'MDB2';
#Database type. For mysql, these defaults are fine. For postgresql, set
#'quote_identifiers' to true and 'type' to 'pgsql':
#$config['db']['quote_identifiers'] = false;
#$config['db']['type'] = 'mysql';
// Database type. For mysql, these defaults are fine. For postgresql, set
// 'quote_identifiers' to true and 'type' to 'pgsql':
// $config['db']['quote_identifiers'] = false;
// $config['db']['type'] = 'mysql';
#session_set_cookie_params(0, '/'. $config['site']['path'] .'/');
// session_set_cookie_params(0, '/'. $config['site']['path'] .'/');
#Standard fancy-url clashes prevented by not allowing nicknames on a blacklist
#Add your own here. Note: empty array by default
#$config['nickname']['blacklist'][] = 'scobleizer';
// Standard fancy-url clashes prevented by not allowing nicknames on a blacklist
// Add your own here. Note: empty array by default
// $config['nickname']['blacklist'][] = 'scobleizer';
# sphinx search
// sphinx search
$config['sphinx']['enabled'] = false;
$config['sphinx']['server'] = 'localhost';
$config['sphinx']['port'] = 3312;
# Users to populate the 'Featured' tab
#$config['nickname']['featured'][] = 'scobleizer';
// Users to populate the 'Featured' tab
// $config['nickname']['featured'][] = 'scobleizer';
# xmpp
#$config['xmpp']['enabled'] = false;
#$config['xmpp']['server'] = 'server.example.net';
#$config['xmpp']['host'] = NULL; # Only set if different from server
#$config['xmpp']['port'] = 5222;
#$config['xmpp']['user'] = 'update';
#$config['xmpp']['encryption'] = false;
#$config['xmpp']['resource'] = 'uniquename';
#$config['xmpp']['password'] = 'blahblahblah';
#$config['xmpp']['public'][] = 'someindexer@example.net';
#$config['xmpp']['debug'] = false;
// xmpp
// $config['xmpp']['enabled'] = false;
// $config['xmpp']['server'] = 'server.example.net';
// $config['xmpp']['host'] = NULL; // Only set if different from server
// $config['xmpp']['port'] = 5222;
// $config['xmpp']['user'] = 'update';
// $config['xmpp']['encryption'] = false;
// $config['xmpp']['resource'] = 'uniquename';
// $config['xmpp']['password'] = 'blahblahblah';
// $config['xmpp']['public'][] = 'someindexer@example.net';
// $config['xmpp']['debug'] = false;
#Default locale info
#$config['site']['timezone'] = 'Pacific/Auckland';
#$config['site']['language'] = 'en_NZ';
// Default locale info
// $config['site']['timezone'] = 'Pacific/Auckland';
// $config['site']['language'] = 'en_NZ';
#Email info, used for all outbound email
#$config['mail']['notifyfrom'] = 'microblog@example.net';
#$config['mail']['domain'] = 'microblog.example.net';
# See http://pear.php.net/manual/en/package.mail.mail.factory.php for options
#$config['mail']['backend'] = 'smtp';
#$config['mail']['params'] = array(
# 'host' => 'localhost',
# 'port' => 25,
# );
#For incoming email, if enabled. Defaults to site server name.
#$config['mail']['domain'] = 'incoming.example.net';
// Email info, used for all outbound email
// $config['mail']['notifyfrom'] = 'microblog@example.net';
// $config['mail']['domain'] = 'microblog.example.net';
// See http://pear.php.net/manual/en/package.mail.mail.factory.php for options
// $config['mail']['backend'] = 'smtp';
// $config['mail']['params'] = array(
// 'host' => 'localhost',
// 'port' => 25,
// );
// For incoming email, if enabled. Defaults to site server name.
// $config['mail']['domain'] = 'incoming.example.net';
#exponential decay factor for tags, default 10 days
#raise this if traffic is slow, lower it if it's fast
#$config['tag']['dropoff'] = 86400.0 * 10;
// exponential decay factor for tags, default 10 days
// raise this if traffic is slow, lower it if it's fast
// $config['tag']['dropoff'] = 86400.0 * 10;
#exponential decay factor for popular (most favorited notices)
#default 10 days -- similar to tag dropoff
#$config['popular']['dropoff'] = 86400.0 * 10;
// exponential decay factor for popular (most favorited notices)
// default 10 days -- similar to tag dropoff
// $config['popular']['dropoff'] = 86400.0 * 10;
#optionally show non-local messages in public timeline
#$config['public']['localonly'] = false;
// optionally show non-local messages in public timeline
// $config['public']['localonly'] = false;
#hide certain users from public pages, by ID
#$config['public']['blacklist'][] = 123;
#$config['public']['blacklist'][] = 2307;
// hide certain users from public pages, by ID
// $config['public']['blacklist'][] = 123;
// $config['public']['blacklist'][] = 2307;
#Mark certain notice sources as automatic and thus not
#appropriate for public feed
#$config['public]['autosource'][] = 'twitterfeed';
#$config['public]['autosource'][] = 'rssdent';
#$config['public]['autosource'][] = 'Ping.Fm';
#$config['public]['autosource'][] = 'HelloTxt';
#$config['public]['autosource'][] = 'Updating.Me';
// Mark certain notice sources as automatic and thus not
// appropriate for public feed
// $config['public]['autosource'][] = 'twitterfeed';
// $config['public]['autosource'][] = 'rssdent';
// $config['public]['autosource'][] = 'Ping.Fm';
// $config['public]['autosource'][] = 'HelloTxt';
// $config['public]['autosource'][] = 'Updating.Me';
#Do notice broadcasts offline
#If you use this, you must run the six offline daemons in the
#background. See the README for details.
#$config['queue']['enabled'] = true;
// Do notice broadcasts offline
// If you use this, you must run the six offline daemons in the
// background. See the README for details.
// $config['queue']['enabled'] = true;
#Queue subsystem
#subsystems: internal (default) or stomp
#using stomp requires an external message queue server
#$config['queue']['subsystem'] = 'stomp';
#$config['queue']['stomp_server'] = 'tcp://localhost:61613';
#use different queue_basename for each laconica instance managed by the server
#$config['queue']['queue_basename'] = 'laconica';
// Queue subsystem
// subsystems: internal (default) or stomp
// using stomp requires an external message queue server
// $config['queue']['subsystem'] = 'stomp';
// $config['queue']['stomp_server'] = 'tcp://localhost:61613';
// use different queue_basename for each laconica instance managed by the server
// $config['queue']['queue_basename'] = 'laconica';
#The following customise the behaviour of the various daemons:
#$config['daemon']['piddir'] = '/var/run';
#$config['daemon']['user'] = false;
#$config['daemon']['group'] = false;
// The following customise the behaviour of the various daemons:
// $config['daemon']['piddir'] = '/var/run';
// $config['daemon']['user'] = false;
// $config['daemon']['group'] = false;
#For installations with high traffic, laconica can use MemCached to cache
#frequently requested information. Only enable the following if you have
#MemCached up and running:
#$config['memcached']['enabled'] = false;
#$config['memcached']['server'] = 'localhost';
#$config['memcached']['port'] = 11211;
// For installations with high traffic, laconica can use MemCached to cache
// frequently requested information. Only enable the following if you have
// MemCached up and running:
// $config['memcached']['enabled'] = false;
// $config['memcached']['server'] = 'localhost';
// $config['memcached']['port'] = 11211;
# Enable bidirectional Twitter bridge
#$config['twitterbridge']['enabled'] = true;
// Twitter integration source attribute. Note: default is Laconica
// $config['integration']['source'] = 'Laconica';
#Twitter integration source attribute. Note: default is Laconica
#$config['integration']['source'] = 'Laconica';
// Edit throttling. Off by default. If turned on, you can only post 20 notices
// every 10 minutes. Admins may want to play with the settings to minimize inconvenience for
// real users without getting uncontrollable floods from spammers or runaway bots.
# Edit throttling. Off by default. If turned on, you can only post 20 notices
# every 10 minutes. Admins may want to play with the settings to minimize inconvenience for
# real users without getting uncontrollable floods from spammers or runaway bots.
// $config['throttle']['enabled'] = true;
// $config['throttle']['count'] = 100;
// $config['throttle']['timespan'] = 3600;
#$config['throttle']['enabled'] = true;
#$config['throttle']['count'] = 100;
#$config['throttle']['timespan'] = 3600;
// List of users banned from posting (nicknames and/or IDs)
// $config['profile']['banned'][] = 'hacker';
// $config['profile']['banned'][] = 12345;
# List of users banned from posting (nicknames and/or IDs)
#$config['profile']['banned'][] = 'hacker';
#$config['profile']['banned'][] = 12345;
// Config section for the built-in Facebook application
// $config['facebook']['apikey'] = 'APIKEY';
// $config['facebook']['secret'] = 'SECRET';
# Config section for the built-in Facebook application
#$config['facebook']['apikey'] = 'APIKEY';
#$config['facebook']['secret'] = 'SECRET';
// Add Google Analytics
// require_once('plugins/GoogleAnalyticsPlugin.php');
// $ga = new GoogleAnalyticsPlugin('your secret code');
# Facebook Connect plugin (Needs valid APIKEY above)
#require_once(INSTALLDIR.'/plugins/FBConnect/FBConnectPlugin.php');
#$fbc = new FBConnectPlugin();
// Use Templating (template: /tpl/index.php)
// require_once('plugins/TemplatePlugin.php');
// $tpl = new TemplatePlugin();
# Add Google Analytics
# require_once('plugins/GoogleAnalyticsPlugin.php');
# $ga = new GoogleAnalyticsPlugin('your secret code');
// Don't allow saying the same thing more than once per hour
// $config['site']['dupelimit'] = 3600;
// Don't enforce the dupe limit
// $config['site']['dupelimit'] = -1;
# Use Templating (template: /tpl/index.php)
# require_once('plugins/TemplatePlugin.php');
# $tpl = new TemplatePlugin();
// Base string for minting Tag URIs in Atom feeds. Defaults to
// "yourserver,2009". This needs to be configured properly for your Atom
// feeds to validate. See: http://www.faqs.org/rfcs/rfc4151.html and
// http://taguri.org/ Examples:
// $config['integration']['taguri'] = 'example.net,2008';
// $config['integration']['taguri'] = 'admin@example.net,2009-03-09'
#Don't allow saying the same thing more than once per hour
#$config['site']['dupelimit'] = 3600;
#Don't enforce the dupe limit
#$config['site']['dupelimit'] = -1;
// Don't use SSL
// $config['site']['ssl'] = 'never';
// Use SSL only for sensitive pages (like login, password change)
// $config['site']['ssl'] = 'sometimes';
// Use SSL for all pages
// $config['site']['ssl'] = 'always';
#Base string for minting Tag URIs in Atom feeds. Defaults to
#"yourserver,2009". This needs to be configured properly for your Atom
#feeds to validate. See: http://www.faqs.org/rfcs/rfc4151.html and
#http://taguri.org/ Examples:
#$config['integration']['taguri'] = 'example.net,2008';
#$config['integration']['taguri'] = 'admin@example.net,2009-03-09'
// Use a different hostname for SSL-encrypted pages
// $config['site']['sslserver'] = 'secure.example.org';
#Don't use SSL
#$config['site']['ssl'] = 'never';
#Use SSL only for sensitive pages (like login, password change)
#$config['site']['ssl'] = 'sometimes';
#Use SSL for all pages
#$config['site']['ssl'] = 'always';
#Use a different hostname for SSL-encrypted pages
#$config['site']['sslserver'] = 'secure.example.org';
#If you have a lot of status networks on the same server, you can
#store the site data in a database and switch as follows
#Status_network::setupDB('localhost', 'statusnet', 'statuspass', 'statusnet');
#if (!Status_network::setupSite($_server, $_path)) {
# print "Error\n";
# exit(1);
#}
// If you have a lot of status networks on the same server, you can
// store the site data in a database and switch as follows
// Status_network::setupDB('localhost', 'statusnet', 'statuspass', 'statusnet');
// if (!Status_network::setupSite($_server, $_path)) {
// print "Error\n";
// exit(1);
// }

View File

@ -1,30 +1,31 @@
/** Init for Farbtastic library and page setup
*
* @package Laconica
* @author Sarven Capadisli <csarven@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/
*/
$(document).ready(function() {
function UpdateColors(e) {
var S = f.linked;
var C = f.color;
if (S && S.value && S.value != C) {
UpdateSwatch(S);
switch (parseInt(f.linked.id.slice(-1))) {
case 1: default:
function UpdateColors(S) {
C = $(S).val();
switch (parseInt(S.id.slice(-1))) {
case 0: default:
$('body').css({'background-color':C});
break;
case 2:
case 1:
$('#content').css({'background-color':C});
break;
case 3:
case 2:
$('#aside_primary').css({'background-color':C});
break;
case 4:
case 3:
$('body').css({'color':C});
break;
case 5:
case 4:
$('a').css({'color':C});
break;
}
S.value = C;
}
}
function UpdateFarbtastic(e) {
@ -33,35 +34,52 @@ $(document).ready(function() {
}
function UpdateSwatch(e) {
$(e).css({
"background-color": e.value,
"color": f.hsl[2] > 0.5 ? "#000": "#fff"
});
$(e).css({"background-color": e.value,
"color": f.hsl[2] > 0.5 ? "#000": "#fff"});
}
function SynchColors(e) {
var S = f.linked;
var C = f.color;
if (S && S.value && S.value != C) {
S.value = C;
UpdateSwatch(S);
UpdateColors(S);
}
}
function Init() {
$('#settings_design_color').append('<div id="color-picker"></div>');
$('#color-picker').hide();
var f = $.farbtastic('#color-picker', UpdateColors);
var swatches = $('#settings_design_color input');
f = $.farbtastic('#color-picker', SynchColors);
swatches = $('#settings_design_color .swatch');
swatches
.each(UpdateColors)
.each(SynchColors)
.blur(function() {
$(this).val($(this).val().toUpperCase());
})
.focus(function() {
$('#color-picker').show();
UpdateFarbtastic(this);
})
.change(function() {
UpdateFarbtastic(this);
UpdateSwatch(this);
}).change()
;
UpdateColors(this);
}).change();
}
var f, swatches;
Init();
$('#form_settings_design').bind('reset', function(){
setTimeout(function(){
swatches.each(function(){UpdateColors(this);});
$('#color-picker').remove();
swatches.unbind();
Init();
},10);
});
});

View File

@ -1,3 +1,12 @@
/** Init for Jcrop library and page setup
*
* @package Laconica
* @author Sarven Capadisli <csarven@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/
*/
$(function(){
var x = ($('#avatar_crop_x').val()) ? $('#avatar_crop_x').val() : 0;
var y = ($('#avatar_crop_y').val()) ? $('#avatar_crop_y').val() : 0;

View File

@ -19,7 +19,7 @@
if (!defined('LACONICA')) { exit(1); }
define('LACONICA_VERSION', '0.7.3');
define('LACONICA_VERSION', '0.8.0dev');
define('AVATAR_PROFILE_SIZE', 96);
define('AVATAR_STREAM_SIZE', 48);

View File

@ -120,22 +120,28 @@ class FBConnectPlugin extends Plugin
$apikey = common_config('facebook', 'apikey');
$plugin_path = common_path('plugins/FBConnect');
$url = common_get_returnto();
$login_url = common_get_returnto();
if ($url) {
if ($login_url) {
// We don't have to return to it again
common_set_returnto(null);
} else {
$url = common_local_url('public');
}
$logout_url = common_local_url('logout');
$html = sprintf('<script type="text/javascript">FB.init("%s", "%s/xd_receiver.htm");
function refresh_page() {
function goto_login() {
window.location = "%s";
}
</script>', $apikey, $plugin_path, $url);
function goto_logout() {
window.location = "%s";
}
</script>', $apikey, $plugin_path, $login_url, $logout_url);
$action->raw($html);
@ -170,8 +176,8 @@ class FBConnectPlugin extends Plugin
$text = _('Logout');
$html = sprintf('<li id="nav_logout"><a href="%s" title="%s" ' .
'onclick="FB.Connect.logoutAndRedirect(\'%s\')">%s</a></li>',
$logout_url, $title, $logout_url, $text);
'onclick="FB.Connect.logout(function() { goto_logout() })">%s</a></li>',
$logout_url, $title, $text);
$action->raw($html);
@ -198,7 +204,7 @@ class FBConnectPlugin extends Plugin
if (!$user) {
$action->elementStart('li');
$action->element('fb:login-button', array('onlogin' => 'refresh_page()',
$action->element('fb:login-button', array('onlogin' => 'goto_login()',
'length' => 'long'));
$action->elementEnd('li');
}

View File

@ -214,7 +214,8 @@ class TwitterStatusFetcher extends Daemon
return;
}
foreach ($timeline as $status) {
// Reverse to preserve order
foreach (array_reverse($timeline) as $status) {
// Hacktastic: filter out stuff coming from this Laconica
$source = mb_strtolower(common_config('integration', 'source'));

View File

@ -1161,6 +1161,17 @@ width:400px;
margin-right:28px;
}
#settings_design_color .form_data li {
width:33%;
}
#settings_design_color .form_data label {
float:none;
}
#settings_design_color .form_data .swatch {
padding:11px;
margin-left:0;
}
.instructions ul {
list-style-position:inside;
}

View File

@ -72,13 +72,6 @@ border-top-color:#D1D9E4;
border-top-color:#C3D6DF;
}
#content .notice p.entry-content a:visited {
background-color:#fcfcfc;
}
#content .notice p.entry-content .vcard a {
background-color:#fcfffc;
}
#aside_primary {
background-color:#CEE1E9;
}