私はよくあなたが探しているものについて焦点を当てることを願っています。
について$configuration
と$helper
、あなたがcache\mypplication\dev\modules\autoMymodule\actions\actions.class.php
機能preExecute()
に見つけることができるようにそれらを作成するためにも使用されます。
$this->configuration = new mymoduleGeneratorConfiguration();
$this->helper = new mymoduleGeneratorHelper();
これらのクラスはapps\docdesk\modules\mymodule\lib
です。ベースクラスはcache\mypplication\dev\modules\autoMymodule\lib
で見つけることができます。これらの基本クラスを見て、どのように使用されているか、そして管理ジェネレータが利用可能な設定関数とヘルパ関数を理解してください。あなたの新しいアクションに対処するための
、私はあなたが私は2つのシナリオを想像してみましょう開発している機能を知りません。あなたのスニペットで呼び出されたテンプレート_form.php
をオーバーライドしてカスタムウィジェットをアップロード/作成する機能を切り替えるフォームのみを使用することができます。新しいアクションなど、これはあなたがフォローしている方法です。個別のアクション、フォーム、および必要なすべてのテンプレート。だからあなたのmakenewSucces.phpに、あなたがそれぞれの新しいまたはオーバーライド一つとしてapps\docdesk\modules\mymodule\template
でテンプレート_makeform.php
を配置する必要があります。もちろん、
<?php include_partial('poster/makeform', array('poster' => $poster, 'form' => $form, 'configuration' => $configuration, 'helper' => $helper)) ?>
と呼ばれるテンプレート_makeform.phpを含めることができます。
私はよく、画像の節約についてのあなたの悩みを理解していない...私はあなたが、どのように、どこで、あなたが必要なものを管理することができ、画像の保存チェーンのために求めているとします。あなたは私たちがphoto
などのウィジェットの名前を仮定し、このようなスニペットを使用することができ、あなたのPosterForm
クラス内で画像をアップロードするためにウィジェットを追加するに は、スキーマのフィールドphoto: { type: varchar(255), required: true }
によると、それはカスタマイズすることはもちろんである:
public function configure()
{
$photo = $this->getObject()->getPhoto(); // get the photo name
$photo = sfConfig::get('sf_upload_image_dir').$photo;
$this->widgetSchema['photo'] = new sfWidgetFormInputFileEditable(array(
'label' => 'Photo',
'file_src' => $photo,
'is_image' => true,
'edit_mode' => !$this->isNew(),
'delete_label' => 'check to remove',
'template' => '<div>%input%<br/><br/>%file%<br/><br/>%delete%<p>%delete_label%<br/><p></div>'
));
$this->validatorSchema['photo'] = new sfValidatorFile(array(
'required' => true,
'path' => sfConfig::get('sf_upload_image_dir'),
'mime_categories' => array('web_images' => array(
'image/jpeg',
'image/pjpeg',
'image/png',
'image/x-png'
)),
'mime_types' => 'web_images',
));
$this->validatorSchema['photo_delete'] = new sfValidatorPass();
}
注意upload_image_dir
の設定は%SF_UPLOAD_DIR%/images/
です。Symfonyが画像をアップロードして保存します。
次に、あなたがあなたのPosterForm
クラスではまだ同じものを入れて、あなたのニーズに応じて、doSave
機能を無効にすることができます:あなたがオブジェクトを削除する場合
protected function doSave($con = null)
{
$delete = $this->getValue('photo_delete');
if ($delete)
{
// ...
}
$upload = $this->getValue('photo');
if ($upload)
{
// ...
}
return parent::doSave($con);
}
最後に、あなたの画像を削除するには、それは、ファイルです、それはイメージ名がフィールドで、あなたのモデルクラスPoster
にこのコードを配置する必要がありデシベルレコードです:
public function delete(PropelPDO $con = null) // using Propel
{
$photo = sfConfig::get('sf_upload_image_dir').$this->getPhoto();
if (file_exists($photo))
unlink($photo);
return parent::delete($con);
}
私は、これはあなたを助けることができると思います。