`bHash` varchar(32) NOT NULL default '',
`bVotes` int(11) NOT NULL,
`bVoting` int(11) NOT NULL,
+ `bShort` varchar(16) default NULL,
PRIMARY KEY (`bId`),
KEY `sc_bookmarks_usd` (`uId`,`bStatus`,`bDatetime`),
KEY `sc_bookmarks_hui` (`bHash`,`uId`,`bId`),
Upgrading SemanticScuttle from a previous version
=================================================
-From versin 0.94 to 0.95.0
+From version 0.95 to 0.96
+-------------------------
+Update your database:
+- ALTER TABLE `sc_bookmarks` ADD `bShort` VARCHAR(16) NULL DEFAULT NULL;
+
+API:
+The method signatures of addBookmark() and updateBookmark()
+changed due to the addition of the $short parameter.
+
+
+From version 0.94 to 0.95
--------------------------
The file structure completely changed in 0.95.0 compared
to previous versions. We recommend that you start with a
null,
0,
array('unittest'),
- null, false, false,
+ null, null, false, false,
$uid
);
}
* 1 - shared
* 2 - private
* @param array $tags Array of tags
+ * @param string $short Short URL name. May be null
* @param string $date Date when the bookmark has been created
* originally. Used in combination with
* $fromImport. Has to be a strtotime()
*/
public function addBookmark(
$address, $title, $description, $privateNote, $status, $tags,
+ $short = null,
$date = null, $fromApi = false, $fromImport = false, $sId = null
) {
if ($sId === null) {
}
$datetime = gmdate('Y-m-d H:i:s', $time);
+ if ($short === '') {
+ $short = null;
+ }
+
// Set up the SQL insert statement and execute it.
$values = array(
'uId' => intval($sId),
'bDescription' => $description,
'bPrivateNote' => $privateNote,
'bStatus' => intval($status),
- 'bHash' => md5($address)
+ 'bHash' => md5($address),
+ 'bShort' => $short
);
$sql = 'INSERT INTO '. $this->getTableName()
* 1 - shared
* 2 - private
* @param array $categories Array of tags
+ * @param string $short Short URL name. May be null.
* @param string $date Date when the bookmark has been created
* originally. Used in combination with
* $fromImport. Has to be a strtotime()
*/
public function updateBookmark(
$bId, $address, $title, $description, $privateNote, $status,
- $categories, $date = NULL, $fromApi = false
+ $categories, $short = null, $date = null, $fromApi = false
) {
if (!is_numeric($bId)) {
return false;
$address = $this->normalize($address);
- //check if a new address ($address) doesn't already exist for another bookmark from the same user
+ //check if a new address ($address) doesn't already exist
+ // for another bookmark from the same user
$bookmark = $this->getBookmark($bId);
- if($bookmark['bAddress'] != $address && $this->bookmarkExists($address, $bookmark['uId'])) {
+ if ($bookmark['bAddress'] != $address
+ && $this->bookmarkExists($address, $bookmark['uId'])
+ ) {
message_die(GENERAL_ERROR, 'Could not update bookmark (URL already existing = '.$address.')', '', __LINE__, __FILE__);
return false;
}
+ if ($short === '') {
+ $short = null;
+ }
+
// Set up the SQL update statement and execute it.
- $updates = array('bModified' => $moddatetime, 'bTitle' => $title, 'bAddress' => $address, 'bDescription' => $description, 'bPrivateNote' => $privateNote, 'bStatus' => $status, 'bHash' => md5($address));
+ $updates = array(
+ 'bModified' => $moddatetime,
+ 'bTitle' => $title,
+ 'bAddress' => $address,
+ 'bDescription' => $description,
+ 'bPrivateNote' => $privateNote,
+ 'bStatus' => $status,
+ 'bHash' => md5($address),
+ 'bShort' => $short
+ );
if (!is_null($date)) {
$datetime = gmdate('Y-m-d H:i:s', strtotime($date));
$this->vs->deleteAll();
}
+ /**
+ * Tests if adding a bookmark with short url name
+ * saves it in the database.
+ *
+ * @return void
+ */
+ public function testAddBookmarkShort()
+ {
+ $bid = $this->bs->addBookmark(
+ 'http://example.org', 'title', 'desc', 'priv',
+ 0, array(), 'myShortName'
+ );
+ $bm = $this->bs->getBookmark($bid);
+ $this->assertEquals('http://example.org', $bm['bAddress']);
+ $this->assertArrayHasKey('bShort', $bm);
+ $this->assertEquals('myShortName', $bm['bShort']);
+ }
+
public function testHardCharactersInBookmarks()
{
$bs = $this->bs;
$bid = $bs->addBookmark(
'http://site1.com', $title, $desc, 'note',
0, array($tag1, $tag2),
- null, false, false, $uid
+ null, null, false, false, $uid
);
$bookmarks = $bs->getBookmarks(0, 1);
$bs->addBookmark(
'http://site1.com', "title", "description", 'note',
- 0, array('tag1'), null, false, false,
+ 0, array('tag1'), null, null, false, false,
$uid
);
$bs->addBookmark(
"http://site1.com", "title2", "description2", 'note',
- 0, array('tag2'), null, false, false,
+ 0, array('tag2'), null, null, false, false,
$uid2
);
$this->bs->addBookmark(
'http://test', 'test', 'desc', 'note',
2,//private
- array(), null, false, false, $uid
+ array(), null, null, false, false, $uid
);
$this->assertEquals(0, $this->bs->countBookmarks($uid));
$this->assertEquals(0, $this->bs->countBookmarks($uid, 'public'));
$this->bs->addBookmark(
'http://test', 'test', 'desc', 'note',
1,//shared
- array(), null, false, false, $uid
+ array(), null, null, false, false, $uid
);
$this->assertEquals(0, $this->bs->countBookmarks($uid));
$this->assertEquals(0, $this->bs->countBookmarks($uid, 'public'));
$this->assertEquals(1, count($bm['tags']));
$this->assertContains('new', $bm['tags']);
}
+
+ /**
+ * Tests if updating a bookmark's short url name
+ * saves it in the database.
+ *
+ * @return void
+ */
+ public function testUpdateBookmarkShort()
+ {
+ $bid = $this->bs->addBookmark(
+ 'http://example.org', 'title', 'desc', 'priv',
+ 0, array(), 'myShortName'
+ );
+ $bm = $this->bs->getBookmark($bid);
+ $this->assertEquals('myShortName', $bm['bShort']);
+
+ $this->assertTrue(
+ $this->bs->updateBookmark(
+ $bid, 'http://example2.org', 'my title', 'desc',
+ 'priv', 0, array(), 'newShortNambb'
+ )
+ );
+ $bm = $this->bs->getBookmark($bid);
+ $this->assertEquals('newShortNambb', $bm['bShort']);
+ }
+
}
$uid = $this->addUser();
$bs->addBookmark(
"http://google.com", "title", "description", 'note',
- 0, $tags, null, false, false,
+ 0, $tags, null, null, false, false,
$uid
);
$bookmark = $bs->getBookmarkByAddress("http://google.com");
$tags = array('aa>bb>cc', 'dd');
$bs->addBookmark(
"web1.com", "B1", "description", 'note', 0,
- $tags, null, false, false, 1
+ $tags, null, null, false, false, 1
);
$tags = array('bb>gg', 'ee>ff');
$bs->addBookmark(
"web2.com", "B2", "description", 'note', 0,
- $tags, null, false, false, 1
+ $tags, null, null, false, false, 1
);
$tags = array('ee=ii');
$bs->addBookmark(
"web3.com", "B3", "description", 'note', 0,
- $tags, null, false, false, 1
+ $tags, null, null, false, false, 1
);
// Query format:
// with classic tags (users 10 & 20)
$bid1 = $bs->addBookmark(
"http://site1.com", "title", "description", 'note', 0,
- array('tag1', 'tag11', 'tag111'), null, false, false,
+ array('tag1', 'tag11', 'tag111'), null, null, false, false,
$uid1
);
$bid2 = $bs->addBookmark(
"http://site1.com", "title2", "description2", 'note', 0,
- array('tag2', 'tag22', 'tag222'), null, false, false,
+ array('tag2', 'tag22', 'tag222'), null, null, false, false,
$uid2
);
null,
0,
array('unittest'),
- null, false, false,
+ null, null, false, false,
$user
);
return $bid;
if ($bookmarkservice->bookmarkExists($url, $userservice->getCurrentUserId()))
$added = false;
else
- $added = $bookmarkservice->addBookmark($url, $description, $extended, '', $status, $tags, $dt, true);
+ $added = $bookmarkservice->addBookmark($url, $description, $extended, '', $status, $tags, null, $dt, true);
}
// Set up the XML file and output the result.
$bDatetime = gmdate('Y-m-d H:i:s');
}
- if ($bookmarkservice->addBookmark($bAddress, $bTitle, $bDescription, '', $status, $tags, $bDatetime, true, true))
+ if ($bookmarkservice->addBookmark($bAddress, $bTitle, $bDescription, '', $status, $tags, null, $bDatetime, true, true))
$tplVars['msg'] = T_('Bookmark imported.');
else
$tplVars['error'] = T_('There was an error saving your bookmark. Please try again or contact the administrator.');
$bDatetime = gmdate('Y-m-d H:i:s');
}
- if ($bookmarkservice->addBookmark($bAddress, $bTitle, $bDescription, $bPrivateNote, $status, $bCategories, $bDatetime, false, true)) {
+ if ($bookmarkservice->addBookmark($bAddress, $bTitle, $bDescription, $bPrivateNote, $status, $bCategories, null, $bDatetime, false, true)) {
$countImportedBookmarks++;
} else {
$tplVars['error'] = T_('There was an error saving your bookmark. Please try again or contact the administrator.');