ignore suggestions

This commit is contained in:
Friendika 2011-11-03 16:00:52 -07:00
parent 4f4b03367a
commit 014c91431e
6 changed files with 59 additions and 5 deletions

View File

@ -11,7 +11,7 @@ require_once('include/cache.php');
define ( 'FRIENDIKA_PLATFORM', 'Friendica'); define ( 'FRIENDIKA_PLATFORM', 'Friendica');
define ( 'FRIENDIKA_VERSION', '2.3.1154' ); define ( 'FRIENDIKA_VERSION', '2.3.1154' );
define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
define ( 'DB_UPDATE_VERSION', 1101 ); define ( 'DB_UPDATE_VERSION', 1102 );
define ( 'EOL', "<br />\r\n" ); define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );

View File

@ -667,7 +667,7 @@ CREATE TABLE IF NOT EXISTS `gcontact` (
`url` CHAR( 255 ) NOT NULL , `url` CHAR( 255 ) NOT NULL ,
`nurl` CHAR( 255 ) NOT NULL , `nurl` CHAR( 255 ) NOT NULL ,
`photo` CHAR( 255 ) NOT NULL, `photo` CHAR( 255 ) NOT NULL,
INDEX ( `nurl` ), INDEX ( `nurl` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8; ) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `glink` ( CREATE TABLE IF NOT EXISTS `glink` (
@ -681,3 +681,12 @@ INDEX ( `uid` ),
INDEX ( `gcid` ), INDEX ( `gcid` ),
INDEX ( `updated` ) INDEX ( `updated` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8; ) ENGINE = MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `gcign` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`gcid` INT NOT NULL,
INDEX ( `uid` ),
INDEX ( `gcid` )
) ENGINE = MyISAM DEFAULT CHARSET=utf8;

View File

@ -171,9 +171,11 @@ function suggestion_query($uid, $start = 0, $limit = 40) {
$r = q("SELECT count(glink.gcid) as `total`, gcontact.* from gcontact $r = q("SELECT count(glink.gcid) as `total`, gcontact.* from gcontact
left join glink on glink.gcid = gcontact.id left join glink on glink.gcid = gcontact.id
where uid = %d and not gcontact.nurl in ( select nurl from contact where uid = %d) where uid = %d and not gcontact.nurl in ( select nurl from contact where uid = %d)
and not gcontact.id in ( select gcid from gcign where uid = %d )
group by glink.gcid order by total desc limit %d, %d ", group by glink.gcid order by total desc limit %d, %d ",
intval($uid), intval($uid),
intval($uid), intval($uid),
intval($uid),
intval($start), intval($start),
intval($limit) intval($limit)
); );

View File

@ -3,6 +3,24 @@
require_once('include/socgraph.php'); require_once('include/socgraph.php');
require_once('include/contact_widgets.php'); require_once('include/contact_widgets.php');
function suggest_init(&$a) {
if(! local_user())
return;
if(x($_GET,'ignore') && intval($_GET['ignore'])) {
q("insert into gcign ( uid, gcid ) values ( %d, %d ) ",
intval(local_user()),
intval($_GET['ignore'])
);
}
}
function suggest_content(&$a) { function suggest_content(&$a) {
$o = ''; $o = '';
@ -25,7 +43,7 @@ function suggest_content(&$a) {
return $o; return $o;
} }
$tpl = get_markup_template('common_friends.tpl'); $tpl = get_markup_template('suggest_friends.tpl');
foreach($r as $rr) { foreach($r as $rr) {
@ -33,7 +51,8 @@ function suggest_content(&$a) {
'$url' => $rr['url'], '$url' => $rr['url'],
'$name' => $rr['name'], '$name' => $rr['name'],
'$photo' => $rr['photo'], '$photo' => $rr['photo'],
'$tags' => '' '$ignlnk' => $a->get_baseurl() . '/suggest?ignore=' . $rr['id'],
'$ignore' => t('Ignore/Hide')
)); ));
} }

View File

@ -1,6 +1,6 @@
<?php <?php
define( 'UPDATE_VERSION' , 1101 ); define( 'UPDATE_VERSION' , 1102 );
/** /**
* *
@ -864,6 +864,17 @@ function update_1100() {
} }
function update_1101() {
q("CREATE TABLE IF NOT EXISTS `gcign` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`gcid` INT NOT NULL
) ENGINE = MYISAM ");
q("ALTER TABLE `gcign` ADD INDEX (`uid`), ADD INDEX (`gcid`) ");
}

13
view/suggest_friends.tpl Normal file
View File

@ -0,0 +1,13 @@
<div class="profile-match-wrapper">
<div class="profile-match-photo">
<a href="$url">
<img src="$photo" alt="$name" width="80" height="80" title="$name [$url]" />
</a>
</div>
<div class="profile-match-break"></div>
<div class="profile-match-name">
<a href="$url" title="$name">$name</a>
</div>
<a class="icon drophide profile-match-ignore" href="$ignlnk" title="$ignore" ></a>
<div class="profile-match-end"></div>
</div>