0

現時点では、ファイルをアップロードして抽出し、いくつかのファイルを読み取ってデータベースに保存できるモジュールがあります。私は単なる PHP 開発者であり、Drupal 開発者ではないため、コンテンツ タイプ、ビュー、およびその他の Drupal に関する知識はありません。データベースから複数のページにいくつかのものを表示し、いくつかのもの(すべてではない)を編集したいだけです。

PHP でそれを行うのは、ブリーフを封筒に入れるのと同じくらい簡単ですが、Drupal では、その封筒に車椅子を入れるようなものです。

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

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

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

4

2 に答える 2

2

データを操作するために Drupal が必要な場合は、Drupal の方法で行う必要はありません。モジュールも開発しました。データベースにアクセスし、そこからデータを表示し、承認されたユーザーがデータを更新でき、私のモジュールがそれを保存します。ただし、これらはノードではありません。コンテンツで実行するためにノードで実行されるいくつかのフックが必要でない限り (たとえば)、PHP の知識を使用してページのコンテンツを作成してください。

hook_menu を使用して、ページを表示するパスを定義します。たとえば、私のコード (detail_pages モジュール) では、クエリは example.com/strain/3/4 のようなパスで 2 つのパラメーターを取得します。次のように定義し、detail_page($arg1, $ でデータベースへの php 呼び出しを使用しました。 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 によって論理的にキー付けされた列となるテーブルを作成します。だから、あなたは多くの不要なテーブルを持っています...

于 2012-04-10T14:28:17.277 に答える
0

あなたが望むものを達成する方法はたくさんあります。あなたの説明から、いくつかのページにいくつかの情報を表示したいことがわかりました (「いくつかのものを編集する」という意味がよくわかりません)。

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

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

結論: コンテンツ タイプを使用すると、すべてを簡単に整理できますが、そのタイプ/構造のインスタンス (=ノード) が 1 つしかない場合は、コードを「ページ」に配置するだけで済みます。

詳しくはお気軽にお尋ねください。

于 2012-04-10T14:16:44.553 に答える