묻고답하기


Parse error: syntax error, unexpected '<' in /www/lautec_co_kr/modules/admin/admin.class.php on line 487

 

admin.class.php  열어봐도 이상이 없는데.. 문제가 뭘까요...

 

소스입니다..

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

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

/**
 * admin class
 * Base class of admin module
 *
 * @author NAVER (developers@xpressengine.com)
 * @package /modules/admin
 * @version 0.1
 */
class admin extends ModuleObject
{

 private $adminMenuName = '__ADMINMENU_V17__';
 public function getAdminMenuName()
 {
  return $this->adminMenuName;
 }

 /**
  * Install admin module
  * @return Object
  */
 function moduleInstall()
 {
  return new Object();
 }

 /**
  * If update is necessary it returns true
  * @return bool
  */
 function checkUpdate()
 {
  $oDB = DB::getInstance();
  if(!$oDB->isColumnExists("admin_favorite", "type"))
  {
   return TRUE;
  }

  return FALSE;
 }

 /**
  * Update module
  * @return Object
  */
 function moduleUpdate()
 {
  $oDB = DB::getInstance();
  if(!$oDB->isColumnExists("admin_favorite", "type"))
  {
   $oAdminAdminModel = getAdminModel('admin');
   $output = $oAdminAdminModel->getFavoriteList();
   $favoriteList = $output->get('favoriteList');

   $oDB->dropColumn('admin_favorite', 'admin_favorite_srl');
   $oDB->addColumn('admin_favorite', "admin_favorite_srl", "number", 11, 0);
   $oDB->addColumn('admin_favorite', "type", "varchar", 30, 'module');
   if(is_array($favoriteList))
   {
    $oAdminAdminController = getAdminController('admin');
    $oAdminAdminController->_deleteAllFavorite();
    foreach($favoriteList AS $key => $value)
    {
     $oAdminAdminController->_insertFavorite($value->site_srl, $value->module);
    }
   }
  }
  return new Object();
 }

 /**
  * Regenerate cache file
  * @return void
  */
 function recompileCache()
 {

 }

 public function checkAdminMenu()
 {
  // for admin menu
  if(Context::isInstalled())
  {
   $oMenuAdminModel = getAdminModel('menu');
   $output = $oMenuAdminModel->getMenuByTitle($this->adminMenuName);

   if(!$output->menu_srl)
   {
    $this->createXeAdminMenu();
    $output = $oMenuAdminModel->getMenuByTitle($this->adminMenuName);
   }
   else
   {
    if(!is_readable(FileHandler::getRealPath($output->php_file)))
    {
     $oMenuAdminController = getAdminController('menu');
     $oMenuAdminController->makeXmlFile($output->menu_srl);
    }
    Context::set('admin_menu_srl', $output->menu_srl);
   }

   $this->_oldAdminmenuDelete();

   $returnObj = new stdClass();
   $returnObj->menu_srl = $output->menu_srl;
   $returnObj->php_file = FileHandler::getRealPath($output->php_file);

   return $returnObj;
  }
 }

 /**
  * Regenerate xe admin default menu
  * @return void
  */
 public function createXeAdminMenu()
 {
  //insert menu
  $args = new stdClass();
  $args->title = $this->adminMenuName;
  $menuSrl = $args->menu_srl = getNextSequence();
  $args->listorder = $args->menu_srl * -1;
  $output = executeQuery('menu.insertMenu', $args);
  Context::set('admin_menu_srl', $menuSrl);
  unset($args);

  // gnb item create
  $gnbList = array('dashboard', 'menu', 'user', 'content', 'configuration', 'advanced');
  foreach($gnbList AS $key => $value)
  {
   //insert menu item
   $args = new stdClass();
   $args->menu_srl = $menuSrl;
   $args->menu_item_srl = getNextSequence();
   $args->name = '{$lang->menu_gnb[\'' . $value . '\']}';
   if($value == 'dashboard')
   {
    $args->url = 'index.php?module=admin';
   }
   else
   {
    $args->url = '#';
   }
   $args->listorder = -1 * $args->menu_item_srl;
   $output = executeQuery('menu.insertMenuItem', $args);
  }

  $oMenuAdminModel = getAdminModel('menu');
  $columnList = array('menu_item_srl', 'name');
  $output = $oMenuAdminModel->getMenuItems($menuSrl, 0, $columnList);
  if(is_array($output->data))
  {
   foreach($output->data AS $key => $value)
   {
    preg_match('/\{\$lang->menu_gnb\[(.*?)\]\}/i', $value->name, $m);
    $gnbDBList[$m[1]] = $value->menu_item_srl;
   }
  }
  unset($args);

  $gnbModuleList = array(
   0 => array(
    'module' => 'menu',
    'subMenu' => array('siteMap', 'siteDesign'),
   ),
   1 => array(
    'module' => 'member',
    'subMenu' => array('userList', 'userSetting', 'userGroup'),
   ),
   2 => array(
    'module' => 'document',
    'subMenu' => array('document'),
   ),
   3 => array(
    'module' => 'comment',
    'subMenu' => array('comment'),
   ),
   4 => array(
    'module' => 'file',
    'subMenu' => array('file'),
   ),
   5 => array(
    'module' => 'poll',
    'subMenu' => array('poll'),
   ),
   6 => array(
    'module' => 'rss',
    'subMenu' => array('rss'),
   ),
   7 => array(
    'module' => 'module',
    'subMenu' => array('multilingual'),
   ),
   8 => array(
    'module' => 'importer',
    'subMenu' => array('importer'),
   ),
   9 => array(
    'module' => 'trash',
    'subMenu' => array('trash'),
   ),
   10 => array(
    'module' => 'autoinstall',
    'subMenu' => array('easyInstall'),
   ),
   11 => array(
    'module' => 'layout',
    'subMenu' => array('installedLayout'),
   ),
   12 => array(
    'module' => 'module',
    'subMenu' => array('installedModule'),
   ),
   13 => array(
    'module' => 'widget',
    'subMenu' => array('installedWidget'),
   ),
   14 => array(
    'module' => 'addon',
    'subMenu' => array('installedAddon'),
   ),
   15 => array(
    'module' => 'editor',
    'subMenu' => array('editor'),
   ),
   16 => array(
    'module' => 'spamfilter',
    'subMenu' => array('spamFilter'),
   ),
   17 => array(
    'module' => 'admin',
    'subMenu' => array('adminConfigurationGeneral', 'adminConfigurationFtp', 'adminMenuSetup'),
   ),
   18 => array(
    'module' => 'file',
    'subMenu' => array('fileUpload'),
   ),
   19 => array(
    'module' => 'module',
    'subMenu' => array('filebox'),
   ),
   20 => array(
    'module' => 'point',
    'subMenu' => array('point')
   ),
  );

  $oMemberModel = getModel('member');
  $output = $oMemberModel->getAdminGroup(array('group_srl'));
  $adminGroupSrl = $output->group_srl;

  // gnb sub item create
  // common argument setting
  $args = new stdClass();
  $args->menu_srl = $menuSrl;
  $args->open_window = 'N';
  $args->expand = 'N';
  $args->normal_btn = '';
  $args->hover_btn = '';
  $args->active_btn = '';
  $args->group_srls = $adminGroupSrl;
  $oModuleModel = getModel('module');

  foreach($gnbModuleList AS $key => $value)
  {
   if(is_array($value['subMenu']))
   {
    $moduleActionInfo = $oModuleModel->getModuleActionXml($value['module']);
    foreach($value['subMenu'] AS $key2 => $value2)
    {
     $gnbKey = "'" . $this->_getGnbKey($value2) . "'";

     //insert menu item
     $args->menu_item_srl = getNextSequence();
     $args->parent_srl = $gnbDBList[$gnbKey];
     $args->name = '{$lang->menu_gnb_sub[\'' . $value2 . '\']}';
     $args->url = 'index.php?module=admin&act=' . $moduleActionInfo->menu->{$value2}->index;
     $args->listorder = -1 * $args->menu_item_srl;
     $output = executeQuery('menu.insertMenuItem', $args);
    }
   }
  }

  $oMenuAdminConroller = getAdminController('menu');
  $oMenuAdminConroller->makeXmlFile($menuSrl);

  // does not recreate lang cache sometimes
  FileHandler::RemoveFilesInDir('./files/cache/lang');
  FileHandler::RemoveFilesInDir('./files/cache/menu/admin_lang');
 }

 /**
  * Return parent menu key by child menu
  * @return string
  */
 function _getGnbKey($menuName)
 {
  switch($menuName)
  {
   case 'siteMap':
   case 'siteDesign':
    return 'menu';
    break;
   case 'userList':
   case 'userSetting':
   case 'userGroup':
   case 'point':
    return 'user';
    break;
   case 'document':
   case 'comment':
   case 'file':
   case 'poll':
   case 'rss':
   case 'multilingual':
   case 'importer':
   case 'trash':
   case 'spamFilter':
    return 'content';
    break;
   case 'easyInstall':
   case 'installedLayout':
   case 'installedModule':
   case 'installedWidget':
   case 'installedAddon':
   case 'editor':
    return 'advanced';
    break;
   case 'adminConfigurationGeneral':
   case 'adminConfigurationFtp':
   case 'adminMenuSetup':
   case 'fileUpload':
   case 'filebox':
    return 'configuration';
    break;
   default:
    return 'advanced';
  }
 }

 /**
  * Return parent old menu key by child menu
  * @return string
  */
 function _getOldGnbKey($menuName)
 {
  switch($menuName)
  {
   case 'siteMap':
    return 'menu';
    break;
   case 'userList':
   case 'userSetting':
   case 'userGroup':
   case 'point':
    return 'user';
    break;
   case 'document':
   case 'comment':
   case 'file':
   case 'poll':
   case 'rss':
   case 'multilingual':
   case 'importer':
   case 'trash':
    return 'content';
    break;
   case 'easyInstall':
   case 'installedLayout':
   case 'installedModule':
   case 'installedWidget':
   case 'installedAddon':
   case 'editor':
   case 'spamFilter':
    return 'extensions';
    break;
   case 'adminConfigurationGeneral':
   case 'adminConfigurationFtp':
   case 'adminMenuSetup':
   case 'fileUpload':
   case 'filebox':
    return 'configuration';
    break;
   default:
    return 'user_added_menu';
  }
 }

 private function _oldAdminmenuDelete()
 {
  $oMenuAdminModel = getAdminModel('menu');

  $output = $oMenuAdminModel->getMenuByTitle($this->adminMenuName);
  $newAdminmenuSrl = $output->menu_srl;
  $output = $oMenuAdminModel->getMenuItems($newAdminmenuSrl, 0);
  $newAdminParentMenuList = array();
  if(is_array($output->data))
  {
   foreach($output->data AS $key => $value)
   {
    $tmp = explode('\'', $value->name);
    $newAdminParentMenuList[$tmp[1]] = $value;
   }
  }
  unset($output);

  // old admin menu
  $output = $oMenuAdminModel->getMenuByTitle('__XE_ADMIN__');
  $menuSrl = $output->menu_srl;

  $oMenuAdminController = getAdminController('menu');
  if($menuSrl)
  {
   $output = $oMenuAdminModel->getMenuItems($menuSrl);
   if(is_array($output->data))
   {
    $parentMenu = array();
    foreach($output->data AS $key => $menuItem)
    {
     if($menuItem->parent_srl == 0)
     {
      $tmp = explode('\'', $menuItem->name);
      $parentMenuKey = $tmp[1];
      $parentMenu[$menuItem->menu_item_srl] = $parentMenuKey;
     }
    }

    $isUserAddedMenuMoved = FALSE;
    foreach($output->data AS $key => $menuItem)
    {
     if($menuItem->parent_srl != 0)
     {
      $tmp = explode('\'', $menuItem->name);
      $menuKey = $tmp[1];

      $result = $this->_getOldGnbKey($menuKey);
      if($result == 'user_added_menu')
      {
       // theme menu use not anymore
       /* if($parentMenu[$menuItem->parent_srl] == 'theme')
         {
         $newParentItem = $newAdminParentMenuList['menu'];
         }
         else */
       if($parentMenu[$menuItem->parent_srl] == 'extensions')
       {
        $newParentItem = $newAdminParentMenuList['advanced'];
       }
       else
       {
        $newParentItem = $newAdminParentMenuList[$parentMenu[$menuItem->parent_srl]];
       }
       $menuItem->menu_srl = $newParentItem->menu_srl;
       $menuItem->parent_srl = $newParentItem->menu_item_srl;

       $output = executeQuery('menu.updateMenuItem', $menuItem);
       $isUserAddedMenuMoved = TRUE;
      }
     }
    }

    if($isUserAddedMenuMoved)
    {
     $oMenuAdminController->makeXmlFile($newAdminmenuSrl);
    }
   }
  }

  // all old admin menu delete
  $output = $oMenuAdminModel->getMenuListByTitle('__XE_ADMIN__');
  if(is_array($output))
  {
   foreach($output AS $key=>$value)
   {
    $oMenuAdminController->deleteMenu($value->menu_srl);
   }
  }
 }

}
/* End of file admin.class.php */
/* Location: ./modules/admin/admin.class.php */

 

 

 

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
최재원 [질문]포토샵 VS 플래시 = ? [4] 2007.08.10
박정수 노프레임 홈을 만드는데.. 자꾸 이상한 언어가 떠서... [4] 2007.08.10
강경관 mysql 설치도중에 생기는 오류  
뜨아.. 질문.. 도와주세여~~~ [1] 2007.08.10
[폐]허접-_- 중요한 질문 드립니다. [3] 2007.08.10
배상윤 소스 좀봐주세요........[급........함]  
서동미 팝업창 질문이여 [3] 2007.08.10
보이드 select를 하면 자동으로 submit가 되게 할려면 [2] 2007.08.10
이성민 게시판 새글이라구"new"이런거 나오게 하려면 어케 해야해요?(운영자님) [1] 2007.08.10
김선용 질문입니다! [2] 2007.08.10
최현수 telnet 또는 ssh가 되지 않을때 mysql dump파일 복구는? [1] 2007.08.10
bebe 역슬래쉬..ㅠㅠ [1] 2007.08.10
공부중 노프레임 에서의 타겟지정법좀 가르쳐주세요..  
미노우 [re] 노프레임 에서의 타겟지정법좀 가르쳐주세요..  
공부중 [re] 노프레임 에서의 타겟지정법좀 가르쳐주세요..  
미노우 클라이언트에서 자바스크립트를 막을수 있나요? [2] 2007.08.10
Anzara ½™ 게시판서 html 사용하기 질문! [3] 2007.08.10
오경근 제로보드 설치된 디렉토리가 웹브라우저에서 보이는 문제  
cool explode함수와 split함수의 차이점 [1] 2007.08.10
아싸~* zip파일을 다운받을려면..어떻게.. [2] 2007.08.10
ZipShin [re] zip파일을 다운받을려면..어떻게..  
김현석 <php>디렉토리 안에 모든파일명을 리턴받으려면? [4] 2007.08.10
임준환 [PHP질문] 점퍼워니님께 다시 질문여! [3] 2007.08.10
오승원 에러가 왜 나죠? [3] 2007.08.10
임춘근 게시판 삭제시 번호 정렬 하는것좀 가르쳐 주세요. [1] 2007.08.10
임준환 [PHP질문] 초보입니다. 문법이해가 안가요 [2] 2007.08.10
후니 그런데요~  
E3 에러의 정체좀 가르쳐주세요..;; [2] 2007.08.10
꿍뚱빡뜨리스 로그인 페이지~~  
쩡키 폰트 크기 줄이고 키우기 좀 알려주세요. [1] 2007.08.10