[Soft] ImageCMS Shop Premium

У меня работает новая версия. Не знаю чем помочь. Сервер вырубается из-за неполадок с экстеншенами наверное. Не возможно что бы CMS рубила апач.
А по релизу понравился шаблон. Нулл пот бету кто-то сделает?
На официальном сайте у кого то те же баги вылезли, сайт запускается, но только кроме главной страницы. Контроллер выложенный ранее работает. Попробую вечером на хостинге, может там норм будет.
 
4.5 норм работает на сервере от Для просмотра ссылки Войди или Зарегистрируйся
но нула пока нет вот раскодированный shopAdminController
PHP:
?><?php

/**
* ShopAdminController
*
* @uses Controller
* @package
* @version $id$
* @[USER=294783]CopyRight[/USER] 2010 Siteimage
* @author <dev@imagecms.net>
* @license
*/
class ShopAdminController extends MY_Controller {

    public $baseAdminUrl = '/admin/components/run/shop/';
    public $shopThemeUrl = '/application/modules/shop/admin/templates/assets/';
    public $pjaxRequest = false;

    public function __construct() {
        parent::__construct();

        if (isset($_SERVER['HTTP_X_PJAX']) && $_SERVER['HTTP_X_PJAX'] == true) {
            $this->pjaxRequest = true;
            header('X-PJAX: true');
        }

        Permitions::checkPermitions();
        $this->autoloadModules();
        // Don't apply discounts in admin part.
        ShopCore::$SHOP_APPLY_DISCOUNTS = false;

        // Init main currency as default.
        ShopCore::app()->SCurrencyHelper->initCurrentCurrency('main');
        $this->template->add_array(array(
            'ADMIN_URL' => $this->baseAdminUrl,
            'SHOP_THEME' => $this->shopThemeUrl,
            'CS' => ShopCore::app()->SCurrencyHelper->getSymbol(),
            'Controller' => $this,
        ));
    }

    /**
    * Display rendered template file.
    *
    * @[USER=314738]param[/USER] string $viewName name of template file to display.
    * @[USER=314738]param[/USER] array $data template data
    * @[USER=318263]access[/USER] public
    * @[USER=273296]Return[/USER] string if $return is set to true
    */
    public function render($viewName, array $data = array(), $return = false) {
        if (!empty($data))
            $this->template->add_array($data);
        //assign translatable field marker
        if (count(ShopCore::$ci->cms_admin->get_langs(true)) > 1) {
            $this->template->assign('translatable', '<i class="icon-flag" data-title="' . lang('Translate', 'admin') . '"data-rel="tooltip"></i>');
            $this->template->assign('translatable_w', '<i class="icon-flag icon-white" data-title="' . lang('Translate', 'admin') . '"data-rel="tooltip"></i>');
        }

        if ($this->pjaxRequest)
            echo $this->template->fetch('file:' . $this->getViewFullPath($viewName));
        else
        //$this->template->show('file:' . $this->getViewFullPath($viewName));


        if ($return === false)
            $this->template->show('file:' . $this->getViewFullPath($viewName));
        else
            return $this->template->fetch('file:' . $this->getViewFullPath($viewName));
        //echo ShopCore::app()->SPropelLogger->displayAsTable();
    }

    /**
    * Create full path to template file based on class name and view file name.
    *
    * @[USER=314738]param[/USER] string $viewName
    * @[USER=318263]access[/USER] public
    * @[USER=273296]Return[/USER] string
    */
    public function getViewFullPath($viewName) {
        // Remove "ShopAdmin" from controller name
        $controllerName = str_replace('ShopAdmin', '', get_class($this));

        // Make first charater lowercase
        $controllerName{0} = strtolower($controllerName{0});

        switch (substr($_SERVER['SERVER_ADDR'], 0, strrpos($_SERVER['SERVER_ADDR'], '.'))) {
            case '127.0.0':
            case '127.0.1':
            case '10.0.0':
            case '172.16.0':
            case '192.168.0':
                $on_local = true;
                break;
        }

        if ($on_local !== true || (strtolower(end(explode('.', $_SERVER[HTTP_HOST])) !== 'loc'))) {

            $msg = base64_decode('PGRpdiBpZD0ibm90aWNlX2Vycm9yIj7QntGI0LjQsdC60LAg0L/RgNC+0LLQtdGA0LrQuCDQu9C40YbQtdC90LfQuNC4LjwvZGl2Pg==');
            $msgTest = base64_decode('0KHRgtGA0L7QuiDRgtC10YHRgtC+0LLQvtC5INC70LjRhtC10L3Qt9C40Lgg0LjRgdGC0LXQug==');

            $flPath = realpath(dirname(__FILE__) . '/../' . implode('', array_map('chr', array(108, 105, 99, 101, 110, 115, 101, 46, 107, 101, 121))));
            $flTestPath = realpath(dirname(__FILE__) . '/../' . str_replace('www.', '', $_SERVER[HTTP_HOST]) . '.key');

            if (!$this->ajaxRequest) {
                $this->template->assign('content', $msg);
                $this->template->assign('content', $msgTest);
                $msg = $this->template->fetch('main');
                $msgTest = $this->template->fetch('main');
            }

            if (!file_exists($flPath))
                if (!file_exists($flTestPath))
                    die($msg);

            if (file_exists($flTestPath)) {
                $time = file_get_contents($flTestPath);
                $time = explode('0xD', $time);
                $time = array_map('chr', $time);
                $time = array_reverse($time);

                for ($i = 0; $i < 10; $i++) {
                    $a .= $time[$i + 120];
                }
                $a = str_replace(array('q', 'w', 'e', 'r', 't', 'b', 'v', 's', 'd', '"'), array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0), $a);

                if ((int) $a > time()) {
                    $test = TRUE;
                } else {
                    die($msgTest);
                }
            }
            if (IMAGECMS_NUMBER == '4.5b Premium')
                $domain = sha1(str_replace('www.', '', $_SERVER['HTTP_HOST']));
            elseif (IMAGECMS_NUMBER == '4.5b Professional')
                $domain = md5(str_replace('www.', '', $_SERVER['HTTP_HOST']));
            elseif (!$test)
                die($msg);
//            else
//                die($msg);

            if (!$test) {

                $chars = array();

                for ($i = 0; $i < strlen($domain); $i++)
                    array_push($chars, $domain{$i});

                $chars = array_map('ord', $chars);
                $chars = array_map('base64_encode', $chars);
                $chars = array_reverse($chars);
                $result = implode('0xD', $chars);

                $key = trim(file_get_contents($flPath));

                if ($result != $key)
                    die($msg);
            }
        }

        // Create full path to template file
        $ext = '';
        if (strpos($viewName, '.tpl'))
            $ext = '.tpl';

        return SHOP_DIR . 'admin' . DS . 'templates' . DS . $controllerName . DS . $viewName . $ext;
    }

    /**
    * Create url to admin controller.
    *
    * Example: $this->createUrl('categories/edit',array('id'=>10)), will return
    * /admin/components/run/shop/categories/edit/10
    *
    * @[USER=314738]param[/USER] string $url
    * @[USER=314738]param[/USER] array $args
    * @[USER=318263]access[/USER] public
    * @[USER=273296]Return[/USER] string
    */
    public function createUrl($url, array $args = array()) {
        $url = $this->baseAdminUrl . $url;

        if (!empty($args))
            $url.='/' . implode('/', $args);

        return $url;
    }

    /**
    * Show 404 page
    *
    * @[USER=314738]param[/USER] string $message Error message
    *
    * @[USER=318263]access[/USER] public
    */
    public function error404($message) {
        $this->template->assign('message', $message);
        $this->template->show('404');
        exit;
    }

    /**
    * Update admin html block
    *
    * @[USER=314738]param[/USER] string $url
    * @[USER=318263]access[/USER] public
    */
    public function ajaxShopDiv($url, $div = false) {
        if (!$div) {
            echo '
        <script type="text/javascript">
            ajaxShop("' . $url . '");
        </script>
        ';
        } else {
            echo '
        <script type="text/javascript">
            ajaxShopDiv("' . $url . '");
        </script>
        ';
        }
    }

    private function autoloadModules() {
        /** Search module with autoload */
        $query = $this->db
                ->select('name')
                ->where('autoload', 1)
                ->get('components');

        if ($query) {
            $moduleName = null;
            /** Run all Admin autoload method */
            foreach ($query->result_array() as $module) {
                $moduleName = $module['name'];
                Modules::load_file($moduleName, APPPATH . 'modules' . DIRECTORY_SEPARATOR . $moduleName . DIRECTORY_SEPARATOR);
                $moduleName = ucfirst($moduleName);
                if (class_exists($moduleName)) {
                    if (method_exists($moduleName, 'adminAutoload') && !self::$detect_load_admin[$moduleName] && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
                        $moduleName::adminAutoload();
                        self::$detect_load_admin[$moduleName] = 1;
                    }
                }
            }
        }
    }

}
 
  • Нравится
Реакции: HS!
Лично я, сильно рада столь скорому выходу новой версии, пускай и "бетки", там столько исправлений и замен для мультиязычности, что не может не порадовать.....

Хотя и да Очень много грамматических ошибок :)



УРРА - вышла 4.5 бетка - налетай тестировать.
А где и как её скачать
 
я там регистрацию не могу пройти
 
у кого-нибудь есть опыт реального использования ImageCMS (нулла)? напишите, пожалуйста, в ЛС, есть пара вопросов :)
 
tzIZ.jpg
Вышла очередная версия 4,5

- есть много нового и интересного.
 
Назад
Сверху