Автор Тема: Внутренняя перелинковка  (Прочитано 1046 раз)

23 Октябрь 2012, 16:44:35
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Существует следующая проблема.
На сайте клиента необходимо выполнить внутреннюю перелинковку. Автоматический скрипт поставить не можем. Надо линковать вручную. Но когда заходишь, к примеру, в какой-нибудь раздел каталога в описании нет возможности ни поставить ссылку с помощью редактора, ни перейти в исходный код. Вот как это выглядит (http://clip2net.com/s/2qoie).
Можно ли как-нибудь решить эту проблему. Может какой модуль или плагин с редактором поставить можно?
23 Октябрь 2012, 18:08:02
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86543
  • Репутация: +25419/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Чтобы добавлять ссылки в описание категории, нужно будет использовать редактор и разрешить вставку тегов.
1. Изменить или перегрузить Category.php.
class Category extends CategoryCore
{
     public function getTranslationsFieldsChild() {
             self::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']])) ? Tools::htmlentitiesDecodeUTF8(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;
     }
}
изменить 
‘description’ => ‘isCleanHtml’ на
‘description’ => ‘isString’2. Конроллер CategoryController.php
class CategoryController extends CategoryControllerCore {
    public function process()
    {
           $category_description = $this->category->description;
            parent::process();
            $this->category->description = $category_description;
    }
}
3. Добавить редактор в  AdminCategories.php
/* Add TinyMCE */
global $cookie;
$iso = Language::getIsoById((int)($cookie->id_lang));
$isoTinyMCE = (file_exists(_PS_ROOT_DIR_.'/js/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en');
$ad = dirname($_SERVER["PHP_SELF"]);
echo '
         <script type="text/javascript">
              var iso = \''.$isoTinyMCE.'\' ;
              var pathCSS = \''._THEME_CSS_DIR_.'\' ;
              var ad = \''.$ad.'\' ;
          </script>
          <script type="text/javascript" src="'.__PS_BASE_URI__.'js/tiny_mce/tiny_mce.js"></script>
          <script type="text/javascript" src="'.__PS_BASE_URI__.'js/tinymce.inc.js"></script>';
 /* End TinyMCE */
24 Октябрь 2012, 17:21:40
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 21092
  • Репутация: +25282/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Тогда и AdminTab нужно будет менять. Там же проверка поля description, не проопустит ссылки.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!