Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы » Как при добавлении новости в addnews скрыть визуальный редактор полной и краткой новости?

Как при добавлении новости в addnews скрыть визуальный редактор полной и краткой новости?


     Все вопросы » Общие вопросы    2472

вопрос
Как при добавлении новости в addnews скрыть визуальный редактор полной и краткой новости?

В общем нужно сделать, так чтоб данные поля появлялись, только для тех категорий для которых они нужны.
Для категорий которые построены, только на доп. полях, чтобы они не были совсем видны.

Подскажите как сделать?

Ответа пока нет


22 комментария

vitnet
PHP-developer

vitnet - -

Делайте по таком уже принципу как в доп. полях (выбрана кат. выводим BB панель и наоборот)

zip
Юзер

zip - -

Но в настройках категорий такого как в доп. полях нету. Видел на одном сайте, нажимаешь кнопку добавить новость основные поля краткой и полной новости вообще не отображаются. Выбираешь определенную категорию они появляются. Выбираешь другую категорию, там отображаются только доп. поля.

zip
Юзер

zip - -

Сделал вот таким образом, как на том сайте:

addnews:
<tr id="news-add">
                <td colspan="2">
                    <b>Вводная часть: <span class="impot">*</span></b> (Обязательно)
                    <div>
                        [not-wysywyg]
                        <div>{bbcode}</div>
                        <textarea name="short_story" id="short_story" onclick=setFieldName(this.name) style="width: 740px;" rows="10" class="f_textarea" >{short-story}</textarea>
                        [/not-wysywyg]
                        {shortarea}
                    </div>
                </td>
            </tr>

CSS:
#news-add{
display: none;
}

При нажатии на кнопку добавить редактор и правда не отображается, но и при выборе категорий, он тоже не появляется.

vitnet
PHP-developer

vitnet - -

А с чего бы ему появлятся?

Учите Jquery или javascript и тога у вас все получется!

PS: вешайте появление на какое-то действие.

joydo
Юзер

joydo - -

zip,
А что вы сделали, чтобы они отображались, если там стоит display:none;?;)
Вам дал отличную подсказку vitnet

joydo
Юзер

joydo - -

Заходим в engine\inc\xfields.php
Находим
if ($.isArray(value)) {

Вставляем ниже
ShowOrHideEx("news-add", jQuery.test('4', value) != -1 );
- где 4 ваша категория
Далее находим
$categoryfilter .= <<<HTML
    } else {

Вставляем ниже
ShowOrHideEx("news-add", value == 4); 
- где 4 ваша категория

Возле ид news-add добавить style="dislpay:none;" -чтобы изначально было скрыто
Надеюсь дальше сами разберетесь

zip
Юзер

zip - -

Сделал так, но ничего не отображается и даже доп. поля перестали появляться.

joydo
Юзер

joydo - -

Цитата: zip
if ($.isArray(value)) {

Покажите этот кусок кода


HTML;


    foreach ($xfields as $value) {

      if ( $value[2] ) {

        $categories = explode(",", $value[2]);
        $temp_array = array();

        foreach ($categories as $temp_value) {

            $temp_array[] = "jQuery.inArray('{$temp_value}', value) != -1";

        }

        $categories = implode(" || ", $temp_array);

        $categoryfilter .= "ShowOrHideEx(\"xfield_holder_{$value[0]}\", {$categories} );\r\n";
      }
    }

$categoryfilter .= <<<HTML
    } else {
        ShowOrHideEx("news-add", value == 4);


HTML;


p.s я делаю на 10.5, хотя не думаю что это важно

zip
Юзер

zip - -

$categoryfilter .= <<<HTML
    } else {

ShowOrHideEx("news-add", value == 1);
HTML;

zip
Юзер

zip - -

 function onCategoryChange(obj) {

    var value = $(obj).val();

    if ($.isArray(value)) {
ShowOrHideEx("news-add", jQuery.test('1', value) != -1 );

HTML;

joydo
Юзер

joydo - -

Цитата: zip
if ($.isArray(value)) {

А вторая часть?
p.s заменить
ShowOrHideEx("news-add", jQuery.test('4', value) != -1 );

на
ShowOrHideEx("news-add", jQuery.inArray('4', value) != -1 );

zip
Юзер

zip - -

Ну как вы написали, так я и сделал;

Первая часть после if ($.isArray(value)) { вставляем вот:

if ($.isArray(value)) {
ShowOrHideEx("news-add", jQuery.test('1', value) != -1 );

HTML;


Вторая часть после
$categoryfilter .= <<<HTML
    } else {


Вставляем вот:

$categoryfilter .= <<<HTML
    } else {

ShowOrHideEx("news-add", value == 1);
HTML;

joydo
Юзер

joydo - -

zip,
ShowOrHideEx("news-add", jQuery.test('1', value) != -1 );

Поменяйте на
ShowOrHideEx("news-add", jQuery.inArray('1', value) != -1 );

И в шаблоне вы точно все правильно сделали?
#news-add{
display: none;
} -
удалили?

zip
Юзер

zip - -

В CSS убрал
#news-add{
display: none;
} -

В addnews добавил:
<tr  id="news-add" style="dislpay:none;" >


Но, странно панель не скрывается, а при выборе категорий для 1 категории показывает оба поля, а для других только полную новость.

joydo
Юзер

joydo - -

zip,
А если головой подумать?!
Вы сделали это (НЕ! скрывать краткую) только для 1-ой категории и только для краткой новости....
И да, не стоит забывать, что краткая будет все равно обязательна для заполнения.

zip
Юзер

zip - -

Но, если не выбирать категорию, то показывает оба поля и не скрывает.

А до этого когда было в CSS они скрывались.

И при выборе 1-й категории показывает оба поля, а для других только полную новость, а не краткую показывает.

joydo
Юзер

joydo - -

zip,
О боже, я умываю руки.

zip
Юзер

zip - -

Все спасибо разобрался! Просто вы впервой инструкции написали style="dislpay:none;" а не displpay.
А я скопировал и не посмотрел внимательно, поэтому без категорий не скрывалось. Теперь все нормально. Спасибо большое, что помогли.

joydo
Юзер

joydo - -

zip,
Хех, точно) и я слепой)

zip
Юзер

zip - -

А как сделать для нескольких категорий? Мне нужно чтоб с 1 по 6 отображались оба поля, а здесь только краткая новость. А в 7-й категории, чтоб они не отображались. И без категорий, чтоб поля тоже не отображались.

joydo
Юзер

joydo - -

zip,
Объединить их под 1 id?
|| jQuery.inArray('4', value) != -1  
добавить к первой
||value==4
- ко второй

zip
Юзер

zip - -

Спасибо я уже додумался )

Похожие вопросы

наверх