2018年02月09日

WordPress関数でのカテゴリ追加

WordPressバージョン: 4.9

WordPress でカテゴリを追加する関数にはいくつか種類があるが、wp_insert_category() あたりが細かなパラメータも設定できてなかなか良さそう。

と思いきや、4.9.4 で試したら「Call to undefined function wp_insert_category()」のエラーに…。
代わりにwp_insert_term()を使ったらうまくいった。

指定するパラメータは以下のとおり:
・$term
カテゴリーの「名前」
・$taxonomy
'category' を指定
・$args
'alias_of'、'description' (カテゴリーの「説明」)、'parent' (親カテゴリーのID)、'slug' (カテゴリーの「スラッグ」) を必要に応じて
タグ:WordPress
posted by K/I at 21:56 | 東京 ☀ | Comment(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2017年05月06日

FuelPHPって。。。

ここ数ヶ月 FuelPHP で何年か前から作りかけているシステムに手を入れているのだけれど、FuelPHP は正直しんどいなぁと思いつつある。
そのうち慣れてきて作業効率も上がるだろうと思っていたが、未だに作業の進みが悪くてダメなんじゃないかこれ?という思いが行き来するようになってきた。。。

いちばん困っているのは、ドキュメントが貧弱で、情報が少ないところ。
結局、自分でコード読むのがいちばん早かったり。
これ2010年頃からはじまっているシステムだから、もっと情報が充実していてもよいと思うのだが。。。

不思議な挙動をするところがあったり、モデルクラスの扱いに面倒なところがあったり、回避策を調べるのがたいへん。

比較的軽いところ、カスタマイズしやすいところは自分の性に合っていると思うのだけれど、フレームワークの特性をうまく利用して、きれいなコードを書いてやろうとか思いはじめると、難しいのではないかなぁ。
posted by K/I at 15:03 | 東京 ☀ | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2017年03月25日

FuelPHP で Orm\Model クラスのリレーション定義しても cascade がうまく動作しない

PHP Framework: FuelPHP
Version: 1.8

FuelPHP の ORM モデルクラスに $_has_many プロパティを定義してリレーションを定義すると、JOIN が楽になるほか save() や delete() 実行時に関連テーブルのデータも自動的に save()、delete() させるように設定が可能となる。
https://fuelphp.com/docs/packages/orm/relations/intro.html

ところが、この $_has_many プロパティのキーの選び方には注意が必要であることがわかった。

$_has_many のキーに、テーブルのフィールド名と同じ名前を選んではいけない!

つまり、上記 Document ページでいうと
protected static $_has_many = array('comments' => array(
'model_to' => 'Model_Fancy_Comment',
'key_from' => 'article_id',
'key_to' => 'parent_article_id',
'cascade_save' => true,
'cascade_delete' => false,
// there are some more options for specific relation types
));

'comments' が、$_properties に含まれていると、動作がおかしくなる。。。

たとえば \Orm\Model クラスの delete() メソッドがどうなっているかを見てみると、

foreach($this->relations() as $rel_name => $rel) {
:
$rel->delete($this, $this->{$rel_name}, true, $should_cascade);
}

としている。
$rel_name は $_has_many プロパティのキー、$rel は \Orm\HasMany オブジェクトが代入されるのだが、$this->{$rel_name} がモデルクラスのフィールド参照とモロかぶりなのである。

これがわかるまで、丸1日かかってしまった。。。
タグ:FuelPHP PHP
posted by K/I at 14:51 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2015年05月10日

PHP で NW-7 バーコード画像を生成する

PHP の Pear には、バーコードを生成するライブラリー Image_Barcode2 クラスが提供されているけれど、なぜか NW7 が含まれていないので作ってみた。

(1) Barcode2.php ファイルを探し (通常は /usr/share/pear/Image/Barcode2.php など)、Image_Barcode2 のクラス内定数に BARCODE_NW7 を追加:

const BARCODE_NW7 = 'nw7';

(2) Barcode2 の Driver ディレクトリーに、今回作成した NW-7 用のドライバーファイル Nw7.php を追加。

設置は以上で完了。

使い方は、たとえば:
<?php
require 'Image/Barcode2.php';                                                    
$code = new Image_Barcode2();                                                    
$code->draw('a01234567b', 'nw7');                      
などとすれば、バーコード画像が表示される。
posted by K/I at 22:43 | 東京 ☁ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2014年09月28日

Fedora 16以前のバージョン "End of Life" !!!

Fedoraは 17 以降から、fedup というツールでお手軽にアップグレードができるようになっていたらしい。

それが理由なのか、あるいは Systemd 導入が理由なのかわからないが、Fedora 16 までのバージョンは "End Of Life" になっていた。
しかもかなり以前に:
https://bugzilla.redhat.com/show_bug.cgi?id=834795

EOF になると、アップグレードすらできなくなるのか。
Fedora 13 で運営しているサーバーがあるのだが、こいつは完全に世間から取り残された。。。
posted by K/I at 21:34 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2014年09月26日

PHPの意外なハマりどころ

フォームで、name 属性に . を使うと、_ に自動変換されてしまうのね。
今まで知らなかった。。。
posted by K/I at 21:25 | 東京 ☁ | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2014年06月30日

Apache組み込まれている静的モジュール/動的モジュールの一覧取得方法

いつも忘れてしまうので、メモ。

Apache2 で、組み込まれている Static Module の一覧は、
# httpd -l

ロードされている Dynamic Module の一覧は、
# apachectl -M

で調べられる。
タグ:Apache
posted by K/I at 20:15 | 東京 ☁ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2014年06月13日

CentOS 6.5 への MongoDB のインストール

CentOS 6.5 に MongoDB サーバーをインストールしようとしたら、パッケージは存在しているのにレポジトリからダウンロードできずインストールできないと言われた。
CentOS 6.4 はうまくいくのに。。。

やむなく、MongoDB 本家のレポジトリを追加してインストールすることに。
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-fedora-linux/
基本的には上記URLのとおりにやればOK。

ただ、既存の YUM レポジトリーの MongoDB 関連パッケージとかち合うのが気になるので、enabled=0 のほうがよいかも。
posted by K/I at 22:16 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

2014年03月16日

Subversion の Secure connection truncated エラー

Subversion で巨大なレポジトリーをチェックアウトしようとすると、Secure connection truncated エラーが出ていっぺんにダウンロードできない場合がある。

ssh でレポジトリーにアクセスできるなら、そちらを使えばエラーを回避できるようだ。

SSH で接続する場合のレポジトリーの URL は、

svn+ssh://(ホスト名)/(レポジトリーのパス)
タグ:SVN subversion
posted by K/I at 21:23 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする

Subversionで無視ファイルを探すには?

Subversion の「無視リスト」はなにかと便利ではあるけれど、作業ディレクトリーを一時的に削除しようと思った時に「はて?すべてあっさり消してしまってよかったのだっけ?それとも作業環境依存の設定ファイルを無視リストに設定してあるのだっけ?」と悩むことがある。
svn コマンドで
$ svn stat --no-ignore
というのがあるけれど、これだとあらかじめ無視パターンに設定したファイルも表示されてしまう。
明示的に svn:ignore プロパティーに設定したファイルだけ探し出したいのだが。

結局わからず、上記コマンドで表示された大量のファイルを点検。
めんどくさ。。。
タグ:SVN subversion
posted by K/I at 18:01 | 東京 ☀ | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする