first commit
This commit is contained in:
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file plugins/generic/customBlockManager/CustomBlockPlugin.php
|
||||
*
|
||||
* Copyright (c) 2014-2020 Simon Fraser University
|
||||
* Copyright (c) 2003-2020 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @package plugins.generic.customBlockManager
|
||||
*
|
||||
* @class CustomBlockPlugin
|
||||
*
|
||||
* A generic sidebar block that can be customized through the CustomBlockManagerPlugin
|
||||
*
|
||||
*/
|
||||
|
||||
namespace APP\plugins\generic\customBlockManager;
|
||||
|
||||
use APP\core\Application;
|
||||
use PKP\facades\Locale;
|
||||
use PKP\plugins\BlockPlugin;
|
||||
|
||||
class CustomBlockPlugin extends BlockPlugin
|
||||
{
|
||||
/** @var string Name of this block plugin */
|
||||
public $_blockName;
|
||||
|
||||
/** @var CustomBlockManagerPlugin Parent plugin */
|
||||
public $_parentPlugin;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param string $blockName Name of this block plugin.
|
||||
* @param CustomBlockManagerPlugin $parentPlugin Custom block plugin management plugin.
|
||||
*/
|
||||
public function __construct($blockName, $parentPlugin)
|
||||
{
|
||||
$this->_blockName = $blockName;
|
||||
$this->_parentPlugin = $parentPlugin;
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the management plugin
|
||||
*
|
||||
* @return CustomBlockManagerPlugin
|
||||
*/
|
||||
public function getManagerPlugin()
|
||||
{
|
||||
return $this->_parentPlugin;
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc Plugin::getName()
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->_blockName;
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc Plugin::getPluginPath()
|
||||
*/
|
||||
public function getPluginPath()
|
||||
{
|
||||
$plugin = $this->getManagerPlugin();
|
||||
return $plugin->getPluginPath();
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc Plugin::getTemplatePath()
|
||||
*/
|
||||
public function getTemplatePath($inCore = false)
|
||||
{
|
||||
$plugin = $this->getManagerPlugin();
|
||||
return $plugin->getTemplatePath($inCore);
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc Plugin::getHideManagement()
|
||||
*/
|
||||
public function getHideManagement()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc LazyLoadPlugin::getEnabled()
|
||||
*
|
||||
* @param null|mixed $contextId
|
||||
*/
|
||||
public function getEnabled($contextId = null)
|
||||
{
|
||||
if (!Application::isInstalled()) {
|
||||
return true;
|
||||
}
|
||||
return parent::getEnabled($contextId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc Plugin::getDisplayName()
|
||||
*/
|
||||
public function getDisplayName()
|
||||
{
|
||||
return $this->_blockName . ' ' . __('plugins.generic.customBlock.nameSuffix');
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc Plugin::getDescription()
|
||||
*/
|
||||
public function getDescription()
|
||||
{
|
||||
return __('plugins.generic.customBlock.description');
|
||||
}
|
||||
|
||||
/**
|
||||
* @copydoc BlockPlugin::getContents()
|
||||
*
|
||||
* @param null|mixed $request
|
||||
*/
|
||||
public function getContents($templateMgr, $request = null)
|
||||
{
|
||||
$context = $request->getContext();
|
||||
$contextId = $context ? $context->getId() : 0;
|
||||
|
||||
// Get the block contents.
|
||||
$customBlockTitle = $this->getSetting($contextId, 'blockTitle');
|
||||
$customBlockContent = $this->getSetting($contextId, 'blockContent');
|
||||
$currentLocale = Locale::getLocale();
|
||||
$contextPrimaryLocale = $context ? $context->getPrimaryLocale() : $request->getSite()->getPrimaryLocale();
|
||||
|
||||
$divCustomBlockId = 'customblock-' . preg_replace('/\W+/', '-', $this->getName());
|
||||
$templateMgr->assign('customBlockId', $divCustomBlockId);
|
||||
|
||||
$title = $customBlockTitle[$currentLocale] ? $customBlockTitle[$currentLocale] : $customBlockTitle[$contextPrimaryLocale];
|
||||
$content = $customBlockContent[$currentLocale] ? $customBlockContent[$currentLocale] : $customBlockContent[$contextPrimaryLocale];
|
||||
|
||||
$templateMgr->assign('customBlockTitle', $title);
|
||||
$templateMgr->assign('customBlockContent', $content);
|
||||
$templateMgr->assign('showName', $this->getSetting($contextId, 'showName'));
|
||||
return parent::getContents($templateMgr, $request);
|
||||
}
|
||||
}
|
||||
|
||||
if (!PKP_STRICT_MODE) {
|
||||
class_alias('\APP\plugins\generic\customBlockManager\CustomBlockPlugin', '\CustomBlockPlugin');
|
||||
}
|
||||
Reference in New Issue
Block a user