本文整理汇总了PHP中SC_Utils::sfMakeDir方法的典型用法代码示例。如果您正苦于以下问题:PHP SC_Utils::sfMakeDir方法的具体用法?PHP SC_Utils::sfMakeDir怎么用?PHP SC_Utils::sfMakeDir使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SC_Utils
的用法示例。
在下文中一共展示了SC_Utils::sfMakeDir方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: lfAddTemplates
/**
* DBおよびTPL_PKG_PATHにテンプレートパッケージを追加する.
*
* @param object $objForm SC_FormParamのインスタンス
* @param object $objUpFile SC_UploadFileのインスタンス
* @return void
*/
function lfAddTemplates($objForm, $objUpFile)
{
$template_code = $objForm->getValue('template_code');
$template_dir = SMARTY_TEMPLATES_DIR . $template_code;
$compile_dir = DATA_PATH . "Smarty/templates_c/" . $template_code;
// フォルダ作成
if (!file_exists($template_dir)) {
mkdir($template_dir);
}
if (!file_exists($compile_dir)) {
mkdir($compile_dir);
}
// 一時フォルダから保存ディレクトリへ移動
$objUpFile->moveTempFile();
// 解凍
SC_Helper_FileManager::unpackFile($template_dir . "/" . $_FILES['template_file']['name']);
// ユーザデータの下のファイルをコピーする
$from_dir = SMARTY_TEMPLATES_DIR . $template_code . "/_packages/";
$to_dir = USER_PATH . "packages/" . $template_code . "/";
SC_Utils::sfMakeDir($to_dir);
SC_Utils::sfCopyDir($from_dir, $to_dir);
// DBにテンプレート情報を保存
$this->lfRegisterTemplates($objForm->getHashArray());
}
示例2: process
/**
* Page のプロセス.
*
* @return void
*/
function process()
{
$objView = new SC_AdminView();
$this->objLayout = new SC_Helper_PageLayout_Ex();
$package_path = USER_TEMPLATE_PATH . "/" . TEMPLATE_NAME . "/";
// 認証可否の判定
$objSess = new SC_Session();
SC_Utils_Ex::sfIsSuccess($objSess);
// ブロック一覧を取得
$this->arrBlocList = $this->lfgetBlocData();
// ブロックIDを取得
if (isset($_POST['bloc_id'])) {
$bloc_id = $_POST['bloc_id'];
} else {
if (isset($_GET['bloc_id'])) {
$bloc_id = $_GET['bloc_id'];
} else {
$bloc_id = '';
}
}
$this->bloc_id = $bloc_id;
// bloc_id が指定されている場合にはブロックデータの取得
if ($bloc_id != '') {
$arrBlocData = $this->lfgetBlocData(" bloc_id = ? ", array($bloc_id));
// ユーザー作成ブロックが存在する場合
if (is_file($package_path . $arrBlocData[0]['tpl_path'])) {
$arrBlocData[0]['tpl_path'] = $package_path . $arrBlocData[0]['tpl_path'];
// 存在しない場合は指定テンプレートのブロックを取得
} else {
$arrBlocData[0]['tpl_path'] = TEMPLATE_DIR . $arrBlocData[0]['tpl_path'];
}
// テンプレートファイルの読み込み
$arrBlocData[0]['tpl_data'] = file_get_contents($arrBlocData[0]['tpl_path']);
$this->arrBlocData = $arrBlocData[0];
}
// メッセージ表示
if (isset($_GET['msg']) && $_GET['msg'] == "on") {
// 完了メッセージ
$this->tpl_onload = "alert('登録が完了しました。');";
}
if (!isset($_POST['mode'])) {
$_POST['mode'] = "";
}
switch ($_POST['mode']) {
case 'preview':
// プレビューファイル作成
$prev_path = USER_INC_PATH . 'preview/bloc_preview.tpl';
// ディレクトリの作成
SC_Utils::sfMakeDir($prev_path);
$fp = fopen($prev_path, "w");
fwrite($fp, $_POST['bloc_html']);
// FIXME いきなり POST はちょっと...
fclose($fp);
// プレビューデータ表示
$this->preview = "on";
$this->arrBlocData['tpl_data'] = $_POST['bloc_html'];
$this->arrBlocData['tpl_path'] = $prev_path;
$this->arrBlocData['bloc_name'] = $_POST['bloc_name'];
$this->arrBlocData['filename'] = $_POST['filename'];
$this->text_row = $_POST['html_area_row'];
break;
case 'confirm':
$this->preview = "off";
// エラーチェック
$this->arrErr = $this->lfErrorCheck($_POST);
// エラーがなければ更新処理を行う
if (count($this->arrErr) == 0) {
// DBへデータを更新する
$this->lfEntryBlocData($_POST);
// 旧ファイルの削除
$old_bloc_path = $package_path . $arrBlocData[0]['tpl_path'];
if (file_exists($old_bloc_path)) {
unlink($old_bloc_path);
}
// ファイル作成
$new_bloc_path = $package_path . BLOC_DIR . $_POST['filename'] . ".tpl";
// ディレクトリの作成
SC_Utils::sfMakeDir($new_bloc_path);
$fp = fopen($new_bloc_path, "w");
fwrite($fp, $_POST['bloc_html']);
// FIXME いきなり POST はちょっと...
fclose($fp);
$arrBlocData = $this->lfgetBlocData(" filename = ? ", array($_POST['filename']));
$bloc_id = $arrBlocData[0]['bloc_id'];
$this->sendRedirect($this->getLocation("./bloc.php", array("bloc_id" => $bloc_id, "msg" => "on")));
exit;
} else {
// エラーがあれば入力時のデータを表示する
$this->arrBlocData = $_POST;
}
break;
case 'delete':
$this->preview = "off";
// DBへデータを更新する
$objDBConn = new SC_DbConn();
//.........这里部分代码省略.........
示例3: process
/**
* Page のプロセス.
*
* @return void
*/
function process()
{
// 認証可否の判定
$objSession = new SC_Session();
SC_Utils::sfIsSuccess($objSession);
// uniqidをテンプレートへ埋め込み
$this->uniqid = $objSession->getUniqId();
$objView = new SC_AdminView();
switch ($this->lfGetMode()) {
// 登録ボタン押下時
case 'register':
// 画面遷移の正当性チェック
if (!SC_Utils::sfIsValidTransition($objSession)) {
sfDispError('');
}
// パラメータ検証
$objForm = $this->lfInitRegister();
if ($objForm->checkError()) {
SC_Utils_Ex::sfDispError('');
}
$template_code = $objForm->getValue('template_code');
$this->tpl_select = $template_code;
if ($template_code == "") {
$template_code = "default";
}
// DBへ使用するテンプレートを登録
$this->lfRegisterTemplate($template_code);
// XXX コンパイルファイルのクリア処理を行う
$objView->_smarty->clear_compiled_tpl();
// common.cssの内容を更新
$this->lfChangeCommonCss($template_code);
// テンプレートのコピー
$this->lfCopyTemplate($template_code);
// ブロック位置を更新
$this->lfChangeBloc($template_code);
// 完了メッセージ
$this->tpl_onload = "alert('登録が完了しました。');";
break;
// 削除ボタン押下時
// 削除ボタン押下時
case 'delete':
// 画面遷移の正当性チェック
if (!SC_Utils::sfIsValidTransition($objSession)) {
SC_Utils::sfDispError('');
}
// パラメータ検証
$objForm = $this->lfInitDelete();
if ($objForm->checkError()) {
SC_Utils::sfDispError('');
}
//現在使用中のテンプレートとデフォルトのテンプレートは削除できないようにする
$template_code = $objForm->getValue('template_code_temp');
if ($template_code == TEMPLATE_NAME || $template_code == DEFAULT_TEMPLATE_NAME) {
$this->tpl_onload = "alert('選択中のテンプレートは削除出来ません');";
break;
}
$this->lfDeleteTemplate($template_code);
break;
// downloadボタン押下時
// downloadボタン押下時
case 'download':
// 画面遷移の正当性チェック
if (!SC_Utils::sfIsValidTransition($objSession)) {
SC_Utils::sfDispError('');
}
// パラメータ検証
$objForm = $this->lfInitDownload();
$template_code = $objForm->getValue('template_code_temp');
// ユーザデータの下のファイルも保存する。
$from_dir = USER_TEMPLATE_PATH . $template_code . "/";
$to_dir = SMARTY_TEMPLATES_DIR . $template_code . "/_packages/";
SC_Utils::sfMakeDir($to_dir);
SC_Utils::sfCopyDir($from_dir, $to_dir);
SC_Helper_FileManager::downloadArchiveFiles(SMARTY_TEMPLATES_DIR . $template_code);
break;
// プレビューボタン押下時
// プレビューボタン押下時
case 'preview':
break;
default:
break;
}
// defaultパラメータのセット
$this->templates = $this->lfGetAllTemplates();
$this->now_template = TEMPLATE_NAME;
// 画面の表示
$objView->assignobj($this);
$objView->display(MAIN_FRAME);
}
示例4: sfMakeDir
function sfMakeDir($path)
{
static $count = 0;
$count++;
// 無限ループ回避
$dir = dirname($path);
if (ereg("^[/]\$", $dir) || ereg("^[A-Z]:[\\]\$", $dir) || $count > 256) {
// ルートディレクトリで終了
return;
} else {
if (is_writable(dirname($dir))) {
if (!file_exists($dir)) {
mkdir($dir);
GC_Utils::gfPrintLog("mkdir {$dir}");
}
} else {
SC_Utils::sfMakeDir($dir);
if (is_writable(dirname($dir))) {
if (!file_exists($dir)) {
mkdir($dir);
GC_Utils::gfPrintLog("mkdir {$dir}");
}
}
}
}
return;
}