Drupal10

【第4回】Drupalカスタムモジュールで入力内容をDB保存する

MAXIMUM に投稿

タグ

1. 目的

前回でフォームを作成しました。しかし、入力内容がどのような流れでDBに保存されていくかを追えてなかったので、今回はそれを追って行こうかと思います。

2. フォームからの入力データ

前回にシステムの入り口として用意したフォームから出欠するしないというデータが送られてきます。もちろん各ユーザが入力します。※その情報を入れるDBですがDrupalの場合はMariaDB 11.8というものになります。(MySQL互換)

仮に出席しますといったデータが流れてきた場合は、出席扱いで名前などとセットでINSERTされます。

3. ソースコードの書き方

続いて、ソースコードの書き方ですが、Drupalの場合は下記のように接続します。

【第3回】Drupalカスタムモジュールで入力フォームを作成する

MAXIMUM に投稿

タグ

1. フォームってなに

先ずフォームってなんなのかですが、具体的には下記のようなテキストを入力・選択して送信するための画面部品のことを指す用語です。

  • ログイン画面
  • 検索欄
  • お問い合わせ画面
  • 会員登録画面
  • アンケート
  • 商品購入時の住所入力

2. PHPに定義を書いていく

PHPにフォーム定義をしていきます。

Drupalでフォームを定義する際にはHTMLではなく、PHPの配列で定義します。理由はDrupalのForm APIで纏めて管理しており、HTML部分については既にコアとして定義済みだからです。

【第2回】Drupalカスタムモジュールにてフックを使って既存処理に割り込む

MAXIMUM に投稿

タグ

今回はDrupalのフック関数について解説します。

前回のフォルダ構成で触れた「横から割り込めるフック処理を入れるmarucha.module以外については必須です。」という部分についての深掘りになります。

1. 今回やりたいこと

今回は例としてDrupalに元々存在する検索フォームを置き換えます。 通常の送信ボタンではなく、Marucha検索という表示に変更できます。

2. moduleファイル作成

とりあえず先ずはフック関数がどういう実装になるかですが、下記のようにmarucha_form_alterという感じでモジュール名を入れる必要があります。

hook_form_alter()が元々の形で、Drupalのコア機能が用意しているものになります。

【第1回】Drupalカスタムモジュールのフォルダ構成

MAXIMUM に投稿

タグ

これから数回に分けてDrupalカスタムモジュール作成方法についての社員ブログを書いていこうかと思います。
先ずは、最初の一歩として大雑把にでもアーキテクチャの勉強から入っていこうかと思います。
それでは一般的なフォルダ構成です。

Drupalで集計用コントローラを作成する手順

MAXIMUM に投稿

タグ

イベント出欠有無など、何かしらの回答データを集計したりグラフ化したい場面が多いかと思います。
そういった場面用に今回はDrupalカスタムモジュールにて実装手順を説明していこうかと思います。

Drupal10で標準組み込みになっているBigPipeという考え方の枠組みについて

MAXIMUM に投稿

タグ

1.背景

DrupalはFacebookが提唱したPHPのBigPipe技術を使ってHTMLページを生成しているようです。※似たようなものにAjaxがあります。
今回はそこに焦点を当ててみようかと思います。

2.よくある一括送信タイプの場合

先ずはWordPress等のよくあるブログ作成の場合どうなっているかを見ていきます。下記手順になります。
 ユーザがページにアクセス
→PHPが上から順番にプログラムを実行し、ページの全HTMLをメモリ上に完成
→完成したHTMLを一括でブラウザに送信

このやり方だと、ページ内に1箇所でも重いデータがあると処理が終わるまで、ユーザーは待たされることになります。

【Drupal10】コア機能で実現したものをカスタムモジュール化してみた

MAXIMUM に投稿

タグ

1. 見栄えについて

以前に標準機能で実装していたイベント管理ページをカスタムモジュールにて再実装してみました。
すると、なんとなく見た目が綺麗に整った感じがします。(右窓がカスタム)
これは何故かというと、使っている描画の仕組みが違うからです。
標準機能は、Drupal汎用部品なのに対し、カスタムはそれ専用です。
なんで実装量が増えるというデメリットはあるものの、汎用的な表示にならない為、綺麗な画面を作ることが可能なのです。

【Drupal 10】カスタムテーマ開発においてのファイル構成

MAXIMUM に投稿

タグ

1. はじめに

今回はカスタムテーマに関するアクイアジャパンのウェビナーをベースに、どのファイルが・どこに配置され・どのような役割を持つのかというファイル構成に焦点を当てて体系的に解説します。

Drupal Schema APIでテーブルに対してCRUDのCを操作をしてみた

MAXIMUM に投稿

タグ

ウェビナーにてDrupalカスタムモジュールの基礎からPHPUnit作成まで学びました。
https://www.youtube.com/watch?v=c3GCK5D4WSE&list=PLVkpj3GMKNm2n_u-gOCBhDtqXTDxwhqjM

そこで今回は特に印象に残ったCRUD操作について掘り下げて行こうかと思います。
ここではDrupal Schema APIというDBテーブル構造をPHPの配列として定義・管理する仕組みを使います。

【Drupal 10】コンテクスチュアルフィルターで記名・匿名を切り替える動的Viewsの実装

MAXIMUM に投稿

タグ

1.はじめに
イベント管理する際に、誰が投票したかを認証ユーザに見せるかどうかを場合によって任意で使い分けたいシーンが多いと思われます。
なので、今回はViewsというシステム内部のデータロード処理そのものを条件分岐させる設定をしていきます。


2.実装方法