Modul forms
od (September 1, 2009 9:12:22 PM)
Dobrý den, forms je opravdová vychytávka :-D Tak jak je mezi řádky uvedeno v textu k dané videoukázce.
Vytvořil jsem něco na způsob kontaktního formuláře. Vše funguje skvěle. Akorát bych chtěl nějak upravit zasílaný eml. a nevím kde? Nikde jsem na to nenarazil.
Modul forms
od
(September 2, 2009 7:03:46 PM)
Děkujem, ano lze to pomocí podmínek.
Před odesláním emailu je HTML formuláře zpracováno tak, že jsou nahrazeny formulářové elementy jejich hodnotami a tady lze použít proměnné
$mailOutput, která má
hodnotu true v případě, že jde o odeslání emailu a ne o zobrazení na www.
Tedy řešením je vypodmínkovat si obsah s pomocí hodnoty této proměnné.
$mailOutput == true
Modul forms
od (September 2, 2009 7:33:47 PM)
Nějak se v tom ztrácím :-(
Možná jsem to asi špatně popsal. Jedná se mi o nasměrování na nějakou šablonu, kterou bych si přetvořil k obrazu svému.
Modul forms
od
(December 17, 2009 11:01:45 PM)
Tak už jsem se tím prokousal :-)
Když je podmínka na
$mailOutput == false
tak je to vidět na webu, ale nepošle se to do mailu, a když je to na
$mailOutput == true
tak je to naopak....
Ještě bych potřeboval poradit jak nejlépe udělat potvrzení vyplněného formuláře na zadaný e-mail získaný z formuláře z $email (myslím tím aby se poslal stejný obsah jako na e-mail vyplněný v "Doručit na e-maily"). Možná, že by bylo dobré mít možnost přidat do kolonky "Doručit na e-maily" proměnnou např. $email. To by pro nás vižláky bylo super a velice jednoduché ;-)
Viz. příloha $email.
Jestli tato věc jde řešit pouze přes events-afterSubmit přes getObject("Mail") , tak bych potřeboval poradit jak tam dostat stejný obsah, který se odesílá na e-mail který je vyplněný v "Doručit na e-maily".
$Mail = getObject("Mail");
$recipientEmail = $email;
$recipientName = "Recipient name";
$Mail->setSender("zc.ocen@oceni", "Něco");
$Mail->setRecipient($recipientEmail, $recipientName);
$Mail->setSubject("Pokus");
$Mail->setHtmlBody("Jak sem dostat obsah posílaného emailu?");
$Mail->send();
Děkuji za nakopnutí a objasnění.
Přílohy:
$email

Modul forms
od
(January 13, 2010 1:37:12 AM)
Řešit to "ručně" přes onSubmit() nebo afterSubmit() by to samozřejmě taky šlo, ale bylo by to rozhodně pracnější (a otravnější :)
Následující řešení Vám ukáže, jak poslat výsledek formuláře na email, který se zadává do textového pole formuláře.
Máte-li do formuláře vložené textové pole s názvem mail, lze použít hodnotu tohoto pole i ve vlastnosti Doručit na e-maily, kam běžně zadáváte příjemce. Stačí přidat záznam a místo přímého emailu vložte
{php: $mail} - viz obr. 1
Pokud využíváte češtinu v názvu textového pole (aby se např. při nevyplnění tohoto pole přes komponentu Form Error Message ukázalo Vyplňte prosím Váš e-mail namísto Vyplňte prosím email), vložte do příjemců
{php: $_REQUEST["Váš e-mail"]}. Jazyk PHP totiž neumožňuje diakritiku ani mezezy v názvu proměnných. - viz obr. 2 a 3
Přílohy:
Příjemce zadaný přes pole formuláře

Nastavení názvu pole formuláře s češtinou

Příjemce zadaný přes pole formuláře s češtinou

Modul forms
od
(February 10, 2010 10:55:09 PM)
Dobrý den, potřeboval bych help ohledně formErrorMessage v modulu forms.
Načítám do formuláře TC, který má v šabloně
<input value="{php: $pocet[position]}"
id="pocet[position]" name="pocet[position]"
type="text" />
na ověření jestli je zadán počet kusů, alespoň u jednoho textboxu mám takový to kousek kódu
if ($formSent == "true") {
$pocetZadan = false;
foreach ($_POST as $klic => $polozka) {
$klicZacatek = "pocet";
$minDelkaKlic = strlen($klicZacatek);
if (strlen($klic) > $minDelkaKlic && substr_compare($klic, $klicZacatek, 0, $minDelkaKlic) == 0) {
if (is_numeric($polozka) && $polozka > 0) {
$pocetZadan = true;
break;
}
}
}
if ($pocetZadan == false) {
$errorMessage .= "
Není zadán žádný kus pro objednání!";
}
}
který mi vypíše do
{php: $errorMessage}
zprávu o nezadání žádného počtu.
Má otázka zní jestli se to dá propojit s výchozím formErrorMessage, aby se zpráva vypsala přes formErrorMessage?
A jestli by to i vyřešilo můj problém s neodesíláním formuláře pro nevyplněném žádném počtu kusů? V současné době mi to sice vypíše hlášku do {php: $errorMessage}, ale i přesto se mi to odešle, nepřišel jsem na způsob jak to vyřešit...
Děkuji za help JP
Modul forms
od
(March 2, 2010 12:31:22 AM)
Dobrý den
aby výpis chybových hlášek pracovalo nad komponentou Form Error Message, je potřeba Váš kód pro kontrolu přesunout do události onCheckValues. Modul forms, pokud tato událost vrátí pole s chybami, nedovolí další zpracování formuláře a vloží chyby vrácené z této události do komponenty Form Error Message.
Váš kód tedy stačí přizpůsobit takto:
$errors = array();
$pocetZadan = false;
foreach ($_POST as $klic => $polozka)
{
$klicZacatek = "pocet";
$minDelkaKlic = strlen($klicZacatek);
if (strlen($klic) > $minDelkaKlic && substr_compare($klic, $klicZacatek, 0, $minDelkaKlic) == 0)
{
if (is_numeric($polozka) && $polozka > 0)
{
$pocetZadan = true;
break;
}
}
}
if ($pocetZadan == false)
{
$errors[] = "Není zadán žádný kus pro objednání!";
}
return($errors);
Modul forms
od (March 2, 2010 8:42:31 AM)
Dobrý den, děkuji...je to funkční, ale ještě to není ono ;-)
Budu potřebovat ještě nakopnout.
Když dám tento kód do události onCheckValues tak mi přestane fungovat vypsání zbylých nezadaných polí jako jméno, adresa a ostatní povinné položky a vypíše se pouze hláška o tom, že nebyl zadán počet.
Pak jsem přišel ještě na to, když si dám do if $mailOutput == false položky formu (když nemám kód pro ověření zadání počtu v události onCheckValues) tak se mi ve výpise Form Error Message ukáže pouze nezadání spam kontroly. Ostatní povinná pole ne. :-(
Děkuji za help. JP
Modul forms
od
(March 2, 2010 9:59:13 AM)
Dobré ráno,
omlouvám se za svou velkou noční dezinformaci, první řádek
$errors = array();
musí jít pryč.
Události onCheckValues je předáván právě tento parametr $errors (obsahující chyby ohledně nevyplněných polí, špatně zadaného kódu obrázku, atd.. ), který chceme pouze doplnit o další vlastní chybové hlášky.
Vynulování pole použijeme pouze v případě, že chybové hlášky chceme mít plně ve své režii.
Modul forms
od
(March 11, 2010 5:29:38 PM)
Děkuji, takto to funguje :-)
Ale kauza forms pokračuje ;-) Potřeboval bych poradit jak se vypořádat s textovým popisem hodnoty comboboxu.
Jedná se mi o to, že mám ve formuláři přes events onSubmit načítání přes $record['status_rozvoz'] pole a combobox mi tam dává hodnotu, ale potřeboval bych tam textový popis hodnoty.
Nevíte jak na to? Nebo případně kde najdu uložený textový popis hodnoty? V příslušné tabulce je pouze hodnota.
Děkuji za help JP
Přílohy:
výpis hodnoty

tento textový popis potřebuji

takto to mám v nastavení tabulky
