aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/network.php7
-rw-r--r--include/text.php25
-rw-r--r--mod/admin.php46
-rw-r--r--view/admin_plugins_details.tpl2
-rw-r--r--view/admin_site.tpl36
-rw-r--r--view/field_themeselect.tpl2
-rw-r--r--view/lang_selector.tpl10
-rw-r--r--view/theme/quattro/TODO2
-rw-r--r--view/theme/quattro/config.php42
-rw-r--r--view/theme/quattro/conversation.tpl7
-rw-r--r--view/theme/quattro/dark/colors.less8
-rw-r--r--view/theme/quattro/dark/style.css130
-rw-r--r--view/theme/quattro/green/colors.less3
-rw-r--r--view/theme/quattro/green/style.css130
-rw-r--r--view/theme/quattro/icons.less3
-rw-r--r--view/theme/quattro/icons/language.pngbin0 -> 849 bytes
-rw-r--r--view/theme/quattro/jot.tpl6
-rw-r--r--view/theme/quattro/nav.tpl2
-rw-r--r--view/theme/quattro/quattro.less106
-rw-r--r--view/theme/quattro/style.php9
-rw-r--r--view/theme/quattro/theme.php12
-rw-r--r--view/theme/quattro/wall_item_tag.tpl23
22 files changed, 410 insertions, 201 deletions
diff --git a/include/network.php b/include/network.php
index 23ef50b21..8c678a443 100644
--- a/include/network.php
+++ b/include/network.php
@@ -587,13 +587,14 @@ 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;
$h = @parse_url($url);
-
+
if(($h) && (dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR))) {
return true;
}
diff --git a/include/text.php b/include/text.php
index 4ec59a665..8c8db66a9 100644
--- a/include/text.php
+++ b/include/text.php
@@ -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;
}}
@@ -1510,4 +1517,4 @@ function fix_mce_lf($s) {
$s = str_replace("\r\n","\n",$s);
$s = str_replace("\n\n","\n",$s);
return $s;
-} \ No newline at end of file
+}
diff --git a/mod/admin.php b/mod/admin.php
index 961002786..7386dc5a3 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -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))
@@ -793,10 +821,10 @@ function admin_page_themes(&$a){
'$status' => $status,
'$action' => $action,
'$info' => get_theme_info($theme),
- '$function' => 'themes',
+ '$function' => 'themes',
'$admin_form' => $admin_form,
'$str_author' => t('Author: '),
- '$str_maintainer' => t('Maintainer: '),
+ '$str_maintainer' => t('Maintainer: '),
'$screenshot' => $screenshot,
'$readme' => $readme
));
@@ -805,7 +833,7 @@ function admin_page_themes(&$a){
/**
- * List plugins
+ * List themes
*/
$xthemes = array();
diff --git a/view/admin_plugins_details.tpl b/view/admin_plugins_details.tpl
index cbaef2d66..aaa366f65 100644
--- a/view/admin_plugins_details.tpl
+++ b/view/admin_plugins_details.tpl
@@ -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 }}
diff --git a/view/admin_site.tpl b/view/admin_site.tpl
index ec144fbba..9de6bd9c5 100644
--- a/view/admin_site.tpl
+++ b/view/admin_site.tpl
@@ -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>
diff --git a/view/field_themeselect.tpl b/view/field_themeselect.tpl
index f9f99492c..5847d8664 100644
--- a/view/field_themeselect.tpl
+++ b/view/field_themeselect.tpl
@@ -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);" >
diff --git a/view/lang_selector.tpl b/view/lang_selector.tpl
new file mode 100644
index 000000000..b3a527b40
--- /dev/null
+++ b/view/lang_selector.tpl
@@ -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>
diff --git a/view/theme/quattro/TODO b/view/theme/quattro/TODO
new file mode 100644
index 000000000..12638551a
--- /dev/null
+++ b/view/theme/quattro/TODO
@@ -0,0 +1,2 @@
+jot.tpl: <!-- TODO: waiting for a better placement
+nav.tpl: <!-- TODO: better icons! -->
diff --git a/view/theme/quattro/config.php b/view/theme/quattro/config.php
index c9ab3a4a1..c261a78ec 100644
--- a/view/theme/quattro/config.php
+++ b/view/theme/quattro/config.php
@@ -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']);
- }
-}
-
diff --git a/view/theme/quattro/conversation.tpl b/view/theme/quattro/conversation.tpl
index ff202bbe4..7bb7cd2fd 100644
--- a/view/theme/quattro/conversation.tpl
+++ b/view/theme/quattro/conversation.tpl
@@ -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>
diff --git a/view/theme/quattro/dark/colors.less b/view/theme/quattro/dark/colors.less
index b6d487f92..42fdd34bb 100644
--- a/view/theme/quattro/dark/colors.less
+++ b/view/theme/quattro/dark/colors.less
@@ -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;
diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css
index 16c786d20..1fa03b253 100644
--- a/view/theme/quattro/dark/style.css
+++ b/view/theme/quattro/dark/style.css
@@ -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;
-}
-.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;
+/* theme screenshot */
+.screenshot,
+#theme-preview {
+ position: absolute;
+ width: 202px;
+ left: 70%;
+ top: 50px;
}
-
-.mail-conv-delete-icon {
- border: none;
+.screenshot img,
+#theme-preview img {
+ width: 200px;
+ height: 150px;
}
-
-*/
/* page footer */
footer {
height: 100px;
diff --git a/view/theme/quattro/green/colors.less b/view/theme/quattro/green/colors.less
index bc78c3fda..1f1df4c55 100644
--- a/view/theme/quattro/green/colors.less
+++ b/view/theme/quattro/green/colors.less
@@ -74,7 +74,8 @@
@FieldHelpColor: @Grey3;
-@ThreadBackgroundColor: #f6f7f8;
+@ThreadBackgroundColor: #eff0f1;
+@ThreadBottomBorderColor: @Grey2;
@ShinyBorderColor: @Green4;
@CommentBoxEmptyColor: @Grey3;
diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css
index df43aa152..317112f6f 100644
--- a/view/theme/quattro/green/style.css
+++ b/view/theme/quattro/green/style.css
@@ -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;
-}
-.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;
+/* theme screenshot */
+.screenshot,
+#theme-preview {
+ position: absolute;
+ width: 202px;
+ left: 70%;
+ top: 50px;
}
-
-.mail-conv-delete-icon {
- border: none;
+.screenshot img,
+#theme-preview img {
+ width: 200px;
+ height: 150px;
}
-
-*/
/* page footer */
footer {
height: 100px;
diff --git a/view/theme/quattro/icons.less b/view/theme/quattro/icons.less
index 3688ae021..24e96b5aa 100644
--- a/view/theme/quattro/icons.less
+++ b/view/theme/quattro/icons.less
@@ -19,6 +19,9 @@
&.type-video{ background-image: url("../../../images/icons/@{size}/video.png"); }
&.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"); }
+
}
diff --git a/view/theme/quattro/icons/language.png b/view/theme/quattro/icons/language.png
new file mode 100644
index 000000000..8029c0155
--- /dev/null
+++ b/view/theme/quattro/icons/language.png
Binary files differ
diff --git a/view/theme/quattro/jot.tpl b/view/theme/quattro/jot.tpl
index 2f89d4372..95c0ff6b1 100644
--- a/view/theme/quattro/jot.tpl
+++ b/view/theme/quattro/jot.tpl
@@ -1,8 +1,10 @@
<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" />
@@ -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
diff --git a/view/theme/quattro/nav.tpl b/view/theme/quattro/nav.tpl
index 26f04f134..af1fc9414 100644
--- a/view/theme/quattro/nav.tpl
+++ b/view/theme/quattro/nav.tpl
@@ -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>
diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less
index 0660a3ad7..4c3279943 100644
--- a/view/theme/quattro/quattro.less
+++ b/view/theme/quattro/quattro.less
@@ -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: 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-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,14 +747,23 @@ section {
}
#character-counter {
- width: 80px;
+ width: 40px;
float: right;
text-align: right;
height: 20px;
line-height: 20px;
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,46 +1135,15 @@ ul.tabs {
}
-/* mail view */
-/*
-.mail-conv-sender,
-.mail-conv-detail {
- float: left;
-}
-.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;
+/* theme screenshot */
+.screenshot, #theme-preview {
+ position: absolute;
+ width:202px;
+ left: 70%;
+ top: 50px;
+ img { width: 200px; height: 150px; }
}
-*/
-
-
/* page footer */
footer { height: 100px; display: table-row; }
diff --git a/view/theme/quattro/style.php b/view/theme/quattro/style.php
index b6104a170..fa02a04b6 100644
--- a/view/theme/quattro/style.php
+++ b/view/theme/quattro/style.php
@@ -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");
diff --git a/view/theme/quattro/theme.php b/view/theme/quattro/theme.php
new file mode 100644
index 000000000..0a13c2035
--- /dev/null
+++ b/view/theme/quattro/theme.php
@@ -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();
+
+
diff --git a/view/theme/quattro/wall_item_tag.tpl b/view/theme/quattro/wall_item_tag.tpl
new file mode 100644
index 000000000..926fc929d
--- /dev/null
+++ b/view/theme/quattro/wall_item_tag.tpl
@@ -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>