Changeset 18211 for branches/comu-ver2/data/class/pages/admin
- Timestamp:
- 2009/07/19 23:30:23 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/comu-ver2/data/class/pages/admin/design/LC_Page_Admin_Design.php
r18202 r18211 146 146 $arrUpdBlocData[$upd_cnt]['target_id'] = $arrTargetFlip[$_POST['target_id_'.$upd_cnt]]; // ターゲットID 147 147 $arrUpdBlocData[$upd_cnt]['top'] = $_POST['top_'.$upd_cnt]; // TOP座標 148 $arrUpdBlocData[$upd_cnt]['anywhere'] = $_POST['anywhere_'.$upd_cnt]; //全ページ適用か148 $arrUpdBlocData[$upd_cnt]['anywhere'] = $_POST['anywhere_'.$upd_cnt]; //全ページ適用か 149 149 $arrUpdBlocData[$upd_cnt]['update_url'] = $_SERVER['HTTP_REFERER']; // 更新URL 150 150 … … 292 292 * 293 293 * @return void 294 */295 function destroy() {296 parent::destroy();297 }298 299 /**300 * 編集可能なページ情報を取得する.301 *302 * @param string $sel Select句文303 * @param string $where Where句文304 * @param array $arrVa Where句の絞込条件値305 * @return array ページレイアウト情報の配列306 */307 function lfgetLayoutData($sel = '' , $from = '', $where = '', $arrVal = ''){308 $objDBConn = new SC_DbConn; // DB操作オブジェクト309 $sql = ""; // データ取得SQL生成用310 $arrRet = array(); // データ取得用311 312 // SQL生成313 314 $sql = "";315 $sql .= " select ";316 $sql .= " lay.page_id ";317 $sql .= " ,lay.page_name ";318 $sql .= " ,lay.url ";319 $sql .= " ,lay.author ";320 $sql .= " ,lay.description ";321 $sql .= " ,lay.keyword ";322 $sql .= " ,lay.update_url ";323 $sql .= " ,lay.create_date ";324 $sql .= " ,lay.update_date ";325 326 // Select句の指定があれば追加327 if ($sel != '') {328 $sql .= $sel;329 }330 331 $sql .= " from dtb_pagelayout AS lay ";332 // From句の指定があれば追加333 if ($from != '') {334 $sql .= $from;335 }336 337 // where句の指定があれば追加338 if ($where != '') {339 $sql .= $where;340 }else{341 $sql .= " ORDER BY lay.page_id ";342 }343 344 $arrRet = $objDBConn->getAll($sql, $arrVal);345 346 return $arrRet;347 }348 349 /**350 * ブロック情報を取得する.351 *352 * @param string $where Where句文353 * @param array $arrVal Where句の絞込条件値354 * @return array ブロック情報の配列355 */356 function lfgetBlocData($where = '', $arrVal = ''){357 $objDBConn = new SC_DbConn; // DB操作オブジェクト358 $sql = ""; // データ取得SQL生成用359 $arrRet = array(); // データ取得用360 361 // SQL生成362 $sql = "";363 $sql .= " SELECT ";364 $sql .= " bloc_id";365 $sql .= " ,bloc_name";366 $sql .= " ,tpl_path";367 $sql .= " ,filename";368 $sql .= " ,update_date";369 $sql .= " FROM ";370 $sql .= " dtb_bloc";371 372 // where句の指定があれば追加373 if ($where != '') {374 $sql .= " WHERE " . $where;375 }376 377 $sql .= " ORDER BY bloc_id";378 379 $arrRet = $objDBConn->getAll($sql, $arrVal);380 381 return $arrRet;382 }383 384 /**385 * ブロック情報の配列を生成する.386 *387 * @param array $arrBloc Bloc情報388 * @param array $tpl_arrBloc データをセットする配列389 * @param integer $cnt 配列番号390 * @return array データをセットした配列391 */392 function lfSetBlocData($arrBloc, $val, $tpl_arrBloc, $cnt) {393 $masterData = new SC_DB_MasterData_Ex();394 $arrTarget = $masterData->getMasterData("mtb_target");395 396 $tpl_arrBloc[$cnt]['target_id'] = $arrTarget[$val['target_id']];397 $tpl_arrBloc[$cnt]['bloc_id'] = $val['bloc_id'];398 $tpl_arrBloc[$cnt]['bloc_row'] =399 isset($val['bloc_row']) ? $val['bloc_row'] : "";400 $tpl_arrBloc[$cnt]['anywhere'] = $val['anywhere'];401 if($val['anywhere'] == 1){402 $tpl_arrBloc[$cnt]['anywhere_selected'] = 'checked="checked"';403 }404 foreach($arrBloc as $bloc_key => $bloc_val){405 if ($bloc_val['bloc_id'] == $val['bloc_id']) {406 $bloc_name = $bloc_val['bloc_name'];407 break;408 }409 }410 $tpl_arrBloc[$cnt]['name'] = $bloc_name;411 412 return $tpl_arrBloc;413 }414 415 /**416 * ブロックIDが配列に追加されているかのチェックを行う.417 *418 * @param array $arrBloc Bloc情報419 * @param array $arrChkData チェックを行うデータ配列420 * @return bool 存在する場合 true421 */422 function lfChkBloc($arrBloc, $arrChkData) {423 foreach($arrChkData as $key => $val){424 if ($val['bloc_id'] === $arrBloc['bloc_id'] ) {425 // 配列に存在すればTrueを返す426 return true;427 }428 }429 430 // 配列に存在しなければFlaseを返す431 return false;432 }433 434 /**435 * ブロックIDが何番目に配置されているかを調べる.436 *437 * @param array $arrUpdData 更新情報438 * @param array $arrObj チェックを行うデータ配列439 * @return integer 順番440 */441 function lfGetRowID($arrUpdData, $arrObj){442 $no = 0; // カウント用(同じデータが必ず1件あるので、初期値は0)443 444 // 対象データが何番目に配置されているのかを取得する。445 foreach ($arrUpdData as $key => $val) {446 if ($val['target_id'] === $arrObj['target_id'] and $val['top'] <= $arrObj['top']){447 $no++;448 }449 }450 // 番号を返す451 return $no;452 }453 454 /**455 * プレビューするデータを DB に保存する.456 *457 * @param array $arrPageData ページ情報の配列458 * @return void459 */460 function lfSetPreData($arrPageData, &$objLayout){461 $objDBConn = new SC_DbConn; // DB操作オブジェクト462 $sql = ""; // データ更新SQL生成用463 $ret = ""; // データ更新結果格納用464 $arrUpdData = array(); // 更新データ生成用465 $filename = $arrPageData[0]['filename'];466 467 $arrPreData = $objLayout->lfgetPageData(" page_id = ? " , array("0"));468 469 // XXX tplファイルの削除470 $del_tpl = USER_PATH . "templates/" . $filename . '.tpl';471 472 if (file_exists($del_tpl)){473 unlink($del_tpl);474 }475 476 // filename が空の場合にはMYページと判断477 if($filename == ""){478 $tplfile = TEMPLATE_DIR . "mypage/index";479 $filename = 'mypage';480 } else {481 if (file_exists(TEMPLATE_FTP_DIR . $filename . ".tpl")) {482 $tplfile = TEMPLATE_FTP_DIR . $filename;483 } else {484 $tplfile = TEMPLATE_DIR . $filename;485 }486 }487 488 // プレビュー用tplファイルのコピー489 $copyTo = USER_PATH . "templates/preview/" . TEMPLATE_NAME . "/" . $filename . ".tpl";490 491 if (!is_dir(dirname($copyTo))) {492 mkdir(dirname($copyTo));493 }494 495 copy($tplfile . ".tpl", $copyTo);496 497 // 更新データの取得498 $sql = "select page_id,page_name, header_chk, footer_chk from dtb_pagelayout where page_id = ? OR page_id = (SELECT page_id FROM dtb_blocposition WHERE anywhere = 1)" ;499 500 $ret = $objDBConn->getAll($sql, array($arrPageData[0]['page_id']));501 502 // dbデータのコピー503 $sql = " update dtb_pagelayout set ";504 $sql .= " page_name = ?";505 $sql .= " ,header_chk = ?";506 $sql .= " ,footer_chk = ?";507 $sql .= " ,url = ?";508 $sql .= " ,tpl_dir = ?";509 $sql .= " ,filename = ?";510 // $sql .= " ,anywhere = ?";511 $sql .= " where page_id = 0";512 var_dump($ret);513 echo("####<br/>\n\n".__LINE__ ." in file:".__FILE__."<br/>\n\n ####");514 515 $arrUpdData = array($ret[0]['page_id']516 ,$ret[0]['page_id']517 ,$ret[0]['page_id']518 ,USER_DIR . "templates/" . TEMPLATE_NAME . "/"519 ,USER_DIR . "templates/" . TEMPLATE_NAME . "/"520 ,$filename521 // ,$ret[0]['anywhere']522 523 );524 525 $objDBConn->query($sql,$arrUpdData);526 }294 */ 295 function destroy() { 296 parent::destroy(); 297 } 298 299 /** 300 * 編集可能なページ情報を取得する. 301 * 302 * @param string $sel Select句文 303 * @param string $where Where句文 304 * @param array $arrVa Where句の絞込条件値 305 * @return array ページレイアウト情報の配列 306 */ 307 function lfgetLayoutData($sel = '' , $from = '', $where = '', $arrVal = ''){ 308 $objDBConn = new SC_DbConn; // DB操作オブジェクト 309 $sql = ""; // データ取得SQL生成用 310 $arrRet = array(); // データ取得用 311 312 // SQL生成 313 314 $sql = ""; 315 $sql .= " select "; 316 $sql .= " lay.page_id "; 317 $sql .= " ,lay.page_name "; 318 $sql .= " ,lay.url "; 319 $sql .= " ,lay.author "; 320 $sql .= " ,lay.description "; 321 $sql .= " ,lay.keyword "; 322 $sql .= " ,lay.update_url "; 323 $sql .= " ,lay.create_date "; 324 $sql .= " ,lay.update_date "; 325 326 // Select句の指定があれば追加 327 if ($sel != '') { 328 $sql .= $sel; 329 } 330 331 $sql .= " from dtb_pagelayout AS lay "; 332 // From句の指定があれば追加 333 if ($from != '') { 334 $sql .= $from; 335 } 336 337 // where句の指定があれば追加 338 if ($where != '') { 339 $sql .= $where; 340 }else{ 341 $sql .= " ORDER BY lay.page_id "; 342 } 343 344 $arrRet = $objDBConn->getAll($sql, $arrVal); 345 346 return $arrRet; 347 } 348 349 /** 350 * ブロック情報を取得する. 351 * 352 * @param string $where Where句文 353 * @param array $arrVal Where句の絞込条件値 354 * @return array ブロック情報の配列 355 */ 356 function lfgetBlocData($where = '', $arrVal = ''){ 357 $objDBConn = new SC_DbConn; // DB操作オブジェクト 358 $sql = ""; // データ取得SQL生成用 359 $arrRet = array(); // データ取得用 360 361 // SQL生成 362 $sql = ""; 363 $sql .= " SELECT "; 364 $sql .= " bloc_id"; 365 $sql .= " ,bloc_name"; 366 $sql .= " ,tpl_path"; 367 $sql .= " ,filename"; 368 $sql .= " ,update_date"; 369 $sql .= " FROM "; 370 $sql .= " dtb_bloc"; 371 372 // where句の指定があれば追加 373 if ($where != '') { 374 $sql .= " WHERE " . $where; 375 } 376 377 $sql .= " ORDER BY bloc_id"; 378 379 $arrRet = $objDBConn->getAll($sql, $arrVal); 380 381 return $arrRet; 382 } 383 384 /** 385 * ブロック情報の配列を生成する. 386 * 387 * @param array $arrBloc Bloc情報 388 * @param array $tpl_arrBloc データをセットする配列 389 * @param integer $cnt 配列番号 390 * @return array データをセットした配列 391 */ 392 function lfSetBlocData($arrBloc, $val, $tpl_arrBloc, $cnt) { 393 $masterData = new SC_DB_MasterData_Ex(); 394 $arrTarget = $masterData->getMasterData("mtb_target"); 395 396 $tpl_arrBloc[$cnt]['target_id'] = $arrTarget[$val['target_id']]; 397 $tpl_arrBloc[$cnt]['bloc_id'] = $val['bloc_id']; 398 $tpl_arrBloc[$cnt]['bloc_row'] = 399 isset($val['bloc_row']) ? $val['bloc_row'] : ""; 400 $tpl_arrBloc[$cnt]['anywhere'] = $val['anywhere']; 401 if($val['anywhere'] == 1){ 402 $tpl_arrBloc[$cnt]['anywhere_selected'] = 'checked="checked"'; 403 } 404 foreach($arrBloc as $bloc_key => $bloc_val){ 405 if ($bloc_val['bloc_id'] == $val['bloc_id']) { 406 $bloc_name = $bloc_val['bloc_name']; 407 break; 408 } 409 } 410 $tpl_arrBloc[$cnt]['name'] = $bloc_name; 411 412 return $tpl_arrBloc; 413 } 414 415 /** 416 * ブロックIDが配列に追加されているかのチェックを行う. 417 * 418 * @param array $arrBloc Bloc情報 419 * @param array $arrChkData チェックを行うデータ配列 420 * @return bool 存在する場合 true 421 */ 422 function lfChkBloc($arrBloc, $arrChkData) { 423 foreach($arrChkData as $key => $val){ 424 if ($val['bloc_id'] === $arrBloc['bloc_id'] ) { 425 // 配列に存在すればTrueを返す 426 return true; 427 } 428 } 429 430 // 配列に存在しなければFlaseを返す 431 return false; 432 } 433 434 /** 435 * ブロックIDが何番目に配置されているかを調べる. 436 * 437 * @param array $arrUpdData 更新情報 438 * @param array $arrObj チェックを行うデータ配列 439 * @return integer 順番 440 */ 441 function lfGetRowID($arrUpdData, $arrObj){ 442 $no = 0; // カウント用(同じデータが必ず1件あるので、初期値は0) 443 444 // 対象データが何番目に配置されているのかを取得する。 445 foreach ($arrUpdData as $key => $val) { 446 if ($val['target_id'] === $arrObj['target_id'] and $val['top'] <= $arrObj['top']){ 447 $no++; 448 } 449 } 450 // 番号を返す 451 return $no; 452 } 453 454 /** 455 * プレビューするデータを DB に保存する. 456 * 457 * @param array $arrPageData ページ情報の配列 458 * @return void 459 */ 460 function lfSetPreData($arrPageData, &$objLayout){ 461 $objDBConn = new SC_DbConn; // DB操作オブジェクト 462 $sql = ""; // データ更新SQL生成用 463 $ret = ""; // データ更新結果格納用 464 $arrUpdData = array(); // 更新データ生成用 465 $filename = $arrPageData[0]['filename']; 466 467 $arrPreData = $objLayout->lfgetPageData(" page_id = ? " , array("0")); 468 469 // XXX tplファイルの削除 470 $del_tpl = USER_PATH . "templates/" . $filename . '.tpl'; 471 472 if (file_exists($del_tpl)){ 473 unlink($del_tpl); 474 } 475 476 // filename が空の場合にはMYページと判断 477 if($filename == ""){ 478 $tplfile = TEMPLATE_DIR . "mypage/index"; 479 $filename = 'mypage'; 480 } else { 481 if (file_exists(TEMPLATE_FTP_DIR . $filename . ".tpl")) { 482 $tplfile = TEMPLATE_FTP_DIR . $filename; 483 } else { 484 $tplfile = TEMPLATE_DIR . $filename; 485 } 486 } 487 488 // プレビュー用tplファイルのコピー 489 $copyTo = USER_PATH . "templates/preview/" . TEMPLATE_NAME . "/" . $filename . ".tpl"; 490 491 if (!is_dir(dirname($copyTo))) { 492 mkdir(dirname($copyTo)); 493 } 494 495 copy($tplfile . ".tpl", $copyTo); 496 497 // 更新データの取得 498 $sql = "select page_id,page_name, header_chk, footer_chk from dtb_pagelayout where page_id = ? OR page_id = (SELECT page_id FROM dtb_blocposition WHERE anywhere = 1)" ; 499 500 $ret = $objDBConn->getAll($sql, array($arrPageData[0]['page_id'])); 501 502 // dbデータのコピー 503 $sql = " update dtb_pagelayout set "; 504 $sql .= " page_name = ?"; 505 $sql .= " ,header_chk = ?"; 506 $sql .= " ,footer_chk = ?"; 507 $sql .= " ,url = ?"; 508 $sql .= " ,tpl_dir = ?"; 509 $sql .= " ,filename = ?"; 510 // $sql .= " ,anywhere = ?"; 511 $sql .= " where page_id = 0"; 512 var_dump($ret); 513 echo("####<br/>\n\n".__LINE__ ." in file:".__FILE__."<br/>\n\n ####"); 514 515 $arrUpdData = array($ret[0]['page_id'] 516 ,$ret[0]['page_id'] 517 ,$ret[0]['page_id'] 518 ,USER_DIR . "templates/" . TEMPLATE_NAME . "/" 519 ,USER_DIR . "templates/" . TEMPLATE_NAME . "/" 520 ,$filename 521 // ,$ret[0]['anywhere'] 522 523 ); 524 525 $objDBConn->query($sql,$arrUpdData); 526 } 527 527 } 528 528 ?>
Note: See TracChangeset
for help on using the changeset viewer.
