Xhprof generates this data now. Custom profiling of various
sub-function units are kept.
Calls to profiler represented about 3% of page execution
time on Special:BlankPage (1.5% in/out); after this change
it's down to about 0.98% of page execution time.
Change-Id: Id9a1dc9d8f80bbd52e42226b724a1e1213d07af7
I've spent several hours looking at related code and I still can't
remember which direction is 'true' and which is 'false'.
Change-Id: I58694f7a0892c986e7215f59b56b014cece8d40d
* Create a CSS module for pager styling (table and navigation),
pulling in existing styles for shared.css. Load it on all pages
where the pager itself is shown.
* Build a ParserOutput object encapsulating the return HTML and
required modules, rather than only providing the HTML. Added some
hacks for backwards-compatibility with old-style calls and
soft-deprecated them (there are many usages in extensions).
Other cleanup:
* Remove styles in oldshared.css, they were all overwritten by
shared.css or by styles for .mw-datatable.
* Remove inline styles where possible, explain them where impossible.
* On SpecialListFiles, display navigation bar above the table as well
as below (this seems to be the convention for other pages).
Change-Id: Iae976f854b96b5c61691918787c4dff7db089c28
* Do not use it when not actually using the TablePager
* Always use it when actually using the TablePager
* Use parent::getTableClass() rather than hardcoding it every time
* Place it before other classes to allow overriding
Change-Id: I042b65be64e2c2fa6c68a7bb972a7a2ea7f55b4e
Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.
Also added some missing @param.
Change-Id: Icf6f36bb53322b39cd5c89523dbd0e4ab10b9ec9
Callers should use SpecialPage::getPageTitle, which is
exactly identical.
This is so that in the future we can turn SpecialPage
into a ContextSource, which requires getTitle to return
getContext()->getTitle.
Change-Id: Icdcf5d5295ef5e7f08b1d403e0c123f78738fd40
Doxygen expects parameter types to come before the
parameter name in @param tags. Used a quick regex
to switch everything around where possible. This
only fixes cases where a primitve variable (or a
primitive followed by other types) is the variable
type. Other cases will need to be fixed manually.
Change-Id: Ic59fd20856eb0489d70f3469a56ebce0efb3db13
Having all group mapping for Special:SpecialPages in the global
$wgSpecialPageGroups is not a good OO style.
Created a method SpecialPage::getGroupName, which than can be overridden
by each subclasses to the featured group name.
Added also SpecialPage::getFinalGroupName to get the groupname on
Special:SpecialPages to handle the customization and
to keep $wgSpecialPageGroups for b/c
Change-Id: I1de3a186f0a59ec5ecb8996c5f805cf164e9637f
Special:BlockList and Special:ListFiles showing comments inside a table
cell. In that case the parentheses not needed, because the table cell
splits it from the rest. Using the Linker method, which does not produce
the parentheses.
The file history of an file pages does this the same way.
Change-Id: I7fbb068bd2acd90f8117719706c32ca05b27b09f
This introduce the syntax from aliased table names for aliased field
names into the abstract database layer:
array( 'alias' => 'field' ) gives 'field AS alias'
This patch also includes changes to query pages, api and some more
places to show, how the new syntax looks in "production".
This allow us to remove the "AS" for Non-PostgreSQL databases, if we
want that.
Change-Id: I5f0de1c2f29092c173aec3de93ffdef436799e8d
Okay so essentially this is a workaround for a 1.18 release blocker, and is not a real solution. The real solution is to rework the Pager class to work with HTMLForm and then move the form for BlockList into the BlockListPager. I'll have that done before 1.19.
* Removed OutputPage::setPageTitleMsg() and OutputPage::setHTMLTitleMsg() and make OutputPage::setPageTitle() and OutputPage::setHTMLTitle() accept a Message object
* Updated core calls (including some that I missed last time because of non-matching case)
* Added Message::setContext() and use it in RequestContext so that I don't need to duplicate the call in OutputPage
* Yes, I'm calling $this->msg() on places and then setting the context one more time in OutputPage::setPageTitle() or OutputPage::setHTMLTitle(), but at least I won't be confused about which objects $
* Updated special pages using IndexPager or one if its subclasses to pass the context object and use it instead of global variables
* Call Linker methods statically
* Changed LogPager::getUser() to LogPager::getAuthor() to avoid conflict with ContextSource::getUser()