サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
WWDC24
kwski.net
CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。 バリデーションをsaveから切り出して行う ポイントは、1.のvalidatesの前にデータ($this->request->data)をdataをModelにsetする必要があるところです。(「若干異なる処理体系」とはここのことです。)この処理を行わないとvalidatesは常にtrueを返します。 validatesメソッド内で、invalidFieldsメソッドが呼び出されます。このメソッドは[Model]->validationErrorsにバリデーションのエラーメッセージ(message)を格納します。バリデーションNGの場合、ここからメッセージの取り出しが可能です。 // 1. モデ
WordPress 3.6のデフォルトテーマである「Twenty thirteen」のカスタマイズをまとめて投稿します。 Twenty thirteenのカスタマイズネタがあまりないです。(それだけ完成度が高いのか、それとも、イジりがいのないテーマなのか??) ネタ募集してますので、お問い合わせもしくはコメントいただけたらと思います。 目次 アイコンフォント「Genericons」を無効化 ヘッダ画像のサイズを変更する "Proudly powered by WordPress" 非表示 コメント欄停止・コメント削除 別記事 「Twenty Thirteen」ベースのフリーテーマ 7 7 Free WordPress Themes Based on Twenty Thirteen アイコンフォント「Genericons」を無効化 Twenty Thirteenでは、メタ情報や検索フォーム部
ナビゲーションメニューを固定にしてみました。下方にスクロールしても最上部に固定されるやつです。 スクリプト 以下のjsファイルを用意して下さい。 nav要素のidは、ソースもしくはheader.phpの<nav id="~">をみて確認して下さい。 // navbarfixedtop.js <script type="text/javascript"> $(function () { var nav = $('#navbar'); // nav要素のidを設定 var objDistance = nav.offset().top; $(window).scroll(function() { var myDistance = $(window).scrollTop(); if (myDistance > objDistance){ nav.addClass('navbar-fixed-top
$('.circle').mosaic({ opacity : 0.8 //Opacity for overlay (0-1) });
ユーザ登録では、仮登録処理(status=1)から送付したメール内のリンクをクリックしてもらい本登録(status=0)を行ってもらう実装をしました。仮登録の状態ではログインできないように実装するには、1.3では「userScope」を使用しました(記事)が、2.xでは「scope」に変更されているようです。 Authコンポーネントを呼び出す際に以下のように定義して下さい。 2.0から「Authenticate type」というものが追加されており、今回はフォームからpostされた認証に対して追加を行うため'Form'に追加しています。(参考) var $components = array( 'Auth' => array( 'authenticate' => array( 'Form' => array( // 認証されるには、「Userのstatusが0である必要がある」を追加する
Google Code Prettifyを使用してソースコードを表示をしてくれる「Prettify Code Syntax」 Prettify Code Syntaxは、WordPressでGoogle Code Prettifyを使用してソースコードを表示してくれるプラグインです。 プラグインダウンロード Google Code Prettifyのページ 使用方法 インストールして、投稿内でコードを以下のように囲めば表示してくれます。 <pre class="prettyprint lang-php"> <?php echo "Hello World"; ?> </pre> <?php echo "Hello World"; ?> テーマ 管理画面の「設定」→「Prettify Code Syntax」のStyleタブであらかじめ用意されたテーマを選択するかcustomの項でCSSを直書
ポップアップ 「Anything Popup」 「Anything popup」は、ページにポップアップが実装できるWordPressプラグインです。ポップアップ要素を投稿ページと同様に作成できるため、テキストのみでなく画像なども実装することが可能です。ダウンロード インストール・有効化して、「設定」→「Anything popup」へすすみます。 ポップアップごとに作成を行い、投稿ページへショートコードを埋め込む流れになります。 設定と内容の作成を行い、"Insert Message"をクリックすると下方のテーブルにショートコード(Short Code)が作成されますので、設置したい投稿ページに挿入して下さい。 (例) [AnythingPopup id="2"] サンプル どうやらコンテンツに(Contact Form 7などの)ショートコードを埋め込むことには対応していないようです。
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://kwski.net/feed/'); // フィードURLを指定 } catch( InternalErrorException $e) { $newsItems = null; } $this->set( 'news', $newsItems); } コンポーネント // /app/Controller/Component/RssComponent.php // XMLクラスの読み込み App::uses( 'Xml', 'Utility'); class RssComponent extends Component { /** * Reads an (external) RSS feed and returns it's
以前、ここで使用した「jqPlot」ですが、色々なキーワードで訪問される方がいらっしゃったので、それを元ネタとして使わせてもらいカスタマイズ方法を紹介したいと思います。 以下4つのファイルへリンクしている前提です。 <script src="jquery.min.js" type="text/javascript"> <link href="jquery.jqplot.min.css" type="text/css" rel="stylesheet"> <script src="jquery.jqplot.min.js" type="text/javascript"> <script src="excanvas.min.js" type="text/javascript"> 各種グラフ作成方法は以下にあります。 折れ線グラフ | 円グラフ | 棒グラフ | ローソク足チャート 各種オプショ
WordPressでは、JSやCSSがロードされる際にlinkタグやscriptタグ内にWordpressやプラグインもしくはスクリプトそのもののバージョン番号が付与されます。「?ver=」で検索してみてください。 バージョン番号を消すことは、セキュリティ的な観点から本当に意味があるのかどうかは議論が分かれるところですが(どうせ中身に書いてあるし...バージョンなんか見ずに無差別爆撃が最近でしょうから)、余計なものはできるだけ出力しないほうがいいと考え消すことにしました。このブログで挙動に関してある一定期間様子をみて他のブログに適用していこうと思います。 方法は、以下のサイトを参考にさせてもらいました。(Thank you!) How to remove WordPress version parameter from JS and CSS files どちらか選択して、functions
WordPressではデフォルトでjQueryライブラリが同梱されています。この記事では、それをやめて、CDNから読み込み、使用する方法を解説します。 WordPress 3.6 3.9 4.0になり、jQueryライブラリのバージョンが1.10.2 1.11.0 1.11.1になっています。 加えて、ライブラリのバージョンアップに伴って、1.9より前に作成されたプラグインとの互換性を保つため、jquery-migrate.min.jsが追加されています。(バージョン 1.2.1) ただし、テーマによっては特有のバージョンを使用しているものがあるため確認をお願いします。 オリジナル wp_default_scripts in wp-includes/script-loader.php function load_cdn() { if (!is_admin() ) { wp_deregist
テキストボックスの入力値を数値限定にしてくれる「jQuery - numeric」 「jQuery - numeric」は、テキストボックスへの入力を数字のみに制限してくれるjQueryプラグインです。正/負、整数/小数点 チェックまで限定してくれます。ダウンロード スクリプト 数値入力に便利なステッパーを実装「Numeric Stepper」 「Numeric Stepper」は、数値用のステッパーを実装できるjQueryプラグインです。ダウンロード | デモ スクリプト 実装 既存のテキストボックスにclas 日付入力に便利な「Datepicker for Bootstrap」 「Datepicker for Bootstrap」はテキストボックスにカレンダーを表示して日付入力を便利にしてくれるjQueryプラグインです。 目次 Datepicker for Boot 時刻入力に便利な
Twenty Tenのカスタマイズについてのまとめです。 目次 コンテンツナビゲーション 非表示 「投稿日」を非表示 「作成者(投稿者)」を非表示 "コメントをどうぞ"("leave a comment")を消す コメント入力欄 削除 コメントの日付を非表示 コメントを(コメント)フォームの下に "proudly powered by wordpress"を非表示 レスポンシブ化 別記事 コンテンツナビゲーション 非表示 Twenty Tenでは、コンテンツナビゲーションが投稿上部と下部に表示されます。コンテンツナビゲーションとは、一つ前や一つ後の投稿へのリンクを表示してくれる部分です。 上部ナビを消す場合→loop-single.phpの20行目から23行目をコメントアウト 下部ナビを消す場合→loop-single.phpの60行目から63行目をコメントアウト // オリジナル /wp
selectボックスに引き続いてcheckボックスの実装方法をおさらいしてみます。 コードは、CakePHP 2と1.3両方で実装可能です。デモ モデルは、こちらも以下 CREATE TABLE IF NOT EXISTS `prefectures` ( `id` INT NOT NULL AUTO_INCREMENT, -- id `prefecture` VARCHAR(8) NOT NULL, -- 都道府県 `area` VARCHAR(8) NOT NULL, -- 地方 PRIMARY KEY (`id`) ) 単体でon/offするcheckボックス 規定値を指定する場合は、checkedに指定します。チェックの場合はtrue(もしくは1)、チェックしない場合はfalse(もしくは0)を。 // ビュー echo $this->Form->input( 'yesno', ar
前回、Google Maps上にinfowindow(吹き出し)を表示させました。infowindowに表示データを追加し、デザインをしてみました。どうやら普通にHTMLを書けばいいようです。画像とリンクとテキストを表示させてみます。 <style> #div799 label { width: auto; display:inline; } #div799 img { max-width: none; max-height: none; } </style> <div id="div799" style="width:940px; height:600px"></div> <script type="text/javascript"> $(document).ready(function(){ // マップ作成 // マップ中心座標設定 var latlng = new google.m
WordPress 4.1のデフォルトテーマである「Twenty Fifteen」は三世代前の「Twenty Twelve」に似たテーマで非常にシンプルなテーマにまとまっていますね。カスタマイズをまと 続きを見る
「WordPress Popup」は、ユーザの訪問時にポップアップを開くように実装できるプラグインです。それぞれ条件によって開くかどうかを設定することができます。 ダウンロード / サンプル インストール・有効化すると、管理画面の左サイドバーに"Pop Overs"というアイテムが出現しますのでこちらからポップアップを登録することができます。 ポップアップの設定 Popover title:ポップアップのタイトル Popover content:ポップアップ内に表示させるコンテンツ Active conditions ポップアップを開く条件を指定します。右サイドバーにある条件を"Active conditions"にドラッグ&ドロップして条件を追加して下さい。 Visitor is logged in:ログインしているユーザ向けに開く Visitor is not logged in:ログ
ここ最近、アカウント乗っ取りやセキュリティ事故関連のニュースが相次いでいますが、WordPressで制作されたサイトも標的に会っているようです。一般的な手法としては「ブルートフォースアタック」という手法をもちいているらしいです。 =>「ユーザー名」をある程度絞ってから、あとはパスワードは総当たりでトライ その逆でパスワード固定のユーザ名総当たりは「リバース・ブルートフォース」というらしい。 ほとんどのテーマではユーザ名が投稿記事内に晒されている と思います。 テーマによりますが、記事の「メタ情報」内に投稿者・作成者といったかたちで、「ユーザー名」が出力されます。 **出力する必要が無い場合はテーマのテンプレートを変更して、作成者を非表示にしましょう。class="author"が設定されているはずです。 (Twenty twelveの場合はこちら) cssで隠すだけでは、HTMLには出力さ
今回は、ログイン画面でよくみかけるクッキーログインの機能を使ってみます。 CakePHPには、Cookieコンポーネントがあります。(PHPのsetcookieメソッドのラッパー)メソッドはwriteとreadです。わかりやすい。 ログイン時に、「ログインしたまま」というチェックボックスをつけてログインしてきたユーザのクッキーをwriteして、次回そのユーザが訪問した際に、クッキーをreadして自動的にログインさせます。 Cookieコンポーネントの使用 var $components = array( 'Cookie', } 使用する際は、コントローラ内でコンポーネントを読み込んで下さい。 writeメソッド (クッキーをつくる) ログイン画面にチェックボックスを用意します。今回は、remember_meにします。以下は、Userモデルのusernameとpasswordという前提にして
「jQuery Text Resizer Plugin」は、ページ内のフォントサイズを変更してくれるjQueryプラグインです。要素を限定してリサイズすることも可能です。jquery.cookie.jsを使用して設定はCookieに保持され、次回訪問時にも設定が引き継がれて表示してくれます。デモ スクリプト <script src="jquery.js" type="text/javascript"></script> <script src="jquery.cookie.js" type="text/javascript"></script> <script src="jquery.textresizer.js" type="text/javascript"></script> 実装 // リサイズ用リンクボタン <div id="textsizer"> <p>文字サイズ:<p> <ul
Twitter Bootstrap Modalは、標準のモーダルウィンドウに様々な機能を追加することができます。 Twitter Bootstrap純正スクリプト ダウンロード / サイト / デモ オプション設定でできること ページ訪問時に自動的にモーダルウィンドウを開く。 背景クリックで閉じる処理を無効化 レスポンシブ など スクリプト bootstrap.min.jsは全てのJavascriptを含みます。モーダルウィンドウのみを使用する場合はmodal.jsへ置き換えて下さい。また、オープン時のスライド効果を使用したい場合は、transition.jsを追加でインクルードして下さい。 <link href="bootstrap.min.css" type="text/css" rel="stylesheet"> <script src="jquery.min.js" type="t
以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のURLリンクをメールで送付 3. 送付されたリンクをクリックして「本登録完了(activate)」とする ユーザ(users) テーブル statusを用意し、デフォルトを1としています。"1"を仮登録状態でログイン不可、"0"を本登録としログイン可能にします。その制御は、「scope」が使えそうです。 -- usersテーブル CREATE TABLE IF NOT EXISTS `users` ( `id` INT NOT NULL AUTO_INCREMENT , `username` VARCHAR(255) NOT NULL , `password` CHAR(128) NOT NULL ,
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード 目次 カレンダーを表示する カレンダーにイベントを表示する カレンダーにイベントを追加する カレンダーを表示する まずはカレンダーのみ表示してみます。デモ:カレンダー表示 head部分に、jQuery本体とFullCalendar本体、そしてCSSを読み込みます。 // head内 <?php echo $this->Html->css( 'fullcalendar/fullcalendar.css'); echo $this->Html->script( 'jquery.min.js'); echo $this->Html->script( 'fullcalendar/fullcalenda
WordPressでは標準でコメント機能が付いてきます。この投稿ではコメント機能の停止や既に投稿されたコメントを削除する方法を紹介します。 設定による停止方法 新規の投稿に関してコメントを停止する 管理画面より「設定」→「ディスカッション」とすすみ、"新しい投稿へのコメントを許可する"のチェックをはずす。 これで、これから投稿するページのコメントは停止されますが、説明("これらの設定は各投稿の設定が優先されます。")にあるように、既に投稿しているページのコメントは有効です。 既存の投稿に関してコメントを停止する 管理画面より「投稿」→「投稿一覧」とすすみ、そのページの投稿画面へすすんで下さい。右上の「表示オプション」を開き、"ディスカッション"と"コメント"にチェックを入れると要素が追加されるので、"コメントの投稿を許可する。"のチェックをはずして下さい。 これでその投稿に対するコメントは
RSSフィードのカスタマイズ 標準で出力されるフィード WordPressの各種ページで出力されるフィードは以下になると思います。 投稿:投稿のフィード @全てのページ サイトのコメント:コメントのフィード @全てのページ 各投稿のコメント:投稿ページのコメントのフィード @シングルページ カテゴリー:カテゴリーごとのフィード @カテゴリーアーカイブページ タグ:タグごとのフィード @タグアーカイブページ 投稿者(作成者):作成者ごとのフィード @作成者アーカイブページ 検索結果:検索結果のフィード @検索結果ページ 管理画面で可能な設定 管理画面「設定」→「表示設定」で以下の設定を行うことができます。 RSS/Atom フィードで表示する最新の投稿数:RSS登録した際に最新から何件表示するか RSS/Atom フィードでの各投稿の表示:フィードに、「全文」を表示するか「抜粋のみ」を表示す
Calendarioは、レスポンシブデザインにも対応したカレンダ表示プラグインです。 ダウンロード スクリプト <link href="/css/calendar.css" type="text/css" rel="stylesheet"> <script src="/js/jquery.calendario.js" type="text/javascript"></script> 実装 <div id="calendar" class="fc-calendar-container"></div> <script type="text/javascript"> $(document).ready(function() { $('#calendar').calendario({ caldata : codropsEvents // 表示データ }); }); </script> // 表示デ
「imgLiquid」は親要素の大きさに合わせて画像を縮小・切り取りを行ってくれるjQueryプラグインです。 ダウンロードはこちら スクリプト <script src="jquery.min.js" type="text/javascript"></script> <script src="imgLiquid-min.js" type="text/javascript"> 実装 <!-- thumbnail( 300x200 ) --> <div class="div1077" style="width:300px; height:200px;"><img src="画像"></div> <!-- thumbnail( 150x100 ) --> <div class="div1077" style="width:150px; height:100px;"><img src="画像"><
以前、google Maps上にマーカー(と吹き出し)を表示するサンプルを作成しましたが(記事)、密集していると見づらい場合がありますよね。そこで、MarkerClustererという密集したマーカーを件数をカウントしてまとめてくれるライブラリを使用してみました。 ダウンロード ライブラリは、ここにあります。[markerclusterer_compiled.js] スクリプト <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript" src="markerclusterer_compiled.js"></script> Googleマップ用のライブラリとmarkerclustererのライブラリを
子テーマでfunctions.phpなどを変更していくと翻訳すべき項目にぶつかっていくと思います。例を挙げると_()の部分で、Wordpressが翻訳を行ってくれる部分です。 個人的には、日本語のみでブログを運用していく場合は、子テーマのfunctions.phpに日本語で直書きしてもいいような気がしないでもないですが。 子テーマのfucntions.phpで定義した関数が翻訳必要な場合、子テーマで翻訳ファイルを読み込む必要があります。なぜなら、Wordpressの呼び出し順序として子テーマfunctions.php→親テーマfunctions.phpとなり、翻訳ファイルの読み込みは親テーマ内で行われるため、子テーマ用に読み込ませる翻訳ファイルが必要になります。子テーマ内で親テーマの翻訳ファイルを読み込ませればいい(やったことないです)のですが、どうせなら、子テーマ内で必要なものは子テーマ
次のページ
このページを最初にブックマークしてみませんか?
『Think deeply, Do less, More effective』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く