データを処理するためにいくつかのDrupalのことが必要な場合は、Drupalの方法を使用する必要はありません。私もモジュールを開発しました。データベースにアクセスし、そこからデータを表示すると、承認されたユーザーがデータを更新でき、モジュールがそれを保存します。しかし、これらはノードではありません。コンテンツ上で動作するノード上で動作するフック(たとえば)が必要な場合を除き、PHPの知識を使用してページのコンテンツを作成するだけです。
フックメニューを使用して、ページを表示するパスを定義します。たとえば、私のコード(detail_pagesモジュール)では、クエリはexample.com/strain/3/4のようなパスの2つのパラメータを取得します。以下のように定義し、detail_page($ arg1、$ arg2)関数の定義です。あなたの具体的な質問
に答えるために
function detail_pages_menu() {
$items = array();
$items['strain/%/%'] = array(
'title' => t('Strain Detail Page'),
//'page callback' => 'strain_form',
'page callback' => 'detail_page',//'drupal_get_form',
//'page arguments' => array('strain_detail_form'),
'page arguments' => array(1,2),
'access callback' => TRUE,
'access arguments' => array('access content'),
'description' => t('Detail Page'),
'type' => MENU_NORMAL_ITEM,
);
....
は、私はそれのためのコンテンツタイプを定義する必要がありますか?
いいえページレンダリング配列を使用することも、PHPのページに直接HTMLを追加することもできます。
コンテンツタイプを使用せず、手動でアクセス許可を制御するのは簡単ですか?
はい。上の例で私が書いたこの行はアクセス許可です: 'access callback' => TRUE これは誰もが見ることができます。 TRUEの代わりに関数を代入して、ユーザーがそのページを表示する権限を持っているかどうかを表すブール値を返すことができます。
コンテンツタイプを定義する必要があるとします。私のデータベースには5つのテーブルがあります。 5種類のコンテンツタイプを定義する必要がありますか?
特に、すばらしいデータベース構造が必要な場合は、ノードの使用やコンテンツタイプの定義を避けることができます。 Drupalは、ノードIDによって論理的にキーが設定された列のテーブルを作成します。だからあなたは多くの不必要なテーブルを持っています...