■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

管理画面からプラグインを削除でプラグイン以外のフォルダも削除される

 

 1  |  2   | 次のページ>

ouka_d > 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/17 0:20
BaserCMS 1.6.7.1
baseruploader 1.2.8
basertwitter 1.0.1

xampplite 1.7.3
windowsXP sp3

vbsで仮想ドライブ化
Z:\xampplite\htdocs\test\
Z:\usr
Z:\{他いろいろのフォルダ}

管理画面からプラグインを削除すると「Z:\xampplite」以外のフォルダが削除されます。


サブフォルダにBaserCMSを設置した状態でリンクが無効になっている箇所

Z:\xampplite\htdocs\test\baser\plugins\blog\views\helpers\blog.php
getCategoryUrl の $this->base が空のときがある
(ウィジェットのブログカテゴリ一覧のリンクURL、上記例だと../test/test/と重複する)

Z:\xampplite\htdocs\webgate\baser\plugins\blog\views\blog_categories\admin\form.ctp
このカテゴリのURL ../archives/category/{BlogCategory.no} ?? BlogCategory.name では・・・
ryuring > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/17 3:16
色々とご報告ありがとうございます!

引用:
管理画面からプラグインを削除すると「Z:\xampplite」以外のフォルダが削除されます。


こちら、Windows のXAMPP1.7.1 で試しても全く再現できませんでした。
linux系のサーバーでも再現できません。
何かヒントとなる情報があればよいのですが。。


引用:
サブフォルダにBaserCMSを設置した状態でリンクが無効になっている箇所

Z:\xampplite\htdocs\test\baser\plugins\blog\views\helpers\blog.php
getCategoryUrl の $this->base が空のときがある
(ウィジェットのブログカテゴリ一覧のリンクURL、上記例だと../test/test/と重複する)


ブログのサイドバーのカテゴリ一覧ですね。確認しました。
チケットをきり解決方法を記載しました。
http://project.e-catchup.jp/issues/1163


引用:
Z:\xampplite\htdocs\webgate\baser\plugins\blog\views\blog_categories\admin\form.ctp
このカテゴリのURL ../archives/category/{BlogCategory.no} ?? BlogCategory.name では・・・


ブログカテゴリの編集画面のリンクですね。確認しました。
おっしゃるとおりです。
こちらもチケットを切り、解決方法を記載しました。
http://project.e-catchup.jp/issues/1164

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ouka_d > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/17 13:36
ヒントになればいいのですが・・・

Z:\xampplite\htdocs\test\baser\controllers\plugins_controller.php
292行目付近の「プラグインフォルダを削除」と「一時フォルダを削除」に巻き込まれているみたいです。



「var_dump($tmpPath);」では「string(51) "Z:\xampplite\htdocs\test\app\tmp\schemas\uninstall\" 」になっています。
また、日本語のフォルダ名とファイル名は影響ありませんが、英数字のフォルダ名とファイル名は削除されます。


// プラグインフォルダを削除
$folder->delete(APP.'plugins'.DS.$pluginName);

// 一時フォルダを削除
$folder->delete($tmpPath);



Zドライブは以下のvbsで作成しています。
Option Explicit
On Error Resume Next

Dim str
Dim strDrive        ' ドライブ名
Dim objWshShell
Dim cmd             ' コマンド代入
Dim objFSO
Dim objWShell
Dim strNewFolder    ' 移動するフォルダ
Dim strCmdLine      ' 実行するコマンド
Dim strUrl          ' 表示するページ
Dim objIE           ' IE オブジェクト

strDrive = "Z"
strUrl   = "http://localhost"

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = CreateObject("WScript.Shell")
Set objWShell = CreateObject("WScript.Shell")

' カレントディレクトリを str に代入
str= objWshShell.CurrentDirectory

' 仮想ドライブの割り当て
cmd = "subst z: " & str 
CreateObject("WScript.Shell").Run cmd ,0
WScript.Sleep 5000
If (objFSO.DriveExists("Z")) then
else
    WScript.Sleep 5000
end if

' XAMPP Lite を起動
If Err.Number = 0 Then
    strNewFolder = strDrive & ":\xampplite"
    objWshShell.CurrentDirectory = strNewFolder
    strCmdLine = "xampp_start.exe"
    objWshShell.Exec(strCmdLine)
Else
    WScript.Echo "エラー: " & Err.Description
End If

' InternetExplorer を起動
Set objIE = WScript.CreateObject("InternetExplorer.Application")
    objIE.Visible = True
    objIE.Navigate strUrl

WScript.Echo strDrive & " ドライブを作成しました。" & vbCrLf & "XAMPP Lite を起動しました。"

Set objIE = Nothing
Set objFSO = Nothing
Set objWshShell = Nothing
Set objWShell = Nothing

ryuring > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/20 22:48
Zドライブの作成方法についてはわかりませんが、

引用:
「var_dump($tmpPath);」では「string(51) "Z:\xampplite\htdocs\test\app\tmp\schemas\uninstall\" 」になっています。


$tmpPath変数の中身は特に問題なさそうですね。

同じあたりで次の一行を試してもらえます?

var_dump(APP.'plugins'.DS.$pluginName);

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ouka_d > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/22 9:14
返答遅れました

「var_dump(APP.'plugins'.DS.$pluginName);」は
「string(45) "Z:\xampplite\htdocs\test\app\plugins\uploader"」になっています。


Zドライブについてですが、開発環境を持ち運び可能にするために、
以下のページのVBScriptを利用しています。

mistgreen - どこでも XAMPPでXOOPS for Windows


[任意のドライブの任意のフォルダ]に以下の4つを配置。
・[xamplite]
・[usr]
・start.vbs
・stop.vbs

この状態で「start.vbs」を利用して[任意のドライブの任意のフォルダ]をZドライブに割り当ててます。
ryuring > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/22 12:29
こんにちは。

引用:
「var_dump(APP.'plugins'.DS.$pluginName);」は
「string(45) "Z:\xampplite\htdocs\test\app\plugins\uploader"」になっています。


全く問題ないですね。

それで xampplite 配下が削除されるのかが全くわかりません。。

また何か情報がありましたらよろしくお願いします。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ouka_d > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/22 14:40
Z:\xampplite\htdocs\test\baser\controllers\plugins_controller.php
265行目「$folder->delete();」が原因のようです。


$tmpPathを念のため消してから作成している動きなのですか?
コメントアウトにしたら削除されなくはなりましたが・・・
ryuring > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/22 15:02
引用:
Z:\xampplite\htdocs\test\baser\controllers\plugins_controller.php
265行目「$folder->delete();」が原因のようです。


その前の行で、$tmpPathを指定しているのに、全く関係ないフォルダが削除されるというのがちょっとわからないですね。

引用:
$tmpPathを念のため消してから作成している動きなのですか?


そうですね。$tmpPathはあくまで一時フォルダなので。。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ouka_d > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/22 15:11
最後の行のように明示的に指定しときます。
$folder->delete($tmpPath);

ありがとうございました。
ryuring > Re: 管理画面からプラグインを削除でプラグイン以外のフォルダも削除される @ 2010/12/22 15:36
ouka_dさん、もしよろしければその対処でどうなったかを教えて頂けますか?

基本的に、フォルダの削除を行っている Folderクラスは、deleteメソッドでパスを指定しない場合、コンストラクタで指定したパスがターゲットとなる仕様となっています。

つまり、265行目で、引き数がない場合でも、264行目の$tmpPathが対象となるという事です。

Folderクラスのソースを実際に確認しましたが、間違いありませんでした。

よろしくお願いします。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

 

 1  |  2   | 次のページ>

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
16 人のユーザが現在オンラインです。 (15 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 16