Ajaxove nacteni celeho presenteru do sablony
- Jan Mikeš
- Člen | 771
Zdravim, predem upozornuji ze jsem v nette mirne pokrocily a prozatim ne
zadny profesional.
Vim, ze v ramci jednoho presenteru neni problem s invalidovanim snippetu a ze
se daji ruzne menit viewy.
Potreboval bych neco podobneho, ale na urovni presenteru.
Na ukazku slape momentalne bez nette, ale rad bych web do nej predelal. Pro priblizeni problemu: polozky hlavniho menu by byly jednotlive presentery (SpolecnostPresenter, ProduktyPresenter). Momentalne funguje jak ajaxove tak i bez js.
Jednotlive hlavni sekce nelze udelat jako pohledy jednoho presenteru z toho duvodu, ze kazda ze sekci bude mit jeste sve vlastni snippety a dalsi ajaxova volani primo v sobe (napr sekce Spolecnost leve menu → Profil, Filozofie)
Momentalne je to reseno cistym php + jquery. Nacitani prvku z menu je reseno takto:
<script>
var menu_provadim = false;
var menu_aktualni;
$( "#menu li a").live("click", function(event){
var url = $(this).attr("href");
event.preventDefault();
if(menu_provadim == false && menu_aktualni != url){
menu_aktualni = url;
menu_provadim = true;
$('<div id="ajax-spinner"></div>').ajaxStop(function() { $(this).remove(); }).appendTo("#footer p");
$("#content").toggle('slide', { direction: "left" }, 1000, function(){
$.get(url, {"jqueryCall": "true"}, function(data){
$("#content").html(data).toggle('slide', { direction: "right" }, 1250, function(){
var titulek = $("h1").html();
$(document).attr("title", titulek);
menu_provadim = false;
});
}, 'html');
});
}
});
</script>
Rikam si, ze kdyz to slape tak jak slape, tak je mozna zbytecne predelavat do nette, ale jde o jakousi sebereflexi a touhu neco zvladnout.
Snad je vse srozumitelne a pochopite co potrebuji.
Dokazal by mi s tim nekdo pomoci/poradit?
edit: overeni zda jde o ajax nebo ne, jak muzete vycist z js provadim predavanim GETu „jqueryCall“ a v sablone overuji ± takto:
<?php
if($_GET["jqueryCall"] != "true"){
require_once("../template/index.php");
}
else if($_GET["jqueryCall"] == "true"){
obsah();
}
?>
Editoval Lexi (8. 12. 2011 15:48)
- Jan Mikeš
- Člen | 771
Tak toto mi nefunguje, nevim proc. Uplne zakladni vec, zadne slozitosti.
v sablone mam:
<div id="content">
{snippet main}
{include #content}
{/snippet}
</div>
A v presenteru:
<?php
public function actionDefault(){
if($this->isAjax())
$this->invalidateControl();
}
?>
js mam prilozen spravne, ve firebugu v konzoli vidim, ze se json poslal uspesne, je tam snipet s daty ktere tam byt maji, ale obsah snippetu se neprekresli
viz. ukazka: www.vividsolutions.cz/romanskuplik/ (nahore vpravo odkaz
„roman skuplik“ ma byt ajaxovy)
urcit jde o nejakou drobnost a ja nejsem schopny ji najit…
Editoval Lexi (15. 12. 2011 16:43)
- newPOPE
- Člen | 648
Letmo som pozrel, a nevsimol som si, ze by si niekde updatoval snippety v JS.
Sami sa neupdatnu, skus pozriet niekde v doplnkoch https://componette.org/search/?…