0

RefineryCMS の管理インターフェースをオーバーライドすることは可能ですか? 現在、RefineryCMS + Portfolio プラグインに基づくオンライン ポートフォリオに取り組んでいます。私は基本的に、悲しいことに欠落している画像のタイトルと説明を追加して表示したいと考えています。幸いなことに、この種の機能を管理領域にハッキングする方法の説明を見つけましたが、「vendor/plugins」フォルダー内のこれらのビュー ファイルをオーバーライドする方法がわかりません。

ここに私が見つけた指示へのリンクがあります:

http://groups.google.com/group/refinery-cms/browse_thread/thread/929d7462cf075189?pli=1

このガイドは Rails 2 と RefineryCMS の以前のバージョン向けに書かれていることを知っています。

前もって感謝します。

...なぜ彼らはまだこれらの機能をプラグインに実装しなかったのか、本当に不思議です。

4

1 に答える 1

2

これらがデフォルトでポートフォリオ拡張機能に追加されない理由に対する答えは、ポートフォリオの背後にあるコア チームには、それらが役立つケースがなかったということです。このニーズに遭遇した人々が機能を改善または追加するために、パッチに依存しています。まだ誰も実際に解決策を考え出していない未解決の問題があります。

実装自体に関しては。上書きしたいファイルを上書きするには、次のようにタスク「bundle exec rake renamery:override」(この投稿を参照として使用) を使用する必要があります。

bundle exec rake refinery:override view=portfolio/_main_image
bundle exec rake refinery:override view=portfolio/show

これにより、テンプレートが app/views/portfolio/ に配置され、内容を変更できるようになります。

また、移行構文を Rails 2 から Rails 3 に変更する必要があるため、「script/generate」ではなく「rails generate」になります。

画像拡張機能はセキュリティのためにデフォルトで「attr_accessible」を使用するため、config/application.rb のような場所で次のコードを使用する必要があります。

# Make the title and body fields added to Image accessible for mass assignment
config.to_prepare do
  Image.send :attr_accessible, :title
  Image.send :attr_accessible, :body
end

これについて明確にしたい場合、または質問に十分に答えられなかった場合はお知らせください。詳しく説明します.

編集:

画像のバックエンド ビューをオーバーライドする場合は、同じプロセスに従いますが、バックエンド ビューについては次のとおりです。

bundle exec rake refinery:override view=admin/images/_form

同じ形式でフィールドを追加するだけです。

<div class='field'>
  <%= f.label :title %>
  <%= f.text_field :title %>
</div>
<div class='field'>
  <%= f.label :body %>
  <%= f.text_area :body, :class => 'wymeditor widest' %>
</div>

既に attr_accessible コードを追加しているため、問題なく保存されます。

これがあなたが望んでいたものではない場合はお知らせください。

フィル

于 2011-12-06T18:28:16.747 に答える