Jump to content

Menambahkan Form pada prestashop


Dita Mahardika

Recommended Posts

selamat sore, 

 

saya ada masalah tentang menambahkan form pada prestashop. setelah menambahkan halaman cms baru kemudian dimasukan source kode form yang setelah saya buat kemudian saya simpan tetapi muncul pesan "kontek tidak valid" bagaimana cara mengatasinya ? 

apakah harus ada modul tambahan agar dapat menjalankan form tersebut

 

terimakasih atas perhatiannya

Link to comment
Share on other sites

Pakai module. Saya ada modulenya dan ditampilkan di new page + judul dan link. Setiap pengisian form ini akan masuk ke admin dan ke list dicustumer service message.

terimaksih atas jawabannya, namun sekarang ada masalah lagi, notif yg keluar bukan lagi "konten tidak valid", namun sekarang malah masuk "404 halaman tidak ditemukan" , apa ada solusinya untuk masalah baru saya? terimakasih sebelumnya 

Link to comment
Share on other sites

Baca Kasus penambahan Form Kontak di CMS ya.

Banyak yg sudah menjelaskan secara detail dengan core beberapa Class dan controller.

https://www.prestashop.com/forums/topic/285476-create-custom-contact-form-on-cms-page/

https://www.prestashop.com/forums/topic/430454-tutorial-ps-16-adding-cms-content-to-the-contact-page/

 

Kalau Solusi saya tidak pakai begitu, tapi pakai module.

Kalau mas mahardika membuat form sendiri atau embed code dari situs penyedia contact form, sebaiknya tanya ke mereka karna biasanya menyediakan module sendiri. 

Kalau core sendiri contact formnya, sebaiknya buat module.

Edited by ABANGWEB (see edit history)
Link to comment
Share on other sites

Baca Kasus penambahan Form Kontak di CMS ya.

Banyak yg sudah menjelaskan secara detail dengan core beberapa Class dan controller.

https://www.prestashop.com/forums/topic/285476-create-custom-contact-form-on-cms-page/

https://www.prestashop.com/forums/topic/430454-tutorial-ps-16-adding-cms-content-to-the-contact-page/

 

Kalau Solusi saya tidak pakai begitu, tapi pakai module.

Kalau mas mahardika membuat form sendiri atau embed code dari situs penyedia contact form, sebaiknya tanya ke mereka karna biasanya menyediakan module sendiri. 

Kalau core sendiri contact formnya, sebaiknya buat module.

masih tetap masuk ke halaman tidak ditemukan "404 page not found" ,.,. apakah saya harus menggunakan modul tambahan , kalau ada, itu dapat d download atau prabayar? terimakasih  :)

Link to comment
Share on other sites

selamat sore, 

 

saya ada masalah tentang menambahkan form pada prestashop. setelah menambahkan halaman cms baru kemudian dimasukan source kode form yang setelah saya buat kemudian saya simpan tetapi muncul pesan "kontek tidak valid" bagaimana cara mengatasinya ? 

apakah harus ada modul tambahan agar dapat menjalankan form tersebut

 

terimakasih atas perhatiannya

 

PrestaShop versi berapa, source code nya seperti apa ?

 

Coba nonaktifkan dahulu fitur"HTMLPurifier Library", fitur tsb berfungsi untuk "membersihkan" konten CMS dari kode HTML yang berpotensi membuka celah keamanan.

B.O > Preferences > General >> Use HTMLPurifier Library = NO

Link to comment
Share on other sites

PrestaShop versi berapa, source code nya seperti apa ?

 

Coba nonaktifkan dahulu fitur"HTMLPurifier Library", fitur tsb berfungsi untuk "membersihkan" konten CMS dari kode HTML yang berpotensi membuka celah keamanan.

B.O > Preferences > General >> Use HTMLPurifier Library = NO

saya menggunakan presta 1.6.0.14 

saya membuat form di jotform.com kemudian saya ambil sourcodenya, seperti berikut: 

 

<script src="//d2g9qbzl5h49rh.cloudfront.net/static/prototype.forms.js" type="text/javascript"></script>
<script src="//d2g9qbzl5h49rh.cloudfront.net/static/jotform.forms.js?3.3.8688" type="text/javascript"></script>
<script type="text/javascript">
   JotForm.init(function(){
      JotForm.calendarMonths = ["January","February","March","April","May","June","July","August","September","October","November","December"];
      JotForm.calendarDays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
      JotForm.calendarOther = {"today":"Today"};
      JotForm.setCalendar("11", false, false);
      JotForm.description('input_10', 'Kosongkan jika tidak ada');
      setTimeout(function() {
          $('input_9').hint('ex: 23');
       }, 20);
JotForm.clearFieldOnHide="disable";
JotForm.onSubmissionError="jumpToSubmit";
   });
</script>
<link href="//d2g9qbzl5h49rh.cloudfront.net/static/formCss.css?3.3.8688" rel="stylesheet" type="text/css" />
<link type="text/css" rel="stylesheet" href="//d2g9qbzl5h49rh.cloudfront.net/css/styles/nova.css?3.3.8688" />
<link type="text/css" media="print" rel="stylesheet" href="//d2g9qbzl5h49rh.cloudfront.net/css/printForm.css?3.3.8688" />
<style type="text/css">
    .form-label-left{
        width:150px !important;
    }
    .form-line{
        padding-top:12px;
        padding-bottom:12px;
    }
    .form-label-right{
        width:150px !important;
    }
    .form-all{
        width:690px;
        color:#555 !important;
        font-family:"Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Verdana, sans-serif;
        font-size:14px;
    }
    .form-radio-item label, .form-checkbox-item label, .form-grading-label, .form-header{
        color: #555;
    }
 
</style>
 
<link type="text/css" rel="stylesheet" href="//jotform.me/themes/CSS/5494597b700cc4f6668b4568.css?session=47519218656756&themeRevisionID=55c085fb977cdf6d158b4567"/>
<form class="jotform-form" action="//submit.jotform.me/submit/52241986168463/" method="post" name="form_52241986168463" id="52241986168463" accept-charset="utf-8">
  <input type="hidden" name="formID" value="52241986168463" />
  <div class="form-all">
    <ul class="form-section page-section">
      <li id="cid_3" class="form-input-wide" data-type="control_head">
        <div class="form-header-group">
          <div class="header-text httal htvam">
            <h2 id="header_3" class="form-header">
              Konfirmasi Pembayaran
            </h2>
            <div id="subHeader_3" class="form-subHeader">
              konfirmasi setelah melakukan pembayaran
            </div>
          </div>
        </div>
      </li>
      <li class="form-line" data-type="control_textbox" id="id_4">
        <label class="form-label form-label-right form-label-auto" id="label_4" for="input_4"> Nama Pembeli </label>
        <div id="cid_4" class="form-input jf-required">
          <input type="text" class=" form-textbox" data-type="input-textbox" id="input_4" name="q4_namaPembeli" size="20" value="" />
        </div>
      </li>
      <li class="form-line" data-type="control_datetime" id="id_11">
        <label class="form-label form-label-right form-label-auto" id="label_11" for="input_11"> Tanggal Tranfer </label>
        <div id="cid_11" class="form-input jf-required">
          <span class="form-sub-label-container" style="vertical-align: top">
            <input class="form-textbox" id="month_11" name="q11_tanggalTranfer[month]" type="tel" size="2" maxlength="2" value="" />
            <span class="date-separate">
               -
            </span>
            <label class="form-sub-label" for="month_11" id="sublabel_month" style="min-height: 13px;"> bulan </label>
          </span>
          <span class="form-sub-label-container" style="vertical-align: top">
            <input class="form-textbox" id="day_11" name="q11_tanggalTranfer[day]" type="tel" size="2" maxlength="2" value="" />
            <span class="date-separate">
               -
            </span>
            <label class="form-sub-label" for="day_11" id="sublabel_day" style="min-height: 13px;"> hari </label>
          </span>
          <span class="form-sub-label-container" style="vertical-align: top">
            <input class="form-textbox" id="year_11" name="q11_tanggalTranfer[year]" type="tel" size="4" maxlength="4" value="" />
            <label class="form-sub-label" for="year_11" id="sublabel_year" style="min-height: 13px;"> tahun </label>
          </span>
          <span class="form-sub-label-container" style="vertical-align: top">
            <img class="showAutoCalendar" alt="Pick a Date" id="input_11_pick" src="//d2g9qbzl5h49rh.cloudfront.net/images/calendar.png" align="absmiddle" />
            <label class="form-sub-label" for="input_11_pick" style="min-height: 13px;">  </label>
          </span>
        </div>
      </li>
      <li class="form-line" data-type="control_textbox" id="id_10">
        <label class="form-label form-label-right form-label-auto" id="label_10" for="input_10"> No Referensi </label>
        <div id="cid_10" class="form-input jf-required">
          <span class="form-sub-label-container" style="vertical-align: top">
            <input type="text" class=" form-textbox" data-type="input-textbox" id="input_10" name="q10_noReferensi" size="20" value="" />
            <label class="form-sub-label" for="input_10" style="min-height: 13px;"> kosongkan jika tidak ada </label>
          </span>
        </div>
      </li>
      <li class="form-line" data-type="control_textbox" id="id_6">
        <label class="form-label form-label-right form-label-auto" id="label_6" for="input_6"> Nama Rekening </label>
        <div id="cid_6" class="form-input jf-required">
          <input type="text" class=" form-textbox" data-type="input-textbox" id="input_6" name="q6_namaRekening" size="20" value="" />
        </div>
      </li>
      <li class="form-line" data-type="control_textbox" id="id_5">
        <label class="form-label form-label-right form-label-auto" id="label_5" for="input_5"> Nama Barang </label>
        <div id="cid_5" class="form-input jf-required">
          <input type="text" class=" form-textbox" data-type="input-textbox" id="input_5" name="q5_namaBarang" size="20" value="" />
        </div>
      </li>
      <li class="form-line" data-type="control_number" id="id_9">
        <label class="form-label form-label-right form-label-auto" id="label_9" for="input_9"> Jumlah Barang yang Dibeli </label>
        <div id="cid_9" class="form-input jf-required">
          <input type="number" class="form-number-input  form-textbox" id="input_9" name="q9_jumlahBarang" style="width:60px" size="5" value="" data-type="input-number" />
        </div>
      </li>
      <li class="form-line" data-type="control_textbox" id="id_7">
        <label class="form-label form-label-right form-label-auto" id="label_7" for="input_7"> Jumlah Pembayaran (Rp) </label>
        <div id="cid_7" class="form-input jf-required">
          <input type="text" class=" form-textbox" data-type="input-textbox" id="input_7" name="q7_jumlahPembayaran" size="20" value="" />
        </div>
      </li>
      <li class="form-line" data-type="control_radio" id="id_8">
        <label class="form-label form-label-right form-label-auto" id="label_8" for="input_8"> Bayar Melalui </label>
        <div id="cid_8" class="form-input jf-required">
          <div class="form-single-column">
            <span class="form-radio-item" style="clear:left;">
              <span class="dragger-item">
              </span>
              <input type="radio" class="form-radio" id="input_8_0" name="q8_bayarMelalui" value="BNI" />
              <label id="label_input_8_0" for="input_8_0"> BNI </label>
            </span>
            <span class="form-radio-item" style="clear:left;">
              <span class="dragger-item">
              </span>
              <input type="radio" class="form-radio" id="input_8_1" name="q8_bayarMelalui" value="BCA" />
              <label id="label_input_8_1" for="input_8_1"> BCA </label>
            </span>
            <span class="form-radio-item" style="clear:left;">
              <span class="dragger-item">
              </span>
              <input type="radio" class="form-radio" id="input_8_2" name="q8_bayarMelalui" value="Mandiri" />
              <label id="label_input_8_2" for="input_8_2"> Mandiri </label>
            </span>
          </div>
        </div>
      </li>
      <li class="form-line" data-type="control_button" id="id_2">
        <div id="cid_2" class="form-input-wide">
          <div style="margin-left:156px" class="form-buttons-wrapper">
            <button id="input_2" type="submit" class="form-submit-button">
              Kirim Konfirmasi
            </button>
          </div>
        </div>
      </li>
      <li style="display:none">
        Should be Empty:
        <input type="text" name="website" value="" />
      </li>
    </ul>
  </div>
  <input type="hidden" id="simple_spc" name="simple_spc" value="52241986168463" />
  <script type="text/javascript">
  document.getElementById("si" + "mple" + "_spc").value = "52241986168463-52241986168463";
  </script>
</form>
 
 
namun saat ini malah keluar notif "404 not found" pada saat mengupload HTML. saya sudah coba untuk menonaktifkan Pusifier library, tapi tidak ada perbedaan. 
Link to comment
Share on other sites

Source code seperti itu tidak akan bisa dimasukan sebagai CMS content karena memuat HTML tag <script> dan <form> yang tidak akan lulus validasi PrestaShop.

 

Ada 2 cara mudah yang dapat anda lakukan untuk dapat menerapkannya pada halaman CMS, sebelumnya silahkan buat halaman CMS baru untuk keperluan ini (konten kosong) lalu ingat-ingat id_cms nya

 

Cara-1

Modifikasi classes file ../classes/Validate.php

Cari baris code berikut public static function isCleanHtml($html, $allow_iframe = false)

Lalu tambahkan code berikut ini di dalam class method tsb

// PERHATIAN! ganti variabel [id_cms] dengan id_cms yang sebenarnya dimana anda ingin memasukan source code form yang diinginkan
if (Tools::getValue('controller') == 'AdminCmsContent' && Tools::getValue('id_cms') == [id_cms])
            return true;

Edit CMS yang sebelumnya telah dibuat lalu paste source code yang diinginkan dan "Save"

Dengan cara ini, source code yang dimasukan tidak akan diperiksa oleh class method isCleanHtml dan langsung dianggap "Bersih/Valid".

 

Cara-2

Modifikasi theme file ../themes/default-bootstrap/cms.tpl

Cari baris code berikut <div class="rte{if $content_only} content_only{/if}">

Lalu tambahkan code berikut ini

{* PERHATIAN! ganti variabel [id_cms] dengan id_cms yang sebenarnya dimana anda ingin memasukan source code form yang diinginkan *}
{if $cms->id == [id_cms]}{include file="$tpl_dir./custom-form.tpl"}{/if}

Buat theme file baru dengan nama custom-form.tpl kemudian paste source code form yang diinginkan kedalamnya.

Khusus untuk konten javascript yang berada dalam HTML tag <script type="text/javascript"> harus menggunakan smarty {literal} tag

contohnya :

<script type="text/javascript">
{literal}
   JotForm.init(function(){
      JotForm.calendarMonths = ["January","February","March","April","May","June","July","August","September","October","November","December"];
      JotForm.calendarDays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
      JotForm.calendarOther = {"today":"Today"};
      JotForm.setCalendar("11", false, false);
      JotForm.description('input_10', 'Kosongkan jika tidak ada');
      setTimeout(function() {
          $('input_9').hint('ex: 23');
       }, 20);
JotForm.clearFieldOnHide="disable";
JotForm.onSubmissionError="jumpToSubmit";
   });
{/literal}
</script>

Dengan cara ini, anda tidak perlu mengedit CMS yang sebelumnya telah dibuat karena source code secara langsung di masukan dalam theme file custom-form.tpl

Jika anda paham HTML dan Smarty, akan lebih baik jika source code terkait js dan css di tempatkan pada file terpisah untuk di muat pada header.tpl, misalnya dengan membuat theme file baru dengan nama custom-form-header.tpl

Link to comment
Share on other sites

Source code seperti itu tidak akan bisa dimasukan sebagai CMS content karena memuat HTML tag <script> dan <form> yang tidak akan lulus validasi PrestaShop.

 

Ada 2 cara mudah yang dapat anda lakukan untuk dapat menerapkannya pada halaman CMS, sebelumnya silahkan buat halaman CMS baru untuk keperluan ini (konten kosong) lalu ingat-ingat id_cms nya

 

Cara-1

Modifikasi classes file ../classes/Validate.php

Cari baris code berikut public static function isCleanHtml($html, $allow_iframe = false)

Lalu tambahkan code berikut ini di dalam class method tsb

// PERHATIAN! ganti variabel [id_cms] dengan id_cms yang sebenarnya dimana anda ingin memasukan source code form yang diinginkan
if (Tools::getValue('controller') == 'AdminCmsContent' && Tools::getValue('id_cms') == [id_cms])
            return true;

Edit CMS yang sebelumnya telah dibuat lalu paste source code yang diinginkan dan "Save"

Dengan cara ini, source code yang dimasukan tidak akan diperiksa oleh class method isCleanHtml dan langsung dianggap "Bersih/Valid".

 

Cara-2

Modifikasi theme file ../themes/default-bootstrap/cms.tpl

Cari baris code berikut <div class="rte{if $content_only} content_only{/if}">

Lalu tambahkan code berikut ini

{* PERHATIAN! ganti variabel [id_cms] dengan id_cms yang sebenarnya dimana anda ingin memasukan source code form yang diinginkan *}
{if $cms->id == [id_cms]}{include file="$tpl_dir./custom-form.tpl"}{/if}

Buat theme file baru dengan nama custom-form.tpl kemudian paste source code form yang diinginkan kedalamnya.

Khusus untuk konten javascript yang berada dalam HTML tag <script type="text/javascript"> harus menggunakan smarty {literal} tag

contohnya :

<script type="text/javascript">
{literal}
   JotForm.init(function(){
      JotForm.calendarMonths = ["January","February","March","April","May","June","July","August","September","October","November","December"];
      JotForm.calendarDays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
      JotForm.calendarOther = {"today":"Today"};
      JotForm.setCalendar("11", false, false);
      JotForm.description('input_10', 'Kosongkan jika tidak ada');
      setTimeout(function() {
          $('input_9').hint('ex: 23');
       }, 20);
JotForm.clearFieldOnHide="disable";
JotForm.onSubmissionError="jumpToSubmit";
   });
{/literal}
</script>

Dengan cara ini, anda tidak perlu mengedit CMS yang sebelumnya telah dibuat karena source code secara langsung di masukan dalam theme file custom-form.tpl

Jika anda paham HTML dan Smarty, akan lebih baik jika source code terkait js dan css di tempatkan pada file terpisah untuk di muat pada header.tpl, misalnya dengan membuat theme file baru dengan nama custom-form-header.tpl

terimakasih banyak ,. akan segera saya coba , 

Link to comment
Share on other sites

  • 4 weeks 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...