/** Load single plugin. @param[in] $compiler @ref TemplateCompilerEx instance @param[in] $node Optional @ref TemplateNodeEx instance @param[in] $plugin Plugin name @param[in] $pluginFile Plugin's full filename (optional) @param[in] $noThrow If @c true, no exception will be thrown on error (boolean @c false will be returned) @retval true Plugin has been loaded @retval false Plugin is invalid/non-existant */ public function load(TemplateCompilerEx $compiler, $node, $plugin, $pluginFile = null, $noThrow = false) { // if already loaded, then abort if (isset($this->plugins[$plugin])) { return; } // sanity check TemplateUtils::checkIfAllowed($compiler, 'plugin', $plugin, $node); if (!$pluginFile) { $pluginFile = $this->findPlugin($plugin); } $className = 'Template' . $plugin . 'Plugin'; if ($pluginFile === false || !(include_once $pluginFile) || !class_exists($className) || !TemplateUtils::doesImplement($className, 'ITemplatePlugin')) { if ($noThrow) { return false; } throw new TemplateError('Could not load plugin: "' . $plugin . '". Either file or main class does not exists, or is invalid', TemplateError::E_INVALID_PLUGIN); } // create instance and register handlers $pluginObj = new $className(); $handlers = $pluginObj->providedHandlers(); if (!isset($handlers['tags'])) { $handlers['tags'] = array(); } if (!isset($handlers['filters'])) { $handlers['filters'] = array(); } if (!isset($handlers['hooks'])) { $handlers['hooks'] = array(); } $this->register($plugin, $pluginObj, 'tag', $handlers['tags']); $this->register($plugin, $pluginObj, 'filter', $handlers['filters']); // too special case after all $this->registerHooks($plugin, $pluginObj, $handlers['hooks']); $this->plugins[$plugin] = $pluginObj; }
<?php require_once __DIR__ . '/wp-load.php'; require_once ABSPATH . WPINC . '/lib/utils/class-template-utils.php'; require_once ABSPATH . WPINC . '/lib/model/document/class-document-item.php'; require_once ABSPATH . WPINC . '/lib/helper/class-request-helper.php'; require_once ABSPATH . WPINC . '/lib/utils/db/class-document-item-db-utils.php'; if (!is_user_logged_in()) { wp_redirect(home_url()); exit; } $documentType = RequestHelper::getParameter(DocumentItem::DOCUMENT_TYPE); $documentId = RequestHelper::getParameter(DocumentItem::ID_FIELD); if ($documentType == DocumentType::GRANT) { $document = DocumentItemDBUtils::getGrantById($documentId); } else { $document = DocumentItemDBUtils::getProgramById($documentId); } $data = ["documentType" => $documentType, "document" => $document]; TemplateUtils::includeTemplate(get_template_directory() . '/page-templates/document-form.php', $data);
/** Runs handlers associated with given hook-point. Every handler might return @c true boolean value, to break the chain and finish hook execution. @param[in] $hookPoint Hook-point to execute @param[in] $args Array of hook arguments @retval true Some handler has broken the chain @retval false All handlers have been executed, and none has broken the chain */ private function runHooks($hookPoint, array $args) { array_unshift($args, $this); $handlers = $this->plugins->get('hook', $hookPoint); foreach ($handlers as &$hookInfo) { $handler =& $hookInfo['handler']; if (!is_callable($handler)) { throw new TemplateError('Invalid handler [' . TemplateUtils::strip(var_export($hookInfo['handler'], true)) . '] hooked into "' . $hookPoint . '" point by plugin "' . $hookInfo['plugin'] . '"', TemplateError::E_INVALID_HANDLER); } if (call_user_func_array($handler, $args) === true) { return true; } } return false; }
require_once ABSPATH . WPINC . '/lib/utils/class-needy-item-utils.php'; $filter = RequestHelper::getParameter(NeedyFilterHelper::FILTER_FIELD); $page = RequestHelper::getParameter(NeedyFilterHelper::PAGE_FIELD) - 1; $page = $page && $page > 0 ? $page : 0; $needyItems = []; $needyItemsCountPages = 0; if ($filter == NeedyFilterHelper::ALL) { $needyItems = NeedyItemDBUtils::getAllNeedyItemsByStatuses($page); $needyItemsCountPages = NeedyItemDBUtils::getAllNeedyItemsByStatusesCountPages(); } elseif ($filter == NeedyFilterHelper::ALL_NEEDY) { $needyItems = NeedyItemDBUtils::getAllNeedyItemsByStatuses($page, NeedyStatus::getNeedHelpNeedyStatuses()); $needyItemsCountPages = NeedyItemDBUtils::getAllNeedyItemsByStatusesCountPages(NeedyStatus::getNeedHelpNeedyStatuses()); } elseif ($filter == NeedyFilterHelper::ALL_CHILDS) { $needyItems = NeedyItemDBUtils::getAllChildsItems($page); $needyItemsCountPages = NeedyItemDBUtils::getAllChildsItemsCountPages(); } elseif ($filter == NeedyFilterHelper::URGENTLY_NEED_HELP_CHILDS) { $needyItems = NeedyItemDBUtils::getUrgentlyNeedHelpChildsItems($page); $needyItemsCountPages = NeedyItemDBUtils::getUrgentlyNeedHelpChildsItemsCountPages(); } elseif ($filter == NeedyFilterHelper::NEED_HELP_CHILDS) { $needyItems = NeedyItemDBUtils::getNeedHelpChildsItems($page); $needyItemsCountPages = NeedyItemDBUtils::getNeedHelpChildsItemsCountPages(); } elseif ($filter == NeedyFilterHelper::HELPED_CHILDS) { $needyItems = NeedyItemDBUtils::getHelpedChildsItems($page); $needyItemsCountPages = NeedyItemDBUtils::getHelpedChildsItemsCountPages(); } elseif ($filter == NeedyFilterHelper::ALL_ORPHANAGES) { $needyItems = NeedyItemDBUtils::getAllOrphanagesItems($page); $needyItemsCountPages = NeedyItemDBUtils::getAllOrphanagesItemsCountPages(); } $data = ["needyItems" => $needyItems, "needyItemsCountPages" => $needyItemsCountPages, "page" => $page]; echo TemplateUtils::includeTemplate(get_template_directory() . '/page-templates/needy-item-info-block.php', $data);
/** <code>{{ block }}</code> variable handler. Hooked into @c parseVariableExpression:postCodeGen. */ public function handleHBlockVariable(TemplateCompilerEx $compiler, TemplateNodeEx $node, &$variableCode, &$variableCheck) { if (isset($compiler->varInBlock) && $compiler->varInBlock && mb_strpos($variableCode, '[\'block\'][\'super\']') !== false) { $compiler->raiseIf(!isset($compiler->metadata['parentTemplate']), $node, 'Invalid use of "block.super" - no parent template', TemplateError::E_INVALID_SYNTAX); $variableCode = 'parent::_' . TemplateUtils::sanitize(end($compiler->varInBlock)) . '($e)'; $variableCheck = ''; } return false; }
<?php require_once __DIR__ . '/wp-load.php'; require_once ABSPATH . WPINC . '/lib/utils/class-template-utils.php'; if (!is_user_logged_in()) { wp_redirect(home_url()); exit; } TemplateUtils::includeTemplate(get_template_directory() . '/page-templates/orphanage-form.php');
<?php require_once ABSPATH . WPINC . '/lib/utils/class-template-utils.php'; TemplateUtils::includeTemplate(get_template_directory() . '/page-templates/header-block.php', []); TemplateUtils::includeTemplate(get_template_directory() . '/page-templates/banner-block.php', []);
/** Includes template's code into global namespace via I/O driver given in DSN. I/O system checks @c recompilationMode (which you may override per-template using @c $mode parameter) and acts accordingly, recompiling only when it's required either by this setting or template change. Also recursively handles inclusion of template parent. @param[in] $template %Template name @param[in] $mode Per-template recompilation mode override (optional) @param[in] $returnMeta If @c true, then returns metadata instead of including the code @return Template's class name, as string; or metadata, as array */ public function include_($template, $mode = null, $returnMeta = false) { if (!$mode) { $mode = $this->settings['recompilationMode']; } list($io, $template) = TemplateUtils::parseIODSN($this->settings, $template); if (!$io->upToDate($this->settings, $template, $mode)) { $this->compile($io, $template); } $metadata = $io->loadMetadata($this->settings, $template); if ($returnMeta) { return $metadata; } if (is_array($metadata) && isset($metadata['parentTemplate'])) { $this->include_($metadata['parentTemplate'], $mode); } return $io->includeCode($this->settings, $template); }
/** Tests the behaviour of @ref TemplateUtils::panic. */ public function testUtilsPanic() { $this->setExpectedException('TemplateError', 'PANIC', TemplateError::E_INTERNAL_CORE_FAILURE); TemplateUtils::panic(__FILE__, __LINE__); }
public function className(array &$settings, &$template) { return TemplateUtils::className(crc32($template)); }
</div> <?php } ?> </div> <div class="col-md-6"> <div class="btn-group float-right"> <button type="button" class="btn btn-primary" id="active">Действующие</button> <button type="button" class="btn btn-primary" id="inactive">Завершённые</button> </div> </div> <div class="clearfix"></div> </div> <div class="stocks-block" id="stockBlock"> <?php TemplateUtils::includeTemplate(get_template_directory() . '/page-templates/stock-info-block.php', $data); ?> </div> </div> <!--services-end--> <script> jQuery(document).ready(function($) { var stockBlock = $("#stockBlock"); $('#active').click(function(){ changeFilter(<?php echo StockFilterHelper::ACTIVE; ?> , 'Действующие мероприятия'); }); $('#inactive').click(function(){
<?php require_once __DIR__ . '/wp-load.php'; require_once ABSPATH . WPINC . '/lib/utils/db/class-child-db-utils.php'; require_once ABSPATH . WPINC . '/lib/utils/db/class-image-db-utils.php'; require_once ABSPATH . WPINC . '/lib/helper/class-request-helper.php'; require_once ABSPATH . WPINC . '/lib/utils/class-template-utils.php'; if (!is_user_logged_in()) { wp_redirect(home_url()); exit; } TemplateUtils::includeTemplate(get_template_directory() . '/page-templates/child_form.php');