public function delete(Application $app, Request $request, $id)
{
$this->isTokenValid($app);
$DeviceType = $app['eccube.repository.master.device_type']->find(DeviceType::DEVICE_TYPE_PC);
$Block = $app['eccube.repository.block']->findOneBy(array('id' => $id, 'DeviceType' => $DeviceType));
if (!$Block) {
$app->deleteMessage();
return $app->redirect($app->url('admin_content_block'));
}
// ユーザーが作ったブロックのみ削除する
// テンプレートが変更されていた場合、DBからはブロック削除されるがtwigファイルは残る
if ($Block->getDeletableFlg() > 0) {
$tplDir = $app['config']['block_realdir'];
$file = $tplDir . '/' . $Block->getFileName() . '.twig';
$fs = new Filesystem();
if ($fs->exists($file)) {
$fs->remove($file);
}
$app['orm.em']->remove($Block);
$app['orm.em']->flush();
$event = new EventArgs(array('Block' => $Block), $request);
$app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_CONTENT_BLOCK_DELETE_COMPLETE, $event);
$app->addSuccess('admin.delete.complete', 'admin');
\Eccube\Util\Cache::clear($app, false);
}
return $app->redirect($app->url('admin_content_block'));
}