History: How To - using email address of current user
Source of version: 16 (current)
Copy to clipboard
!!Need I needed to use the email address of the current user to fill out a form field. (long story as to why) !!Explanation There exist some ((Wiki Argument Variables|Wiki Argument Variables)) that allow one to use some variables that are part of the tiki current instance. For example ~123~~123~user}} will display the userid of the current user: {{user}}. My first idea was to implement the same thing for {{email}} to display the email id of the current user. It is generally considered a bad idea to insert email addresses into wiki or web pages as spammers can scrape and use them. I believe this is why the {{email}} idea is frowned upon. So thanks to Jonny's suggestion I came up with the following solution instead. !!Method # Add the following custom.php to your tiki language directory, ''mine is in lang/en/ or lang/en-uk/'' +{CODE(colors=bash)} <?php // custom.php pmc 2011/05/11 global $user; if (!empty($user)) { global $userlib, $smarty; $email=$userlib->get_user_email($user); //create smarty variable assign it the value of the current user's email address $smarty->assign('curremail', $email); } {CODE} # To use the smarty variable ##using ((PluginSmarty|Smarty plugin)) ++{CODE(colors=bash)} {SMARTY(name=>eval, var=>"{$curremail}")}{SMARTY} {CODE} ##used in a smarty template ++{CODE(colors=bash)} email id is {$curremail} {CODE} !!Example This is how I used it via ((PluginSmarty|smarty plugin)) and ((PluginDiv|div plugin)) and ((PluginJQ|jquery plugin)) to pre-fill an html form field which is within ((PluginHtml|html plugin)). It is shown here in three parts that must be within the same page. Extraneous information has been removed &/or replaced with ''blah'' or ''...''. *html ~lt~form> +{CODE(colors=bash)} {HTML()} <form method="post" action="http://blahblah..."> Your E-mail address: <input type="text" name="email" size="30" , id=emailid> ... </form> {HTML()} {CODE} *retrieve field value, assign it an id for use in jquery +{CODE(colors=bash)} {DIV(class=hidden, id=emailactual)} {SMARTY(name=>eval, var=>"{$curremail}")}{SMARTY} {DIV} {CODE} *insert the field value in the form +{CODE(colors=bash)} {JQ()} if (!$jq("#emailid").val()) { $jq("#emailid").val($("#emailactual").text()); } {JQ} {CODE}