I am writing a ZF Application that generates emails as certain actions occur, e.g. when a user signs up. My default mail settings are set in a Mail Resource plugin.
My question is, what's the best approach to managing the email templates? They could be text files, .ini, or in the code itself.
It seems to me that text files would be the easiest, but I'm always cautious about introducing another kind of file type that needs to be managed. Has anyone tried using .ini? How does this work?
You can store your email template in following directory
Create an view script like : /views/emails/template.phtml
<body>
<?php echo $this->var1; ?>
<h1>Welcome</h1>
<?php echo $this->var2; ?>
</body>
Please see this is already post on stackoverflow this might be helpfull for you How can I make email template in Zend Framework? and another solution also posted What is the best way to use Email Template in Zend/PHP
I would say - definitively not in the code! It will just make your code mixed up with representation, which you want to show to the user. Plus if your site is multi-language - it will make you to have even bigger mess... Good idea would be to use some kind of template engine. As example: How can I make email template in Zend Framework?
Related
Upon a form a submission, I wish to determine the time that a Laravel form (built using the Laravel Collective HTML package) was rendered to the user.
I need to check this date upon submission for a variety of reasons.
I have a large existing project and am considering the best way to get this date. I was reading the CSRF middleware (since this token is already included in all forms) to see if it can be extracted from that, perhaps in another middleware adding something like form_generated_date to the request.
It looks like a bit of a stretch, if possible at all. So now I am looking at adding a custom field to every form.
I would like this to be included in all forms, just as the Form::open() method will add the CSRF token. I found information on adding my own macros, but not about extending this method.
Does anyone know if it's possible to get the date from a CSRF token? Or how (or where the documentation is) to extend the Form::open() method.
The Form::open() method looks to be in the FormBuilder.php file (https://github.com/LaravelCollective/html/blob/2f6dc39ab3655724a615fe8a652d8b7f04fc9ac6/src/FormBuilder.php).
This file can be found in /vendor/laravelcollective/html/src/FormBuilder.php
You should be able to add a new hidden form field to the open method, bearing in mind that this will be overwritten in any updates. Not really recommended, but will achieve what you are looking for.
So here's the problem. We have some big dojo forms created using Zend_Dojo_Form. The problem is that validation, while working per element, does not work on any of the submit buttons. Due to the inflexibility of the standard layouts, we're compelled to use viewscripts.
I thought I had the whole thing working fine, that was until I needed to make sure that when you went from page to page of the multipage form using the quick links that it submitted the current page (with validation.)
I noticed that when I force-fired the click event on the submit button, no validation was occurring (or rather, there was no preventing the form submission if there were invalid values. Those values just were not submitted.)
So I looked at some tutorials where I found that the form is validated by calling
dijit.byId('form-id').validate();
or the shortcut I was looking for, primarily (originally)
dijit.byId('form-id').submit();
Neither of which are functions, since the byId is returning undefined. What this means is our viewscript - or whatever the whole process is - generating dojo forms with Zend is partly voodoo anyway - does not actually generate the dojo form dijit.
So how does one do this in a viewscript? As in, what sort of php calls or attribs does one attach to the form tag to get it to be interpreted by Dojo to be the basis for a form dijit?
Here is the code from the viewscript:
<form action="<?= $this->escape($this->element->getAction()) ?>"
method="<?= $this->escape($this->element->getMethod()) ?>"
id="case-record-form">
This sounds very similar to a problem I had. If I rendered the form by echoing it, validation worked, but when using a viewscript it would not. I discovered that when using a viewscript, Zend does not add the form to its zendDijits array, so you have to do it manually.
Add something like:
$script = 'zendDijits.push({"id":"MyFormId","params":{"dojoType":"dijit.form.Form"}})';
$this->headScript()->appendScript($script);
at the top of the viewscript.
I was wondering what is the best practice for creating forms in Wordpress? As a developer I hesitate to use a plugin like CForms, but I can understand why someone would like to use it. In the end I want to know the following:
What is the best practice for creating forms in Wordpress? (Custom HTML/CSS with Javascript and PHP validation or just using a specific aspect of the Wordpress API?)
I don't use any part of the WordPress API for forms. You could automatically grab the name and e-mail address out of the cookie WordPress creates when someone leaves a comment, if you want to try to auto-populate some fields.
An easy way to handle forms is to use Page Templates. That lets you create a new PHP file for a specific page, overriding the default page template of the theme. Then you can simply have the form post to itself and this one page template handles the processing as well.
http://codex.wordpress.org/Pages#Page_Templates
A lot of what's available for WordPress in the way of addins, and what gets a lot of attention, is stuff that I find makes little use if you have programming and general web skills. Almost always they seem to (necessarily) overgeneralize a requirement with a zillion options and configuration requirements because they are first of all designed for non- or barely-programmers.
Just learn the fundamental paradigms, scratch your head and wonder why nothing is consistently abstracted and/or encapsulated, get over it, and use what you already know about php and HTML-based forms. WordPress doesn't add much in the way of either tools or constraints.
I find the Widget feature applies usefully to most everything these days, and Forms is a candidate. But that's my own WordPress viewing prism - YMMV.
What do you mean by "in Wordpress"? Do you just mean placing the form HTML in a Wordpress template? Or storing data collected in the Wordpress DB? If you just want to create a form on your site, there's nothing Wordpress-specific to worry about. I believe there's some special Wordpress data facilities you can use if you're creating a widget or plugin or whatever they're called now. But if you're not, just create the HTML, and point it at a target URL that processes the values and puts them in a DB, Wordpress or otherwise. That target URL could be a separate PHP resource, or the same page. If it's the same page, you just need to include your PHP somewhere in the main Wordpress flow.
I dont know much about joomla but I have a problem.
I started reading for the chromoform and it is a very nice pugin.
I created a form which I can see in the form manager and also I can view in the url.
but I want ot integrate it to an existing content.
I have a content which contains text, photos etc..
The content is editable with tinymce plugin.
And I want to integrate this form also.
One way to integrate would be to copy the html code and paste in the conent but then if I change the form component the changes would not be also in the conent.
is there a way to include the created form in the content?
Or which is the best one?
Anybody any idea?
Thanx,
Granit
If you also have the chrono plugin installed & published, you can add a form into content (such as an article) using the following syntax:
{chronocontact}form_name{/chronocontact}
This allows you to place the form anywhere within the article - you can preface the form with content (such as a heading) ....
You probably want to use the Chronocontact module (mod_chronocontact), which is provided with ChronoForms. This allows you to insert any ChronoForms form into any module location. The Joomla 1.5 download for this module is here.
Then you just need to define a module location in your template, and create a mod_chronocontact module in that location, with your forms name set up. You'll find having a couple of module locations defined immediately before and after your main content in the template is normally handy, like so:
<jdoc:include type="modules" name="beforecontent"/>
<jdoc:include type="component" />
<jdoc:include type="modules" name="aftercontent"/>
I know it's possible to use CSS to add page breaks to web pages, for when they're printed.
I also know CSS support in HTML emails is poor.
So, is there a way to generate a page break when an HTML email is printed? Or given the variety of email clients out there, is that just a daft question?
See this article on CSS support in HTML emails it gives a list of what is and what is not possible.
Also you can validate your CSS here: http://getfractal.com/ once you have made any changes and it will inform you which clients are compatible.
I'd say do it the standard CSS way. It'll work for some e-mail reading agents. There's no other way to hint at page breaks. If it's really important that people can print the message then maybe make the message available through the web too and tell the recipient to print that one.