Автор Тема: Как добавить текст с прокруткой в блоке CMS?  (Прочитано 2047 раз)

12 Ноябрь 2014, 10:57:03
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Установил Custom CMS information block, вставляю код див прокрутки текста, но по сохранению всё обрезается, и нет никакой прокрутки, а идет просто текст по размеру блока и всё.... то есть - полностью длинный текст не вставишь, и прокрутка не работает... Подскажите плиз, как можно решить эту проблему?
Код вставляю по типу -
<div style="width: 100px; height: 100px;">.... При рпедпросмотре в САМОМ меню МОДУЛЯ все ОК, а после сохранения всё......
Спасибо!!!
12 Ноябрь 2014, 11:11:17
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Код модуля смотрите. Если вырезает теги, значит в модуле у этого поля нужно поменять проверку на тип данных.
12 Ноябрь 2014, 11:13:38
Ответ #2
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Код модуля смотрите. Если вырезает теги, значит в модуле у этого поля нужно поменять проверку на тип данных.
А не подскажете ПОЖАЛУЙСТА, как это сделать и где модуль искать на хостинге?
Я просто меньше недели как с престашоп работаю)
Спасибо!!!
12 Ноябрь 2014, 12:14:35
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Все модули находяться в папке modules. Этот модуль не стандарный и вам самому нужно смотреть, что в нем вас не устраивает.
В файле /modules/название_вашего_модуля/название_вашего_модуля.php вы найдете все данные о работе этого модуля.
12 Ноябрь 2014, 23:31:38
Ответ #4
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Это где-то здесь?
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2014 PrestaShop SA

*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

if (!defined('_PS_VERSION_'))
exit;

require_once 
_PS_MODULE_DIR_.'blockcmsinfo/classes/InfoBlock.php';

class 
Blockcmsinfo extends Module
{
public $html '';

public function __construct()
{
$this->name 'blockcmsinfo';
$this->tab 'front_office_features';
$this->version '1.5.2';
$this->author 'PrestaShop';
$this->bootstrap true;
$this->need_instance 0;

parent::__construct();

$this->displayName $this->l('Custom CMS information block');
$this->description $this->l('Adds custom information blocks in your store.');
$this->ps_versions_compliancy = array('min' => '1.6''max' => _PS_VERSION_);
}

public function install()
{
return  parent::install() &&
$this->installDB() &&
$this->registerHook('home') &&
$this->installFixtures() &&
$this->disableDevice(Context::DEVICE_TABLET Context::DEVICE_MOBILE);
}

public function installDB()
{
$return true;
$return &= Db::getInstance()->execute('
CREATE TABLE IF NOT EXISTS `'
._DB_PREFIX_.'info` (
`id_info` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`id_shop` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id_info`)
) ENGINE='
._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 ;'
);

$return &= Db::getInstance()->execute('
CREATE TABLE IF NOT EXISTS `'
._DB_PREFIX_.'info_lang` (
`id_info` INT UNSIGNED NOT NULL,
`id_lang` int(10) unsigned NOT NULL ,
`text` text NOT NULL,
PRIMARY KEY (`id_info`, `id_lang`)
) ENGINE='
._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 ;'
);

return $return;
}

public function uninstall()
{
return parent::uninstall() && $this->uninstallDB();
}

public function uninstallDB($drop_table true)
{
$ret true;
if($drop_table)
$ret &=  Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'info`') && Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'info_lang`');

return $ret;
}

public function getContent()
{
$id_info = (int)Tools::getValue('id_info');

if (Tools::isSubmit('saveblockcmsinfo'))
{
if ($this->processSaveCmsInfo())
return $this->html $this->renderList();
else
return $this->html $this->renderForm();
}
elseif (Tools::isSubmit('updateblockcmsinfo') || Tools::isSubmit('addblockcmsinfo'))
{
$this->html .= $this->renderForm();
return $this->html;
}
else if (Tools::isSubmit('deleteblockcmsinfo'))
{
$info = new InfoBlock((int)$id_info);
$info->delete();
$this->_clearCache('blockcmsinfo.tpl');
Tools::redirectAdmin(AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules'));
}
else
{
$this->html .= $this->renderList();
return $this->html;
}

}

public function processSaveCmsInfo()
{
if ($id_info Tools::getValue('id_info'))
$info = new InfoBlock((int)$id_info);
else
{
$info = new InfoBlock();
if (Shop::isFeatureActive())
{
$shop_ids Tools::getValue('checkBoxShopAsso_configuration');
if (!$shop_ids)
{
$this->html .= '<div class="alert alert-danger conf error">'.$this->l('You have to select at least one shop.').'</div>';
return false;
}
}
else
$info->id_shop Shop::getContextShopID();
}

$languages Language::getLanguages(false);
$text = array();
foreach ($languages AS $lang)
$text[$lang['id_lang']] = Tools::getValue('text_'.$lang['id_lang']);
$info->text $text;

if (Shop::isFeatureActive() && !$info->id_shop)
{
$saved true;
foreach ($shop_ids as $id_shop)
{
$info->id_shop $id_shop;
$saved &= $info->add();
}
}
else
$saved $info->save();

if ($saved)
$this->_clearCache('blockcmsinfo.tpl');
else
$this->html .= '<div class="alert alert-danger conf error">'.$this->l('An error occurred while attempting to save.').'</div>';

return $saved;
}


protected function renderForm()
{
$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');

$fields_form = array(
'tinymce' => true,
'legend' => array(
'title' => $this->l('New custom CMS block'),
),
'input' => array(
'id_info' => array(
'type' => 'hidden',
'name' => 'id_info'
),
'content' => array(
'type' => 'textarea',
'label' => $this->l('Text'),
'lang' => true,
'name' => 'text',
'cols' => 40,
'rows' => 10,
'class' => 'rte',
'autoload_rte' => true,
),
),
'submit' => array(
'title' => $this->l('Save'),
),
'buttons' => array(
array(
'href' => AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules'),
'title' => $this->l('Back to list'),
'icon' => 'process-icon-back'
)
)
);

if (Shop::isFeatureActive() && Tools::getValue('id_info') == false)
{
$fields_form['input'][] = array(
'type' => 'shop',
'label' => $this->l('Shop association'),
'name' => 'checkBoxShopAsso_theme'
);
}


$helper = new HelperForm();
$helper->module $this;
$helper->name_controller 'blockcmsinfo';
$helper->identifier $this->identifier;
$helper->token Tools::getAdminTokenLite('AdminModules');
foreach (Language::getLanguages(false) as $lang)
$helper->languages[] = array(
'id_lang' => $lang['id_lang'],
'iso_code' => $lang['iso_code'],
'name' => $lang['name'],
'is_default' => ($default_lang == $lang['id_lang'] ? 0)
);

$helper->currentIndex AdminController::$currentIndex.'&configure='.$this->name;
$helper->default_form_language $default_lang;
$helper->allow_employee_form_lang $default_lang;
$helper->toolbar_scroll true;
$helper->title $this->displayName;
$helper->submit_action 'saveblockcmsinfo';

$helper->fields_value $this->getFormValues();

return $helper->generateForm(array(array('form' => $fields_form)));
}

protected function renderList()
{
$this->fields_list = array();
$this->fields_list['id_info'] = array(
'title' => $this->l('Block ID'),
'type' => 'text',
'search' => false,
'orderby' => false,
);

if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_SHOP)
$this->fields_list['shop_name'] = array(
'title' => $this->l('Shop'),
'type' => 'text',
'search' => false,
'orderby' => false,
);

$this->fields_list['text'] = array(
'title' => $this->l('Block text'),
'type' => 'text',
'search' => false,
'orderby' => false,
);

$helper = new HelperList();
$helper->shopLinkType '';
$helper->simple_header false;
$helper->identifier 'id_info';
$helper->actions = array('edit''delete');
$helper->show_toolbar true;
$helper->imageType 'jpg';
$helper->toolbar_btn['new'] = array(
'href' => AdminController::$currentIndex.'&configure='.$this->name.'&add'.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules'),
'desc' => $this->l('Add new')
);

$helper->title $this->displayName;
$helper->table $this->name;
$helper->token Tools::getAdminTokenLite('AdminModules');
$helper->currentIndex AdminController::$currentIndex.'&configure='.$this->name;

$content $this->getListContent($this->context->language->id);

return $helper->generateList($content$this->fields_list);
}

protected function getListContent($id_lang null)
{
if (is_null($id_lang))
$id_lang = (int)Configuration::get('PS_LANG_DEFAULT');

$sql 'SELECT r.`id_info`, rl.`text`, s.`name` as shop_name
FROM `'
._DB_PREFIX_.'info` r
LEFT JOIN `'
._DB_PREFIX_.'info_lang` rl ON (r.`id_info` = rl.`id_info`)
LEFT JOIN `'
._DB_PREFIX_.'shop` s ON (r.`id_shop` = s.`id_shop`)
WHERE `id_lang` = '
.(int)$id_lang.' AND (';

if ($shop_ids Shop::getContextListShopID())
foreach ($shop_ids as $id_shop)
$sql .= ' r.`id_shop` = '.(int)$id_shop.' OR ';

$sql .= ' r.`id_shop` = 0 )';

$content Db::getInstance()->executeS($sql);

foreach ($content as $key => $value)
$content[$key]['text'] = substr(strip_tags($value['text']), 0200);

return $content;
}

public function getFormValues()
{
$fields_value = array();
$id_info = (int)Tools::getValue('id_info');

foreach (Language::getLanguages(false) as $lang)
if ($id_info)
{
$info = new InfoBlock((int)$id_info);
$fields_value['text'][(int)$lang['id_lang']] = $info->text[(int)$lang['id_lang']];
}
else
$fields_value['text'][(int)$lang['id_lang']] = Tools::getValue('text_'.(int)$lang['id_lang'], '');

$fields_value['id_info'] = $id_info;

return $fields_value;
}

public function hookHome($params)
{
$this->context->controller->addCSS($this->_path.'style.css''all');
if (!$this->isCached('blockcmsinfo.tpl'$this->getCacheId()))
{
$infos $this->getInfos($this->context->language->id$this->context->shop->id);
$this->context->smarty->assign(array('infos' => $infos'nbblocks' => count($infos)));
}

return $this->display(__FILE__'blockcmsinfo.tpl'$this->getCacheId());
}

public function getInfos($id_lang$id_shop)
{
$sql 'SELECT r.`id_info`, r.`id_shop`, rl.`text`
FROM `'
._DB_PREFIX_.'info` r
LEFT JOIN `'
._DB_PREFIX_.'info_lang` rl ON (r.`id_info` = rl.`id_info`)
WHERE `id_lang` = '
.(int)$id_lang.' AND  `id_shop` = '.(int)$id_shop;

return Db::getInstance()->executeS($sql);
}

public function installFixtures()
{
$return true;
$tab_texts = array(
array(
'text' => '<ul>
<li><em class="icon-truck" id="icon-truck"></em>
<div class="type-text">
<h3>Lorem Ipsum</h3>
<p>Lorem ipsum dolor sit amet conse ctetur voluptate velit esse cillum dolore eu</p>
</div>
</li>
<li><em class="icon-phone" id="icon-phone"></em>
<div class="type-text">
<h3>Dolor Sit Amet</h3>
<p>Lorem ipsum dolor sit amet conse ctetur voluptate velit esse cillum dolore eu</p>
</div>
</li>
<li><em class="icon-credit-card" id="icon-credit-card"></em>
<div class="type-text">
<h3>Ctetur Voluptate</h3>
<p>Lorem ipsum dolor sit amet conse ctetur voluptate velit esse cillum dolore eu</p>
</div>
</li>
</ul>'
),
array(
'text' => '<h3>Custom Block</h3>
<p><strong class="dark">Lorem ipsum dolor sit amet conse ctetu</strong></p>
<p>Sit amet conse ctetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit.</p>'
),
);

$shops_ids Shop::getShops(truenulltrue);
$return true;
foreach ($tab_texts as $tab)
{
$info = new InfoBlock();
foreach (Language::getLanguages(false) as $lang)
$info->text[$lang['id_lang']] = $tab['text'];
foreach ($shops_ids as $id_shop)
{
$info->id_shop $id_shop;
$return &= $info->add();
}
}

return $return;
}
}
13 Ноябрь 2014, 09:30:08
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Блоки html добавляют в шаблон TPL.
13 Ноябрь 2014, 11:39:06
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
$content[$key]['text'] = substr(strip_tags($value['text']), 0, 200);
strip_tags
Эта функция возвращает строку str, из которой удалены HTML и PHP тэги.
13 Ноябрь 2014, 15:56:41
Ответ #7
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$content[$key]['text'] = substr(strip_tags($value['text']), 0, 200);
strip_tags
Эта функция возвращает строку str, из которой удалены HTML и PHP тэги.

Спасибище!!!
Только не могу найти файл, в какой вставлять.... Нашел две папки, одна blockcms вторая blockcmsinfo.....
13 Ноябрь 2014, 16:26:09
Ответ #8
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
где-то здесь?

<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <contact@prestashop.com>
*  @copyright  2007-2014 PrestaShop SA

*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

if (!defined('_PS_VERSION_'))
exit;

require_once 
_PS_MODULE_DIR_.'blockcmsinfo/classes/InfoBlock.php';

class 
Blockcmsinfo extends Module
{
public $html '';

public function __construct()
{
$this->name 'blockcmsinfo';
$this->tab 'front_office_features';
$this->version '1.5.2';
$this->author 'PrestaShop';
$this->bootstrap true;
$this->need_instance 0;

parent::__construct();

$this->displayName $this->l('Custom CMS information block');
$this->description $this->l('Adds custom information blocks in your store.');
$this->ps_versions_compliancy = array('min' => '1.6''max' => _PS_VERSION_);
}

public function install()
{
return  parent::install() &&
$this->installDB() &&
$this->registerHook('home') &&
$this->installFixtures() &&
$this->disableDevice(Context::DEVICE_TABLET Context::DEVICE_MOBILE);
}

public function installDB()
{
$return true;
$return &= Db::getInstance()->execute('
CREATE TABLE IF NOT EXISTS `'
._DB_PREFIX_.'info` (
`id_info` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`id_shop` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id_info`)
) ENGINE='
._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 ;'
);

$return &= Db::getInstance()->execute('
CREATE TABLE IF NOT EXISTS `'
._DB_PREFIX_.'info_lang` (
`id_info` INT UNSIGNED NOT NULL,
`id_lang` int(10) unsigned NOT NULL ,
`text` text NOT NULL,
PRIMARY KEY (`id_info`, `id_lang`)
) ENGINE='
._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 ;'
);

return $return;
}

public function uninstall()
{
return parent::uninstall() && $this->uninstallDB();
}

public function uninstallDB($drop_table true)
{
$ret true;
if($drop_table)
$ret &=  Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'info`') && Db::getInstance()->execute('DROP TABLE IF EXISTS `'._DB_PREFIX_.'info_lang`');

return $ret;
}

public function getContent()
{
$id_info = (int)Tools::getValue('id_info');

if (Tools::isSubmit('saveblockcmsinfo'))
{
if ($this->processSaveCmsInfo())
return $this->html $this->renderList();
else
return $this->html $this->renderForm();
}
elseif (Tools::isSubmit('updateblockcmsinfo') || Tools::isSubmit('addblockcmsinfo'))
{
$this->html .= $this->renderForm();
return $this->html;
}
else if (Tools::isSubmit('deleteblockcmsinfo'))
{
$info = new InfoBlock((int)$id_info);
$info->delete();
$this->_clearCache('blockcmsinfo.tpl');
Tools::redirectAdmin(AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules'));
}
else
{
$this->html .= $this->renderList();
return $this->html;
}

}

public function processSaveCmsInfo()
{
if ($id_info Tools::getValue('id_info'))
$info = new InfoBlock((int)$id_info);
else
{
$info = new InfoBlock();
if (Shop::isFeatureActive())
{
$shop_ids Tools::getValue('checkBoxShopAsso_configuration');
if (!$shop_ids)
{
$this->html .= '<div class="alert alert-danger conf error">'.$this->l('You have to select at least one shop.').'</div>';
return false;
}
}
else
$info->id_shop Shop::getContextShopID();
}

$languages Language::getLanguages(false);
$text = array();
foreach ($languages AS $lang)
$text[$lang['id_lang']] = Tools::getValue('text_'.$lang['id_lang']);
$info->text $text;

if (Shop::isFeatureActive() && !$info->id_shop)
{
$saved true;
foreach ($shop_ids as $id_shop)
{
$info->id_shop $id_shop;
$saved &= $info->add();
}
}
else
$saved $info->save();

if ($saved)
$this->_clearCache('blockcmsinfo.tpl');
else
$this->html .= '<div class="alert alert-danger conf error">'.$this->l('An error occurred while attempting to save.').'</div>';

return $saved;
}


protected function renderForm()
{
$default_lang = (int)Configuration::get('PS_LANG_DEFAULT');

$fields_form = array(
'tinymce' => true,
'legend' => array(
'title' => $this->l('New custom CMS block'),
),
'input' => array(
'id_info' => array(
'type' => 'hidden',
'name' => 'id_info'
),
'content' => array(
'type' => 'textarea',
'label' => $this->l('Text'),
'lang' => true,
'name' => 'text',
'cols' => 40,
'rows' => 10,
'class' => 'rte',
'autoload_rte' => true,
),
),
'submit' => array(
'title' => $this->l('Save'),
),
'buttons' => array(
array(
'href' => AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules'),
'title' => $this->l('Back to list'),
'icon' => 'process-icon-back'
)
)
);

if (Shop::isFeatureActive() && Tools::getValue('id_info') == false)
{
$fields_form['input'][] = array(
'type' => 'shop',
'label' => $this->l('Shop association'),
'name' => 'checkBoxShopAsso_theme'
);
}


$helper = new HelperForm();
$helper->module $this;
$helper->name_controller 'blockcmsinfo';
$helper->identifier $this->identifier;
$helper->token Tools::getAdminTokenLite('AdminModules');
foreach (Language::getLanguages(false) as $lang)
$helper->languages[] = array(
'id_lang' => $lang['id_lang'],
'iso_code' => $lang['iso_code'],
'name' => $lang['name'],
'is_default' => ($default_lang == $lang['id_lang'] ? 0)
);

$helper->currentIndex AdminController::$currentIndex.'&configure='.$this->name;
$helper->default_form_language $default_lang;
$helper->allow_employee_form_lang $default_lang;
$helper->toolbar_scroll true;
$helper->title $this->displayName;
$helper->submit_action 'saveblockcmsinfo';

$helper->fields_value $this->getFormValues();

return $helper->generateForm(array(array('form' => $fields_form)));
}

protected function renderList()
{
$this->fields_list = array();
$this->fields_list['id_info'] = array(
'title' => $this->l('Block ID'),
'type' => 'text',
'search' => false,
'orderby' => false,
);

if (Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_SHOP)
$this->fields_list['shop_name'] = array(
'title' => $this->l('Shop'),
'type' => 'text',
'search' => false,
'orderby' => false,
);

$this->fields_list['text'] = array(
'title' => $this->l('Block text'),
'type' => 'text',
'search' => false,
'orderby' => false,
);

$helper = new HelperList();
$helper->shopLinkType '';
$helper->simple_header false;
$helper->identifier 'id_info';
$helper->actions = array('edit''delete');
$helper->show_toolbar true;
$helper->imageType 'jpg';
$helper->toolbar_btn['new'] = array(
'href' => AdminController::$currentIndex.'&configure='.$this->name.'&add'.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules'),
'desc' => $this->l('Add new')
);

$helper->title $this->displayName;
$helper->table $this->name;
$helper->token Tools::getAdminTokenLite('AdminModules');
$helper->currentIndex AdminController::$currentIndex.'&configure='.$this->name;

$content $this->getListContent($this->context->language->id);

return $helper->generateList($content$this->fields_list);
}

protected function getListContent($id_lang null)
{
if (is_null($id_lang))
$id_lang = (int)Configuration::get('PS_LANG_DEFAULT');

$sql 'SELECT r.`id_info`, rl.`text`, s.`name` as shop_name
FROM `'
._DB_PREFIX_.'info` r
LEFT JOIN `'
._DB_PREFIX_.'info_lang` rl ON (r.`id_info` = rl.`id_info`)
LEFT JOIN `'
._DB_PREFIX_.'shop` s ON (r.`id_shop` = s.`id_shop`)
WHERE `id_lang` = '
.(int)$id_lang.' AND (';

if ($shop_ids Shop::getContextListShopID())
foreach ($shop_ids as $id_shop)
$sql .= ' r.`id_shop` = '.(int)$id_shop.' OR ';

$sql .= ' r.`id_shop` = 0 )';

$content Db::getInstance()->executeS($sql);

foreach ($content as $key => $value)
$content[$key]['text'] = substr(strip_tags($value['text']), 0200);

return $content;
}

public function getFormValues()
{
$fields_value = array();
$id_info = (int)Tools::getValue('id_info');

foreach (Language::getLanguages(false) as $lang)
if ($id_info)
{
$info = new InfoBlock((int)$id_info);
$fields_value['text'][(int)$lang['id_lang']] = $info->text[(int)$lang['id_lang']];
}
else
$fields_value['text'][(int)$lang['id_lang']] = Tools::getValue('text_'.(int)$lang['id_lang'], '');

$fields_value['id_info'] = $id_info;

return $fields_value;
}

public function hookHome($params)
{
$this->context->controller->addCSS($this->_path.'style.css''all');
if (!$this->isCached('blockcmsinfo.tpl'$this->getCacheId()))
{
$infos $this->getInfos($this->context->language->id$this->context->shop->id);
$this->context->smarty->assign(array('infos' => $infos'nbblocks' => count($infos)));
}

return $this->display(__FILE__'blockcmsinfo.tpl'$this->getCacheId());
}

public function getInfos($id_lang$id_shop)
{
$sql 'SELECT r.`id_info`, r.`id_shop`, rl.`text`
FROM `'
._DB_PREFIX_.'info` r
LEFT JOIN `'
._DB_PREFIX_.'info_lang` rl ON (r.`id_info` = rl.`id_info`)
WHERE `id_lang` = '
.(int)$id_lang.' AND  `id_shop` = '.(int)$id_shop;

return Db::getInstance()->executeS($sql);
}

public function installFixtures()
{
$return true;
$tab_texts = array(
array(
'text' => '<ul>
<li><em class="icon-truck" id="icon-truck"></em>
<div class="type-text">
<h3>Lorem Ipsum</h3>
<p>Lorem ipsum dolor sit amet conse ctetur voluptate velit esse cillum dolore eu</p>
</div>
</li>
<li><em class="icon-phone" id="icon-phone"></em>
<div class="type-text">
<h3>Dolor Sit Amet</h3>
<p>Lorem ipsum dolor sit amet conse ctetur voluptate velit esse cillum dolore eu</p>
</div>
</li>
<li><em class="icon-credit-card" id="icon-credit-card"></em>
<div class="type-text">
<h3>Ctetur Voluptate</h3>
<p>Lorem ipsum dolor sit amet conse ctetur voluptate velit esse cillum dolore eu</p>
</div>
</li>
</ul>'
),
array(
'text' => '<h3>Custom Block</h3>
<p><strong class="dark">Lorem ipsum dolor sit amet conse ctetu</strong></p>
<p>Sit amet conse ctetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit.</p>'
),
);

$shops_ids Shop::getShops(truenulltrue);
$return true;
foreach ($tab_texts as $tab)
{
$info = new InfoBlock();
foreach (Language::getLanguages(false) as $lang)
$info->text[$lang['id_lang']] = $tab['text'];
foreach ($shops_ids as $id_shop)
{
$info->id_shop $id_shop;
$return &= $info->add();
}
}

return $return;
}
}
13 Ноябрь 2014, 16:49:52
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В этом файле ищите
$content[$key]['text'] = substr(strip_tags($value['text']), 0, 200);и заменяете на
$content[$key]['text'] = $value['text'];так во всех файлах модуля удаляете фугкцию strip_tags.
13 Ноябрь 2014, 17:45:05
Ответ #10
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
ВСЕМ ОГРОМНОЕ СПАСИБО, но, не помогло.... Меняешь код, = не найден модуть, повторная активация модуля заменяет измененную версию=(((