Difference between revisions of "List-Cat.php"

From Organic Design wiki
(This was corrupting $title which is passed by ref)
Line 4: Line 4:
 
$db =& wfGetDB( DB_MASTER );
 
$db =& wfGetDB( DB_MASTER );
 
$subdb =& wfGetDB( DB_SLAVE );
 
$subdb =& wfGetDB( DB_SLAVE );
$cl = $db->tableName('categorylinks');
+
$cl = $db->tableName( 'categorylinks' );
$cur = $db->tableName('cur');
+
$cur = $db->tableName( 'cur' );
xwGetProperty($properties, 'list-cat', $cat);
+
xwGetProperty( $properties, 'list-cat', $cat );
$cat = str_replace(' ', '_', $cat);
+
$cat = str_replace( ' ', '_', $cat );
$article = trim($article)."\n";
+
$article = trim( $article )."\n";
$result = $db->query("SELECT cl_from,cl_sortkey FROM $cl WHERE cl_to = '$cat' ORDER BY cl_sortkey");
+
$result = $db->query( "SELECT cl_from,cl_sortkey FROM $cl WHERE cl_to = '$cat' ORDER BY cl_sortkey" );
while ($row = mysql_fetch_assoc($result)) {
+
while ( $row = mysql_fetch_assoc( $result ) ) {
 
$id = $row['cl_from'];
 
$id = $row['cl_from'];
$subresult = $subdb->query("SELECT cur_title,cur_namespace FROM $cur WHERE cur_id=$id");
+
$subresult = $subdb->query( "SELECT cur_title,cur_namespace FROM $cur WHERE cur_id=$id" );
if ($subrow = mysql_fetch_assoc($subresult)) {
+
if ( $subrow = mysql_fetch_assoc( $subresult ) ) {
$title = str_replace('_', ' ', $subrow['cur_title']);
+
$t = str_replace( '_', ' ', $subrow['cur_title'] );
if ($ns = $wgContLang->getNsText( $subrow['cur_namespace'] )) $title = "$ns:$title";
+
if ( $ns = $wgContLang->getNsText( $subrow['cur_namespace'] ) ) $t = "$ns:$t";
$anchor = str_replace('_', ' ', $row['cl_sortkey']);
+
$a = str_replace( '_', ' ', $row['cl_sortkey'] );
$anchor = ($title != $anchor) ? "|$anchor" : '';
+
$a = ( $t != $a ) ? "|$a" : '';
$title = preg_replace('/^(?=Category:)/', ':', $title);
+
$t = preg_replace( '/^(?=Category:)/', ':', $t );
$article .= "*[[$title$anchor]]\n";
+
$article .= "*[[$t$a]]\n";
 
}
 
}
 
}
 
}
 
?>
 
?>

Revision as of 08:51, 6 March 2006

<?

  1. Append article content with a list of article-names from category specified in properties

global $wgContLang; $db =& wfGetDB( DB_MASTER ); $subdb =& wfGetDB( DB_SLAVE ); $cl = $db->tableName( 'categorylinks' ); $cur = $db->tableName( 'cur' ); xwGetProperty( $properties, 'list-cat', $cat ); $cat = str_replace( ' ', '_', $cat ); $article = trim( $article )."\n"; $result = $db->query( "SELECT cl_from,cl_sortkey FROM $cl WHERE cl_to = '$cat' ORDER BY cl_sortkey" ); while ( $row = mysql_fetch_assoc( $result ) ) { $id = $row['cl_from']; $subresult = $subdb->query( "SELECT cur_title,cur_namespace FROM $cur WHERE cur_id=$id" ); if ( $subrow = mysql_fetch_assoc( $subresult ) ) { $t = str_replace( '_', ' ', $subrow['cur_title'] ); if ( $ns = $wgContLang->getNsText( $subrow['cur_namespace'] ) ) $t = "$ns:$t"; $a = str_replace( '_', ' ', $row['cl_sortkey'] ); $a = ( $t != $a ) ? "|$a" : ; $t = preg_replace( '/^(?=Category:)/', ':', $t ); $article .= "*$t$a\n"; } } ?>