Page 2 of 2
Re: Guestbook-module: foutmeldingen en onbereikbaar via admi
Posted: Fri May 08, 2015 2:16 pm
by Rolf
Ik heb het voor elkaar geloof ik! Eén bestand op de server vervangen en een template bestand er bij plaatsen en ik kan vanuit de Admin de content voor het GBook Import bestand maken. Ga het eerst nog een paar keer testen en zal het dan op het forum plaatsen!
ps. het werkt ook nog

Ik zal even binnen het dev-team overleggen hoe ik dit het beste kan aanpakken...
ps2 ik kan wellicht beter in een UDT gieten, dan hoef je niet te "hacken"...
@Jos, bedankt voor je mooie GBook CSV import!!!
Re: Guestbook-module: foutmeldingen en onbereikbaar via admi
Posted: Fri May 08, 2015 3:33 pm
by Rolf
Ik heb een bugreport gemaakt voor de developer van de Guestbook module.
http://dev.cmsmadesimple.org/bug/view/10516
Daarnaast heb ik nu een UDT waarmee je zonder te hacken de content van de Guestbook module kunt exporteren naar een Import bestand voor de GBook module.
Wordt vervolgd!
Re: Guestbook-module: foutmeldingen en onbereikbaar via admi
Posted: Fri May 08, 2015 3:43 pm
by mev
Wow wat goed Rolf!
'k Kijk geduldig uit naar de work-around

Grtjs, willemijn
Re: Guestbook-module: foutmeldingen en onbereikbaar via admi
Posted: Fri May 08, 2015 3:47 pm
by timdebuurman
Alvast erg bedankt voor de moeite die je doet., Rolf.
Als ik nu wel de Guestbook nog werkend en wel heb en zo'n export wil maken?
IK heb geprobeerd om de code die gemaakt had in een template van de Guestbook te zetten.
De output op ht scherm was inderdaad zoals verwacht.
Nu kan ik die data wel kopiëren en plakken in bijvoorbeeld kladblok.
Dan opslaan als een .csv of .xml bestand, maar bij het importeren pakt hij m dan niet.
gr Tim
Re: Guestbook-module: foutmeldingen en onbereikbaar via admi
Posted: Sat May 09, 2015 6:49 pm
by Rolf
Deze UDT plaatst de inhoud van de Guestbook module in Gbook import formaat. Je kunt het sjabloon naar eigen wens aanpassen in de code. Kopieer de gegenereerde content in een .csv bestand en je kunt het importeren in Gbook.
Code: Select all
$id = isset($params['id']) ? $params['id'] : '1';
$db = cmsms()->GetDb();
$query = "SELECT * FROM ".cms_db_prefix()."module_guestbook WHERE approved='1' AND guestbook=" . $id . " ORDER BY date ASC";
$result = $db->Execute($query);
$entries = Array();
while ($result && $row = $result->FetchRow())
{
$i = count($entries);
$entries[$i]['sender'] = $row['sender'];
$entries[$i]['e_mail'] = $row['e_mail'];
$entries[$i]['homepage'] = $row['homepage'];
$entries[$i]['country'] = $row['country'];
$entries[$i]['location'] = $row['location'];
$entries[$i]['message'] = $row['message'];
$entries[$i]['date'] = $row['date'];
$entries[$i]['ip_address'] = $row['ip_address'];
}
$smarty->assign('entries', $entries);
$smarty_data = '{foreach from=$entries item=entry}
{strip}
"{$entry.sender}{if !empty($entry.location)} - {$entry.location}{/if}{if !empty($entry.country)} {$entry.country}{/if}";"{$entry.e_mail}";"";"{$entry.message|strip_tags|escape}{if !empty($entry.homepage)} (website: {$entry.homepage}){/if}";"{$entry.ip_address}";"{$entry.date|date_format:"%Y-%m-%d %T"}"<br />
{/strip}
{/foreach}';
$smarty->display('eval:'.$smarty_data);
Plaats in een verborgen pagina {export_guestbook} of bijv. {export_guestbook id=2}
De Guestbook module slaat line-breaks niet op, in de export zijn deze dus weg. Zelf vind ik het niet zo'n probleem geloof ik... Wellicht dat iemand de UDT nog wat kan verbeteren?
Hoe dan ook het werkt wél en zonder de module te hacken! Je loopt dus nooit risico dat je content verliest.
grt. Rolf
Re: Guestbook-module: foutmeldingen en onbereikbaar via admi
Posted: Tue Jun 09, 2015 10:43 am
by timdebuurman
Vandaag pas toegepast.
Werkt goed zo.
Enige is dat ik het bestand moest opslaan als .xml om te kunnen importeren.
Re: Guestbook-module: foutmeldingen en onbereikbaar via admi
Posted: Wed Jun 24, 2015 1:38 pm
by Rolf
Ik heb hem nu zelf ook toegepast op mijn eigen website met 100+ gastenboek reacties en het werkte perfect.
Hieronder de laatste versie van de UDT. Line breaks worden vertaald in de tekst als
<br />. Je zult deze wel even handmatig moeten aanpassen in de reacties... Maar verder alles perfect!
@timdebuurman Het werkt wél met .csv, máár als je vanuit de GBook module een exportbestand wil opzoeken staat in de Windows popup standaard het bestandstype XML geselecteerd... Het duurde bij mij ook even voordat ik dat door had. Zet je deze op "Alle bestanden" dan kun je het bestand wel vinden en importeren.
Groet, Rolf
Code: Select all
$id = isset($params['id']) ? $params['id'] : '1';
$db = cmsms()->GetDb();
$query = "SELECT * FROM ".cms_db_prefix()."module_guestbook WHERE approved='1' AND guestbook=" . $id . " ORDER BY date ASC";
$result = $db->Execute($query);
$entries = Array();
while ($result && $row = $result->FetchRow())
{
$i = count($entries);
$entries[$i]['sender'] = $row['sender'];
$entries[$i]['e_mail'] = $row['e_mail'];
$entries[$i]['homepage'] = $row['homepage'];
$entries[$i]['country'] = $row['country'];
$entries[$i]['location'] = $row['location'];
$entries[$i]['message'] = $row['message'];
$entries[$i]['date'] = $row['date'];
$entries[$i]['ip_address'] = $row['ip_address'];
}
$smarty->assign('entries', $entries);
$smarty_data = '{foreach from=$entries item=entry}
"{$entry.sender}{if !empty($entry.location)} - {$entry.location}{/if}{if !empty($entry.country)} {$entry.country}{/if}";"{$entry.e_mail}";"";"{$entry.message|strip_tags|nl2br|escape}{if !empty($entry.homepage)} (website: {$entry.homepage}){/if}";"{$entry.ip_address}";"{$entry.date|date_format:"%Y-%m-%d %T"}"<br />
{/foreach}';
$smarty->display('eval:'.$smarty_data);
Re: Guestbook-module: foutmeldingen en onbereikbaar via admi
Posted: Sun Feb 21, 2016 8:20 pm
by Rolf
Ik heb op mijn blog een tutorial gemaakt van de bovenstaande methode om Guestbook posts over te brengen naar de Gbook module
"Moving posts from Guestbook to the Gbook module"
http://www.cmscanbesimple.org/blog/movi ... ook-module