https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115462
Revision: 115462
Author: fptc
Date: 2012-05-30 14:22:08 +0000 (Wed, 30 May 2012)
Log Message:
-----------
FreqPatternTagCloud: Bugfixes, Support of all attribute types, Make Specialpage
includable
Modified Paths:
--------------
trunk/extensions/FreqPatternTagCloud/FreqPatternTagCloud.body.php
trunk/extensions/FreqPatternTagCloud/freqpatterntagcloud.sql
trunk/extensions/FreqPatternTagCloud/includes/FrequentPattern.php
trunk/extensions/FreqPatternTagCloud/includes/TagCloud.php
trunk/extensions/FreqPatternTagCloud/includes/computation/FrequentPatternAlgorithm.php
trunk/extensions/FreqPatternTagCloud/includes/computation/FrequentPatternApriori.php
trunk/extensions/FreqPatternTagCloud/javascripts/main.js
Added Paths:
-----------
trunk/extensions/FreqPatternTagCloud/javascripts/jquery.parseJSON.js
Modified: trunk/extensions/FreqPatternTagCloud/FreqPatternTagCloud.body.php
===================================================================
--- trunk/extensions/FreqPatternTagCloud/FreqPatternTagCloud.body.php
2012-05-29 20:08:17 UTC (rev 115461)
+++ trunk/extensions/FreqPatternTagCloud/FreqPatternTagCloud.body.php
2012-05-30 14:22:08 UTC (rev 115462)
@@ -3,7 +3,7 @@
* Frequent Pattern Tag Cloud Plug-in
* Special page
*
- * @author Tobias Beck, University of Heidelberg
+ * @author Tobias Beck (TB), University of Heidelberg
* @author Andreas Fay, University of Heidelberg
* @version 1.0
*/
@@ -129,7 +129,8 @@
public static function getSearchSuggestions( $currentSearchValue ) {
$dbr = wfGetDB( DB_SLAVE );
- // Get possible attribute values
+ // Get possible attribute values
+ // TB: Include attribute values from table smw_atts2
$res = $dbr->query(
"(SELECT DISTINCT vals.smw_title AS val, atts.smw_title
AS att
FROM ".$dbr->tableName("smw_ids")." vals,
".$dbr->tableName("smw_ids")." atts, ".$dbr->tableName("smw_rels2")." rels
@@ -141,8 +142,18 @@
AND LENGTH(atts.smw_iw) = 0
AND vals.smw_title LIKE
'%".mysql_real_escape_string($currentSearchValue)."%'
ORDER BY vals.smw_title
- LIMIT 20) UNION (
- SELECT smw_title AS val,
'".mysql_real_escape_string(wfMsg("fptc-categoryname"))."' AS att
+ LIMIT 14)
+ UNION (
+ SELECT DISTINCT vals.value_xsd AS val,
atts.smw_title AS att
+ FROM ".$dbr->tableName("smw_atts2")." AS vals,
".$dbr->tableName("smw_ids")." AS atts
+ WHERE vals.p_id = atts.smw_id
+ AND atts.smw_namespace = 102
+ AND LENGTH(atts.smw_iw) = 0
+ AND value_xsd LIKE
'%".mysql_real_escape_string($currentSearchValue)."%'
+ ORDER BY value_xsd
+ LIMIT 14)
+ UNION (
+ SELECT smw_title AS val,
'".mysql_real_escape_string(wfMsg("fptc-categoryname"))."' AS att
FROM ".$dbr->tableName("smw_ids")."
WHERE smw_title LIKE
'%".mysql_real_escape_string($currentSearchValue)."%'
AND smw_namespace = 14
@@ -247,7 +258,8 @@
// Context menu
$wgOut->addHTML(
- '<ul id="fptc_contextMenu" class="contextMenu">
+ '<div id="fptc_baseAttribute"
style="display:none">' . $attribute . '</div>
+ <ul id="fptc_contextMenu" class="contextMenu">
<li class="browse">
<a href="#browse">' . wfMsg(
'fptc-context-menu-browse' ) . '</a>
</li>
@@ -284,32 +296,39 @@
private function printTag( Tag $tag, $attribute ) {
global $wgOut;
- $wgOut->addHTML(
+ if ($attribute == wfMsg( 'fptc-categoryname' )) {
+ $wgOut->addHTML(
sprintf(
- '<div class="fptc_tag"
style="font-size:%dpx;">%s</div>',
- $this->fontSizeMin + ( $this->fontSizeMax -
$this->fontSizeMin ) * $tag->getRate(),
- $attribute == wfMsg( 'fptc-categoryname' )
- ? $wgOut->parseInline(
+ '<div class="fptc_tag"
style="font-size:%dpx;">',
+ $this->fontSizeMin + ( $this->fontSizeMax -
$this->fontSizeMin ) * $tag->getRate()) .
+ $this->sandboxParse(
+ // $wgOut->parseInline(
sprintf(
'[[:%s:%s|%s]]',
self::CATEGORY_PAGE,
$tag->getValue(),
$tag->getValue()
)
- )
- : $wgOut->parseInline(
- sprintf(
- '[[:%s:%s/%s/%s|%s]]',
-
self::SPECIALPAGE_PREFIX,
-
self::ATTRIBUTE_VALUE_INDEX_SPECIALPAGE,
- $attribute,
- $tag->getValue(),
- $tag->getValue()
- )
- )
- )
- );
+ ) . '</div>');
+ } else {
+ $wgOut->addHTML(
+ sprintf('<div class="fptc_tag"
style="font-size:%dpx;">',
+ $this->fontSizeMin + ( $this->fontSizeMax -
$this->fontSizeMin ) * $tag->getRate()) .
+ html::element( 'a', array('href' =>
+ SpecialPage::getTitleFor(
self::ATTRIBUTE_VALUE_INDEX_SPECIALPAGE)->getLinkURL(
+ array('property' => $attribute, 'value'
=> $tag->getValue()))), $tag->getValue()) .
+ '</div>'
+ );
+ }
}
+
+ private function sandboxParse($wikiText) {
+ global $wgTitle, $wgUser;
+ $myParser = new Parser();
+ $myParserOptions = ParserOptions::newFromUser($wgUser);
+ $result = $myParser->parse($wikiText, $wgTitle,
$myParserOptions);
+ return $result->getText();
+ }
/**
* Prints the result of the search for attribute <code>attribute</code>
to
@@ -343,6 +362,7 @@
'<a href=' .
$possibleAttribute . '>' .
$possibleAttribute . '</a>'
);
+
if ( $w < count(
$proposal->getProposal() ) ) {
$wgOut->addHTML( ', ' );
}
Modified: trunk/extensions/FreqPatternTagCloud/freqpatterntagcloud.sql
===================================================================
--- trunk/extensions/FreqPatternTagCloud/freqpatterntagcloud.sql
2012-05-29 20:08:17 UTC (rev 115461)
+++ trunk/extensions/FreqPatternTagCloud/freqpatterntagcloud.sql
2012-05-30 14:22:08 UTC (rev 115462)
@@ -8,7 +8,7 @@
CREATE INDEX /*i*/p_id ON /*_*/fptc_associationrules (p_id);
CREATE TABLE IF NOT EXISTS /*_*/fptc_items (
- `o_id` INT(8) NOT NULL,
+ `o_id` varbinary(255) NOT NULL,
`rule_id` INT NOT NULL,
`item_order` TINYINT(1) NOT NULL,
PRIMARY KEY ( `o_id` , `rule_id` )
Modified: trunk/extensions/FreqPatternTagCloud/includes/FrequentPattern.php
===================================================================
--- trunk/extensions/FreqPatternTagCloud/includes/FrequentPattern.php
2012-05-29 20:08:17 UTC (rev 115461)
+++ trunk/extensions/FreqPatternTagCloud/includes/FrequentPattern.php
2012-05-30 14:22:08 UTC (rev 115462)
@@ -4,7 +4,7 @@
* Frequent Pattern Tag Cloud Plug-in
* Frequent pattern functions
*
- * @author Tobias Beck, University of Heidelberg
+ * @author Tobias Beck (TB), University of Heidelberg
* @author Andreas Fay, University of Heidelberg
* @version 1.0
*/
@@ -80,6 +80,10 @@
$res = $dbr->query("SELECT GROUP_CONCAT(DISTINCT o_id)
FROM
".$dbr->tableName("smw_rels2")."
WHERE p_id =
".mysql_real_escape_string($attributeId)."
+ GROUP BY p_id
+ UNION SELECT
GROUP_CONCAT(DISTINCT value_xsd)
+ FROM
".$dbr->tableName("smw_atts2")."
+ WHERE p_id =
".mysql_real_escape_string($attributeId)."
GROUP BY p_id");
}
$row = $res->fetchRow();
@@ -94,9 +98,15 @@
AND ids.smw_namespace = 14
GROUP BY catlinks.cl_from");
} else {
+ // TB: Table smw_rels2 and smw_atts2 are independent
because s_id appears only in one of both tables at a time
$res = $dbr->query("SELECT GROUP_CONCAT(o_id)
FROM
".$dbr->tableName("smw_rels2")."
WHERE p_id =
".mysql_real_escape_string($attributeId)."
+ GROUP BY s_id
+ UNION SELECT
GROUP_CONCAT(value_xsd)
+ FROM
".$dbr->tableName("smw_atts2")." As a
+ INNER JOIN
".$dbr->tableName("smw_ids")." AS i ON i.smw_id = a.p_id
+ WHERE (i.smw_namespace <> 102
OR length(i.smw_iw) = 0) AND p_id = ".mysql_real_escape_string($attributeId)."
GROUP BY s_id");
}
$transactions = array();
@@ -116,12 +126,12 @@
foreach ($rule->getAssumption() as $item) {
$dbw->query("INSERT INTO
".$dbw->tableName("fptc_items")." (o_id, rule_id, item_order)
- VALUES
(".mysql_real_escape_string($item).", ".mysql_real_escape_string($ruleId).",
0)");
+ VALUES
('".mysql_real_escape_string($item)."', ".mysql_real_escape_string($ruleId).",
0)");
}
foreach ($rule->getConclusion() as $item) {
$dbw->query("INSERT INTO
".$dbw->tableName("fptc_items")." (o_id, rule_id, item_order)
- VALUES
(".mysql_real_escape_string($item).", ".mysql_real_escape_string($ruleId).",
1)");
+ VALUES
('".mysql_real_escape_string($item)."', ".mysql_real_escape_string($ruleId).",
1)");
}
}
@@ -166,7 +176,8 @@
$attributeId = $row[0];
$res->free();
- // Get id of assumption
+ // Get id of assumption from table smw_ids
+ // TB: Or name of assumtion from table smw_atts2
if (wfMsg("fptc-categoryname") == $attribute) {
$res = $dbr->query("SELECT smw_id
FROM
".$dbr->tableName("smw_ids")."
@@ -174,11 +185,15 @@
AND smw_namespace = 14
AND LENGTH(smw_iw) = 0");
} else {
- $res = $dbr->query("SELECT smw_id
- FROM
".$dbr->tableName("smw_ids")."
- WHERE smw_title =
'".mysql_real_escape_string($assumption)."'
- AND smw_namespace = 0
- AND LENGTH(smw_iw) = 0");
+ $res = $dbr->query("(SELECT smw_id
+ FROM
".$dbr->tableName("smw_ids")."
+ WHERE smw_title =
'".mysql_real_escape_string($assumption)."'
+ AND smw_namespace = 0
+ AND LENGTH(smw_iw) = 0)
+ UNION
+ (SELECT a.value_xsd
FROM ".$dbr->tableName("smw_atts2")." AS a INNER JOIN
".$dbr->tableName("smw_ids")." AS i ON i.smw_id = a.p_id
+ WHERE (i.smw_namespace
<> 102 OR length(i.smw_iw) = 0) AND a.value_xsd =
'".mysql_real_escape_string($assumption)."')
+ ORDER BY smw_id desc");
}
$row = $res->fetchRow();
$assumptionId = $row[0];
@@ -189,18 +204,23 @@
FROM
".$dbr->tableName("fptc_associationrules")." rules,
".$dbr->tableName("fptc_items")." items
WHERE rules.rule_id = items.rule_id
AND item_order = 0
- AND o_id =
".mysql_real_escape_string($assumptionId)."
+ AND o_id =
'".mysql_real_escape_string($assumptionId)."'
AND NOT EXISTS( SELECT 1 FROM
".$dbr->tableName("fptc_items")." WHERE rule_id = rules.rule_id AND item_order
= 0 AND o_id != items.o_id )
ORDER BY rule_support DESC,
rule_confidence DESC");
$conclusions = array();
while ($row = $res->fetchRow()) {
// Get conclusions
- $resItems = $dbr->query("SELECT smw_title
+ $resItems = $dbr->query("(SELECT smw_title
FROM
".$dbr->tableName("smw_ids")." ids, ".$dbr->tableName("fptc_items")." items
WHERE ids.smw_id = items.o_id
AND item_order = 1
- AND rule_id =
".mysql_real_escape_string($row['rule_id']));
-
+ AND rule_id =
".mysql_real_escape_string($row['rule_id']).")
+ UNION
+ (SELECT value_xsd AS smw_title
FROM ".$dbr->tableName("smw_atts2")." atts2, ".$dbr->tableName("fptc_items")."
items
+ WHERE atts2.value_xsd =
items.o_id
+ AND item_order = 1
+ AND rule_id =
".mysql_real_escape_string($row['rule_id']).")");
+
// Only consider rules with single conclusion
if ($resItems->numRows() > 1) {
continue;
@@ -217,6 +237,7 @@
/**
* Shows all rules (for debugging purposes)
+ * TB: Attention, attribute types which are saved in table smw_atts2
are not yet considered here
*
* @return void
* @throws SQLException
Modified: trunk/extensions/FreqPatternTagCloud/includes/TagCloud.php
===================================================================
--- trunk/extensions/FreqPatternTagCloud/includes/TagCloud.php 2012-05-29
20:08:17 UTC (rev 115461)
+++ trunk/extensions/FreqPatternTagCloud/includes/TagCloud.php 2012-05-30
14:22:08 UTC (rev 115462)
@@ -4,7 +4,7 @@
* Frequent Pattern Tag Cloud Plug-in
* TagCloud
*
- * @author Tobias Beck, University of Heidelberg
+ * @author Tobias Beck (TB), University of Heidelberg
* @author Andreas Fay, University of Heidelberg
* @version 1.0
*/
@@ -94,9 +94,12 @@
$res = $dbr->query("SELECT SUM(cat_pages)
FROM
".$dbr->tableName("category"));
} else {
- $res = $dbr->query("SELECT COUNT(1)
- FROM
".$dbr->tableName("smw_rels2")."
- WHERE p_id =
".mysql_real_escape_string($this->_attributeId));
+ // TB: Select only relevant tags in table smw_atts2
through JOIN with table smw_ids
+ $res = $dbr->query("SELECT SUM(num)
+ FROM ((SELECT COUNT(1) num FROM
".$dbr->tableName("smw_rels2")." WHERE p_id =
".mysql_real_escape_string($this->_attributeId).")
+ UNION (SELECT COUNT(1) num FROM
".$dbr->tableName("smw_atts2")." AS a
+ INNER JOIN
".$dbr->tableName("smw_ids")." AS i ON i.smw_id = a.p_id
+ WHERE (i.smw_namespace
<> 102 OR length(i.smw_iw) = 0) AND p_id =
".mysql_real_escape_string($this->_attributeId).")) t");
}
$row = $res->fetchRow();
@@ -116,11 +119,17 @@
AND LENGTH(smw_iw) = 0
ORDER BY smw_title");
} else {
+ // TB: Get tags also from table smw_atts2
$res = $dbr->query("SELECT smw_id, smw_title, (SELECT
COUNT(1) FROM ".$dbr->tableName("smw_rels2")." WHERE o_id = smw_id AND p_id =
".mysql_real_escape_string($this->_attributeId).")/$numValues AS rate
- FROM
".$dbr->tableName("smw_ids")."
- WHERE smw_namespace = 0
- AND LENGTH(smw_iw) = 0
- AND smw_id <>
".mysql_real_escape_string($this->_attributeId)."
+ FROM
".$dbr->tableName("smw_ids")."
+ WHERE smw_namespace = 0
+ AND LENGTH(smw_iw) = 0
+ AND smw_id <>
".mysql_real_escape_string($this->_attributeId)."
+ UNION
+ SELECT 'atts2', a.value_xsd as
smw_title, (SELECT COUNT(1) FROM ".$dbr->tableName("smw_atts2")." WHERE
value_xsd = a.value_xsd AND p_id =
".mysql_real_escape_string($this->_attributeId).")/$numValues AS rate
+ FROM
".$dbr->tableName("smw_atts2")." AS a INNER JOIN
+
".$dbr->tableName("smw_ids")." AS i ON i.smw_id = a.p_id
+ WHERE (i.smw_namespace
<> 102 OR length(i.smw_iw) = 0) AND p_id =
".mysql_real_escape_string($this->_attributeId)."
ORDER BY smw_title");
}
Modified:
trunk/extensions/FreqPatternTagCloud/includes/computation/FrequentPatternAlgorithm.php
===================================================================
---
trunk/extensions/FreqPatternTagCloud/includes/computation/FrequentPatternAlgorithm.php
2012-05-29 20:08:17 UTC (rev 115461)
+++
trunk/extensions/FreqPatternTagCloud/includes/computation/FrequentPatternAlgorithm.php
2012-05-30 14:22:08 UTC (rev 115462)
@@ -26,7 +26,8 @@
$numerator = 0;
$denominator = 0;
foreach ($transactions as $transaction) {
- // For each occurrence of the assumption -> increase
denominator
+ set_time_limit(0);
+ // For each occurence of the assumption -> increase
denominator
// If the conclusion occurs too -> increase numerator
// Check if transaction contains assumption
@@ -84,7 +85,8 @@
$count = count($itemset);
$members = pow(2,$count);
$powerset = array();
- for ($i = 0; $i < $members; $i++) {
+ for ($i = 0; $i < $members; $i++) {
+ set_time_limit(0);
$b = sprintf("%0".$count."b",$i);
$out = array();
for ($j = 0; $j < $count; $j++) {
@@ -122,6 +124,7 @@
// Generate subset A of X where X is frequent itemset
such that A => (X-A)
foreach ($this->computePowerSet($itemset->getItems())
as $subsetOfX) {
+ set_time_limit(0);
if (count($subsetOfX) == 0 || $subsetOfX ==
$itemset->getItems()) {
// Ignore empty set and identity
continue;
Modified:
trunk/extensions/FreqPatternTagCloud/includes/computation/FrequentPatternApriori.php
===================================================================
---
trunk/extensions/FreqPatternTagCloud/includes/computation/FrequentPatternApriori.php
2012-05-29 20:08:17 UTC (rev 115461)
+++
trunk/extensions/FreqPatternTagCloud/includes/computation/FrequentPatternApriori.php
2012-05-30 14:22:08 UTC (rev 115462)
@@ -21,55 +21,58 @@
return array();
}
else {
- // Get all 1-frequent itemsets
- foreach ($items as $item) {
- $freq = 0;
- foreach ($transactions as $transaction) {
- if (in_array($item, $transaction)) {
- $freq++;
- }
- }
-
- if ((float)$freq / $numTransactions >= $minSupport) {
- $allFrequentItemsets[] = new
FrequentItemset(array($item), (float)$freq / $numTransactions);
- }
- }
-
- // Now compute all k-frequent itemsets
- $freqK_1Itemsets = $allFrequentItemsets;
- while (count($freqK_1Itemsets) > 0) {
- $freqKItemsets =
$this->generateCandidates($freqK_1Itemsets);
-
- $freqK_1Itemsets = array();
-
- // Check support for each candidate
- foreach ($freqKItemsets as $freqItemset) {
+ // Get all 1-frequent itemsets
+ foreach ($items as $item) {
+ set_time_limit(0);
$freq = 0;
foreach ($transactions as $transaction) {
- $inArray = true;
- foreach ($freqItemset->getItems() as
$item) {
- if (!in_array($item,
$transaction)) {
- $inArray = false;
- break;
- }
- }
-
- if ($inArray) {
+ if (in_array($item, $transaction)) {
$freq++;
}
}
if ((float)$freq / $numTransactions >=
$minSupport) {
- $freqItemset->setSupport((float)$freq /
$numTransactions);
- $freqK_1Itemsets[] =
$allFrequentItemsets[] = $freqItemset;
- } else {
- unset($freqItemset);
+ $allFrequentItemsets[] = new
FrequentItemset(array($item), (float)$freq / $numTransactions);
}
}
+
+ // Now compute all k-frequent itemsets
+ $freqK_1Itemsets = $allFrequentItemsets;
+ while (count($freqK_1Itemsets) > 0) {
+ $freqKItemsets =
$this->generateCandidates($freqK_1Itemsets);
+
+ $freqK_1Itemsets = array();
+
+ // Check support for each candidate
+ foreach ($freqKItemsets as $freqItemset) {
+ set_time_limit(0);
+ $freq = 0;
+ foreach ($transactions as $transaction)
{
+ set_time_limit(0);
+ $inArray = true;
+ foreach
($freqItemset->getItems() as $item) {
+ if (!in_array($item,
$transaction)) {
+ $inArray =
false;
+ break;
+ }
+ }
+
+ if ($inArray) {
+ $freq++;
+ }
+ }
+
+ if ((float)$freq / $numTransactions >=
$minSupport) {
+
$freqItemset->setSupport((float)$freq / $numTransactions);
+ $freqK_1Itemsets[] =
$allFrequentItemsets[] = $freqItemset;
+ } else {
+ unset($freqItemset);
+ }
+ }
+ }
+
+ return $allFrequentItemsets;
}
-
- return $allFrequentItemsets;
- }
}
@@ -85,6 +88,7 @@
$freqItemsetA = $freqK_1Itemsets[$a];
for ($b = $a + 1; $b < count($freqK_1Itemsets); $b++) {
+ set_time_limit(0);
$freqItemsetB = $freqK_1Itemsets[$b];
// Check whether they have i=k-2 items in common
Added: trunk/extensions/FreqPatternTagCloud/javascripts/jquery.parseJSON.js
===================================================================
--- trunk/extensions/FreqPatternTagCloud/javascripts/jquery.parseJSON.js
(rev 0)
+++ trunk/extensions/FreqPatternTagCloud/javascripts/jquery.parseJSON.js
2012-05-30 14:22:08 UTC (rev 115462)
@@ -0,0 +1,36 @@
+jQuery( document ).ready( function( $ ) {
+
+/**
+ * Frequent Pattern Tag Cloud Plug-in
+ * Addition of parseJSON for older jQuery versions
+ *
+ * @author Tobias Beck, University of Heidelberg
+ * @author Andreas Fay, University of Heidelberg
+ * @version 1.0
+ */
+
+/**
+ * Enable parseJSON
+ */
+ if (!$j.parseJSON) { ( function() {
+ $j.extend({
+ parseJSON: function( data ) {
+ if ( typeof data !== "string" || !data ) {
+ return null;
+ }
+ data = jQuery.trim( data );
+ if (
/^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
+
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
"]")
+ .replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {
+ return window.JSON && window.JSON.parse ?
+ window.JSON.parse( data ) :
+ (new Function("return " + data))();
+ } else {
+ jQuery.error( "Invalid JSON: " + data );
+ }
+ }
+ });
+
+ })(jQuery);
+}
+});
Property changes on:
trunk/extensions/FreqPatternTagCloud/javascripts/jquery.parseJSON.js
___________________________________________________________________
Added: svn:eol-style
+ native
Modified: trunk/extensions/FreqPatternTagCloud/javascripts/main.js
===================================================================
--- trunk/extensions/FreqPatternTagCloud/javascripts/main.js 2012-05-29
20:08:17 UTC (rev 115461)
+++ trunk/extensions/FreqPatternTagCloud/javascripts/main.js 2012-05-30
14:22:08 UTC (rev 115462)
@@ -2,7 +2,7 @@
* Frequent Pattern Tag Cloud Plug-in
* Main javascript
*
- * @author Tobias Beck, University of Heidelberg
+ * @author Tobias Beck (TB), University of Heidelberg
* @author Andreas Fay, University of Heidelberg
* @version 1.0
*/
@@ -28,7 +28,7 @@
}
});
- var attribute = $j("#fptc_attributeName").val();
+ var attribute = $j("#fptc_baseAttribute").text();
// Context menu for tag cloud
$j(".fptc_tag a").contextMenu({
@@ -46,9 +46,14 @@
}
}, function(action, el, pos, menu) {
if (action == "browse") {
- window.location = el.attr("href");
+ window.location = el.attr("href");
} else if (action == "browse_similar_tag") {
- window.location = el.attr("href").replace(new
RegExp(encodeURI(el.text())), menu.attr("title"));
+ // TB: Changes due to the support of all attribute types
+ var newDirName = menu.attr("title");
+ var oldDirName = el.text();
+ // Construct the corresponding URL
+ // window.location = el.attr("href").replace(new
RegExp(encodeURI(el.text())), menu.attr("title"));
+ window.location = el.attr("href").replace(oldDirName,
newDirName);
}
});
@@ -62,4 +67,4 @@
});
}
});
-});
\ No newline at end of file
+});
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs