Page 1 of 2

Extra field uit CGBlog doorgeven aan UDT en uitlezen [solved

Posted: Fri May 04, 2012 12:05 pm
by Gregor
Hallo,

In CGBlog heb ik een extra filed gefinieerd, nl. tags. Ik zou deze tags graag gebruiken in tweet met een #ervoor zodat de UDT die wordt aangeroepen bij het submitten van een artikel ook de hashtags maakt.

Bijv. als tags heb ingevuld:
IJmuiden, Scheveningen, Genaker

De tweet zou dan aangevuld worden met:
IJmuiden #Scheveningen #Genaker

Daarvoor moet op een of andere manier het 'Extra field' worden doorgeven aan de UDT en de inhoud van het extra field worden omgezet dat de komma's eruit gaan en er een # voor elk woord wordt gezet.

Iemand een suggestie of idee hoe ik dit kan aanpakken? Dit borduurt voort op de UDT die Arnoud o.a. heeft gemaakt om een artikel te tweeten.

Thnks, Gregor

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 2:14 pm
by Jos
Als je een UDT hebt die je bijvoorbeeld aanroept met {myUDT}

Dan kun je daarvan maken: {myUDT hashtag=$myfield}

In je php-code in de udt is de waarde van die variabele dan beschikbaar als $params['hashtag']

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 2:20 pm
by Gregor
Dank je voor je reactie Jos.

De UDT wordt vanuit de eventhandler aangeroepen als ik een CGBlog artikel submit. Voor zover ik weet kan ik daar geen parameters aan meegeven. Toch?

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:18 pm
by Rolf
Je zou zou iets kunnen doen:

Code: Select all

{$parameter|replace:",":" #"}
Vervang de komma door spatie hekje

grt. Rolf

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:22 pm
by Gregor
Dank je Rolf, daar ga ik mee stoeien.

Ben nu met een query bezig om bij het betreffende cgblog_id ook de tags te halen die in het extra field zijn gedefinieerd.....

Grtz., Gregor

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:31 pm
by Rolf
Leuk, had nog een ander ideetje. Zoek op het internet en kom hier terecht :) http://forum.cmsmadesimple.org/viewtopic.php?t=35241

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:32 pm
by Gregor
Rolf wrote:Je zou zou iets kunnen doen:

Code: Select all

{$parameter|replace:",":" #"}
Vervang de komma door spatie hekje

grt. Rolf
Ik herlees je suggestie Rolf en vraag me nu af hoe je dan met het eerste woord omgaat; daar staat geen komma ;)

Grtz., Gregor

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:36 pm
by Rolf
Ja, dat had ik ook al bedacht... Vandaar mijn tweede reactie ;)
Ik kan wel wat bedenken om er een komma of een hekje voor te zetten, maar dan wordt niet echt "mooi" meer... ;)

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:38 pm
by Rolf
Ik kan trouwens ook zeggen dat dit de vraag niet was :D
Gregor wrote:De tweet zou dan aangevuld worden met:
IJmuiden #Scheveningen #Genaker
Hier heeft de eerste ook geen hekje ;)

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:38 pm
by Gregor
Zijstapje, hoe kan ik smarty in een UDT gebruiken???

Grtz., Gregor

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:39 pm
by Jos
De variabele zou als het goed is vanuit het event al beschikbaar moeten zijn. De vraag is natuurlijk: hoe roep je hem aan ;)

moment... zoeken we op...

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:39 pm
by Gregor
Rolf wrote:Ik kan trouwens ook zeggen dat dit de vraag niet was :D
Gregor wrote:De tweet zou dan aangevuld worden met:
IJmuiden #Scheveningen #Genaker
Hier heeft de eerste ook geen hekje ;)
Zo zeg, is me daar toch iemand even scherp!! :)
Moet natuurlijk zijn:
#IJmuiden #Scheveningen #Genaker

Grtz., Gregor

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:40 pm
by Gregor
Ik heb de volgende query in elkaar gesleuteld:

Code: Select all

function fetch_cgblog_extra_field($cgblog_id) {
    $db = cmsms()->GetDB();
    
    $query = "SELECT value
                FROM ". cms_db_prefix(). "module_cgblog_fieldvals
                WHERE cgblog_id = $cgblog_id AND fielddef_id = 
                    (SELECT id
                        FROM ". cms_db_prefix(). "module_cgblog_fielddefs
                        WHERE name = 'Tags')";

    $cgblog_tags =  $db->GetOne($query);

    return $cgblog_tags;
}
En die werkt :)

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:51 pm
by Gregor
Nu alleen nog het ombouwen van $cgblog_tags naar afzonderlijke woorden met een # ervoor...

Re: Extra field uit CGBlog doorgeven aan UDT en uitlezen

Posted: Fri May 04, 2012 3:52 pm
by Jos
En dat is dan ook de enig juiste manier (al kan de query zelf wellicht iets korter mbv een join)
Helaas worden de custom fields niet meegezonden met het event.
Als ik in de code kijk, dan zie ik namelijk alleen de volgende velden:

Code: Select all

@$this->SendEvent('CGBlogArticleAdded', array(
	'cgblog_id' => $articleid, 
	'categories' => $sel_categories, 
	'title' => $title, 
	'content' => $content, 
	'summary' => $summary, 
	'status' => $status, 
	'start_time' => $startdate, 
	'end_time' => $enddate, 
	'useexp' => $useexp, 
	'extra' => $extra
));