Page 1 of 1
Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Sun Jul 15, 2012 5:36 pm
by brentnl
Ik ben bezig met een website die geheel op één pagina geladen word. Door middel van jQuery kan je door de pagina heen scrollen.
Halverwege pagina heb ik een gastenboek ingebouwd (CMSMS Module). Wanneer je een bericht typed en op submit drukt, of een andere pagina van het gastenboek wil bekijken, herlaad hij de pagina. Omdat heel mijn site op één lange pagina staat, moet hij gelijk mee scrollen.
Ik heb al uitgevogeld dat dit werkt wanneer er #reacties achter de URL gevoegd wordt, maar ik weet niet welke code van de module 'Guestbook' ik daarvoor aan moet passen.
Ik moet dus eigenlijk weten in welke .php file de submit button wordt aangemaakt en de knoppen voor een volgende pagina.
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Sun Jul 15, 2012 5:48 pm
by Rolf
brentnl wrote:Ik moet dus eigenlijk weten in welke .php file de submit button wordt aangemaakt en de knoppen voor een volgende pagina.
Als je niet weet in welke .php bestand dit wordt gedaan, dan lijkt het me niet verstandig daarin te gaan sleutelen... Na het doen van module upgrades ga je ook nat...
Maar afgezien daarvan, volgens de forumregels in dit forum mag je geen code hacks bespreken... Nietsvermoedende lezers kunnen zonder enige kennis de codehacks op eigen site toepassen en gigantisch in de problemen komen...
Rolf
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Sun Jul 15, 2012 6:35 pm
by deactivated010521
----------
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Sun Jul 15, 2012 6:59 pm
by brentnl
Rolf wrote:brentnl wrote:Maar afgezien daarvan, volgens de forumregels in dit forum mag je geen code hacks bespreken... Nietsvermoedende lezers kunnen zonder enige kennis de codehacks op eigen site toepassen en gigantisch in de problemen komen...
Oh, daar was ik niet van op de hoogte, mijn excuses.
Waar kan ik zoiets dan wel bespreken?
arnoud wrote:Je kan proberen om met Smarty de form tag te filteren, of dit het gewenste resultaat geeft zou je moeten testen.
Ik neem aan dat ik dit bij het Formuliersjabloon moet aanpassen? Het lijkt geen effect te hebben. En hoe zou ik deze methode toe kunnen passen voor de paginering?
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Sun Jul 15, 2012 8:05 pm
by deactivated010521
----------
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Mon Jul 16, 2012 7:34 am
by brentnl
arnoud wrote:Ik heb op het toevoegen van een #anchor aan de form tag op een demo site uitgeprobeerd en het werkt naar behoren.
Content -> Guestbook -> [Templates] = Form Template
Zoek: {$formstart} en pas de filter toe.
{capture assign="old_pagealias"}{$page_alias}{/capture}
{capture assign="new_pagealias"}{$page_alias}#reacties{/capture}
{$formstart|replace:$old_pagealias:$new_pagealias}
<fieldset>
<label for="{$titles.id}sender_name">{$titles.sender}: (*)</label>{$inputs.sender}<br ....
Heb het er nu instaan, alleen als ik op submit druk blijft hij naar de bovenkant van de pagina gaan, en ook de URL in de adresbalk lijkt niet te veranderen. Kan het te maken hebben met dat mijn gastenboek op de homepage staat en er dus sowieso geen page_alias bovenin de adresbalk staat?
Verder is zo'n custom cycle misschien wel de makkelijkste optie, alleen is het dan niet zwaar dat alle posts tegelijk geladen moeten worden?
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Mon Jul 16, 2012 9:06 am
by deactivated010521
----------
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Mon Jul 16, 2012 9:40 am
by brentnl
arnoud wrote:
Je kunt het page_alias idee natuurlijk los laten en hardcoded de form url veranderen.
Heb ik gedaan, maar mijn action blijft ongewijzigd...
Code: Select all
<form id="mfc44bmoduleform_1" class="cms_form" action="http://www.domein.nl/" method="post">
Denk dat mijn old_pagealias niet goed staat, maar ik zou niet weten wat dat anders moet zijn, omdat het de homepage betreft.
Het is 1 sjabloon, met meerdere content blokken.
En mijn formuliersjabloon ziet er zo uit:
Code: Select all
{* Frontend Guestbook Entry Form *}
<div class="cms-guestbook-div-insert">
{if !empty($guestbook->Messages)}
{foreach from=$guestbook->Messages item=msg}
{$msg}<br />
{/foreach}
{else}
{if $guestbook->GetShowSmileys()}{$smileys}{/if}
{if !empty($guestbook->Errors)}
{foreach from=$guestbook->Errors item=error}
<strong>{$error}</strong><br />
{/foreach}
{/if}
{capture assign="old_pagealias"}{/capture}
{capture assign="new_pagealias"}http://www.enjoyteenage.nl#reacties{/capture}
{$formstart|replace:$old_pagealias:$new_pagealias}
<fieldset>
<label for="{$titles.id}sender_name">{$titles.sender}: (*)</label>{$inputs.sender}<br />
<label for="{$titles.id}sender_homepage">{$titles.homepage}:</label>{$inputs.homepage}<br />
</fieldset>
<fieldset>
<label for="counter">{$titles.chars_remaining}</label>
<__script__ type="text/javascript">
<!--
{literal}
function addEvent(elm, evType, fn, useCapture)
// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko
// by Scott Andrew
{
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
return true;
} else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
} else {
elm['on' + evType] = fn;
}
}
{/literal}
{if $wysiwyg}
{literal}
function FCKeditor_OnComplete(editorInstance) {
addEvent(editorInstance.EditorDocument, 'keyup', checkLen, false);
}
{/literal}
{/if}
{if !$wysiwyg}
{literal}
function addListeners() {
var messageinput = document.getElementById('guestbook_message_input');
addEvent(messageinput, 'keyup', checkLen, false);
}
{/literal}
{/if}
{literal}
function checkLen() {
{/literal}
var maxLen = {$max_textleng};
// var sTooLong = 'Insert maximal ' + maxLen + ' characters!';
var sTooLong = "{$toolong}";
{if $wysiwyg}
var oEditor = FCKeditorAPI.GetInstance('{$id}message');
{literal}
var oDOM = oEditor.EditorDocument;
var iLength;
if (document.all) // Internet Explorer.
{
iLength = oDOM.body.innerText.length;
}
else // Gecko.
{
var r = oDOM.createRange();
r.selectNodeContents(oDOM.body);
iLength = r.toString().length;
}
var counter = document.getElementById('counter');
if(iLength>maxLen)
{
alert(sTooLong);
oDOM.body.innerHTML = oEditor.GetXHTML(false).substring(0,maxLen);
counter.value=0;
}
else
{
counter.value=maxLen-iLength;
}
{/literal}
{else}
{literal}
var messageinput = document.getElementById('guestbook_message_input');
var counter = document.getElementById('counter');
var txt=messageinput.value;
if(txt.length>maxLen)
{
alert(sTooLong);
messageinput.value=txt.substring(0,maxLen);
counter.value=0;
}
else
{
counter.value=maxLen-txt.length;
}
{/literal}
{/if}
{literal}
}
{/literal}
{if !$wysiwyg}
addEvent(window, 'load', addListeners, false);
{/if}
//-->
</__script>
<input type="text" name="counter" id="counter" value="{$counter}" size="4" /><br />
<label{if $wysiwyg} for="guestbook_message_input"{/if}>{$titles.message}: (*)</label><br />
{if $wysiwyg}
{$wysiwyg}
{else}
{$inputs.message}<br />
{/if}
</fieldset>
<fieldset>
{if $guestbook->GetShowCaptcha()}
{$titles.captcha}: (*) {$inputs.captcha}<br />
{$captcha}
{/if}
{$inputs.submit} {$inputs.cancel}
</fieldset>
{$formend}
{/if}
</div>
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Mon Jul 16, 2012 12:42 pm
by deactivated010521
----------
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Mon Jul 16, 2012 1:20 pm
by brentnl
arnoud wrote:brentnl wrote:
Het is 1 sjabloon, met meerdere content blokken.
Dat zou ik niet doen. Maak gebruik van de kracht van CMSMS en ga niet voor een semi-statische website.
Er komt een moment dat er extra pagina's toegevoegd moeten worden, de (menu)volgorde aangepast moet worden, voor elke pagina wijziging je navigatie en ankers aanpassen is ook geen pretje.
Met losse pagina's die je op 1 pagina laat verschijnen heb je veel meer flexibiliteit. Routines om dit voor elkaar te krijgen hoef je niet zelf te bedenken. Met een CGSimpleSmarty aanroep in een GCB is dit met een paar regels code voor elkaar.
Code: Select all
{$cgsimple->get_children('how-cmsms-works','','sub_items')}
Enfin: Je gaat voor de hardcoded manier achter de 'root_url' al dan niet met '/' wil je '#reacties' plaatsen:
Code: Select all
{capture assign="old_pagealias"}http://www.enjoyteenage.nl{/capture}
{capture assign="new_pagealias"}http://www.enjoyteenage.nl#reacties{/capture}
{$formstart|replace:$old_pagealias:$new_pagealias}
ad1) Ik weet hoe een Gastenboek template eruit ziet. Post voor de duidelijkheid alleen de snippet die van toepassing is op je probleem.
1. zal de site even kort online zetten; kan je zien dat het lastig is om het dynamisch te houden met dit ontwerp. Als er een extra pagina bij komt zal het ontwerp namelijk ook aangepast moeten worden, dus dan is het handmatig bijwerken van het menu en het sjabloon maar een kleinigheidje.
2. Als je nu een reactie plaatst maakt hij
http://www.enjoyteenage.nl/#reacties/ ipv
http://www.enjoyteenage.nl#reacties.
EDIT: heb het al, code moest worden:
Code: Select all
{capture assign="old_pagealias"}http://www.enjoyteenage.nl/{/capture}
{capture assign="new_pagealias"}http://www.enjoyteenage.nl/#reacties{/capture}
3. Excuses van het guestbook-sjabloon, wilde alleen zeker weten dat het hetzelfde sjabloon betrof.
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Mon Jul 16, 2012 1:33 pm
by deactivated010521
----------
Re: Extra atribuut toevoegen achter URL's van 'Guestbook'
Posted: Mon Jul 16, 2012 1:53 pm
by brentnl
arnoud wrote:..ziet er kleurrijk uit.
Ja doelgroep is 12t/m15 jarige, dus dat wil wel
Wat betreft die paginering moet ik nog even kijken wat ik doe; die anchor is niet te doen dus? Dan ga ik kijken of het met jQuery op te lossen is, en laad ik gewoon max 100 reacties in. Oudere reacties kunnen dan simpelweg niet gelezen worden.
Hier trouwens nog een issue mbt die website haha.
http://forum.cmsmadesimple.org/viewtopi ... 13&t=61985