Как добавить смайлы в Ckeditor + Wysiwyg - Drupa7

Ckeditor свои смайлы drupal 7

Связка CKeditor 4.* + Wysiwig работает только при утановке dev версии Wysiwig. (на момент написания статьи). Иначе Wysiwig не принимает новую версию ckeditor-а

 

Для замены набора смайлов (smiles) своим набором необходимо сначала внедрить свой кастомный config.js 
Любые изменеия этого вайла в папке /libraries/ckeditor не будут восприниматься редактором.

 

Создадим модуль для внедрения своего config.js 

ckeditor_settings.info

name = CKEditor Config
description = Integrates custom config.js for CKEditor
core = 7.x
dependencies[] = wysiwyg
package = Add Prosto

 

ckeditor_settings.module

<?php
/**
 * Implements hook_wysiwyg_editor_settings_alter()
 */
function ckeditor_settings_wysiwyg_editor_settings_alter(&$settings, $context)
{
    // The $context variable contains information about the wysiwyg profile we're using
    // In this case we just need to check that the editor being used is ckeditor
    if ($context['profile']->editor == 'ckeditor')
    {

        // The $settings variable contains all the config options ckeditor uses. 
        // The array keys correspond directly with any setting that can be applied 
        // to CKEditor - as outlined in the CKEditor docs: 
        // http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html 
        // Another way to override configuration is to use your own configuration javascript
        // file. In this case, we're going to add our own configuration file that will
        // Hold our stylesSet customizations... 
        $settings['customConfig'] = base_path() . drupal_get_path('module', 'ckeditor_settings') . '/ckeditor_custom_config.js';
    }
}

 

Далее необходимо стоздать файл ckeditor_custom_config.js в корне с модулем. Это уже модифицированный файл настроек, который скушает ckeditor.

 

Смайлы. За смайлы в CKEditor'e отвечает плагин Insert Smiley, он в ходит в стандартный пакет - Full Package.

Так выгледят смайлы из коробки:

image info drupal 7

 

Стандартный файл config.js

/**
 * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or http://ckeditor.com/license
 */

CKEDITOR.editorConfig = function( config ) {
    // Define changes to default configuration here. For example:
    // config.language = 'fr';
    // config.uiColor = '#AADC6E';
};

В этот файл добавляем следующие строки:

Путь до папки с изображениями smiley_path:

config.smiley_path = '/sites/default/files/smileys/';

Имена файлов (изображений), которые будут отображаться smiley_images:

config.smiley_images = ['smile_1.png','smile_2.png'];

Description (описание при наведении) smiley_descriptions

config.smiley_descriptions = ['description-1', 'description-2'];

Так же можно указат во сколько колонок выводить смайлы (по умолчанию: 8) smiley_columns

config.smiley_columns = 6;

Вот что из этого получилось: 

image info drupal 7