php관련 질문.. FATAL Declaration of .... ::removeAttribute()....

php관련 질문.. FATAL Declaration of .... ::removeAttribute()....

QA

php관련 질문.. FATAL Declaration of .... ::removeAttribute()....

본문

이게 무슨 오류인가요..php구문 전부를 수정해야 하는건가요..?

상상디자인 이라는 업체에서 제작했는데 cafe24로 호스팅을 이전하여 접속하니 이렇게 뜨네요..

 

접속주소는 http://icell2008.cafe24.com/public_html/ 입니다. 889라인의 오류인듯 한데 이걸 어떻게 변경해야 하나요..

 

 FATAL [/home/hosting_users/icell2008/www/mojavi/opt/renderers/SmartyRenderer.class.php:232] Declaration of SmartyRenderer::removeAttribute() should be compatible with that of Renderer::removeAttribute()

 

 

 

오류나는 줄 232번째 줄을 살펴보게 되면 달랑

 

}

 

이거 하나 있습니다.. 아래 소스 첨부할게요. 도움좀 주십쇼..

<?php


// +---------------------------------------------------------------------------+
// | This file is part of the Mojavi package.                                  |
// | Copyright (c) 2003 Sean Kerr.                                             |
// |                                                                           |
// | For the full copyright and license information, please view the COPYRIGHT |
// | file that was distributed with this source code. If the COPYRIGHT file is |
// | missing, please visit the Mojavi homepage: http://www.mojavi.org          |
// +---------------------------------------------------------------------------+


/**
 * SmartyRenderer renders a template using the Smarty template engine.
 *
 * @author  Sean Kerr
 * @package mojavi
 * @package renderers
 * @since   1.0
 */
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED); 
class SmartyRenderer extends Renderer
{


    /**
     * Create a new SmartyRenderer instance.
     *
     * @access public
     * @since  1.0
     */
    function SmartyRenderer ()
    {


        parent::Renderer();


        $this->engine = new Smarty;


    }


    /**
     * Render the view.
     *
     * <br/><br/>
     *
     * <note>
     *     This should never be called manually.
     * </note>
     *
     * @param Controller A Controller instance.
     * @param Request    A Request instance.
     * @param User       A User instance.
     *
     * @access public
     * @since  1.0
     */
    function execute (&$controller, &$request, &$user)
    {


        if ($this->template == NULL)
        {


            $error = 'A Smarty template has not been specified';


            trigger_error($error, E_USER_ERROR);


            return;


        }


        // assign smarty variables
        $this->setAttributeByRef('controller', $controller);
        $this->setAttributeByRef('mojavi',     $controller->getMojavi());
        $this->setAttributeByRef('request',    $request);
        $this->setAttributeByRef('user',       $user);


        if ($this->isPathAbsolute($this->template))
        {


            $dir            = dirname($this->template) . '/';
            $this->template = basename($this->template);


        } else
        {


            $dir = ($this->dir == NULL)
                   ? $controller->getModuleDir() . 'templates/'
                   : $this->dir;


            if (!is_readable($dir . $this->template) &&
                 is_readable(TEMPLATE_DIR . $this->template))
            {


                $dir = TEMPLATE_DIR;


            }


        }


        if (is_readable($dir . $this->template))
        {


            $this->engine->template_dir = $dir;


            if ($this->mode == RENDER_VAR ||
                $controller->getRenderMode() == RENDER_VAR)
            {


                $this->result = $this->engine->fetch($this->template);


            } else
            {


                $this->engine->display($this->template);


            }


        } else
        {


            $error = 'Template file ' . $dir . $this->template . ' does ' .
                     'not exist or is not readable';


            trigger_error($error, E_USER_ERROR);


        }


    }


    /**
     * Retrieve an attribute.
     *
     * @param string An attribute name.
     *
     * @return mixed An attribute value, if the given attribute exists,
     *               otherwise <b>NULL</b>.
     *
     * @access public
     * @since  1.0
     */
    function & getAttribute ($name)
    {


        $attribute =& $this->engine->get_template_vars($name);


        if ($attribute != NULL)
        {


            return $attribute;


        }


	$null = NULL;
        return $null;
    }


    /**
     * Remove an attribute.
     *
     * @param string An attribute name.
     *
     * @access public
     * @since  1.0
     */
    function removeAttribute ($name)
    {


        $this->engine->clear_assign($name);


    }


    /**
     * Set multiple attributes by using an associative array.
     *
     * @param array An associative array of attributes.
     *
     * @access public
     * @since  2.0
     */
    function setArray ($array)
    {


        $this->engine->assign($array);


    }


    /**
     * Set multiple attributes by using a reference to an associative array.
     *
     * @param array An associative array of attributes.
     *
     * @access public
     * @since  2.0
     */
    function setArrayByRef (&$array)
    {


        $this->engine->assign_by_ref($array);


    }


    /**
     * Set an attribute.
     *
     * @param string An attribute name.
     * @param mixed  An attribute value.
     *
     * @access public
     * @since  1.0
     */
    function setAttribute ($name, $value)
    {


        $this->engine->assign($name, $value);


    }


    /**
     * Set an attribute by reference.
     *
     * @param string An attribute name.
     * @param mixed  An attribute value.
     *
     * @access public
     * @since  1.0
     */
    function setAttributeByRef ($name, &$value)
    {


        $this->engine->assign_by_ref($name, $value);


    }






?>

이 질문에 댓글 쓰기 :

답변 3

상상디자인에 이전 설치 해달라고 하면 되는 것 아닐까요?

 

 

어떤 점인지 모르겠지만 프레임워크에서 에러 출력 하고 있으니... 지금 보여주신 소스 만으로는 해결이

되지 않습니다.

 

 

어디에 문제가 발생했는지. 디버깅 할 수 밖에 없어요.

 

 

아니면 이곳에 문의를 해보세요

 

www.smarty.net 

템플릿인가 보네요. 

순수(?) php랑 다르게 전체적으로 봐야 알 수 있습니다.

smarty나 template_를 가져다가 자기네들 방식에 맞게 바꾼 데도 많고 해서요.

제일 좋은 방법은 다른 분이 말씀하신 것처럼 제작한 업체에 물어 보시는 게 좋겠네요.

php 버전이 높아서 나는 에러 같습니다. (5.4 이상?)

에러라기 보담 그냥 경고성 문구 정도... ^^

호스팅사에 E_STRICT메시지 출력 안되도록 부탁해 보시구요

만약 안된다 하시면 해당 페이지에 

error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED); 

라고 적어넣어 보세용~~

답변을 작성하시기 전에 로그인 해주세요.
전체 123,771 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT