Как исправить предупреждение

Тема в разделе "PHP", создана пользователем apdate, 4 май 2015.

  1. apdate

    apdate

    Регистрация:
    4 май 2015
    Сообщения:
    0
    Симпатии:
    0
    Доброго дня в интернете нарыл но там написано всего лишь как убрать сообщения об ошибке но я бы хотел полностью устранить ее! прошу помощи!
    вот ошибка
    [03-May-2015 16:28:45 Europe/Minsk] PHP Strict Standards: Declaration of FrontendApp::jslang() should be compatible with ECBaseApp::jslang($lang) in frontend.base.php on line 330

    вот код от начало до 330 строки
    PHP:
    <?php

    class FrontendApp extends ECBaseApp
    {
    function 
    __construct()
    {
    $this->FrontendApp();
    }
    function 
    FrontendApp()
    {
    Lang::load(lang_file('common'));
    Lang::load(lang_file(APP));
    parent::__construct();


    if (!
    Conf::get('site_status'))
    {
    $this->show_warning(Conf::get('closed_reason'));
    exit;
    }

    }
    function 
    _config_view()
    {
    parent::_config_view();
    $this->_view->template_dir ROOT_PATH '/themes';
    $this->_view->compile_dir ROOT_PATH '/temp/compiled/mall';
    $this->_view->res_base SITE_URL '/themes';
    $this->_config_seo(array(
    'title' => Conf::get('site_title'),
    'description' => Conf::get('site_description'),
    'keywords' => Conf::get('site_keywords')
    ));
    }
    function 
    display($tpl)
    {
    $Conf = new Conf();
    $cart =& m('cart');
    $this->assign('cart_goods_kinds'$cart->get_kinds(SESS_ID$this->visitor->get('user_id')));
    $this->assign('navs'$this->_get_navs()); //
    $this->assign('acc_help'ACC_HELP); // code
    $this->assign('site_title'$Conf->get('site_title'));
    $this->assign('site_logo'$Conf->get('site_logo'));
    $this->assign('statistics_code'$Conf->get('statistics_code')); //
    $current_url explode('/'$_SERVER['REQUEST_URI']);
    $count count($current_url);
    $this->assign('current_url'$count $current_url[$count-1] : $_SERVER['REQUEST_URI']);// ()
    parent::display($tpl);
    }
    function 
    login()
    {
    if (
    $this->visitor->has_login)
    {
    $this->show_warning('has_login');

    return;
    }
    if (!
    IS_POST)
    {
    if (!empty(
    $_GET['ret_url']))
    {
    $ret_url trim($_GET['ret_url']);
    }
    else
    {
    if (isset(
    $_SERVER['HTTP_REFERER']))
    {
    $ret_url $_SERVER['HTTP_REFERER'];
    }
    else
    {
    $ret_url SITE_URL '/index.php';
    }
    }

    $ret_url strtolower($ret_url);
    if (
    str_replace(array('act=login''act=logout',), ''$ret_url) != $ret_url)
    {
    $ret_url SITE_URL '/index.php';
    }

    if (
    Conf::get('captcha_status.login'))
    {
    $this->assign('captcha'1);
    }
    $this->import_resource(array('script' => 'jquery.plugins/jquery.validate.js'));
    $this->assign('ret_url'rawurlencode($ret_url));
    $this->_curlocal(LANG::get('user_login'));
    $this->_config_seo('title'Lang::get('user_login') . ' - ' Conf::get('site_title'));
    $this->display('login.html');

    if (!empty(
    $_GET['synlogout']))
    {
    $ms =& ms();
    echo 
    $synlogout $ms->user->synlogout();
    }
    }
    else
    {
    if (
    Conf::get('captcha_status.login') && base64_decode($_SESSION['captcha']) != strtolower($_POST['captcha']))
    {
    $this->show_warning('captcha_failed');

    return;
    }

    $user_name trim($_POST['user_name']);
    $password $_POST['password'];

    $ms =& ms();
    $user_id $ms->user->auth($user_name$password);
    if (!
    $user_id)
    {

    $this->show_warning($ms->user->get_error());

    return;
    }
    else
    {

    $this->_do_login($user_id);


    $synlogin $ms->user->synlogin($user_id);
    }

    $this->show_message(Lang::get('login_successed') . $synlogin,
    'back_before_login'rawurldecode($_POST['ret_url']),
    'enter_member_center''index.php?app=member'
    );
    }
    }

    function 
    pop_warning ($msg$dialog_id '',$url '')
    {
    if(
    $msg == 'ok')
    {
    if(empty(
    $dialog_id))
    {
    $dialog_id APP '_' ACT;
    }
    if (!empty(
    $url))
    {
    echo 
    "<script type='text/javascript'>window.parent.location.href='".$url."';</script>";
    }
    echo 
    "<script type='text/javascript'>window.parent.js_success('" $dialog_id ."');</script>";
    }
    else
    {
    header("Content-Type:text/html;charset=".CHARSET);
    $msg is_array($msg) ? $msg : array(array('msg' => $msg));
    $errors '';
    foreach (
    $msg as $k => $v)
    {
    $error $v[obj] ? Lang::get($v[msg]) . " [" Lang::get($v[obj]) . "]" Lang::get($v[msg]);
    $errors .= $errors "<br />" $error $error;
    }
    echo 
    "<script type='text/javascript'>window.parent.js_fail('" $errors "');</script>";
    }
    }

    function 
    logout()
    {
    $this->visitor->logout();


    header("Location: index.php?app=member&act=login&synlogout=1");
    return;
    }


    function 
    _do_login($user_id)
    {
    $mod_user =& m('member');

    $user_info $mod_user->get(array(
    'conditions' => "user_id = '{$user_id}'",
    'join' => 'has_store',
    'fields' => 'user_id, user_name, reg_time, last_login, last_ip, store_id',
    ));


    $my_store = empty($user_info['store_id']) ? $user_info['store_id'];


    //unset($user_info['store_id']);


    $this->visitor->assign($user_info);


    $mod_user->edit("user_id = '{$user_id}'""last_login = '" gmtime() . "', last_ip = '" real_ip() . "', logins = logins + 1");


    $mod_cart =& m('cart');
    $mod_cart->edit("(user_id = '{$user_id}' OR session_id = '" SESS_ID "') AND store_id <> '{$my_store}'", array(
    'user_id' => $user_id,
    'session_id' => SESS_ID,
    ));


    $cart_items $mod_cart->find(array(
    'conditions' => "user_id='{$user_id}' GROUP BY spec_id",
    'fields' => 'COUNT(spec_id) as spec_count, spec_id, rec_id',
    ));
    if (!empty(
    $cart_items))
    {
    foreach (
    $cart_items as $rec_id => $cart_item)
    {
    if (
    $cart_item['spec_count'] > 1)
    {
    $mod_cart->drop("user_id='{$user_id}' AND spec_id='{$cart_item['spec_id']}' AND rec_id <> {$cart_item['rec_id']}");
    }
    }
    }
    }


    function 
    _get_navs()
    {
    $cache_server =& cache_server();
    $key 'common.navigation';
    $data $cache_server->get($key);
    if(
    $data === false)
    {
    $data = array(
    'header' => array(),
    'middle' => array(),
    'footer' => array(),
    );
    $nav_mod =& m('navigation');
    $rows $nav_mod->find(array(
    'order' => 'type, sort_order',
    ));
    foreach (
    $rows as $row)
    {
    $data[$row['type']][] = $row;
    }
    $cache_server->set($key$data86400);
    }

    return 
    $data;
    }


    function 
    jslang()
    {
    $lang Lang::fetch(lang_file('jslang'));
    parent::jslang($lang);
    }


    function 
    display_widgets($options)
    {
    $area = isset($options['area']) ? $options['area'] : '';
    $page = isset($options['page']) ? $options['page'] : '';
    if (!
    $area || !$page)
    {
    return;
    }
    include_once(
    ROOT_PATH '/includes/widget.base.php');


    $widgets get_widget_config($this->_get_template_name(), $page);


    if (!isset(
    $widgets['config'][$area]))
    {
    return;
    }


    foreach (
    $widgets['config'][$area] as $widget_id)
    {
    $widget_info $widgets['widgets'][$widget_id];
    $wn $widget_info['name'];
    $options$widget_info['options'];

    $widget =& widget($widget_id$wn$options);
    $widget->display();
    }
    }


    function 
    _get_template_name()
    {
    return 
    'default';
    }


    function 
    _get_style_name()
    {
    return 
    'default';
    }


    function 
    _curlocal($arr)
    {
    $curlocal = array(array(
    'text' => Lang::get('index'),
    'url' => SITE_URL '/index.php',
    ));
    if (
    is_array($arr))
    {
    $curlocal array_merge($curlocal$arr);
    }
    else
    {
    $args func_get_args();
    if (!empty(
    $args))
    {
    $len count($args);
    for (
    $i 0$i $len$i += 2)
    {
    $curlocal[] = array(
    'text' => $args[$i],
    'url' => $args[$i+1],
    );
    }
    }
    }

    $this->assign('_curlocal'$curlocal);
    }
    function 
    _init_visitor()
    {
    $this->visitor =& env('visitor', new UserVisitor());
    }
    }
    так же нагуглил что данная ошибка может вылезти из за того что не одинаковое количество параметров в функциях но не понимаю где рыть эти самые параметры
    --- Добавлено, 4 май 2015 ---
    ах да чуть не забыл Текущая версия PHP: 5.4 менять ниже не нужно нужно исправить скрипт подскажите как пожалуйста спасибо!
    --- Добавлено, 4 май 2015 ---
    вот код где образуется функция ECBaseApp

    PHP:
    class ECBaseApp extends BaseApp
    {
    var 
    $outcall;
    function 
    __construct()
    {
    $this->ECBaseApp();
    }
    function 
    ECBaseApp()
    {
    parent::__construct();

    if (!
    defined('MODULE'))
    {

    if (
    $this->gzip_enabled())
    {
    ob_start('ob_gzhandler');
    }
    else
    {
    ob_start();
    }


    if (
    CHARSET != 'utf-8' && isset($_REQUEST['ajax']))
    {
    $_FILES ecm_iconv_deep('utf-8'CHARSET$_FILES);
    $_GET ecm_iconv_deep('utf-8'CHARSET$_GET);
    $_POST ecm_iconv_deep('utf-8'CHARSET$_POST);
    }


    $setting =& af('settings');
    Conf::load($setting->getAll());


    $this->_init_visitor();


    $this->_run_cron();
    }
    }
    function 
    _init_visitor()
    {
    }


    function 
    _init_session()
    {
    import('session.lib');
    $this->_session = new SessionProcessor(db(), '`ecm_sessions`''`ecm_sessions_data`''ECM_ID');
    define('SESS_ID'$this->_session->get_session_id());

    $this->_session->add_related_table('`ecm_cart`''cart''session_id''user_id=0');
    $this->_session->my_session_start();
    env('session'$this->_session);
    }
    function 
    _config_view()
    {
    $this->_view->caching = ((DEBUG_MODE 1) == 0);
    $this->_view->force_compile = ((DEBUG_MODE 2) == 2);
    $this->_view->direct_output = ((DEBUG_MODE 4) == 4);
    $this->_view->gzip = (defined('ENABLED_GZIP') && ENABLED_GZIP === 1);
    $this->_view->lib_base site_url() . '/includes/libraries/javascript';
    }


    function 
    do_action($action)
    {

    (!empty(
    $_GET['module']) && !defined('MODULE')) && $action 'run_module';
    parent::do_action($action);
    }

    function 
    _run_action()
    {
    /*
    if (!$this->visitor->i_can('do_action'))
    {
    if (!$this->visitor->has_login)
    {
    $this->login();
    }
    else
    {
    $this->show_warning($this->visitor->get_error());
    }

    return;
    }
    */
    if ($this->_hook('on_run_action'))
    {
    return;
    }
    parent::_run_action();

    if (
    $this->_hook('end_run_action'))
    {
    return;
    }
    }

    function 
    run_module()
    {
    $module_name = empty($_REQUEST['module']) ? false strtolower(trim(str_replace('/'''$_REQUEST['module'])));
    if (!
    $module_name)
    {
    $this->show_warning('no_such_module');

    return;
    }
    $file defined('IN_BACKEND') ? 'admin' 'index';
    $module_class_file ROOT_PATH '/external/modules/' $module_name '/' $file '.module.php';
    require(
    ROOT_PATH '/includes/module.base.php');
    require(
    $module_class_file);
    define('MODULE'$module_name);
    $module_class_name ucfirst($module_name) . 'Module';


    $model_module =& m('module');
    $find_data $model_module->find('index:' $module_name);
    if (empty(
    $find_data))
    {

    $this->show_warning('no_such_module');

    return;
    }
    $info current($find_data);
    if (!
    $info['enabled'])
    {

    $this->show_warning('module_disabled');

    return;
    }


    Conf::load(array($module_name '_config' => unserialize($info['module_config'])));


    $module = new $module_class_name();
    c($module);
    $module->do_action(ACT);
    $module->destruct();
    }


    function 
    login()
    {
    $this->display('login.html');
    }
    function 
    logout()
    {
    $this->visitor->logout();
    }
    function 
    jslang($lang)
    {
    header('Content-Encoding:'.CHARSET);
    header("Content-Type: application/x-javascript\n");
    header("Expires: " .date(DATE_RFC822strtotime("+1 hour")). "\n");
    if (!
    $lang)
    {
    echo 
    'var lang = null;';
    }
    else
    {
    echo 
    'var lang = ' ecm_json_encode($lang) . ';';
    echo <<<EOT
    lang.get = function(key){
    eval('var langKey = lang.' + key);
    if(typeof(langKey) == 'undefined'){
    return key;
    }else{
    return langKey;
    }
    }
    EOT;
    в ней есть фукция
    function jslang($lang)
    {
    $lang Lang::fetch(lang_file('jslang'));
    parent::jslang($lang);
    }
    от сюда видно что в функции имеется параметр $lang но если я пишу этот параметр то сайт перестает работать вообще и не выдает ошибок что делать помагите пожалуйста спасибо!
     
    Lasted edited by : 4 май 2015
  2. Alex123321

    Alex123321

    Регистрация:
    4 май 2015
    Сообщения:
    0
    Симпатии:
    0
    Класс FrontendApp наследует от ECBaseApp.
    Класс FrontendAppпереопределяет функцию jslnag. При этом функция в родителе (ECBaseApp) принимает один параметр, а в ребенке (FrontendApp) - ни одного.
    Или передавайте параметр, или назовите функцию по другому.
    А вообще это просто предупреждение. Можно на него забить, если менять ничего неохота.
     
  3. apdate

    apdate

    Регистрация:
    4 май 2015
    Сообщения:
    0
    Симпатии:
    0
    я же писал что сделал это! но сайт вообще перестал работать (((
     
  4. Alex123321

    Alex123321

    Регистрация:
    4 май 2015
    Сообщения:
    0
    Симпатии:
    0
    добавьте = null function jslang($lang = null) и должно работать!