メインコンテンツに移動
ホーム

古松

メインナビゲーション

  • ホーム
  • ビデオ
  • ご連絡

既存フォームに特定な要素の前・後に要素の追加方法

Drupalのフォーム(form)システムが既存のフォームに対して、任意の要素の追加、削除、変更手段が提供されています。システム全体の柔軟性が高くて、魅力が大きいところです。

「hook_form_alter」の実装で、既存フォームの変更ができるようになります。フォームの各要素の記述arrayを変更すれば、フォームの各要素が変えられます。

フォーム要素を追加する場合、既存要素の一番後ろに追加するのは、簡単に実現できますが、特定の要素の前・後にどう追加すれば少し悩みました。いろいろ調べてみましたが、方法としては二つあります。

Drupalのフォーム(Form API)の「#states」で各フォーム要素の動作制御が可能

  • Drupalのフォーム(From API)が各要素の動作制御(JavaScript)が可能です
  • FormAPIでフォーム作成記述に「#states」でjavascriptの拡張を自動的に行います

フォームなどの修正後にキャッシュをクリアする必要がある

Drupalの各モジュールでページを組み立てます。毎回各ページにアクセスする際に、モジュールでそのページを組み立てれば、パフォーマンスが悪くなります。特にモジュールが多くインストールした場合、パフォーマンスがなおさら悪くなる一方です。

Drupalの優れる一つは:モジュールで組み立てたページをキャッシュします(DBに格納)。そのページにアクセスするときに、キャッシュされたページを呼出して表示します。各モジュールを実行して、ページを組み立てることはなく、パフォーマンス上に問題を生じることはなく迅速にページの表示ができるようになります。キャッシュされた内容はフォームの構成、

LDAPのSSO導入時の問題点及び解決法

企業内では、ユーザーがWindowsにログインすれば、社内サイトを訪問するときに、ユーザー名とパスワード(例えWindowsのログイン名とパスワード ⇐ WindowsのActive Direcitory認証)をもう一度要求されると不便だと感じます。それを改善するために、SSO(シングルサインオン)を導入します。DrupalのLDAPモジュールをインストールすると、SSOのサブモジュールを有効にして、SSOを実現させます。

DrupalのSSO関連説明が古い

  • SSO関連モジュールのバージョン
    • Drupal: 

LDAPのデバッグモードの使用

社内のAD(Windows Acitve Directory)のユーザー認証機能を利用するために、DrupalのLDAPモジュールをインストールして、有効化後に「サーバー」、「ユーザー」、「認証」などを設定しました。Drupalのログイン画面でADユーザーログイン名とパスワードを入力して認証すると、「該当ユーザーまたはパスワードの確認ができない」とのエラーメッセージが表示されました。

LDAPの「サーバー」または「ユーザー」のどこかの設定が間違っていったか、環境の設定が間違っていた、LDAPとの通信ができないか、いろいろな可能がありまして、

Windows環境でDrushのインストール

  • Drupalを開発する環境にはDrushの存在が無視できないです
  • Windows向けのDrushパッケージをインストールします

Panelsで特定のページの内容をハイジャック可能

モジュール「Panels」が特定なページのレイアウト、表示内容の変更が可能です。非常に便利、強力なツールと感じました。但し、このツールを利用して、既存のページの表示内容を変更し、しばらくほっとして、どのように変更したかを忘れてします可能性があります。その時、ページを前の状態に戻す作業は大変です。Drupalが非常に柔軟で、いろんな手段で同じ変更が可能のため、変更後に必ずどこかでその過程を記録したほうが良いでしょう。

  • Drupal Version: 7.37
  • Panels: 7.x-3.5
  • 現象: コンテントの新規作成

ページがメンテナンス状態でロックされた

Drupalが更新後に、何等かの原因で、画面がメンテナンス状態でロックされていまいました。急いてアップデートのURLを入力(http://your_site_name/update.php)して、更新を完了させようと思ったが、今度実行権限がなくて、完全に拒否されました。

  • Drupal Version: 7.37
  • 状態: Site under maintenance

関数のcall()、apply()メッソドからJavascriptの「this」を再確認

Javascriptの関数を使用するとき、関数内の変数定義時に、演算子「this」をつけるか否かは少し迷う(例:var name ⇒ var this.name?)。関数自体だけで言えば、変数の前に「this」をつける(例:var this.name)と「ローカル変数」と言う。変数の前に「this」をつけず(例: var name)に、「グローバル変数」と言うが、当該関数がプロトタイプのcall()/apply()

animateの物体移動場所指定際にcssのposition指定に注意

JavaScriptのanimate関数を利用して、cssのposition属性を利用して表示物体の移動先を指定する際に、「aboslute」指定し忘れると、物体の移動がうまくいかないことがある。その場合「margin」属性の設定で物体を移動させることが可能となる。

cssのleftとrightで物体移動先設定する場合にposition属性に「aboslute」を設定し忘れると物体がうまく移動しない

  • 前提条件:
    • JavaScriptのanimate関数を利用して表示物体を移動する

ページ送り

  • 先頭ページ « First
  • 前ページ ‹ Previous
  • …
  • Page 37
  • Page 38
  • Page 39
  • Page 40
  • カレントページ 41
  • Page 42
  • Page 43
  • Page 44
  • Page 45
  • …
  • 次ページ Next ›
  • 最終ページ Last »
を購読

検索フォーム

カテゴリ別

  • laravel
  • drupal
  • javascript
  • windows
  • html
  • mysql
  • php
  • apache
  • css
  • SEO
  • video
  • wordpress
  • linux
  • python
  • Electron
  • Visual Studio Code

google ads