wordpressのpluginの「Types」を1.6にバージョンアップしたらエラー

※2014/09/01
  この件は、2014/08/28にTypes1.6.2へのバージョンアップがリリースされたようですので、それで解決しました(検証済)

 

Fatal error: Declaration of FormFactory::createForm() must be compatible with that of FormAbstract::createForm() in (ここはパスが書いてある)\wp-content\plugins\types\embedded\common\toolset-forms\classes\class.form_factory.php on line 20

というエラーが出ました。FormFactory::createForm() 宣言は、FormAbstract::createForm() と互換性がなければならない、みたいな?(displayFromも同じようなエラー)

エラーが指し示す、line20は

class FormFactory extends FormAbstract{

始まり。

互換性がないというのがよくわからないけど、

初心者的なクラス・オブジェクトのお勉強 – その2

に、「抽象メソッドの引数の数と同じ数の引数で実装しないとダメ」とある。
そのcreateForm()のあたりを調べるが、わからない。ひとつ前の1.5.7と1.6の差分を見てみても特にその周辺は変えたわけではなさそう。

そのあとの「CLS1は抽象クラスではなくなったけれど、CLS1のオーバーライドには抽象メソッドの制限が残ってるんだね」でも同じエラーが出ますが……わからない……。

その後、公式サイトのフォーラムで話題が出ていました。

Types – Custom Fields and Custom Post Types Management Fatal Error After Latest Update (21 posts)

つまりは、/types/embedded/common/toolset-forms/classes/class.form_factory.phpの

L130の

public function createForm( $nameForm = ‘default’ ) {

public function createForm( $nameForm) {

に。

L147の

public function displayForm( $nameForm = ‘default’ ) {

public function displayForm( $nameForm ) {

直りました。

 

createForm()のあたりは、1.5.7と言い回しは一緒。なんでだろう?

また、そのフォーラムの最後には、WYSIWYG editorが動かないとあった。確かに、フィールドでwysiwygを選ぶと今度は

Parse error: syntax error, unexpected T_FUNCTION in /home/movielog/www/wp-content/plugins/types/embedded/common/toolset-forms/classes/class.wysiwyg.php on line 44

と出る。

しばらくそのトピックスを見守ることにします。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です