Commit graph

272 commits

Author SHA1 Message Date
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
tjhunt
5c5418fe9d Further fixes to PHPdoc comments. 2009-06-15 04:03:59 +00:00
tjhunt
2c144fc308 Further fixes to PHPdoc comments. 2009-06-15 03:54:00 +00:00
tjhunt
cf6155226c ajaxlib/require_js: MDL-16693 $PAGE->requires->... deprecates require_js etc.
There is a new implementation of require_js in lib/deprecatedlib.php,
based on $PAGE->requires.

There were a few other recently introduced functions in lib/weblib.php,
namely print_js_call, print_delayed_js_call, print_js_config and
standard_js_config. These have been removed, since they were never in
a stable branch, and all the places that used them have been changed
to use the newer $PAGE->requires->... methods.

get_require_js_code is also gone, and the evil places that were calling
it, even though it is an internal function, have been fixed.

Also, I made some minor improvements to the code I committed yesterday
for MDL-16695.

All that remains is to update all the places in core code that are
still using require_js.

(This commit also fixes the problem where the admin tree would not
start with the right categories expanded.)
2009-06-12 12:13:07 +00:00
tjhunt
b2330db606 ajaxlib: MDL-16695 New page_requirements_manager class. Soon to replace require_js.
This new class does the work that require_js used to do, and more.
It can track a number of different things that may be required to
be output somewhere on the page, including:

    * Links to JS files
    * Links to CSS files
    * Links to YUI libraries (this class knows about the dependancies between the different libs).
    * Skip links that go from the top of <body> to various places in the content.
    * Calls to JavaScript functions (for example to initialise things)
    * Bits of data from PHP that need to be available to JavaScript
    * As a special case of that, an easy way to pass language strings to JS.

The new API looks like

$PAGE->requires->css('mod/mymod/styles.css');
$PAGE->requires->js('mod/mymod/script.js');
$PAGE->requires->js('mod/mymod/small_but_urgent.js')->in_head();
$PAGE->requires->js_function_call('init_mymod', array($data))->on_dom_ready();

$PAGE->requires is the canonical instances of this new class.

The commit also includes unit tests, and hopefully the PHP doc comments are
clear enough that it is easy to understand.
2009-06-12 03:13:29 +00:00
samhemelryk
50fcb1d835 lib MDL-19236 Added boilerplates and copyrights 2009-05-26 03:23:32 +00:00
tjhunt
f474a4e583 blocks: MDL-19010 Fix further blocks-related breakage, including removing all references to blocks_insance_old outside blocklib.php 2009-05-07 08:55:10 +00:00
tjhunt
9d1d606e0d blocklib: MDL-19010 fix new install.
* Fix the blocks bit of build_context_path
* Replace blocks_repopulate_page
* Make starting_output work during setup
2009-05-07 07:05:22 +00:00
tjhunt
e3bd4690e0 blocklib: MDL-19010 move the check for whether the right database tables exist - and we no longer need this global. 2009-05-07 02:57:39 +00:00
tjhunt
d19e819597 blocklib: MDL-19010 move the check for whether the right database tables exist to a place where it is better encapsulated. 2009-05-07 02:56:48 +00:00
nicolasconnault
0a75f205cb MDL-19010 Only output blocks after upgrade 2009-05-06 10:49:49 +00:00
tjhunt
b7b2d0f37d moodle_page: MDL-12212 improve comments and add some work-in-progress warnings 2009-05-06 09:29:05 +00:00
tjhunt
b80856bd6e moodle_page: MDL-12212 add a couple more useful classes to body 2009-05-06 09:28:06 +00:00
tjhunt
a132617056 moodle_page: MDL-12212 add a couple more useful classes to body 2009-05-06 09:27:16 +00:00
tjhunt
3681f9a953 pagelib: MDL-12212 eliminate data_page 2009-05-06 09:26:46 +00:00
tjhunt
c85acc871f pagelib: MDL-12212 eliminate chat_page 2009-05-06 09:25:54 +00:00
tjhunt
5d3e9d9fe3 moodle_page: MDL-12212 remove deprecated calls from course/view.php and page_course::print_header 2009-05-06 09:19:46 +00:00
tjhunt
bb46a4fa2a blocklib: MDL-19010 refactor blocklib to use block_manager to get the blocks for rendering 2009-05-06 09:15:05 +00:00
tjhunt
08eab89703 blocklib: MDL-19010 add block and get_blocks methods 2009-05-06 09:14:42 +00:00
tjhunt
86b5ea0f85 blocklib: MDL-19010 start of block_manager - get and set regions 2009-05-06 09:14:01 +00:00
tjhunt
f8b80dbd95 moodle_page: MDL-12212 completely remove the old tag and admin page classes 2009-05-06 09:11:07 +00:00
tjhunt
5ed70539f9 moodle_page: MDL-12212 ->subpage field 2009-05-06 09:03:49 +00:00
tjhunt
5ec434a9c2 moodle_page: MDL-12212 ->cm and ->activityrecord fields 2009-05-06 09:03:33 +00:00
tjhunt
0d5890c45d moodle_page: MDL-12212 deprecate more of the legacy page machinery, and avoid overwriting $PAGE ever 2009-05-06 09:03:03 +00:00
tjhunt
cfcfb9f3d0 moodle_page: MDL-12212 kill legacy page_allows_editing implementations 2009-05-06 09:02:48 +00:00
tjhunt
934524d70b moodle_page: MDL-12212 new implementation of user_allowed_editing 2009-05-06 09:01:42 +00:00
tjhunt
60dfb02a02 moodle_page: MDL-12212 Unbreak home page when editing is on 2009-05-06 09:00:58 +00:00
tjhunt
830dd6e9cd moodle_page: MDL-12212 reimplement user_is_editing, deprecate isediting 2009-05-06 08:59:29 +00:00
tjhunt
d7f688d46a moodle_page: MDL-12212 eliminate page::edit_always 2009-05-06 08:56:44 +00:00
tjhunt
ad52c04f4c moodle_page: MDL-12212 Kill legacy url_... and blocks_... methods
Start calling $PAGE->set_url in all the places it will be necessary
Start of a stub implementation of $PAGE->blocks to stop other things breaking
Remove some of the special case methods in admin_page
2009-05-06 08:55:53 +00:00
tjhunt
4873f5f709 moodle_page: MDL-12212 Eliminate legacy blocks_ methods
moving blocks will now be broken until the new bockslib is done
2009-05-06 08:53:14 +00:00
tjhunt
75781f879c moodle_page: MDL-12212 ->url and cleanup init of $FULLME, etc. 2009-05-06 08:50:32 +00:00
tjhunt
82611d8d33 moodle_page: MDL-12212 ->docspath 2009-05-06 08:48:13 +00:00
tjhunt
d7ab887938 moodle_page: MDL-14306 (part of MDL-12212) class name on body with ->category
If ->allowcategorythemes is set, includes all parent categories too
2009-05-06 08:46:48 +00:00
tjhunt
948203a5e8 moodle_page: MDL-12212 ->category and ->categories 2009-05-06 08:46:05 +00:00
tjhunt
89fbdca300 moodle_page: MDL-14305 (and MDL-12212) class on body based on ->wwwroot 2009-05-06 08:44:58 +00:00
tjhunt
ad5d5997ed moodle_page: MDL-12212 more ->pagepaths to kill 2009-05-06 08:43:51 +00:00
tjhunt
753debd2ab moodle_page: MDL-12212 ->bodyclasses and initialise_standard_body_classes 2009-05-06 08:42:13 +00:00
tjhunt
e88462a055 moodle_page: MDL-12212 eliminate the two different interpretations of
pagetype
2009-05-06 08:41:02 +00:00
tjhunt
d529807a65 moodle_page: MDL-12212 kill $CFG->pagepath (use $PAGE->set_pagetype)
deprecate $PAGE->get_format_name (use $PAGE->pagetype)
deprecate page_id_and_class (use $PAGE->pagetype)
2009-05-06 08:38:55 +00:00
tjhunt
f73102864a moodle_page: MDL-12212 eliminate two old methods that were never used 2009-05-06 08:36:18 +00:00
tjhunt
31940ba622 moodle_page: MDL-12212 remove code in legacy page types that stores a course record 2009-05-06 08:35:39 +00:00
tjhunt
f230ce19ea moodle_page: MDL-12212 implement ->pagetype 2009-05-06 08:34:32 +00:00
tjhunt
2afe21eea3 moodle_page: MDL-12212 implement ->context 2009-05-06 08:30:25 +00:00
tjhunt
c13a5e71cc moodle_page: MDL-12212 start of new moodle_page class
* has course and status fields
* $PAGE->status updated by print_header and footer
* $PAGE->set_course now replace course_setup function
* global $PAGE created in setup.php
* unit tests for functionality so far
* Moodle still seems to work after this commit!
2009-05-06 08:29:22 +00:00
tjhunt
de60de044c moodle_page: MDL-12212 deprecate page_import_types and clean up file 2009-05-06 08:27:12 +00:00
tjhunt
56eeebdf81 pagelib: Fixing start-of-file comments in CVS to avoid merge problems when I switch to git. 2009-04-15 03:24:25 +00:00
skodak
775f811a66 MDL-16002 rewritten upgrade locking and better upgrade progress tracking; MDL-16070 Do not use $a[0] syntax in lang packs + various other upgrade improvements and fixes 2008-08-16 12:16:01 +00:00
skodak
b3829d0a55 MDL-14679 towards notes conversion and regression 2008-05-31 17:44:57 +00:00
skodak
4a991ae33e MDL-14679 finished pagelib conversion 2008-05-30 20:02:55 +00:00