aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/config.default.php4
-rw-r--r--data/templates/default/tagrename.tpl.php1
-rw-r--r--doc/ChangeLog10
-rw-r--r--doc/UPGRADE.txt6
-rw-r--r--doc/configuration.rst23
-rw-r--r--scripts/fix-unfiled-tags.php35
-rw-r--r--src/SemanticScuttle/Service/Bookmark2Tag.php11
-rw-r--r--src/SemanticScuttle/Service/Tag.php1
-rw-r--r--tests/Bookmark2TagTest.php20
-rw-r--r--www/tagrename.php2
10 files changed, 106 insertions, 7 deletions
diff --git a/data/config.default.php b/data/config.default.php
index c850521..9c2f7f3 100644
--- a/data/config.default.php
+++ b/data/config.default.php
@@ -81,13 +81,15 @@ $theme = 'default';
/**
* SemanticScuttle root directory.
- *
* Set to NULL to autodetect the root url of the website.
*
* If your installation is in a subdirectory like
* "http://www.example.com/semanticscuttle/" then
* replace NULL by your address (between "" and with trailing '/')
*
+ * The autodetection works for both HTTP and HTTPS urls.
+ * If you offer HTTP *only*, then set your root url here.
+ *
* @var string
*/
$root = null;
diff --git a/data/templates/default/tagrename.tpl.php b/data/templates/default/tagrename.tpl.php
index 894b964..e3d0467 100644
--- a/data/templates/default/tagrename.tpl.php
+++ b/data/templates/default/tagrename.tpl.php
@@ -28,7 +28,6 @@ window.onload = function() {
</tr>
</table>
-</p>
<?php if (isset($referrer)): ?>
<div><input type="hidden" name="referrer" value="<?php echo $referrer; ?>" /></div>
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 8fc6743..b7bf843 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -3,6 +3,16 @@ ChangeLog for SemantiScuttle
.. contents::
+0.98.2 - 2011-08-XX
+-------------------
+- Fix bug #3385724: Rename tag ends with XML Parsing Error
+- Fix bug #3386178: "system:unfiled" secret tag does not work
+- Fix bug #3384416: Update documentation to explain HTTP/HTTPS root problem
+
+Run ``scripts/fix-unfiled-tags.php`` to fix old bookmarks that miss the
+``system:unfiled`` tags.
+
+
0.98.1 - 2011-08-01
-------------------
- Fix bug #3375635: XML parsing problem in top.inc.php
diff --git a/doc/UPGRADE.txt b/doc/UPGRADE.txt
index b144af2..e405431 100644
--- a/doc/UPGRADE.txt
+++ b/doc/UPGRADE.txt
@@ -4,6 +4,12 @@ Upgrading SemanticScuttle from a previous version
.. contents::
+From version 0.94-0.98.1 to 0.98.2
+==================================
+Run ``scripts/fix-unfiled-tags.php`` to fix old bookmarks that miss the
+``system:unfiled`` tags.
+
+
From version 0.97 to 0.98
=========================
Database updates
diff --git a/doc/configuration.rst b/doc/configuration.rst
index f457ebb..c8a8bd9 100644
--- a/doc/configuration.rst
+++ b/doc/configuration.rst
@@ -2,6 +2,8 @@
Configuration files
===================
+.. contents::
+
SemanticScuttle uses at least two configuration files:
1. Default configuration file ``config.default.php``
@@ -56,3 +58,24 @@ per-host configuration files:
- ``data/config.$hostname.php``
- ``/etc/semanticscuttle/config.$hostname.php``
+
+
+Configuration options
+=====================
+``$root`` URL
+-------------
+Normally, this configuration setting is detected automatically and will
+work for both HTTP and HTTPS installations.
+
+If your installation is available on **HTTP only**, then you need to configure
+it.
+
+The value is the full URL to your installation, including a trailing
+slash::
+
+ $root = "http://homepage.example.org/semanticscuttle/";
+
+or::
+
+ $root = "http://bookmarks.example.org/";
+
diff --git a/scripts/fix-unfiled-tags.php b/scripts/fix-unfiled-tags.php
new file mode 100644
index 0000000..8a5238e
--- /dev/null
+++ b/scripts/fix-unfiled-tags.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * SemanticScuttle from approximately 0.94 up to 0.98.2, system:unfiled
+ * tags were not created when adding new bookmarks with the web interface.
+ *
+ * This script adds system:unfiled tags for all bookmarks that have no
+ * tags.
+ */
+require_once dirname(__FILE__) . '/../src/SemanticScuttle/header-standalone.php';
+
+//needed to load the database object
+$bt = SemanticScuttle_Service_Factory::get('Bookmark2Tag');
+$db = SemanticScuttle_Service_Factory::getDb();
+
+$query = <<<SQL
+SELECT b.bId
+FROM sc_bookmarks AS b
+ LEFT JOIN sc_bookmarks2tags AS bt ON b.bId = bt.bId
+WHERE bt.bId IS NULL
+SQL;
+
+if (!($dbresult = $db->sql_query($query))) {
+ die('Strange SQL error');
+}
+while ($row = $db->sql_fetchrow($dbresult)) {
+ $db->sql_query(
+ 'INSERT INTO ' . $bt->getTableName() . ' '
+ . $db->sql_build_array(
+ 'INSERT',
+ array('bId' => $row['bId'], 'tag' => 'system:unfiled')
+ )
+ );
+}
+$db->sql_freeresult($dbresult);
+?> \ No newline at end of file
diff --git a/src/SemanticScuttle/Service/Bookmark2Tag.php b/src/SemanticScuttle/Service/Bookmark2Tag.php
index 914abc6..3e5c533 100644
--- a/src/SemanticScuttle/Service/Bookmark2Tag.php
+++ b/src/SemanticScuttle/Service/Bookmark2Tag.php
@@ -271,10 +271,11 @@ class SemanticScuttle_Service_Bookmark2Tag extends SemanticScuttle_DbService
* Retrieves all tags for a given bookmark except system tags.
*
* @param integer $bookmarkid ID of the bookmark
+ * @param boolean $systemTags Return "system:*" tags or not
*
* @return array Array of tags
*/
- public function getTagsForBookmark($bookmarkid)
+ public function getTagsForBookmark($bookmarkid, $systemTags = false)
{
if (!is_numeric($bookmarkid)) {
message_die(
@@ -285,9 +286,11 @@ class SemanticScuttle_Service_Bookmark2Tag extends SemanticScuttle_DbService
}
$query = 'SELECT tag FROM ' . $this->getTableName()
- . ' WHERE bId = ' . intval($bookmarkid)
- . ' AND LEFT(tag, 7) <> "system:"'
- . ' ORDER BY id ASC';
+ . ' WHERE bId = ' . intval($bookmarkid);
+ if (!$systemTags) {
+ $query .= ' AND LEFT(tag, 7) <> "system:"';
+ }
+ $query .= ' ORDER BY id ASC';
if (!($dbresult = $this->db->sql_query($query))) {
message_die(
diff --git a/src/SemanticScuttle/Service/Tag.php b/src/SemanticScuttle/Service/Tag.php
index 8325285..2476608 100644
--- a/src/SemanticScuttle/Service/Tag.php
+++ b/src/SemanticScuttle/Service/Tag.php
@@ -143,6 +143,7 @@ class SemanticScuttle_Service_Tag extends SemanticScuttle_DbService
if(!is_array($tags)) {
$tags = utf8_strtolower(trim($tags));
} else {
+ $tags = array_filter($tags);//remove empty values
for($i=0; $i<count($tags); $i++) {
$tags[$i] = utf8_strtolower(trim($tags[$i]));
}
diff --git a/tests/Bookmark2TagTest.php b/tests/Bookmark2TagTest.php
index 4d95d69..f466a7d 100644
--- a/tests/Bookmark2TagTest.php
+++ b/tests/Bookmark2TagTest.php
@@ -71,6 +71,26 @@ class Bookmark2TagTest extends TestBase
+ public function testAttachTagsWithoutTagsAddsSystemUnfiled()
+ {
+ $bid = $this->addBookmark(null, null, 0, array());
+ $this->assertEquals(
+ array('system:unfiled'),
+ $this->b2ts->getTagsForBookmark($bid, true)
+ );
+ }
+
+ public function testAttachTagsWithArrayWithEmptyStringAddsSystemUnfiled()
+ {
+ $bid = $this->addBookmark(null, null, 0, array(''));
+ $this->assertEquals(
+ array('system:unfiled'),
+ $this->b2ts->getTagsForBookmark($bid, true)
+ );
+ }
+
+
+
/**
* Test getTagsForBookmark() when the bookmark has no tags
*
diff --git a/www/tagrename.php b/www/tagrename.php
index b07d49d..18e26ab 100644
--- a/www/tagrename.php
+++ b/www/tagrename.php
@@ -67,7 +67,7 @@ if (POST_CONFIRM) {
$template = 'error.500.tpl';
}
} elseif (POST_CANCEL) {
- header('Location: '. createURL('bookmarks', $currentUser->getUsername() .'/'. $tags));
+ header('Location: '. createURL('bookmarks', $currentUser->getUsername() .'/'. $tag));
} else {
$tplVars['subtitle'] = T_('Rename Tag') .': '. $tag;
$tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag;