メインコンテンツに移動

メインナビゲーション

  • ホーム
  • サイトマップ
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • Drupalサイト構築時の注意点

Drupalサイト構築時の注意点

drupal
development
drupal
performance optimaization

Drupal サイト構築時にコンテンツ構造、表示設定、機能構成が重要なポイントになる

Drupalが非常に柔軟性、拡張性のあるフレームワークである。それこっそ、サイト構築時にいろいろな構造を注意しないとパフォーマンス問題になる。

  • どのようにコンテンツを構成するか
  • どのように表示を設定するか
  • どのように機能を構成するか

​コンテンツを構成する

コンテンツがサイト構成の一番基本な要素なので、コンテンツ分析、分類、構成するのはサイト構築の第一歩である

  • フィールド(Field)とコンテントタイプ(Content Types)を一緒に検討する。
  • フィールド/コンテントタイプの種類、数が少ないほうがいい

以下はよくある問題と解決案

  • 問題: コンテントタイプ(Content Types)が多すぎる.
  • 結果: コンテンツを作成時に何を使うかは迷う
  • 例: コンテントタイプ(Content types) “news” と “article,”  ⇦ この二つタイプの大半は同じ
  • 解決: コンテントタイプ作成基準を明確し、できるだけ再利用する。

 

  • 問題: 各コンテントタイプに新しいフィールド(Fields)を定義する
  • 結果: リソースの消耗、パフォーマンス問題になる
  • 例: 二つのフィールド: school city and teacher city ⇦ 性質が同じ、再利用可能
  • 解決: フィールドの再利用と作成基準を明確化する ⇦ フィールドの再利用に賛否両論があり、データベースなどに左右される

 

 

  • 問題: コンテントタイプにノード(nodes)がない
  • 結果: 必要なないコンテントタイプがサイト構成に複雑になる
  • 解決: コンテントタイプ作成基準を明確し、できるだけ再利用する

 

表示の設定

DrupalがViews, Panels, and Context modulesなどのモジュールを利用して、コンテンツを違う場所、フォーマットで各種表示には強力なツールである。

  • 表示構成をよく計画する
  • 表示の最適化と再利用する
  • ロジックとプレゼン層をしっかり分ける
  • 単一、基本のthemeから表示の仕組みを学習する


以下はよくある問題点と解決案

  • 問題: すべてのリストに一つビューで対応
  • 例: 別々のビューで仕事場所がロンド、パリ、ベルリンを表示する
  • 解決: Contextualフィルタ、Selection Rulesなどを利用して、同じビューで違うコンテンツを表示する

 

  • 問題点: テンプレート(.tpl)、データ定義にロジックのPHPコードが混入される
  • 解決: Drupalのファイル、モジュール構造を理解して、正しいカスタマイズを行う

 

サイトの機能を構成

サイトの目的、必要な機能を計画し、必要最低限のモジュールの採用と一部分のコーティングでサイトのパフォーマンスを向上する

  • サイトの機能をよく計画し、機能の重複を減らす
  • 機能により必要最低限のモジュールをインストールする
  • 一部分の機能しか使わないモジュールを改造して、シンプルなモジュールにする
  • 重要なモジュール(例:Views、Panelsなど)がエクスパートに作成されので、そのままにして改造しないこと
  • Drupalのコード改造基準、コーティング基準などをよく理解する

以下はよくある問題と解決案

  • 問題: インストールされ、有効化したモジュールが多すぎる(例:200以上、各種試しモジュールを含め)
  • 結果: パフォーマンスの問題になる
  • 例: 最初が多言語対応検討だが、実際に日本語しか表示していていない(多言語対応モジュールがインストール、有効化されたまま)
  • 解決: 不必要なモジュールを無効化、アンインストールを行う。ローカル環境でテスト後に本番環境にモジュールの導入

 

 

  • 問題: ユーザーのロール(権限設定)が多すぎる
  • 結果: サイトのメンテナンス性とセキュリティチェックが複雑になる
  • 例: 最初はより多いロールを検討してサイトを構築したが、結局多いロールが使用されていない。またはロール間の明確な区別をつかない。
  • 解決: ロールと権限を分析し、グルーピングする。ルール、権限を階層化して、継承する

 

  • 問題: カスタマイズしたコードが実際にあるモジュール(contrib module)にその機能が含まれている
  • 解決: カスタマイズする前に、機能相似のモジュールのコードをよく読んで、コード上に参考できる部分をコピーして利用し、機能重複を避ける

 

  • 問題: コーアモジュール、contrib modulesを改造する
  • 結果: アップデートしたらサイトの動作が変わる
  • 解決: hooksを利用して、コーアモジュール、contrib modulesに提供されていない機能をカスタマイズする、または動作を変更する(sites/pine/modulesに作成)

 

  • 問題: 違うhooks、またはDrupal API を使用してしまった
  • 例1: ある特定なページでhook_initを使用して、すべてのページがロードする際にこの関数を呼び出してしまう
  • 例2: nids、tidsとvidsなどのidを直接にコードに挿入してします。将来これらのコードが変わった場合ページが表示されなくなるし、発見するのも難しい
  • 解決: Drupal API、構造、コーティングルールなどをよく理解して、慎重にカスタマイズする

 

ホーム

古松

検索

Article Category

  • apache(7)
  • css(19)
  • drupal(295)
  • Electron(4)
  • html(34)
  • javascript(27)
  • laravel(4)
  • linux(5)
  • macOS(2)
  • mysql(13)
  • php(19)
  • python(4)
  • SEO(12)
  • video(72)
  • Visual Studio Code(4)
  • windows(13)
  • wordpress(32)