/*label {
font-weight: bold;
}*/
-
+img
+{
+ border:0;
+}
legend, label
{
border: none;
const TASK_ADMIN = 'initwizard_admin'; // システム管理者
const TASK_ACCESS_POINT = 'initwizard_accesspoint'; // アクセスポイント
const TASK_MENU = 'initwizard_menu'; // メニュー
- const TASK_PAGE = 'initwizard_page'; // ページ
+ const TASK_PAGE1 = 'initwizard_page1'; // ページ1
+ const TASK_PAGE2 = 'initwizard_page2'; // ページ2
const TASK_END = 'initwizard_end'; // 処理終了
const TASK_TITLE_SITE = 'サイト'; // サイト情報
const TASK_TITLE_ADMIN = '管理者'; // 管理者
const TASK_TITLE_ACCESS_POINT = 'アクセスポイント';
const TASK_TITLE_MENU = 'メニュー';
- const TASK_TITLE_PAGE = 'ページ';
+ const TASK_TITLE_PAGE1 = 'ページ1';
+ const TASK_TITLE_PAGE2 = 'ページ2';
const TASK_TITLE_END = '完了'; // 完了
/**
$this->_mainDb = new admin_mainDb();
- $this->_taskArray = array(self::TASK_SITE, self::TASK_ADMIN, self::TASK_ACCESS_POINT, self::TASK_MENU, self::TASK_PAGE, self::TASK_END); // 管理下のタスク
- $this->_taskTitleArray = array(self::TASK_TITLE_SITE, self::TASK_TITLE_ADMIN, self::TASK_TITLE_ACCESS_POINT, self::TASK_TITLE_MENU, self::TASK_TITLE_PAGE, self::TASK_TITLE_END);
+ $this->_taskArray = array(self::TASK_SITE, self::TASK_ADMIN, self::TASK_ACCESS_POINT, self::TASK_MENU,
+ self::TASK_PAGE1, self::TASK_PAGE2, self::TASK_END); // 管理下のタスク
+ $this->_taskTitleArray = array(self::TASK_TITLE_SITE, self::TASK_TITLE_ADMIN, self::TASK_TITLE_ACCESS_POINT, self::TASK_TITLE_MENU,
+ self::TASK_TITLE_PAGE1, self::TASK_TITLE_PAGE2, self::TASK_TITLE_END);
}
/**
* テンプレート前処理
function _dispatch($request, &$param)
{
// 「initwizard」タスクはディスパッチ処理のみ行う。「initwizard_xxx」タスクではbootstrapライブラリが読み込まれる。
-
+
// 最初の画面へ遷移
$task = $request->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
if ($task == self::TASK_END){ // 初期化終了
*/
require_once($gEnvManager->getCurrentWidgetContainerPath() . '/admin_mainInitwizardBaseWidgetContainer.php');
-class admin_mainInitwizard_pageWidgetContainer extends admin_mainInitwizardBaseWidgetContainer
+class admin_mainInitwizard_page1WidgetContainer extends admin_mainInitwizardBaseWidgetContainer
{
private $idArray = array(); // 表示するページ
const MENU_ID = 'admin_menu'; // メニュー変換対象メニューバーID
*/
function _setTemplate($request, &$param)
{
- return 'initwizard_page.tmpl.html';
+ return 'initwizard_page1.tmpl.html';
}
/**
* テンプレートにデータ埋め込む
$reloadData = false; // データの再ロード
if ($act == 'update'){ // 設定更新のとき
$listedItem = explode(',', $request->trimValueOf('idlist'));
+
+ // チェックされている項目数を確認
for ($i = 0; $i < count($listedItem); $i++){
// 項目がチェックされているかを取得
$itemName = 'item' . $i . '_selected';
$itemValue = ($request->trimValueOf($itemName) == 'on') ? 1 : 0;
+ if ($itemValue) break;
+ }
+ if ($i == count($listedItem)) $this->setUserErrorMsg('1つ以上の選択が必要です。');
+
+ // エラーなしの場合は、データを更新
+ if ($this->getMsgCount() == 0){
+ for ($i = 0; $i < count($listedItem); $i++){
+ // 項目がチェックされているかを取得
+ $itemName = 'item' . $i . '_selected';
+ $itemValue = ($request->trimValueOf($itemName) == 'on') ? 1 : 0;
- $ret = $this->_mainDb->getPageIdRecord(1, $listedItem[$i], $row);
+ $ret = $this->_mainDb->getPageIdRecord(1/*ページサブIDを指定*/, $listedItem[$i], $row);
+ if ($ret){
+ $ret = $this->_mainDb->updatePageId(1/*ページサブIDを指定*/, $listedItem[$i], $row['pg_name'], $row['pg_description'], $row['pg_priority'], $row['pg_active'], $itemValue);
+ if (!$ret) break;
+ }
+ }
if ($ret){
- $ret = $this->_mainDb->updatePageId(1, $listedItem[$i], $row['pg_name'], $row['pg_description'], $row['pg_priority'], $row['pg_active'], $itemValue);
- if (!$ret) break;
+ // 次の画面へ遷移
+ $this->_redirectNextTask();
+ } else {
+ $this->setMsg(self::MSG_APP_ERR, 'データ更新に失敗しました'); // データ更新に失敗しました
}
}
- if ($ret){
- // 次の画面へ遷移
- $this->_redirectNextTask();
- } else {
- $this->setMsg(self::MSG_APP_ERR, 'データ更新に失敗しました'); // データ更新に失敗しました
- }
} else {
$reloadData = true;
}
if ($reloadData){ // データ再取得のとき
}
- $this->_mainDb->getPageIdList(array($this, 'pageLoop'), 1);
+ $this->_mainDb->getPageIdList(array($this, 'pageLoop'), 1/*ページサブIDを指定*/);
$this->tmpl->addVar("_widget", "id_list", implode($this->idArray, ','));// 表示項目のIDを設定
}
--- /dev/null
+<?php
+/**
+ * コンテナクラス
+ *
+ * PHP versions 5
+ *
+ * LICENSE: This source file is licensed under the terms of the GNU General Public License.
+ *
+ * @package Magic3 Framework
+ * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
+ * @copyright Copyright 2006-2013 Magic3 Project.
+ * @license http://www.gnu.org/copyleft/gpl.html GPL License
+ * @version SVN: $Id$
+ * @link http://www.magic3.org
+ */
+require_once($gEnvManager->getCurrentWidgetContainerPath() . '/admin_mainInitwizardBaseWidgetContainer.php');
+
+class admin_mainInitwizard_page2WidgetContainer extends admin_mainInitwizardBaseWidgetContainer
+{
+ private $deviceType; // デバイスタイプ(0=PC,1=携帯,2=スマートフォン)
+ private $defaultPageId; // デフォルトのページサブID
+
+ /**
+ * コンストラクタ
+ */
+ function __construct()
+ {
+ // 親クラスを呼び出す
+ parent::__construct();
+ }
+ /**
+ * テンプレートファイルを設定
+ *
+ * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
+ * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
+ *
+ * @param RequestManager $request HTTPリクエスト処理クラス
+ * @param object $param 任意使用パラメータ。そのまま_assign()に渡る
+ * @return string テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
+ */
+ function _setTemplate($request, &$param)
+ {
+ return 'initwizard_page2.tmpl.html';
+ }
+ /**
+ * テンプレートにデータ埋め込む
+ *
+ * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
+ *
+ * @param RequestManager $request HTTPリクエスト処理クラス
+ * @param object $param 任意使用パラメータ。_setTemplate()と共有。
+ * @param なし
+ */
+ function _assign($request, &$param)
+ {
+ // アクセスポイントの使用状況を取得
+ $siteOpenPc = $this->isActiveAccessPoint(0/*PC*/); // PC用サイトの公開状況
+ $siteOpenSmartphone = $this->isActiveAccessPoint(2/*スマートフォン*/); // スマートフォン用サイトの公開状況
+ $siteOpenMobile = $this->isActiveAccessPoint(1/*携帯*/); // 携帯用サイトの公開状況
+
+ $act = $request->trimValueOf('act');
+ $pageDefaultPc = $request->trimValueOf('page_default_pc');
+ $pageDefaultSmartphone = $request->trimValueOf('page_default_smartphone');
+ $pageDefaultMobile = $request->trimValueOf('page_default_mobile');
+
+ $reloadData = false; // データの再ロード
+ if ($act == 'update'){ // 設定更新のとき
+ $ret = true;
+ if ($siteOpenPc){
+ $this->_db->updateDefaultPageSubId($this->gEnv->getDefaultPageId(), $pageDefaultPc);
+ }
+ if ($siteOpenSmartphone){
+ $this->_db->updateDefaultPageSubId($this->gEnv->getDefaultSmartphonePageId(), $pageDefaultSmartphone);
+ }
+ if ($siteOpenMobile){
+ $this->_db->updateDefaultPageSubId($this->gEnv->getDefaultMobilePageId(), $pageDefaultMobile);
+ }
+ if ($ret){
+ // 次の画面へ遷移
+ $this->_redirectNextTask();
+ } else {
+ $this->setMsg(self::MSG_APP_ERR, 'データ更新に失敗しました'); // データ更新に失敗しました
+ }
+ } else {
+ $reloadData = true;
+ }
+
+ // デフォルトページ選択メニューの作成
+ $isFirstAccessPoint = true;
+ if ($siteOpenPc){
+ // デフォルトのページID取得
+ $this->deviceType = 0;
+ $this->defaultPageId = $this->gEnv->getDefaultPageSubIdByPageId($this->gEnv->getDefaultPageId());
+
+ $this->_mainDb->getPageIdList(array($this, 'pageLoop'), 1/*ページサブIDを指定*/);
+
+ $this->tmpl->setAttribute('page_pc', 'visibility', 'visible'); // PC用アクセスポイント
+ if (!$isFirstAccessPoint) $this->tmpl->addVar("page_pc", "offset_class", 'col-lg-offset-3');
+ $isFirstAccessPoint = false;
+ }
+ if ($siteOpenSmartphone){
+ // デフォルトのページID取得
+ $this->deviceType = 2;
+ $this->defaultPageId = $this->gEnv->getDefaultPageSubIdByPageId($this->gEnv->getDefaultSmartphonePageId());
+
+ $this->_mainDb->getPageIdList(array($this, 'pageLoop'), 1/*ページサブIDを指定*/);
+
+ $this->tmpl->setAttribute('page_smartphone', 'visibility', 'visible'); // スマートフォン用アクセスポイント
+ if (!$isFirstAccessPoint) $this->tmpl->addVar("page_smartphone", "offset_class", 'col-lg-offset-3');
+ $isFirstAccessPoint = false;
+ }
+ if ($siteOpenMobile){
+ // デフォルトのページID取得
+ $this->deviceType = 1;
+ $this->defaultPageId = $this->gEnv->getDefaultPageSubIdByPageId($this->gEnv->getDefaultMobilePageId());
+
+ $this->_mainDb->getPageIdList(array($this, 'pageLoop'), 1/*ページサブIDを指定*/);
+
+ $this->tmpl->setAttribute('page_mobile', 'visibility', 'visible'); // 携帯用アクセスポイント
+ if (!$isFirstAccessPoint) $this->tmpl->addVar("page_mobile", "offset_class", 'col-lg-offset-3');
+ $isFirstAccessPoint = false;
+ }
+ }
+ /**
+ * アクセスポイントが有効かどうか
+ *
+ * @param int $deviceType デバイスタイプ(0=PC,1=携帯,2=スマートフォン)
+ * @return bool true=有効、false=無効
+ */
+ function isActiveAccessPoint($deviceType)
+ {
+ // ページID作成
+ switch ($deviceType){
+ case 0: // PC
+ $pageId = 'index';
+ break;
+ case 1: // 携帯
+ $pageId = M3_DIR_NAME_MOBILE . '_index';
+ break;
+ case 2: // スマートフォン
+ $pageId = M3_DIR_NAME_SMARTPHONE . '_index';
+ break;
+ }
+
+ $isActive = false;
+ $ret = $this->_mainDb->getPageIdRecord(0/*アクセスポイント*/, $pageId, $row);
+ if ($ret){
+ $isActive = $row['pg_active'];
+ }
+ return $isActive;
+ }
+ /**
+ * ページサブID、取得したデータをテンプレートに設定する
+ *
+ * @param int $index 行番号(0~)
+ * @param array $fetchedRow フェッチ取得した行
+ * @param object $param 未使用
+ * @return bool true=処理続行の場合、false=処理終了の場合
+ */
+ function pageLoop($index, $fetchedRow, $param)
+ {
+ $value = $fetchedRow['pg_id'];
+
+ // 使用するページでない場合はメニューに追加しない
+ if (!$fetchedRow['pg_available']) return true;
+
+ $selected = '';
+ if ($value == $this->defaultPageId) $selected = 'selected';
+
+ $row = array(
+ 'value' => $this->convertToDispString($value), // ページID
+ 'name' => $this->convertToDispString($fetchedRow['pg_name']), // ページ名
+ 'selected' => $selected // 選択中かどうか
+ );
+
+ switch ($this->deviceType){
+ case 0: // PC
+ $this->tmpl->addVars('page_list_pc', $row);
+ $this->tmpl->parseTemplate('page_list_pc', 'a');
+ break;
+ case 1: // 携帯
+ $this->tmpl->addVars('page_list_mobile', $row);
+ $this->tmpl->parseTemplate('page_list_mobile', 'a');
+ break;
+ case 2: // スマートフォン
+ $this->tmpl->addVars('page_list_smartphone', $row);
+ $this->tmpl->parseTemplate('page_list_smartphone', 'a');
+ break;
+ }
+
+ // 表示中項目のページサブIDを保存
+ $this->idArray[] = $value;
+ return true;
+ }
+}
+?>
</script>
<div id="main-content">
{MENU_ITEMS}
-<!-- m3:ErrorMessage -->
+<div class="text-center"><!-- m3:ErrorMessage --></div>
<div class="page-header">
<!--<h1>ページ</h1>-->
</div>
<form method="post" name="main" role="form" class="form-horizontal">
-<input type="hidden" name="task" value="initwizard_page" />
+<input type="hidden" name="task" value="initwizard_page1" />
<input type="hidden" name="act" />
<input type="hidden" name="idlist" value="{ID_LIST}" />
<div class="form-group">
--- /dev/null
+/**
+ * 表示データ作成用テンプレート(patTemplate)
+ *
+ * LICENSE: This source file is licensed under the terms of the GNU General Public License.
+ *
+ * @package Magic3 Framework
+ * @author 平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
+ * @copyright Copyright 2006-2013 Magic3 Project.
+ * @license http://www.gnu.org/copyleft/gpl.html GPL License
+ * @version SVN: $Id$
+ * @link http://www.magic3.org
+ */
+<patTemplate:tmpl name="_widget">
+<script type="text/javascript">
+//<![CDATA[
+// 前の画面へ遷移
+function goPrev(task){
+ document.main.task.value = task;
+ document.main.submit();
+}
+// 次の画面へ遷移
+function goNext(){
+ // 入力データ編集中のページ離脱を許可
+ m3CancelSafeContentEdit();
+
+ document.main.act.value = 'update';
+ document.main.submit();
+}
+$(function(){
+ // 編集中の離脱を防止
+ m3SetSafeContentEdit();
+
+ // 前後エントリー移動ボタン
+ <patTemplate:tmpl name="show_prev_button" visibility="hidden">m3SetPrevButtonEvent(goPrev, '{TASK}');</patTemplate:tmpl>
+ <patTemplate:tmpl name="show_next_button" visibility="hidden">m3SetNextButtonEvent(goNext);</patTemplate:tmpl>
+});
+//]]>
+</script>
+<div id="main-content">
+{MENU_ITEMS}
+<!-- m3:ErrorMessage -->
+<div class="page-header">
+<!--<h1>サイト情報</h1>-->
+</div>
+<form method="post" name="main" role="form" class="form-horizontal">
+<input type="hidden" name="task" value="initwizard_page2" />
+<input type="hidden" name="act" />
+<div class="form-group">
+<label class="col-lg-3 control-label"><span {_HELP_INITWIZARD_PAGE_DEFAULT}>デフォルトページ</span></label>
+<patTemplate:tmpl name="page_pc" visibility="hidden">
+<div class="{OFFSET_CLASS} col-lg-4">
+<label for="page_default_pc" class="control-label">PC用アクセスポイント</label>
+<select id="page_default_pc" name="page_default_pc" class="form-control">
+ <patTemplate:tmpl name="page_list_pc">
+ <option value="{VALUE}" {SELECTED}>{NAME}</option>
+ </patTemplate:tmpl>
+</select>
+</div>
+</patTemplate:tmpl>
+<patTemplate:tmpl name="page_smartphone" visibility="hidden">
+<div class="{OFFSET_CLASS} col-lg-4">
+<label for="page_default_smartphone" class="control-label">スマートフォン用アクセスポイント</label>
+<select id="page_default_smartphone" name="page_default_smartphone" class="form-control">
+ <patTemplate:tmpl name="page_list_smartphone">
+ <option value="{VALUE}" {SELECTED}>{NAME}</option>
+ </patTemplate:tmpl>
+</select>
+</div>
+</patTemplate:tmpl>
+<patTemplate:tmpl name="page_mobile" visibility="hidden">
+<div class="{OFFSET_CLASS} col-lg-4">
+<label for="page_default_mobile" class="control-label">携帯用アクセスポイント</label>
+<select id="page_default_mobile" name="page_default_mobile" class="form-control">
+ <patTemplate:tmpl name="page_list_mobile">
+ <option value="{VALUE}" {SELECTED}>{NAME}</option>
+ </patTemplate:tmpl>
+</select>
+</div>
+</patTemplate:tmpl>
+</div>
+</form>
+</div>
+</patTemplate:tmpl>
\ No newline at end of file