묻고답하기


Parse error: syntax error, unexpected '<' in /www/lautec_co_kr/classes/xml/XmlLangParser.class.php on line 281
 

 

이런식으로 떳는데.. 소스를 어떤식으로 고쳐야하나요>??ㅠ.ㅠ

해당소스입니다.. ㅠㅠ

--------------------------------------------------------------------------------------------------------------------------------

<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */

/**
 * XmlLangParser class
 * Change to lang php file from xml.
 * @author NAVER (developers@xpressengine.com)
 * @package /classes/xml
 * @version 0.1
 */
class XmlLangParser extends XmlParser
{

 /**
  * compiled language cache path
  * @var string
  */
 var $compiled_path = './files/cache/lang/'; // / directory path for compiled cache file
 /**
  * Target xml file
  * @var string
  */
 var $xml_file = NULL;

 /**
  * Target php file
  * @var string
  */
 var $php_file = NULL;

 /**
  * result source code
  * @var string
  */
 var $code;

 /**
  * language list, for example ko, en...
  * @var array
  */
 var $lang_types;

 /**
  * language type
  * @see _XE_PATH_.'/common/lang/lang.info'
  * @var string
  */
 var $lang_type;

 /**
  * constructor
  * @param string $xml_file
  * @param string $lang_type
  * @return void
  */
 function XmlLangParser($xml_file, $lang_type)
 {
  $this->lang_type = $lang_type;
  $this->xml_file = $xml_file;
  $this->php_file = $this->_getCompiledFileName($lang_type);
 }

 /**
  * compile a xml_file only when a corresponding php lang file does not exists or is outdated
  * @return string|bool Returns compiled php file.
  */
 function compile()
 {
  if(!file_exists($this->xml_file))
  {
   return FALSE;
  }
  if(!file_exists($this->php_file))
  {
   $this->_compile();
  }
  else
  {
   if(filemtime($this->xml_file) > filemtime($this->php_file))
   {
    $this->_compile();
   }
   else
   {
    return $this->php_file;
   }
  }

  return $this->_writeFile() ? $this->php_file : FALSE;
 }

 /**
  * Return compiled content
  * @return string Returns compiled lang source code
  */
 function getCompileContent()
 {
  if(!file_exists($this->xml_file))
  {
   return FALSE;
  }
  $this->_compile();

  return $this->code;
 }

 /**
  * Compile a xml_file
  * @return void
  */
 function _compile()
 {
  $lang_selected = Context::loadLangSelected();
  $this->lang_types = array_keys($lang_selected);

  // read xml file
  $buff = FileHandler::readFile($this->xml_file);
  $buff = str_replace('xml:lang', 'xml_lang', $buff);

  // xml parsing
  $xml_obj = parent::parse($buff);

  $item = $xml_obj->lang->item;
  if(!is_array($item))
  {
   $item = array($item);
  }
  foreach($item as $i)
  {
   $this->_parseItem($i, $var = '$lang->%s');
  }
 }

 /**
  * Writing cache file
  * @return void|bool
  */
 function _writeFile()
 {
  if(!$this->code)
  {
   return;
  }
  FileHandler::writeFile($this->php_file, "<?php\n" . $this->code);
  return false;
 }

 /**
  * Parsing item node, set content to '$this->code'
  * @param object $item
  * @param string $var
  * @return void
  */
 function _parseItem($item, $var)
 {
  $name = $item->attrs->name;
  $value = $item->value;
  $var = sprintf($var, $name);

  if($item->item)
  {
   $type = $item->attrs->type;
   $mode = $item->attrs->mode;

   if($type == 'array')
   {
    $this->code .= "if(!is_array({$var})){\n";
    $this->code .= " {$var} = array();\n";
    $this->code .= "}\n";
    $var .= '[\'%s\']';
   }
   else
   {
    $this->code .= "if(!is_object({$var})){\n";
    $this->code .= " {$var} = new stdClass();\n";
    $this->code .= "}\n";
    $var .= '->%s';
   }

   $items = $item->item;
   if(!is_array($items))
   {
    $items = array($items);
   }
   foreach($items as $item)
   {
    $this->_parseItem($item, $var);
   }
  }
  else
  {
   $code = $this->_parseValues($value, $var);
   $this->code .= $code;
  }
 }

 /**
  * Parsing value nodes
  * @param array $nodes
  * @param string $var
  * @return array|string
  */
 function _parseValues($nodes, $var)
 {
  if(!is_array($nodes))
  {
   $nodes = array($nodes);
  }

  $value = array();
  foreach($nodes as $node)
  {
   $return = $this->_parseValue($node, $var);
   if($return && is_array($return))
   {
    $value = array_merge($value, $return);
   }
  }

  if($value[$this->lang_type])
  {
   return $value[$this->lang_type];
  }
  else if($value['en'])
  {
   return $value['en'];
  }
  else if($value['ko'])
  {
   return $value['ko'];
  }

  foreach($this->lang_types as $lang_type)
  {
   if($lang_type == 'en' || $lang_type == 'ko' || $lang_type == $this->lang_type)
   {
    continue;
   }
   if($value[$lang_type])
   {
    return $value[$lang_type];
   }
  }

  return '';
 }

 /**
  * Parsing value node
  * @param object $node
  * @param string $var
  * @return array|bool
  */
 function _parseValue($node, $var)
 {
  $lang_type = $node->attrs->xml_lang;
  $value = $node->body;
  if(!$value)
  {
   return false;
  }

  $var .= '=\'' . str_replace("'", "\'", $value) . "';\n";
  return array($lang_type => $var);
 }

 /**
  * Get cache file name
  * @param string $lang_type
  * @param string $type
  * @return string
  */
 function _getCompiledFileName($lang_type, $type = 'php')
 {
  return sprintf('%s%s.%s.php', $this->compiled_path, md5($this->xml_file), $lang_type);
 }

}
/* End of file XmlLangParser.class.php */
/* Location: ./classes/xml/XmlLangParser.class.php */

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
차나왕 쉬운설치 설치후 생성 초보자입니다. [3] 2016.07.17 by 댑펑
SpeaC 게시판 확장변수 날짜에서 오늘날짜+3일 까지 선택안되게 하기..  
댑펑 사이트 속도 문제에 대해.. 관리자만 느린 현상  
Reboot 로그인 전,후 GNB 메뉴 다르게 보이게 하기  
스카이즈 플래닛 모듈 날짜 표현 방식? [2] 2016.07.17 by 스카이즈
홈런볼11 태그 입력 항목 삭제하기 [2] 2016.07.17 by 홈런볼11
스카이즈 하나의 XE계정으로 여러 사이트에서 로그인 할 수 있는 방법이 없을까요? [1] 2016.07.17 by sejin7940
frankman XE 오프라인에서 운영 가능 합니까?? [2] 2016.07.17 by frankman
odi+good 비밀글 (로그인한 사람만 볼 수 있는 글)을 웹문서에 노출(크롤링) 하게 하려면 어떻게 해야할까요? [1] 2016.07.17 by sejin7940
caras xe 설치과정 중에 404 Not Found 에러가 발생합니다. [3] 2016.07.17 by KannaOnline
차나왕 FTP 업로드 레이아웃 설정했는데 깨지는 이유가 뭘까요? [4] file 2016.07.16 by 차나왕
후밍 게시판 기본 글자색 변경 어떻게 해야하나요 [2] file 2016.07.16 by 후밍
김병화 위젯안의 글자크기만 조절하고싶은데요  
이연훈 사이트맵 별 GNB 변경 [1] file 2016.07.16 by sejin7940
옛신앙 스마트폰 삼성 갤럭시 S 3에서 메뉴가 안열리는 이유가 무엇인지요? [2] 2016.07.16 by 옛신앙
재형은채맘 SSL 적용후 썸네일 생성이 안됩니다. [2] file 2016.07.16 by 재형은채맘
마이미2 2차 메뉴를 가로로 나타나게 하려고 합니다. [2] 2016.07.15 by 마이미2
장범근 xe에 모바일로 이모티콘으로 글을 쓸때 이모티콘이 사라집니다. [1] 2016.07.15 by SimpleCode
단기종합 추천버튼 누르고 팝업,새로고침 둘다 안되게 하고싶습니다  
박라비 레이아웃을 제작중인 초보자입니다. [4] file 2016.07.15 by 박라비
즈시 document_srl 값만을 추출할수 있을까요? [1] 2016.07.15 by sejin7940
mkp9**** mysql 정보입력할때 뭐라입력해야하나요 [9] 2016.07.15 by ehalehal
홍찬 textarea 높이가 안변해요~; [2] 2016.07.15 by 홍찬
차나왕 설치시 DB정보 입력 ;; 고대디 호스팅 쓰는데요. [2] 2016.07.15 by 차나왕
왕킥굳킥 내용직접추가에다 url 설정하고싶은데 ㅠ  
saramjh 자료실의 bootstrap 레이아웃의 최신글 사이드바 [2] 2016.07.15 by saramjh
mkp9**** 메인 html?이라고해야하나 수정하는방법이궁급합니다. [2] file 2016.07.15 by mkp9****
saramjh 비회원 글작성시에 적용한 reCAPTCHA  
산에산 이미지 추가방법 [2] file 2016.07.14 by 산에산
Pzing 홈페이지에 대학 시간표 짜는 프로그램을 넣고싶습니다.