Модули для PrestaShop - 2 часть

Статус
В этой теме нельзя размещать новые ответы.
Спасибо. Но думаю что на вархаусе есть решение попроще и я не понимаю как это сделать. Пересмотрел все настройки - у меня картинкой, на демке текстом)
Интересная особенность: ставлю шаблон на локалку, стандартные производители на странице с товаром отображаются текстом, новые - картинкой.
Мне вот что помогло:
в файле product.tpl строку
{if file_exists($myfile)}<img itemprop="image" class="imglog" src="{$base_dir_ssl}img/m/{$product_manufacturer->id_manufacturer}-mf_image2.jpg" />{else}<div class="manname">{l s='Manufacturer:'} {$product_manufacturer->name}</div>{/if}</a> {/if}
заменил на:
<div class="manname">{l s='Manufacturer:'} {$product_manufacturer->name}</div>
В итоге на странице с товаром производитель текстом, а на слайдере производителей - картинкой.
Однако! Если производитель не указан, то отобразится значок --> вместо названия.
Не подскажешь как сделать блок информации справа на странице с товаром? :)
 
Последнее редактирование:
Судя по коду можно попробовать убрать проверку при регистрации вместо:
if (sizeof($response)){
if ($response[1] == 'error'){
$this->_errors[] = $response[2];
}elseif ($response[1] == 'conf'){
$__domain = str_ireplace("www.", "", strtolower($_SERVER['SERVER_NAME']));
$__domain = md5($__domain . 't3mp0r4l');
if (version_compare(_PS_VERSION_, '1.5') >= 0){
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain, $id_shop_group, $id_shop);
}else{
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain);
}

$this->_html .= $this->displayConfirmation($response[2]);
}
}

оставить только:

$__domain = str_ireplace("www.", "", strtolower($_SERVER['SERVER_NAME']));
$__domain = md5($__domain . 't3mp0r4l');
if (version_compare(_PS_VERSION_, '1.5') >= 0){
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain, $id_shop_group, $id_shop);
}else{
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain);
}



$this->_html .= $this->displayConfirmation('success!');
 
ломая модули отечественных разработчиков, добьетесь только одного-повышения стоимости и дополнительной защиты от взлома. Уважайте труд и развитие своих соотечественников.
Для просмотра ссылки Войди или Зарегистрируйся Jehyson Bustamante огорчен такими заявлениями
 
Спасибо. Но думаю что на вархаусе есть решение попроще и я не понимаю как это сделать. Пересмотрел все настройки - у меня картинкой, на демке текстом)
Интересная особенность: ставлю шаблон на локалку, стандартные производители на странице с товаром отображаются текстом, новые - картинкой.
Мне вот что помогло:
Однако! Если производитель не указан, то отобразится значок --> вместо названия.
Не подскажешь как сделать блок информации справа на странице с товаром? :)
Новый косяк: теперь краткое описание товара становится ссылкой на страницу производителя. Короче, бардак... Есть идеи?

Updated: по-моему, ошибку нашел - не закрыл <a>...
 
Последнее редактирование:
Судя по коду можно попробовать убрать проверку при регистрации вместо:
if (sizeof($response)){
if ($response[1] == 'error'){
$this->_errors[] = $response[2];
}elseif ($response[1] == 'conf'){
$__domain = str_ireplace("www.", "", strtolower($_SERVER['SERVER_NAME']));
$__domain = md5($__domain . 't3mp0r4l');
if (version_compare(_PS_VERSION_, '1.5') >= 0){
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain, $id_shop_group, $id_shop);
}else{
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain);
}

$this->_html .= $this->displayConfirmation($response[2]);
}
}

оставить только:

$__domain = str_ireplace("www.", "", strtolower($_SERVER['SERVER_NAME']));
$__domain = md5($__domain . 't3mp0r4l');
if (version_compare(_PS_VERSION_, '1.5') >= 0){
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain, $id_shop_group, $id_shop);
}else{
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain);
}

$this->_html .= $this->displayConfirmation('success!');
там еще есть какая-то стучалка, после замены он инсталится, дает зайти в настройки, но через некоторое время блокирует

It is necessary to first register the module for use.
Remember that a license is only valid for domain (store).
 
в onepagecheckoutps.php вместо

if (!$tmp_valid)
Configuration::updateValue('OPC_RM', '0');

написать

if (!$tmp_valid)
Configuration::updateValue('OPC_RM', '1');

или вообще удалить этот блок между комментариями
//--------------------NO ESTA PERMITIDO LA MODIFICACION O DECODIFICACION DE ESTO-----------------------------
...
//-----------------------------------------------------------------------------------------------------------
 
в onepagecheckoutps.php вместо

if (!$tmp_valid)
Configuration::updateValue('OPC_RM', '0');

написать

if (!$tmp_valid)
Configuration::updateValue('OPC_RM', '1');

или вообще удалить этот блок между комментариями
//--------------------NO ESTA PERMITIDO LA MODIFICACION O DECODIFICACION DE ESTO-----------------------------
...
//-----------------------------------------------------------------------------------------------------------
неа все так же, закомментил, ловит через 3 минуты

OnePageCheckoutPSCore.php
было
/*
if (sizeof($response)){
if ($response[0] == '6'){
$__domain = str_ireplace("www.", "", strtolower($_SERVER['SERVER_NAME']));
$__domain = md5($__domain . 't3mp0r4l');
if (version_compare(_PS_VERSION_, '1.5') >= 0){
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain, $id_shop_group, $id_shop);
}else{
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain);
}

Configuration::updateValue($this->prefix_module . '_RM', '1', $id_shop_group, $id_shop);

$this->configVars = $this->getConfigMultiple();
}

if ($response[1] == 'error'){
$this->_errors[] = $response[2];
}elseif ($response[1] == 'conf'){
$this->_html .= $this->displayConfirmation($response[2]);
}
} */

стало
$__domain = str_ireplace("www.", "", strtolower($_SERVER['SERVER_NAME']));
$__domain = md5($__domain . 't3mp0r4l');
if (version_compare(_PS_VERSION_, '1.5') >= 0){
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain, $id_shop_group, $id_shop);
}else{
Configuration::updateValue($this->prefix_module . '_DOMAIN', $__domain);
}



$this->_html .= $this->displayConfirmation('success!');


и в onepagecheckoutps.php

закомментировал
//--------------------NO ESTA PERMITIDO LA MODIFICACION O DECODIFICACION DE ESTO-----------------------------
...
//-----------------------------------------------------------------------------------------------------------
 
Последнее редактирование:
неа все так же, закомментил, ловит через 3 минуты
Если вы уже получили один раз отлуп, то значит записался 0 в базу вместо 1. Надо поставить значение OPC_RM в таблице конфигурации на 1 вместо 0 вручную.
 
Запрещение автоматического перевода в нижний регистр ЧПУ при любых сохранениях/изменениях в админке

Эта функция реализована на JS, а не PHP...
В корне проекта есть папка JS
В ней есть файл admin.js
В нём, в самом начале, есть функция str2url.
Она отвечает за конвертацию урлов.
Её нужно заменить на следующую:

function str2url(str, encoding, ucfirst)
{
if (PS_ALLOW_ACCENTED_CHARS_URL){
str = str.replace(/[^a-z0-9\s\'\:\/\[\]-]\\u00A1-\\uFFFF/g,'');
} else {
str = str.replace(/[^a-zA-Zа-яА-Я0-9\s\'\:\/\[\]-]/g,'');
}
str = str.replace(/[\u0028\u0029\u0021\u003F\u002E\u0026\u005E\u007E\u002B\u002A\u002F\u003A\u003B\u003C\u003D\u003E]/g, '');
str = str.replace(/[\s\'\:\/\[\]-]+/g, ' ');

str = str.replace(/[ ]/g, '-');
str = str.replace(/[\/\\"'|,;]*/g, '');

if (ucfirst == 1) {
var first_char = str.charAt(0);
str = first_char.toUpperCase()+str.slice(1);
}

return str;
}

Новая функция проверяет на наличие "недопустимых символов", но не изменяет регистр и не транслитерирует кириллицу.


для чего:

для аккуратного визуального существования УРЛов, например,
Для просмотра ссылки Войди или Зарегистрируйся
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху