blocks editing ui: MDL-19398 Can how precisely control block positioning using the edit icon
This mostly works now, but ...
* The UI needs further work. In particular we need a non-advanced mode.
* This only works for blocks that use a new edit_form.php to replace config_instance.html.
* .. and so far I have only implemented edit_form.php for the HTML block so far.
* Needs to be enabled (with no block-specific config) for blocks without instance config, so you can control their positioning.
MDL-16089 new general page type needed for framed resources, this is not accessible but unfortunately it works much better than object embedding; it will be also used by phpmyadmin integration
MDL-19755 print_table replaced with $OUTPUT->table
rowclass property has been deprecated, rowclasses should be used.
Direct assigning of the class has been deprecated,
moodle_html_elements::set_classes() should be used instead. In both
cases, debugging message is displayed.
block contexts: MDL-19098 every block should have a context
even non-course and sticky blocks.
The parent context is block_instances.parentcontextid.
The block context should be used for checking permissions directly
related to the block, like moodle/block:view or moodle/site:manageblocks.
However, if the block is displaying information about the current page,
for example the participants block showing who 'here', then it may be
better to use the context of the page where the bloack is appearing -
in other words $this->page->context - to check permissions about the
user's ability to see participants here.
Or, if the block is displaying something stronly related to courses,
for example, a course meny block, the block should probably use the
context for $this->page->course to check permissions.
!This is the correct version of the previous commit!
I was getting an interesting failure with $CFG->prefix commented
out in config.php (by mistake!). Abbreviated stack trace
lib/setup.php -> setup_DB -> dml_exception('prefixcannotbeempty') ->
get_string -> string_manager->__construct -> get_plugin_types
That loads lib.php from every module, which runs out of memeory.
I was getting an interesting failure with $CFG->prefix commented
out in config.php (by mistake!). Abbreviated stack trace
lib/setup.php -> setup_DB -> dml_exception('prefixcannotbeempty') ->
get_string -> string_manager->__construct -> get_plugin_types
That loads lib.php from every module, which runs out of memeory.
themes & blocks - MDL-19077 & MDL-19010 blocks are now printed by the theme
The code to print blocks in now in theme layout.php files. (Or in
moodle_core_renderer::handle_legacy_theme)
Code for printing blocks everywhere else has been stripped out.
(Total diffstat 1225 insertions, 2019 deletions)
The way the HTML for a block instance is generated has been cleaned
up a lot. Now, the block_instance generates a block_contents
object which gives a structured representation of the block,
and then $OUTPUT->block builds all the HTML from that.
How theme config.php files specify the layout template and block
regions by page general type has been changed to be even more flexible.
Further refinement for how the theme and block code gets initialised.
Ability for scrits to add 'pretend blocks' to the page. That is,
things that look like blocks, but are not normal block_instances.
(Like the add a new block UI.)
Things that are still broken:
* some pages in lesson, quiz and resource. I'm working on it.
* lots of developer debug notices pointing out things that
need to be updated.
The initial patch has been reviewed at the issue page. This commit also
fixes template_renderer_factory::get_renderer() and sets up folders for
subtypes there.
javascript-UFO MDL-19738 Stopped ufo.js being included in outputlib and included it in each place it was actually being used.
It will no only be loaded when it is being used. If something new comes along they will need to remember to require it.
At the same time cleaned up a few deprecated calls
lib MDL-19739 Moved call to include dropdown.js out of outputlib and into the same body of code in weblib
that uses it.
This ensures that it is only loaded if it is used, which is only is the browser is opera, or IE
filelib MDL-19707 Modified file_extension_icon to use extisting function mimeinfo and reverted
two uses of file_extension_icon in course-lib that were incorrect
javascript MDL-16673 Removed all removeable uses of CFG->javascript
In doing this I was able to eliminate the need for javascript.php files, now removed.
I will also be filing several subtasks to clean up the linked to JS files in OUTPUT as well
as all instance of the old style of focusing.