Překreslení snippetu v komponentě přes vlastní presenter
- Damo
- Člen | 60
Koukám do docu, ale nejsem z toho moc chytry, jde mi hlavne o to, ze link
mi vytvari url na jiny presenter nez chci, a donutit ho jaksi nejde, mám to
udělaný funkčně, ale celý je to hrozně krkolomný. Určitě to jde nějak
lépe. Poradíte?
Jde o web zalozeny na naja.
mám komponentu filesExplorer
, ktera ruzne zanoruje latte do
sebe a jedno z nich je snippet dataFileDetails
.
celou tu komponentu ovlada javascript
{block #filesExplorer}
<div
class="{$className}"
id="fileExplorer{$unique}"
data-component="{$componentName}"
>
<div class="row g-3 flex-between-center">
...
...
...
{include detail.latte}
...
...
...
</div>
</div>
<script>
$(function() {
$("#fileExplorer" + {$unique}).extendedFileExplorer({
detailHref: {$presenter->link('Files:detail', [
'do' => "{$control->name}-showDetails",
'id' => "ID_PLACEHOLDER"
])}
});
});
</script>
{/block}
v extendedFileExplorer (js soubor)
mám pak volaní naja ajax ve valstní komponenete, ale to je jedno, dulezite
je to
ze aktualne to zavola hezky
/admin/files/detail/77?do=phoenixFilesExplorer-showDetails
$.fn.mcNajaAjax('GET', options.detailHref.replaceAll("ID_PLACEHOLDER", selectedFiles[0]), null, {
forceRedirect: true
});
Ta url mne nasmeruje na Presenter Files
v
AdminModule
na action detail
Ovsem ta action ma dummy latte, ktera vlstbně nic nedela, pak to preskoci na komponentu do handle showDetails
public function actionDetail(): void {
$this->template->setFile($this->template->templatePath . "/Website/Files/dummy.latte");
}
pak to preskoci do handle v komponente
public function handleShowDetails(): void {
$this->template->setFile(dirname(__FILE__) . "/detail.latte");
$this->template->id = $this->getPresenter()->getParameter('id');
$this->redrawControl('dataFileDetails');
}
jde mi o to generovani url
kdyz pouziji
$control->showDetails!
tak mi vytvori url /admin?do.......
a v presenteru Admin to pak musi zpracovat cely actionDefault, což jaksi nechci
Otazka tedy, lze nejak dobre vygenerovat nejaky url na /admin/files/detail/<id> a to nejak preskoci na ten handle v komponente
protoze kdyz bych vratil rovnou controlRedraw() primo v action ve FilesPresneter tak on mi posle snippet bez vyplnene komponenty tedy
snippet--dataFileDetails
namísto
snippet-filesExplorer-dataFileDetails
Editoval Damo (6. 9. 22:51)