ありがとうございます!
参考になります。
このポストのあと、aclissさんとも相談していたのですが、
CIF形式でブロックの内容を作ってCIF Importerでインポート出来ないか、という話をしていました。
佐野さんのアイデアも、検討してみます。
ありがとうございます!
Block Designer Proで作成したブロックに、CSVやXMLなどで、BuklImportしたい
2017年5月22日 at 17:55
いつもお世話になってます。
掲題のとおりでございます。
ページの一括インポートは、CSV→XML(CIF)→CIF Importerでなんとかなるのですが、
そのページの中に埋め込まれているBDPに対しても、一括でデータをインポートする仕組みが欲しいです。
(これまでは、1ページ1ページちくちく登録していました…)
何か良いやり方ないでしょうか?
エリアに対して、ブロックを入れることはCIFでも出来たはずなので、同じような仕組みで出来ないか、と考えておりますが…
タグ:
Your post has been saved and will be published after approval by the forum moderator.
佐野(翠灯舎)
Re: Block Designer Proで作成したブロックに、CSVやXMLなどで、BuklImportしたい
アドオンを使ってドン!という感じではないのですが実現されたい内容と近いかも・・・
下記、ざっくりですが。
=====
csvの行に持つデータをこんな感じで設定します。
(エリア名とブロックハンドルは固定になるのでcsvに入れなくても良さそう)
・対象ページのID
・対象ページ内でブロックを挿入したいエリア名
・ブロックハンドル(BDPでブロック作った際に登録したもの)
・各設定項目のハンドル(項目のname属性に入っているもの。例はMainTtl、SubTtl項目をテキストエリアで用意、Imgを画像フィールドで用意した想定)
このcsvを使って、
1.csvから適当なパースライブラリで内容を取得
2.取得した内容を回してブロックを登録する
=====
BDPで作ったブロックもデフォルトでインストール済みのブロックと同様にaddBlock()を使ってデータの登録が可能でした。
データが大量な場合は2の処理を自動実行ジョブで回すと安心だと思います。
本家フォーラムのこの辺りを参考にしました。
http://www.concrete5.org/community/forums/customizing_c5/programmatically-add-a-block-to-a-page-area
http://documentation.concrete5.org/tutorials/concrete5-7-add-pagelist-block-programmatically-to-page
ファイルを新規にファイルマネージャーへ登録してさらにブロックに入れたい場合は
csvに登録したい画像のパスも登録して\Concrete\Core\File\Importer()を使ってパス指定でファイルを登録。
登録成功時に\Concrete\Core\File\Versionのインスタンスが返ってくるので
それを使って画像フィールドに値を渡すことでブロックへ登録できるかと思います。
↓こちらはページ属性バージョンですが、新規ファイルの投入はこれでいけると思います。
http://gist.github.com/YuzuruSano/4b86434c2bf95054462cfde2f9255b1d
参考になりましたら幸いです。
※もっといい方法あれば誰か教えてください!