Trying to use UDT "Popup" but it's throwing Smarty errors.

For discussion and questions related to CMS Specific templates and stylesheets (CSS), and themes. or layout issues. This is not a place for generic "I don't know CSS issues"
Post Reply
User avatar
pixelita
Power Poster
Power Poster
Posts: 386
Joined: Sun Sep 16, 2007 3:07 am
Location: Houston, Texas USA

Trying to use UDT "Popup" but it's throwing Smarty errors.

Post by pixelita »

I am not sure if this is the right forum for this. I am trying to use a code snippet found here:
http://wiki.cmsmadesimple.org/index.php ... pt_code.29

It's a popup box with inline javascript. I copied the supplied contents for the UDT, created the UDT entitled 'popup,' and put this code in my template where I wanted the popup link, all per the instructions:

Code: Select all

<div id="email"><h3>Subscribe To Our Newsletter!</h3>
<p class="email">{popup url='newsletter-signup' width=480, height=320}</p>
</div>
The page I am referencing, 'newsletter-signup' has also been created; it is using a bare bones template, and here is the content of that page [it's a really badly formatted HTML Mailchimp template, BTW]:

Code: Select all

<!-- This page will be served in a javascript popup box using the POPUP UDT -->
<!-- Begin MailChimp Signup Form -->
<div id="mc_embed_signup">
<!-- MODIFY THIS FOR HFC MAILCHIMP SUBSCRIPTION CODE -->
<form 
action="http://honolulufish.us1.list-manage.com/subscribe/post?u=7732b9e1cb1
aff6f36fec7a38&id=966a2ce22c" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">
<fieldset>
<legend><h2 id="mc_embed_h2">Sign Up For Our Newsletter!</h2></legend>
<div class="mc-field-group">
<label for="mce-EMAIL">Email Address:</label>
<input type="text" value="" name="EMAIL" class="required email" id="mce-EMAIL">
</div>
<div class="mc-field-group">
<label for="mce-FNAME">First Name:</label>
<input type="text" value="" name="FNAME" class="required" id="mce-FNAME">
</div>
<!-- HIDE RADIO BUTTON FOR NOW 
<div class="mc-field-group">
    <label class="input-group-label">Preferred Email Format: </label>
    <div class="input-group">
    <ul><li><input type="radio" value="html" name="EMAILTYPE" id="mce-EMAILTYPE-0"><label for="mce-emailtype-0">html</label></li>
<li><input type="radio" value="text" name="EMAILTYPE" id="mce-emailtype-1"><label for="mce-EMAILTYPE-1">text</label></li>
<li><input type="radio" value="mobile" name="EMAILTYPE" id="mce-emailtype-2"><label for="mce-EMAILTYPE-2">mobile</label></li>
</ul>
    </div>
-->
</div>
<div id="mce-responses">
	<div class="response" id="mce-error-response" style="display:none"></div>
	<div class="response" id="mce-success-response" style="display:none"></div>
</div>
<div class="submitform"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="btn"></div>
</fieldset>	
</form>
</div>
<__script__  type="text/javascript">
{literal}
try {
    var jqueryLoaded=jQuery;
    jqueryLoaded=true;
} catch(err) {
    var jqueryLoaded=false;
}
if (!jqueryLoaded) {
    var head= document.getElementsByTagName('head')[0];
    var script= document.createElement('script');
    script.type= 'text/javascript';
    script.src= 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js';
    head.appendChild(script);    
}
{/literal}
</__script>
<__script__ type="text/javascript" src="http://downloads.mailchimp.com/js/jquery.form-n-validate.js">
</__script>

<__script__ type="text/javascript">
{literal}
var fnames = new Array();var ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';var err_style = '';
try{
    err_style = mc_custom_error_style;
} catch(e){
    err_style = 'margin: 1em 0 0 0; padding: 1em; background: ERROR_BGCOLOR none repeat scroll 0% 0%; font-weight: bold; float: left; z-index: 1; width: 80%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: ERROR_COLOR;';
}
var head= document.getElementsByTagName('head')[0];
var style= document.createElement('style');
style.type= 'text/css';
if (style.styleSheet) {
  style.styleSheet.cssText = '.mce_inline_error {' + err_style + '}';
} else {
  style.appendChild(document.createTextNode('.mce_inline_error {' + err_style + '}'));
}
head.appendChild(style);
$(document).ready( function($) {
  var options = { errorClass: 'mce_inline_error', errorElement: 'div', onkeyup: function(){}, onfocusout:function(){}, onblur:function(){}  };
  var mce_validator = $("#mc-embedded-subscribe-form").validate(options);
  options = { url: 'http://honolulufish.us1.list-manage.com/subscribe/post-json?u=7732b9e1cb1
aff6f36fec7a38&id=966a2ce22c&c=?', type: 'GET', dataType: 'json', contentType: "application/json; charset=utf-8",
                beforeSubmit: function(){
                    $('#mce_tmp_error_msg').remove();
                    $('.datefield','#mc_embed_signup').each(
                        function(){
                            var txt = 'filled';
                            var fields = new Array();
                            var i = 0;
                            $(':text', this).each(
                                function(){
                                    fields[i] = this;
                                    i++;
                                });
                            $(':hidden', this).each(
                                function(){
                                	if ( fields[0].value=='MM' && fields[1].value=='DD' && fields[2].value=='YYYY' ){
                                		this.value = '';
									} else if ( fields[0].value=='' && fields[1].value=='' && fields[2].value=='' ){
                                		this.value = '';
									} else {
	                                    this.value = fields[0].value+'/'+fields[1].value+'/'+fields[2].value;
	                                }
                                });
                        });
                    return mce_validator.form();
                }, 
                success: mce_success_cb
            };
  $('#mc-embedded-subscribe-form').ajaxForm(options);

});
function mce_success_cb(resp){
    $('#mce-success-response').hide();
    $('#mce-error-response').hide();
    if (resp.result=="success"){
        $('#mce-'+resp.result+'-response').show();
        $('#mce-'+resp.result+'-response').html(resp.msg);
        $('#mc-embedded-subscribe-form').each(function(){
            this.reset();
    	});
    } else {
        var index = -1;
        var msg;
        try {
            var parts = resp.msg.split(' - ',2);
            if (parts[1]==undefined){
                msg = resp.msg;
            } else {
                i = parseInt(parts[0]);
                if (i.toString() == parts[0]){
                    index = parts[0];
                    msg = parts[1];
                } else {
                    index = -1;
                    msg = resp.msg;
                }
            }
        } catch(e){
            index = -1;
            msg = resp.msg;
        }
        try{
            if (index== -1){
                $('#mce-'+resp.result+'-response').show();
                $('#mce-'+resp.result+'-response').html(msg);            
            } else {
                err_id = 'mce_tmp_error_msg';
                html = '<div id="'+err_id+'" style="'+err_style+'"> '+msg+'</div>';
                
                var input_id = '#mc_embed_signup';
                var f = $(input_id);
                if (ftypes[index]=='address'){
                    input_id = '#mce-'+fnames[index]+'-addr1';
                    f = $(input_id).parent().parent().get(0);
                } else if (ftypes[index]=='date'){
                    input_id = '#mce-'+fnames[index]+'-month';
                    f = $(input_id).parent().parent().get(0);
                } else {
                    input_id = '#mce-'+fnames[index];
                    f = $().parent(input_id).get(0);
                }
                if (f){
                    $(f).append(html);
                    $(input_id).focus();
                } else {
                    $('#mce-'+resp.result+'-response').show();
                    $('#mce-'+resp.result+'-response').html(msg);
                }
            }
        } catch(e){
            $('#mce-'+resp.result+'-response').show();
            $('#mce-'+resp.result+'-response').html(msg);
        }
    }
}
{/literal}
</__script>
I know this code works because it's working on the live site; nothing has been altered. I just wonder if the javascript code it contains is not playing nice with the UDT's javascript code.

Also, I see that the Smarty error mentions:
string(75) "Smarty error: overlib: attribute 'text' or 'inarray' or 'function' required"
Is this a reference to line 75 in the UDT code?

And here is the testbed page. To access the page, you'll need these login credentials: client/letmein ...
http://honfish.mytestbed.com

It's at the bottom; you can't miss that error message!

Thanks!
Submit your site to the We Love CMSMS showcase
staartmees
Power Poster
Power Poster
Posts: 1049
Joined: Wed Mar 19, 2008 4:54 pm

Re: Trying to use UDT "Popup" but it's throwing Smarty error

Post by staartmees »

I get a whole bunch of errors

/home/mytestbe/public_html/honfish/lib/smarty/plugins/function.popup.php:97 - trigger_error
/home/mytestbe/public_html/honfish/tmp/templates_c/15^%%DF^DF7^DF7A623F%%content%3Ahome-left.php:10 - smarty_function_popup
/home/mytestbe/public_html/honfish/lib/smarty/Smarty.class.php:1263 - include
/home/mytestbe/public_html/honfish/plugins/function.content.php:121 - fetch
/home/mytestbe/public_html/honfish/tmp/templates_c/%%F2^F28^F28811AA%%tpl_body%3A68.php:53 - smarty_cms_function_content
/home/mytestbe/public_html/honfish/lib/smarty/Smarty.class.php:1263 - include
/home/mytestbe/public_html/honfish/index.php:269 - fetch
string(43) "Smarty error: [popup] unknown parameter url" /home/mytestbe/public_html/honfish/lib/smarty/plugins/function.popup.php:102 - trigger_error
/home/mytestbe/public_html/honfish/tmp/templates_c/15^%%DF^DF7^DF7A623F%%content%3Ahome-left.php:10 - smarty_function_popup
/home/mytestbe/public_html/honfish/lib/smarty/Smarty.class.php:1263 - include
/home/mytestbe/public_html/honfish/plugins/function.content.php:121 - fetch
/home/mytestbe/public_html/honfish/tmp/templates_c/%%F2^F28^F28811AA%%tpl_body%3A68.php:53 - smarty_cms_function_content
/home/mytestbe/public_html/honfish/lib/smarty/Smarty.class.php:1263 - include
/home/mytestbe/public_html/honfish/index.php:269 - fetch
string(75) "Smarty error: overlib: attribute 'text' or 'inarray' or 'function' required"
dropster
Forum Members
Forum Members
Posts: 57
Joined: Wed Oct 10, 2007 11:40 pm

Re: Trying to use UDT "Popup" but it's throwing Smarty error

Post by dropster »

I know this isnt really what you asked for, but why not use PrettyPopin and make a form with formbuilder, create a page put that form in and then call it with showtemplate="false" or make a specific template for that ?

I have used that and it works nicely.
User avatar
pixelita
Power Poster
Power Poster
Posts: 386
Joined: Sun Sep 16, 2007 3:07 am
Location: Houston, Texas USA

Re: Trying to use UDT "Popup" but it's throwing Smarty error

Post by pixelita »

If it works with mailchimp, fine. I am just trying to integrate the mailchimp signup form. It does bother me that this code snip doesnt work, tho.

How do I find this pretty pop in you are talking about?
Submit your site to the We Love CMSMS showcase
Post Reply

Return to “Layout and Design (CSS & HTML)”