環境構築備忘録
日本語対応(SkyBlueCanvas)
をテンプレートにして作成
開始行:
*SkyBlueCanvasの日本語対応 [#cd4ef95a]
いざ使ってみて、一部の機能にて日本語(2バイト文字)がまとも...
~
管理画面から各ページを作成・修正する際に、本文に日本語を...
※/data/xml/page.xml への書き出し時に、文字化けする。
このため、以下のファイルを修正~
/includes/xml.parser.php
160行目
// $xml .= $indent.$k.'="'.htmlentities($v).'"';
$xml .= $indent.$k.'="'.htmlspecialchars($v).'"';
どうも、htmlentities()にて文字列をHTMLエンティティに変換...
他のCMS等でも、同じような文字化けが報告されているので、一...
※ちなみに、今回の環境はWebARENA SuiteX上~
***追記: [#aa0ff1b8]
公式フォーラムにて、他言語(フランス語とかドイツ語)での独...
作者から、次バージョンへの組み込みコメントもらっているの...
(09/01/14)
***追記: &color(red){(09/02/02に公式にて対応済み)};[#oc6...
%%Page作成時に、日本語で"Menu Text"を記載すると、ページへ...
%%これは、SAFE_URLのチェックにて、%%
-%%アルファベット%%
-%%数字%%
-%%一部記号%%
%%以外は、一律削除と処理しているためのようです。%%~
%%このため、"Menu Text"が日本語のページを複数作ると、Page...
%%回避策として、urlencode()を使って、SAFE_URLのチェックを...
%%URLの書き出しはできているが、クリックした際のURLの解釈...
%%この機能は、SEO対策としてURLをわかりやすい形に変更し、A...
%%もうちょっとソース見てみないといけないようです。%%~
%%では、どうやって回避するかというと%%~
%%これも、ソースいじらないといけません%%。~
~
%%SkyBlueCanvasでは、.htaccessファイルの有無で、RewriteEn...
%%これでは、レンタルサーバ等でphp_value等を設定したい、且...
%%このため、以下のファイルを修正%%~
%%/includes/core.php%%
%%331行目%%
// define('USE_SEF_URLS', file_exists($this->path . '...
define('USE_SEF_URLS', 0 );
%%.htaccessファイルの有無で、USE_SEF_URLSのフラグを立てる...
%%この修正で、強制的にUSE_SEF_URLSを使用しないようにして...
%%ただし、あくまで緊急的な例外処理のため、本質的には問題...
%%一応、このフラグは他のキーに使われていないので、誤作動...
(09/01/15)
***&color(red){追記:}; [#o7163aa3]
上記対策が、[[公式フォーラム>http://forum.skybluecanvas.c...
/include/router.php~
関数2つを置き換え~
function normalize($str) {
$str = strtolower(str_replace(
array('ä', 'ö', 'ü', '&szlg', ...
array('ae', 'oe', 'ue', 'ss', '-and-', '-and-...
$str
));
$chars = "abcdefghijklmnopqrstuvwxyz0123456789_-%";
$output = "";
$str = strtolower($str);
for ($i=0; $i<strlen($str); $i++) {
if (false === strpos($chars, $str{$i})) {
if ($str{$i} == ' '){
$output = $output.'-';
}
else {
$output = $output.'%'.dechex(ord($st...
}
} else {
$output = $output.$str{$i};
}
}
$str = $output;
$max = 50;
$n=0;
while (strpos($str, '--') !== false && $n<$max) {
$str = str_replace('--', '-', $str);
$n++;
}
return $str;
}
function getPageByNameAndParent($identifier, $par...
$identifier = $this->removeFileExt($identifie...
$bits = explode('.', $identifier);
$identifier = $bits[0];
if (count($bits) > 1) {
$_GET['params'] = array_slice($bits, 1);
}
if (empty($identifier)) {
return $this->getDefaultPage();
}
$selectedPages = array();
foreach ($this->pages as $page) {
if (($this->normalize($page->name) == str...
&& $page->parent == $parent)
{
array_push($selectedPages, $page);
}
}
return $selectedPages;
}
(09/02/13)
終了行:
*SkyBlueCanvasの日本語対応 [#cd4ef95a]
いざ使ってみて、一部の機能にて日本語(2バイト文字)がまとも...
~
管理画面から各ページを作成・修正する際に、本文に日本語を...
※/data/xml/page.xml への書き出し時に、文字化けする。
このため、以下のファイルを修正~
/includes/xml.parser.php
160行目
// $xml .= $indent.$k.'="'.htmlentities($v).'"';
$xml .= $indent.$k.'="'.htmlspecialchars($v).'"';
どうも、htmlentities()にて文字列をHTMLエンティティに変換...
他のCMS等でも、同じような文字化けが報告されているので、一...
※ちなみに、今回の環境はWebARENA SuiteX上~
***追記: [#aa0ff1b8]
公式フォーラムにて、他言語(フランス語とかドイツ語)での独...
作者から、次バージョンへの組み込みコメントもらっているの...
(09/01/14)
***追記: &color(red){(09/02/02に公式にて対応済み)};[#oc6...
%%Page作成時に、日本語で"Menu Text"を記載すると、ページへ...
%%これは、SAFE_URLのチェックにて、%%
-%%アルファベット%%
-%%数字%%
-%%一部記号%%
%%以外は、一律削除と処理しているためのようです。%%~
%%このため、"Menu Text"が日本語のページを複数作ると、Page...
%%回避策として、urlencode()を使って、SAFE_URLのチェックを...
%%URLの書き出しはできているが、クリックした際のURLの解釈...
%%この機能は、SEO対策としてURLをわかりやすい形に変更し、A...
%%もうちょっとソース見てみないといけないようです。%%~
%%では、どうやって回避するかというと%%~
%%これも、ソースいじらないといけません%%。~
~
%%SkyBlueCanvasでは、.htaccessファイルの有無で、RewriteEn...
%%これでは、レンタルサーバ等でphp_value等を設定したい、且...
%%このため、以下のファイルを修正%%~
%%/includes/core.php%%
%%331行目%%
// define('USE_SEF_URLS', file_exists($this->path . '...
define('USE_SEF_URLS', 0 );
%%.htaccessファイルの有無で、USE_SEF_URLSのフラグを立てる...
%%この修正で、強制的にUSE_SEF_URLSを使用しないようにして...
%%ただし、あくまで緊急的な例外処理のため、本質的には問題...
%%一応、このフラグは他のキーに使われていないので、誤作動...
(09/01/15)
***&color(red){追記:}; [#o7163aa3]
上記対策が、[[公式フォーラム>http://forum.skybluecanvas.c...
/include/router.php~
関数2つを置き換え~
function normalize($str) {
$str = strtolower(str_replace(
array('ä', 'ö', 'ü', '&szlg', ...
array('ae', 'oe', 'ue', 'ss', '-and-', '-and-...
$str
));
$chars = "abcdefghijklmnopqrstuvwxyz0123456789_-%";
$output = "";
$str = strtolower($str);
for ($i=0; $i<strlen($str); $i++) {
if (false === strpos($chars, $str{$i})) {
if ($str{$i} == ' '){
$output = $output.'-';
}
else {
$output = $output.'%'.dechex(ord($st...
}
} else {
$output = $output.$str{$i};
}
}
$str = $output;
$max = 50;
$n=0;
while (strpos($str, '--') !== false && $n<$max) {
$str = str_replace('--', '-', $str);
$n++;
}
return $str;
}
function getPageByNameAndParent($identifier, $par...
$identifier = $this->removeFileExt($identifie...
$bits = explode('.', $identifier);
$identifier = $bits[0];
if (count($bits) > 1) {
$_GET['params'] = array_slice($bits, 1);
}
if (empty($identifier)) {
return $this->getDefaultPage();
}
$selectedPages = array();
foreach ($this->pages as $page) {
if (($this->normalize($page->name) == str...
&& $page->parent == $parent)
{
array_push($selectedPages, $page);
}
}
return $selectedPages;
}
(09/02/13)
ページ名: