Add new 'head' hook
- Add new App->registerStylesheet method - Reworked App->init_pagehead into App->initHead
This commit is contained in:
parent
30f8fb82b6
commit
2ae6556b32
5 changed files with 33 additions and 11 deletions
|
@ -252,6 +252,11 @@ Called after conversion of bbcode to HTML.
|
||||||
Called after tag conversion of HTML to bbcode (e.g. remote message posting)
|
Called after tag conversion of HTML to bbcode (e.g. remote message posting)
|
||||||
`$b` is a string converted text
|
`$b` is a string converted text
|
||||||
|
|
||||||
|
### head
|
||||||
|
Called when building the `<head>` sections.
|
||||||
|
Stylesheets should be registered using this hook.
|
||||||
|
`$b` is an HTML string of the `<head>` tag.
|
||||||
|
|
||||||
### page_header
|
### page_header
|
||||||
Called after building the page navigation section.
|
Called after building the page navigation section.
|
||||||
`$b` is a string HTML of nav region.
|
`$b` is a string HTML of nav region.
|
||||||
|
@ -288,8 +293,8 @@ Called after HTML content functions have completed.
|
||||||
|
|
||||||
### footer
|
### footer
|
||||||
Called after HTML content functions have completed.
|
Called after HTML content functions have completed.
|
||||||
|
Deferred Javascript files should be registered using this hook.
|
||||||
`$b` is (string) HTML of footer div/element.
|
`$b` is (string) HTML of footer div/element.
|
||||||
Used to load deferred Javascript files.
|
|
||||||
|
|
||||||
### avatar_lookup
|
### avatar_lookup
|
||||||
Called when looking up the avatar. `$b` is an array:
|
Called when looking up the avatar. `$b` is an array:
|
||||||
|
@ -568,6 +573,7 @@ Here is a complete list of all hook callbacks with file locations (as of 01-Apr-
|
||||||
### src/App.php
|
### src/App.php
|
||||||
|
|
||||||
Addon::callHooks('load_config');
|
Addon::callHooks('load_config');
|
||||||
|
Addon::callHooks('head');
|
||||||
Addon::callHooks('footer');
|
Addon::callHooks('footer');
|
||||||
|
|
||||||
### src/Model/Item.php
|
### src/Model/Item.php
|
||||||
|
|
|
@ -395,7 +395,7 @@ if ($a->module_loaded) {
|
||||||
* theme choices made by the modules can take effect.
|
* theme choices made by the modules can take effect.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$a->init_pagehead();
|
$a->initHead();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Build the page ending -- this is stuff that goes right before
|
* Build the page ending -- this is stuff that goes right before
|
||||||
|
|
26
src/App.php
26
src/App.php
|
@ -96,13 +96,21 @@ class App
|
||||||
public $force_max_items = 0;
|
public $force_max_items = 0;
|
||||||
public $theme_events_in_profile = true;
|
public $theme_events_in_profile = true;
|
||||||
|
|
||||||
|
public $stylesheets = [];
|
||||||
public $footerScripts = [];
|
public $footerScripts = [];
|
||||||
|
|
||||||
|
public function registerStylesheet($path)
|
||||||
|
{
|
||||||
|
$url = str_replace($this->get_basepath() . DIRECTORY_SEPARATOR, '', $path);
|
||||||
|
|
||||||
|
$this->stylesheets[] = trim($url, '/');
|
||||||
|
}
|
||||||
|
|
||||||
public function registerFooterScript($path)
|
public function registerFooterScript($path)
|
||||||
{
|
{
|
||||||
$url = str_replace($this->get_basepath() . DIRECTORY_SEPARATOR, '', $path);
|
$url = str_replace($this->get_basepath() . DIRECTORY_SEPARATOR, '', $path);
|
||||||
|
|
||||||
$this->footerScripts[] = $this->get_baseurl() . '/' . trim($url, '/');
|
$this->footerScripts[] = trim($url, '/');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -741,7 +749,7 @@ class App
|
||||||
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
|
$this->pager['start'] = ($this->pager['page'] * $this->pager['itemspage']) - $this->pager['itemspage'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function init_pagehead()
|
public function initHead()
|
||||||
{
|
{
|
||||||
$interval = ((local_user()) ? PConfig::get(local_user(), 'system', 'update_interval') : 40000);
|
$interval = ((local_user()) ? PConfig::get(local_user(), 'system', 'update_interval') : 40000);
|
||||||
|
|
||||||
|
@ -766,9 +774,6 @@ class App
|
||||||
* since the code added by the modules frequently depends on it
|
* since the code added by the modules frequently depends on it
|
||||||
* being first
|
* being first
|
||||||
*/
|
*/
|
||||||
if (!isset($this->page['htmlhead'])) {
|
|
||||||
$this->page['htmlhead'] = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we're using Smarty, then doing replace_macros() will replace
|
// If we're using Smarty, then doing replace_macros() will replace
|
||||||
// any unrecognized variables with a blank string. Since we delay
|
// any unrecognized variables with a blank string. Since we delay
|
||||||
|
@ -791,7 +796,9 @@ class App
|
||||||
}
|
}
|
||||||
|
|
||||||
// get data wich is needed for infinite scroll on the network page
|
// get data wich is needed for infinite scroll on the network page
|
||||||
$invinite_scroll = infinite_scroll_data($this->module);
|
$infinite_scroll = infinite_scroll_data($this->module);
|
||||||
|
|
||||||
|
Core\Addon::callHooks('head', $this->page['htmlhead']);
|
||||||
|
|
||||||
$tpl = get_markup_template('head.tpl');
|
$tpl = get_markup_template('head.tpl');
|
||||||
$this->page['htmlhead'] = replace_macros($tpl, [
|
$this->page['htmlhead'] = replace_macros($tpl, [
|
||||||
|
@ -805,8 +812,9 @@ class App
|
||||||
'$shortcut_icon' => $shortcut_icon,
|
'$shortcut_icon' => $shortcut_icon,
|
||||||
'$touch_icon' => $touch_icon,
|
'$touch_icon' => $touch_icon,
|
||||||
'$stylesheet' => $stylesheet,
|
'$stylesheet' => $stylesheet,
|
||||||
'$infinite_scroll' => $invinite_scroll,
|
'$infinite_scroll' => $infinite_scroll,
|
||||||
'$block_public' => intval(Config::get('system', 'block_public')),
|
'$block_public' => intval(Config::get('system', 'block_public')),
|
||||||
|
'$stylesheets' => $this->stylesheets,
|
||||||
]) . $this->page['htmlhead'];
|
]) . $this->page['htmlhead'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -845,10 +853,10 @@ class App
|
||||||
Core\Addon::callHooks('footer', $this->page['footer']);
|
Core\Addon::callHooks('footer', $this->page['footer']);
|
||||||
|
|
||||||
$tpl = get_markup_template('footer.tpl');
|
$tpl = get_markup_template('footer.tpl');
|
||||||
$this->page['footer'] .= replace_macros($tpl, [
|
$this->page['footer'] = replace_macros($tpl, [
|
||||||
'$baseurl' => $this->get_baseurl(),
|
'$baseurl' => $this->get_baseurl(),
|
||||||
'$footerScripts' => $this->footerScripts,
|
'$footerScripts' => $this->footerScripts,
|
||||||
]);
|
]) . $this->page['footer'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function set_curl_code($code)
|
public function set_curl_code($code)
|
||||||
|
|
|
@ -11,6 +11,10 @@
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{$stylesheet}}" media="all" />
|
<link rel="stylesheet" type="text/css" href="{{$stylesheet}}" media="all" />
|
||||||
|
|
||||||
|
{{foreach $stylesheets as $stylesheetUrl}}
|
||||||
|
<link rel="stylesheet" href="{{$stylesheetUrl}}" type="text/css" media="screen" />
|
||||||
|
{{/foreach}}
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<link rel="shortcut icon" href="images/friendica-32.png" />
|
<link rel="shortcut icon" href="images/friendica-32.png" />
|
||||||
<link rel="apple-touch-icon" href="images/friendica-128.png"/>
|
<link rel="apple-touch-icon" href="images/friendica-128.png"/>
|
||||||
|
|
|
@ -33,6 +33,10 @@
|
||||||
<link rel="stylesheet" href="view/theme/frio/css/hovercard.css" type="text/css" media="screen"/>
|
<link rel="stylesheet" href="view/theme/frio/css/hovercard.css" type="text/css" media="screen"/>
|
||||||
<link rel="stylesheet" href="view/theme/frio/css/font-awesome.custom.css" type="text/css" media="screen"/>
|
<link rel="stylesheet" href="view/theme/frio/css/font-awesome.custom.css" type="text/css" media="screen"/>
|
||||||
|
|
||||||
|
{{foreach $stylesheets as $stylesheetUrl}}
|
||||||
|
<link rel="stylesheet" href="{{$stylesheetUrl}}" type="text/css" media="screen" />
|
||||||
|
{{/foreach}}
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<link rel="shortcut icon" href="images/friendica-32.png" />
|
<link rel="shortcut icon" href="images/friendica-32.png" />
|
||||||
<link rel="apple-touch-icon" href="images/friendica-128.png"/>
|
<link rel="apple-touch-icon" href="images/friendica-128.png"/>
|
||||||
|
|
Loading…
Reference in a new issue