[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.218.212.107: ~ $
<?php
/**
 * CKEditorPlugin for phplist
 * 
 * This file is a part of CKEditorPlugin.
 *
 * This plugin is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * This plugin is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * @category  phplist
 * @package   CKEditorPlugin
 * @author    Duncan Cameron
 * @copyright 2013 Duncan Cameron
 * @license   http://www.gnu.org/licenses/gpl.html GNU General Public License, Version 3
 */
class CKEditorPlugin extends phplistPlugin
{
    const VERSION_FILE = 'version.txt';
    const CODE_DIR = '/CKEditorPlugin/';
    /*
     *  Private variables
     */
    private $kcEnabled;

    /*
     *  Inherited variables
     */
    public $name = 'CKEditor plugin';
    public $editorProvider = true;
    public $authors = 'Duncan Cameron';
    public $description = 'Provides the CKEditor for editing messages and templates.';
    public $enabled = 1;

    private function kcFinderScript($function)
    {
    //  see http://kcfinder.sunhater.com/docs/integrate Custom Applications
        $kcPath = rtrim(getConfig('kcfinder_path'), '/');
        $kcImageDir = getConfig('kcfinder_image_directory');
        $kcUrl = htmlspecialchars("$kcPath/browse.php?type=$kcImageDir");
        $html = <<<END
<script type='text/javascript'>
$function = function(callback) {
    window.KCFinder = {};
    window.KCFinder.callBack = function(url) {
        callback(url);
        window.KCFinder = null;
    };
    window.open('$kcUrl', '', 'width=600,height=500');
}
</script>
END;
        return $html;
    }

    private function editorScript($fieldname, $width, $height, $toolbar)
    {
        global $website, $public_scheme, $systemroot;

        $file =  rtrim(getConfig('ckeditor_path'), '/') . '/ckeditor.js';

        if ($file[0] == '/') {
            $file = rtrim($_SERVER['DOCUMENT_ROOT'], '/') . $file;
        } else {
            $file = $systemroot . '/' . $file;
        }
        if (!is_file($file) ) {
            return sprintf(
                '<div class="note error">CKEditor is not available because the ckeditor file "%s" does not exist. Check your setting for the path to ckeditor.</div>',
                $file
            );
        }

        $html = '';
        $settings = array();
        $settings[] = 'allowedContent: true';

        $fullTemplate = getConfig('ckeditor_fulltemplate');
        $fullMessage = getConfig('ckeditor_fullmessage');

        if ($fieldname == 'template' && $fullTemplate) {
            $settings[] = 'fullPage: true';
        }

        if ($fieldname == 'message' && $fullMessage) {
            $settings[] = 'fullPage: true';
        }

        if ($this->kcEnabled) {
            $session = array(
                'disabled' => false,
                'uploadURL' => sprintf('%s://%s/%s', $public_scheme, $website, ltrim(UPLOADIMAGES_DIR, '/'))
            );
            $kcUpload = false;
            $kcUploadDir = getConfig('kcfinder_uploaddir');
            
            if ($kcUploadDir) {
                if (is_writeable($kcUploadDir)) {
                    $session['uploadDir'] = $kcUploadDir;
                    $kcUpload = true;
                }
            } elseif (is_writeable($kcUploadDir = rtrim($_SERVER['DOCUMENT_ROOT'], '/') . '/' . trim(UPLOADIMAGES_DIR, '/'))) {
                $kcUpload = true;
            }

            if ($kcUpload) {
                $kcImageDir = getConfig('kcfinder_image_directory');
                $kcFilesDir = getConfig('kcfinder_files_directory');
                $kcFlashDir = getConfig('kcfinder_flash_directory');
                $session['types'] = array(
                    $kcFilesDir   =>  "",
                    $kcFlashDir   =>  "swf",
                    $kcImageDir  =>  "*img",
                );

                $_SESSION['KCFINDER'] = $session;
                $kcPath = rtrim(getConfig('kcfinder_path'), '/');
                $settings[] = <<<END
filebrowserBrowseUrl: '$kcPath/browse.php?opener=ckeditor&type=$kcFilesDir',
filebrowserImageBrowseUrl: '$kcPath/browse.php?opener=ckeditor&type=$kcImageDir',
filebrowserFlashBrowseUrl: '$kcPath/browse.php?opener=ckeditor&type=$kcFlashDir',
filebrowserUploadUrl: '$kcPath/upload.php?opener=ckeditor&type=$kcFilesDir',
filebrowserImageUploadUrl: '$kcPath/upload.php?opener=ckeditor&type=$kcImageDir',
filebrowserFlashUploadUrl: '$kcPath/upload.php?opener=ckeditor&type=$kcFlashDir'
END;
            } else {
                $html .= sprintf(
                    '<div class="note error">Image browsing is not available because directory "%s" does not exist or is not writeable.</div>',
                    htmlspecialchars($kcUploadDir)
                );
            }
        }

        $path = htmlspecialchars(rtrim(getConfig('ckeditor_path'), '/'));
        $ckConfigPath = rtrim(getConfig('ckeditor_config_path'), '/');

        if ($ckConfigPath) {
            $settings[] = "customConfig: '$ckConfigPath'";
        }

        if ($width) {
            $settings[] = "width: $width";
        }

        if ($height) {
            $settings[] = "height: $height";
        }

        if ($toolbar) {
            $settings[] = "toolbar: '$toolbar'";
        }
        $configSettings = implode(",\n", $settings);
        $html .= <<<END
<script type="text/javascript" src="$path/ckeditor.js"></script>
<script><!--
CKEDITOR.replace('$fieldname', {
$configSettings
});
--></script>
END;
        return $html;
    }

    public function __construct()
    {
        $this->kcEnabled = defined('UPLOADIMAGES_DIR') && UPLOADIMAGES_DIR !== false;
        $this->coderoot = dirname(__FILE__) . self::CODE_DIR;
        $this->version = (is_file($f = $this->coderoot . self::VERSION_FILE))
            ? file_get_contents($f)
            : '';
        $this->settings = array(
            'ckeditor_path' => array (
              'value' => PLUGIN_ROOTDIR . self::CODE_DIR . 'ckeditor',
              'description' => 'Path to CKeditor',
              'type' => 'text',
              'allowempty' => 0,
              'category'=> 'CKEditor',
            ),
            'ckeditor_config_path' => array (
              'value' => '',
              'description' => 'Path to CKeditor custom configuration file',
              'type' => 'text',
              'allowempty' => 1,
              'category'=> 'CKEditor',
            ),
            'ckeditor_width' => array (
              'value' => 600,
              'description' => 'Width in px of CKeditor Area',
              'type' => 'integer',
              'allowempty' => 0,
              'min' => 100,
              'max' => 800,
              'category'=> 'CKEditor',
            ),
            'ckeditor_height' => array (
              'value' => 600,
              'description' => 'Height in px of CKeditor Area',
              'type' => 'integer',
              'allowempty' => 0,
              'min' => 100,
              'max' => 800,
              'category'=> 'CKEditor',
            ),
            'ckeditor_fulltemplate' => array (
              'description' => 'Allow templates to be edited as full HTML pages',
              'type' => 'boolean',
              'value' => '1',
              'allowempty' => false,
              'category'=> 'CKEditor',
            ),
            'ckeditor_fullmessage' => array (
              'description' => 'Allow messages to be edited as full HTML pages',
              'type' => 'boolean',
              'value' => '0',
              'allowempty' => false,
              'category'=> 'CKEditor',
            )
        );

        if ($this->kcEnabled) {
            $this->settings += array(
                'kcfinder_path' => array (
                  'value' =>  PLUGIN_ROOTDIR . self::CODE_DIR . 'kcfinder',
                  'description' => 'Path to KCFinder',
                  'type' => 'text',
                  'allowempty' => 0,
                  'category'=> 'CKEditor',
                ),
                'kcfinder_uploaddir' => array (
                  'value' => '',
                  'description' => 'File system path to the upload image directory. Usually leave this empty.',
                  'type' => 'text',
                  'allowempty' => 1,
                  'category'=> 'CKEditor',
                ),
                'kcfinder_image_directory' => array (
                  'value' => 'image',
                  'description' => 'Name of the image subdirectory of the file upload directory',
                  'type' => 'text',
                  'allowempty' => 0,
                  'category'=> 'CKEditor',
                ),
                'kcfinder_files_directory' => array (
                  'value' => 'files',
                  'description' => 'Name of the files subdirectory of the file upload directory',
                  'type' => 'text',
                  'allowempty' => 0,
                  'category'=> 'CKEditor',
                ),
                'kcfinder_flash_directory' => array (
                  'value' => 'flash',
                  'description' => 'Name of the flash subdirectory of the file upload directory',
                  'type' => 'text',
                  'allowempty' => 0,
                  'category'=> 'CKEditor',
                ),
            );
        }
        parent::__construct();
    }

    public function adminmenu()
    {
        return array();
    }

    public function editor($fieldname, $content)
    {
        $width = getConfig('ckeditor_width');
        $height = getConfig('ckeditor_height');
        return $this->createEditor($fieldname, $content, $width, $height);
    }

    public function createEditor($fieldname, $content, $width = null, $height = null, $toolbar = null)
    {
        $fieldname = htmlspecialchars($fieldname);
        $content = htmlspecialchars($content);
        $html = <<<END
<textarea name="$fieldname">$content</textarea>
END;
        $html .= $this->editorScript($fieldname, $width, $height, $toolbar);
        return $html;
    }

    public function createImageBrowser($function)
    {
        static $firstTime = true;

        if ($firstTime) {
            $firstTime = false;
            $html = $this->kcFinderScript($function);
        } else {
            $html = '';
        }
        return $html;
    }
}

Filemanager

Name Type Size Permission Actions
CKEditorPlugin Folder 0755
CaptchaPlugin Folder 0755
Common Folder 0755
CommonPlugin Folder 0755
SegmentPlugin Folder 0755
defaultplugin Folder 0755
fckphplist Folder 0755
sidebar Folder 0755
.htaccess File 145 B 0644
CKEditorPlugin.php File 10.37 KB 0644
COPYING.txt File 34.32 KB 0644
CaptchaPlugin.php File 7.96 KB 0644
CommonPlugin.php File 3.78 KB 0644
SegmentPlugin.php File 18.37 KB 0644
fckphplist.php File 2.44 KB 0644
helloworld.php File 265 B 0644
inviteplugin.php File 3.89 KB 0644
sidebar.php File 241 B 0644
subjectLinePlaceholdersPlugin.php File 5.27 KB 0644
update.sh File 66 B 0644