Index: branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis.php	(revision 19805)
+++ branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis.php	(revision 19856)
@@ -114,5 +114,5 @@
                     break;
                 }
-                $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "'); window.alert('SHOPマスタの登録が完了しました。');";
+                $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "'); window.alert('SHOPマスタの登録が完了しました。管理画面のURLを変更した場合は、新しいURLにアクセスしてください。');";
             }
             if( empty($this->arrForm['regular_holiday_ids']) ) {
@@ -129,4 +129,13 @@
             $regular_holiday_ids = explode('|', $this->arrForm['regular_holiday_ids']);
             $this->arrForm['regular_holiday_ids'] = $regular_holiday_ids;
+            $admin_dir = str_replace("/","",ADMIN_DIR);
+            $this->arrForm += array("admin_dir"=>$admin_dir);
+            $this->arrForm += array("admin_force_ssl"=>ADMIN_FORCE_SSL);
+            if(defined("ADMIN_ALLOW_HOSTS")){
+                $allow_hosts = unserialize(ADMIN_ALLOW_HOSTS);
+                $this->arrForm += array("admin_allow_hosts"=>implode("\n",$allow_hosts));
+            }else{
+                $this->arrForm += array("admin_allow_hosts"=>"");
+            }
             $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "');";
         }
@@ -192,4 +201,5 @@
         }
         $sqlval['update_date'] = 'Now()';
+        $this->lfUpdateAdminData($array);
         // UPDATEの実行
         $ret = $objQuery->update("dtb_baseinfo", $sqlval);
@@ -203,6 +213,72 @@
         }
         $sqlval['update_date'] = 'Now()';
+        $this->lfUpdateAdminData($array);
         // INSERTの実行
         $ret = $objQuery->insert("dtb_baseinfo", $sqlval);
+    }
+    
+    function lfUpdateAdminData($array){
+        $admin_dir = trim($array['admin_dir'])."/";
+        $admin_force_ssl = "FALSE";
+        if($array['admin_force_ssl'] == 1){
+            $admin_force_ssl = "TRUE";
+        }
+        $admin_allow_hosts = explode("\n",$array['admin_allow_hosts']);
+        foreach($admin_allow_hosts as $key=>$host){
+            $host = trim($host);
+            if(strlen($host) >= 8){
+                $admin_allow_hosts[$key] = $host;
+            }else{
+                unset($admin_allow_hosts[$key]);
+            }
+        }
+        $admin_allow_hosts = serialize($admin_allow_hosts);
+        //権限チェック 
+        if(!is_writable(DATA_REALDIR . "install.php")){
+            $this->arrErr["admin_force_ssl"] = DATA_REALDIR . "install.phpを変更する権限がありません。";
+        }
+        if(count($this->arrErr) > 0){
+            return false;
+        }
+        //install.phpの書き換え
+        $installData = file(DATA_REALDIR."install.php",FILE_IGNORE_NEW_LINES);
+        $diff = 0;
+        foreach($installData as $key=>$line){
+            if(strpos($line,"ADMIN_DIR") !== false and ADMIN_DIR != $admin_dir){
+                if(!is_writable(HTML_REALDIR . ADMIN_DIR)){
+                    $this->arrErr["admin_dir"] = URL_PATH.ADMIN_DIR."のディレクトリ名を変更する権限がありません。";
+                }
+                if(!is_writable(USER_TEMPLATE_REALDIR . ADMIN_DIR)){
+                    $this->arrErr["admin_dir"] = USER_TEMPLATE_REALDIR . ADMIN_DIR."のディレクトリ名を変更する権限がありません。";        
+                }
+                if(count($this->arrErr) > 0 ){
+                    return false;
+                }else{
+                    $installData[$key] = 'define("ADMIN_DIR","'.$admin_dir.'");';
+                    //管理画面ディレクトリのリネーム
+                    rename(HTML_REALDIR.ADMIN_DIR,HTML_REALDIR.$admin_dir);
+                    rename(USER_TEMPLATE_REALDIR.ADMIN_DIR,USER_TEMPLATE_REALDIR.$admin_dir);
+                    $diff ++;
+                }
+            }
+            
+            if(strpos($line,"ADMIN_FORCE_SSL") !== false and ADMIN_FORCE_SSL !== (boolean)$array['admin_force_ssl']){
+                $installData[$key] = 'define("ADMIN_FORCE_SSL",'.$admin_force_ssl.');';
+                $diff ++;
+            }
+            if(strpos($line,"ADMIN_ALLOW_HOSTS") !== false and ADMIN_ALLOW_HOSTS != $admin_allow_hosts) {
+                $installData[$key] = "define('ADMIN_ALLOW_HOSTS','".$admin_allow_hosts."');";
+                $diff ++;
+            }
+        }
+        
+        if($diff > 0) {
+            $fp = fopen(DATA_REALDIR . "install.php","wb");
+            $installData = implode("\n",$installData);
+            echo $installData;
+            fwrite($fp, $installData);
+            fclose($fp);
+        }
+        return true;
     }
 
@@ -239,4 +315,7 @@
         $arrConvList['email03'] = "a";
         $arrConvList['email04'] = "a";
+        $arrConvList['admin_dir'] = "a";
+        $arrConvList['admin_force_ssl'] = "n";
+        $arrConvList['admin_allow_hosts'] = "a";
         $arrConvList['tax'] = "n";
         $arrConvList['free_rule'] = "n";
@@ -272,4 +351,10 @@
         $objErr->doFunc(array('メール送信元メールアドレス', "email03", STEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"));
         $objErr->doFunc(array('送信エラー受付メールアドレス', "email04", STEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK","MAX_LENGTH_CHECK"));
+        //管理画面設定チェック
+        $objErr->doFunc(array('ディレクトリ名', "admin_dir", ID_MAX_LEN) ,array("EXIST_CHECK","SPTAB_CHECK", "ALNUM_CHECK"));
+        $objErr->doFunc(array('SSL制限', "admin_force_ssl", 1) ,array("NUM_CHECK", "MAX_LENGTH_CHECK"));
+        $objErr->doFunc(array('IP制限', "admin_allow_hosts", LTEXT_LEN) ,array("IP_CHECK", "MAX_LENGTH_CHECK"));
+        
+
         // 電話番号チェック
         $objErr->doFunc(array("TEL", "tel01", "tel02", "tel03"), array("TEL_CHECK"));
Index: branches/version-2_5-dev/data/class/SC_CheckError.php
===================================================================
--- branches/version-2_5-dev/data/class/SC_CheckError.php	(revision 19854)
+++ branches/version-2_5-dev/data/class/SC_CheckError.php	(revision 19856)
@@ -596,12 +596,14 @@
         //改行コードが含まれている場合には配列に変換
         $params = str_replace("\r","",$this->arrParam[$value[1]]);
-        if(strpos("\n",$params) === false){
-            $params .= "\n";
-        }
-        $params = explode("\n",$params);
-        foreach($params as $param){
-            $param = trim($param);
-            if(long2ip(ip2long($param)) != trim($param) and !empty($param)) {
-                $this->arrErr[$value[1]] = "※ " . $value[0] . "に正しい形式のIPアドレスを入力してください。<br />";
+        if(!empty($params)){
+            if(strpos($params,"\n") === false){
+                $params .= "\n";
+            }
+            $params = explode("\n",$params);
+            foreach($params as $param){
+                $param = trim($param);
+                if(long2ip(ip2long($param)) != trim($param) and !empty($param)) {
+                    $this->arrErr[$value[1]] = "※ " . $value[0] . "に正しい形式のIPアドレスを入力してください。<br />";
+                }
             }
         }
Index: branches/version-2_5-dev/data/Smarty/templates/admin/basis/index.tpl
===================================================================
--- branches/version-2_5-dev/data/Smarty/templates/admin/basis/index.tpl	(revision 19833)
+++ branches/version-2_5-dev/data/Smarty/templates/admin/basis/index.tpl	(revision 19856)
@@ -244,4 +244,35 @@
   </table>
 
+  <h2>管理画面設定</h2>
+  <table id="basis-index-admin">
+    <tr>
+      <th>ディレクトリ名</th>
+      <td>
+        <!--{assign var=key value="admin_dir"}-->
+        <span class="attention"><!--{$arrErr[$key]}--></span>
+        <!--{$smarty.const.URL_PATH}--><input type="text" name="<!--{$key}-->" value="<!--{$arrForm[$key]|h}-->" maxlength="<!--{$smarty.const.ID_MAX_LEN}-->" size="40" class="box40" style="<!--{if $arrErr[$key] != ""}-->background-color: <!--{$smarty.const.ERR_COLOR}-->;<!--{/if}-->"/>/
+      </td>
+    </tr>
+    <tr>
+      <th>SSL制限</th>
+      <td>
+        <!--{assign var=key value="admin_force_ssl"}-->
+        <span class="attention"><!--{$arrErr[$key]}--></span>
+        <input type="checkbox" name="<!--{$key}-->" value="1" id="<!--{$key}-->" <!--{if $arrForm[$key] == 1}-->checked="checked"<!--{/if}--> /><label for="<!--{$key}-->">SSLを強制する。</label>
+      </td>
+    </tr>
+    <tr>
+      <th>IP制限</th>
+      <td>
+        <!--{assign var=key value="admin_allow_hosts"}-->
+        <span class="attention"><!--{$arrErr[$key]}--></span>
+        <textarea name="<!--{$key}-->" cols="60" rows="8" class="area60" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" ><!--{$arrForm[$key]|h}--></textarea>
+        <span class="attention"> (上限<!--{$smarty.const.LTEXT_LEN}-->文字)</span><br />
+        <span class="fs10">※管理画面へのアクセスを特定のIPアドレスからの接続のみに制限します。アクセスを許可するIPアドレスを1行づつ入力してください。何も入力しない場合は全てを許可します。</span><br />
+      </td>
+    </tr>
+  </table>
+
+
   <h2>定休日設定</h2>
   <table id="basis-index-holiday">
