- Timestamp:
- 2009/07/19 23:30:23 (15 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'] 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 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 // 511 512 513 514 515 516 517 518 519 520 521 // 522 523 524 525 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.