CKEditor из Wysiwyg ?

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

Аватар пользователя Cozmi Cozmi 28 марта 2011 в 15:02

раньше, когда CKEditor был подключен через одноименный модуль, то проблем с выводом CKEditor в форме не было (рендеринг формы в препоцессе _preprocess_page), однако с модулем Wysiwyg -- CKEditor прежним образом не подключается. в чем может быть проблема?

Комментарии

Аватар пользователя Cozmi Cozmi 4 апреля 2011 в 16:32

Продолжая монолог, попробую более детально рассказать про ситуацию:
просто подключенный ckeditor через модуль ckeditor, отлично подключался к кастомной форме, если она рендрилась в hook_preprocess_page(как в http://www.drupal.ru/node/56919)

ckeditor, подключенный через модуль wysiwyg, вышеупомянутым способом подключаться отказывается. Есть ли какие-нибудь варианты?
Вопрос даже в том, как подключить любой редактор подключенный к друпалу через wysiwyg при выводе формы в кастомном месте? спс. занавес.

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 4 апреля 2011 в 11:53

У меня получилось это сделать вот так:

<?php
$form
['text']['body'] = array(
    
'#type' => 'textarea',
    
'#title' => t('Text of this paragraph'),
    
'#default_value' => $value,
);

$form['text']['format'] = filter_form(FILTER_FORMAT_DEFAULT);
?>

Если у вас установлен модуль Better Formats, то можно дополнить код, как-то так:

<?php
if (isset ( $form ['text'] )) {
        
// Get default for new entries.
        
$default better_formats_get_default_format 'node'$form ['type'] ['#value'] );
        
        if (! 
$мфдгу) {
            
// Set format to default for new entries.
            
$format $default;
        } else {
            
// Get existing format for core body field.
            
$format better_formats_get_current_format $form ['text'] ['format'] );
        }
        
        
// Overwrite the filter form with our own.
        
$form ['text'] ['format'] = better_formats_filter_form $format$default'node''mark' );
    }
?>
Аватар пользователя Cozmi Cozmi 4 апреля 2011 в 12:16

спс, однако ничего не заработало.
что с $form['text']['format'] = filter_form(FILTER_FORMAT_DEFAULT); что без него
в исходном коде страницы присутствуют вроде бы скрипты едитора, однако визуально определяется голая textarea.

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 4 апреля 2011 в 12:21

Cozmi wrote:
спс, однако ничего не заработало.
что с $form['text']['format'] = filter_form(FILTER_FORMAT_DEFAULT); что без него
в исходном коде страницы присутствуют вроде бы скрипты едитора, однако визуально определяется голая textarea.

У вас прописан CKEditor для формата ввода по умолчанию?

Аватар пользователя Cozmi Cozmi 4 апреля 2011 в 12:47

нет, он прописан для отдельного формата
на странице node/add/mytype все отлично выводится (для установки отдельного формата по умолчанию использую Better Formats )

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 4 апреля 2011 в 12:48

Cozmi wrote:
нет, он прописан для отдельного формата
на странице node/add/mytype все отлично выводится (для установки отдельного формата по умолчанию использую Better Formats )

Тогда пропишите id этого формата вместо FILTER_FORMAT_DEFAULT

Аватар пользователя Cozmi Cozmi 4 апреля 2011 в 13:04

ничего особого тут

<?php
//в модуле
function mymodule_preprocess_page(&$vars) {
module_load_include('inc''node''node.pages');
$type 'news'
$node = array(
    
'uid' => $GLOBALS['user']->uid,
    
'name' => (isset($GLOBALS['user']->name) ? $GLOBALS['user']->name ''),
    
'type' => $type,
    
'language' => ''
);
$vars['x_form'] = drupal_get_form($type '_node_form'$node); 
}
$vars['scripts'] = drupal_get_js();
}
?>
<?php
//на  странице page.tpl.php
 
print $x_form
?>