private $systemHandleMode; // システム制御遷移モード(1=サイト非公開時)
private $isPageEditable; // フロント画面ページ編集可能モード
private $isTransparentMode; // 画面透過モード
+ private $isPersonalMode; // 機能アクセスパーソナルモード
private $isEditMode; // フロント画面編集モード
private $isLayout; // 画面レイアウト中かどうか
private $isPageTopUrl; // ページトップ(サブページ内のトップ位置)のURLかどうか
private $lastHeadTitle; // 最後にヘッダ部titleにセットした文字列
private $lastHeadDescription; // 最後にヘッダ部descriptionにセットした文字列
private $lastHeadKeywords; // 最後にヘッダ部keywordsにセットした文字列
+ private $headFirstTag; // HTMLヘッダに最初に出力するタグ文字列
private $headCss = array(); // HTMLヘッダにCSS出力する文字列
private $headScript = array(); // HTMLヘッダにJavascript出力する文字列
private $headPreMobileScript = array(); // HTMLヘッダにJavascript出力する文字列(jQueryMobile用挿入スクリプト)
private $headCanonicalUrl; // カノニカル属性URL
private $initScript = ''; // ウィンドウ初期化時に実行されるスクリプト
private $outputByHtml = true; // HTMLフォーマットで出力するかどうか
+ private $outputByStandardHead; // HTML文書の標準のヘッダタグを出力するかどうか
private $outputHead; // HTMLヘッダ出力を行ったかどうか
private $outputTheme; // jQueryUIテーマ出力を行ったかどうか
private $outputAjaxResponseBody; // AJAX用のレスポンスボディデータかどうか
const WIDGET_ID_TITLE_TAG_END = '}}'; // 遅延実行用タグ(タイトル埋め込み用)
const WIDGET_ID_SEPARATOR = ',';
const HEAD_TAGS = '{{HEAD_TAGS}}'; // HTMLヘッダ出力用タグ
- const MENUBAR_TAGS = '{{MENUBAR_TAGS}}'; // メニューバー出力用タグ
+ const MENUBAR_TAGS = '{{MENUBAR_TAGS}}'; // メニューバー出力用タグ
const MENUBAR_SCRIPT_TAGS = '{{MENUBAR_SCRIPT_TAGS}}'; // メニューバー出力用スクリプトタグ
const WIDGET_ICON_IMG_SIZE = 32; // ウィジェットアイコンサイズ
const WIDGET_INVISIBLE_CLASS = 'm3invisible'; // 非表示ウィジェットクラス
const M3_ADMIN_WIDGET_SCRIPT_FILENAME = 'm3admin_widget2.0.10.js'; // 管理機能(ウィジェット操作)用スクリプト(Magic3 v1.15.0以降)
const M3_ADMIN_WIDGET_CSS_FILE = '/m3/widget.css'; // 管理機能(ウィジェット操作)用CSSファイル
const M3_STD_SCRIPT_FILENAME = 'm3std1.5.2.js'; // 一般、管理機能共通スクリプト
-// const M3_PLUS_SCRIPT_FILENAME = 'm3plus1.6.2.js'; // フロント画面追加用スクリプト(FCKEditor2.6.6対応、CKEditor4.0.1対応)
const M3_OPTION_SCRIPT_FILENAME = 'm3opt1.2.1.js'; // AJAXを含んだオプションライブラリファイル(jQuery必須)
const M3_ADMIN_CSS_FILE = 'm3/admin.css'; // 管理機能用のCSS
const M3_EDIT_CSS_FILE = 'm3/edit.css'; // フロント画面編集用のCSS
if ($gEnvManager->isAdminDirAccess()){ // 管理画面へのアクセスのとき
$value = $gSystemManager->getSystemConfig(self::CF_ADMIN_JQUERY_VERSION);// 管理画面用jQueryバージョン
- if ($cmd == M3_REQUEST_CMD_CONFIG_WIDGET && strStartsWith($widgetId, 'm/')){// 携帯用アクセスポイント用の管理画面の場合はWYSIWYGエディターはFCKEditorに固定
- $this->wysiwygEditor = ScriptLibInfo::LIB_FCKEDITOR; // FCKEditorに固定
- }
-
// 管理画面にBOOTSTRAPを使用するかどうか(初期値)
$this->useBootstrap = self::USE_BOOTSTRAP_ADMIN;
M3_REQUEST_PARAM_FROM => 18, // メッセージの送信元ウィジェットID
M3_REQUEST_PARAM_VIEW_STYLE => 19, // 表示スタイル
M3_REQUEST_PARAM_FORWARD => 20, // 画面遷移用パラメータ
- M3_REQUEST_PARAM_ADMIN_KEY => 21, // 管理者一時キー
M3_REQUEST_PARAM_OPEN_BY => 22, // ウィンドウの開き方
M3_REQUEST_PARAM_SHOW_HEADER => 23, // ヘッダ部表示制御
M3_REQUEST_PARAM_SHOW_FOOTER => 24, // フッタ部表示制御
}
}
/**
+ * HTMLヘッダに最初に出力するタグ文字列を設定
+ *
+ * @param string $str 追加するタグ文字列
+ * @return なし
+ */
+ function setHeadFirstTag($str)
+ {
+ if (!empty($str)) $this->headFirstTag = $str;
+ }
+ /**
* ヘッダ部に出力するカノニカル属性URLを設定
*
* @param string $url URL
*
* @return bool true=編集モードオン、false=編集モードオフ
*/
- function idEditMode()
+ function isEditMode()
{
return $this->isEditMode;
}
/**
+ * 機能アクセスパーソナルモードを設定
+ *
+ * @return なし
+ */
+ function setPersonalMode()
+ {
+ $this->isPersonalMode = true;
+ }
+ /**
+ * 機能アクセスパーソナルモードを取得
+ *
+ * @return bool true=パーソナルモードオン、false=パーソナルモードオフ
+ */
+ function isPersonalMode()
+ {
+ return $this->isPersonalMode;
+ }
+ /**
* 出力フォーマットがHTMLであるかを設定
*
* @param bool $isHtml HTMLフォーマットかどうか
function getMainContentTypes()
{
// 「value」値のみ取得
- return array_map(create_function('$a', 'return $a["value"];'), $this->mainContentTypeInfo);
+ //return array_map(create_function('$a', 'return $a["value"];'), $this->mainContentTypeInfo);
+ $types = array_map(function($a){ return $a["value"]; }, $this->mainContentTypeInfo);
+ return $types;
}
/**
* フロント画面で使用するサブコンテンツタイプを取得
function getSubContentTypes()
{
// 「value」値のみ取得
- return array_map(create_function('$a', 'return $a["value"];'), $this->subContentTypeInfo);
+// return array_map(create_function('$a', 'return $a["value"];'), $this->subContentTypeInfo);
+ $types = array_map(function($a){ return $a["value"]; }, $this->subContentTypeInfo);
+ return $types;
}
/**
* フロント画面で使用する主要機能タイプ情報を取得
function getMainFeatureTypes()
{
// 「value」値のみ取得
- return array_map(create_function('$a', 'return $a["value"];'), $this->mainFeatureTypeInfo);
+// return array_map(create_function('$a', 'return $a["value"];'), $this->mainFeatureTypeInfo);
+ $types = array_map(function($a){ return $a["value"]; }, $this->mainFeatureTypeInfo);
+ return $types;
}
/**
}
} else {
// 管理者キーがあればGETまたはPOST値のセッションIDを使用する
- if ($gEnvManager->isAdminDirAccess()){
- if ($gAccessManager->isValidAdminKey()) session_id($gRequestManager->trimValueOf(session_name()));
- }
+// if ($gEnvManager->isAdminDirAccess()){
+// if ($gAccessManager->isValidAdminKey()) session_id($gRequestManager->trimValueOf(session_name()));
+// }
}
// 最終HTML(ページ全体で使用するHTML)の出力
// デバッグモードの表示
if (M3_SYSTEM_DEBUG) echo 'Debug mode<br />';
+ // ##### ユーザアクセスモードの設定 #####
+ if (!empty($userInfo) && $userInfo->isPersonal()) $this->setPersonalMode(); // パーソナルモードをオン
+/* if (($userInfo->userType == UserInfo::USER_TYPE_MANAGER && $userInfo->userOptType == UserInfo::USER_OPT_TYPE_PAGE_MANAGER)|| // ページ運用者の場合
+ $userInfo->userType < UserInfo::USER_TYPE_MANAGER){ // システム運用者よりも権限が低い場合
+
+ // パーソナルモードをオン
+ $this->setPersonalMode();
+ }*/
+
// ##### ページIDの修正 #####
// ポジション表示の場合はページID、ページサブIDを再設定。再設定はシステム管理者のみ可能。
if (($cmd == M3_REQUEST_CMD_SHOW_POSITION || // 管理画面(ウィジェットなしポジション表示)のとき
$cmd == M3_REQUEST_CMD_SHOW_POSITION_WITH_WIDGET) && // 管理画面(ウィジェット付きポジション表示)のとき
- $gEnvManager->isSystemAdmin()){
+// $gEnvManager->isSystemAdmin()){
+ $gEnvManager->isSystemManageUser()){ // システム運用可能の場合(2018/8/5変更)
$pageId = $request->trimValueOf(M3_REQUEST_PARAM_DEF_PAGE_ID);
if (empty($pageId)) $pageId = $this->gEnv->getDefaultPageId(); // 値がないときはデフォルトのページIDを設定
if ($paramCount == 0){
$this->isPageTopUrl = true; // ページトップ(サブページ内のトップ位置)のURLかどうか
- if ($gEnvManager->isAdminDirAccess() && $gEnvManager->isSystemAdmin() && empty($task)){
- // ダッシュボード機能は、パラメータなし、管理者ディレクトリ、システム管理者の条件で使用可能
+ //if ($gEnvManager->isAdminDirAccess() && $gEnvManager->isSystemAdmin() && empty($task)){
+ if ($gEnvManager->isAdminDirAccess() && $gEnvManager->isSystemManageUser() && empty($task)){
+ // ダッシュボード機能は、パラメータなし、管理者ディレクトリ、システム運用者の条件で使用可能(2018/8/5変更)
// POST値にタスクがある場合はダッシュボードとしない
$subId = $this->db->getSubPageIdWithContent(M3_VIEW_TYPE_DASHBOARD, $gEnvManager->getCurrentPageId());// ページサブIDを取得
}
// $this->addScript('', ScriptLibInfo::LIB_JQUERY_RESPONSIVETABLE);// 管理画面作成用
$this->addScript('', ScriptLibInfo::getWysiwygEditorLibId()); // WYSIWYGエディターを追加
- // $this->addScriptFile(self::M3_PLUS_SCRIPT_FILENAME); // フロント画面追加用スクリプト追加(PLUSライブラリを追加する場合はFCKEditorも使用可能にする)
$this->addScriptFile(self::M3_ADMIN_SCRIPT_FILENAME); // 管理スクリプトライブラリ追加
$this->addScriptFile(self::M3_OPTION_SCRIPT_FILENAME); // Magic3のオプションライブラリ追加
$this->addScript('', ScriptLibInfo::LIB_JQUERY_HOVERINTENT);// HELP用スクリプト追加
if (empty($curTemplate)){
if ($pageId == $this->gEnv->getDefaultPageId()){ // 通常サイトのとき
$curTemplate = $this->gSystem->defaultTemplateId();
- } else if ($pageId == $this->gEnv->getDefaultMobilePageId()){ // 携帯サイトのとき
- $curTemplate = $this->gSystem->defaultMobileTemplateId(); // 携帯用デフォルトテンプレート
} else if ($pageId == $this->gEnv->getDefaultSmartphonePageId()){ // スマートフォン用サイトのとき
$curTemplate = $this->gSystem->defaultSmartphoneTemplateId(); // スマートフォン用デフォルトテンプレート
}
*/
function lateLaunchWidget($request, $srcBuf)
{
+ static $render; // HTML生成オブジェクト
global $gEnvManager;
global $gErrorManager;
global $gDesignManager;
// ウィジェットヘッダ(Joomla!1.0用)を出力のタイプを取得
$widgetHeaderType = $this->getTemplateWidgetHeaderType();
-
+
+ // テンプレートタイプ取得
+ $templateVer = $gEnvManager->getCurrentTemplateType();
+
// 遅延実行ウィジェットをインデックス順にソート
asort($this->lateLaunchWidgetList, SORT_NUMERIC);
$srcContents = ob_get_contents();
ob_end_clean();
+ // ### テンプレート側のウィジェット生成処理使える場合はウィジェットの出力と入れ替える ###
+ // ### 先のrequire($widgetIndexFile)で必要なデータは作成されている ###
+ if ($templateVer >= 1 && $templateVer < 100){ // Joomla!v1.5,v2.5テンプレートのとき
+ $widgetType = $pageDefRec['wd_type']; // ウィジェットタイプ
+ if ($widgetType == 'breadcrumb'){ // パンくずリスト
+ // 描画オブジェクト作成
+ if (!isset($render)) $render = new JRender();
+
+ $templateContents = $render->getBreadcrumbContents('', '', '', array(), array(), $pageDefRec, $templateVer); // テンプレートバージョンのみ必要
+ if (!empty($templateContents)) $srcContents = $templateContents;
+ }
+ }
+
// ウィジェットの出力を取得
$tag = self::WIDGET_ID_TAG_START . $widgetId . self::WIDGET_ID_SEPARATOR . $maxNo . self::WIDGET_ID_TAG_END;
$destBuf = str_replace($tag, $srcContents, $destBuf);
// ##### ヘッダ部分の置換 #####
if ($this->outputHead){ // HTMLヘッダ出力を行っているとき
+ $replaceStr = '';
+
+ // HTMLヘッダに最初に出力するタグ文字列がある場合は追加
+ if (!empty($this->headFirstTag)) $replaceStr .= $this->headFirstTag;
+
+ // METAタグcharset等のHTML文書の標準のヘッダタグを出力
+ if ($this->outputByStandardHead) $replaceStr .= $this->getStandardHead();
+
// タグ変換用文字列の取得
- $replaceStr = $this->getHeaderOutput();
+ $replaceStr .= $this->getHeaderOutput();
// HTMLヘッダのデータ埋め込み
$destBuf = str_replace(self::HEAD_TAGS, $replaceStr, $destBuf);
$openBy = $gRequestManager->trimValueOf(M3_REQUEST_PARAM_OPEN_BY); // ウィンドウオープンタイプ
$task = $gRequestManager->trimValueOf(M3_REQUEST_PARAM_OPERATION_TASK);
-// $isHtml5 = false; // HTML5で出力するかどうか
$tempVer = $gEnvManager->getCurrentTemplateType(); // テンプレートタイプを取得(0=デフォルト(Joomla!v1.0),1=Joomla!v1.5,2=Joomla!v2.5)
if (intval($tempVer) >= 2) $this->isHtml5 = true; // HTML5で出力するかどうか
$docTypeStr = '<!DOCTYPE html PUBLIC "-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN" "xhtml-basic10-plus.dtd">';
}
}
- if ($gEnvManager->getIsMobileSite()){ // 携帯用サイトへのアクセスの場合
- echo '<?xml version="1.0" encoding="' . $gEnvManager->getMobileCharset() . '" ?>' . M3_NL;
- } else {
- echo '<?xml version="1.0" encoding="' . M3_HTML_CHARSET . '" ?>' . M3_NL;
- }
+ echo '<?xml version="1.0" encoding="' . M3_HTML_CHARSET . '" ?>' . M3_NL;
if (empty($docTypeStr)) $docTypeStr = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
echo $docTypeStr . M3_NL;
}
*/
function getHeader()
{
+ // ヘッダタグ変換の設定
+ $this->outputHead = true; // HTMLヘッダ出力を行ったかどうか
+ $this->outputByStandardHead = true; // HTML文書の標準のヘッダタグを出力するか
+
+ // ##### Magic3システムで必要なヘッダ出力用のタグを埋め込む #####
+ echo self::HEAD_TAGS; // HTMLヘッダの埋め込みデータ
+ }
+ /**
+ * HTML文書の標準のヘッダタグを出力
+ *
+ * @return string 標準ヘッダ文字列
+ */
+ function getStandardHead()
+ {
global $gEnvManager;
global $gRequestManager;
-
- $this->outputHead = true; // HTMLヘッダ出力を行ったかどうか
+
+ $headStr = ''; // ヘッダ文字列;
// 実行コマンドを取得
$cmd = $gRequestManager->trimValueOf(M3_REQUEST_PARAM_OPERATION_COMMAND);
- // ######### 携帯用サイトの場合は別にヘッダを作成する #########
- if ($gEnvManager->getIsMobileSite()){
- // キャラクターセット
- echo '<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=' . $gEnvManager->getMobileCharset() . '" />' . M3_NL;
-
- // キャッシュを保存させない
- echo '<meta http-equiv="Pragma" content="no-cache" />' . M3_NL;
- echo '<meta http-equiv="Cache-Control" content="no-cache" />' . M3_NL;
- echo '<meta http-equiv="Expires" content="-1" />' . M3_NL;
+ if ($gEnvManager->getIsSmartphoneSite()){ // スマートフォン用サイトのときはHTML5で設定
+ $this->isHtml5 = true;
+ } else {
+ $tempVer = $gEnvManager->getCurrentTemplateType(); // テンプレートタイプを取得(0=デフォルト(Joomla!v1.0),1=Joomla!v1.5,2=Joomla!v2.5)
+ if (intval($tempVer) >= 2) $this->isHtml5 = true;
+ }
- // サイト構築エンジン
- echo '<meta name="generator" content="' . M3_SYSTEM_NAME . ' ver.' . M3_SYSTEM_VERSION . ' - ' . M3_SYSTEM_DESCRIPTION . '" />' . M3_NL;
- } else { // PC用サイト、管理用サイト、スマートフォン用サイトのとき
-// $isHtml5 = false; // HTML5で出力するかどうか
- if ($gEnvManager->getIsSmartphoneSite()){ // スマートフォン用サイトのときはHTML5で設定
- $this->isHtml5 = true;
- } else {
- $tempVer = $gEnvManager->getCurrentTemplateType(); // テンプレートタイプを取得(0=デフォルト(Joomla!v1.0),1=Joomla!v1.5,2=Joomla!v2.5)
- if (intval($tempVer) >= 2) $this->isHtml5 = true;
- }
-
- // ********** メタタグの設定 **********
- // キャラクターセット
- //if ($gEnvManager->getIsSmartphoneSite()){ // スマートフォン用サイトのときはHTML5で設定
- if ($this->isHtml5){
- //echo '<meta http-equiv="content-type" content="text/html; charset=' . M3_HTML_CHARSET .'" />' . M3_NL;
- echo '<meta charset="' . M3_HTML_CHARSET . '">' . M3_NL;
+ // キャラクターセット
+ if ($this->isHtml5){
+ $headStr .= '<meta charset="' . M3_HTML_CHARSET . '">' . M3_NL;
+ } else {
+ $headStr .= '<meta http-equiv="content-script-type" content="text/javascript" />' . M3_NL;
+ $headStr .= '<meta http-equiv="content-style-type" content="text/css" />' . M3_NL;
+ $headStr .= '<meta http-equiv="content-type" content="application/xhtml+xml; charset=' . M3_HTML_CHARSET .'" />' . M3_NL;
+ }
+ if ($gEnvManager->isAdminDirAccess()){ // 管理画面へのアクセスのとき
+ // Bootstrapで必要なMETAタグを追加
+ $headStr .= '<meta name="viewport" content="width=device-width, initial-scale=1">' . M3_NL;
+ }
+
+ // 基準ディレクトリの指定
+ if ($cmd == M3_REQUEST_CMD_SHOW_POSITION || // 表示位置を表示するとき
+ $cmd == M3_REQUEST_CMD_SHOW_POSITION_WITH_WIDGET){ // 表示位置を表示するとき(ウィジェット付き)
+
+ if ($gEnvManager->getUseSslAdmin()){
+ $rootUrl = $gEnvManager->getSslRootUrl();
} else {
- echo '<meta http-equiv="content-script-type" content="text/javascript" />' . M3_NL;
- echo '<meta http-equiv="content-style-type" content="text/css" />' . M3_NL;
- echo '<meta http-equiv="content-type" content="application/xhtml+xml; charset=' . M3_HTML_CHARSET .'" />' . M3_NL;
- }
- if ($gEnvManager->isAdminDirAccess()){ // 管理画面へのアクセスのとき
- // Bootstrapで必要なMETAタグを追加
- echo '<meta name="viewport" content="width=device-width, initial-scale=1">' . M3_NL;
- }
-
- // 基準ディレクトリの指定
- if ($cmd == M3_REQUEST_CMD_SHOW_POSITION || // 表示位置を表示するとき
- $cmd == M3_REQUEST_CMD_SHOW_POSITION_WITH_WIDGET){ // 表示位置を表示するとき(ウィジェット付き)
-
- if ($gEnvManager->getUseSslAdmin()){
- $rootUrl = $gEnvManager->getSslRootUrl();
- } else {
- $rootUrl = $gEnvManager->getRootUrl();
- }
- echo '<base href="' . $rootUrl . '/" />' . M3_NL;
+ $rootUrl = $gEnvManager->getRootUrl();
}
+ $headStr .= '<base href="' . $rootUrl . '/" />' . M3_NL;
}
- echo self::HEAD_TAGS; // HTMLヘッダの埋め込みデータ
+ return $headStr;
}
/**
* HTMLヘッダ出力文字列の取得
}
} else { // フロント画面へのアクセスの場合
// ### Bootstrapのjsとcssはテンプレート側で読み込む ###
-// $this->addScript('', ScriptLibInfo::LIB_BOOTSTRAP); // Bootstrapライブラリ
- if ($cmd == M3_REQUEST_CMD_LOGIN || $cmd == M3_REQUEST_CMD_LOGOUT || $cmd == M3_REQUEST_CMD_PREVIEW || // ログイン、ログアウト場合
+ // ### フロントからプレビューコマンドでログイン画面を表示させるパターンがあるので注意 ###
+// if ($cmd == M3_REQUEST_CMD_LOGIN || $cmd == M3_REQUEST_CMD_LOGOUT || $cmd == M3_REQUEST_CMD_PREVIEW || // ログイン、ログアウト場合
+ if ($cmd == M3_REQUEST_CMD_LOGIN || $cmd == M3_REQUEST_CMD_LOGOUT || ($cmd == M3_REQUEST_CMD_PREVIEW && !$gEnvManager->isCurrentUserLogined()) || // ログイン、ログアウト場合
($cmd == M3_REQUEST_CMD_DO_WIDGET && !empty($openBy) && $gEnvManager->isContentEditableUser())){ // ウィジェット単体実行でウィンドウを持つ場合の追加スクリプト
+
$this->addScript('', ScriptLibInfo::LIB_BOOTSTRAP_ADMIN); // Bootstrap管理画面オプション
} else {
if ($gEnvManager->isSystemManageUser() || // システム運用権限がある場合
$replaceStr .= '<script type="text/javascript" src="' . convertUrlToHtmlEntity($scriptURL) . '"></script>' . M3_NL;
}
- if ($cmd == M3_REQUEST_CMD_LOGIN || $cmd == M3_REQUEST_CMD_LOGOUT || $cmd == M3_REQUEST_CMD_PREVIEW){ // ログイン、ログアウト場合
+ // ### フロントからプレビューコマンドでログイン画面を表示させるパターンがあるので注意 ###
+// if ($cmd == M3_REQUEST_CMD_LOGIN || $cmd == M3_REQUEST_CMD_LOGOUT || $cmd == M3_REQUEST_CMD_PREVIEW){ // ログイン、ログアウト場合
+ if ($cmd == M3_REQUEST_CMD_LOGIN || $cmd == M3_REQUEST_CMD_LOGOUT || ($cmd == M3_REQUEST_CMD_PREVIEW && !$gEnvManager->isCurrentUserLogined())){ // ログイン、ログアウト場合
// 管理権限なしで管理ディレクトリアクセスで必要なスクリプトを読み込む
$count = count($this->defaultAdminDirScriptFiles);
for ($i = 0; $i < $count; $i++){
$replaceStr .= 'var M3_USE_GOOGLEMAPS = false;' . M3_NL;
}
+ // 起動がパーソナルモードかどうか
+ if ($this->isPersonalMode){
+ $replaceStr .= 'var M3_PERSONAL_MODE = true;' . M3_NL;
+ } else {
+ $replaceStr .= 'var M3_PERSONAL_MODE = false;' . M3_NL;
+ }
// 管理画面の小画面デバイス最適化を行うかどうか
if ($gEnvManager->isSmallDeviceAdmin()){
$replaceStr .= 'var M3_SMALL_DEVICE_OPTIMIZE = true;' . M3_NL;
$this->ckeditorCssFiles[] = $scriptsUrl . '/' . self::M3_CKEDITOR_CSS_FILE;
//array_unshift($this->ckeditorCssFiles, $scriptsUrl . '/' . self::M3_CKEDITOR_CSS_FILE);
- $fileList = implode(', ', array_map(create_function('$a','return "\'" . $a . "\'";'), $this->ckeditorCssFiles));
+ //$fileList = implode(', ', array_map(create_function('$a','return "\'" . $a . "\'";'), $this->ckeditorCssFiles));
+ $fileList = implode(', ', array_map(function($a){ return "'" . $a . "'"; }, $this->ckeditorCssFiles));
$replaceStr .= 'var M3_CONFIG_WIDGET_CKEDITOR_CSS_FILES = [ ' . $fileList . ' ];' . M3_NL;
}
// CKEditor用(レイアウト)のCSSファイル
$cssFiles = array();
$cssFiles[] = $scriptsUrl . '/' . ScriptLibInfo::BOOTSTRAP_ADMIN_CSS; // BootstrapのCSSを追加
$cssFiles[] = $scriptsUrl . '/' . self::M3_CKEDITOR_CSS_FILE;
- $fileList = implode(', ', array_map(create_function('$a','return "\'" . $a . "\'";'), $cssFiles));
+// $fileList = implode(', ', array_map(create_function('$a','return "\'" . $a . "\'";'), $cssFiles));
+ $fileList = implode(', ', array_map(function($a){ return "'" . $a . "'"; }, $cssFiles));
$replaceStr .= 'var M3_CONFIG_WIDGET_CKEDITOR_LAYOUT_CSS_FILES = [ ' . $fileList . ' ];' . M3_NL;
// CKEditor用のテンプレートタイプ
} else {
$replaceStr .= 'var M3_USE_GOOGLEMAPS = false;' . M3_NL;
}
-
+
+ // 起動がパーソナルモードかどうか
+ if ($this->isPersonalMode){
+ $replaceStr .= 'var M3_PERSONAL_MODE = true;' . M3_NL;
+ } else {
+ $replaceStr .= 'var M3_PERSONAL_MODE = false;' . M3_NL;
+ }
+
// テンプレートタイプ
$templateType = $gEnvManager->getCurrentTemplateType();
if (isset($templateType)) $replaceStr .= 'var M3_TEMPLATE_TYPE = ' . $templateType . ';' . M3_NL;
$replaceStr .= 'var M3_USE_GOOGLEMAPS = false;' . M3_NL;
}
+ // 起動がパーソナルモードかどうか(常にパーソナルモード)
+ $replaceStr .= 'var M3_PERSONAL_MODE = true;' . M3_NL;
+
// 管理画面の小画面デバイス最適化を行うかどうか
if ($gEnvManager->isSmallDeviceAdmin()){
$replaceStr .= 'var M3_SMALL_DEVICE_OPTIMIZE = true;' . M3_NL;
$this->ckeditorCssFiles[] = $scriptsUrl . '/' . self::M3_CKEDITOR_CSS_FILE;
//array_unshift($this->ckeditorCssFiles, $scriptsUrl . '/' . self::M3_CKEDITOR_CSS_FILE);
- $fileList = implode(', ', array_map(create_function('$a','return "\'" . $a . "\'";'), $this->ckeditorCssFiles));
+// $fileList = implode(', ', array_map(create_function('$a','return "\'" . $a . "\'";'), $this->ckeditorCssFiles));
+ $fileList = implode(', ', array_map(function($a){ return "'" . $a . "'"; }, $this->ckeditorCssFiles));
$replaceStr .= 'var M3_CONFIG_WIDGET_CKEDITOR_CSS_FILES = [ ' . $fileList . ' ];' . M3_NL;
}
// CKEditor用(レイアウト)のCSSファイル
$cssFiles = array();
$cssFiles[] = $scriptsUrl . '/' . ScriptLibInfo::BOOTSTRAP_ADMIN_CSS; // BootstrapのCSSを追加
$cssFiles[] = $scriptsUrl . '/' . self::M3_CKEDITOR_CSS_FILE;
- $fileList = implode(', ', array_map(create_function('$a','return "\'" . $a . "\'";'), $cssFiles));
+ // $fileList = implode(', ', array_map(create_function('$a','return "\'" . $a . "\'";'), $cssFiles));
+ $fileList = implode(', ', array_map(function($a){ return "'" . $a . "'"; }, $cssFiles));
$replaceStr .= 'var M3_CONFIG_WIDGET_CKEDITOR_LAYOUT_CSS_FILES = [ ' . $fileList . ' ];' . M3_NL;
// CKEditor用のテンプレートタイプ
if (empty($cacheData)){ // キャッシュデータがないとき
ob_clean();
- $ret = $this->pageDefLoop($position, $i, $this->pageDefRows[$i], $style, $titleTag, $widgetHeaderType);
+ $ret = $this->pageDefLoop($position, $i, $this->pageDefRows[$i], $style, $launchWidgetTag, $titleTag, $widgetHeaderType);
if (!$ret) break;
$widgetContent = ob_get_contents();
$gEnvManager->setWpWidgetClass(''); // ウィジェットクラス名初期化
ob_clean();
- // $ret = $this->pageDefLoop($position, $i, $this->pageDefRows[$i], $style, $titleTag, $widgetHeaderType);
- $ret = $this->pageDefLoop($position, $i, $this->pageDefRows[$i], $style, $titleTag, 0/*タイトル出力なし*/);
+ // $ret = $this->pageDefLoop($position, $i, $this->pageDefRows[$i], $style, $launchWidgetTag, $titleTag, $widgetHeaderType);
+ $ret = $this->pageDefLoop($position, $i, $this->pageDefRows[$i], $style, $launchWidgetTag, $titleTag, 0/*タイトル出力なし*/);
if (!$ret) break;
$widgetContent = ob_get_contents();
$title = ''; // タイトルは非表示
}
+ // 強制的にタイトルを非表示にする場合はタイトルを修正
+ if (!empty($title) && $this->pageDefRows[$i]['wd_hide_title']){
+ if ($this->isPageEditable){ // フロント画面ページ編集可能モードのとき
+ $title = '[' . $title . ']';
+ } else {
+ $title = '';
+ }
+ }
+
// WordPress用パラメータ作成
$params = array(); // ウィジェットごとの属性
if (!empty($widgetClassName)) $params['moduleclass'] = $widgetClassName; // ウィジェットクラス名
// ウィジェットの出力を取得
ob_clean();
- $ret = $this->pageDefLoop($position, $i, $this->pageDefRows[$i], $style, $titleTag, 0/*タイトル出力なし*/);
+ $ret = $this->pageDefLoop($position, $i, $this->pageDefRows[$i], $style, $launchWidgetTag, $titleTag, 0/*タイトル出力なし*/);
$widgetContent = ob_get_contents();
$trimContent = trim($widgetContent);
$title = ''; // タイトルは非表示
}
+ // 強制的にタイトルを非表示にする場合はタイトルを修正
+ if (!empty($title) && $this->pageDefRows[$i]['wd_hide_title']){
+ if ($this->isPageEditable){ // フロント画面ページ編集可能モードのとき
+ $title = '[' . $title . ']';
+ } else {
+ $title = '';
+ }
+ }
+
// Joomla用パラメータ作成
$params = array(); // ウィジェットごとの属性
$widgetType = $this->pageDefRows[$i]['wd_type']; // ウィジェットタイプ
} else {
// ウィジェットタイプに応じた処理を実行
if ($widgetType == 'breadcrumb'){ // パンくずリスト
- $moduleContent = $render->getBreadcrumbContents($style, $widgetContent, $title, $attr, $params, $pageDefParam, $templateVer);
+ $moduleContent = '';
+
+ if (empty($launchWidgetTag)){ // 遅延実行の場合はここでパンくずリストを作成しないで遅延実行時に行う
+ $moduleContent = $render->getBreadcrumbContents($style, $widgetContent, $title, $attr, $params, $pageDefParam, $templateVer);
+ } else {
+ $moduleContent = $launchWidgetTag; // 遅延実行ウィジェットのタグのみ取得
+ }
// パンくずリストで作成できないときはデフォルトの出力を取得
if (empty($moduleContent)) $moduleContent = $render->getModuleContents('xhtml', $widgetContent, $title, $attr, $params, $pageDefParam, $templateVer);
if (empty($curTemplate)){
if ($pageId == $this->gEnv->getDefaultPageId()){ // 通常サイトのとき
$curTemplate = $this->gSystem->defaultTemplateId();
- } else if ($pageId == $this->gEnv->getDefaultMobilePageId()){ // 携帯サイトのとき
- $curTemplate = $this->gSystem->defaultMobileTemplateId(); // 携帯用デフォルトテンプレート
} else if ($pageId == $this->gEnv->getDefaultSmartphonePageId()){ // スマートフォン用サイトのとき
$curTemplate = $this->gSystem->defaultSmartphoneTemplateId(); // スマートフォン用デフォルトテンプレート
}
* ウィジェット出力を処理
*
* @param string $position HTMLテンプレート上の書き出し位置
- * @param int $index 行番号
- * @param array $fetchedRow fetch取得した行
- * @param string $style ウィジェットの表示スタイル(空の場合=Joomla!v1.0テンプレート用、空以外=Joomla!v1.5テンプレート用)
- * @param string $titleTag タイトル埋め込み用タグ(遅延ウィジェットの場合のみ作成)
- * @param int $widgetHeaderType ウィジェットタイトルを出力方法(0=出力なし、1=Joomla!v1.0PC用出力、2=Joomla!v1.0携帯用出力)
- * @return bool 処理を継続するかどうか(true=続行、false=中断)
+ * @param int $index 行番号
+ * @param array $fetchedRow fetch取得した行
+ * @param string $style ウィジェットの表示スタイル(空の場合=Joomla!v1.0テンプレート用、空以外=Joomla!v1.5テンプレート用)
+ * @param string $launchWidgetTag 遅延ウィジェット埋め込み用タグ(遅延ウィジェットの場合のみ作成)
+ * @param string $titleTag タイトル埋め込み用タグ(遅延ウィジェットの場合のみ作成)
+ * @param int $widgetHeaderType ウィジェットタイトルを出力方法(0=出力なし、1=Joomla!v1.0PC用出力、2=Joomla!v1.0携帯用出力)
+ * @return bool 処理を継続するかどうか(true=続行、false=中断)
*/
- function pageDefLoop($position, $index, $fetchedRow, $style, &$titleTag, $widgetHeaderType = 0)
+ function pageDefLoop($position, $index, $fetchedRow, $style, &$launchWidgetTag, &$titleTag, $widgetHeaderType = 0)
{
global $gEnvManager;
global $gErrorManager;
}
// パラメータ初期化
+ $launchWidgetTag = ''; // 遅延ウィジェット埋め込み用タグ
$titleTag = '';
// ウィジェットID取得
$this->latelaunchWidgetParam[] = array($widgetId, $maxNo, $configId, $prefix, $serial, $style, $cssStyle, $title, $shared, $exportCss, $position, $index, $fetchedRow);
// 遅延実行用タグを埋め込む
- echo self::WIDGET_ID_TAG_START . $widgetId . self::WIDGET_ID_SEPARATOR . $maxNo . self::WIDGET_ID_TAG_END;
+ $launchWidgetTag = self::WIDGET_ID_TAG_START . $widgetId . self::WIDGET_ID_SEPARATOR . $maxNo . self::WIDGET_ID_TAG_END; // 遅延ウィジェット埋め込み用タグ
+ echo $launchWidgetTag;
// タイトル用タグ作成
$titleTag = self::WIDGET_ID_TITLE_TAG_START . $widgetId . self::WIDGET_ID_SEPARATOR . $maxNo . self::WIDGET_ID_TITLE_TAG_END;
}
}
}
-
+
// リダイレクト処理
$this->redirect($redirectUrl);
$success = true; // ログイン成功
$templateId = '';
if ($pageId == $this->gEnv->getDefaultPageId()){ // 通常サイトのとき
$templateId = $this->gSystem->defaultTemplateId();
- } else if ($pageId == $this->gEnv->getDefaultMobilePageId()){ // 携帯サイトのとき
- $templateId = $this->gSystem->defaultMobileTemplateId(); // 携帯用デフォルトテンプレート
} else if ($pageId == $this->gEnv->getDefaultSmartphonePageId()){ // スマートフォン用サイトのとき
$templateId = $this->gSystem->defaultSmartphoneTemplateId(); // スマートフォン用デフォルトテンプレート
}