Автор Тема: Ошибка в выводе CMS-страницы  (Прочитано 358 раз)

06 Июля 2015, 19:24:50
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте! Попыталась добавить CMS-страницу через админку, нажала "сохранить" и вышла такая вот ошибка http://s1.radikale.ru/uploads/2015/7/6/0604d94449e3ff1f77650a2ca2a0e4d5-full.jpg. Ничего из контроллеров и всяких php-файлов не меняла. До этого момента подобных проблем не было, страницы спокойно сохранялись и выводились. Программист из меня так себе, поэтому не очень понимаю ошибку и как ее исправить. Заранее спасибо!
06 Июля 2015, 20:00:50
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 2158
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
В наполнении страницы запрещенные символы (теги, js, код php). Поэтому и ошибка.
06 Июля 2015, 20:07:40
Ответ #2
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В наполнении страницы запрещенные символы (теги, js, код php). Поэтому и ошибка.

Как же тогда в Престу грузить страницы со скриптами? Может, есть какой-нибудь способ?
06 Июля 2015, 20:15:54
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 2158
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Скрипты только в шаблон tpl добавлять.
08 Июля 2015, 23:07:19
Ответ #4
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Скрипты только в шаблон tpl добавлять.

Спасибо за наводку! Я попыталась это сделать с помощью вот этого туториала http://prestashop-forum.ru/index.php?topic=2614.0 Однако, я не поняла, как связать созданную страницу в SEO в админке с теми тремя, что у меня есть. Допустим, вместо файлов mypage (как в туториале) у меня vin-zapros.php, vin-zapros.tpl vin-zapros-controller.php. В самих файлах в коде я изменила mypage на те названия, что у меня. Добавила страницу в SEO/URL с названием vin-zapros c ЧПУ vin-zapros. При попытке зайти за страницу по данному ЧПУ - "Страница недоступна. Извините, запрошенная вами страница не существует". Не подскажите, в чем может быть ошибка? Сами скрипты я прописывала только в vin-zapros.tpl
09 Июля 2015, 10:13:24
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 2158
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
09 Июля 2015, 10:21:13
Ответ #6
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105576
  • Репутация: +39545/-0
    • Просмотр профиля
    • Webstudio UwK
Очитстите кеш и удалите файл /cache/class_index.php.

Вам можно проще сделать.
1. Создать страницу смс vin-zapros.
2. В шаблоне cms.tpl добавить ваш код
{if $cms->id == 'id созданной страницы vin-zapros'}
код
{/if}
Cоздание интернет сайтов Webstudio UwK
09 Июля 2015, 15:54:27
Ответ #7
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Очитстите кеш и удалите файл /cache/class_index.php.

Вам можно проще сделать.
1. Создать страницу смс vin-zapros.
2. В шаблоне cms.tpl добавить ваш код
{if $cms->id == 'id созданной страницы vin-zapros'}
код
{/if}

Спасибо за ответ! Сделала, как вы написали. Преста переходит по ссылке на страницу, но страница открывается пустая (в смысле, не просто белый квадрат, а как пустая страница в шаблоне с меню, логотипом и тд). Установила отображение ошибок, но никаких ошибок не возникло.
09 Июля 2015, 19:26:37
Ответ #8
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85945
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Какой код вы добавили и в какое место шаблона?
10 Июля 2015, 12:00:13
Ответ #9
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Какой код вы добавили и в какое место шаблона?

Код добавила между последним {if} и перед {else}

{if $cms->id == '16'}

<h3 style="margin-top: 15px;">Поиск автозапчастей по VIN-запросу</h3>
<table class="web_ar_datagrid" style="width: 500px;" border="0" cellspacing="3" cellpadding="3">
<tbody>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td colspan="4">
<h3><span style="font-size: 10pt;">ДАННЫЕ АВТОМОБИЛЯ</span></h3>
</td>
</tr>
<tr class="even">
<td> </td>
<td colspan="3"> </td>
</tr>
<tr class="even">
<td><span id="form_required_field">марка</span></td>
<td><select id="1" style="width: 170px;" name="brand"> <option value="0">--</option> <option value="AC">AC</option> <option value="ACURA">ACURA</option> <option value="AIXAM">AIXAM</option> <option value="ALFA ROMEO">ALFA ROMEO</option> <option value="ALPINA">ALPINA</option> <option value="ALPINE">ALPINE</option> <option value="AMERICANMOTORS(FORD)">AMERICANMOTORS(FORD)</option> <option value="ARO">ARO</option> <option value="ASIA MOTORS">ASIA MOTORS</option> <option value="ASTON MARTIN">ASTON MARTIN</option> <option value="ASTRA">ASTRA</option> <option value="AUDI">AUDI</option> <option value="AUSTIN">AUSTIN</option> <option value="AUSTIN-HEALEY">AUSTIN-HEALEY</option> <option value="AUTO UNION">AUTO UNION</option> <option value="AUTOBIANCHI">AUTOBIANCHI</option> <option value="AVIA">AVIA</option> <option value="BARKAS">BARKAS</option> <option value="BEDFORD">BEDFORD</option> <option value="BENTLEY">BENTLEY</option> <option value="BERKHOF">BERKHOF</option> <option value="BERTONE">BERTONE</option> <option value="BITTER">BITTER</option> <option value="BMW">BMW</option> <option value="BOND">BOND</option> <option value="BORGWARD">BORGWARD</option> <option value="BOVA">BOVA</option> <option value="BRISTOL">BRISTOL</option> <option value="BUGATTI">BUGATTI</option> <option value="BUICK">BUICK</option> <option value="CADILLAC">CADILLAC</option> <option value="CALLAWAY">CALLAWAY</option> <option value="CARBODIES">CARBODIES</option> <option value="CATERHAM">CATERHAM</option> <option value="CHECKER">CHECKER</option> <option value="CHEVROLET">CHEVROLET</option> <option value="CHRYSLER">CHRYSLER</option> <option value="CITROËN">CITROËN</option> <option value="DACIA">DACIA</option> <option value="DAEWOO">DAEWOO</option> <option value="DAF">DAF</option> <option value="DAIHATSU">DAIHATSU</option> <option value="DAIMLER">DAIMLER</option> <option value="DALLAS">DALLAS</option> <option value="DE LOREAN">DE LOREAN</option> <option value="DE TOMASO">DE TOMASO</option> <option value="DENNIS">DENNIS</option> <option value="DODGE">DODGE</option> <option value="FERRARI">FERRARI</option> <option value="FIAT">FIAT</option> <option value="FORD">FORD</option> <option value="FORD OTOSAN">FORD OTOSAN</option> <option value="FORD USA">FORD USA</option> <option value="FSO">FSO</option> <option value="GAZ">GAZ</option> <option value="GEELY">GEELY</option> <option value="GEO">GEO</option> <option value="GINETTA">GINETTA</option> <option value="GLAS">GLAS</option> <option value="GMC">GMC</option> <option value="HINDUSTAN">HINDUSTAN</option> <option value="HOBBYCAR">HOBBYCAR</option> <option value="HOLDEN">HOLDEN</option> <option value="HONDA">HONDA</option> <option value="HUMMER">HUMMER</option> <option value="HYUNDAI">HYUNDAI</option> <option value="INDIGO">INDIGO</option> <option value="INFINITI">INFINITI</option> <option value="INNOCENTI">INNOCENTI</option> <option value="IRISBUS">IRISBUS</option> <option value="IRMSCHER">IRMSCHER</option> <option value="ISDERA">ISDERA</option> <option value="ISH">ISH</option> <option value="ISUZU">ISUZU</option> <option value="IVECO">IVECO</option> <option value="JAGUAR">JAGUAR</option> <option value="JEEP">JEEP</option> <option value="JENSEN">JENSEN</option> <option value="JIANGLING LANDWIND">JIANGLING LANDWIND</option> <option value="KIA">KIA</option> <option value="LADA">LADA</option> <option value="LAMBORGHINI">LAMBORGHINI</option> <option value="LANCIA">LANCIA</option> <option value="LAND ROVER">LAND ROVER</option> <option value="LDV">LDV</option> <option value="LEXUS">LEXUS</option> <option value="LIGIER">LIGIER</option> <option value="LINCOLN">LINCOLN</option> <option value="LOTUS">LOTUS</option> <option value="LTI">LTI</option> <option value="MAHINDRA">MAHINDRA</option> <option value="MAN">MAN</option> <option value="MARCOS">MARCOS</option> <option value="MASERATI">MASERATI</option> <option value="MAYBACH">MAYBACH</option> <option value="MAZDA">MAZDA</option> <option value="MCLAREN">MCLAREN</option> <option value="MEGA">MEGA</option> <option value="MERCEDES-BENZ">MERCEDES-BENZ</option> <option value="METROCAB">METROCAB</option> <option value="MG">MG</option> <option value="MIDDLEBRIDGE">MIDDLEBRIDGE</option> <option value="MINI">MINI</option> <option value="MITSUBISHI">MITSUBISHI</option> <option value="MORGAN">MORGAN</option> <option value="MORRIS">MORRIS</option> <option value="MOSKVICH">MOSKVICH</option> <option value="MULTICAR">MULTICAR</option> <option value="NEOPLAN">NEOPLAN</option> <option value="NISSAN">NISSAN</option> <option value="NSU">NSU</option> <option value="OLDSMOBILE">OLDSMOBILE</option> <option value="OLTCIT">OLTCIT</option> <option value="OPEL">OPEL</option> <option value="OSCA">OSCA</option> <option value="PANOZ">PANOZ</option> <option value="PANTHER">PANTHER</option> <option value="PAYKAN">PAYKAN</option> <option value="PEUGEOT">PEUGEOT</option> <option value="PIAGGIO">PIAGGIO</option> <option value="PININFARINA">PININFARINA</option> <option value="PLYMOUTH">PLYMOUTH</option> <option value="PONTIAC">PONTIAC</option> <option value="PORSCHE">PORSCHE</option> <option value="PREMIER">PREMIER</option> <option value="PROTON">PROTON</option> <option value="PUCH">PUCH</option> <option value="RANGER">RANGER</option> <option value="RAYTON FISSORE">RAYTON FISSORE</option> <option value="RELIANT">RELIANT</option> <option value="RENAULT">RENAULT</option> <option value="RENAULT TRUCKS">RENAULT TRUCKS</option> <option value="RILEY">RILEY</option> <option value="ROLLS-ROYCE">ROLLS-ROYCE</option> <option value="ROVER">ROVER</option> <option value="SAAB">SAAB</option> <option value="SANTANA">SANTANA</option> <option value="SCANIA">SCANIA</option> <option value="SEAT">SEAT</option> <option value="SETRA">SETRA</option> <option value="SHELBY">SHELBY</option> <option value="SIPANI">SIPANI</option> <option value="SKODA">SKODA</option> <option value="SMART">SMART</option> <option value="SOLARIS">SOLARIS</option> <option value="SPECTRE">SPECTRE</option> <option value="SSANGYONG">SSANGYONG</option> <option value="STANDARD">STANDARD</option> <option value="SUBARU">SUBARU</option> <option value="SUZUKI">SUZUKI</option> <option value="TALBOT">TALBOT</option> <option value="TATA (TELCO)">TATA (TELCO)</option> <option value="TOYOTA">TOYOTA</option> <option value="TRABANT">TRABANT</option> <option value="TRIUMPH">TRIUMPH</option> <option value="TVR">TVR</option> <option value="UAZ">UAZ</option> <option value="UMM">UMM</option> <option value="VAUXHALL">VAUXHALL</option> <option value="VECTOR">VECTOR</option> <option value="VOLVO">VOLVO</option> <option value="VW">VW</option> <option value="WARTBURG">WARTBURG</option> <option value="WESTFIELD">WESTFIELD</option> <option value="WIESMANN">WIESMANN</option> <option value="WOLSELEY">WOLSELEY</option> <option value="YULON">YULON</option> <option value="ZASTAVA">ZASTAVA</option> <option value="ZAZ">ZAZ</option> </select></td>
<td><span id="form_required_field">модель</span></td>
<td><input class="TextBox" style="width: 170px;" type="text" name="model" value="" /></td>
</tr>
<tr class="even">
<td>выпуск</td>
<td><span id="form_required_field">год</span>  <select id="1" style="width: 50px;" name="year"> <option value="0">--</option> <option value="2015">2015</option> <option value="2014">2014</option> <option value="2013">2013</option> <option value="2012">2012</option> <option value="2011">2011</option> <option value="2010">2010</option> <option value="2009">2009</option> <option value="2008">2008</option> <option value="2007">2007</option> <option value="2006">2006</option> <option value="2005">2005</option> <option value="2004">2004</option> <option value="2003">2003</option> <option value="2002">2002</option> <option value="2001">2001</option> <option value="2000">2000</option> <option value="1999">1999</option> <option value="1998">1998</option> <option value="1997">1997</option> <option value="1996">1996</option> <option value="1995">1995</option> <option value="1994">1994</option> <option value="1993">1993</option> <option value="1992">1992</option> <option value="1991">1991</option> <option value="1990">1990</option> <option value="1989">1989</option> <option value="1988">1988</option> <option value="1987">1987</option> <option value="1986">1986</option> <option value="1985">1985</option> <option value="1984">1984</option> <option value="1983">1983</option> <option value="1982">1982</option> </select><span id="form_required_field">месяц</span>  <select id="2" name="month"> <option value="0">--</option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> </select></td>
<td><span id="form_required_field">VIN-код / № кузова </span></td>
<td><input class="TextBox" style="width: 170px;" type="text" name="vin" value="" /></td>
</tr>
<tr>
<td><span>тип кузова</span></td>
<td><select id="2" style="width: 170px;" name="bdy_type_id"> <option selected="selected" value="">- не задан -</option> <option value="1">седан</option> <option value="2">хэтчбэк</option> <option value="3">универсал</option> <option value="4">джип</option> <option value="5">купе</option> <option value="6">кабриолет</option> <option value="7">минивэн</option> <option value="8">микроавтобус</option> </select></td>
<td><span>привод</span></td>
<td><select id="4" style="width: 170px;" name="drive"> <option selected="selected" value="">- не задан -</option> <option value="передний">передний</option> <option value="задний">задний</option> <option value="полный">полный</option> </select></td>
</tr>
<tr>
<td><span>тип кпп</span></td>
<td><select id="15" style="width: 170px;" name="transmission"> <option selected="selected" value="">- не задан -</option> <option value="механическая">механическая</option> <option value="автоматическая">автоматическая</option> <option value="вариатор">вариатор</option> </select></td>
<td><span id="form_required_field">объем двс</span></td>
<td><input class="TextBox" style="width: 170px;" type="text" name="vin" value="" /></td>
</tr>
<tr>
<td colspan="4"> </td>
</tr>
<tr>
<td colspan="4">
<p align="justify">Ниже заполните информацию о требующихся запчастях. Для добавления строк используйте кнопку <img src="/add.png" alt="добавить строку" width="15" height="15" align="absmiddle" /> в шапке таблицы. Для удаления - кнопку <img src="/remove.png" alt="удалить строку" width="13" height="13" align="absmiddle" /> в соответствующей строке.</p>
<table id="partsTable" class="web_ar_datagrid" style="width: 100%;" border="1">
<tbody>
<tr><th style="text-align: center;" width="200"><span style="font-size: 10pt;">наименование</span></th><th style="text-align: center;" width="110"><span style="font-size: 10pt;">артикул</span></th><th style="text-align: center;" width="50"><span style="font-size: 10pt;">кол-во</span></th><th style="text-align: center;" width="150"><span style="font-size: 10pt;">примечание</span></th><th><a href="javascript:void(0)"><img onclick="addTableRow()" src="/add.png" alt="добавить строку" width="15" height="15" border="0" /></a></th></tr>
<tr style="display: none;">
<td><input class="TextBox" style=";
width: 200px;" type="text" name="dcc_name[]" value="" /></td>
<td><input class="TextBox" style=";
width: 110px;" type="text" name="dcc_article[]" value="" /></td>
<td><input class="TextBox" style=";
width: 50px;" type="text" name="dcc_amount[]" value="" /></td>
<td><input class="TextBox" style=";
width: 150px;" type="text" name="dcc_comment[]" value="" /></td>
<td><a href="javascript:void(0)"><img onclick="deleteTableRow(this.parentElement.parentElement.parentElement.rowIndex);" src="/remove.png" alt="удалить строку" width="13" height="13" border="0" /></a></td>
</tr>
</tbody>
</table>
<script type="mce-mce-mce-text/javascript">// <![CDATA[
function addTableRow() {

pt = getElementById('partsTable');
row = pt.insertRow(-1);

for (i=0; i < pt.rows[1].cells.length; i++) {

cell = row.insertCell(-1);
cell.innerHTML = pt.rows[1].cells[i].innerHTML;

}

}

function deleteTableRow(index) {

pt = getElementById('partsTable');
pt.deleteRow(index);

}

addTableRow();
addTableRow();
addTableRow();
addTableRow();
addTableRow();
// ]]></script>
</td>
</tr>
</tbody>
</table>
<br />
<div> </div>
<div><strong><span style="color: #000000; font-size: 10pt;">КОНТАКТНЫЕ ДАННЫЕ</span></strong></div>
<div> </div>
<div>
<table border="1">
<tbody>
<tr>
<td style="text-align: left;"><span id="form_required_field">имя</span></td>
<td style="text-align: left;"><input class="TextBox" style="width: 350px;" type="text" name="contact_first_name" value="" /></td>
</tr>
<tr>
<td><span id="form_required_field">фамилия</span></td>
<td><input class="TextBox" style="width: 350px;" type="text" name="contact_surname" value="" /></td>
</tr>
<tr>
<td><span id="form_required_field">город</span></td>
<td><input class="TextBox" style="width: 350px;" type="text" name="cst_city_name" value="" /></td>
</tr>
<tr>
<td><span id="form_required_field">контактный телефон </span></td>
<td><input class="TextBox" style="width: 173px;" type="text" name="contact_phone" value="" /></td>
</tr>
<tr>
<td style="text-align: left;"><span id="form_required_field">e-mail</span></td>
<td><input class="TextBox" style="width: 350px;" type="text" name="cst_email" value="" /></td>
<td height="5"> </td>
</tr>
</tbody>
</table>
</div>
<div> </div>
<div><input id="submitMessage" class="button_large" type="submit" name="submitMessage" value="Отправить" /></div>
</form>
{/if}
10 Июля 2015, 12:23:38
Ответ #10
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85945
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Код javascript нужно заключить в
{literal}
<script type="mce-mce-mce-text/javascript">
...
</script>
{/literal}
10 Июля 2015, 12:24:37
Ответ #11
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85945
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для такой задачи вам лучше создать отдельный модуль.
10 Июля 2015, 12:35:12
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Для такой задачи вам лучше создать отдельный модуль.
Только модулем можно подключать форму поиска. Со страницы поиск работать не будет. Один вариант, это подключение фрейма.

Ошибки в коде:
1. Про {literal} уже написали
2. У вас нет открывающего тега form
3. Не определен обработчик формы. У страниц контроллер /controllers/front/CmsController.php в нем нет функций для обработки вашей формы.

Код html я бы тоже поменял. Но это не критично.
12 Июля 2015, 12:11:45
Ответ #13
  • Новичок
  • *
  • Сообщений: 13
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для такой задачи вам лучше создать отдельный модуль.
Только модулем можно подключать форму поиска. Со страницы поиск работать не будет. Один вариант, это подключение фрейма.

Ошибки в коде:
1. Про {literal} уже написали
2. У вас нет открывающего тега form
3. Не определен обработчик формы. У страниц контроллер /controllers/front/CmsController.php в нем нет функций для обработки вашей формы.

Код html я бы тоже поменял. Но это не критично.

Спасибо за ответ! Прошу прощения, а что означает "подключение фрейма" в данном случае? И можно ли обойтись без создания модуля? По сути, мне всего лишь нужно создать страницу, где покупатель забивает данные своего автомобиля, прописывает нужные ему автозапчасти, указывает свои контактные данные и отправляет это все в виде тикета (или на мейл).
12 Июля 2015, 12:18:07
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 20837
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Без модуля этого не сделать. Вы можете только пересылать покупателья на страницу контактов, на ней он все данные должен внести в поле Сообщение. Тогда только получите эти данные.
Чтобы сделать так, как вы пишите, нужно создавать свой конроллер, который сможет получать эти данные и отправлять на почту.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!