[Решено] Отключить TinyMCE для некоторых полей

Главные вкладки

Аватар пользователя Bahiya Bahiya 23 февраля 2009 в 5:28

Как отключить TinyMCE для некоторых полей?
В настройках этого редактора можно указать только страницы на которых показывать или не показывать редактор, а вот насчет конкретных полей никаких упоминаний нет.

Комментарии

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 23 февраля 2009 в 9:10

в template.php такое:
<?php
function phptemplate_tinymce_theme($init, $textarea_name, $theme_name, $is_running) {
static $access, $integrated;
$init = theme_tinymce_theme($init, $textarea_name, $theme_name, $is_running);
switch ($textarea_name) {
// идентификаторы текстовых элементов - исключений.
case 'log': // book and page log
case 'img_assist_pages':
case 'caption': // signature
case 'pages':
case 'access_pages': //TinyMCE profile settings.
case 'user_mail_welcome_body': // user config settings
case 'user_mail_approval_body': // user config settings
case 'user_mail_pass_body': // user config settings
case 'synonyms': // taxonomy terms
case 'nodewords-description':
case 'description': // taxonomy terms
unset($init);
break;

// Force the 'simple' theme for some of the smaller textareas.
case 'signature':
case 'site_mission':
case 'site_footer':
case 'site_offline_message':
case 'page_help':
case 'user_registration_help':
case 'user_picture_guidelines':
$init['theme'] = 'simple';
foreach ($init as $k => $v) {
if (strstr($k, 'theme_advanced_')) unset($init[$k]);
}
break;
case 'teaser':
$init['height'] = '150px';
default:
break;
}
return $init;
}
?>

Аватар пользователя Bahiya Bahiya 23 февраля 2009 в 22:50

Спасибо большое, после некоторых манипуляций заработало. Так как в template.php уже была функция phptemplate_tinymce_theme (подключала IMCE к tinyMCE) получал чистую белую страницу. В итоге код теперь выглядит вот так:

<?php
function phptemplate_tinymce_theme($init, $textarea_name, $theme_name, $is_running) {
        static $access, $integrated;
       
        if (!isset($access)) {
                $access = function_exists('imce_access') && imce_access();
        }
       
        $init = theme_tinymce_theme($init, $textarea_name, $theme_name, $is_running);
       
        if ($init && $access) {
                $init['file_browser_callback'] = 'imceImageBrowser';
                if (!isset($integrated)) {
                $integrated = TRUE;
                drupal_add_js("function imceImageBrowser(fid, url, type, win) {win.open(Drupal.settings.basePath +'?q=imce&app=TinyMCE|url@'+ fid, '', 'width=760,height=560,resizable=1');}", 'inline');
                }
        }
       
  switch ($textarea_name) {
        // идентификаторы текстовых элементов - исключений.
        case 'log': // book and page log
        case 'img_assist_pages':
        case 'caption': // signature
        case 'pages':
        case 'access_pages': //TinyMCE profile settings.
        case 'user_mail_welcome_body': // user config settings
        case 'user_mail_approval_body': // user config settings
        case 'user_mail_pass_body': // user config settings
        case 'synonyms': // taxonomy terms
        case 'nodewords-description':
        case 'edit-nodewords-description':
        case 'description': // taxonomy terms
          unset($init);
          break;

        // Force the 'simple' theme for some of the smaller textareas.
        case 'signature':
        case 'site_mission':
        case 'site_footer':
        case 'site_offline_message':
        case 'page_help':
        case 'user_registration_help':
        case 'user_picture_guidelines':
          $init['theme'] = 'simple';
          foreach ($init as $k => $v) {
            if (strstr($k, 'theme_advanced_')) unset($init[$k]);
          }
          break;
        case 'teaser':
            $init['height'] = '150px';
        default:
            break;
    }
        return $init;
}
?>

Ещё один вопрос. Что делает блок кода приведенный ниже:

        // Force the 'simple' theme for some of the smaller textareas.
        case 'signature':
        case 'site_mission':
        case 'site_footer':
        case 'site_offline_message':
        case 'page_help':
        case 'user_registration_help':
        case 'user_picture_guidelines':
          $init['theme'] = 'simple';
          foreach ($init as $k => $v) {
            if (strstr($k, 'theme_advanced_')) unset($init[$k]);
          }
          break;
        case 'teaser':
            $init['height'] = '150px';
        default:
            break;

Сорри за глупые вопросы, в пхп не силен.

Аватар пользователя Ильич Рамирес Санчес Ильич Рамирес Санчес 24 февраля 2009 в 0:49

"Ilya1st" wrote:
// Force the 'simple' theme for some of the smaller textareas.

устанавливает "упрощенную" тему тини там где надо.

Кстати у последнего тини замечен баг в мозилле. вместо <strong> тегов он ставит тэги <b>

Sad

Аватар пользователя Владимир Ситников Владимир Ситников 24 февраля 2009 в 6:24

Блин, как у вас все сложно...
Ставте модуль Тинитинимси, и вся отключайте прямо из админки этого модуля...
И править темы не нужно...
И модуль Тинитинимси позволяет настраивать расположение кнопок, добавлять свои кнопки и вообще он гибче и мощнее...

Аватар пользователя Funtik44 Funtik44 8 апреля 2011 в 16:42

В разделе "// идентификаторы текстовых элементов - исключений." указаны те поля в которых тини не будет работать? Я правильно понимаю?