Tips

Webフォルダを相対パスで設定する

日付2011/07/01
ID76351 (英語原文参照)
バージョンv12
プラットフォームMac/Win

Webフォルダは, SET HTML ROOTコマンドで設定できますが, このコマンドには絶対パスを渡す必要があります。データベースフォルダを起点とした相対パスでWebフォルダを設定したい場合, Get 4D folderでデータベースフォルダのパスを取得し, Folder separator定数などと組み合わせて相対パスを絶対パスに変換する下記のようなメソッドを用意すると便利です。

C_TEXT($1;$name_t)
C_LONGINT($2;$levelUp_l)

C_TEXT($path4D_t;$pathWeb_t;$char_t)
C_LONGINT($i;$length_l;$found_l)

$name_t:=$1
$levelUp_l:=$2

//get path to the structure file
$path4D_t:=Get 4D folder(Database Folder)
$length_l:=Length($path4D_t)

$found_l:=0
$pathWeb_t:=""

//the 4D Path ends with a folder separator, so our search needs to increase by 1
$levelUp_l:=$levelUp_l+1

//iterate through each character of the path
For ($i;$length_l;1;-1)
 $char_t:=$path4D_t≤$i≥

   //check for the folder separator character
  If ($char_t=Folder separator)
   $found_l:=$found_l+1

   If ($found_l=$levelUp_l)
     //we are at the correct position that we want

     //now build the new path
    $pathWeb_t:=Substring($path4D_t;1;$length_l-($length_l-$i))
    $pathWeb_t:=$pathWeb_t+$name_t+Folder separator

    $i:=1 //stop the loop

  End if 
 End if 
End for 

//use the new path as the root folder
SET HTML ROOT($pathWeb_t)