Commit graph

383 commits

Author SHA1 Message Date
Martin Dougiamas
02ba576c27 blocks/sticky MDL-21375 This patch allows frontpage blocks to be easily turned into SYSTEM-wide sticky blocks. There is still an outstanding problem about how to deal with SYSTEM blocks that are not sticky. I think these should also be seen on the front page all the time but I'm not sure. See the bug for discussion about this. 2010-01-19 10:07:52 +00:00
Petr Skoda
24e4119a09 MDL-21369 fixed regression, thanks Mark Johnson 2010-01-18 12:12:38 +00:00
Petr Skoda
bc0663abfb MDL-21233 fixed recent regression 2010-01-17 11:01:31 +00:00
Petr Skoda
8afba50b84 MDL-21233 get_query_string() is definitely not recommended in new code, instead use moodle_url constructors with proper parameters; removed some more legacy url concatenation operations; realized out_action is not needed often, because we shoudl pass arounf moodle_url instances instead of old url strings 2010-01-17 10:54:13 +00:00
Petr Skoda
b9bc201962 MDL-21233 escaped parameter is far more importatnt than the overrideparams in out() method - especially all JS urls should be converted to out(false); also it is possible to create new url with overrided parameters in constructor which might be actually work around the double encoding problems in the url (we should never use the out() in moodle_url constructor itself!) 2010-01-17 09:50:55 +00:00
Petr Skoda
eb7880654f MDL-21233 finally removed the omitquerystring parameters from the out method because: 1/ the least used parameter should nto be first, 2/ it is colliding with the other two paramters, now we have separate funtion for that instead 2010-01-17 09:37:30 +00:00
Petr Skoda
340d461269 MDL-21233 simplifying moodle_url->out() api 2010-01-17 09:18:11 +00:00
Petr Skoda
a4a04ada39 MDL-21233 removing sloppy out_returnurl() from public api, it is considered a bad practise to pass around urls through page parameters, sorry 2010-01-17 09:13:36 +00:00
Petr Skoda
191b267bcd MDL-20790 more page layouts -see base theme for full list; also added new css body class for describing current layout; base layout is now default for beter BC; require_login() now sets 'incourse' layout automatically 2009-12-27 12:02:04 +00:00
Petr Skoda
649cf95d0b MDL-21147 renamed find_renderer back to get_renderer() - there are no more collisions with those magic getters 2009-12-17 14:06:22 +00:00
Petr Skoda
56cbc53b76 MDL-21143 theme renderers related refactoring, it should detect more problems now, there is also a list of core renderer subtypes, hopefully the api changes are improvements 2009-12-17 13:45:54 +00:00
Petr Skoda
78946b9bdb MDL-20204 first batch of major theme changes, some regressions are still there, expect more changes and improvements soon; see tracker for details and list of subtasks 2009-12-16 18:00:58 +00:00
Tim Hunt
c74eec3bee blocks: MDL-20711 prevent XSRF.
Uses new require_sesskey function from MDL-20702.
2009-11-02 17:16:28 +00:00
Petr Skoda
6f5e085205 MDL-20700 coding style cleanup - cvs keywords removed, closign php tag removed, trailing whitespace cleanup 2009-11-01 16:48:45 +00:00
tjhunt
035b96a9d9 unittests: NOBUG fix pagelib unit tests
Fix regression caused by my earlier commit.
(It was preventing a new install.)
2009-09-30 22:35:48 +00:00
tjhunt
7d87587449 unittests: NOBUG fix pagelib unit tests 2009-09-30 16:24:05 +00:00
samhemelryk
5afbd0e783 blocklib MDL-20207 Added $CFG->undeletableblocktypes and documented in config-dist 2009-09-11 06:00:32 +00:00
samhemelryk
f4e6a86e41 blocks MDL-20206 Added checking to initialise block weight array outsite of min/max if blocks weight already exceeds that range 2009-09-09 02:44:57 +00:00
samhemelryk
7d2a049292 navigation MDL-14632 Very significant navigation commit
This patch introduces two new blocks global_navigation_tree and settings_navigation_tree
both of which have been designed to make full use of the new navigation objects available through
the $PAGE object.
Bulk of this code is within lib/navigationlib.php
2009-08-28 08:47:31 +00:00
poltawski
d836aa4b4f lib/blocklib: MDL-20146 - Don't mask errors as a way to ignore missing code files
Instead of simply ignoring all errors from blocks, allow the errors to be
exposed and test if the file exists. The previous solution makes it very
hard to debug problems with blocks and gives the 'white screen of death' even
with debugging set as high as it can go.

Also ensure that blocks without code are not added to the list of instances,
as I assume was the intended behaviour.
2009-08-22 11:24:39 +00:00
nicolasconnault
7b1f2c829f MDL-19756 Renamed moodle_select to html_select for better API consistency 2009-08-10 08:38:45 +00:00
nicolasconnault
d81b05e701 MDL-19799 Converted calls to popup_form() 2009-08-10 03:39:21 +00:00
tjhunt
2cdb8d8452 blocks: MDL-19893 move blocks on page UI - part 2
This updates the DB.

I beleive this is correct, but it is very hairy and badly needs unit tests.
2009-07-30 10:29:14 +00:00
jerome
1d7e341e8f block MDL-19946 fix "cannot add block" bug (Tim's fix) 2009-07-30 09:40:11 +00:00
tjhunt
00a24d44f7 blocks: MDL-19893 move blocks on page UI - part 1
This does all the UI. It does not yet update the DB when you click to complete the action.
2009-07-30 08:22:12 +00:00
tjhunt
d14edf06ee blocks: MDL-19399 proper permissions checks for editing blocks.
In particular for editing sticky blocks. If the admin addes one at site level,
then the teacher should not be able to change its configuration from
the course page, but should be able to set the position on this page.
2009-07-30 03:44:10 +00:00
tjhunt
166e3bd161 blocks: MDL-19010 fix block editing icon URLs. 2009-07-29 11:14:41 +00:00
tjhunt
e9f7fdec00 blocks: MDL-19946 Sorry, remove debug code. 2009-07-29 03:57:30 +00:00
tjhunt
a23bbaa30b blocks: MDL-19946 More bug fixes. 2009-07-29 03:51:16 +00:00
tjhunt
d0f0cab776 blocks: MDL-19946 And another bug fix. 2009-07-29 03:21:07 +00:00
tjhunt
7bbc2890f7 blocks: MDL-19946 bugfixes for my previous commit. 2009-07-29 03:19:43 +00:00
tjhunt
a19f419db2 blocks: MDL-19946 Block editing form must be displayed from the original URL, with properliy initialised $page 2009-07-28 09:59:21 +00:00
tjhunt
78d27a9049 blocks MDL-19902: were seeing empty block columns on the front page when not logged in.
It turns out the only reliable way to find out whether blocks will appear is to get the contents. :-(
2009-07-22 05:38:28 +00:00
tjhunt
4578a5eb7a block MDL-19398 Initialise all blocks on this page before output is started. 2009-07-20 03:04:08 +00:00
tjhunt
73e2e5c03d blocks editing ui: MDL-19398 Can now edit the position of any block.
I think this is probaby insecure at the moment. I am still working on it.
2009-07-16 11:05:26 +00:00
tjhunt
1d13c75c15 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.
2009-07-16 10:50:19 +00:00
tjhunt
ae42ff6fee blocks editing ui: MDL-19398 showing and hiding blocks now works. 2009-07-15 07:41:25 +00:00
tjhunt
4a3b462021 blocks editing ui: MDL-19398 give users a path back after assigning block roles 2009-07-15 06:33:13 +00:00
tjhunt
02b126af8a blocks editing ui: MDL-19398 permissions checks when deleting a block. 2009-07-14 11:16:21 +00:00
tjhunt
1936f20b8b blocks editing ui: MDL-19398 move generating the block edit icons to blocklib.php
Since that is where the resulting actions are processed.
2009-07-14 10:57:06 +00:00
tjhunt
727ae4362e blocks editing ui: MDL-19398 fix adding a block to a page that forgets to call $PAGE->set_url. 2009-07-14 10:41:59 +00:00
tjhunt
2a3b076368 blocks editing ui: MDL-19398 fix some bugs with adding a block. 2009-07-14 09:28:10 +00:00
tjhunt
a2789e3426 blocks editing ui: MDL-19398 add block now secure. Delete block works insecurely.
Will add security checks in a moment.
2009-07-14 08:37:28 +00:00
tjhunt
21d33bdf62 blocks editing ui: MDL-19398 you can now add new blocks! 2009-07-14 07:18:57 +00:00
tjhunt
e92c286c20 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.
2009-07-13 08:37:34 +00:00
tjhunt
13a0d3d3c9 blocks MDL-19536: rename block_instances.contextid to parentcontextid to avoid gross confusion 2009-07-10 05:58:59 +00:00
tjhunt
fc2593fef9 blocks - MDL-19010 fix bug where blocks did not show up with editing off. 2009-07-09 08:17:23 +00:00
tjhunt
d4a03c00ea 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.
2009-07-09 07:35:03 +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
tjhunt
c679c3582a Fix some fallout from the pagelib changes. 2009-06-12 11:56:30 +00:00