PHPEXCELで動作させるときに利用する関数のメモ。FuelPHPで組み合わせて利用のメモです。
パッケージの読み込み
\Package::load('excel');
templateを利用した場合の読み込み
$excel = \PHPExcel_IOFactory::load($template_path);
列を数値で指定した場合に列名に変換する方法
PHPExcel_Cell::stringFromColumnIndex( 列の数値 )
とりあえず徐々に追加予定。
PHPEXCELで動作させるときに利用する関数のメモ。FuelPHPで組み合わせて利用のメモです。
\Package::load('excel');
$excel = \PHPExcel_IOFactory::load($template_path);
PHPExcel_Cell::stringFromColumnIndex( 列の数値 )
とりあえず徐々に追加予定。
NULLの値を前に持っていくのか後ろに持っていくのか指定できたらいいですよね?
そんな時は下記のパターンでPostgreSQLは指定できました。
・NULLを最初にする場合 ORDER BY カラム名 DESC NULLS FIRST ・NULLを最後にする場合 ORDER BY カラム名 DESC NULLS LAST
消費税導入年月を調べてみました。
| 導入年月日 | 消費税率 |
| 1989年4月1日 | 3% |
| 1997年4月1日 | 5% |
| 2014年4月1日 | 8% |
| 2019年10月1日 | 10% |
PHPWordでテンプレートを読み込んでファイルで保存する場合でハマった。
↓保存するときにsaveだと指定したファイル名で保存されない。
$phpword = new \PhpOffice\PhpWord\PhpWord();
$phpword = $phpword->loadTemplate('test.docx');
$phpword->save('test2.docx');
saveAsで保存。
$phpword = new \PhpOffice\PhpWord\PhpWord();
$phpword = $phpword->loadTemplate('test.docx');
$phpword->saveAs('test2.docx');
最初から定義見とけば早かったな。。。
いろいろと完成だーぽちっと・・・「
」だそうです・・・。
あーって思ってしまうのですがめげずに対処を。
えーと、「ModSecurity」を入れていたので
SecRequestBodyLimitの値を調整。
あと、phpの方でも上限にぶつかっていた・・・。
php.ini
max_input_vars = 5000
どんだけ1画面でPOSTするんだよってな・・・。ちょっと考えなければいけないかも。
FuelPHPのバリデーションって便利で基本的に利用しています。その中で、自動的にルールをがつがつ追加するプログラムを作っていたのですが一部に限って例外が発生して、追加したルールを削除しなければならないということが発生しました。
削除ってあるのかなってバリデーション定義を除いていたところ、「delete_rule」なるものを発見!!FuelPHP 1.7のドキュメントにはありませんでしたが、探していたらFuelPHP 1.8のドキュメントに記載がありました。
↓記述方法は下記のようになるとこと。FuelPHP1.8のドキュメントはこちら
// フィールドから valid_string ルールを取り除く
$fieldset->field('fieldname')->delete_rule('valid_string');
// そして、必須項目の指定を取り除く
$message = $fieldset->field('fieldname')->delete_rule('required', true);
※FuelPHP1.8のドキュメントから抜粋
requiredの項目を取り除くときは「true」も必要とのこと。
テキストの内容を変更したときにJqueryのchangeイベントは発火しないのでその時の対象をメモしておきます。
値変更するときにChangeを付ける。
$('#ID名').val('変更値').change();
キャッチする側ではchangeで受け取る
$('#ID名').change(function() {
console.log("値変更がありました");
});
これでできました。
FuelPHPでビューにHTMLデータをそのまま渡したい時のメモ
■コントローラー側の設定
$this->template->content = \View::forge('index', $data);
$this->template->content->set_safe('html_data', $data['html_data']);
$this->template->contentでいつも通りVIEWのコンテンツを設定したのちにset_safeで生データ渡しの値をセットする。
WordPressの時はTinyMCEのプラグインを入れれば何も気にすることがなくざくざく便利なエディタができると思うのですが、HTMLでカスタマイズして構築しているものはそうもいかないので導入の仕方から設定などメモ的なものを残していきます。
なぜ、TinyMCEかというと他のツールもありますがTinyMCEの方が便利なので・・。
(1)コードを張り付けるだけ
<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
<script>tinymce.init({ selector:'textarea' });</script>
textareaの対してエディタが適用される。

(2)ダウンロードファイルを読み込ませる
<script src="TINYMCEを保存したフォルダ/tinymce.min.js"></script>
<script>tinymce.init({ selector:'textarea' });</script>
※図は同じになるので省略
name=xxxxに対しての場合
<script src="TINYMCEを保存したフォルダ/tinymce.min.js"></script>
<script>tinymce.init({ selector:'[name="xxxxx"]' });</script>
やっぱり英語は苦手です。日本語にします。
(1)下記のURLから日本語をダウンロードする
https://www.tinymce.com/download/language-packages/
(2)TinyMCEのlangsのフォルダの中にダウンロード後に展開したja.jsファイルを入れる
(3)読み込みの設定を修正する
<script src="TINYMCEを保存したフォルダ/tinymce.min.js"></script>
<script>tinymce.init({ selector:'[name="xxxxx"]',language: "ja" });</script>
↓のように日本語になる

ボタンの表示非表示の設定は下記のURLを参考にボタンを調べてください。
https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols
・テーブルを入れてみた
<script>
tinymce.init({
selector:'[name="xxxx"]',
language: "ja",
plugins: "table",
menubar: "table",
toolbar: "table"
});
</script>
あ、テーブルだけになってしまった。上記を見ての通り、プラグインを追記しないと動かないものやメニューやツールバーが変わってしまうので使うものを選択していきましょう。

さてどこまでやるかな・・・・。
<script>
tinymce.init({
selector:'[name="xxxxxxx"]',
language: "ja",
height: 600,
plugins: "table link hr code image media",
menubar: false,
toolbar: "code | undo redo | bold italic underline | alignleft aligncenter alignright | formatselect fontselect fontsizeselect | hr | link unlink | table | image | media"
});
</script>
↓こんな感じにしてみた

あ、テキストカラーが無かった。pluginsに「textcolor」、toolbarに「forecolor backcolor」追加した。
やっぱり、イメージをWordPressみたいにアップしてやりたいな。。。
っていうことで、有料のプラグインを試してみるか・・・。
↓このあたりとか
https://codecanyon.net/item/tinymce-4-image-manager/4744204
うーん、フレームワーク使っているしそのままだとNGだな・・・改造改造・・・。
あれ、あれこれ改良しまくったら原型があまりにもなくなってしまった・・・。
■画像のURLの問題
いざ、画像を挿入!ってやったら相対パスになっていた。
この問題は
「relative_urls : false,」を追加することにより絶対パスで記述
<script>
tinymce.init({
selector:'[name="xxxxxxx"]',
language: "ja",
height: 600,
plugins: "table link hr code image media",
menubar: false,
relative_urls : false,
toolbar: "code | undo redo | bold italic underline | alignleft aligncenter alignright | formatselect fontselect fontsizeselect | hr | link unlink | table | image | media"
});
</script>
PostgreSQLのテーブルの中身をぷちっとデータを空にしたいなって思っていて調べたら便利なクエリがありました。
1.テーブルだけクリアする方法
truncate table 空にしたいテーブル名;
2.シーケンス番号もクリアしたい場合
truncate table 空にしたいテーブル名 restart identity
DELETEでぐりぐりしなくて良いので簡単です。
Fuelphpでも「truncate」の関数あったな・・・