田舎の風見鶏

PHP5.2でsoy cms 1.8.6以降のエラー回避について

soycms

なるべく新しいsoy cmsを利用したくて、結構頻繁にバージョンアップしていましたが、soy cms 1.8.6以降では管理画面には入れるけど公開ページが真っ白なので、soy cms 1.8.5を使い続けていました。

このサイトで使っているラクサバもPHP5.2.17です。
公式サイトではPHP5.2以降、推奨環境が5.2.20以降となっていますのでラクサバは非推奨環境ですね。

しかし仕事でPHP5.2.17でsoy cmsをインストールすることになり、最新の1.8.12をインストールしましたが、やはり公開ページは真っ白。

仕方ないのでエラーログを見て原因を調べてみました。

エラーログの場所はsoy cmsインストールディレクトリの/common/log/error-******.log

(******は西暦と月、2015年11月分のログはerror-201511.log)

これをダウンロードして開いてエラーを確認。

>PHP Parse error:  syntax error, unexpected T_FUNCTION in /soyをインストールしたディレクトリ/common/site_include/CMSBlogPage.class.php on line 280
>PHP Parse error:  syntax error, unexpected T_FUNCTION in /soyをインストールしたディレクトリ/common/site_include/DateLabel.class.php on line 39

CMSBlogPage.class.phpとDateLabel.class.phpの2つのファイルがエラーを吐いています。

エラー箇所近辺のコードを見ると共通してPHP5.3.0.0以降かどうかのif文での条件分岐でエラーを吐いています。

        >//条件付きフォーマット
        >if(version_compare(PHP_VERSION, '5.3.0', '>=0')){
        >   //preg_replaceのeオプションは5.5.0で非推奨になった
        >  //preg_replace_callbackは4.0.5から使えるが無名関数は5.3.0以降
       >     $time = $this->time; $year = $this->year; $month = $this->month; $day = $this->day;
       >    $format = preg_replace_callback("/%DATE:([^%]*)%/u",function($m) use ($time) {return date($m[1],$time);},$format);
       >     $format = preg_replace_callback('/%Y:([^%]*)%/u',function($m) use ($time, $year)  {return strlen($year)  ? date($m[1],$time) : '';},$format);
       >     $format = preg_replace_callback('/%M:([^%]*)%/u',function($m) use ($time, $month) {return strlen($month) ? date($m[1],$time) : '';},$format);
       >     $format = preg_replace_callback('/%D:([^%]*)%/u',function($m) use ($time, $day)   {return strlen($day)   ? date($m[1],$time) : '';},$format);
       > }else{
       >    $format = preg_replace("/%DATE:([^%]*)%/e","date('\\1',\$this->time)",$format);
       >     $format = preg_replace('/%Y:([^%]*)%/e',"strlen(\$this->year)  ? date('\\1',\$this->time) : ''",$format);
       >     $format = preg_replace('/%M:([^%]*)%/e',"strlen(\$this->month) ? date('\\1',\$this->time) : ''",$format);
       >    $format = preg_replace('/%D:([^%]*)%/e',"strlen(\$this->day)    ? date('\\1',\$this->time) : ''",$format);
       > }

PHPはほとんど触ったことがないし面倒くさかったので、PHP5.3.0かどうかのif分をまるごと削除しました。

強引ですがこれでPHP5.2環境でも動作しました。


sitemap.xmlを作成してくれる「sitemap.xml Editor」

日記 soycms

wordpressをお使いの方ならほぼ入れているプラグインだと思う[google XML sitemaps」のようなプラグインがsoy cmsにはありません。

SEO的にもまずいので簡単にsitemap.xml作れるツールを検索してみました。

sitemap.xml Editor

sitemap.xml editor

URLを入れるだけでsitemap.xmlを自動的に作成してくれます。

作成したsitemap.xmlはダウンロードして、soy cmsのファイルマネージャーからアップロード。

googleウェブマスターツールで送信して完了です。

ダウンロードしてアップロード、送信と手間が多いですが自分で作るよりは数段マシなので今はコレで我慢。

公式に対応していただけると嬉しいんですけどね。

それか誰かプラグイン作ってくれないかな?

PHPで書かれた「楽天アフィリエイトサイト作成システム 楽陳」を見つけたのでsoy cmsに組み込みたい

soycms

しばらく更新が滞ってました

今日はsoy cmsネタではありませんが面白いものを見つけたのでご紹介。

PHPで書かれた「楽天アフィリエイトサイト作成システム 楽陳」(らくちんと読みます)です。

自分のサイトに楽天市場の商品を掲載することができます。

楽珍

こんなかんじです。

他のサイトでwordpressも使っているんですが、wordpressにはプラグインで「VC search」や「CS SHOP」といった通販サイトの商品を簡単に記事に挿入できたり、検索窓を付ける事ができるのですが、soy cmsのプラグインにはそういった昨日を持ったプラグインがないので、ブログ記事で商品を紹介するときに、いちいち通販サイトを開いて、商品を検索して、タグをコピーして貼り付けと、結構な工数がかかります。

そこでsoy cmsでもそういった機能を持たせることができないか考えていたんですが、プラグインの開発ができればいいんですがそんな技術は持っていないの楽陳を使って実現させようと思います。

標準ページにPHPで楽陳のテンプレートタグを埋め込んで検索窓やを使って楽陳を呼び出して商品を表示させる。

個別の商品の表示は難しそうですが、キーワードを指定して表示件数を1件にすれば、ほぼ目的の商品は表示できると思います。

soy cmsのカスタマイズはwordpressほど難しくないので、こういった面では小回りがききますね。

SOY CMS Ver.1.8.4 リリース

soy cms1.7.2

しばらくブログの更新をサボっている間にsoy cmsは着実にバージョンアップしていました。

soy cms1.8.4がリリースされました。

メインは管理画面の記事一覧と記事の投稿画面でラベルの分類表示が可能になったことのようでが、なれないとなんとなく見難いですね。

リリースノート

細かいバグ修正とTinyMCEがバージョンアップ(4.1.5→4.1.6)されています。

このままバージョンアップしていくといつか2.0になるけど 「soy cms2」との区別が難しそうですね。

SOY CMS Ver.1.8.0 リリース

soy cms1.7.2

soy cms1.8.0がリリースされました。

メインは管理画面の記事一覧と記事の投稿画面でラベルの分類表示が可能になったことのようでが、なれないとなんとなく見難いですね。

リリースノート

あとTinyMCEがバージョンアップ(4.0.26→4.0.28)されているようですがどこが違うのかよくわかりません。

バグ修正とか何でしょうかね?

2014.07.22修正

バグ修正とかなんでしょうね

誤字とわかりづらい文章だったので修正しました。


<< 1 2 3 4 5 6 7 8 >> 8ページ中3ページ目