Page 1 of 2

niet verversen van een pagina

Posted: Wed May 22, 2013 2:25 pm
by Virusjuh
Ik heb inmiddels al veel posts gezien maar nog antwoord hierover
mischien hebben jullie dat, of dat het mogelijk is of niet.

het is eigenlijk heel simpel.
Bij elke klik op een link ververst de pagina
en wat ik dus wil is dat als je op een link drukt dat ie gewoon de {content} laad en niet de hele pagina ververst.

ik heb op de header een webspeler staan die dus ook elke klik ververst en opnieuw start. en dat wil ik graag voorkomen.

Kan iemand mij hiermee helpen?
Groetjes.

Re: niet verversen van een pagina

Posted: Wed May 22, 2013 2:55 pm
by Rolf
Je kunt de CGSimpleSmarty module gebruiken om de content van losse pagina's te laden vanuit een template of een andere pagina...
get_page_content($alias[,$block][,$assign])

Returns the text of a specific content block of another page.

Arguments:

$alias - The page alias to extract content from.
[$block] - (optional) The name of the content block in the specified page. If this variable is not specified the value of the default content block (content_en) is assumed.
[$assign] - (optional) The name of a variable to assign the results to.


Example:

The 'second' block of the 'about' page is {cgsimple::get_page_content('about','second','foo')}{eval var=$foo}
Met een toggle, tabs of een anchor kun je dan wisselen tussen content zonder de pagina opnieuw te laden...

Re: niet verversen van een pagina

Posted: Wed May 22, 2013 3:34 pm
by Virusjuh
Dankjewel voor de reactie, ik ga uit proberen en laat het weten of het gelukt is.

Re: niet verversen van een pagina

Posted: Wed May 22, 2013 5:00 pm
by Virusjuh
ik kom er nog niet helemaal uit.
ik heb de module geinstaleerd en dan verder
er is weinog docu te vinden hierover.

gaat dit wel over wat ik zoek?
dus wat vroeg veel gebruikt is. frames
linkerkant menu, je klikt op de link dat ie hem dan in het rechter kolom laad, zonder een refresh. en zo met alle linken.

ik begrijp niet veel van deze codes, moet ik nu juist iets plaatsen op de doel pagina's moet ik iets veranderen in me thema, & bestaande linken.

Re: niet verversen van een pagina

Posted: Wed May 22, 2013 7:18 pm
by Rolf
Ik heb er even mee gespeeld, het is iets wat ik altijd al een keer wilde proberen ;)
Demo: https://www.cmscanbesimple.org/demo/tab ... ing-jquery

Dit heb ik gebruikt voor de tabs: https://www.cmscanbesimple.org/blog/tab ... ing-jquery
Maar je kunt ook scrollen met https://www.cmscanbesimple.org/blog/smo ... -an-anchor Je zult dan wel de hoogte van het content blok minimaal een schermhoogte moeten maken.
Of met http://dev.cmsmadesimple.org/projects/contenttoggle ...

De pagina aliassen van die onderliggende pagina's zijn subpage-1, subpage-2 en subpage-3.

Code: Select all

<div class="tabs">
<ul class="tabNavigation">
  <li class="tab-1"><a href="#tab-1">Page 1</a></li>
  <li class="tab-2"><a href="#tab-2">Page 2</a></li>
  <li class="tab-3"><a href="#tab-3">Page 3</a></li>
</ul>
     
<div id="tab-1">
  <h4>Content Page #1</h4>
  {cgsimple::get_page_content('subpage-1','','subpage_1')}{eval var=$subpage_1}
</div>

<div id="tab-2">
  <h4>Content Page #2</h4>
  {cgsimple::get_page_content('subpage-2','','subpage_2')}{eval var=$subpage_2}
</div>

<div id="tab-3">
  <h4>Content Page #3</h4>
  {cgsimple::get_page_content('subpage-3','','subpage_3')}{eval var=$subpage_3}
</div>

</div>
Hier zal ik ook nog maar eens een blogpost van maken :)

Re: niet verversen van een pagina

Posted: Wed May 22, 2013 8:46 pm
by velden
Ik denk dat wat jij wilt waarschijnlijk niet mogelijk is met cmsms. Tenzij je kunt volstaan met één enkel {content} block.

Het is dan mogelijk om via ajax telkens de {content} van een andere pagina op te vragen en deze in te laden.

Er zijn zover ik weet al meerdere discussies over geweest en die komen allemaal op hetzelfde uit: of ajax met een enkele {content} block of de manier zoals Rolf mooi demonstreert.

[edit]
Ik twijfel nu zelf, wellicht kun je via Ajax de hele pagina opvragen en daar m.b.t. bijv. jQuery enkel het stuk halen dat je wél wilt vervangen.

Re: niet verversen van een pagina

Posted: Wed May 22, 2013 9:29 pm
by Virusjuh
ik zal laten zien wat ik bedoel.
http://www.de-jukebox.nl
als je klikt op een link ververst de hele pagina,
maar hij moet juist die pagina openen in {content}
waar haal nu ook alles laat zien maar dan zonder verversen,
dan zie je ook gelijk wat ie met de webspeler doet

Re: niet verversen van een pagina

Posted: Thu May 23, 2013 6:48 am
by velden
Ik begrijp wel wat je bedoelt: keyword is 'ajax'. Daarmee wordt dynamisch (dus pas als de link geklikt wordt) de inhoud van een andere pagina opgehaald en getoond. Zonder pagina refresh/load.

Rolf zijn manier doet het anders; die laadt alle pagina's direct al in, maar toont er slechts één. Uiteraard is dit minder efficient, maar wellicht het best haalbare met cmsms.

Re: niet verversen van een pagina

Posted: Thu May 23, 2013 9:02 am
by Virusjuh
ik had ook al iets gelezen met ajax ja dat het wel mogelijk moest zijn.
maar ik heb denk ik niet de juiste te pakken nog

Re: niet verversen van een pagina

Posted: Thu May 23, 2013 10:56 am
by velden
punt is dat de meeste oplossingen werken met &showtemplate=false in the url. Maar dan krijg je dus enkel de inhoud van {content} terug.

Heb je echter een template waarin je meerdere {content block=''} gebruikt of {content_image} of wat dan ook, dan krijg je dat dus NIET te zien. Althans, die inhoud ververst niet.

Ik denk sowieso dat het geen eenvoudige klus gaat worden.

Re: niet verversen van een pagina

Posted: Thu May 23, 2013 11:33 am
by Virusjuh
ja ik heb het thema om gezet naar cmssm is geen bestaand thema voor dit.
enige wat ik nog kan bedenken is iframes in content laden.
maar dan zit je weer met iframes.

en ja ik gebruik meerdere content blokken.
ook heb ik al geprobeerd om de linken via div te laten lopen, maar dat lukt nog niet echt(via ajax)

Re: niet verversen van een pagina

Posted: Thu May 23, 2013 12:02 pm
by Virusjuh
ik zie namelijk ook, dat je een doelframe(target) kunt instellen bij opties van een link.

alleen dat sommige thema's dit niet ondersteunen, moet ik ergens een tag plaatsen waardoor dit wel werkt? mischien is dat wel de oplossing

Re: niet verversen van een pagina

Posted: Thu May 23, 2013 1:08 pm
by Virusjuh
het is me inmiddels deels gelukt.
zoals je kunt zien op de pagina in het eerste menu laad ie alles netjes in het vak waar het moet.
alleen doordat de url niet veranderd weet de cms er geen raad mee (ivm titles) en laat ie de laatste {content} ook zien dat moet ik even zien op te lossen.

dit is gedaan dmv ajax

Re: niet verversen van een pagina

Posted: Thu May 23, 2013 1:17 pm
by velden
alleen doordat de url niet veranderd weet de cms er geen raad mee (ivm titles) en laat ie de laatste {content} ook zien dat moet ik even zien op te lossen.
Don't blame CMS. Dat zijn dus van die dingen die jij zelf moet oplossen en dat is vervelend omdat je enkel de inhoud van het content block te terug krijgt.

Maar je zou dergelijke inhoud al kunnen verwerken in de links tijdens het opbouwen van het menu.

Ander interessant dingetje is: SEO.
Het zou veel mooier zijn als je normale url's in het menu zou gebruiken en deze met jQuery ajax geschikt maakt.

Maar dat zijn details, het begin is gemaakt!

Re: niet verversen van een pagina

Posted: Thu May 23, 2013 1:33 pm
by Virusjuh
het begin is er ja.

over de titles gesproken momenteel doe ik het zo

Code: Select all

 <h3><span>{title}</span> </h3>
Alleen doordat er geen url meekomt is het lastig oppakken, Dus ik ben aan het bekijken hoe ik dat toch voor elkaar kan krijgen, en anders moet ik het gewoon handmatig boven alle pagina's zetten en de h3 op de pagina's weglaten.

Over SEO, dat is een hele goede, want het mooiste is als het idd kan, ik zou alleen niet weten hoe :).

het content gebeuren is deels opgelost.
ik doe het zo

Code: Select all

<div id="contentarea">{content}</div>
dus als ik de ajax geef gebruikt ie contentarea, gebruik ik normale url(met ververs) dan gewoon in content.

Mischien dat er toch nog ergens een oplossing is met ajax


ik heb hem iets veranderd door

Code: Select all

<li><a href="index.php?page=agenda" onclick="javascript:ajaxpage('index.php?page=agenda&showtemplate=false', 'contentarea'); return false;">Agenda</a></li>
hierdoor laat ie in de status bar wel de url zien maar voert bij click ajax uit. nu nog kijken of hij hem in de url bar kan laten zien zonder dat ie er iets mee doet