diff --git a/boot.php b/boot.php index e1687030d..f357487b9 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_VERSION', '2.3.1329' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1142 ); +define ( 'DB_UPDATE_VERSION', 1143 ); define ( 'EOL', "
\r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); @@ -1520,9 +1520,12 @@ function get_my_url() { } function zrl_init(&$a) { - proc_run('php','include/gprobe.php',bin2hex(get_my_url())); - $arr = array('zrl' => get_my_url(), 'url' => $a->cmd); - call_hooks('zrl_init',$arr); + $tmp_str = get_my_url(); + if(validate_url($tmp_str)) { + proc_run('php','include/gprobe.php',bin2hex($tmp_str)); + $arr = array('zrl' => $tmp_str, 'url' => $a->cmd); + call_hooks('zrl_init',$arr); + } } function zrl($s,$force = false) { diff --git a/database.sql b/database.sql index dc586bc2b..cf086796a 100644 --- a/database.sql +++ b/database.sql @@ -1027,6 +1027,7 @@ CREATE TABLE IF NOT EXISTS `user` ( `account_expired` tinyint(1) NOT NULL DEFAULT '0', `account_expires_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `expire_notification_sent` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `service_class` char(32) NOT NULL, `allow_cid` mediumtext NOT NULL, `allow_gid` mediumtext NOT NULL, `deny_cid` mediumtext NOT NULL, @@ -1042,7 +1043,8 @@ CREATE TABLE IF NOT EXISTS `user` ( KEY `verified` (`verified`), KEY `unkmail` (`unkmail`), KEY `cntunkmail` (`cntunkmail`), - KEY `account_removed` (`account_removed`) + KEY `account_removed` (`account_removed`), + KEY `service_class` (`service_class`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- diff --git a/include/contact_widgets.php b/include/contact_widgets.php index cfe27c5c9..bf3a86958 100644 --- a/include/contact_widgets.php +++ b/include/contact_widgets.php @@ -146,11 +146,19 @@ function common_friends_visitor_widget($profile_uid) { $cid = local_user(); else { if(get_my_url()) { - $r = q("select id from gcontact where nurl = '%s' limit 1", - dbesc(normalise_link(get_my_url())) + $r = q("select id from contact where nurl = '%s' and uid = %d limit 1", + dbesc(normalise_link(get_my_url())), + intval($profile_uid) ); if(count($r)) - $zcid = $r[0]['id']; + $cid = $r[0]['id']; + else { + $r = q("select id from gcontact where nurl = '%s' limit 1", + dbesc(normalise_link(get_my_url())) + ); + if(count($r)) + $zcid = $r[0]['id']; + } } } @@ -162,14 +170,14 @@ function common_friends_visitor_widget($profile_uid) { if($cid) $t = count_common_friends($profile_uid,$cid); else - $t = count_common_friends($profile_uid,$cid); + $t = count_common_friends_zcid($profile_uid,$zcid); if(! $t) return; if($cid) - $r = common_friends($profile_uid,$cid,5); + $r = common_friends($profile_uid,$cid,5,true); else - $r = common_friends_zcid($profile_uid,$zcid); + $r = common_friends_zcid($profile_uid,$zcid,5,true); return replace_macros(get_markup_template('remote_friends_common.tpl'), array( '$desc' => sprintf( tt("%d friend in common", "%d friends in common", $t), $t), diff --git a/include/socgraph.php b/include/socgraph.php index a08d58074..35d754cad 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -182,13 +182,18 @@ function count_common_friends($uid,$cid) { } -function common_friends($uid,$cid,$limit=9999) { +function common_friends($uid,$cid,$limit=9999,$shuffle = false) { + + if($shuffle) + $sql_extra = " order by rand() "; + else + $sql_extra = " order by `gcontact`.`name` asc "; $r = q("SELECT `gcontact`.* FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id` where `glink`.`cid` = %d and `glink`.`uid` = %d and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 and id != %d ) - order by `gcontact`.`name` asc limit 0, %d", + sql_extra limit 0, %d", intval($cid), intval($uid), intval($uid), @@ -217,13 +222,18 @@ function count_common_friends_zcid($uid,$zcid) { } -function common_friends_zcid($uid,$zcid,$limit = 6) { +function common_friends_zcid($uid,$zcid,$limit = 9999,$shuffle) { + + if($shuffle) + $sql_extra = " order by rand() "; + else + $sql_extra = " order by `gcontact`.`name` asc "; $r = q("SELECT `gcontact`.* FROM `glink` left join `gcontact` on `glink`.`gcid` = `gcontact`.`id` where `glink`.`zcid` = %d and `gcontact`.`nurl` in (select nurl from contact where uid = %d and self = 0 ) - order by `gcontact`.`name` asc limit 0, %d", + $sql_extra limit 0, %d", intval($zcid), intval($uid), intval($limit) diff --git a/mod/profiles.php b/mod/profiles.php index 3a52c8fa5..4de9057dc 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -328,7 +328,7 @@ function profile_activity($changed, $value) { $prof = '[url=' . $self[0]['url'] . '?tab=profile' . ']' . t('public profile') . '[/url]'; if($t == 1 && strlen($value)) { - $message = sprintf( t('%1$s changed %2$s to %3$s'), $A, $changes, $value); + $message = sprintf( t('%1$s changed %2$s to "%3$s"'), $A, $changes, $value); $message .= "\n\n" . sprintf( t(' - Visit %1$s\'s %2$s'), $A, $prof); } else diff --git a/update.php b/update.php index cce942f27..e363aa942 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ + diff --git a/view/theme/diabook/comment_item.tpl b/view/theme/diabook/comment_item.tpl index e10b86845..fc3594fdc 100644 --- a/view/theme/diabook/comment_item.tpl +++ b/view/theme/diabook/comment_item.tpl @@ -13,13 +13,13 @@
{{ if $qcomment }} - - '; - - $aside['$nv'] = $nv; - }; - - //Community Page - if(local_user()) { - $page = '
-

'.t("Community Pages").'

-
'; - //if (sizeof($contacts) > 0) - - $aside['$page'] = $page; - } - //END Community Page - //helpers - $helpers = array(); - $helpers['title'] = Array("", t('Help or @NewHere ?'), "", ""); - - $aside['$helpers'] = $helpers; - //end helpers - //connectable services - $con_services = array(); - $con_services['title'] = Array("", t('Connect Services'), "", ""); - - $aside['$con_services'] = $con_services; - //end connectable services - - - //get_baseurl - $url = $a->get_baseurl($ssl_state); - $aside['$url'] = $url; - - $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl'); - $a->page['right_aside'] = replace_macros($tpl, $aside); - - - - -} - - -//profile_side at networkpages -if ($a->argv[0] === "network" && local_user()){ + //profile_side at networkpages + if ($a->argv[0] === "network" && local_user()){ // USER MENU if(local_user()) { @@ -278,10 +65,10 @@ if ($a->argv[0] === "network" && local_user()){ $tpl = get_markup_template('profile_side.tpl'); - $a->page['aside'] .= replace_macros($tpl, array( + $a->page['aside'] = replace_macros($tpl, array( '$userinfo' => $userinfo, '$ps' => $ps, - )); + )).$a->page['aside']; } @@ -295,12 +82,12 @@ if ($a->argv[0] === "network" && local_user()){ if($resolution == "normal") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-network.css";} if($resolution == "wide") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-network-wide.css";} } -} + } -//right_aside at profile pages -if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){ + //right_aside at profile pages + if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){ if($ccCookie != "9") { // COMMUNITY diabook_community_info(); @@ -310,155 +97,78 @@ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){ if($resolution == "wide") {$cssFile = $a->get_baseurl($ssl_state)."/view/theme/diabook".$color_path."style-profile-wide.css";} } -} - -// custom css -if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('', $cssFile); - -//footer -$tpl = get_markup_template('footer.tpl'); -$a->page['footer'] .= replace_macros($tpl, array()); - -//load jquery.cookie.js -$cookieJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.cookie.js"; -$a->page['htmlhead'] .= sprintf('', $cookieJS); - -//load jquery.ae.image.resize.js -$imageresizeJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.ae.image.resize.js"; -$a->page['htmlhead'] .= sprintf('', $imageresizeJS); - -//load jquery.autogrow-textarea.js -$autogrowJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.autogrow.textarea.js"; -$a->page['htmlhead'] .= sprintf('', $autogrowJS); - -//load jquery.twitter.search.js -$twitterJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.twitter.search.js"; -$a->page['htmlhead'] .= sprintf('', $twitterJS); - -//js scripts - -//check if community_home-plugin is activated and change css -$nametocheck = "communityhome"; -$r = q("select id from addon where name = '%s' and installed = 1", dbesc($nametocheck)); -if(count($r) == "1") { + } -$a->page['htmlhead'] .= ' -', $cookieJS); + + //load jquery.ae.image.resize.js + $imageresizeJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.ae.image.resize.js"; + $a->page['htmlhead'] .= sprintf('', $imageresizeJS); + + //load jquery.twitter.search.js + if($_COOKIE['close_twitter'] != "1") { + $twitterJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.twitter.search.js"; + $a->page['htmlhead'] .= sprintf('', $twitterJS); + } + + $a->page['htmlhead'] .= ' + '; + + //check if twitterbox is active and print + if($_COOKIE['close_twitter'] != "1") { + $a->page['htmlhead'] .= ' + ';} + + //check if community_home-plugin is activated and change css + $nametocheck = "communityhome"; + $r = q("select id from addon where name = '%s' and installed = 1", dbesc($nametocheck)); + if(count($r) == "1") { + + $a->page['htmlhead'] .= ' + '; -} - -//comment-edit-wrapper on photo_view -if ($a->argv[0].$a->argv[2] === "photos"."image"){ - -$a->page['htmlhead'] .= ' -'; + } + //comment-edit-wrapper on photo_view + if ($a->argv[0].$a->argv[2] === "photos"."image"){ + $a->page['htmlhead'] .= ' + '; -} - -$a->page['htmlhead'] .= ' - -'; - - -$a->page['htmlhead'] .= ' - -'; - - -$a->page['htmlhead'] .= ' - '; - -if($a->argv[0] === "settings" && local_user()) { -$a->page['htmlhead'] .= ' -';} + } + ';} + + if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname'] or $a->argv[0] === "network" && local_user()){ + $a->page['htmlhead'] .= ' + '; - - + }); + '; + if($ccCookie != "9") { -$a->page['htmlhead'] .= ' -';}} - -$a->page['htmlhead'] .= ' - -';} } - return true; + //end js scripts + + // custom css + if (!is_null($cssFile)) $a->page['htmlhead'] .= sprintf('', $cssFile); + + //footer + $tpl = get_markup_template('footer.tpl'); + $a->page['footer'] .= replace_macros($tpl, array()); + + // + js_in_foot(); } -function cmtBbOpen(id) { - $(".comment-edit-bb-" + id).show(); -} -function cmtBbClose(id) { - $(".comment-edit-bb-" + id).hide(); -} - '; \ No newline at end of file + function diabook_community_info() { + $a = get_app(); + // comunity_profiles + if($_COOKIE['close_profiles'] != "1") { + $aside['$comunity_profilest_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 = file_get_contents( dirname(__file__).'/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($_COOKIE['close_lastusers'] != "1") { + $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 = file_get_contents( dirname(__file__).'/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' => $rr[$photo], + '$alt-text' => $rr['name'], + )); + $aside['$lastusers_items'][] = $entry; + } + }} + + // last 10 liked items + if($_COOKIE['close_lastlikes'] != "1") { + $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($_COOKIE['close_photos'] != "1") { + $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 = file_get_contents( dirname(__file__).'/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($_COOKIE['close_friends'] != "1") { + if(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($_COOKIE['close_pages'] != "1") { + if(local_user()) { + $page = '
+

'.t("Community Pages").'

+
'; + //if (sizeof($contacts) > 0) + $aside['$page'] = $page; + }} + //END Community Page + + //helpers + if($_COOKIE['close_helpers'] != "1") { + $helpers = array(); + $helpers['title'] = Array("", t('Help or @NewHere ?'), "", ""); + $aside['$helpers'] = $helpers; + } + //end helpers + //connectable services + if($_COOKIE['close_services'] != "1") { + $con_services = array(); + $con_services['title'] = Array("", t('Connect Services'), "", ""); + $aside['$con_services'] = $con_services; + } + //end connectable services + //get_baseurl + $url = $a->get_baseurl($ssl_state); + $aside['$url'] = $url; + //print right_aside + $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl'); + $a->page['right_aside'] = replace_macros($tpl, $aside); + + } + + function js_in_foot() { + /** @purpose insert stuff in bottom of page + */ + $a = get_app(); + $baseurl = $a->get_baseurl($ssl_state); + $bottom['$baseurl'] = $baseurl; + $tpl = file_get_contents(dirname(__file__) . '/bottom.tpl'); + $a->page['footer'] = $a->page['footer'].replace_macros($tpl, $bottom); + } + + + + + + + + + + + +