Часто задаваемые вопросы
Часто задаваемые вопросы
Как поставить счетчик, баннер, скрипт
В themes/prestashop/footer.tpl добавляем
{literal}Код счетчика/баннера{/literal}
Как добавить или удалить поля в форме регистрации
Вариант 1
В /classes/Address.php из удалить ненужные параметры из строки:
protected $fieldsRequired = array('id_country', 'alias', 'lastname', 'firstname', 'address1', 'postcode', 'city');
В /themes/prestashop/authentication.tpl удалить ненужные поля
Вариант 2
В /themes/prestashop/authentication.tpl поставить скрытые поля с данными по умолчанию: Например для скрытия города вместо:
<input type="text" class="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}" />
ставим
<input type="hidden" name="city" value="Moskow" />
Как обойти некоторые шаги при оформлении заказа
Tools::redirect('modules/cashondelivery/validation.php');
Например чтобы пропустить все, начиная с выбора адреса используем такой фикс:
/* 4 steps to the order */ switch (intval($step)) { case 1: displayAddress(); //fix Tools::redirect('modules/cashondelivery/validation.php'); //fix break; case 2: if(Tools::isSubmit('processAddress')) processAddress(); autoStep(2); displayCarrier(); break; case 3: if(Tools::isSubmit('processCarrier')) processCarrier(); autoStep(3); checkFreeOrder(); displayPayment(); break; default: $smarty->assign('errors', $errors); displaySummary(); break; }
Как добавить популярные товары на главную
Нужно добавить его в категорию «Главная»
Как удалить названия магазина из title
В classes/Tools.php в функции completeMetaTags удалить
.' - '.Configuration::get('PS_SHOP_NAME')
Как увеличить количество букв в названии, кратком описании товара
В соответствующем файле шаблона увеличить число после truncate
{$product.name|truncate:30:'...'|escape:'htmlall':'UTF-8'}
- Для списка товаров в категории - файл /themes/prestashop/product-list.tpl
- Для популярных товаров - файл /trunk/modules/homefeatured/homefeatured.tpl
- Для корзины - файлы /modules/blockcart/blockcart.tpl, /modules/blockcart/blockcart-json.tpl. Дополнительно изменить длину в /modules/blockcart/ajax-cart.js
var name = (this.name.length > 12 ? this.name.substring(0, 10) + '...' : this.name);
Как изменить порядок отображения категорий
Перед названием категории пишем ее порядковый номер. При показе категорий он отображаться не будет.
1.Категория 1 2.Категория 2
Как удалить заказ в админке
В /admin/tabs/AdminOrders.php После
$this->colorOnBackground = true;
Добавить
$this->delete = true;
После этого рядом с заказом появится кнопка «удалить»
Как избавиться от надписи "работает на prestashop от prestashop.ru"
В /modules/blockvariouslinks/blockvariouslinks.tpl Удалить
<li class="item">{l s='Powered by' mod='blockvariouslinks'} <a href="http://www.prestashop.com">PrestaShop</a>™ от <a href="http://www.prestadev.ru/" target="_blank" title="Русская поддержка интернет-магазина PrestaShop">prestadev.ru</a> </li>
Как добавить поддержку HTML в описание товара
В classes/Category.php заменить функцию getTranslationsFieldsChild
public function getTranslationsFieldsChild() { parent::validateFieldsLang(); $fieldsArray = array('name', 'link_rewrite', 'meta_title', 'meta_keywords', 'meta_description'); $fields = array(); $languages = Language::getLanguages(); $defaultLanguage = Configuration::get('PS_LANG_DEFAULT'); foreach ($languages as $language) { $fields[$language['id_lang']]['id_lang'] = $language['id_lang']; $fields[$language['id_lang']][$this->identifier] = intval($this->id); $fields[$language['id_lang']]['description'] = (isset($this->description[$language['id_lang']])) ? pSQL($this->description[$language['id_lang']], true) : ''; foreach ($fieldsArray as $field) { if (!Validate::isTableOrIdentifier($field)) die(Tools::displayError()); /* Check fields validity */ if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']])) $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]); elseif (in_array($field, $this->fieldsRequiredLang)) $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]); else $fields[$language['id_lang']][$field] = ''; } } return $fields; }
Дополнительно можно добавить визуальный редактор. В /admin/tabs/AdminCategories.php заменяем
<div class="lang_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $this->_defaultFormLanguage ? 'block' : 'none').'; float: left;"> <textarea name="description_'.$language['id_lang'].'" rows="5" cols="40">'.htmlentities($this->getFieldValue($obj, 'description', intval($language['id_lang'])), ENT_COMPAT, 'UTF-8').'</textarea> </div>';
На
<div class="lang_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $this->_defaultFormLanguage ? 'block' : 'none').'; float: left;"> <textarea class="rte" name="description_'.$language['id_lang'].'" rows="5" cols="40">'.htmlentities($this->getFieldValue($obj, 'description', intval($language['id_lang'])), ENT_COMPAT, 'UTF-8').'</textarea> </div> // TinyMCE global $cookie; $iso = Language::getIsoById(intval($cookie->id_lang)); echo ' <script type="text/javascript" src="'.__PS_BASE_URI__.'js/tinymce/jscripts/tiny_mce/jquery.tinymce.js"></script> <script type="text/javascript"> function tinyMCEInit(element) { $().ready(function() { $(element).tinymce({ // Location of TinyMCE script script_url : \''.__PS_BASE_URI__.'js/tinymce/jscripts/tiny_mce/tiny_mce.js\', // General options theme : "advanced", plugins : "safari,pagebreak,style,layer,table,advimage,advlink,inlinepopups,media,searchreplace,contextmenu,paste,directionality,fullscreen", // Theme options theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect", theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,,|,forecolor,backcolor", theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,media,|,ltr,rtl,|,fullscreen", theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,pagebreak", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : false, content_css : "'.__PS_BASE_URI__.'themes/'._THEME_NAME_.'/css/global.css", document_base_url : "'.__PS_BASE_URI__.'", width: "582", height: "auto", font_size_style_values : "8pt, 10pt, 12pt, 14pt, 18pt, 24pt, 36pt", // Drop lists for link/image/media/template dialogs template_external_list_url : "lists/template_list.js", external_link_list_url : "lists/link_list.js", external_image_list_url : "lists/image_list.js", media_external_list_url : "lists/media_list.js", elements : "nourlconvert", convert_urls : false, language : "'.(file_exists(_PS_ROOT_DIR_.'/js/tinymce/jscripts/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en').'" }); }); } tinyMCEInit(\'textarea.rte\'); </script> ';
Как перенести папку img на другой хост
В /classes/Link.php заменить функцию getImageLink на:
public function getImageLink($name, $ids, $type = null) { return ($this->allow == 1) ? ('newhost.ru/'.$ids.($type ? '-'.$type : '').'/'.$name.'.jpg') : ('newhost.ru/img/p/'.$ids.($type ? '-'.$type : '').'.jpg'); }
Как увеличить качество изображений
В images.inc.php найти код:
imagejpeg($newImage, _PS_TMP_IMG_DIR_.$cacheImage, 86);
И заменить 86 на 100.