あなたが探しているものに焦点を当てたいと思います。
About$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 には、次のように呼び出されるテンプレート _makeform.php を含めることができます。
<?php include_partial('poster/makeform', array('poster' => $poster, 'form' => $form, 'configuration' => $configuration, 'helper' => $helper)) ?>
もちろん、テンプレートを新しいテンプレートまたはオーバーライドしたテンプレート_makeform.php
としてapps\docdesk\modules\mymodule\template
配置する必要があります。
画像の保存に関するあなたの問題がよくわかりません...画像の保存チェーンと、必要なものをどこでどのように管理できるかを尋ねていると思います。ウィジェットを追加してクラス内に画像をアップロードするには、もちろんカスタマイズするスキーマ フィールドに従って、ウィジェット名として想定されるPosterForm
次のようなスニペットを使用できます。photo
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 が画像をアップロードして保存します!
doSave
次に、必要に応じて関数をオーバーライドして、同じ関数をPosterForm
クラスに追加できます。
protected function doSave($con = null)
{
$delete = $this->getValue('photo_delete');
if ( $delete )
{
// ...
}
$upload = $this->getValue('photo');
if ( $upload )
{
// ...
}
return parent::doSave($con);
}
最後に、画像、つまりファイルを削除するには、オブジェクト、つまり画像名がフィールドである db レコードを削除するときに、次のコードをモデル クラスに配置する必要があります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);
}
これがお役に立てば幸いです。