define('M3_REQUEST_PARAM_OPTION', 'opt'); // 通信オプション
define('M3_REQUEST_PARAM_OPERATION_COMMAND', 'cmd'); // 実行処理
define('M3_REQUEST_PARAM_OPERATION_WIKI_COMMAND', 'wcmd'); // Wikiコマンド実行
-define('M3_REQUEST_PARAM_OPERATION_TASK', 'task'); // ウィジェット間共通処理
+define('M3_REQUEST_PARAM_OPERATION_TASK', 'task'); // 画面指定用タスク
+define('M3_REQUEST_PARAM_OPERATION_ANCHOR', 'anchor'); // 画面指定用アンカー
define('M3_REQUEST_PARAM_OPERATION_ACT', 'act'); // クライアントからの実行処理
define('M3_REQUEST_PARAM_OPERATION_LANG', 'lang'); // 言語指定表示
define('M3_REQUEST_PARAM_SERIAL_NO', 'serial'); // シリアル番号
}
return $destTag;
}
+ /**
+ * 管理画面用ナビゲーションタブを作成
+ *
+ * @param array $tabDef タブの定義
+ * @param string $activeTask 選択状態のタスク
+ * @param bool $withBreadcrumb パンくずリストを付加するかどうか
+ * @param string $breadcrumbTitle パンくずリストのトップタイトル
+ * @return string タブのHTML
+ */
+ function createConfigNavTab($tabDef, $activeTask = '', $withBreadcrumb = false, $breadcrumbTitle = '')
+ {
+ $tabDefCount = count($tabDef);
+ if ($tabDefCount <= 0) return '';
+
+ $tabHtml = '<ul id="m3navtab" class="nav nav-tabs">';
+ for ($i = 0; $i < $tabDefCount; $i++){
+ $tabItem = $tabDef[$i];
+ $name = $tabItem->name;
+ $url = $tabItem->url;
+ $active = '';
+ if ($tabItem->active) $active = ' class="active"';
+ $tabHtml .= '<li' . $active . '>';
+ if (empty($url)){
+ $tabHtml .= convertToHtmlEntity($name);
+ } else {
+ $tabHtml .= '<a href="' . convertUrlToHtmlEntity($url) . '" data-toggle="tab">' . convertToHtmlEntity($name) . '</a>';
+ }
+ $tabHtml .= '</li>';
+ }
+ $tabHtml .= '</ul>';
+ return $tabHtml;
+/*
+<ul class="nav nav-tabs" id="myTab">
+ <li class="active"><a href="#home" data-toggle="tab">Home</a></li>
+ <li><a href="#profile" data-toggle="tab">Profile</a></li>
+ <li><a href="#messages" data-toggle="tab" class="clickable">Messages(click!)</a></li>
+
+<li class="dropdown">
+ <a class="dropdown-toggle" data-toggle="dropdown" href="#">
+ Dropdown <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu">
+ <li><a href="#profile" >sample1</a></li>
+ <li><a href="#messages" >sample2</a></li>
+ </ul>
+</li>
+ <li><a href="#settings" data-toggle="tab">Settings</a></li>
+</ul>
+*/
+ }
}
?>
--- /dev/null
+-- *
+-- * バージョンアップ用スクリプト
+-- *
+-- * 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-2014 Magic3 Project.
+-- * @license http://www.gnu.org/copyleft/gpl.html GPL License
+-- * @version SVN: $Id$
+-- * @link http://www.magic3.org
+-- *
+-- --------------------------------------------------------------------------------------------------
+-- バージョンアップ用スクリプト
+-- --------------------------------------------------------------------------------------------------
+
+-- *** システムベーステーブル ***
+
+-- ウィジェット情報マスター
+ALTER TABLE _widgets ADD wd_required_version VARCHAR(10) DEFAULT '' NOT NULL; -- 動作に必要なシステムバージョン
+
+-- *** システム標準テーブル ***
+
-- ウィジェット情報(PC用/メニュー)\r
DELETE FROM _widgets WHERE wd_id = 'default_menu';\r
INSERT INTO _widgets\r
-(wd_id, wd_name, wd_type, wd_type_option, wd_category_id, wd_template_type, wd_version, wd_joomla_class, wd_author, wd_copyright, wd_license, wd_official_level, wd_description, wd_add_script_lib, wd_add_script_lib_a, wd_has_admin, wd_use_instance_def, wd_initialized, wd_cache_type, wd_view_control_type, wd_release_dt, wd_install_dt, wd_create_dt) VALUES\r
-('default_menu', 'デフォルトメニュー', 'menu', 'nav', 'menu', 'bootstrap', '3.0.0', '', 'Naoki Hirata', 'Magic3.org', 'GPL', 10, '複数のメニューが作成できる多階層のメニューです。「user3」ポジションに配置するとナビゲーションメニューが表示できます。', '', 'jquery-ui.tabs', true, true, true, 2, 1, '2014-03-14', now(), now());\r
+(wd_id, wd_name, wd_type, wd_type_option, wd_category_id, wd_template_type, wd_version, wd_required_version, wd_author, wd_copyright, wd_license, wd_official_level, wd_description, wd_add_script_lib, wd_add_script_lib_a, wd_has_admin, wd_use_instance_def, wd_initialized, wd_cache_type, wd_view_control_type, wd_release_dt, wd_install_dt, wd_create_dt) VALUES\r
+('default_menu', 'デフォルトメニュー', 'menu', 'nav', 'menu', 'bootstrap', '3.1.0b', '2.8.15', 'Naoki Hirata', 'Magic3.org', 'GPL', 10, '複数のメニューが作成できる多階層のメニューです。「user3」ポジションに配置するとナビゲーションメニューが表示できます。', '', 'jquery-ui.tabs', true, true, true, 2, 1, '2014-04-24', now(), now());\r
DELETE FROM _widgets WHERE wd_id = 'accordion_menu';\r
INSERT INTO _widgets\r
(wd_id, wd_name, wd_type, wd_category_id, wd_version, wd_author, wd_copyright, wd_license, wd_official_level, wd_description, wd_add_script_lib, wd_add_script_lib_a, wd_has_admin, wd_use_instance_def, wd_initialized, wd_cache_type, wd_view_control_type, wd_release_dt, wd_install_dt, wd_create_dt) VALUES\r
width:95%;
margin: 10px auto;
}
+.m3config_fullwidth {
+ position: fixed;
+ left: 0px;
+ right: 0px;
+}
/****** edit line ******/
.m3line_image {
width:16px;
private $showDetail; // 詳細表示するかどうか
private $defaultImageSize = 32; // ウィジェット画像サイズ
private $isExistsWidgetList; // ウィジェットが存在するかどうか
+ private $systemVer; // システムバージョン
const SCRIPT_FILE_EXT = 'js'; // JavaScriptファイル拡張子
const CSS_FILE_EXT = 'css'; // cssファイル拡張子
const PHP_FILE_EXT = 'php'; // phpファイル拡張子
$this->widgetTypeArray = array( array( 'name' => $this->_('For PC'), 'value' => '0'), // PC用
array( 'name' => $this->_('For Mobile'), 'value' => '1'), // 携帯用
array( 'name' => $this->_('For Smartphone'), 'value' => '2')); // スマートフォン用
+
+ $this->systemVer = $this->gSystem->getSystemConfig(M3_TB_FIELD_DB_VERSION);
}
/**
* テンプレートファイルを設定
{
$version = $fetchedRow['wd_version'];
$latestVersion = $fetchedRow['wd_latest_version'];
+ $requiredVersion = $fetchedRow['wd_required_version']; // 動作に必要なシステムバージョン
// ウィジェットが存在するかどうかチェック
$isExistsWidget = false;
$latestVer = '';
$regex = '/([0-9\.]+)([a-z]*)/';
if (preg_match($regex, $latestVersion, $matches)){
- if (version_compare($version, $latestVersion) == -1){ // 最新バージョンが現在のバージョンよりも上の場合のみ表示
+ if (version_compare($version, $latestVersion) < 0){ // 最新バージョンが現在のバージョンよりも上の場合のみ表示
$optionVerStr = strtolower($matches[2]);
if (empty($optionVerStr)){ // 付加記号なしの場合
- $latestVer = '<span class="available"><a href="javascript:void(0);" onclick="updateWidget(\'' . $widgetId . '\');">' . $this->convertToDispString($latestVersion) . '</a></span>';
+ // 動作に必要なシステムバージョン以上の場合のみバージョンアップ可能
+ if (version_compare($requiredVersion, $this->systemVer) <= 0){
+ $latestVer = '<span class="available"><a href="javascript:void(0);" onclick="updateWidget(\'' . $widgetId . '\');">' . $this->convertToDispString($latestVersion) . '</a></span>';
+ } else {
+ $latestVer = '<span class="available">' . $this->convertToDispString($latestVersion) . '</span>';
+ }
} else {
switch ($optionVerStr){
case 'x': // 緊急バージョンアップ
<input type="hidden" name="treesrc" />\r
<input type="hidden" name="treedest" />\r
<input type="hidden" name="treepos" />\r
-<table width="90%">\r
+<table>\r
<tr><td><span {_HELP_MENUDEF_LIST}><label>{_LC_LABEL_MENU_ITEM_LIST}</label></span>\r
<select name="menuid" onchange="selectMenu();" {SEL_MENU_ID_DISABLED}>\r
<patTemplate:tmpl name="menu_id_list">\r
<input type="hidden" name="serial" value="{SERIAL}" />
<input type="hidden" name="parentid" value="{PARENT_ID}" />
<input type="hidden" name="menuid" value="{MENU_ID}" />
-<table width="90%">
+<table>
<tr><td><span {_HELP_MENUDEF_DETAIL}><label>{_LC_LABEL_MENU_ITEM_DETAIL}</label></span></td>
<td align="right"><span {_HELP_MENUDEF_RET_BTN}><input type="button" class="button" onclick="cancelItem();" value="{_LC_LABEL_GO_BACK}" /></span>
</td></tr>
<input type="hidden" name="serial" />\r
<input type="hidden" name="seriallist" value="{SERIAL_LIST}" />\r
<input type="hidden" name="menuitems" />\r
-<table width="90%">\r
+<table>\r
<tr><td><span {_HELP_MENUDEF_LIST}><label>{_LC_LABEL_MENU_ITEM_LIST}</label></span>\r
<select name="menuid" onchange="selectMenu();" {SEL_MENU_ID_DISABLED}>\r
<patTemplate:tmpl name="menu_id_list">\r
<input type="hidden" name="act" />
<input type="hidden" name="serial" value="{SERIAL}" />
<input type="hidden" name="menuid" value="{MENU_ID}" />
-<table width="90%">
+<table>
<tr><td><span {_HELP_MENUDEF_DETAIL}><label>{_LC_LABEL_MENU_ITEM_DETAIL}</label></span></td>
<td align="right"><span {_HELP_MENUDEF_RET_BTN}><input type="button" class="button" onclick="cancelItem();" value="{_LC_LABEL_GO_BACK}" /></span>
</td></tr>
</table>\r
</form>\r
</div>\r
- <!--<div id="menu_define" style="padding:0;">-->\r
- <div id="menu_define" class="tab-pane">\r
+ <div id="menu_define" class="tab-pane m3config_fullwidth">\r
<iframe id="menu_def" name="menu_def" style="width:100%; height:2000px; border:none;" allowTransparency="true" frameborder="0">{_LC_LABEL_NENU_DEF}</iframe>\r
</div>\r
</div>\r
</table>\r
</form>\r
</div>\r
- <!--<div id="menu_define">-->\r
- <div id="menu_define" class="tab-pane">\r
+ <div id="menu_define" class="tab-pane m3config_fullwidth">\r
<iframe id="menu_def" name="menu_def" style="width:100%; height:2000px; border:none;" allowTransparency="true" frameborder="0">{_LC_LABEL_NENU_DEF}</iframe>\r
</div>\r
</div>\r