PortableInfobox/controllers/PortableInfoboxBuilderSpecialController.class.php

62 lines
2.3 KiB
PHP
Raw Normal View History

<?php
/**
* Class WikiaMapsSpecialController
* @desc Special:Maps controller
*/
class PortableInfoboxBuilderSpecialController extends WikiaSpecialPageController {
const PAGE_NAME = 'PortableInfoboxBuilder';
const PAGE_RESTRICTION = 'editinterface';
2016-02-09 11:20:20 +00:00
const INFOBOX_BUILDER_MERCURY_ROUTE = 'infobox-builder';
const PATH_SEPARATOR = '/';
const EXPLODE_LIMIT = 2;
/**
* Special page constructor
*
* @param null $name
* @param string $restriction
* @param bool $listed
* @param bool $function
* @param string $file
* @param bool $includable
*/
public function __construct( $name = null, $restriction = '', $listed = true, $function = false, $file = 'default', $includable = false ) {
parent::__construct( self::PAGE_NAME, self::PAGE_RESTRICTION, $listed, $function, $file, $includable );
}
public function index() {
2015-09-07 10:46:00 +00:00
$this->wg->out->setHTMLTitle( wfMessage( 'portable-infobox-builder-title' )->text() );
2016-02-10 15:20:36 +00:00
$title = explode( self::PATH_SEPARATOR, $this->getPar(), self::EXPLODE_LIMIT )[ 0 ];
$noTemplateSet = empty( $title ) ? true : false;
if ( $noTemplateSet ) {
2016-02-10 15:20:36 +00:00
$this->wg->SuppressPageHeader = true;
$this->response->setVal( 'noTemplateSet', true );
$this->response->setVal( 'setTemplateNameCallToAction', wfMessage(
2015-09-03 14:00:53 +00:00
'portable-infobox-builder-no-template-title-set' )->text() );
} else {
2016-02-10 15:20:36 +00:00
RenderContentOnlyHelper::setRenderContentVar( true );
RenderContentOnlyHelper::setRenderContentLevel( RenderContentOnlyHelper::LEAVE_GLOBAL_NAV_ONLY );
Wikia::addAssetsToOutput( 'portable_infobox_builder_scss' );
$url = implode( self::PATH_SEPARATOR, [ $this->wg->server, self::INFOBOX_BUILDER_MERCURY_ROUTE, $title ] );
$this->response->setVal( 'iframeUrl', $url );
}
$this->response->setTemplateEngine( WikiaResponse::TEMPLATE_ENGINE_MUSTACHE );
}
2015-09-02 11:06:31 +00:00
/**
* renders HTML for create new template page entry point
*/
public function renderCreateTemplateEntryPoint() {
$this->response->setVal( 'createInfobox', wfMessage(
2015-09-03 14:00:53 +00:00
'portable-infobox-builder-create-template-entry-point-create-infobox' )->text() );
$this->response->setVal( 'createTemplate', wfMessage(
2015-09-03 14:00:53 +00:00
'portable-infobox-builder-create-template-entry-point-create-regular-template' )->text() );
$this->response->setVal( 'title', $this->request->getVal( 'title' ), '' );
$this->response->setTemplateEngine( WikiaResponse::TEMPLATE_ENGINE_MUSTACHE );
}
}