2012-04-10 12 views
0

現在、ファイルをアップロードして抽出し、ファイルを読み込んでデータベースに格納するモジュールがあります。私は単なるPHP開発者であり、Drupal開発者ではないので、私はコンテンツタイプ、ビュー、その他のDrupalのものと共通していません。私はただデータベースから複数のページにいくつかのものを表示し、いくつかのものを編集したい(すべてではない)。 PHPでそれをやってDrupalでコンテンツタイプを定義するとき

は封筒に簡単に置くことと同じくらい簡単だろうが、あなたはその封筒に車椅子を入れているようにDrupalの中でそれがです。

コンテンツタイプを定義する必要はありますか?

コンテンツタイプを使用せず、手動でアクセス許可を制御するのは簡単ですか?

コンテンツタイプを定義する必要があるとします。私のデータベースには5つのテーブルがあります。 5種類のコンテンツタイプを定義する必要がありますか?

答えて

2

データを処理するためにいくつかの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によって論理的にキーが設定された列のテーブルを作成します。だからあなたは多くの不必要なテーブルを持っています...

0

あなたが望むものを達成する方法はたくさんあります。 あなたの説明から、私はいくつかのページにいくつかの情報を表示したいと思っています。

  1. あなたがDrupalのではブロック(複数のページ上=定義された領域) を持つことができ、あなたがコントロールするルールやPHPを使用することができ、ページ(例えば、コンテンツタイプの「ページ」)のブロックが表示されます。
  2. カスタムノード構造のコンテンツタイプ page.tpl.phpとnode.tpl.php(ここでは拡張機能を混乱させるかもしれませんが、それはしばらくしています)のように、テーマが構成する特定の部分の構造を定義しています。 content-type-nodeは、PHP、HTML、およびCSSを使用して必要な情報を表示します。 (コンテンツタイプのすべてのオブジェクトのラッパーのように)
  3. パネル パネルはページを分割するために使用されます。メニュー項目は個々のパネルを指し示すことができます。ページの上部は静的な「ページ」(コンテンツタイプのノード)で、下部は別の「ページ」です。このページには、情報を表示するためのPHPコードが含まれています。

は、すべての3つのオプションでは、あなたがDBから特定のデータをロードし、それに応じてそれを提示するためにあなたになど、ユーザーID、名前、役割を、教えてグローバル変数を持っていることを、パーソナライズされたデータ、意味を表示することができます。

結論:コンテンツタイプは、整理するすべてのものが容易になりますが、あなただけの、そのタイプ/構造の1つのインスタンス(=ノード)を持っている場合、あなただけの「ページ」で、あなたのコードを置くことができます。

詳細はお気軽にお問い合わせください。

関連する問題