Implemented "radkova inzerce"
authorshort <>
Wed, 20 Mar 2002 20:58:22 +0000 (20:58 +0000)
committershort <>
Wed, 20 Mar 2002 20:58:22 +0000 (20:58 +0000)
inzerat-submit.php [new file with mode: 0644]
inzerat.js [new file with mode: 0644]
inzerat.php [new file with mode: 0644]
inzeraty.php [new file with mode: 0644]

diff --git a/inzerat-submit.php b/inzerat-submit.php
new file mode 100644 (file)
index 0000000..e711c96
--- /dev/null
@@ -0,0 +1,147 @@
+<?php $cvs_id='$Id$';
+
+       include("common.php");
+
+       $title_tail="Elektronické podání øádková inzerce";
+       heading(true/*title*/);
+
+prepvar("text");
+prepvar("name");
+prepvar("adresa");
+prepvar("doklad",".*",false/*require*/);
+prepvar("ico");
+prepvar("dic");
+prepvar("pocet");
+prepvar("mail");
+
+prepvar("confirm",".*",false/*require*/);
+
+
+$out=stamp_line();
+$err=false;
+
+if (""==($text=trim($text))) {
+       print("<h1 class=\"red\">Chybí jakýkoliv text inzerátu!</h1>\n");
+       $err=true;
+       }
+
+if (!ereg("^[0-9]*\$",$pocet)) {
+       print("<h1 class=\"red\">Jako poèet zveøejnìní je povoleno zadat jen èíselnou hodnotu!</h1>\n");
+       $err=true;
+       $pocet=1;
+       }
+if (""==$pocet) {
+       print("<h1 class=\"red\">Nutno zadat platný poèet opakování! (pro jediné uveøejnìní zadejte 1)</h1>\n");
+       $err=true;
+       $pocet=1;
+       }
+if ($pocet<=0 || $pocet>120) {
+       print("<h1 class=\"red\">Takový poèet zveøejnìní není povolen!</h1>\n");
+       $err=true;
+       }
+
+if (!($f=fopen("inzerat.js","r")))
+       fatal("Nepodaøilo se naèíst ceny inzerce");
+$price_a=array();
+while (($s=fgets($f,0x1000))) {
+       if (!($s=trim($s)))
+               break;
+       if (!(ereg("^var price_([a-z]*) *=([0-9]*);$",$s,$matched)))
+               continue;
+       $price_a[$matched[1]]=$matched[2];
+       }
+fclose($f);
+
+$total=(ceil((strlen($text)+3)/40)*$pocet-1)*$price_a["line"];
+if ($total<=0) {
+       $total=0;
+       $total_pretty="zdarma";
+       // hack for common.php/format_fields_to_text()
+       unset($HTTP_POST_VARS["doklad"]);
+       }
+else {
+       if (isset($doklad))
+               $total+=$price_a["doklad"];
+       $total_pretty="$total Kè";
+       // hack for common.php/format_fields_to_text()
+       $HTTP_POST_VARS["doklad"]=isset($doklad);
+       }
+
+if (""==$name) {
+       print("<h1 class=\"red\">Chybí zadání názvu firmy èi jména osoby!</h1>\n");
+       $err=true;
+       }
+
+if (""==$adresa) {
+       print("<h1 class=\"red\">Chybí zadání úplné adresy!</h1>\n");
+       $err=true;
+       }
+
+if ($total>0 && isset($doklad)) {
+       if (""==$ico) {
+               print("<h1 class=\"red\">Po¾adujete zaslání daòového dokladu, ale chybí IÈO!</h1>\n");
+               $err=true;
+               }
+       if (""==$dic) {
+               print("<h1 class=\"red\">Po¾adujete zaslání daòového dokladu, ale chybí DIÈ!</h1>\n");
+               $err=true;
+               }
+       }
+
+if (""!=$mail && !ereg(".@..",$mail)) {
+       print("<h1 class=\"red\">Jakmile jste uvedli e-mailovou adresu, tak ale musí být v&nbsp;platném tvaru!</h1>\n");
+       $err=true;
+       }
+
+$out.=format_fields_to_text();
+$out.="Celkem:\t$total_pretty\n";
+
+if ($err)
+       datacheck_fail();
+
+if (!isset($confirm)) {
+       print("<p>");
+       if (!$total)
+               print("Tento inzerát bude oti¹tìn zdarma.");
+       else
+               print("Cena tohoto inzerátu je $total Kè.");
+       print(" Pokud chcete inzerát pozmìnit, mù¾ete se ".return_back("vrátit zpìt")
+                       ." na pøedchozí stránku a zadaná data upravit. Jinak prosím potvrïte"
+                       ." odeslání tlaèítkem <a href=\"#submit_button\">Ode¹li inzerát</a>.</p>\n");
+       print_form_radkova_inzerce(true/*readonly*/,$total_pretty,"confirm","Ode¹li inzerát");
+       footer();
+       }
+
+// Successful data acquisition, write&send:
+
+/*** Table initialization:
+       drop   table energie_inzerat;
+       create table energie_inzerat (varsym int not null auto_increment primary key,contents text null);
+       alter  table energie_inzerat add index (varsym);
+       insert into  energie_inzerat (varsym) values (20025000);
+***/
+
+db_query("insert into $tb_inzerat (contents) values('".addslashes($out)."')");
+if (!($varsym=mysql_insert_id()))
+       fatal("Nepodaøilo se zapsat objednávku do SQL");
+if ($total)
+       $out="VarSym:\t$varsym\n".$out;
+
+if (mail_data("inzerat",$out))
+       fatal("Chyba pøi odesílání inzerátu, data inzerátu ji¾ ale byla úspì¹nì ulo¾ena");
+
+print("<h1>Inzerát byl úspì¹nì pøijat</h1>\n");
+if ($total>0)
+       print("<p>Celkovou èástku $total_pretty uhraïte pøevodním pøíkazem, pøes ".gsm_banking()."\n"
+                       ." nebo po¹tovní poukázkou na úèet vydavatele u&nbsp;Èeské spoøitelny:</p>"
+                       .gsm_table($total,$varsym)
+                       ."<p>Po provedení platby bude Vá¹ inzerát v&nbsp;nejbli¾¹ím èísle zveøejnìn"
+                       .(!isset($doklad) ? "" : " a bude Vám také zaslán daòový doklad")
+                       .".</p>\n");
+else
+       print("<p>Vá¹ inzerát bude v&nbsp;nejbli¾¹ím èísle zveøejnìn zdarma.</p>\n");
+
+print(return_to_homepage());
+
+       footer();
+?>
diff --git a/inzerat.js b/inzerat.js
new file mode 100644 (file)
index 0000000..bf7999f
--- /dev/null
@@ -0,0 +1,106 @@
+// $Id$ 
+// <-see inzerat-submit.php:/if (!($s=trim($s)))/
+var price_line  =61;
+var price_doklad=20;
+
+function validate(form)
+{
+       var e_text=form.elements["name"] ;
+       if (e_text.value=="") {
+               e_text.focus();
+               alert('Chybí jakýkoliv text inzerátu!');
+               return(false);
+               }
+
+       var e_name=form.elements["name"] ;
+       if (e_name.value=="") {
+               e_name.focus();
+               alert('Chybí zadání názvu firmy èi jména osoby!');
+               return(false);
+               }
+
+       var e_adresa=form.elements["adresa"] ;
+       if (e_adresa.value=="") {
+               e_adresa.focus();
+               alert('Chybí zadání úplné adresy!');
+               return(false);
+               }
+
+       var e_doklad=form.elements["doklad"];
+       if (calc_total(form)>0 && !e_doklad.disabled && e_doklad.checked) {
+               var e_ico=form.elements["ico"] ;
+               if (e_ico=="") {
+                       e_ico.focus();
+                       alert('Po¾adujete zaslání daòového dokladu, ale chybí IÈO!');
+                       return(false);
+                       }
+               var e_dic=form.elements["dic"] ;
+               if (e_dic=="") {
+                       e_dic.focus();
+                       alert('Po¾adujete zaslání daòového dokladu, ale chybí DIÈ!');
+                       return(false);
+                       }
+               }
+
+       var e_pocet=form.elements["pocet"];
+       if (-1!=e_pocet.value.search(/[^0-9]/)) {
+               e_pocet.select();
+               e_pocet.focus();
+               alert('Jako poèet zveøejnìní je povoleno zadat jen èíselnou hodnotu!');
+               return(false);
+               }
+       if (e_pocet.value=="") {
+               e_pocet.focus();
+               alert('Nutno zadat platný poèet opakování! (pro jediné uveøejnìní zadejte 1)');
+               return(false);
+               }
+       if (e_pocet.value<=0 || e_pocet.value>120) {
+               e_pocet.select();
+               e_pocet.focus();
+               alert('Takový poèet zveøejnìní není povolen!');
+               return(false);
+               }
+
+       var e_mail=form.elements["mail"] ;
+       if (e_mail.value!="" && -1==e_mail.value.search(/.@../)) {
+               e_mail.select();
+               e_mail.focus();
+               alert('Jakmile jste uvedli e-mailovou adresu, tak ale musí být v&nbsp;platném tvaru!');
+               return(false);
+               }
+
+       return(true);
+}
+
+function calc_total(form)
+{
+var total=0;
+var len=form.elements["text"].value.length;
+var v_pocet=form.elements["pocet"].value;
+var e_doklad=form.elements["doklad"];
+
+       total=(Math.ceil((len+3)/40)*v_pocet-1)*price_line;
+       if (total<=0) {
+               e_doklad.disabled=true;
+               total=0;
+               }
+       else {
+               if (e_doklad.checked)
+                       total+=price_doklad;
+               e_doklad.disabled=false;
+               }
+       return(total);
+}
+
+
+function sum_total(field)
+{
+var form=field.form;
+var total=calc_total(form);
+
+       if (!total)
+               total="zdarma";
+       else
+               total+=" Kè";
+       form.elements['total'].value=total;
+}
diff --git a/inzerat.php b/inzerat.php
new file mode 100644 (file)
index 0000000..68beb93
--- /dev/null
@@ -0,0 +1,79 @@
+<?php $cvs_id='$Id$';
+
+       $detect_js=true;
+       $head='
+<script type="text/javascript" src="inzerat.js"></script>
+';
+       include("common.php");
+
+       $title_tail="Øádková inzerce";
+       heading(true/*title*/);
+?>
+<ul>
+       <li><a href="#elektronicky">Elektronické podání inzerátu</a></li>
+       <li><a href="#snailmail">Formuláø pro zaslání inzerátu po¹tou</a></li>
+</ul>
+
+<p>&nbsp;</p>
+
+<h2><a id="elektronicky">Elektronické podání inzerátu</a></h2>
+
+<h3>Jak vyplnit objednávku</h3>
+
+<blockquote>
+<p>Do textového pole vepi¹te text inzerátu. Jako jeho souèást mù¾ete zveøejnit
+i&nbsp;svou adresu, èíslo telefonu, faxu, popøípadì e-mailu. Mù¾ete také vyu¾ít
+kontaktu pøes redakci, která inzerátu pøidìlí znaèku. Ka¾dé písmenko, mezera
+a&nbsp;interpunkèní znaménko je zapoèítáno do celkové délky inzerátu.</p>
+
+<p class="centered" style="font-style: italic;">Nesrozumitelné, neèitelné
+a&nbsp;neuhrazené oznámení neuveøejníme.</p>
+
+<p><?php
+       if ($have_js) {
+               ?>
+Pod textovým polem vidíte polo¾ku <a href="#celkova_cena">Celková cena</a>, kde
+máte celkovou cenu (vèetnì 22% DPH) aktuálnì zadávaného inzerátu vynásobenou
+poètem po¾adovaných opakování jeho zveøejnìní.
+<?php
+               }
+       else {
+               ?>
+Celková cena aktuálnì zadávaného inzerátu vynásobená poètem po¾adovaných
+opakování jeho zveøejnìní bude zobrazena po stisknutí tlaèítka <a
+href="#submit_button">Spoètení ceny inzerátu</a>.
+<?php
+               }
+?>
+Ka¾dých zapoèatých 40 znakù se poèítá jako jeden øádek oti¹tìný
+v&nbsp;èasopisu, pøièem¾ první øádek je zdarma a ka¾dý dal¹í i&nbsp;zapoèatý za
+61,-&nbsp;Kè (<?php
+
+       if (!$have_js)
+               print("vèetnì 22% DPH, ");
+?>50&nbsp;Kè bez DPH). Pøi opakované inzerci uveïte <a href="#pocet_zverejneni">poèet
+opakování zveøejnìní</a>, pøi za¹krtnutí <a href="#danovy_doklad">po¾adavku
+zaslání daòového dokladu</a> nezapomeòte uvést své DIÈ a IÈO. Po potvrzení
+odeslání inzerátu uhradíte celkovou èástku pøevodním pøíkazem nebo po¹tovní
+poukázkou.</p>
+
+</blockquote>
+
+<h3>Objednávka øádkové inzerce</h3>
+
+<?php
+       if ($have_js)
+               print_form_radkova_inzerce(false/*readonly*/,"zdarma","confirm","Ode¹li inzerát");
+       else
+               print_form_radkova_inzerce(false/*readonly*/,""      ,"submit" ,"Spoètení ceny inzerátu");
+       ?>
+
+<hr />
+<h2><a id="snailmail">Formuláø pro zaslání inzerátu po¹tou</a></h2>
+<blockquote>
+<?php print_pdf_layout("formuláø øádkové inzerce",$file_radkovy_inzerat_base); ?>
+</blockquote>
+
+<?php
+       footer();
+?>
diff --git a/inzeraty.php b/inzeraty.php
new file mode 100644 (file)
index 0000000..e5727a7
--- /dev/null
@@ -0,0 +1,15 @@
+<?php $cvs_id='$Id$';
+
+       include("common.php");
+
+       no_cache();
+       header("Content-type: text/plain");
+
+       $result=db_query("select varsym,contents from $tb_inzerat where contents is not null order by varsym");
+       while ($row=mysql_fetch_array($result)) {
+               print("VarSym:\t".$row["varsym"]."\n");
+               print($row["contents"].str_repeat("-",78)."\n\n");
+               }
+       mysql_free_result($result);
+
+?>