ホーム > タグ > PHP

PHP

SOY CMS で記事の日付に曜日を日本語(漢字)で表示する方法。

[2011.08.03 追記 「$information["create_date"]」の仕様変更、および、「strtotime」関数によるタイムスタンプへの変換についての記述を追加しました。]

ググってもあまり情報が無かったので、とりあえずメモ。

SOY CMS でブログ記事の日付を表示するとき、「cms:id=”create_date”」で作成日を取得することができますが、一緒に「cms:format」を指定することで日付のフォーマットを任意に変更できます。
例えば「cms:format=”Y年m月d日”」と指定したときは、「2011年03月08日」という具合。
フォーマット指定の書式は、PHP の date 関数と同じものが使えます。
»PHP: date – Manual

ただ、date 関数だけでは、曜日を日本語(というか漢字)で表示することができません
英語だけで良ければ、フォーマットに一文字追加するだけで良いんですけどね(フルスペルなら「l」(小文字の L)、3 文字なら「D」)。
残念ながら日本語の場合は date 関数によって数値を取得し、それに応じた文字に置き換える必要があります。

で、色々検索してみたりしたんですが、意外と見付からなかったので、自分で組んでみました。
この記事の続きを読む

SOY CMS で PHP を使って記事ごとに設定を任意で変えられるようにしているときに「cms:id」などが含まれている場合の対処法。

(2011.01.26:PHP の書き方を変更したコードを追記しました)

「新着情報」などのコンテンツをトップページやアーカイブで表示するとき、記事ごとに任意で設定を変えることがあります。
「重要!」などのアイコンの表示/非表示とか、太字にする/しないとか、リンクを設定する/しないとか。
カテゴリー名を表示するだけならシステム側で自動にできるんですが、これらの設定は人(記事の編集者)が手動で設定することになります。

SOY CMS(ver.1) でそれを実現するには、カスタムフィールドでその設定項目(チェックボックスなど)を追加して、表示させたいページに PHP の if 文を追記します。
その手順などは以下の記事で紹介されているので、カスタムフィールドの設定方法とか PHP 文の細かい意味とか、詳しいことはそちらを参照ください。
»SOY CMSのカスタムフィールドを使った条件分岐(1) | ウェビンブログ | 札幌のWebデザイナー・カスタマイズアドバイザー WebbingStudioのよしなし語り

僕の方では、ちょっとだけ応用の話を書きます。

とりあえず下準備の手順などを簡単に書いておくと、

  1. SOY CMS の管理画面で「プラグイン」タブを選択し、「カスタムフィールド」プラグインを有効にする
  2. 「プラグインの詳細設定」で、任意の ID とフィールド名を入力し、プルダウンから「チェックボックス」を選択して、カスタムフィールドを追加する。
    (僕は今回、詳細記事へのリンクの切り替えをしたかったので、IDは「to_detail」、フィールド名は「詳細へ」にしました)
  3. 追加したフィールドの「高度な設定」をクリックし、ラベルの関連付けを行う。(ここで関連付けたラベルの記事の編集画面にのみ、設定項目が表示されるようになる)
  4. 表示させたいページに PHP の if 文を追記する。

という感じ。

カスタムフィールドの追加は特に難しくないと思いますが、問題なのは PHP です。
この記事の続きを読む

PHP で 301 リダイレクトするときの設定方法。

「リダイレクト」という言葉でまず思い浮かぶのは、「.htaccess」ファイルを使用した方法です。
ただ、レンタルサーバーなどでは、この .htaccess ファイルが使えなかったり機能を制限していたりするため、別の方法を準備しなければなりません。
そんなときに、次の候補として挙がるのが PHP によるリダイレクトです。

もちろん .htaccess のようにサーバー全体へ設定することはできないので、対象となるファイル(ページ)全てに反映していく必要があります。
そういう意味で使い勝手はあまり良くないのですが、まぁ、無いよりはマシってことで……。
(逆に、特定のページだけをリダイレクトしたい場合には、こちらの方が楽だったりします)
この記事の続きを読む

Firefox で特定のページの特定の箇所から特定のページにリンクしたとき「一部だけ暗号化されていない」という状態になる

何かよく分からない事象にハマってます。
もし原因や解決法などをご存知の方が居ればぜひ情報を……。

  • 同一ドメインにおいて(仮に「http://www.hoge.jp/」とします)
  • Firefox で保護されていない特定のページ(「http://www.hoge.jp/〜」)から保護されている特定のページ(「https://www.hoge.jp/〜」)へリンクしたとき
  • 「一部しか暗号化されていない」という状態になる
  • そのページをリロードすると、その事象は解消される(すべて保護されている状態になる)
  • 同じリンク元ページの別の箇所から、まったく同じ URL にリンクしても、上記のような事象は発生しない(すべて保護されている状態になっている)
  • リンク先 URL を直接入力したり、他のページからリンクしても、やっぱり事象は発生しない
  • つまり、特定のページの特定の箇所にあるリンクでのみ、事象が発生している(再現性あり)
  • IE、Safari、Google Chrome といった他のブラウザでは特にそういったことは起こらない
  • 逆に Opera では、どの保護されていないページ(「http://www.hoge.jp/〜」)からであっても、保護されているページ(「https://www.hoge.jp/〜」)へリンクした場合、「保護されてはいません」となる
  • Opera の場合、Windows ではリロードすると解消される(保護されている状態になる)が、Mac だとリロードしても解消しない(URL を直接入力してもダメ)
  • このサイトは PHP で構築されていて、ファイル名によって「http://」と「https://」を 302 リダイレクトで切り替えている(「info.php?〜」なら「http://」、「edit.php?〜」なら「https://」という具合)

という感じです。
もう、まったく意味が分からないんですけど……。

SOY CMS で PHP を使えるようにする方法。

「そろそろ SOY CMS をちゃんと使いたいなー」ということで、レンサバを新しく一つ借りてとりあえずインストールしてみました。

誰かに見てもらう訳でもないので、とりあえず公開はしない方向で。
ドメイン取得予定も無し。
本家(?)のデータを移植しつつ、どうすればどうなるのかを確認してるところです。

で、いきなりちょっとつまづいたので備忘メモ。
この記事の続きを読む

1 / 3123

Home > Tags > PHP

リンク
フィード
メタ情報

このページのトップへ