Merge pull request #230 from fabrixxm/master

some work, mainly on quattro
This commit is contained in:
friendica 2012-04-13 06:02:18 -07:00
commit 11ba88b6d2
22 changed files with 410 additions and 201 deletions

View file

@ -587,8 +587,9 @@ function fetch_xrd_links($url) {
if(! function_exists('validate_url')) {
function validate_url(&$url) {
// no naked subdomains
if(strpos($url,'.') === false)
// no naked subdomains (allow localhost for tests)
if(strpos($url,'.') === false && strpos($url,'/localhost/') === false)
return false;
if(substr($url,0,4) != 'http')
$url = 'http://' . $url;

View file

@ -1068,10 +1068,12 @@ function unamp($s) {
if(! function_exists('lang_selector')) {
function lang_selector() {
global $lang;
$o = '<div id="lang-select-icon" class="icon language" title="' . t('Select an alternate language') . '" onclick="openClose(\'language-selector\');" ></div>';
$o .= '<div id="language-selector" style="display: none;" >';
$o .= '<form action="#" method="post" ><select name="system_language" onchange="this.form.submit();" >';
$langs = glob('view/*/strings.php');
$lang_options = array();
$selected = "";
if(is_array($langs) && count($langs)) {
$langs[] = '';
if(! in_array('view/en/strings.php',$langs))
@ -1079,17 +1081,22 @@ function lang_selector() {
asort($langs);
foreach($langs as $l) {
if($l == '') {
$default_selected = ((! x($_SESSION,'language')) ? ' selected="selected" ' : '');
$o .= '<option value="" ' . $default_selected . '>' . t('default') . '</option>';
$lang_options[""] = t('default');
continue;
}
$ll = substr($l,5);
$ll = substr($ll,0,strrpos($ll,'/'));
$selected = (($ll === $lang && (x($_SESSION, 'language'))) ? ' selected="selected" ' : '');
$o .= '<option value="' . $ll . '"' . $selected . '>' . $ll . '</option>';
$selected = (($ll === $lang && (x($_SESSION, 'language'))) ? $ll : $selected);
$lang_options[$ll]=$ll;
}
}
$o .= '</select></form></div>';
$tpl = get_markup_template("lang_selector.tpl");
$o = replace_macros($tpl, array(
'$title' => t('Select an alternate language'),
'$langs' => array($lang_options, $selected),
));
return $o;
}}

View file

@ -40,6 +40,20 @@ function admin_post(&$a){
goaway($a->get_baseurl(true) . '/admin/plugins/' . $a->argv[2] );
return; // NOTREACHED
break;
case 'themes':
$theme = $a->argv[2];
if (is_file("view/theme/$theme/config.php")){
require_once("view/theme/$theme/config.php");
if (function_exists("theme_admin_post")){
theme_admin_post($a);
}
}
info(t('Theme settings updated.'));
if(is_ajax()) return;
goaway($a->get_baseurl(true) . '/admin/themes/' . $theme );
return;
break;
case 'logs':
admin_page_logs_post($a);
break;
@ -129,7 +143,13 @@ function admin_content(&$a) {
} else {
$o = admin_page_summary($a);
}
return $o;
if(is_ajax()) {
echo $o;
killme();
} else {
return $o;
}
}
@ -362,7 +382,7 @@ function admin_page_site(&$a) {
'$sitename' => array('sitename', t("Site name"), htmlentities($a->config['sitename'], ENT_QUOTES), ""),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""),
'$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles"), $theme_choices),
'$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"), $theme_choices),
'$ssl_policy' => array('ssl_policy', t("SSL link policy"), (string) intval(get_config('system','ssl_policy')), t("Determines whether generated links should be forced to use SSL"), $ssl_choices),
'$maximagesize' => array('maximagesize', t("Maximum image size"), get_config('system','maximagesize'), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")),
@ -768,14 +788,22 @@ function admin_page_themes(&$a){
}
$readme=Null;
if (is_file("view/$theme/README.md")){
$readme = file_get_contents("view/$theme/README.md");
if (is_file("view/theme/$theme/README.md")){
$readme = file_get_contents("view/theme/$theme/README.md");
$readme = Markdown($readme);
} else if (is_file("view/$theme/README")){
$readme = "<pre>". file_get_contents("view/$theme/README") ."</pre>";
} else if (is_file("view/theme/$theme/README")){
$readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>";
}
$admin_form="";
if (is_file("view/theme/$theme/config.php")){
require_once("view/theme/$theme/config.php");
if(function_exists("theme_admin")){
$admin_form = theme_admin($a);
}
}
$screenshot = array( get_theme_screenshot($theme), t('Screenshot'));
if(! stristr($screenshot[0],$theme))
@ -805,7 +833,7 @@ function admin_page_themes(&$a){
/**
* List plugins
* List themes
*/
$xthemes = array();

View file

@ -17,7 +17,7 @@
</p>
{{ if $screenshot }}
<a href="$screenshot.0" ><img src="$screenshot.0" width="320" height="240" alt="$screenshot.1" /></a>
<a href="$screenshot.0" class='screenshot'><img src="$screenshot.0" alt="$screenshot.1" /></a>
{{ endif }}
{{ if $admin_form }}

View file

@ -1,3 +1,39 @@
<script>
$(function(){
$("#cnftheme").fancybox({
width: 800,
autoDimensions: false,
onStart: function(){
var theme = $("#id_theme :selected").val();
$("#cnftheme").attr('href',"$baseurl/admin/themes/"+theme);
},
onComplete: function(){
$("div#fancybox-content form").submit(function(e){
var url = $(this).attr('action');
// can't get .serialize() to work...
var data={};
$(this).find("input").each(function(){
data[$(this).attr('name')] = $(this).val();
});
$(this).find("select").each(function(){
data[$(this).attr('name')] = $(this).children(":selected").val();
});
console.log(":)", url, data);
$.post(url, data, function(data) {
if(timer) clearTimeout(timer);
NavUpdate();
$.fancybox.close();
})
return false;
});
}
});
});
</script>
<div id='adminpage'>
<h1>$title - $page</h1>

View file

@ -1,4 +1,4 @@
<script>$(function(){ previewTheme($("#id_$field.0")[0]); });</script>
<div class='field select'>
<label for='id_$field.0'>$field.1</label>
<select name='$field.0' id='id_$field.0' onchange="previewTheme(this);" >

10
view/lang_selector.tpl Normal file
View file

@ -0,0 +1,10 @@
<div id="lang-select-icon" class="icon s22 language" title="$title" onclick="openClose('language-selector');" >lang</div>
<div id="language-selector" style="display: none;" >
<form action="#" method="post" >
<select name="system_language" onchange="this.form.submit();" >
{{ for $langs.0 as $v=>$l }}
<option value="$v" {{if $v==$langs.1}}selected="selected"{{endif}}>$l</option>
{{ endfor }}
</select>
</form>
</div>

2
view/theme/quattro/TODO Normal file
View file

@ -0,0 +1,2 @@
jot.tpl: <!-- TODO: waiting for a better placement
nav.tpl: <!-- TODO: better icons! -->

View file

@ -11,6 +11,37 @@ function theme_content(&$a){
$align = get_pconfig(local_user(), 'quattro', 'align' );
$color = get_pconfig(local_user(), 'quattro', 'color' );
return quattro_form($a,$align, $color);
}
function theme_post(&$a){
if(! local_user())
return;
if (isset($_POST['quattro-settings-submit'])){
set_pconfig(local_user(), 'quattro', 'align', $_POST['quattro_align']);
set_pconfig(local_user(), 'quattro', 'color', $_POST['quattro_color']);
}
}
function theme_admin(&$a){
$align = get_config('quattro', 'align' );
$color = get_config('quattro', 'color' );
return quattro_form($a,$align, $color);
}
function theme_admin_post(&$a){
if (isset($_POST['quattro-settings-submit'])){
set_config('quattro', 'align', $_POST['quattro_align']);
set_config('quattro', 'color', $_POST['quattro_color']);
}
}
function quattro_form(&$a, $align, $color){
$colors = array(
"dark"=>"Quattro",
"green"=>"Green"
@ -26,14 +57,3 @@ function theme_content(&$a){
));
return $o;
}
function theme_post(&$a){
if(! local_user())
return;
if (isset($_POST['quattro-settings-submit'])){
set_pconfig(local_user(), 'quattro', 'align', $_POST['quattro_align']);
set_pconfig(local_user(), 'quattro', 'color', $_POST['quattro_color']);
}
}

View file

@ -9,8 +9,11 @@
{{endif}}
{{if $item.comment_lastcollapsed}}</div>{{endif}}
{{ inc $item.template }}{{ endinc }}
{{ if $item.type == tag }}
{{ inc wall_item_tag.tpl }}{{ endinc }}
{{ else }}
{{ inc $item.template }}{{ endinc }}
{{ endif }}
{{ endfor }}
</div>

View file

@ -38,7 +38,7 @@
@Link: @Blue3;
@LinkHover: @Blue3;
@LinkVisited: @Blue3;
@LinkDimmed: @Blue2;
@ButtonColor: @Grey1;
@ButtonBackgroundColor: @Grey5;
@ -73,9 +73,13 @@
@FieldHelpColor: @Grey3;
@ThreadBackgroundColor: #f6f7f8;
@ThreadBackgroundColor: #eff0f1;
@ThreadBottomBorderColor: @Grey2;
@ShinyBorderColor: @Yellow1;
@ItemColor: @Grey5;
@ItemColorDimmed: @Grey3;
@CommentBoxEmptyColor: @Grey3;
@CommentBoxEmptyBorderColor: @Grey3;
@CommentBoxFullColor: @Grey5;

View file

@ -66,6 +66,9 @@
.icon.s10.type-text {
background-image: url("../../../images/icons/10/text.png");
}
.icon.s10.language {
background-image: url("icons/language.png");
}
.icon.s10.text {
padding: 2px 0px 0px 15px;
}
@ -121,6 +124,9 @@
.icon.s16.type-text {
background-image: url("../../../images/icons/16/text.png");
}
.icon.s16.language {
background-image: url("icons/language.png");
}
.icon.s16.text {
padding: 4px 0px 0px 20px;
}
@ -176,6 +182,9 @@
.icon.s22.type-text {
background-image: url("../../../images/icons/22/text.png");
}
.icon.s22.language {
background-image: url("icons/language.png");
}
.icon.s22.text {
padding: 10px 0px 0px 25px;
}
@ -231,6 +240,9 @@
.icon.s48.type-text {
background-image: url("../../../images/icons/48/text.png");
}
.icon.s48.language {
background-image: url("icons/language.png");
}
/* global */
body {
font-family: Liberation Sans, helvetica, arial, clean, sans-serif;
@ -314,6 +326,10 @@ code {
float: right;
}
/* popup notifications */
#jGrowl.top-right {
top: 30px;
right: 15px;
}
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -565,7 +581,7 @@ ul.menu-popup .toolbar a:hover {
color: #9eabb0;
display: block;
}
/* aside */
/* aside 230px*/
aside {
display: table-cell;
vertical-align: top;
@ -772,20 +788,21 @@ aside #profiles-menu {
width: 200px;
top: 18px;
}
/* section */
/* section 800px */
section {
display: table-cell;
vertical-align: top;
width: 800px;
width: 770px;
padding: 0px 20px 0px 10px;
}
/* wall item */
.tread-wrapper {
background-color: #f6f7f8;
background-color: #eff0f1;
position: relative;
padding: 10px;
margin-bottom: 20px;
width: 780px;
width: 750px;
border-bottom: 1px solid #cccccc;
}
.wall-item-decor {
position: absolute;
@ -798,7 +815,7 @@ section {
}
.wall-item-container {
display: table;
width: 780px;
width: 750px;
}
.wall-item-container .wall-item-item,
.wall-item-container .wall-item-bottom {
@ -890,26 +907,42 @@ section {
.wall-item-container .wall-item-actions-tools input {
float: right;
}
.wall-item-container.comment {
/*margin-top: 50px;*/
.wall-item-container.comment .contact-photo-wrapper {
margin-left: 16px;
}
.wall-item-container.comment .contact-photo {
width: 32px;
height: 32px;
margin-left: 16px;
/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
}
.wall-item-container.comment .contact-photo-menu-button {
top: 15px !important;
left: 15px !important;
left: 0px !important;
}
.wall-item-container.comment .wall-item-links {
padding-left: 12px;
}
/* 'tag' item type */
.wall-item-container.item-tag .wall-item-content {
opacity: 0.5;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
.wall-item-container.item-tag .contact-photo-wrapper {
margin-left: 32px;
}
.wall-item-container.item-tag .contact-photo {
width: 16px;
height: 16px;
}
.wall-item-container.item-tag .contact-photo-menu-button {
top: 15px !important;
left: 15px !important;
}
.wall-item-comment-wrapper {
margin: 30px 2em 2em 60px;
margin: 1em 2em 1em 60px;
}
.wall-item-comment-wrapper .comment-edit-photo {
display: none;
@ -961,6 +994,9 @@ section {
#jot-preview-content .tread-wrapper {
background-color: #fce94f;
}
.hide-comments-outer {
margin-bottom: 0.8em;
}
.wall-item-tags {
padding-top: 5px;
}
@ -1087,7 +1123,7 @@ section {
padding: 0px;
height: 40px;
overflow: none;
width: 800px;
width: 770px;
background-color: #0e232e;
border-bottom: 2px solid #9eabb0;
}
@ -1162,7 +1198,7 @@ section {
border: 0px;
margin: 0px;
height: 20px;
width: 700px;
width: 500px;
font-weight: bold;
border: 1px solid #ffffff;
}
@ -1179,13 +1215,26 @@ section {
border: 1px solid #999999;
}
#jot #character-counter {
width: 80px;
width: 40px;
float: right;
text-align: right;
height: 20px;
line-height: 20px;
padding-right: 20px;
}
#jot #jot-category {
border: 0px;
margin: 0px;
height: 20px;
width: 200px;
border: 1px solid #ffffff;
}
#jot #jot-category:hover {
border: 1px solid #999999;
}
#jot #jot-category:focus {
border: 1px solid #999999;
}
/** buttons **/
/*input[type="submit"] {
border: 0px;
@ -1592,44 +1641,19 @@ ul.tabs li .active {
-ms-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
/* mail view */
/*
.mail-conv-sender,
.mail-conv-detail {
float: left;
/* theme screenshot */
.screenshot,
#theme-preview {
position: absolute;
width: 202px;
left: 70%;
top: 50px;
}
.mail-conv-detail {
margin-left: 20px;
width: 500px;
.screenshot img,
#theme-preview img {
width: 200px;
height: 150px;
}
.mail-conv-subject {
font-size: 1.4em;
margin: 10px 0;
}
.mail-conv-outside-wrapper-end {
clear: both;
}
.mail-conv-outside-wrapper {
margin-top: 30px;
}
.mail-conv-delete-wrapper {
float: right;
margin-right: 30px;
margin-top: 15px;
}
.mail-conv-break {
clear: both;
}
.mail-conv-delete-icon {
border: none;
}
*/
/* page footer */
footer {
height: 100px;

View file

@ -74,7 +74,8 @@
@FieldHelpColor: @Grey3;
@ThreadBackgroundColor: #f6f7f8;
@ThreadBackgroundColor: #eff0f1;
@ThreadBottomBorderColor: @Grey2;
@ShinyBorderColor: @Green4;
@CommentBoxEmptyColor: @Grey3;

View file

@ -66,6 +66,9 @@
.icon.s10.type-text {
background-image: url("../../../images/icons/10/text.png");
}
.icon.s10.language {
background-image: url("icons/language.png");
}
.icon.s10.text {
padding: 2px 0px 0px 15px;
}
@ -121,6 +124,9 @@
.icon.s16.type-text {
background-image: url("../../../images/icons/16/text.png");
}
.icon.s16.language {
background-image: url("icons/language.png");
}
.icon.s16.text {
padding: 4px 0px 0px 20px;
}
@ -176,6 +182,9 @@
.icon.s22.type-text {
background-image: url("../../../images/icons/22/text.png");
}
.icon.s22.language {
background-image: url("icons/language.png");
}
.icon.s22.text {
padding: 10px 0px 0px 25px;
}
@ -231,6 +240,9 @@
.icon.s48.type-text {
background-image: url("../../../images/icons/48/text.png");
}
.icon.s48.language {
background-image: url("icons/language.png");
}
/* global */
body {
font-family: Liberation Sans, helvetica, arial, clean, sans-serif;
@ -314,6 +326,10 @@ code {
float: right;
}
/* popup notifications */
#jGrowl.top-right {
top: 30px;
right: 15px;
}
div.jGrowl div.notice {
background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: #ffffff;
@ -565,7 +581,7 @@ ul.menu-popup .toolbar a:hover {
color: #9eabb0;
display: block;
}
/* aside */
/* aside 230px*/
aside {
display: table-cell;
vertical-align: top;
@ -772,20 +788,21 @@ aside #profiles-menu {
width: 200px;
top: 18px;
}
/* section */
/* section 800px */
section {
display: table-cell;
vertical-align: top;
width: 800px;
width: 770px;
padding: 0px 20px 0px 10px;
}
/* wall item */
.tread-wrapper {
background-color: #f6f7f8;
background-color: #eff0f1;
position: relative;
padding: 10px;
margin-bottom: 20px;
width: 780px;
width: 750px;
border-bottom: 1px solid #cccccc;
}
.wall-item-decor {
position: absolute;
@ -798,7 +815,7 @@ section {
}
.wall-item-container {
display: table;
width: 780px;
width: 750px;
}
.wall-item-container .wall-item-item,
.wall-item-container .wall-item-bottom {
@ -890,26 +907,42 @@ section {
.wall-item-container .wall-item-actions-tools input {
float: right;
}
.wall-item-container.comment {
/*margin-top: 50px;*/
.wall-item-container.comment .contact-photo-wrapper {
margin-left: 16px;
}
.wall-item-container.comment .contact-photo {
width: 32px;
height: 32px;
margin-left: 16px;
/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
}
.wall-item-container.comment .contact-photo-menu-button {
top: 15px !important;
left: 15px !important;
left: 0px !important;
}
.wall-item-container.comment .wall-item-links {
padding-left: 12px;
}
/* 'tag' item type */
.wall-item-container.item-tag .wall-item-content {
opacity: 0.5;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
-ms-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
.wall-item-container.item-tag .contact-photo-wrapper {
margin-left: 32px;
}
.wall-item-container.item-tag .contact-photo {
width: 16px;
height: 16px;
}
.wall-item-container.item-tag .contact-photo-menu-button {
top: 15px !important;
left: 15px !important;
}
.wall-item-comment-wrapper {
margin: 30px 2em 2em 60px;
margin: 1em 2em 1em 60px;
}
.wall-item-comment-wrapper .comment-edit-photo {
display: none;
@ -961,6 +994,9 @@ section {
#jot-preview-content .tread-wrapper {
background-color: #ddffdd;
}
.hide-comments-outer {
margin-bottom: 0.8em;
}
.wall-item-tags {
padding-top: 5px;
}
@ -1087,7 +1123,7 @@ section {
padding: 0px;
height: 40px;
overflow: none;
width: 800px;
width: 770px;
background-color: #009100;
border-bottom: 2px solid #9eabb0;
}
@ -1162,7 +1198,7 @@ section {
border: 0px;
margin: 0px;
height: 20px;
width: 700px;
width: 500px;
font-weight: bold;
border: 1px solid #ffffff;
}
@ -1179,13 +1215,26 @@ section {
border: 1px solid #999999;
}
#jot #character-counter {
width: 80px;
width: 40px;
float: right;
text-align: right;
height: 20px;
line-height: 20px;
padding-right: 20px;
}
#jot #jot-category {
border: 0px;
margin: 0px;
height: 20px;
width: 200px;
border: 1px solid #ffffff;
}
#jot #jot-category:hover {
border: 1px solid #999999;
}
#jot #jot-category:focus {
border: 1px solid #999999;
}
/** buttons **/
/*input[type="submit"] {
border: 0px;
@ -1592,44 +1641,19 @@ ul.tabs li .active {
-ms-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
}
/* mail view */
/*
.mail-conv-sender,
.mail-conv-detail {
float: left;
/* theme screenshot */
.screenshot,
#theme-preview {
position: absolute;
width: 202px;
left: 70%;
top: 50px;
}
.mail-conv-detail {
margin-left: 20px;
width: 500px;
.screenshot img,
#theme-preview img {
width: 200px;
height: 150px;
}
.mail-conv-subject {
font-size: 1.4em;
margin: 10px 0;
}
.mail-conv-outside-wrapper-end {
clear: both;
}
.mail-conv-outside-wrapper {
margin-top: 30px;
}
.mail-conv-delete-wrapper {
float: right;
margin-right: 30px;
margin-top: 15px;
}
.mail-conv-break {
clear: both;
}
.mail-conv-delete-icon {
border: none;
}
*/
/* page footer */
footer {
height: 100px;

View file

@ -20,6 +20,9 @@
&.type-image{ background-image: url("../../../images/icons/@{size}/image.png"); }
&.type-text { background-image: url("../../../images/icons/@{size}/text.png"); }
&.language { background-image: url("icons/language.png"); }
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

View file

@ -1,9 +1,11 @@
<form id="profile-jot-form" action="$action" method="post">
<div id="jot">
<div id="profile-jot-desc" class="jothidden">&nbsp;</div>
<input name="title" id="jot-title" type="text" placeholder="$placeholdertitle" value="$title" class="jothidden" style="display:none" />
<input name="title" id="jot-title" type="text" placeholder="$placeholdertitle" title="$placeholdertitle" value="$title" class="jothidden" style="display:none" /><input name="category" id="jot-category" type="text" placeholder="$placeholdercategory" title="$placeholdercategory" value="$category" class="jothidden" style="display:none" />
<div id="character-counter" class="grey jothidden"></div>
<input type="hidden" name="type" value="$ptyp" />
<input type="hidden" name="profile_uid" value="$profile_uid" />
<input type="hidden" name="return" value="$return_path" />
@ -20,8 +22,10 @@
<li><a id="profile-link" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;" title="$weblink">$shortweblink</a></li>
<li><a id="profile-video" onclick="jotVideoURL();return false;" title="$gvideo">$shortvideo</a></li>
<li><a id="profile-audio" onclick="jotAudioURL();return false;" title="$audio">$shortaudio</a></li>
<!-- TODO: waiting for a better placement
<li><a id="profile-location" onclick="jotGetLocation();return false;" title="$setloc">$shortsetloc</a></li>
<li><a id="profile-nolocation" onclick="jotClearLocation();return false;" title="$noloc">$shortnoloc</a></li>
-->
<li><a id="jot-preview-link" onclick="preview_post(); return false;" title="$preview">$preview</a></li>
$jotplugins

View file

@ -43,6 +43,7 @@
<li id="nav-notifications-linkmenu" class="nav-menu-icon"><a href="$nav.notifications.0" rel="#nav-notifications-menu" title="$nav.notifications.1"><span class="icon s22 notify">$nav.notifications.1</span></a>
<span id="notify-update" class="nav-notify"></span>
<ul id="nav-notifications-menu" class="menu-popup">
<!-- TODO: better icons! -->
<li id="nav-notifications-mark-all" class="toolbar"><a href="#" onclick="notifyMarkAll(); return false;" title="$nav.notifications.mark.1"><span class="icon s10 edit"></span></a></a><a href="$nav.notifications.all.0" title="$nav.notifications.all.1"><span class="icon s10 plugin"></span></a></li>
<li class="empty">$emptynotifications</li>
</ul>
@ -91,3 +92,4 @@
<li><a href="{0}"><img src="{1}">{2} <span class="notif-when">{3}</span></a></li>
</ul>
<div style="position: fixed; top: 3px; left: 5px; z-index:9999">$langselector</div>

View file

@ -87,6 +87,10 @@ code {
/* popup notifications */
#jGrowl.top-right {
top: 30px;
right: 15px;
}
div.jGrowl div.notice {
background: @NoticeBackgroundColor url("../../../images/icons/48/notice.png") no-repeat 5px center;
color: @NoticeColor;
@ -270,7 +274,7 @@ ul.menu-popup {
/* aside */
/* aside 230px*/
aside {
display: table-cell;
vertical-align: top;
@ -403,11 +407,11 @@ aside {
}
/* section */
/* section 800px */
section {
display: table-cell;
vertical-align: top;
width: 800px;
width: 770px;
padding:0px 20px 0px 10px;
}
@ -417,14 +421,15 @@ section {
position: relative;
padding: 10px;
margin-bottom: 20px;
width: 780px;
width: 750px;
border-bottom: 1px solid @ThreadBottomBorderColor;
}
.wall-item-decor { position: absolute; left: 97%; top: -10px; width: 16px;}
.unstarred { display: none; }
.wall-item-container {
display: table;
width: 780px;
width: 750px;
.wall-item-item,
.wall-item-bottom { display: table-row; }
@ -478,19 +483,35 @@ section {
.wall-item-container.comment {
/*margin-top: 50px;*/
.contact-photo { width: 32px; height: 32px; margin-left: 16px;
/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
.contact-photo-wrapper { margin-left: 16px; }
.contact-photo {
width: 32px; height: 32px;
}
.contact-photo-menu-button {
top: 15px !important;
left: 0px !important;
}
.wall-item-links { padding-left: 12px; }
}
/* 'tag' item type */
.wall-item-container.item-tag {
.wall-item-content {
.opaque(0.5);
}
.contact-photo-wrapper { margin-left: 32px; }
.contact-photo {
width: 16px; height: 16px;
}
.contact-photo-menu-button {
top: 15px !important;
left: 15px !important;
}
.wall-item-links { padding-left: 12px; }
}
.wall-item-comment-wrapper {
margin: 30px 2em 2em 60px;
margin: 1em 2em 1em 60px;
.comment-edit-photo { display: none; }
textarea {
height: 1em; width: 100%; font-size: 10px;
@ -522,13 +543,12 @@ section {
.wall-item-container { width: 700px; }
.tread-wrapper { width: 700px; padding: 0; margin: 10px 0;}
}
.shiny { border-right:10px solid @ShinyBorderColor; }
#jot-preview-content .tread-wrapper { background-color: @JotPreviewBackgroundColor; }
.hide-comments-outer {margin-bottom: 0.8em; }
.wall-item-tags { padding-top: 5px; }
.tag {
@ -638,7 +658,7 @@ section {
#jot-tools {
margin: 0px; padding: 0px;
height: 40px; overflow: none;
width: 800px;
width: 770px;
background-color: @JotToolsBackgroundColor;
border-bottom: 2px solid @JotToolsBorderColor;
li {
@ -710,7 +730,7 @@ section {
border: 0px;
margin: 0px;
height: 20px;
width: 700px;
width: 500px;
font-weight: bold;
border: 1px solid @BodyBackground;
@ -727,7 +747,7 @@ section {
}
#character-counter {
width: 80px;
width: 40px;
float: right;
text-align: right;
height: 20px;
@ -735,6 +755,15 @@ section {
padding-right: 20px;
}
#jot-category {
border: 0px;
margin: 0px;
height: 20px;
width: 200px;
border: 1px solid @BodyBackground;
&:hover { border: 1px solid @CommentBoxEmptyBorderColor }
&:focus { border: 1px solid @CommentBoxEmptyBorderColor }
}
}
@ -1106,45 +1135,14 @@ ul.tabs {
}
/* mail view */
/*
.mail-conv-sender,
.mail-conv-detail {
float: left;
/* theme screenshot */
.screenshot, #theme-preview {
position: absolute;
width:202px;
left: 70%;
top: 50px;
img { width: 200px; height: 150px; }
}
.mail-conv-detail {
margin-left: 20px;
width: 500px;
}
.mail-conv-subject {
font-size: 1.4em;
margin: 10px 0;
}
.mail-conv-outside-wrapper-end {
clear: both;
}
.mail-conv-outside-wrapper {
margin-top: 30px;
}
.mail-conv-delete-wrapper {
float: right;
margin-right: 30px;
margin-top: 15px;
}
.mail-conv-break {
clear: both;
}
.mail-conv-delete-icon {
border: none;
}
*/
/* page footer */
footer { height: 100px; display: table-row; }

View file

@ -1,11 +1,18 @@
<?php
$color = false;
$color=false;
$quattro_align=false;
$site_color = get_config("quattro","color");
$site_quattro_align = get_config("quattro", "align" );
if (local_user()) {
$color = get_pconfig(local_user(), "quattro","color");
$quattro_align = get_pconfig(local_user(), 'quattro', 'align' );
}
if ($color===false) $color=$site_color;
if ($color===false) $color="dark";
if ($quattro_align===false) $quattro_align=$site_quattro_align;
if (file_exists("$THEMEPATH/$color/style.css")){
echo file_get_contents("$THEMEPATH/$color/style.css");

View file

@ -0,0 +1,12 @@
<?php
/**
* Name: Quattro
* Version: 0.5
* Author: Fabio <http://kirgroup.com/profile/fabrixxm>
* Maintainer: Fabio <http://kirgroup.com/profile/fabrixxm>
* Maintainer: Tobias <https://diekershoff.homeunix.net/friendika/profile/tobias>
*/
$a->theme_info = array();

View file

@ -0,0 +1,23 @@
<div class="wall-item-container item-tag $item.indent">
<div class="wall-item-item">
<div class="wall-item-info">
<div class="contact-photo-wrapper">
<a href="$item.profile_url" target="redir" title="$item.linktitle" class="contact-photo-link" id="wall-item-photo-link-$item.id">
<img src="$item.thumb" class="contact-photo$item.sparkle" id="wall-item-photo-$item.id" alt="$item.name" />
</a>
<ul class="contact-menu menu-popup" id="wall-item-photo-menu-$item.id">
$item.item_photo_menu
</ul>
</div>
<div class="wall-item-location">$item.location</div>
</div>
<div class="wall-item-content">
$item.body
</div>
</div>
</div>
<div class="wall-item-comment-wrapper" >
$item.comment
</div>