move all theme initialisation to one place - just after calling module_init. Revert if there are serious issues, but please note the issues in as much detail as possible so we can work through them.

This commit is contained in:
friendica 2014-10-20 16:47:58 -07:00
parent c909b8be06
commit cb15c73dae
5 changed files with 62 additions and 19 deletions

View File

@ -1880,13 +1880,9 @@ function get_custom_nav(&$a,$navname) {
}
function construct_page(&$a) {
function load_pdl(&$a) {
require_once('include/comanche.php');
// in case a page has overloaded a module, see if we already have a layout defined
// otherwise, if a pdl file exists for this module, use it
if(! count($a->layout)) {
$n = 'mod_' . $a->module . '.pdl' ;
$u = comanche_get_channel_id();
@ -1898,12 +1894,20 @@ function construct_page(&$a) {
comanche_parser($a,$s);
}
$comanche = ((count($a->layout)) ? true : false);
}
function construct_page(&$a) {
/**
* Build the page - now that we have all the components
*/
$comanche = ((count($a->layout)) ? true : false);
require_once(theme_include('theme_init.php'));
$installing = false;

View File

@ -259,6 +259,7 @@ class RedBrowser extends DAV\Browser\Plugin {
$html .= $output;
get_app()->page['content'] = $html;
load_pdl(get_app());
construct_page(get_app());
}

View File

@ -242,14 +242,6 @@ if(strlen($a->module)) {
}
}
/**
* load current theme info
*/
$theme_info_file = "view/theme/".current_theme()."/php/theme.php";
if (file_exists($theme_info_file)){
require_once($theme_info_file);
}
/* initialise content region */
@ -281,12 +273,44 @@ if($a->module_loaded) {
$a->page['page_title'] = $a->module;
$placeholder = '';
/**
* No theme has been specified when calling the module_init functions
* For this reason, please restrict the use of templates to those which
* do not provide any presentation details - as themes will not be able
* to over-ride them.
*/
if(function_exists($a->module . '_init')) {
call_hooks($a->module . '_mod_init', $placeholder);
$func = $a->module . '_init';
$func($a);
}
/**
* Do all theme initialiasion here before calling any additional module functions.
* The module_init function may have changed the theme.
* Additionally any page with a Comanche template may alter the theme.
* So we'll check for those now.
*/
/**
* In case a page has overloaded a module, see if we already have a layout defined
* otherwise, if a PDL file exists for this module, use it
* The member may have also created a customised PDL that's stored in the config
*/
load_pdl($a);
/**
* load current theme info
*/
$theme_info_file = "view/theme/".current_theme()."/php/theme.php";
if (file_exists($theme_info_file)){
require_once($theme_info_file);
}
if(function_exists(str_replace('-','_',current_theme()) . '_init')) {
$func = str_replace('-','_',current_theme()) . '_init';
$func($a);

View File

@ -14,13 +14,11 @@ function page_init(&$a) {
if($a->profile['profile_uid'])
head_set_icon($a->profile['thumb']);
}
// load the item here in the init function because we need to extract
// the page layout and initialise the correct theme.
function page_content(&$a) {
$observer = $a->get_observer();
$ob_hash = (($observer) ? $observer['xchan_hash'] : '');
@ -97,11 +95,27 @@ function page_content(&$a) {
}
}
$a->data['webpage'] = $r;
}
function page_content(&$a) {
$r = $a->data['webpage'];
if(! $r)
return;
// logger('layout: ' . print_r($a->layout,true));
// Use of widgets should be determined by Comanche, but we don't have it on system pages yet, so...
// I recommend we now get rid of this bit - it's quite a hack to work around... - mike
if ($perms['write_pages']) {
$chan = $a->channel['channel_id'];
$who = $channel_address;

View File

@ -1 +1 @@
2014-10-19.833
2014-10-20.834