Updated PrivateKey to include Tag searches

This commit is contained in:
Mark Pemberton 2011-05-17 00:24:43 -04:00
parent 10214c43b5
commit 920f7fc623
6 changed files with 58 additions and 21 deletions

View file

@ -33,9 +33,7 @@ $this->includeTemplate($GLOBALS['top_include']);
<td><input type="checkbox" id="pEnablePrivateKey" name="pEnablePrivateKey" value="true" <?php echo $privateKeyIsEnabled;?> />
<label for="pEnablePrivateKey"><?php echo T_('Enable'); ?></label>&nbsp;&nbsp;&nbsp;
<input type="text" id="pPrivateKey" name="pPrivateKey" size="40" value="<?php echo $privateKey;?>" readonly="readonly" />
<!--<input type="button" name="submittedPK" value="<?php echo T_('Generate New Key'); ?>" />-->
<a onClick="getNewPrivateKey(this); return false;"><button type="submit" name="submittedPK" value="1"><?php echo T_('Generate New Key'); ?></button></a>
<a onclick="getNewPrivateKey(this); return false;"><button type="submit" name="submittedPK" value="1"><?php echo T_('Generate New Key'); ?></button></a>
</td>
</tr>
</table>

View file

@ -821,23 +821,34 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService
// Handle the parts of the query that depend on any tags that are present.
$query_4 = '';
for ($i = 0; $i < $tagcount; $i ++) {
$query_2 .= ', '. $b2tservice->getTableName() .' AS T'. $i;
if ($tagcount > 0) {
$query_2 .= ', '. $b2tservice->getTableName() .' AS T0';
$query_4 .= ' AND (';
$tagArray = array();
for ($i = 0; $i < $tagcount; $i ++) {
$tmpTag = $this->db->sql_escape($tags[$i]);
$allLinkedTags = $tag2tagservice->getAllLinkedTags(
$tmpTag, '>', $user
);
$allLinkedTags = $tag2tagservice->getAllLinkedTags(
$this->db->sql_escape($tags[$i]), '>', $user
);
while (is_array($allLinkedTags) && count($allLinkedTags)>0) {
$tmpValue = array_pop($allLinkedTags);
if (in_array($tmpValue, $tagArray) == false) {
$tagArray[] = $tmpValue;
}
}
while (is_array($allLinkedTags) && count($allLinkedTags)>0) {
$query_4 .= ' T'. $i .'.tag = "'. array_pop($allLinkedTags) .'"';
$query_4 .= ' OR';
if (in_array($tmpTag, $tagArray) == false) {
$tagArray[] = $tmpTag;
}
}
$query_4 .= ' T'. $i .'.tag = "'. $this->db->sql_escape($tags[$i]) .'"';
$query_4 .= ') AND T'. $i .'.bId = B.bId';
//die($query_4);
// loop through array of possible tags
foreach ($tagArray as $k => $v) {
$query_4 .= ' T0.tag = "'. $v .'" OR';
}
$query_4 = substr($query_4,0,-3);
$query_4 .= ') AND T0.bId = B.bId';
}
// Search terms

View file

@ -99,7 +99,7 @@ class SemanticScuttle_Service_Bookmark2Tag extends SemanticScuttle_DbService
$tags_count = is_array($tags)?count($tags):0;
for ($i = 0; $i < $tags_count; $i++) {
$tags[$i] = trim(strtolower($tags[$i]));
$tags[$i] = trim(utf8_strtolower($tags[$i]));
if ($fromApi) {
include_once 'SemanticScuttle/functions.php';
$tags[$i] = convertTag($tags[$i], 'in');

View file

@ -141,10 +141,10 @@ class SemanticScuttle_Service_Tag extends SemanticScuttle_DbService
//normalize
if(!is_array($tags)) {
$tags = strtolower(trim($tags));
$tags = utf8_strtolower(trim($tags));
} else {
for($i=0; $i<count($tags); $i++) {
$tags[$i] = strtolower(trim($tags[$i]));
$tags[$i] = utf8_strtolower(trim($tags[$i]));
}
}
return $tags;

View file

@ -229,12 +229,14 @@ if ($templatename == 'editbookmark.tpl') {
$tplVars['sidebar_blocks'] = array('watchstatus');
if (!$cat) { //user page without tags
$rssTitle = ": My Bookmarks";
$cat = NULL;
$tplVars['currenttag'] = NULL;
//$tplVars['sidebar_blocks'][] = 'menu2';
$tplVars['sidebar_blocks'][] = 'linked';
$tplVars['sidebar_blocks'][] = 'popular';
} else { //pages with tags
$rssTitle = ": Tags" . $catTitle;
$rssCat = '/'. filter($cat, 'url');
$tplVars['currenttag'] = $cat;
$tplVars['sidebar_blocks'][] = 'tagactions';
@ -264,9 +266,22 @@ if ($templatename == 'editbookmark.tpl') {
// Set template vars
$tplVars['rsschannels'] = array(
array(filter($sitename .': '. $pagetitle), createURL('rss', filter($user, 'url') . $rssCat.'?sort='.getSortOrder()))
array(filter($sitename .$rssTitle), createURL('rss', filter($user, 'url') . $rssCat.'?sort='.getSortOrder()))
);
if ($userservice->isLoggedOn()) {
$currentUsername = $currentUser->getUsername();
if ($userservice->isPrivateKeyValid($currentUser->getPrivateKey())) {
array_push(
$tplVars['rsschannels'],
array(
filter($sitename . $rssTitle. sprintf(T_(': (private) ')) . $currentUsername),
createURL('rss', filter($currentUsername, 'url') . '?sort='.getSortOrder().'&amp;privatekey='.$currentUser->getPrivateKey())
)
);
}
}
$tplVars['page'] = $page;
$tplVars['start'] = $start;
$tplVars['bookmarkCount'] = $start + 1;

View file

@ -67,9 +67,22 @@ if ($usecache) {
$tplVars['pagetitle'] = T_('Tags') .': '. $cat;
$tplVars['loadjs'] = true;
$tplVars['rsschannels'] = array(
array(filter($sitename .': '. $pagetitle), createURL('rss', 'all/'. filter($cat, 'url')).'?sort='.getSortOrder())
array(filter($sitename .': Tags: '. $cat), createURL('rss', 'all/'. filter($cat, 'url')).'?sort='.getSortOrder())
);
if ($userservice->isLoggedOn()) {
$currentUsername = $currentUser->getUsername();
if ($userservice->isPrivateKeyValid($currentUser->getPrivateKey())) {
array_push(
$tplVars['rsschannels'],
array(
filter($sitename .': Tags: '. $cat . sprintf(T_(': (private) ')) . $currentUsername),
createURL('rss', filter($currentUsername, 'url') . '?sort='.getSortOrder().'&amp;privatekey='.$currentUser->getPrivateKey())
)
);
}
}
// Pagination
$perpage = getPerPageCount($currentUser);
if (intval(GET_PAGE) > 1) {