Jump to content

Add a email form in a product page


fabrizio.brignone

Recommended Posts

Ok, i have copied che code from the contact-form.tpl but i have a problem....the variable isn't initializated so i can't get the value.

 

This is the code attached to product.tpl

<!-- /MODULE Block contact infos -->
			<form action="{$request_uri|escape:'html':'UTF-8'}" method="post" class="contact-form-box" enctype="multipart/form-data">
				<fieldset>
				<h3 class="page-subheading">{l s='Info'}</h3>
				<div class="clearfix">
					<div class="col-xs-12 col-md-3">
						<div class="form-group selector1">
							<label for="id_contact">{l s='Subject Heading'}</label>
						{if isset($customerThread.id_contact)}
								{foreach from=$contacts item=contact}
									{if $contact.id_contact == $customerThread.id_contact}
										<input type="text" class="form-control" id="contact_name" name="contact_name" value="{$contact.name|escape:'html':'UTF-8'}" readonly="readonly" />
										<input type="hidden" name="id_contact" value="{$contact.id_contact}" />
									{/if}
								{/foreach}
						{else}
							<select id="id_contact" class="form-control" name="id_contact">
								<option value="0">{l s='-- Choose --'}</option>
								{foreach from=$contacts item=contact}
									<option value="{$contact.id_contact|intval}" {if isset($smarty.request.id_contact) && $smarty.request.id_contact == $contact.id_contact}selected="selected"{/if}>{$contact.name|escape:'html':'UTF-8'}</option>
								{/foreach}
							</select>
						</div>
							<p id="desc_contact0" class="desc_contact"> </p>
							{foreach from=$contacts item=contact}
								<p id="desc_contact{$contact.id_contact|intval}" class="desc_contact contact-title" style="display:none;">
									<i class="icon-comment-alt"></i>{$contact.description|escape:'html':'UTF-8'}
								</p>
							{/foreach}
						{/if}
						<p class="form-group">
							<label for="email">{l s='Email address'}</label>
							{if isset($customerThread.email)}
								<input class="form-control grey" type="text" id="email" name="from" value="{$customerThread.email|escape:'html':'UTF-8'}" readonly="readonly" />
							{else}
								<input class="form-control grey validate" type="text" id="email" name="from" data-validate="isEmail" value="{$email|escape:'html':'UTF-8'}" />
							{/if}
						</p>
						{if !$PS_CATALOG_MODE}
							{if (!isset($customerThread.id_order) || $customerThread.id_order > 0)}
								<div class="form-group selector1">
									<label>{l s='Order reference'}</label>
									{if !isset($customerThread.id_order) && isset($is_logged) && $is_logged}
										<select name="id_order" class="form-control">
											<option value="0">{l s='-- Choose --'}</option>
											{foreach from=$orderList item=order}
												<option value="{$order.value|intval}"{if $order.selected|intval} selected="selected"{/if}>{$order.label|escape:'html':'UTF-8'}</option>
											{/foreach}
										</select>
									{elseif !isset($customerThread.id_order) && empty($is_logged)}
										<input class="form-control grey" type="text" name="id_order" id="id_order" value="{if isset($customerThread.id_order) && $customerThread.id_order|intval > 0}{$customerThread.id_order|intval}{else}{if isset($smarty.post.id_order) && !empty($smarty.post.id_order)}{$smarty.post.id_order|escape:'html':'UTF-8'}{/if}{/if}" />
									{elseif $customerThread.id_order|intval > 0}
										<input class="form-control grey" type="text" name="id_order" id="id_order" value="{$customerThread.id_order|intval}" readonly="readonly" />
									{/if}
								</div>
							{/if}
							{if isset($is_logged) && $is_logged}
								<div class="form-group selector1">
									<label class="unvisible">{l s='Product'}</label>
									{if !isset($customerThread.id_product)}
										{foreach from=$orderedProductList key=id_order item=products name=products}
											<select name="id_product" id="{$id_order}_order_products" class="unvisible product_select form-control"{if !$smarty.foreach.products.first} style="display:none;"{/if}{if !$smarty.foreach.products.first} disabled="disabled"{/if}>
												<option value="0">{l s='-- Choose --'}</option>
												{foreach from=$products item=product}
													<option value="{$product.value|intval}">{$product.label|escape:'html':'UTF-8'}</option>
												{/foreach}
											</select>
										{/foreach}
									{elseif $customerThread.id_product > 0}
										<input class="form-control grey" type="text" name="id_product" id="id_product" value="{$customerThread.id_product|intval}" readonly="readonly" />
									{/if}
								</div>
							{/if}
						{/if}
						{if $fileupload == 1}
							<p class="form-group">
								<label for="fileUpload">{l s='Attach File'}</label>
								<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
								<input type="file" name="fileUpload" id="fileUpload" class="form-control" />
							</p>
						{/if}
						
					</div>
					<div class="col-xs-12 col-md-9">
						<div class="form-group">
							<label for="message">{l s='Message'}</label>
							<textarea class="form-control" id="message" name="message">{if isset($message)}{$message|escape:'html':'UTF-8'|stripslashes}{/if}</textarea>
						</div>
					</div>
				</div>
				<div class="submit">
					<button type="submit" name="submitMessage" id="submitMessage" class="button btn btn-default button-medium"><span>{l s='Send'}<i class="icon-chevron-right right"></i></span></button>
				</div>
			</fieldset>
		</form>
Edited by fabrizio.brignone (see edit history)
Link to comment
Share on other sites

Because that form is controlled by a ContactController.php and Contact.php which initialize all the variables used by smarty

 

You could create a form by your own, either calling these classes or creating one from scratch

<form action="contatto.php" method="POST">
<input name="oggetto" />
<input name="testo" />
<button type="submit" value="Invia" />
</form>

and a file contatto.php :

<?php

$oggetto = $_POST['oggetto'];
$testo= $_POST['testo'];
mail("[email protected]",$oggetto,$testo);
?>
Link to comment
Share on other sites

  • 9 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...