メインコンテンツに移動

shirane lab

メインナビゲーション

  • ホーム
  • ブログ
  • Drush
  • 検索

パンくず

  • ホーム
  • ブログ
  • Artisteer の垂直メニューブロックにサブ項目を表示するには PHP の DOM が必須

Artisteer の垂直メニューブロックにサブ項目を表示するには PHP の DOM が必須

2011/02/22(火) - 11:14
shirane

Artisteer で作成した Drupal テーマで垂直メニューを使う場合、サーバーの PHP 環境に DOM が組み込まれていないと、サブメニュー項目の表示がおかしくなる件。

エクスポートしたテーマに含まれる common_methods.php の art_menu_worker() 関数に次のようなコードがある。

…
  if (class_exists('DOMDocument')) {
    $output = art_menu_xml_parcer($output, $show_sub_menus, $menu_class);
    /* Support Block Edit Link module */
      $output = str_replace('<!DOCTYPE root>', $empty_str, $output);
  }
  else {
    $output = preg_replace('~(<a [^>]*>)([^<]*)(</a>)~', '$1<span class="l"></span><span class="r"></span><span class="t">$2</span>$3', $output);
  }
  return $output;

DOM が組み込まれていなくても else ブロックが実行されてエラーにはならないが、メニューのサブ項目にも余計な span が追加されてレイアウトが崩れる模様。

対策は DOM をインストールすること。
CentOS の場合は次のコマンドラインを実行する。

# yum install php-xml

DOM がインストールされれば、サブ項目も含めて垂直メニューが正常に表示されるようになる。

以上、Artisteer の便利な垂直メニューの階層表示を使うには PHP に DOM が必須っぽいということでメモ。

Artisteer
Drupal6
Drupal7
‹ 前の記事次の記事 ›

書籍

『D9 おいしいレシピ集2』がパワーアップして商業誌に

『D9 おいしいレシピ集2』がパワーアップして商業誌に

 書籍の一覧はこちら

 

タグ一覧

DrushDrupal9Drupal6ffdsmVagrant開発環境VirtualBoxDrupal7ComposerコミュニティDrupal5Migrate勉強会モジュールDocker書籍ubercartWindowsCKEditorArtisteerDrupal ONSENDrupal4MariaDBTwigデバッグthemingTomeテーマH5PインストールAnalytics仮想マシンCentOSMacREPLpsyshDruxtJSデカップルドヘッドレスNuxtQuizVue

サイト運営

シナジークエスト

© shirane lab