diff options
-rw-r--r-- | include/network.php | 7 | ||||
-rw-r--r-- | include/text.php | 25 | ||||
-rw-r--r-- | mod/admin.php | 46 | ||||
-rw-r--r-- | view/admin_plugins_details.tpl | 2 | ||||
-rw-r--r-- | view/admin_site.tpl | 36 | ||||
-rw-r--r-- | view/field_themeselect.tpl | 2 | ||||
-rw-r--r-- | view/lang_selector.tpl | 10 | ||||
-rw-r--r-- | view/theme/quattro/TODO | 2 | ||||
-rw-r--r-- | view/theme/quattro/config.php | 42 | ||||
-rw-r--r-- | view/theme/quattro/conversation.tpl | 7 | ||||
-rw-r--r-- | view/theme/quattro/dark/colors.less | 8 | ||||
-rw-r--r-- | view/theme/quattro/dark/style.css | 130 | ||||
-rw-r--r-- | view/theme/quattro/green/colors.less | 3 | ||||
-rw-r--r-- | view/theme/quattro/green/style.css | 130 | ||||
-rw-r--r-- | view/theme/quattro/icons.less | 3 | ||||
-rw-r--r-- | view/theme/quattro/icons/language.png | bin | 0 -> 849 bytes | |||
-rw-r--r-- | view/theme/quattro/jot.tpl | 6 | ||||
-rw-r--r-- | view/theme/quattro/nav.tpl | 2 | ||||
-rw-r--r-- | view/theme/quattro/quattro.less | 106 | ||||
-rw-r--r-- | view/theme/quattro/style.php | 9 | ||||
-rw-r--r-- | view/theme/quattro/theme.php | 12 | ||||
-rw-r--r-- | view/theme/quattro/wall_item_tag.tpl | 23 |
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 Binary files differnew file mode 100644 index 000000000..8029c0155 --- /dev/null +++ b/view/theme/quattro/icons/language.png 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"> </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> |