Commit graph

315 commits

Author SHA1 Message Date
tjhunt
3aaa27f4cd output: MDL-19690 allow for .png or .gif in $OUTPUT->mod/old_icon_url 2009-07-02 09:28:19 +00:00
tjhunt
ebebf55cad output: MDL-19690 icon_finder classes and $OUTPUT->mod/old_icon_url
This is ready to replace $CFG->pixpath and $CFG->modpixpath soon.
2009-07-02 08:49:25 +00:00
tjhunt
db8d89d822 MDL-19077 I just found a way to reduce the coupling between the classes. 2009-07-02 07:06:25 +00:00
tjhunt
b70094743a themes: MDL-19077 change how the theme is initialised and CSS is served.
This is part of http://docs.moodle.org/en/Development:Theme_engines_for_Moodle%3F

$THEME is now initialised at the same time as $OUTPUT. Old functions like
theme_setup are deprecated in favour of methods on $PAGE. There is a new
theme_config class in outputlib.php that deals with loading the theme config.php file.

CSS used to be served by themes styles.php files calling a function in weblib.php.
Now it works by each theme's styles.php file doing
$themename = basename(dirname(__FILE__));
require_once(dirname(__FILE__) . '/../../theme/styles.php');
which is less code to be copied into each theme. (Old-style styles.php files still
work thanks to some code in deprecatedlib.php.)

Admin UI for choosing a theme cleaned up.

A couple of theme-specific hard-coded hacks like $THEME->cssconstants and
$THEME->CSSEdit have been replaced by a more generic $THEME->customcssoutputfunction
hook. See examples at the end of outputlib.php

Also:
* Fix setting the theme in the URL, which seems to have been broken since 1.9.
* Fix up errors on a few pages caused by the new initialisation order.
* MDL-19097 moodle_page::set_course should not set $COURSE unless it is $PAGE.
* httpsrequired() from moodlelib.php moved to $PAGE->https_required().
* Move has_started() method to the renderer base class.
* Further fixes to display of early errors.
* Remove print_header/footer_old from weblib. I did not mean to commit them before.
2009-07-01 05:54:26 +00:00
samhemelryk
afa2dcad43 outputlib pagelib MDL-19236 Cleaned up PHPdocs on a couple of functions 2009-07-01 03:47:52 +00:00
samhemelryk
17a6649b95 output MDL-19077 Implemented periodic refresh to meta refresh by delay
Also created layout-popup.php for standardwhite theme to provide a simpler template
2009-06-30 07:57:41 +00:00
tjhunt
210dcb69ee XHTML strict 2009-06-30 06:00:12 +00:00
samhemelryk
b7337ab7ec outputlib MDL-19077 Fixed a typo I made in the has_started method 2009-06-30 02:58:09 +00:00
tjhunt
a5cb8d6987 MDL-19077 - Finish eliminating customcorners-specific code in core.
The custom-corners-specific code now in theme/customcornser/renderers.php
and lib/deprecatedlib.php.

Also, $CFG->pixpath is now causing more problems than ever. If it is
giving your problems, please call $OUTPUT->initialise_deprecated_cfg_pixpath()
as a temporary fix. As you can imagine, we are thinking about a better
long-term fix, which is why that method as a silly, and easy to grep name.
2009-06-29 08:17:31 +00:00
samhemelryk
e877532055 lib MDL-19077 Created output redirect method and implemented against weblib redirect method
This resolves the meta bug that was used when redirecting with a delay
Thanks Tim for the help with this one
2009-06-29 07:19:05 +00:00
tjhunt
c84a2dbea2 MDL-19077 - change how $OUTPUT is initialised.
Please read the comment at the top of bootstrap_renderer in setuplib.php
2009-06-29 05:00:45 +00:00
tjhunt
6e37fa50cb themes: MDL-19077 make a comment clearer. 2009-06-26 11:22:41 +00:00
tjhunt
34a2777ccb themes: MDL-19077 new $OUTPUT->header/footer to replace print_header/footer.
Also, part of the change from weblib.php functions to $OUTPUT-> methods.

This is part of http://docs.moodle.org/en/Development:Theme_engines_for_Moodle%3F

This is a big change, and the result is not perfect yet. Expect some debugging output
on some pages.

The main part of these changes are that $OUTPUT->header now looks for a file
in the theme called layout.php, rather than header.html and footer.html. Also
you can have special templates for certain pages like layout-home.php. There is
fallback code for Moodle 1.9 themes, so they still work.

A few of the old arguments to print_header are no longer supported. (You get an
exception if you try to use them.) Sam H will be cleaning those up.

All the weblib functions that have been replaced with $OUTPUT-> have version in
deprecatedlib, so existing code will go on working for the foreseeable future.
2009-06-26 09:06:16 +00:00
tjhunt
8954245a1b themes: MDL-19077 start implementing moodle_core_renderer
Only a couple of methods implemented. Please review the API and
tell me if you are not happy with the direction I am taking.
2009-06-23 10:41:22 +00:00
tjhunt
571fa82824 themes: MDL-19077 implement the renderer_factory instrastructure.
This is part of http://docs.moodle.org/en/Development:Theme_engines_for_Moodle%3F

The concept is that all the print_... functions in weblib get replaced  by methods
on a moodle_core_renderer class. Then, the theme can choose whether to
use the standard moodle_core_renderer class, or another implemenatation of
its own choosing, to generate different HTML.

Also, becuase Moodle is modular, we may need a moodle_mod_forum_renderer
and so on.

In order for the theme to be able to choose which renderers get created, we
introduce the concept  of a renderer factory, as in the factory design pattern.
The theme will choose which factory should be used, and that then creates
the renderer objects based on the module name.

This commit includes 4 types of factory:
* standard_renderer_factory
* custom_corners_renderer_factory
* theme_overridden_renderer_factory
* template_renderer_factory

All this with unit tests and PHP doc comments.

Note, this new code is not actually used yet. Still todo:
1. actually define the moodle_core_renderer class, and deprecate a lot of weblib functions.
2. make theme_setup initialise everything, so it is used.
2009-06-18 10:43:13 +00:00