Refine pinnwand backend behavior and fix frontend template rendering
This commit is contained in:
@@ -5,16 +5,16 @@ declare(strict_types=1);
|
||||
namespace Eiswurm\ContaoPinboardBundle\Controller\FrontendModule;
|
||||
|
||||
use Contao\CoreBundle\Controller\FrontendModule\AbstractFrontendModuleController;
|
||||
use Contao\CoreBundle\Twig\FragmentTemplate;
|
||||
use Contao\FilesModel;
|
||||
use Contao\ModuleModel;
|
||||
use Contao\Template;
|
||||
use Eiswurm\ContaoPinboardBundle\Model\PinboardModel;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
final class PinboardController extends AbstractFrontendModuleController
|
||||
{
|
||||
protected function getResponse(Template $template, ModuleModel $model, Request $request): Response
|
||||
protected function getResponse(FragmentTemplate $template, ModuleModel $model, Request $request): Response
|
||||
{
|
||||
$collection = PinboardModel::findBy(
|
||||
['published = ?'],
|
||||
@@ -46,9 +46,9 @@ final class PinboardController extends AbstractFrontendModuleController
|
||||
}
|
||||
}
|
||||
|
||||
return $this->render('@Contao/frontend_module/pinnwand.html.twig', [
|
||||
'entries' => $notes,
|
||||
'module' => $model,
|
||||
]);
|
||||
$template->set('entries', $notes);
|
||||
$template->set('module', $model);
|
||||
|
||||
return $template->getResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,31 +5,30 @@ declare(strict_types=1);
|
||||
namespace Eiswurm\ContaoPinboardBundle\EventListener\DataContainer;
|
||||
|
||||
use Contao\DataContainer;
|
||||
use Contao\Database;
|
||||
use Contao\Input;
|
||||
|
||||
final class PinboardTimestampListener
|
||||
{
|
||||
public function __invoke(DataContainer $dataContainer): void
|
||||
/**
|
||||
* @param array<string, mixed> $values
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function onBeforeSubmit(array $values, DataContainer|null $dataContainer = null): array
|
||||
{
|
||||
if (null === $dataContainer->id) {
|
||||
return;
|
||||
}
|
||||
|
||||
$timestamp = time();
|
||||
$isCopyAction = 'copy' === Input::get('act');
|
||||
|
||||
$record = Database::getInstance()
|
||||
->prepare('SELECT dateAdded FROM tl_pinnwand WHERE id = ?')
|
||||
->limit(1)
|
||||
->execute($dataContainer->id);
|
||||
|
||||
if (!$record->numRows) {
|
||||
return;
|
||||
if ($isCopyAction || empty($values['dateAdded'])) {
|
||||
$values['dateAdded'] = $timestamp;
|
||||
}
|
||||
|
||||
$dateAdded = (int) $record->dateAdded;
|
||||
if ($isCopyAction || empty($values['dateModified'])) {
|
||||
$values['dateModified'] = $timestamp;
|
||||
}
|
||||
|
||||
Database::getInstance()
|
||||
->prepare('UPDATE tl_pinnwand SET dateAdded = ?, dateModified = ?, tstamp = ? WHERE id = ?')
|
||||
->execute($dateAdded > 0 ? $dateAdded : $timestamp, $timestamp, $timestamp, $dataContainer->id);
|
||||
$values['tstamp'] = $timestamp;
|
||||
|
||||
return $values;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user