**/ ?>

Ver1.7の変更点

https://cmsimpleforum.com/viewtopic.php?f=2&t=12885#p60979 の 翻訳 & 解説

一般向け テンプレート開発者向け プラグイン開発者向け


 

一般の利用

  1. 最低要件はPHP 5.3.0(PHP 5.6以上推奨)(重要
  2. HTML見出し要素(デフォルトで<h1> - <h3>)でのページ分割の廃止(重要
    これに伴い
    • 任意の見出し要素を挿入する可能・・例えば、1ページに複数のH1~H3タグが使えます
    • 推奨されていない関数がcmsimple / compat.phpに移されました 。 これらの機能が必要ないと確信できるなら、cmsimple / config.phpの$ cf [site] [compat]を空文字列に設定することができます。
      最大9つのメニューレベルを使用可能
    • ページ名(=メニュー名)とページの見出しの分離
    • ページ名はページ管理(pagemanager)で行う
    • 各ページの「ページ設定」の「H1(トップの大文字)の代替する」の廃止
    • ページ分割の新方式は、HTMLのコメントタグを利用
      cmsimple/config.phpの Advanced mode($cf['mode']['advanced'] )を空文字”” を ”true” にすると各ページのエディタのソースコード表示 で編集可能。
      ※Advanced modeは、デフォルトでは非表示。表示させるには cmsimple/metaconfig.phpの
      $mcf['mode']['advanced']="hidden"; のhiddenを bool に変更、または$mcf['mode']['advanced']の行をコメントアウトすると表示されます
  3. 標準エディタをTinyMCE3 から TinyMCE4へ変更
     plugins/tinymceフォルダの廃止。 plugins/tinymce4が標準添付
  4. パスワードの変更は 設定→CMS設定から 設定→パスワードに変更
  5. ページ設定の 非公開ページ(「公開しますか?」) 、隠しページ(メニューに表示しますか?(menu公開)」の設定は、下位のページにも継承されます
  6. 推奨されていない関数がcmsimple / compat.phpに移されました 。 これらの機能が必要ないと確信できるなら、cmsimple / config.phpの$cf["site"]["compat"]を空文字列に設定することができます。
    • autogallery($u)
    • rp($p)
    • amp()
    • guestbooklink()
    • chkdl($fl)
    • rf($fl)
    • chkfile($fl, $writable)
    • preCallPlugins($pageIndex = -1)
    • writelog($m)
  7. Menumanagerプラグインへの特別なサポートは終了。動作しません。
    ※Menumanagerプラグインとは、古いプラグインで同様の機能は、ページ管理(Pagemanagerプラグイン)が持ってます。
  8. 自動的に生成される法的通知ページ(Legal Notices page)は削除されました。
  9.  Site/CMS Info ページが自動的に作成されます。これはそれまでテンプレートで使用されていた "Powered by CMSimple_XH" の代替え。詳しくは、インストール直後のフッターの SITE/CMS INFO のリンク先を観てください (重要)  
  10. ページURLは、複数の連続した単語区切り文字を折りたたむことでわずかに簡略化されています。 たとえば、 "this - that"という名前のページには、以前は "this---that"というURLがありましたが、今は "this-that"です。
  11. スェーデン語とギリシャの言語コードは修正されました。 これらはそれぞれsvとelです。
  12. フラグアイコンが大きく。 18×12 → 32×24
  13. パスワードの暗号化の強化。
    以前の暗号化アルゴリズムではなく、BCryptを使用するようにパスワードハッシュに改善。
  14. タッチスクリーンデバイス上の管理画面のアクセシビリティが向上しました。
  15. パスワード強度に関するチェックの追加。 現在のところ、非常に単純なアルゴリズムを使用しています.100以上の強さは非常に強力なパスワードをマークすることになっています。
  16. システムチェック情報の強化
  17. core/ フォルダを assets/フォルダ に名称を変更
  18. PHPの intl拡張 が利用可能な場合、日付/時刻表現が国際化されます。
  19. searchbox, lastupdateで吐き出されるHTMLの改善
  20. ブラウザでサポートされている場合は、[ページ設定]タブの公開予約/公開期間に日付/時刻のピッカーが表示されます。
    ※Microsoft Edge 40.15で表示されました。FireFOX 55.03は表示されませんでした。他未確認
  21. ログインフォームがテンプレートから切り離されました。??
  22. Fa_XHプラグインが標準プラグインに追加されました。 Awesome アイコンを使うものです
  23. ページの非表示と非表示の機能をコアに移動。
    ※Ver1.6まではpage_paramsプラインに提供されていた
  24. Utf8プラグインの機能がコアに移され、プラグインが削除されました。
  25. core.cssとplugins.cssがxhstyles.cssに結合されました。
  26. サーバー側のパフォーマンスが少し向上。設定ファイルと言語ファイルがオンデマンドでロードされるため、サーバー側のパフォーマンスが少し向上する可能性があります。

 テンプレート作成者

  1. XHTMLのサポート終了。新しいテンプレートにはHTML5のdoctypeを使用することを強くお勧めします。
  2. テンプレート内でのHTML見出し要素(<h1> - <h*>)の配慮の軽減。
    HTML見出し要素(デフォルトで<h1> - <h3>)でのページ分割が廃止されたことにより、テンプレートが新しいページ分割と詳細のために最適化されるはずであるかどうかを文書化することが最善の方法かもしれません。
  3. SITE/CMS INFOへの対応(推奨)
    • templateinfo.htmファイルの新設 
      <a> 、 <br> タグ、半角400文字以下、 UTF-8コードで記述。 
      ※サンプルは templates/fhs-simple/templateinfo.htm
    • "Powered by CMSimple_XH" の代替として <?php echo poweredbylink()?>の使用。 
      テンプレートのフッターにあるテンプレートデザイナーへのバックリンクを削除(またはユーザーが削除できるようにする)し、代わりに新しいpoweredByLink()関数を使用することを検討してください。
      ※サンプル templates/fhs-simple/template.html
      <p class="copyright">
      <?php if (function_exists('poweredbylink')):?>
      © <?php echo date("Y");?> FIRMA XYZ | <?php echo poweredbylink()?>
      <?php else:?>
      © <?php echo date("Y");?> FIRMA XYZ | Powered by <a href="http://www.cmsimple-xh.org/" target="_blank">CMSimple_XH</a> | Template by <a href="http://fhseidel.de/" target="_blank">fhs</a></p>
      <?php endif?>
      </div>
  4.  言語フラグ用に flags/フォルダ(templates/あなたのテンプレート/flags/)の標準化。flags/に言語フラグのアイコン(GIF画像  32×24)のセットを出荷できるようになりました。 それぞれのGIF画像をテンプレートの flags/ サブフォルダに入れるだけです。 欠落しているアイコンは、デフォルトの場所(userfiles/images/flags /)から取得されます
  5. 関数 submenu() は、オプションのパラメータを受け取れます。(重要)
    これにより、サブメニュータイトルのカスタムマークアップが可能になります。
    Ver1.6まで submenu()
            if (count($ta) != 0) {
                $level = min($cf['menu']['levels'] + 1, 6);
                return '<h' . $level . '>' . $tx['submenu']['heading']
                    . '</h' . $level . '>'
                    . li($ta, 'submenu');
            }

    Ver1.7以降 function submenu($html = '')
            if (count($ta) != 0) {
                if ($html == '') {
                    $level = min($cf['menu']['levels'] + 1, 6);
                    return '<h' . $level . '>' . $tx['submenu']['heading']
                        . '</h' . $level . '>'
                        . li($ta, 'submenu');
                } else {
                    return sprintf($html, $tx['submenu']['heading'])
                        . li($ta, 'submenu');
                }
            }
  6. CMSimple_XH 1.5.8以降で廃止された関数 legallink() のサポート終了。
  7. 関数 editmenu() は非推奨。 XH 1.5以降、機能してません。テンプレートからの削除を開始しましょう。
  8. 関数 tag() は非推奨。 代わりに有効なHTML5を単に送信することをお勧めします。
  9. 関数 top() は、#TOP以外のidにリンクするために使用できるオプションのパラメータを受け入れます。
    Ver1.6まで・・単純にTOPだけ
    function top()
    {
        global $tx;
        return '<a href="#TOP">' . $tx['navigator']['top'] . '</a>';
    }

    Ver1.7~  TOP以外も使用可能
    function top($id = 'TOP')
    {
        global $tx;
        return '<a href="#' . $id . '">' . $tx['navigator']['top'] . '</a>';
    }
    
  10.  CSS の .plugintext、.pluginedit、.plugineditcaptionがコアプラグインと標準プラグインから削除されました。 これらの古いPluginloaderクラスはまだいくつかのプラグインで使用されているかもしれませんが、おそらく新しいテンプレートについては無視することができます。
  11. テンプレートスタイルシート(templates/.../stylesheet.css)の読み込み順を変更。
    プラグイン定義ルール(plugins.css)の前に読み込まれたが、Ver1.7でプラグイン定義ルールより後に読み込む
    プラグイン定義ルールを上書きしやすくなりました。
  12. Fa_XHプラグインが標準ディストリビューションに追加されました。 テンプレートでFont Awesomeを使用することをお勧めします。

プラグインの開発者 :

  1.  変数 $プラグイン名 の廃止。(重要)
     プラグインが選択されてるか(起動してるか)?の判定には XH_wantsPluginAdministration() を使用してください
      以前のバージョンでは、クエリ文字列のフラグ(つまり、等号と値のないパラメータ名)は、値 'true'を持つグローバル変数として自動的に登録されていましたが、これはもはやセキュリティと保守性の理由から当てはまりません。 この "機能"は、通常、特定のプラグインの管理が要求されているかどうか(if($ pagemanager)...)、それ以上は動作しないかどうかを確認するために使用されています 。
    ※1.6までは、例えば
    // プラグイン poll が選択されてるか?
    if (!empty($poll)) {
    や、
    //管理画面で プラグインhandheldが選択されてるか?
     if ($adm && isset($handheld) && $handheld == 'true') {
    は、それぞれ
    if (function_exists('XH_wantsPluginAdministration') && XH_wantsPluginAdministration('poll')
     || !empty($poll)) {

    if ($adm && XH_wantsPluginAdministration('handheld')) {
    とする。
    ※Coco_XHの場合
     旧 ・・下記は Ver1.6以下も考慮した書き方・・判定が多いので
    if (function_exists('XH_wantsPluginAdministration')
        && XH_wantsPluginAdministration('coco')
        || isset($coco) && $coco == 'true'
    ) {
        $o .= print_plugin_admin('on');

    最新版 ・・・Ver1.7以上・・判定が少ない
    if (XH_wantsPluginAdministration('coco')) {
        $o .= print_plugin_admin('on');
  2. sessions への対応。session_start( )は、XH_startSession( ) を使う(重要)
    CMSimple_XHは既定で名前付きセッションを使用するため、同じドメイン上の複数のインストールで独自のセッションセットが使用されるようになりました。 プラグインがセッションを開始したい場合、プラグインはsession_start()をもう呼び出すべきではなく、代わりにXH_startSession( )を呼び出すべきです。
    これは、プラグインがPHPファイルを直接要求した場合、つまりCMSimple_XHのindex.phpを経由しない場合には動作しません。 とにかく避けることをお勧めします。
    これを避けることができない場合は、cmsimple/.sessionname からセッション名を読み取り、session_start( ) を呼び出す前にこの名前で session_name( )を呼び出します。

    サンプル1:ex. cmsimple/classes/Controller.php
    変更前 
    if (session_id() == '') {
        session_start();
    }
     session_regenerate_id(true);
    $_SESSION['xh_password'][CMSIMPLE_ROOT] = $cf['security']['password'];
    変更後
    XH_startSession();
    session_regenerate_id(true);
    $_SESSION['xh_password'] = $cf['security']['password'];
    

    サンプル2:  cmsimple/.sessionname の使用例
    変更前
    if (session_id() == '') {
        session_start();
    }
    $el_root = $_SESSION["elfinder"]["sn"];
    

    変更後
    if (session_id() == '') {
    	$filename = dirname(__FILE__) . '/../../../cmsimple/.sessionname';
    	if (file_exists($filename)) {
    		session_name(file_get_contents($filename));
    	}
        session_start();
    }
    $el_root = $_SESSION["elfinder"]["sn"];
     See: https://github.com/bbfriend/elfinder_xh/pull/5/commits/3602b73ad6161ecabd2d3b3f58ee1af3417c4a78

    ざっと見で
    [CMSIMPLE_ROOT] の削除
     $_SESSION[’***'][CMSIMPLE_ROOT] は、$_SESSION[’***'] となる
     ex. $_SESSION['xh_password'][CMSIMPLE_ROOT] は、$_SESSION['xh_password']


  3. configuration type の "password"は削除されました
     The configuration type "password" has been removed.
  4. 高度な設定オプションが導入されました。 これらは metaconfig.php の先頭に+記号がついていて、設定フォームの "more"ボタンの後ろに隠れています。

    例:CMS設定で 末尾の More ボタン。どれを 対象とするかは + をつける
      下記は cmsimple/metaconfig.php の例。
    $mcf['folders']['content']="+string";
    $mcf['folders']['userfiles']="+string";
  5. $cf[xhtml][endtags] 削除。tag( ) は非推奨。 代わりに有効なHTML5を単に送信することをお勧めします。
  6. initvar( ) は非推奨。 initvar( 'action') またはinitvar( 'admin')を呼び出す必要はないことに注意してください。これは、すでにコアによって行われているためです。 initvar()の他のすべての用途については、グローバル変数を避けることを検討してください。
  7. JSONクラス( cmsimple/classes/JSON.php )の削除 。 伴い XH_JSON_***$_XH_json 削除
    JSONをサポートしていない古いPHPバージョンのフォールバックを提供するJSONクラスは削除されました。
    XH_decodeJson( )および XH_encodeJson( )は引き続き使用できますが、json_decode( ) および json_encode( )よりも薄いラッパーになりました。
    json_*( ) 関数を直接使用することを検討してください。

    変更前 Ver1.6
    function XH_encodeJson($value)
    {
        global $pth, $_XH_json;
        if (function_exists('json_encode')) {
            return json_encode($value);
        } else {
            if (!isset($_XH_json)) {
                include_once $pth['folder']['classes'] . 'JSON.php';
                $_XH_json = new XH_JSON();
            }
            return $_XH_json->encode($value);
        }
    }
    

    変更後 Ver1.7
    function XH_encodeJson($value)
    {
        return json_encode($value);
    }
    
  8. PasswordHash クラス( cmsimple/classes/PasswordHash.php ) の削除。
    伴い $xh_hasher 廃止。
    代わりにパスワードハッシュ関数 と random_bytes( )をそれぞれ使用してください。 古いバージョンのPHPでは、cmsimple / password.phpでフォールバックが利用できます。
    変更前
        function handleLogin()
        {
            global $f, $pth, $keycut, $login, $adm, $edit, $xh_hasher, $cf;
            if ($xh_hasher->CheckPassword($keycut, $cf['security']['password'])) {
                setcookie('status', 'adm', 0, CMSIMPLE_ROOT);
                if (session_id() == '') {
                    session_start();
                }
                // HACK to work around limititation of PHPCompatInfo
                $sessionRegenerateId = 'session_regenerate_id';
                $sessionRegenerateId(true);
                $_SESSION['xh_password'][CMSIMPLE_ROOT] = $cf['security']['password

    変更後:Ver1.7~ (セッションの件も含まれてます)
        public function handleLogin()
        {
            global $f, $pth, $keycut, $login, $adm, $edit, $cf;
            if (password_verify($keycut, $cf['security']['password'])) {
                setcookie('status', 'adm', 0, CMSIMPLE_ROOT);
                XH_startSession();
                session_regenerate_id(true);
                $_SESSION['xh_password'] = $cf['security']['password'];
                $_SESSION['xh_user_agent'] = md5($_SERVER['HTTP_USER_AGENT']);

    ※ $xh_hasher が使用される場合,要対応

  9.   関数 h( ) l( ) は、廃止予定です。 それぞれ $h $l を超える薄いラッパー。代わりに XH\Pages (名前空間) を使用することを検討してください。
     ※ h( n ) 全ページの見出しの配列 $h・・pageplugin(ページ管理)で設定した見出し ・・から n-1番目の見出しを取出す関数
         l( n )  各ページのレベル(深さ)の配列 $l  から n-1番目のメニューの深さ を取出す関数 (Returns a page's menu level.)
     ※ $h 、 $l は無くならない/ 変更なし。
     ※ 使用してると 警告が出ます・・cmsimple/functions.php ・・出てなければ、OK
     
    // Ver1.7 deprecated
    function h($n)
    {
        global $h;
        trigger_error('Function h() is deprecated', E_USER_DEPRECATED);
        return $h[$n];
    }
    ※ 例えば $pages = new XH\Pages(); 宣言後
      h( ) は、$pages->heading( )
      l( ) は、 $pages->level( )   とか
    ※ cmsimple/classes/Pages.php
      http://www.cmsimple-xh.org/dev-doc/php/class_x_h_1_1_pages.html 
  10. plugin_admin_common( ) にパラメータは不要。おそらくこれは近い将来変更されることはありません。
     ※cmsimple/adminfuncs.php のプラグインの管理メニューを構成する関数。

    変更前: 
    function plugin_admin_common($action, $admin, $plugin, $hint=array())
    {
    // @codingStandardsIgnoreEnd
        global $action, $admin, $plugin, $pth;
        include_once $pth['folder']['classes'] . 'FileEdit.php';
        switch ($admin) {
        case 'plugin_config':
            $fileEdit = new XH_PluginConfigFileEdit();
            break;
        case 'plugin_language':
            $fileEdit = new XH_PluginLanguageFileEdit();
            break;
        case 'plugin_stylesheet':
            $fileEdit = new XH_PluginTextFileEdit();
            break;
        default:
            return false;
        }
        switch ($action) {
        case 'plugin_edit':
        case 'plugin_text':
            return $fileEdit->form();
        case 'plugin_save':
        case 'plugin_textsave':
            return $fileEdit->submit();
        default:
            return false;
        }
    }
    変更後:Ver1.7~
    function plugin_admin_common()
    {
        global $action, $admin;
        switch ($admin) {
            case 'plugin_config':
                $fileEdit = new XH\PluginConfigFileEdit();
                break;
            case 'plugin_language':
                $fileEdit = new XH\PluginLanguageFileEdit();
                break;
            case 'plugin_stylesheet':
                $fileEdit = new XH\PluginTextFileEdit();
                break;
            default:
                return false;
        }
        switch ($action) {
            case 'plugin_edit':
            case 'plugin_text':
                return $fileEdit->form();
            case 'plugin_save':
            case 'plugin_textsave':
                return $fileEdit->submit();
            default:
                return false;
        }
    }

     ※新規に作るのであれば、フレームワーク化の Pfw_XHSKD を使用(推奨) 
  11. グローバル変数 $rq は 廃止。
    ※誤記? 一次変数としてされたが、そもそもグローバル変数ではありません
  12. デフォルトのファイル管理(filebrowserプラグイン)のエディタフックは、それぞれのエディタプラグインに移動されているので、ファイルブラウザのプラグインでファイルを上書きする必要はありません。 下位互換性のため、エディタプラグインにエディタフックが見つからない場合、古い場所のフックがフォールバックとして使用されます。
    ※ plugins/filebrowser/editorhooks/tinymce4 が削除され plugins/tinymce4/editorhook.php となった。
    ※エディタフックは、例えば、エディタで画像挿入などの操作で、ファイル管理の機能を使う事
  13. 名前空間のクラスを使用。(重要)
    CMSimple_XHは、一般的なクラスのオートローダーを取得しました。 これを使用するには、適切な名前空間のクラスをプラグインのclasses/フォルダ に配置します。 ネストされた名前空間もサポートされています。 PHPファイルを手動でrequireするのではなく、クラスの自動ロードを利用して、簡単で効率的に使用することをお勧めします。

    ※フレームワーク化の Pfw_XH 、SKD を使用(推奨)

    例 function XH_readContents()
    変更前 Ver1.6
        $pd_router = new XH_PageDataRouter(
            $h, $page_data_fields, $temp_data, $page_data
        );
    変更後 Ver1.7
        $pd_router = new XH\PageDataRouter($h, $page_data_fields, $temp_data, $page_data);
  14. XH_afterFinalCleanUp( )関数 が追加。プラグインは要求の終わり近くにトリガーされる関数を登録し、完全なHTMLを操作することができます。
    変更前:Ver1.6
    function XH_finalCleanUp($html)
    {
        global $s, $o, $errors, $cf, $tx, $bjs;
     ・・・・
        return $html;
    }
    変更後:Ver1.7
    function XH_finalCleanUp($html)
    {
        global $errors, $cf, $tx, $bjs;
     ・・・・
        return XH_afterFinalCleanUp($html);
    }
    
    Ver1.7での使用箇所 cmsimple/cms.phpの末尾
    ・・・・
    $_XH_controller->verifyAdm();
    ob_start();
    ・・・・
    echo XH_finalCleanUp(ob_get_clean());
    

    XH_afterFinalCleanUp
    function XH_afterFinalCleanUp($param)
    {
        static $callbacks = array();
        if (is_callable($param)) {
            $callbacks[] = $param;
        } else {
            foreach ($callbacks as $callback) {
                $param = $callback($param);
            }
            return $param;
        }
    }

    ※ob_関数など、バッファに貯めて処理するような場合に使用を検討する。


  15. $pd_router-> add_tab( ) は、CSSクラスを指定する第3パラメータを持ちました。
    個々のタブラベルのスタイルを簡単に変更できます。
    ※PageDataRouter.php
    変更前 : Ver1.6:
        function add_tab($tab_name, $tab_view)
        {
    // @codingStandardsIgnoreEnd
            $this->model->addTab($tab_name, $tab_view);
        }
    変更後 : Ver1.7:
        public function add_tab($tab_name, $tab_view, $cssClass = null)
        {
    // @codingStandardsIgnoreEnd
            $this->model->addTab($tab_name, $tab_view, $cssClass);
        }

    PageDataModel.php
    変更前 : Ver1.6 :
        function addTab($title, $view_file)
        {
            $this->tabs[$title] = $view_file;
        }
    
    変更後 Ver1.7
        public function addTab($title, $view_file, $cssClass = null)
        {
            $this->tabs[$title] = array($view_file, $cssClass);
        }
  16. クラスXH\Mail は mailformコードから抽出されているので、プラグインはその機能を再利用できます。

  17. 国際化用拡張モジュール( Intl )が利用可能な場合、XH_formatDate( )は国際化されます。 人間が読める日時フォーマットに使用することを検討してください。
    変更前
    function XH_formatDate($timestamp)
    {
        global $tx;
        return date($tx['lastupdate']['dateformat'], $timestamp);
    }
    変更後:Ver1.7
    function XH_formatDate($timestamp)
    {
        global $cf, $tx;
        if (class_exists('IntlDateFormatter', false)) {
            $dateFormatter = new IntlDateFormatter(
                $tx['locale']['all'] ? $tx['locale']['all'] : null,
                constant('IntlDateFormatter::' . strtoupper($cf['format']['date'])),
                constant('IntlDateFormatter::' . strtoupper($cf['format']['time']))
            );
            return $dateFormatter->format($timestamp);
        }
        return date($tx['lastupdate']['dateformat'], $timestamp);
    }
  18.  $pd_router-> modelがプライベートになりました。 代わりに$ pd_routerのメソッドを使用してモデルに転送してください。
    変更前:Ver1.6
    class XH_PageDataRouter
    {
     *****
        var $model;
    変更後:Ver1.7
    class PageDataRouter
    {
       ****
        private $model;

    $pd_router->model is now private; use the methods of $pd_router instead to forward to the model.
  19. プラグインによって生成される見出し は、新しいページ分割に適合させる必要があります。
    たとえば、プラグインで追加されるコンテンツは<h4>を使わず、むしろ<h2>を使うべきです。 実際の見出しレベルを構成可能にすることを検討してください。
  20. ページの内容を直接処理するプラグインは、新しいページ分割(上記を参照)に対応する必要があります。
    Plugins which directly deal with the contents of pages may have to cater to the new page splitting (see above).
  21. Retinaデバイスの見栄えを高めるために、古典的なアイコンイメージの代わりに Fa_XH プラグインのFont Awesomeを使用することを検討してください
  22. `selected`のあるGETリクエストは、目的のページにリダイレクトされます。
    GET requests with `selected` are now redirected to the desired page.
  23. 開発者のドキュメントは、PhpDocumentor 1ではなく Doxygen で生成されるようになりました。
     ※開発者ドキュメント 本家 :http://www.cmsimple-xh.org/dev-doc/php/index.html 

コア開発者

  1. PEARコーディング標準は、PSR-2コーディング標準に取って代わりました。 違反を確認するには `phing sniff`を使います。
  2. PHP MessDetectorは開発ツールに追加され、 `phing mess`を介して利用可能です。

重要事項

  1. プラグインの互換性について(重要)
    このバージョンでは、いくつかの下位互換性の問題があります。 既知の非互換性のリストについては、 下記のWikiページを参照してください 。
     ※ http://www.cmsimple-xh.org/wiki/doku.php/extend:incompatible_1.7 
             http://cmsimplexh.webdesign-keil.de/?CMSimple_XH_Referenzlisten/Plugins/Kompabilitaet
  2. 最近のバージョンのjQueryUIは、jQuery 3と完全に互換性がないかもしれません。
    https://github.com/TN03/jQuery_XH/issues/1 
    新しい開発にはjQueryUIを使用しない方がよいかもしれません。

 アップグレード手順

CMSimple_XH 1.7.0にアップグレードするには、次の手順を実行します。

  1. 既存のサイトのバックアップを作成し、すべてをコンピュータにダウンロードします。
  2. Exchange_XH を使用してcontent.htmファイルをcontent.xmlファイルにエクスポートします(詳細な手順はExchange_XHのユーザーマニュアルにあります)。 content.xmlファイルをコンピュータにダウンロードする
  3. WebspaceにCMSimple_XH 1.7.0をインストールしてください。 不要なファイルを取り除くには、CMSimple_XH 1.7.0をアップロードする前に古いインストールを完全に削除することを検討してください(バックアップがありますか?)
  4. Exchange_XHを使用してcontent.xmlファイルをcontent.htmファイルにインポートします(詳しい手順については、Exchange_XHのユーザーマニュアルを参照してください)
  5.  4で作成されたcontent.htmファイルを除くすべて content/フォルダのバックアップを新しいインストールにアップロードします
  6. 新しいインストールに第2言語のフォルダのバックアップをアップロードする
  7. templates/(または単一のテンプレートフォルダのみ)のバックアップを新しいインストールにアップロードする
  8. あなたが追加したプラグイン(標準以外のプラグイン)のバックアップを新しいインストールにアップロードする
  9. すべてのイメージ、ダウンロード、メディアのバックアップを新規インストールにアップロードする
  10. 設定 - >CMS設定と 設定 - >言語 を手動で再設定する
  11. すべてのニュースページのページ見出し(一番上の見出し)を削除する(ユーザー変更#2を参照)

 
残念ながら、新機能や変更点についてはまだ多くのドキュメントがあります。 したがって、特定のアイテムに関する質問がある場合は、お気軽にお問い合わせください。まず不足しているドキュメントを優先して書くことができます。