Index: /MediaWiki/trunk/FCKeditor.php =================================================================== --- /MediaWiki/trunk/FCKeditor.php (revision 3190) +++ /MediaWiki/trunk/FCKeditor.php (revision 3191) @@ -76,4 +76,5 @@ $wgAjaxExportList[] = 'wfSajaxSearchImageFCKeditor'; $wgAjaxExportList[] = 'wfSajaxSearchArticleFCKeditor'; +$wgAjaxExportList[] = 'wfSajaxSearchCategoryFCKeditor'; $wgAjaxExportList[] = 'wfSajaxWikiToHTML'; $wgAjaxExportList[] = 'wfSajaxGetImageUrl'; Index: /MediaWiki/trunk/FCKeditorSajax.body.php =================================================================== --- /MediaWiki/trunk/FCKeditorSajax.body.php (revision 3190) +++ /MediaWiki/trunk/FCKeditorSajax.body.php (revision 3191) @@ -165,4 +165,54 @@ } +function wfSajaxSearchCategoryFCKeditor() +{ + global $wgContLang, $wgOut; + $ns = NS_CATEGORY; + $db =& wfGetDB( DB_SLAVE ); + $m_sql="SELECT tmpSelectCat1.cl_to AS title FROM ".$db->tableName('categorylinks')." AS tmpSelectCat1 ". + "LEFT JOIN ".$db->tableName('page')." AS tmpSelectCatPage ON ( tmpSelectCat1.cl_to = tmpSelectCatPage.page_title ". + "AND tmpSelectCatPage.page_namespace =$ns ) ". + "LEFT JOIN ".$db->tableName('categorylinks')." AS tmpSelectCat2 ON tmpSelectCatPage.page_id = tmpSelectCat2.cl_from ". + "WHERE tmpSelectCat2.cl_from IS NULL GROUP BY tmpSelectCat1.cl_to"; + + $res = $db->query($m_sql,__METHOD__ ); + + $ret = ""; + $i=0; + while ( ( $row = $db->fetchObject( $res ) ) ) { + $ret .= $row->title ."\n"; + $sub = explode("\n",wfSajaxSearchCategoryChildrenFCKeditor($row->title)); + foreach($sub as $subrow)if(strlen($subrow)>0)$ret.=" ".$subrow."\n"; + } + + return $ret; +} + +function wfSajaxSearchCategoryChildrenFCKeditor($m_root) +{ + global $wgContLang, $wgOut; + $limit = 50; + $ns = NS_CATEGORY; + $m_root = str_replace("'","\'",$m_root); + $db =& wfGetDB( DB_SLAVE ); + $m_sql ="SELECT tmpSelectCatPage.page_title AS title FROM ".$db->tableName('categorylinks')." AS tmpSelectCat ". + "LEFT JOIN ".$db->tableName('page')." AS tmpSelectCatPage ON tmpSelectCat.cl_from = tmpSelectCatPage.page_id ". + "WHERE tmpSelectCat.cl_to LIKE '$m_root' AND tmpSelectCatPage.page_namespace = $ns"; + + + $res = $db->query($m_sql,__METHOD__ ); + + $ret = ""; + $i=0; + while ( ( $row = $db->fetchObject( $res ) ) ) { + $ret .= $row->title ."\n"; + $sub = explode("\n",wfSajaxSearchCategoryChildrenFCKeditor($row->title)); + foreach($sub as $subrow)if(strlen($subrow)>0)$ret.=" ".$subrow."\n"; + + } + + return $ret; +} + function wfSajaxSearchTemplateFCKeditor($empty) { global $wgContLang, $wgOut; Index: /MediaWiki/trunk/fckeditor_config.js =================================================================== --- /MediaWiki/trunk/fckeditor_config.js (revision 3190) +++ /MediaWiki/trunk/fckeditor_config.js (revision 3191) @@ -13,5 +13,5 @@ ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'], ['SpecialChar','Table','Image','Rule'], - ['MW_Template','MW_Special','MW_Ref','MW_References','MW_Math'], + ['MW_Template','MW_Special','MW_Ref','MW_References','MW_Math','Category'], '/', ['FontFormat'], Index: /MediaWiki/trunk/plugins/mediawiki/dialogs/category.html =================================================================== --- /MediaWiki/trunk/plugins/mediawiki/dialogs/category.html (revision 3191) +++ /MediaWiki/trunk/plugins/mediawiki/dialogs/category.html (revision 3191) @@ -0,0 +1,395 @@ + + + +
+