Extension talk:CategoryLink
Latest comment: 14 years ago by Kyle van der Meer in topic Archive
Archive
editI archived discussion relating to the older version Kyle van der Meer 16:42, 10 February 2010 (UTC)
Forked code (refactored, more configurable)
editHi Kyle, thanks for this extension. I needed to fork it for my purposes and thought you and your users might find it usefull. All I did is that I threw out dependecy on external CSS, cleaned the main cycle and added few variables for strings. Use it as you wish. My changed printcategorylinks() function looks like this:
function printcategorylinks() { /* begin config */ $columns = 3;//change this number to the number of columns you want. $html_list_begin = "\n\t\t".'<table class="category_link">'; $html_list_end = "\n\t\t".'</table>'; $html_line_begin = "\n\t\t\t".'<tr>'; $html_line_end = "\n\t\t\t".'</tr>'; $html_cell_begin = "\n\t\t\t\t".'<td style="vertical-align: top; padding-right: 20px; font-size: 120%;">'; $html_cell_end = '</td>'; $html_emptycell_placeholder = "<span class=\"empty\"> </span>"; /* end config */ global $wgDBuser,$wgDBpassword, $wgDBname,$wgDBserver,$IP, $wgDBprefix; $link = mysql_connect($wgDBserver, $wgDBuser, $wgDBpassword) or die('Could not connect: ' . mysql_error()); mysql_select_db($wgDBname) or die('Could not select database'); $query = 'SELECT DISTINCT cl_to FROM '.$wgDBprefix.'categorylinks'; $result = mysql_query($query) or die('Query failed: ' . mysql_error()); $cell_count = 0; $output = $html_list_begin; $output .= $html_line_begin; while($row = mysql_fetch_row($result)) { $category_code = $row[0]; $category_name = preg_replace("/_/"," ",$row[0]); $output .= $html_cell_begin."\n\t\t\t\t".'<a href="../index.php/Category:'.$category_code.'">'.$category_name."</a>".$html_cell_end; $cell_count++; if($cell_count%$columns==0) $output .= $html_line_end.$html_line_begin; } for($i=($columns - $cell_count%$columns)%$columns; $i>0; $i--) $output .= $html_cell_begin . $html_emptycell_placeholder . $html_cell_end; $output .= $html_line_end; $output .= $html_list_end; return (''.$output.''); }