Часто задаваемые вопросы

Часто задаваемые вопросы

Как поставить счетчик, баннер, скрипт

В 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" />

Как обойти некоторые шаги при оформлении заказа

Для версии 1.2.x

В order.php в нужном месте ставим редирект

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>&trade; 
от <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.

faq.txt · Последние изменения: 2015/12/27 16:22 (внешнее изменение)