From 47c855388e1ed3ba3adbba7a1a959aad109dc72c Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Thu, 1 Oct 2015 08:19:35 +0200 Subject: [PATCH] Vier: Menu at the right side (inspired and copyied from diabook) --- view/theme/vier/hide.css | 3 + view/theme/vier/shadow.css | 154 +++++++++ view/theme/vier/style.css | 8 +- .../vier/templates/ch_directory_item.tpl | 11 + view/theme/vier/templates/communityhome.tpl | 107 +++++++ view/theme/vier/theme.php | 300 +++++++++++++++++- view/theme/vier/wide.css | 23 ++ 7 files changed, 598 insertions(+), 8 deletions(-) create mode 100644 view/theme/vier/hide.css create mode 100644 view/theme/vier/shadow.css create mode 100644 view/theme/vier/templates/ch_directory_item.tpl create mode 100644 view/theme/vier/templates/communityhome.tpl create mode 100644 view/theme/vier/wide.css diff --git a/view/theme/vier/hide.css b/view/theme/vier/hide.css new file mode 100644 index 0000000000..8bb89ee433 --- /dev/null +++ b/view/theme/vier/hide.css @@ -0,0 +1,3 @@ +aside { + display: none; +} diff --git a/view/theme/vier/shadow.css b/view/theme/vier/shadow.css new file mode 100644 index 0000000000..2f0bd9cbc0 --- /dev/null +++ b/view/theme/vier/shadow.css @@ -0,0 +1,154 @@ +nav { + background: rgb(36, 76, 94); + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.7); + padding: 0px; + padding-left: 0px; +} + +nav a:active, +nav a:link, +nav a:visited, +nav a { + color: #ccc; +} + +nav a:hover, +#nav-messages-see-all a:hover { + color: #fff; +} + +nav .nav-notify { + background-color: #F80; + top: 0px; + right: -5px; + padding: 1px 3px; + border-radius: 5px 5px 5px 5px; +} +// ----- +nav .nav-menu-icon .nav-notify { + top: 0px; +} + +nav .nav-menu.selected a { + color: #000; +/* font-weight: bold; */ +} + +nav .nav-menu:hover, +nav .nav-menu.selected { + border-bottom: 2px solid #427FED; +} + +nav .nav-menu { + height: 23px; + font-size: 14px; + font-weight: initial; +} + +#nav-site-menu, +#nav-notifications-menu, +#nav-user-menu { + top: 35px; +} + +#nav-messages-menu { + top: 32px; +} + +#nav-messages-see-all a { + color: #737373; +} + +ul.tabs li .active, span.pager_current a { + border-bottom: 2px solid #427FED; +} + +span.pager_current, span.pager_n a:hover, +span.pager_first a:hover, span.pager_last a:hover, +span.pager_prev a:hover, span.pager_next a:hover, +ul.tabs a:hover { + border-bottom: 2px solid #427FED; +} + +nav #nav-notifications-linkmenu.on .icon.s22.notify, nav #nav-notifications-linkmenu.selected .icon.s22.notify { + color: #737373; +} + +nav #nav-messages-linkmenu.selected, +nav #nav-user-linklabel.selected, +nav #nav-apps-link.selected { + background-color: #fff; + border-bottom-style: none; +} + +div.jGrowl div.info { + background: #fff url("../../../images/icons/48/info.png") no-repeat 5px center; +} + +div.jGrowl div.notice { + color: #737373; +} +div.jGrowl div.info { + color: #737373; +} + +.birthday-notice, .event-notice { + font-weight: initial; +} + +div.pager, ul.tabs { + font-weight: initial; +} + +nav .nav-menu-icon.selected { + background-color: #fff; +} + +#jot #jot-tools li:hover { + background-color: #fff; +} + +nav .icon { + color: #737373; +} + +nav a:hover .icon { + color: #000; +} + +ul.menu-popup { + border: 0px solid #FFF; + margin-top: 0px; +} + +header #banner a, header #banner a:active, header #banner a:visited, header #banner a:link, header #banner a:hover { + color: #737373; +} + +header { + left: 10px; +} + +header #banner { + margin-top: 6px; +} + +#banner #logo-text { + margin-left: 5px; +} + +aside { + top: 44px; + height: calc(100% - 54px); +} + +section { + top: 44px; +} + +nav #search-box #search-text { + background-color: initial; + border-style: solid; + border-width: 1px; + border-color: rgba(0, 0, 0, 0.15); +} diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css index 77ffb53fd1..031413ea9e 100644 --- a/view/theme/vier/style.css +++ b/view/theme/vier/style.css @@ -375,7 +375,7 @@ code { .tool a { /* color: #000; */ } -.tool a:hover, .widget a:hover, #nets-sidear a:hover, #hide-forum-list:hover, .admin.link a:hover, aside h4 a:hover { +.tool a:hover, .widget a:hover, #nets-sidear a:hover, #hide-forum-list:hover, .admin.link a:hover, aside h4 a:hover, right_aside h4 a:hover { /* text-decoration: underline; */ text-decoration: none; color: black; @@ -391,7 +391,7 @@ code { .sidebar-group-li:hover, #sidebar-new-group:hover, #hide-forum-list:hover, #sidebar-ungrouped:hover, .side-link:hover, .nets-ul li:hover, #forum-list div:hover, -.nets-all:hover, .saved-search-li:hover, li.tool:hover, .admin.link:hover, aside h4 a:hover, #message-new:hover { +.nets-all:hover, .saved-search-li:hover, li.tool:hover, .admin.link:hover, aside h4 a:hover, right_aside h4 a:hover, #message-new:hover { /* background-color: #ddd; */ /* background-color: #e5e5e5; */ background-color: #F5F5F5; @@ -418,7 +418,7 @@ code { display: block; } -a.nets-link, .side-link a, #sidebar-new-group a, a.savedsearchterm, a.fileas-link, aside h4 a { +a.nets-link, .side-link a, #sidebar-new-group a, a.savedsearchterm, a.fileas-link, aside h4 a, right_aside h4 a { display: block; color: #737373; } @@ -984,7 +984,7 @@ aside #search-text, aside #side-follow-url, aside #side-peoplefind-url { -moz-border-right-colors: #dbdbdb;*/ } -aside h4 { +aside h4, right_aside h4 { margin-bottom: 0px; margin-top: 0px; font-size: 1.17em; diff --git a/view/theme/vier/templates/ch_directory_item.tpl b/view/theme/vier/templates/ch_directory_item.tpl new file mode 100644 index 0000000000..6813e1186e --- /dev/null +++ b/view/theme/vier/templates/ch_directory_item.tpl @@ -0,0 +1,11 @@ + + +
+
+
+ + {{$alt_text}} + +
+
+
diff --git a/view/theme/vier/templates/communityhome.tpl b/view/theme/vier/templates/communityhome.tpl new file mode 100644 index 0000000000..92e56b3227 --- /dev/null +++ b/view/theme/vier/templates/communityhome.tpl @@ -0,0 +1,107 @@ +
+
+ +
+ +
+{{if $page}} +
{{$page}}
+{{/if}} +
+ +
+{{if $comunity_profiles_title}} +

{{$comunity_profiles_title}}

+
+{{foreach $comunity_profiles_items as $i}} + {{$i}} +{{/foreach}} +
+{{/if}} +
+ +
+{{if $helpers}} +

{{$helpers.title.1}}

+ +{{/if}} +
+ +
+{{if $con_services}} +

{{$con_services.title.1}}

+
+Facebook +StatusNet +LiveJournal +Posterous +Tumblr +Twitter +WordPress +E-Mail +
+{{/if}} +
+ +
+{{if $nv}} +

{{$nv.title.1}}

+ +{{$nv.search}} +{{/if}} +
+ +
+{{if $lastusers_title}} +

{{$lastusers_title}}

+
+{{foreach $lastusers_items as $i}} + {{$i}} +{{/foreach}} +
+{{/if}} +
+ +{{if $activeusers_title}} +

{{$activeusers_title}}

+
+{{foreach $activeusers_items as $i}} + {{$i}} +{{/foreach}} +
+{{/if}} + +
+{{if $photos_title}} +

{{$photos_title}}

+
+{{foreach $photos_items as $i}} + {{$i}} +{{/foreach}} +
+{{/if}} +
+ +
+{{if $like_title}} +

{{$like_title}}

+
    +{{foreach $like_items as $i}} +
  • {{$i}}
  • +{{/foreach}} +
+{{/if}} +
+ +
+ diff --git a/view/theme/vier/theme.php b/view/theme/vier/theme.php index af7cd0275f..0b01b3db80 100644 --- a/view/theme/vier/theme.php +++ b/view/theme/vier/theme.php @@ -11,13 +11,19 @@ function vier_init(&$a) { -$a->theme_events_in_profile = false; + $a->theme_events_in_profile = false; -set_template_engine($a, 'smarty3'); + set_template_engine($a, 'smarty3'); -$baseurl = $a->get_baseurl(); + $baseurl = $a->get_baseurl(); -$a->theme_info = array(); + $a->theme_info = array(); + + if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()) { + vier_community_info(); + + $a->page['htmlhead'] .= ""; + } $a->page['htmlhead'] .= <<< EOT @@ -72,5 +78,291 @@ function cmtBbClose(id) { } EOT; + + // Hide the left menu bar + if (($a->page['aside'] == "") AND in_array($a->argv[0], array("community", "events", "help", "manage", "notifications", "probe", "webfinger", "login"))) + $a->page['htmlhead'] .= ""; } +function get_vier_config($key, $default = false) { + if (local_user()) { + $result = get_pconfig(local_user(), "vier", $key); + if ($result !== false) + return $result; + } + + $result = get_config("vier", $key); + if ($result !== false) + return $result; + + return $default; +} + +function vier_community_info() { + $a = get_app(); +/* + $close_pages = get_vier_config("close_pages", 1); + $close_profiles = get_vier_config("close_profiles", 0); + $close_helpers = get_vier_config("close_helpers", 0); + $close_services = get_vier_config("close_services", 0); + $close_friends = get_vier_config("close_friends", 0); + $close_lastusers = get_vier_config("close_lastusers", 0); + $close_lastphotos = get_vier_config("close_lastphotos", 0); + $close_lastlikes = get_vier_config("close_lastlikes", 0); +*/ + $close_pages = false; + $close_profiles = true; + $close_helpers = false; + $close_services = false; + $close_friends = false; + $close_lastusers = true; + $close_lastphotos = true; + $close_lastlikes = true; + + // comunity_profiles + if(!$close_profiles) { + $aside['$comunity_profiles_title'] = t('Community Profiles'); + $aside['$comunity_profiles_items'] = array(); + $r = q("select gcontact.* from gcontact left join glink on glink.gcid = gcontact.id + where glink.cid = 0 and glink.uid = 0 order by rand() limit 9"); + $tpl = get_markup_template('ch_directory_item.tpl'); + if(count($r)) { + $photo = 'photo'; + foreach($r as $rr) { + $profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']); + $entry = replace_macros($tpl,array( + '$id' => $rr['id'], + '$profile_link' => zrl($rr['url']), + '$photo' => $rr[$photo], + '$alt_text' => $rr['name'], + )); + $aside['$comunity_profiles_items'][] = $entry; + } + } + } + + // last 12 users + if(!$close_lastusers) { + $aside['$lastusers_title'] = t('Last users'); + $aside['$lastusers_items'] = array(); + $sql_extra = ""; + $publish = (get_config('system','publish_all') ? '' : " AND `publish` = 1 "); + $order = " ORDER BY `register_date` DESC "; + + $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname` + FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` + WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra $order LIMIT %d , %d ", + 0, 9); + + $tpl = get_markup_template('ch_directory_item.tpl'); + if(count($r)) { + $photo = 'thumb'; + foreach($r as $rr) { + $profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']); + $entry = replace_macros($tpl,array( + '$id' => $rr['id'], + '$profile_link' => $profile_link, + '$photo' => $a->get_cached_avatar_image($rr[$photo]), + '$alt_text' => $rr['name'])); + $aside['$lastusers_items'][] = $entry; + } + } + } + + // last 10 liked items +/* + if(!$close_lastlikes) { + $aside['$like_title'] = t('Last likes'); + $aside['$like_items'] = array(); + $r = q("SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM + (SELECT `parent-uri`, `created`, `author-name` AS `liker`,`author-link` AS `liker-link` + FROM `item` WHERE `verb`='http://activitystrea.ms/schema/1.0/like' GROUP BY `parent-uri` ORDER BY `created` DESC) AS T1 + INNER JOIN `item` ON `item`.`uri`=`T1`.`parent-uri` + WHERE `T1`.`liker-link` LIKE '%s%%' OR `item`.`author-link` LIKE '%s%%' + GROUP BY `uri` + ORDER BY `T1`.`created` DESC + LIMIT 0,5", + $a->get_baseurl(),$a->get_baseurl()); + + foreach ($r as $rr) { + $author = '' . $rr['liker'] . ''; + $objauthor = '' . $rr['author-name'] . ''; + + //var_dump($rr['verb'],$rr['object-type']); killme(); + switch($rr['verb']){ + case 'http://activitystrea.ms/schema/1.0/post': + switch ($rr['object-type']){ + case 'http://activitystrea.ms/schema/1.0/event': + $post_type = t('event'); + break; + default: + $post_type = t('status'); + } + break; + default: + if ($rr['resource-id']){ + $post_type = t('photo'); + $m=array(); + preg_match("/\[url=([^]]*)\]/", $rr['body'], $m); + $rr['plink'] = $m[1]; + } else + $post_type = t('status'); + } + $plink = '' . $post_type . ''; + + $aside['$like_items'][] = sprintf( t('%1$s likes %2$s\'s %3$s'), $author, $objauthor, $plink); + + } + } + + // last 12 photos + if(!$close_lastphotos) { + $aside['$photos_title'] = t('Last photos'); + $aside['$photos_items'] = array(); + $r = q("SELECT `photo`.`id`, `photo`.`resource-id`, `photo`.`scale`, `photo`.`desc`, `user`.`nickname`, `user`.`username` FROM + (SELECT `resource-id`, MAX(`scale`) as maxscale FROM `photo` + WHERE `profile`=0 AND `contact-id`=0 AND `album` NOT IN ('Contact Photos', '%s', 'Profile Photos', '%s') + AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`='' GROUP BY `resource-id`) AS `t1` + INNER JOIN `photo` ON `photo`.`resource-id`=`t1`.`resource-id` AND `photo`.`scale` = `t1`.`maxscale`, + `user` + WHERE `user`.`uid` = `photo`.`uid` + AND `user`.`blockwall`=0 + AND `user`.`hidewall`=0 + ORDER BY `photo`.`edited` DESC + LIMIT 0, 9", + dbesc(t('Contact Photos')), + dbesc(t('Profile Photos')) + ); + if(count($r)) { + $tpl = get_markup_template('ch_directory_item.tpl'); + foreach($r as $rr) { + $photo_page = $a->get_baseurl() . '/photos/' . $rr['nickname'] . '/image/' . $rr['resource-id']; + $photo_url = $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] .'.jpg'; + + $entry = replace_macros($tpl,array( + '$id' => $rr['id'], + '$profile_link' => $photo_page, + '$photo' => $photo_url, + '$alt_text' => $rr['username']." : ".$rr['desc'])); + + $aside['$photos_items'][] = $entry; + } + } + } +*/ + //right_aside FIND FRIENDS + if (!$close_friends AND local_user()) { + $nv = array(); + $nv['title'] = Array("", t('Find Friends'), "", ""); + $nv['directory'] = Array('directory', t('Local Directory'), "", ""); + $nv['global_directory'] = Array('http://dir.friendica.com/', t('Global Directory'), "", ""); + $nv['match'] = Array('match', t('Similar Interests'), "", ""); + $nv['suggest'] = Array('suggest', t('Friend Suggestions'), "", ""); + $nv['invite'] = Array('invite', t('Invite Friends'), "", ""); + + $nv['search'] = '
+ + + + + '; + + $aside['$nv'] = $nv; + } + + //Community_Pages at right_aside + if(!$close_pages AND local_user()) { + $page = ' +

'.t("Community Pages").'

+
    '; + + $pagelist = array(); + + $contacts = q("SELECT `id`, `url`, `name`, `micro`FROM `contact` + WHERE `network`= 'dfrn' AND `forum` = 1 AND `uid` = %d + ORDER BY `name` ASC", + intval($a->user['uid'])); + + $pageD = array(); + + // Look if the profile is a community page + foreach($contacts as $contact) { + $pageD[] = array("url"=>$contact["url"], "name"=>$contact["name"], "id"=>$contact["id"], "micro"=>$contact['micro']); + }; + + + $contacts = $pageD; + + foreach($contacts as $contact) { + $page .= '
  • ' . $contact['url'] . ' '. + $contact["name"]."
  • "; + } + $page .= '
'; + //if (sizeof($contacts) > 0) + $aside['$page'] = $page; + } + //END Community Page + + //helpers + if(!$close_helpers) { + $helpers = array(); + $helpers['title'] = Array("", t('Help or @NewHere ?'), "", ""); + $aside['$helpers'] = $helpers; + } + //end helpers + + //connectable services + if (!$close_services) { + $con_services = array(); + $con_services['title'] = Array("", t('Connect Services'), "", ""); + $aside['$con_services'] = $con_services; + } + //end connectable services + +/* + if($ccCookie != "9") { + $close_pages = get_vier_config( "close_pages", 1 ); + $close_profiles = get_vier_config( "close_profiles", 0 ); + $close_helpers = get_vier_config( "close_helpers", 0 ); + $close_services = get_vier_config( "close_services", 0 ); + $close_friends = get_vier_config( "close_friends", 0 ); + $close_lastusers = get_vier_config( "close_lastusers", 0 ); + $close_lastphotos = get_vier_config( "close_lastphotos", 0 ); + $close_lastlikes = get_vier_config( "close_lastlikes", 0 ); + $close_or_not = array('1'=>t("don't show"), '0'=>t("show"),); + $boxsettings['title'] = Array("", t('Show/hide boxes at right-hand column:'), "", ""); + $aside['$boxsettings'] = $boxsettings; + $aside['$close_pages'] = array('vier_close_pages', t('Community Pages'), $close_pages, '', $close_or_not); + $aside['$close_profiles'] = array('vier_close_profiles', t('Community Profiles'), $close_profiles, '', $close_or_not); + $aside['$close_helpers'] = array('vier_close_helpers', t('Help or @NewHere ?'), $close_helpers, '', $close_or_not); + $aside['$close_services'] = array('vier_close_services', t('Connect Services'), $close_services, '', $close_or_not); + $aside['$close_friends'] = array('vier_close_friends', t('Find Friends'), $close_friends, '', $close_or_not); + $aside['$close_lastusers'] = array('vier_close_lastusers', t('Last users'), $close_lastusers, '', $close_or_not); + $aside['$close_lastphotos'] = array('vier_close_lastphotos', t('Last photos'), $close_lastphotos, '', $close_or_not); + $aside['$close_lastlikes'] = array('vier_close_lastlikes', t('Last likes'), $close_lastlikes, '', $close_or_not); + $aside['$sub'] = t('Submit'); + $baseurl = $a->get_baseurl($ssl_state); + $aside['$baseurl'] = $baseurl; + + if (isset($_POST['vier-settings-box-sub']) && $_POST['vier-settings-box-sub']!=''){ + set_pconfig(local_user(), 'vier', 'close_pages', $_POST['vier_close_pages']); + set_pconfig(local_user(), 'vier', 'close_profiles', $_POST['vier_close_profiles']); + set_pconfig(local_user(), 'vier', 'close_helpers', $_POST['vier_close_helpers']); + set_pconfig(local_user(), 'vier', 'close_services', $_POST['vier_close_services']); + set_pconfig(local_user(), 'vier', 'close_friends', $_POST['vier_close_friends']); + set_pconfig(local_user(), 'vier', 'close_lastusers', $_POST['vier_close_lastusers']); + set_pconfig(local_user(), 'vier', 'close_lastphotos', $_POST['vier_close_lastphotos']); + set_pconfig(local_user(), 'vier', 'close_lastlikes', $_POST['vier_close_lastlikes']); + } + } + $close = t('Settings'); + $aside['$close'] = $close; +*/ + //get_baseurl + $url = $a->get_baseurl($ssl_state); + $aside['$url'] = $url; + + //print right_aside + $tpl = get_markup_template('communityhome.tpl'); + $a->page['right_aside'] = replace_macros($tpl, $aside); +} diff --git a/view/theme/vier/wide.css b/view/theme/vier/wide.css new file mode 100644 index 0000000000..7c703a4af5 --- /dev/null +++ b/view/theme/vier/wide.css @@ -0,0 +1,23 @@ +right_aside { + vertical-align: top; + width: 185px; + padding-top: 10px; + padding-right: 20px; + padding-bottom: 0px; + padding-left: 10px; + background-color: #FFFFFF; + font-size: 13px; + overflow-y: auto; + z-index: 2; + line-height: 17px; + position: fixed; + color: #737373; + top: 44px; + height: calc(100% - 54px); + display: block; + margin-left: calc(100% - 215px); +} + +#forumlist-sidebar { + display: none; +}