1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-09 00:06:55 +02:00

Add hookable InputfieldPage::renderPageLabel() method for processwire/processwire-requests#460

This commit is contained in:
Ryan Cramer
2024-02-09 12:09:45 -05:00
parent 9fe7e95840
commit 97db8e8783

View File

@@ -27,6 +27,7 @@
* *
* @method string renderAddable() * @method string renderAddable()
* @method void processInputAddPages(WireInputData $input) * @method void processInputAddPages(WireInputData $input)
* @method string renderPageLabel(Page $page, $allowMarkup = false)
* *
* @todo make findPagesCode disabled by default * @todo make findPagesCode disabled by default
* *
@@ -36,7 +37,7 @@ class InputfieldPage extends Inputfield implements ConfigurableModule {
public static function getModuleInfo() { public static function getModuleInfo() {
return array( return array(
'title' => 'Page', 'title' => 'Page',
'version' => 108, 'version' => 109,
'summary' => 'Select one or more pages', 'summary' => 'Select one or more pages',
'permanent' => true, 'permanent' => true,
); );
@@ -586,6 +587,31 @@ class InputfieldPage extends Inputfield implements ConfigurableModule {
* *
*/ */
public function getPageLabel(Page $page, $allowMarkup = false) { public function getPageLabel(Page $page, $allowMarkup = false) {
static $hooked = null;
if($hooked === null) {
$hooked = $this->wire()->hooks->isHooked('InputfieldPage::renderPageLabel()');
}
if($hooked) {
return $this->renderPageLabel($page, $allowMarkup);
} else {
return $this->___renderPageLabel($page, $allowMarkup);
}
}
/**
* Render a label for the given page
*
* This is the same as `getPageLabel()` but hookable.
*
* #pw-hooker
*
* @param Page $page
* @param bool $allowMarkup Whether or not to allow markup in the label (default=false)
* @return string
* @since 3.0.236
*
*/
public function ___renderPageLabel(Page $page, $allowMarkup = false) {
$label = ''; $label = '';
if(strlen($this->labelFieldFormat) && $this->labelFieldName == '.') { if(strlen($this->labelFieldFormat) && $this->labelFieldName == '.') {
$label = $page->getMarkup($this->labelFieldFormat); $label = $page->getMarkup($this->labelFieldFormat);