GNU social plugin (for look/feel), theme, template

This commit is contained in:
Matt Lee 2010-07-26 22:05:33 -04:00
parent 5f0bda14de
commit 6b34a2111d
33 changed files with 952 additions and 0 deletions

View File

@ -0,0 +1,357 @@
<?php
/**
* Plugin to render old skool templates
*
* Captures rendered parts from the output buffer, passes them through a template file: tpl/index.html
* Adds an API method at index.php/template/update which lets you overwrite the template file
* Requires username/password and a single POST parameter called "template"
* The method is disabled unless the user is #1, the first user of the system
*
* @category Plugin
* @package StatusNet
* @author Brian Hendrickson <brian@megapump.com>
* @copyright 2009 Megapump, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://megapump.com/
*/
if (!defined('STATUSNET')) {
exit(1);
}
define('TEMPLATEPLUGIN_VERSION', '0.1');
class TemplatePlugin extends Plugin {
var $blocks = array();
function __construct() {
parent::__construct();
}
// capture the RouterInitialized event
// and connect a new API method
// for updating the template
function onRouterInitialized( $m ) {
$m->connect( 'template/update', array(
'action' => 'template',
));
}
// <%styles%>
// <%scripts%>
// <%search%>
// <%feeds%>
// <%description%>
// <%head%>
function onStartShowHead( &$act ) {
$this->clear_xmlWriter($act);
$act->extraHead();
$this->blocks['head'] = $act->xw->flush();
$act->showStylesheets();
$this->blocks['styles'] = $act->xw->flush();
$act->showScripts();
$this->blocks['scripts'] = $act->xw->flush();
$act->showFeeds();
$this->blocks['feeds'] = $act->xw->flush();
$act->showOpenSearch();
$this->blocks['search'] = $act->xw->flush();
$act->showDescription();
$this->blocks['description'] = $act->xw->flush();
return false;
}
// <%bodytext%>
function onStartShowContentBlock( &$act ) {
$this->clear_xmlWriter($act);
return true;
}
function onEndShowContentBlock( &$act ) {
$this->blocks['bodytext'] = $act->xw->flush();
}
// <%localnav%>
function onStartShowLocalNavBlock( &$act ) {
$this->clear_xmlWriter($act);
return true;
}
function onEndShowLocalNavBlock( &$act ) {
$this->blocks['localnav'] = $act->xw->flush();
}
// <%export%>
function onStartShowExportData( &$act ) {
$this->clear_xmlWriter($act);
return true;
}
function onEndShowExportData( &$act ) {
$this->blocks['export'] = $act->xw->flush();
}
// <%subscriptions%>
// <%subscribers%>
// <%groups%>
// <%statistics%>
// <%cloud%>
// <%groupmembers%>
// <%groupstatistics%>
// <%groupcloud%>
// <%popular%>
// <%groupsbyposts%>
// <%featuredusers%>
// <%groupsbymembers%>
function onStartShowSections( &$act ) {
global $action;
$this->clear_xmlWriter($act);
switch ($action) {
case "showstream":
$act->showSubscriptions();
$this->blocks['subscriptions'] = $act->xw->flush();
$act->showSubscribers();
$this->blocks['subscribers'] = $act->xw->flush();
$act->showGroups();
$this->blocks['groups'] = $act->xw->flush();
$act->showStatistics();
$this->blocks['statistics'] = $act->xw->flush();
$cloud = new PersonalTagCloudSection($act, $act->user);
$cloud->show();
$this->blocks['cloud'] = $act->xw->flush();
break;
case "showgroup":
$act->showMembers();
$this->blocks['groupmembers'] = $act->xw->flush();
$act->showStatistics();
$this->blocks['groupstatistics'] = $act->xw->flush();
$cloud = new GroupTagCloudSection($act, $act->group);
$cloud->show();
$this->blocks['groupcloud'] = $act->xw->flush();
break;
case "public":
$pop = new PopularNoticeSection($act);
$pop->show();
$this->blocks['popular'] = $act->xw->flush();
$gbp = new GroupsByPostsSection($act);
$gbp->show();
$this->blocks['groupsbyposts'] = $act->xw->flush();
$feat = new FeaturedUsersSection($act);
$feat->show();
$this->blocks['featuredusers'] = $act->xw->flush();
break;
case "groups":
$gbp = new GroupsByPostsSection($act);
$gbp->show();
$this->blocks['groupsbyposts'] = $act->xw->flush();
$gbm = new GroupsByMembersSection($act);
$gbm->show();
$this->blocks['groupsbymembers'] = $act->xw->flush();
break;
}
return false;
}
// <%logo%>
// <%nav%>
// <%notice%>
// <%noticeform%>
function onStartShowHeader( &$act ) {
$this->clear_xmlWriter($act);
$act->showLogo();
$this->blocks['logo'] = $act->xw->flush();
$act->showPrimaryNav();
$this->blocks['nav'] = $act->xw->flush();
$act->showSiteNotice();
$this->blocks['notice'] = $act->xw->flush();
if (common_logged_in()) {
$act->showNoticeForm();
} else {
$act->showAnonymousMessage();
}
$this->blocks['noticeform'] = $act->xw->flush();
return false;
}
// <%secondarynav%>
// <%licenses%>
function onStartShowFooter( &$act ) {
$this->clear_xmlWriter($act);
$act->showSecondaryNav();
$this->blocks['secondarynav'] = $act->xw->flush();
$act->showLicenses();
$this->blocks['licenses'] = $act->xw->flush();
return false;
}
// capture the EndHTML event
// and include the template
function onEndEndHTML($act) {
global $action, $tags;
// set the action and title values
$vars = array(
'action'=>$action,
'title'=>$act->title(). " - ". common_config('site', 'name')
);
// use the PHP template
// unless statusnet config:
// $config['template']['mode'] = 'html';
if (!(common_config('template', 'mode') == 'html')) {
$tpl_file = $this->templateFolder() . '/social.php';
$tags = array_merge($vars,$this->blocks);
include $tpl_file;
return;
}
$tpl_file = $this->templateFolder() . '/index.html';
// read the static template
$output = file_get_contents( $tpl_file );
$tags = array();
// get a list of the <%tags%> in the template
$pattern='/<%([a-z]+)%>/';
if ( 1 <= preg_match_all( $pattern, $output, $found ))
$tags[] = $found;
// for each found tag, set its value from the rendered blocks
foreach( $tags[0][1] as $pos=>$tag ) {
if (isset($this->blocks[$tag]))
$vars[$tag] = $this->blocks[$tag];
// didn't find a block for the tag
elseif (!isset($vars[$tag]))
$vars[$tag] = '';
}
// replace the tags in the template
foreach( $vars as $key=>$val )
$output = str_replace( '<%'.$key.'%>', $val, $output );
echo $output;
return true;
}
function templateFolder() {
return 'tpl';
}
// catching the StartShowHTML event to halt the rendering
function onStartShowHTML( &$act ) {
$this->clear_xmlWriter($act);
return true;
}
// clear the xmlWriter
function clear_xmlWriter( &$act ) {
$act->xw->openMemory();
$act->xw->setIndent(true);
}
}
/**
* Action for updating the template remotely
*
* "template/update" -- a POST method that requires a single
* parameter "template", containing the new template code
*
* @category Plugin
* @package StatusNet
* @author Brian Hendrickson <brian@megapump.com>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://megapump.com/
*
*/
class TemplateAction extends Action
{
function prepare($args) {
parent::prepare($args);
return true;
}
function handle($args) {
parent::handle($args);
if (!isset($_SERVER['PHP_AUTH_USER'])) {
// not authenticated, show login form
header('WWW-Authenticate: Basic realm="StatusNet API"');
// cancelled the browser login form
$this->clientError(_('Authentication error!'), $code = 401);
} else {
$nick = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
// check username and password
$user = common_check_user($nick,$pass);
if ($user) {
// verify that user is admin
if (!($user->id == 1))
$this->clientError(_('Only User #1 can update the template.'), $code = 401);
// open the old template
$tpl_file = $this->templateFolder() . '/index.html';
$fp = fopen( $tpl_file, 'w+' );
// overwrite with the new template
fwrite($fp, $this->arg('template'));
fclose($fp);
header('HTTP/1.1 200 OK');
header('Content-type: text/plain');
print "Template Updated!";
} else {
// bad username and password
$this->clientError(_('Authentication error!'), $code = 401);
}
}
}
function onPluginVersion(&$versions)
{
$versions[] = array('name' => 'Template',
'version' => TEMPLATEPLUGIN_VERSION,
'author' => 'Brian Hendrickson',
'homepage' => 'http://status.net/wiki/Plugin:Template',
'rawdescription' =>
_m('Use an HTML template for Web output.'));
return true;
}
}
/**
* Function for retrieving a statusnet display section
*
* requires one parameter, the name of the section
* section names are listed in the comments of the TemplatePlugin class
*
* @category Plugin
* @package StatusNet
* @author Brian Hendrickson <brian@megapump.com>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://megapump.com/
*
*/
function section($tagname) {
global $tags;
if (isset($tags[$tagname]))
return $tags[$tagname];
}

BIN
theme/gnusocial/bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

13
theme/gnusocial/combo.css Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
#hd { background-color: orange !important; }
#bd { background-color: red !important; }
#ft { background-color: lime !important; }
#yui-main { background-color: yellow !important; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

213
theme/gnusocial/index.html Normal file
View File

@ -0,0 +1,213 @@
<!DOCTYPE html>
<head>
<title>Public timeline - Lorraine Lee &mdash; GNU social</title>
<link rel="stylesheet" href="/theme/gnusocial/combo.css" type="text/css">
<style type="text/css">
#custom-doc { width:76.23em;*width:74.39em;min-width:991px; margin:auto; text-align:left; }
html, body{padding: 0; margin: 0;}
body {background-image: url(/theme/gnusocial/bg.png); background-repeat: repeat-x;}
#hd h1 {margin: 0; line-height: 48px; font-size: 30px; font-weight: bold;}
#hd h1 a{color: #111; text-decoration: none;}
#hd dt {display: none;}
#hd ul {padding: 0; margin: 0; line-height: 48px; position: absolute; top: 0; right: 10px; }
#hd li {display: inline; list-style: none; margin-left: 12px;}
#hd {height: 48px; position: relative;}
#bd {margin-top: 12px;}
#ft {font-size: 10px; text-align: right; margin-top: 12px}
form {margin: 0 auto; width: 70%;}
table {width: 100%;}
tr, td{border: 0;}
.update-text{ font-size: 12px; font-weight: bold;}
.update-icon{ text-align: center;}
#stream li{list-style: none; position: relative; margin-top: 12px; }
#stream dl {position: absolute; top: 0; left: 50px;}
#stream dd {color: #333; font-size: 80%; padding: 0; margin: 0; margin-top: 6px;}
#social {border-left: 1px solid #999; border-right: 1px solid #999; padding-left: 10px;}
#sidebar ul{margin: 0; padding: 0;}
#sidebar li {list-style: none;}
#sidebar li a{display: block; width: 180px; padding: 4px;}
#sidebar li a:hover {background-color: #ececec;}
.selected {background-color: cyan; width: 180px;}
#right-nav {background-color: #ececec;}
#right-nav div {padding: 10px;}
</style>
</head>
<body id="public">
<div id="custom-doc" class="yui-t2">
<div id="hd">
<h1>GNU social</h1>
<dl id="site_nav_global_primary">
<dt>Primary site navigation</dt>
<dd>
<ul class="nav">
<li id="nav_login">
<a href="http://lorrainelee.co.uk/main/login" title="Login to the site">Login</a>
</li>
<li id="nav_help">
<a href="http://lorrainelee.co.uk/doc/help" title="Help me!">Help</a>
</li>
<li id="nav_search">
<a href="http://lorrainelee.co.uk/search/people" title="Search for people or text">Search</a>
</li>
</ul>
</dd>
</dl>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<div class="yui-gc">
<div class="yui-u first">
<dl id="site_notice" class="system_notice">
<dt>Site notice</dt>
<dd>Powered by <a href="http://www.gnu.org/software/social/">GNU social</a></dd>
</dl>
<div id="anon_notice"><p>This is Lorraine Lee, a <a href="http://en.wikipedia.org/wiki/Micro-blogging">micro-blogging</a> service based on the Free Software <a href="http://status.net/">StatusNet</a> tool.</p>
</div>
<div id="content">
<h1>Public timeline</h1>
<div id="content_inner">
<div id="notices_primary">
<h2>Notices</h2>
<ol class="notices xoxo">
<li class="hentry notice" id="notice-5">
<div class="entry-title">
<span class="vcard author">
<a href="http://lorrainelee.co.uk/lorraine" class="url" title="Lorraine Lee (lorraine)">
<img src="http://lorrainelee.co.uk/avatar/3-48-20100722212232.jpeg" class="avatar photo" width="48" height="48" alt="Lorraine Lee"/>
<span class="nickname fn">lorraine</span></a>
</span>
<p class="entry-content">im going to brush my teeth</p>
</div>
<div class="entry-content">
<a rel="bookmark" class="timestamp" href="http://lorrainelee.co.uk/notice/5">
<abbr class="published" title="2010-07-22T21:41:40+00:00">about 5 hours ago</abbr>
</a>
<span class="source">from <span class="device">web</span>
</span>
<span class="location">at <a href="http://www.geonames.org/2651292" rel="external"><abbr class="geo" title="50.7500000;-3.7500000">County of Devon, England, United Kingdom of Great Britain and Northern Ireland</abbr></a></span>
</div>
</li>
<li class="hentry notice" id="notice-2">
<div class="entry-title">
<span class="vcard author">
<a href="http://lorrainelee.co.uk/lorraine" class="url" title="Lorraine Lee (lorraine)">
<img src="http://lorrainelee.co.uk/avatar/3-48-20100722212232.jpeg" class="avatar photo" width="48" height="48" alt="Lorraine Lee"/>
<span class="nickname fn">lorraine</span></a>
</span>
<p class="entry-content">nothing im fine thank you</p>
</div>
<div class="entry-content">
<a rel="bookmark" class="timestamp" href="http://lorrainelee.co.uk/notice/2">
<abbr class="published" title="2010-07-22T21:38:18+00:00">about 5 hours ago</abbr>
</a>
<span class="source">from <span class="device">web</span>
</span>
<span class="location">at <a href="http://www.geonames.org/2651292" rel="external"><abbr class="geo" title="50.7500000;-3.7500000">County of Devon, England, United Kingdom of Great Britain and Northern Ireland</abbr></a></span>
<a href="http://lorrainelee.co.uk/conversation/2#notice-2" class="response">in context</a>
</div>
</li>
</ol>
</div>
</div>
</div>
</div>
<div class="yui-u" id="right-nav">
<div id="aside_primary" class="aside">
<div id="featured_users" class="section">
<h2>Featured users</h2>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="yui-b" id="sidebar">
<dl id="site_nav_local_views">
<dt>Local views</dt>
<dd>
<ul class="nav">
<li class="current" id="nav_timeline_public">
<a href="http://lorrainelee.co.uk/" title="Public timeline">Public</a>
</li>
<li id="nav_groups">
<a href="http://lorrainelee.co.uk/group" title="User groups">Groups</a>
</li>
<li id="nav_recent-tags">
<a href="http://lorrainelee.co.uk/tags" title="Recent tags">Recent tags</a>
</li>
<li id="nav_timeline_favorited">
<a href="http://lorrainelee.co.uk/favorited" title="Popular notices">Popular</a>
</li>
</ul>
</dd>
</dl>
</div>
</div>
<div id="ft">
<dl id="licenses">
<dt id="site_statusnet_license">StatusNet software licence</dt>
<dd><p><strong>Lorraine Lee</strong> is a microblogging service brought to you by <a href="http://www.gnu.org/s/social/">GNU social</a>. It runs the <a href="http://status.net/">StatusNet</a> microblogging software, version 0.9.3, available under the <a href="http://www.fsf.org/licensing/licenses/agpl-3.0.html">GNU Affero General Public Licence</a>.</p>
</dd>
<dt id="site_content_license">Site content license</dt>
<dd id="site_content_license_cc">
<p>
<img id="license_cc" src="http://i.creativecommons.org/l/by/3.0/80x15.png" alt="Creative Commons Attribution 3.0" width="80" height="15"/>
All Lorraine Lee content and data are available under the <a class="license" rel="external license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a> licence.</p>
</dd>
</dl>
</div>
</div>
</body>
</html>

BIN
theme/gnusocial/logo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

273
theme/gnusocial/social.css Executable file
View File

@ -0,0 +1,273 @@
@imp2ort url('./debug.css');
/* stuff we want to hide..... */
legend,.entry-content .source, .entry-content .location, .entry-content .response, #anon_notice, #notices_primary h2, #site_nav_local_views dt, #ft dt{ display: none !important; }
dl, dd { margin: 0 !important; padding: 0 !important;}
#yui-main { margin-bottom: 0 !important; padding-bottom: 0 !important;}
.notices { margin: 0; padding: 0; }
.notices li { list-style: none; }
#ft { padding-top: 12px;}
#custom-doc { width:76.23em;*width:74.39em;min-width:991px; margin:auto; text-align:left; }
#yui-main { background-color: white; position: relative; }
#sidebar *, #right-nav * { background: none !important; border: none !important; }
html, body{padding: 0; margin: 0;}
body {background-image: url(/theme/gnusocial/bg.png) !important; background-repeat: repeat-x !important; background-color: white;}
#hd h1 {margin: 0; line-height: 40px; font-size: 24px; font-weight: bold;}
#hd h1 a{color: #111; text-decoration: none;}
#hd dt {display: none;}
#hd ul {padding: 0; margin: 0; line-height: 48px; position: absolute; top: 0; right: 10px; }
#hd li {display: inline; list-style: none; margin-left: 12px;}
#hd {height: 40px; position: relative;}
form {margin: 0 auto; width: 70%;}
table {width: 100%;}
tr, td{border: 0;}
.update-text{ font-size: 12px; font-weight: bold;}
.update-icon{ text-align: center;}
#stream li{list-style: none; position: relative; margin-top: 12px; }
#stream dl {position: absolute; top: 0; left: 50px;}
#stream dd {color: #333; font-size: 80%; padding: 0; margin: 0; margin-top: 6px;}
#social {border-left: 1px solid #999; border-right: 1px solid #999; padding-left: 10px;}
#sidebar ul{margin: 0; padding: 0;}
#sidebar li {list-style: none;}
#sidebar li a{display: block; width: 180px; padding: 4px;}
#sidebar li a:hover {background-color: #ececec;}
.selected {background-color: cyan; width: 180px;}
#right-nav {background-color: #ececec;}
#right-nav div {padding: 10px;}
.form_notice { position: relative; top: 0; left: 0; }
form label.submit {
display:none;
}
.form_settings {
clear:both;
}
.form_settings fieldset {
margin-bottom:29px;
}
.form_settings input.remove {
margin-left:11px;
}
.form_settings .form_data li {
width:100%;
float:left;
}
.form_settings .form_data label {
float:left;
}
.form_settings .form_data textarea,
.form_settings .form_data select,
.form_settings .form_data input {
margin-left:11px;
float:left;
}
.form_settings .form_data textarea {
width:325px;
}
.form_settings .form_data input.submit {
margin-left:0;
}
.form_settings label {
margin-top:2px;
width:143px;
}
.form_actions label {
display:none;
}
.form_guide {
font-style:italic;
}
.form_settings #settings_autosubscribe label {
display:inline;
font-weight:bold;
}
#form_settings_profile legend,
#form_login legend,
#form_register legend,
#form_password legend,
#form_settings_avatar legend,
#newgroup legend,
#editgroup legend,
#form_tag_user legend,
#form_remote_subscribe legend,
#form_openid_login legend,
#form_search legend,
#form_invite legend,
#form_notice_delete legend,
#form_password_recover legend,
#form_password_change legend {
display:none;
}
.form_settings .form_data p.form_guide {
clear:both;
margin-left:155px;
margin-bottom:0;
}
.form_settings p {
margin-bottom:11px;
}
.form_settings input.checkbox {
margin-top:0;
margin-left:0;
}
.form_settings label.checkbox {
font-weight:normal;
margin-top:0;
margin-right:0;
margin-left:11px;
float:left;
width:90%;
}
#form_login p.form_guide,
#form_register #settings_rememberme p.form_guide,
#form_openid_login #settings_rememberme p.form_guide,
#settings_twitter_remove p.form_guide,
#form_search ul.form_data #q {
margin-left:0;
}
.form_settings .form_note {
border-radius:4px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
padding:0 7px;
}
.form_settings input.form_action-primary {
padding:0;
}
.form_settings input.form_action-secondary {
margin-left:29px;
}
#form_search .submit {
margin-left:11px;
}
caption {
font-weight:bold;
}
legend {
font-weight:bold;
font-size:1.3em;
}
input, textarea, select, option {
padding:4px;
font-family:sans-serif;
font-size:1em;
}
input, textarea, select {
border-width:2px;
border-style: solid;
border-radius:4px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
}
input.submit {
font-weight:bold;
cursor:pointer;
}
textarea {
overflow:auto;
}
option {
padding-bottom:0;
}
fieldset {
padding:0;
border:0;
}
form ul li {
list-style-type:none;
margin:0 0 18px 0;
}
form label {
font-weight:bold;
}
input.checkbox {
position:relative;
top:2px;
left:0;
border:0;
}
.error,
.success {
padding:4px 7px;
border-radius:4px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
margin-bottom:18px;
}
#all .notice, #public .notice { padding-bottom: 12px;}
#all .notice .entry-title, #public .notice .entry-title { position: relative;}
#all .notice .entry-title .entry-content, #public .notice .entry-title .entry-content { position: absolute; top: 25px; left: 55px; }
#all .notice .entry-content .timestamp, #public .notice .entry-content .timestamp { color: #666; margin-left: 55px; font-size: 80%; text-decoration: none !important; }
abbr { border: 0px !important; }
#all .entry-title .author .nickname, #public .entry-title .author .nickname { position: absolute; top: 0; left: 55px; font-weight: bold; }
#showstream #i { position: absolute; top: 0; left: 0; background-color: white; z-index: 100; width: 185px; }
.notice-options, .form_favor .submit, .form_repeat .submit { background-color: white; border: 0; display: none !important; }
#form_notice { margin-top: 10px;}
label { display: none !important; }

76
tpl/social.php Executable file
View File

@ -0,0 +1,76 @@
<!DOCTYPE html>
<head>
<title><?php echo section('title'); ?> &mdash; GNU social</title>
<link rel="stylesheet" href="/theme/gnusocial/combo.css" type="text/css">
<link rel="stylesheet" href="/theme/gnusocial/social.css" type="text/css">
<?php echo section('scripts'); ?>
<?php echo section('search'); ?>
<?php echo section('feeds'); ?>
<?php echo section('description'); ?>
<?php echo section('head'); ?>
</head>
<body id="<?php echo section('action'); ?>">
<div id="custom-doc" class="yui-t2">
<div id="hd">
<h1><a href="/">GNU social</a></h1>
<?php echo section('nav'); ?>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b" id="social">
<div class="yui-gc">
<div class="yui-u first">
<?php echo section('noticeform'); ?>
<?php echo section('bodytext'); ?>
</div>
<div class="yui-u" id="right-nav">
<div id="aside_primary" class="aside">
<?php echo section('subscriptions'); ?>
<?php echo section('subscribers'); ?>
<?php echo section('groups'); ?>
<?php echo section('cloud'); ?>
<?php echo section('popular'); ?>
</div>
</div>
</div>
</div>
</div>
<div class="yui-b" id="sidebar">
<?php echo section('localnav'); ?>
</div>
</div>
<div id="ft">
<p>This is GNU social.</p>
</div>
</div>
</body>
</html>