CakePHPでは安全なパスワード生成のために、DefaultPasswordHasherを利用することが推奨されています。公式のCMSチュートリアルのログインの実装でもDefaultPasswordHasherを用いたパスワードの不可逆圧...
経験をもとにプログラミングの知識や、フリーランスとしての体験談について紹介しています。 読者の方の抱えている問題を解決するお手伝いができるように、わかりやすく具体的なノウハウをまとめていますので、ぜひご覧ください。
draggableで要素をドラッグアンドドロップで移動する【jQuery】
概要 Webサービス制作時に、簡単なエディタが必要になったことがありました。 エディタを作るために、「親要素上で、子要素をドラッグアンドドロップで移動する」機能を実装する必要がありました。 その際に『draggable』を利用したので、今回
概要 GPT4oは基本的に無料(一部制限あり)で使えるようです。※2024年5月19日現在 「デザイン画像をアップロードすると、HTMLとCSSを返してくれる」という噂を小耳に挟んだので、実際に試してみました。 もしも再現度が高ければ、「デ
概要 GPT4oは現状(2024年5月19日現在)、制限はありますが基本的に無料で使えるようです。 デザイン画像をアップロードすると、HTMLとCSSを返してくれるという噂を小耳に挟んだので、実際に試してみました。 もしも再現度が高ければ、
記事編集画面のブロックの種類を限定する ②埋め込み【WordPress】
概要 WordPressのブロックエディタには、数多くのブロックパターンがありますが、全部使う人は少ないでしょう。 また、自作テーマを作る際には、全ブロックパターンに対応するCSSを指定するのは非常に大変です。 そのような場合に、ブロックエ
概要WEB制作の現場で、SVGファイルを利用するケースはよくあります。WordPressの場合は、画像はメディアライブラリにアップして利用するのが一般的です。しかし、普通にやると画像のように弾かれてしまいます。方法以下、2つの方法いずれかで
プラグインなしで会員限定のページを作る【WordPress】
やりたいこと概要wordpressでブログを運営する際に、会員のみを対象とした記事配信をするとします。仕組み記事が会員限定か否かは、カテゴリーもしくはカスタムタクソノミーを用いて判定します。会員限定の記事にアクセスした際に、以下の挙動をする
はじめにWordPressの記事編集画面で、ブロックを追加すると、記事表示時にマークアップが自動で書き出されます。WEB制作の現場では、CSSやJSを指定するために、マークアップの変更が必要なケースがあります。そのような場合に利用するコード
概要FormDataオブジェクトとは、フロントエンドのデータをサーバに送るためのオブジェクトです。これを使えば、HTMLのフォームの形式にとらわれずに、サーバにデータを送信することができます。Ajaxと組み合わせて利用するのが一般的です。「
事例仮にですが、同じサーバ上でWordpressとCakePHPを両方運用していると思います。当然WPにはWP用のDBが、CakeにはCake用のDBがあります。この際にWP側のDBからCake側のデータを取得するには、どうすれば良いでしょ
検索フォームの設置フォーム作成:searchform.php<formmethod="get"action="<?phpechoesc_url(home_url('/'));?&
概要以下のようにControllerで行われる、CakePHPのリダイレクトについて、いろいろなパターンがあったのでメモとして残します。classSamplesControllerextendsAppController{publicfun
GetパラメータでWord検索フォームを作る【CakePHP4】
やりたいこと・Getパラメータを利用した、テキスト検索フォームの実装(で、文字列"hoge"を含むデータを検索する)・文字列がスペースで区切られている際はAND検索("hogepiyo"であれば&qu
概要CakePHPではControllerで利用する関数については、Componentを利用すれば簡単にできます。しかし、ここで定義した関数はtemplateからは利用できません。templateで利用する関数を作成するには、src/Vie
URLSearchParamsの基本:getパラメータを管理する【JavaScript】
概要これまではURLのパラメータを管理するときに、文字列としてパラメータの追加・削除等を行なっていました。しかし、URLSearchParamsを使ったところ、制御がより容易になったで、メモとして残します。使い方前提こんなURLでサイトを表
CakePHP4のQuery Builder【CakePHP4】
概要CakePHP4のQueryBuilder(DBからデータを取得するクエリの生成)についての基本を簡単にまとめます。応用的な内容(matching)については以前に以下の記事で紹介したのですが、基本的な内容についても検索すると、旧バージ
概要前回、下記の記事でCakePHP5のCakePHP4との変更点をまとめました。前回の記事の時点では、公式にの日本語ページのインストール情報が4系のままだったので、インストールはしませんでしたしかし、改めて確認したところ、5系のインストー
TCPDFとは?PHPでPDFを生成するためのライブラリです。HTMLとCSSを用いてデザインを作り、それをPDFとして書き出すことができます。※ただし、利用できるHTMLタグ・CSSプロパティにはかなり制限があります。こちらの外部サイト様
概要デバッグや変数の内容のチェックを行う際に、通常であればvar_dump()等の関数を使います。しかし、controllerではvar_dumpを使ってもviewが描画されないのでチェックができません。そこで、ロギングという方法を使って、
GD(Graphics Draw)で画像サイズ変更・圧縮【PHP】
概要GD(GraphicsDraw)はPHPで画像処理を実装するためのライブラリです。画像の圧縮やサイズ変更、回転だけではなく、フォーマット変換や複数画像の組み合わせ等、さまざまな操作を行うことができます。今回は、画像のサイズ変更・圧縮の方
概要今回はCakePHP4でのviewの一部分を共通化する方法について解説します。フロント構築をする際に、ヘッダーやフッター、サイドバーなど、各ページに共通して読み込む要素は、別ファイルに切り分けて読み込むのが一般的です。例えば、WordP
概要先日(2023年9月10日)についにCakePHP5が公開されました。CakePHP4が2019年だったので、約4年ぶりのメジャーアップデートとなります。2019年当時に初めてCakePHP4に初めて触ったのですが、CakePHP3の情
概要DBのデータをdelete()等で削除する際に一定の処理を実行する。前提条件以下のようなデータを持つusersテーブルがあるとする。●テーブル名:users・データ:id(通し番号)・データ:name(名前)・データ:thumbnail
関連するテーブルのデータをまとめて削除する。【CakePHP4】
概要親テーブルを消した際に、子テーブル・孫テーブルもまとめて削除する。前提条件以下の3つのテーブルがあるとする。・ParentsTable・ChildrenTable・GrandChildrenTable以下のようなリレーションである。・P
概要下記の記事で以前、Sessionの継続時間の設定について解説しました。今回はCakePHPにおけるSessionの基本的な使い方について解説していきます。コード一覧書き込みwrite()$this->request->get
ルーティング(URL・パスの指定)その2 〜アクションにパラメータを渡す〜【CakePHP4】
ルーティングの基本CakePHPのルーティングは、config/routes.phpで指定します。ルーティングの基本については、別の記事で紹介してますので、「CakePHPでルーティングってどうやるの?」という人は下記をご参照ください。ルー
Controller内で共通の変数を定義する【CakePHP4】
基本各Controllerで定義している同じ内容の変数を共通化します。修正前src/Controller/SamplesController.php・・・省略class SamplesController extends AppContro
uuidとは?CakePHP公式サイトには、以下のように記載されています。UUID メソッドは RFC 4122 準拠のユニークな識別子を生成するのに使います。 UUID は 485fc381-e790-47a3-9794-1337c0a8
ドラッグアンドドロップでファイルアップロード【jQuery・PHP】
チャット系のウェブサービスによくあるのが、ドラッグアンドドロップによるファイル添付です。今回はそのような機能の実装方法について解説します。ドラッグアンドドロップでファイルを表示するデモ背景がピンクの箇所にローカルの画像をドラッグアンドドロッ
中間テーブルの基本と使い方 〜多対多リレーションシップ〜 【CakePHP4】
中間テーブルの利用シーン中間テーブルを利用するのは、「多対多リレーションシップ」を実装する場合です。類似の概念として「1対多リレーションシップ」があります。まずは、両者の違いを解説します。1対多リレーションシップ:中間テーブル不要1対多の関
デバッグモード概要デバッグモードにすると、以下のように管理画面上でエラーメッセージの内容をエラー箇所を含めて具体的に確認することができます。エラーの行数も具体的に教えてくれますので、これを使えば開発を便利に行えます。ただし、このままサービス
自作chome拡張機能 〜アイコンクリックでスクリーンショット撮影〜
概要自作chrome拡張機能を使えば、簡単に今表示しているサイトのスクリーンショットを撮影することが可能です。撮影のみであれば数行のコードで実装できますので試してみましょう。コードmanifest.json{ "name&quo
概要Shadow DOMとは、DOMをカプセル化する技術です。これを使うことによって他の要素とは独立したDOMを作ることができます。例えばグローバルなCSSは、ShadowDom内の要素には効かないことになります。基本コード See th
概要htmlをreactでテンプレート化しようと思うと、タグや属性の修正をかなり求められます。今回は事例を一覧で紹介していきます。コード以下のようなコードでテンプレート化するとしますconst Content = () => {
技術ブログを3年書き続けて感じた、プログラミングに関する記事を公開するメリット【100記事目記念!】
概要このブログ、パーマリンクを都度考えるのがめんどくさいので、単純にarticle○○みたいに数字をふってました。この記事は「article100」なので、100記事目というわけです!※一度公開した記事を削除したりもしてるので、公開記事数は
「ブログリーダー」を活用して、muleさんをフォローしませんか?
指定した記事をブログ村の中で非表示にしたり、削除したりできます。非表示の場合は、再度表示に戻せます。
画像が取得されていないときは、ブログ側にOGP(メタタグ)の設置が必要になる場合があります。
CakePHPでは安全なパスワード生成のために、DefaultPasswordHasherを利用することが推奨されています。公式のCMSチュートリアルのログインの実装でもDefaultPasswordHasherを用いたパスワードの不可逆圧...
概要 CakePHP5がリリースされて約1年になりますが、現状ではログインの実装に関する日本語版公式マニュアルに誤りがあり、マニュアル通りにログインを実装するとエラーになります。※2024年9月23日現在 ※英語版のCMS Tutorial
概要 記事一覧を作る際には「投稿日」を表示することが一般的です。 当ブログでも↓のように表示されています。 今回の記事では、CakePHPで日付をそのまま表示するのではなく、現在日時と比較して「〜前」と表示する方法を紹介します。 前提 以下
概要 記事一覧を作る際には「投稿日」を表示することが一般的です 当ブログでも↓のように表示されています では、CakePHPで日付をそのまま表示するのではなく、現在日時と比較して「〜前」と表示するにはどうすればいいのでしょう? 前提 以下の
概要 自作のchromeアドオン開発時に、新しいタブを開いて操作することが必要なケースがありました。 簡単に実装できましたので、メモとして残します。 コード ディレクトリ構成 manifest.json { "manifest_v
概要 textareaの高さを文章量に応じて自動調整するように作れば、長文テキストを入力した際に内容が把握しやすくなります。 高さの自動調整はJavaScript(jQuery)を使えば簡単に実装することが可能です。 デモ Resultに表
概要 チャットツールなどを作る際に、textareaの高さを文章量に応じて自動調整するように作れば、長文テキストを入力する際に内容が把握しやすくなります。 高さの自動調整はJavaScript(jQuery)を使えば簡単に実装することが可能
概要 ChatGPTのAPIを組み込んで、ChatGPTのような対話型のコンソールを実現するとします。 ↓のようなフォームを作ります。 こんにちは、と入力して送信すると... 会話が成立します。(回答はChatGPTのAPIが生成したもので
概要 ユーザテーブルと記事テーブルはすでにリレーションしてるけど、編集者やチェック担当者など、他のリレーションを設けるにはどうするか?というお話です。 前提 下記のようなUsers(ユーザ)テーブルと、Articles(記事)テーブルがある
概要 ユーザテーブルと記事テーブルはすでにリレーションしてるけど、編集者やチェック担当者など、他のリレーションを設けるにはどうするか?というお話です。 前提 下記のようなUsers(ユーザ)テーブルと、Articles(記事)テーブルがある
概要 Webサービス制作時に、簡単なエディタが必要になったことがありました。 エディタを作るために、「親要素上で、子要素をドラッグアンドドロップで移動する」機能を実装する必要がありました。 その際に『draggable』を利用したので、今回
概要 GPT4oは基本的に無料(一部制限あり)で使えるようです。※2024年5月19日現在 「デザイン画像をアップロードすると、HTMLとCSSを返してくれる」という噂を小耳に挟んだので、実際に試してみました。 もしも再現度が高ければ、「デ
概要 GPT4oは現状(2024年5月19日現在)、制限はありますが基本的に無料で使えるようです。 デザイン画像をアップロードすると、HTMLとCSSを返してくれるという噂を小耳に挟んだので、実際に試してみました。 もしも再現度が高ければ、
概要 WordPressのブロックエディタには、数多くのブロックパターンがありますが、全部使う人は少ないでしょう。 また、自作テーマを作る際には、全ブロックパターンに対応するCSSを指定するのは非常に大変です。 そのような場合に、ブロックエ
概要WEB制作の現場で、SVGファイルを利用するケースはよくあります。WordPressの場合は、画像はメディアライブラリにアップして利用するのが一般的です。しかし、普通にやると画像のように弾かれてしまいます。方法以下、2つの方法いずれかで
やりたいこと概要wordpressでブログを運営する際に、会員のみを対象とした記事配信をするとします。仕組み記事が会員限定か否かは、カテゴリーもしくはカスタムタクソノミーを用いて判定します。会員限定の記事にアクセスした際に、以下の挙動をする
はじめにWordPressの記事編集画面で、ブロックを追加すると、記事表示時にマークアップが自動で書き出されます。WEB制作の現場では、CSSやJSを指定するために、マークアップの変更が必要なケースがあります。そのような場合に利用するコード
概要FormDataオブジェクトとは、フロントエンドのデータをサーバに送るためのオブジェクトです。これを使えば、HTMLのフォームの形式にとらわれずに、サーバにデータを送信することができます。Ajaxと組み合わせて利用するのが一般的です。「
概要 Webサービス制作時に、簡単なエディタが必要になったことがありました。 エディタを作るために、「親要素上で、子要素をドラッグアンドドロップで移動する」機能を実装する必要がありました。 その際に『draggable』を利用したので、今回
概要 GPT4oは現状(2024年5月19日現在)、制限はありますが基本的に無料で使えるようです。 デザイン画像をアップロードすると、HTMLとCSSを返してくれるという噂を小耳に挟んだので、実際に試してみました。 もしも再現度が高ければ、
概要 GPT4oは基本的に無料(一部制限あり)で使えるようです。※2024年5月19日現在 「デザイン画像をアップロードすると、HTMLとCSSを返してくれる」という噂を小耳に挟んだので、実際に試してみました。 もしも再現度が高ければ、「デ
概要 WordPressのブロックエディタには、数多くのブロックパターンがありますが、全部使う人は少ないでしょう。 また、自作テーマを作る際には、全ブロックパターンに対応するCSSを指定するのは非常に大変です。 そのような場合に、ブロックエ
概要WEB制作の現場で、SVGファイルを利用するケースはよくあります。WordPressの場合は、画像はメディアライブラリにアップして利用するのが一般的です。しかし、普通にやると画像のように弾かれてしまいます。方法以下、2つの方法いずれかで
やりたいこと概要wordpressでブログを運営する際に、会員のみを対象とした記事配信をするとします。仕組み記事が会員限定か否かは、カテゴリーもしくはカスタムタクソノミーを用いて判定します。会員限定の記事にアクセスした際に、以下の挙動をする
はじめにWordPressの記事編集画面で、ブロックを追加すると、記事表示時にマークアップが自動で書き出されます。WEB制作の現場では、CSSやJSを指定するために、マークアップの変更が必要なケースがあります。そのような場合に利用するコード
概要FormDataオブジェクトとは、フロントエンドのデータをサーバに送るためのオブジェクトです。これを使えば、HTMLのフォームの形式にとらわれずに、サーバにデータを送信することができます。Ajaxと組み合わせて利用するのが一般的です。「
事例仮にですが、同じサーバ上でWordpressとCakePHPを両方運用していると思います。当然WPにはWP用のDBが、CakeにはCake用のDBがあります。この際にWP側のDBからCake側のデータを取得するには、どうすれば良いでしょ
検索フォームの設置フォーム作成:searchform.php<formmethod="get"action="<?phpechoesc_url(home_url('/'));?&
概要以下のようにControllerで行われる、CakePHPのリダイレクトについて、いろいろなパターンがあったのでメモとして残します。classSamplesControllerextendsAppController{publicfun
やりたいこと・Getパラメータを利用した、テキスト検索フォームの実装(で、文字列"hoge"を含むデータを検索する)・文字列がスペースで区切られている際はAND検索("hogepiyo"であれば&qu
概要CakePHPではControllerで利用する関数については、Componentを利用すれば簡単にできます。しかし、ここで定義した関数はtemplateからは利用できません。templateで利用する関数を作成するには、src/Vie
概要これまではURLのパラメータを管理するときに、文字列としてパラメータの追加・削除等を行なっていました。しかし、URLSearchParamsを使ったところ、制御がより容易になったで、メモとして残します。使い方前提こんなURLでサイトを表