Last modified: 2011-11-17 23:29:15 UTC
On Commons, eg when typing "Coins" there are suggestions like "Coins+of+Caligula" which do not exist. They don't have a category-namespace page and it doesn't have any members: mysql> select * from category where cat_title like 'Coins+%'\G cat_id: 8834485 cat_title: Coins+of+Caligula cat_pages: 0 cat_subcats: 0 cat_files: 0 cat_hidden: 0 1 row in set (0.00 sec)
*** Bug 30880 has been marked as a duplicate of this bug. ***
Same problem here. It suggests "Test123" and other strange stuff that was either deleted or never existed as a category.
Confirmed on Commons by typing "Test" → Test123 is suggested and even blue linked!
from dev chat: it suggests apparently all categories which have ever been used (that doesn't mean that the cat pages need to have been existent)
The API returns stuff that UW doesn't care about. The right solution is probably to add a config option that disables suggestion of categories that lack a description page. Then, call one of: list=allpages&apnamespace=14&apprefix=foo list=allcategories&apnamespace=14&apprefix=foo depending on how that config var is set. (note to self: in mw.ApiCategory.js line 46 or so)
Suggested way to proceed. 1 -- change the API call to use parameters not like this: action=query&generator=allcategories&gacprefix=Test&prop=info but like this &apnamespace=14&apprefix=foo Which tests for pages in the Category namespace -- subtly different from looking to see if something is in the Category table. If that is efficient enough. Note that 14 is the usual namespace for categories but it should be obtained from config. 2 -- if a category was not found via API, render it as red in the interface. We already are checking if the category exists (a dialog box is thrown up to ask if the user is really sure) so this should not be difficult
Okay, we now only suggest categories that have description pages. See r103523