44 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
The Highest Level
 | 
						|
~~~~~~~~~~~~~~~~~
 | 
						|
index.php takes care of loading the globals:
 | 
						|
 | 
						|
$config -- some variety of Config class
 | 
						|
$database -- a class used to get raw SQL access
 | 
						|
$page -- a GenericPage object, a data structure which holds all the page parts
 | 
						|
$user -- the currently logged in User
 | 
						|
 | 
						|
then it sends an InitExtEvent and PageRequestEvent, these can each trigger
 | 
						|
more events of their own.
 | 
						|
 | 
						|
Once the chain of events comes to an end, the $page object is passed
 | 
						|
to the theme's layout.class.php to be turned into HTML
 | 
						|
 | 
						|
 | 
						|
Events and Extensions
 | 
						|
~~~~~~~~~~~~~~~~~~~~~
 | 
						|
An event is a little blob of data saying "something happened", possibly
 | 
						|
"something happened, here's the specific data". Events are sent with the
 | 
						|
send_event() function.
 | 
						|
 | 
						|
An extension is something which is capable of reacting to events. They
 | 
						|
register themselves using the add_event_listener() command. (Although for
 | 
						|
subclasses of SimpleExtension, registration is handled automatically).
 | 
						|
 | 
						|
 | 
						|
Themes
 | 
						|
~~~~~~
 | 
						|
Each extension has a theme with a specific name -- the extension Cake which
 | 
						|
is stored in ext/cake/main.php will have a theme called CakeTheme stored in
 | 
						|
ext/cake/theme.php. If you want to customise it, create a class in the file
 | 
						|
themes/mytheme/cake.theme.php called CustomCakeTheme which extends CakeTheme
 | 
						|
and overrides some of its methods.
 | 
						|
 | 
						|
Generally an extension should only deal with processing data; whenever it
 | 
						|
wants to display something, it should pass the $page data structure along
 | 
						|
with the data to be displayed to the theme object, and the theme will add
 | 
						|
the data into the page.
 | 
						|
 | 
						|
 | 
						|
 |