mirror of
https://github.com/friendica/friendica
synced 2024-11-10 03:02:54 +00:00
diabook: theme.php
remove code duplication last photos check for user "hidewall" remove unneeded regex move js code to close popup in main.js (missing stop event propagation in popup links)
This commit is contained in:
parent
82cc86a41a
commit
1780fff161
3 changed files with 196 additions and 338 deletions
19
js/main.js
19
js/main.js
|
@ -28,13 +28,15 @@
|
|||
var in_progress = false;
|
||||
var langSelect = false;
|
||||
var commentBusy = false;
|
||||
var last_popup_menu = null;
|
||||
var last_popup_button = null;
|
||||
|
||||
$(function() {
|
||||
$.ajaxSetup({cache: false});
|
||||
|
||||
msie = $.browser.msie ;
|
||||
|
||||
/* setup tooltips */
|
||||
/* setup tooltips *//*
|
||||
$("a,.tt").each(function(){
|
||||
var e = $(this);
|
||||
var pos="bottom";
|
||||
|
@ -43,7 +45,7 @@
|
|||
if (e.hasClass("ttleft")) pos="left";
|
||||
if (e.hasClass("ttright")) pos="right";
|
||||
e.tipTip({defaultPosition: pos, edgeOffset: 8});
|
||||
});
|
||||
});*/
|
||||
|
||||
|
||||
|
||||
|
@ -76,8 +78,21 @@
|
|||
if (menu.attr('popup')=="false") return false;
|
||||
$(this).parent().toggleClass("selected");
|
||||
menu.toggle();
|
||||
if (menu.css("display") == "none") {
|
||||
last_popup_menu = null;
|
||||
last_popup_button = null;
|
||||
} else {
|
||||
last_popup_menu = menu;
|
||||
last_popup_button = $(this).parent();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
$('html').click(function() {
|
||||
last_popup_menu.hide();
|
||||
last_popup_button.removeClass("selected");
|
||||
last_popup_menu = null;
|
||||
last_popup_button = null;
|
||||
});
|
||||
|
||||
// fancyboxes
|
||||
$("a.popupbox").fancybox({
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<li id="profile-side-photos" class="menu-profile-list photos"><a class="menu-profile-list-item" href="$ps.usermenu.photos.0">$ps.usermenu.photos.1</a></li>
|
||||
<li id="profile-side-events" class="menu-profile-list events"><a class="menu-profile-list-item" href="$ps.usermenu.events.0">$ps.usermenu.events.1</a></li>
|
||||
<li id="profile-side-notes" class="menu-profile-list notes"><a class="menu-profile-list-item" href="$ps.usermenu.notes.0">$ps.usermenu.notes.1</a></li>
|
||||
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="http://dir.friendika.com/directory/forum" target="blanc">Public Groups</a></li>
|
||||
<li id="profile-side-foren" class="menu-profile-list foren"><a class="menu-profile-list-item" href="$ps.usermenu.pgroups.0" target="blanc">$ps.usermenu.pgroups.1</a></li>
|
||||
<li id="profile-side-foren" class="menu-profile-list com_side"><a class="menu-profile-list-item" href="$ps.usermenu.community.0">$ps.usermenu.community.1</a></li>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -11,42 +11,15 @@ $a->theme_info = array(
|
|||
'extends' => 'diabook',
|
||||
);
|
||||
|
||||
//profile_side at networkpages
|
||||
|
||||
if($is_url = preg_match ("/\bnetwork\b/i", $_SERVER['REQUEST_URI'])) {
|
||||
//
|
||||
|
||||
$nav['usermenu']=array();
|
||||
$userinfo = null;
|
||||
|
||||
if(local_user()) {
|
||||
//change css on network and profilepages
|
||||
$cssFile = null;
|
||||
|
||||
|
||||
|
||||
$r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
|
||||
|
||||
$userinfo = array(
|
||||
'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl()."/images/default-profile-mm.jpg"),
|
||||
'name' => $a->user['username'],
|
||||
);
|
||||
|
||||
$ps['usermenu'][status] = Array('profile/' . $a->user['nickname'], t('Home'), "", t('Your posts and conversations'));
|
||||
$ps['usermenu'][profile] = Array('profile/' . $a->user['nickname']. '?tab=profile', t('Profile'), "", t('Your profile page'));
|
||||
$ps['usermenu'][photos] = Array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
|
||||
$ps['usermenu'][events] = Array('events/', t('Events'), "", t('Your events'));
|
||||
$ps['usermenu'][notes] = Array('notes/', t('Personal notes'), "", t('Your personal photos'));
|
||||
$ps['usermenu'][community] = Array('community/', t('Community'), "", "");
|
||||
|
||||
|
||||
$tpl = get_markup_template('profile_side.tpl');
|
||||
|
||||
$a->page['aside'] .= replace_macros($tpl, array(
|
||||
'$userinfo' => $userinfo,
|
||||
'$ps' => $ps,
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* prints last community activity
|
||||
*/
|
||||
function diabook_community_info(){
|
||||
$a = get_app();
|
||||
//right_aside at networkpages
|
||||
|
||||
// last 12 users
|
||||
|
@ -77,6 +50,7 @@ $a->page['aside'] .= replace_macros($tpl, array(
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// last 10 liked items
|
||||
$aside['$like_title'] = t('Last likes');
|
||||
$aside['$like_items'] = array();
|
||||
|
@ -120,6 +94,8 @@ $a->page['aside'] .= replace_macros($tpl, array(
|
|||
$aside['$like_items'][] = sprintf( t('%1$s likes %2$s\'s %3$s'), $author, $objauthor, $plink);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// last 12 photos
|
||||
$aside['$photos_title'] = t('Last photos');
|
||||
$aside['$photos_items'] = array();
|
||||
|
@ -131,6 +107,7 @@ $a->page['aside'] .= replace_macros($tpl, array(
|
|||
`user`
|
||||
WHERE `user`.`uid` = `photo`.`uid`
|
||||
AND `user`.`blockwall`=0
|
||||
AND `user`.`hidewall`=0
|
||||
ORDER BY `photo`.`edited` DESC
|
||||
LIMIT 0, 12",
|
||||
dbesc(t('Contact Photos')),
|
||||
|
@ -159,204 +136,70 @@ $a->page['aside'] .= replace_macros($tpl, array(
|
|||
|
||||
}
|
||||
|
||||
|
||||
//profile_side at networkpages
|
||||
if ($a->argv[0] === "network"){
|
||||
|
||||
// USER MENU
|
||||
if(local_user()) {
|
||||
|
||||
$r = q("SELECT micro FROM contact WHERE uid=%d AND self=1", intval($a->user['uid']));
|
||||
|
||||
$userinfo = array(
|
||||
'icon' => (count($r) ? $r[0]['micro']: $a->get_baseurl()."/images/default-profile-mm.jpg"),
|
||||
'name' => $a->user['username'],
|
||||
);
|
||||
$ps = array('usermenu'=>array());
|
||||
$ps['usermenu']['status'] = Array('profile/' . $a->user['nickname'], t('Home'), "", t('Your posts and conversations'));
|
||||
$ps['usermenu']['profile'] = Array('profile/' . $a->user['nickname']. '?tab=profile', t('Profile'), "", t('Your profile page'));
|
||||
$ps['usermenu']['photos'] = Array('photos/' . $a->user['nickname'], t('Photos'), "", t('Your photos'));
|
||||
$ps['usermenu']['events'] = Array('events/', t('Events'), "", t('Your events'));
|
||||
$ps['usermenu']['notes'] = Array('notes/', t('Personal notes'), "", t('Your personal photos'));
|
||||
$ps['usermenu']['community'] = Array('community/', t('Community'), "", "");
|
||||
$ps['usermenu']['pgroups'] = Array('http://dir.friendika.com/directory/forum', t('Public Groups'), "", "");
|
||||
|
||||
$tpl = get_markup_template('profile_side.tpl');
|
||||
|
||||
$a->page['aside'] .= replace_macros($tpl, array(
|
||||
'$userinfo' => $userinfo,
|
||||
'$ps' => $ps,
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
// COMMUNITY
|
||||
diabook_community_info();
|
||||
|
||||
// CUSTOM CSS
|
||||
$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook/style-network.css";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//right_aside at profile pages
|
||||
if ($a->argv[0] === "profile"){
|
||||
|
||||
if($is_url = preg_match ("/\bprofile\b/i", $_SERVER['REQUEST_URI'])) {
|
||||
//right_aside
|
||||
// COMMUNITY
|
||||
diabook_community_info();
|
||||
|
||||
// last 12 users
|
||||
$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,
|
||||
12
|
||||
);
|
||||
$tpl = file_get_contents( dirname(__file__).'/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' => $rr[$photo],
|
||||
'$alt-text' => $rr['name'],
|
||||
));
|
||||
$aside['$lastusers_items'][] = $entry;
|
||||
}
|
||||
}
|
||||
|
||||
// last 10 liked items
|
||||
$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,10",
|
||||
$a->get_baseurl(),$a->get_baseurl()
|
||||
);
|
||||
|
||||
foreach ($r as $rr) {
|
||||
$author = '<a href="' . $rr['liker-link'] . '">' . $rr['liker'] . '</a>';
|
||||
$objauthor = '<a href="' . $rr['author-link'] . '">' . $rr['author-name'] . '</a>';
|
||||
|
||||
//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 = '<a href="' . $rr['plink'] . '">' . $post_type . '</a>';
|
||||
|
||||
$aside['$like_items'][] = sprintf( t('%1$s likes %2$s\'s %3$s'), $author, $objauthor, $plink);
|
||||
|
||||
}
|
||||
// last 12 photos
|
||||
$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
|
||||
ORDER BY `photo`.`edited` DESC
|
||||
LIMIT 0, 12",
|
||||
dbesc(t('Contact Photos')),
|
||||
dbesc(t('Profile Photos'))
|
||||
);
|
||||
if(count($r)) {
|
||||
$tpl = file_get_contents( dirname(__file__).'/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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
|
||||
$a->page['right_aside'] = replace_macros($tpl, $aside);
|
||||
|
||||
}
|
||||
|
||||
//change css on network and profilepages
|
||||
$cssFile = null;
|
||||
|
||||
if($is_url = preg_match ("/\bnetwork\b/i", $_SERVER['REQUEST_URI'])) {
|
||||
$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook/style-network.css";
|
||||
}
|
||||
|
||||
if($is_url = preg_match ("/\bprofile\b/i", $_SERVER['REQUEST_URI'])) {
|
||||
// CUSTOM CSS
|
||||
$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook/style-profile.css";
|
||||
|
||||
}
|
||||
|
||||
|
||||
// custom css
|
||||
if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);
|
||||
|
||||
//js scripts
|
||||
|
||||
$a->page['htmlhead'] .= <<< EOT
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="$cssFile" />
|
||||
|
||||
<script>
|
||||
|
||||
//contacts
|
||||
$('html').click(function() {
|
||||
$('#nav-contacts-linkmenu').removeClass('selected');
|
||||
document.getElementById( "nav-contacts-menu" ).style.display = "none";
|
||||
});
|
||||
|
||||
$('#nav-contacts-linkmenu').click(function(event){
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
//messages
|
||||
$('html').click(function() {
|
||||
$('#nav-messages-linkmenu').removeClass('selected');
|
||||
document.getElementById( "nav-messages-menu" ).style.display = "none";
|
||||
});
|
||||
|
||||
$('#nav-messages-linkmenu').click(function(event){
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
//notifications
|
||||
$('html').click(function() {
|
||||
$('#nav-notifications-linkmenu').removeClass('selected');
|
||||
document.getElementById( "nav-notifications-menu" ).style.display = "none";
|
||||
});
|
||||
|
||||
$('#nav-notifications-linkmenu').click(function(event){
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
//usermenu
|
||||
$('html').click(function() {
|
||||
$('#nav-user-linkmenu').removeClass('selected');
|
||||
document.getElementById( "nav-user-menu" ).style.display = "none";
|
||||
});
|
||||
|
||||
$('#nav-user-linkmenu').click(function(event){
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
//settingsmenu
|
||||
$('html').click(function() {
|
||||
$('#nav-site-linkmenu').removeClass('selected');
|
||||
document.getElementById( "nav-site-menu" ).style.display = "none";
|
||||
});
|
||||
|
||||
$('#nav-site-linkmenu').click(function(event){
|
||||
event.stopPropagation();
|
||||
});
|
||||
//appsmenu
|
||||
$('html').click(function() {
|
||||
$('#nav-apps-link').removeClass('selected');
|
||||
document.getElementById( "nav-apps-menu" ).style.display = "none";
|
||||
});
|
||||
|
||||
$('#nav-apps-link').click(function(event){
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
$(function() {
|
||||
$('a.lightbox').fancybox(); // Select all links with lightbox class
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
EOT;
|
||||
|
||||
|
|
Loading…
Reference in a new issue