Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Invision Power Board > Смена скина в IPB


Автор: Master 29.6.2008, 13:51
Здравствуйте.
Нужно включить смену стиля на форуме IPB.
Есть глобальный шаблон global_skin_chooser и в нем прописан следующий код

Код

<form action="{$this->ipsclass->base_url}setskin=1" name="skinselectorbox" method="post">
    <input type="hidden" name="skinurlbits" value="{$this->ipsclass->query_string_safe}&amp;cal_id={$this->ipsclass->input['cal_id']}" />
    <select name="skinid" onchange="chooseskin(this)">
        <optgroup label="{$this->ipsclass->lang['global_skinselector']}">
            $data
        </optgroup>
    </select>
</form>


Но на странице форума не появляется форма смена стиля.

Перерыл всю админку. Никаких кнопок включение и выключения данной возможности не обнаружил.
Возможно были затронуты иные шаблоны из которых был убран global_skin_chooser
Вопрос - какие? smile
Спасибо.

Автор: Sannis 30.6.2008, 02:09
Варианты:
1. Группе запрещено менять скин, см. настройки группы.
2. Есть только один доступный к смене стиль, см. на цвет иконки с глазом в списке скинов в админке. Если вы админ, то это отпадает.
3. И глупый вопрос: скинов точно больше одного?

Автор: Master 3.7.2008, 14:42
Облазил настройки группы... не нашел ничего связанного с запретом смены стиля.
Нашел родителя использующего преведенный выше шаблон - это global_board_footer и там прописано:
<td width="20%"><% SYNDICATION %> <% SKINCHOOSER %> <% LANGCHOOSER %></td>

Данная строка совершенно точно отображается на странице.
Я пробовал принудительно вносить в этот шаблон строки из первого поста, но на странице увидел только поле выбора стилей (без вариантов). Список стилей на вложенном файле.

Автор: 2man 3.7.2008, 23:29
Так у тебя шаблон скрыт от пользователей. Видишь значок глазка серый? Вот нажми на его и будет у тебя чекбокс с возможностью выбора скинов

Автор: Master 4.7.2008, 09:56
А мне и не нужен классический, мне надо чтобы первые 2 только были в выборе у пользователей.

Автор: 2man 4.7.2008, 12:58
Так у тебя дин скин сделан на основе второго, поэтому может и не появляется возможность выбора. Ты для теста попробуй включить свой классический стиль - если появится чекбокс, значит нужно скин Лето делать независимо от IP.Board.Pro.
Если же ничего не появится, тогда будем смотреть код

Автор: Prus 10.10.2011, 12:27
Код

<h2 class='hide'>{$this->lang->words['skin_and_lang']}</h2>
                <if test="skinchanger:|:$this->settings['allow_skins'] AND $footer_items['skin_chooser']">
                    <if test="uagentlocked:|:$this->memberData['userAgentLocked'] AND ! $this->memberData['userAgentBypass']">
                        <p id='useragent_msg'>
                            {$this->lang->words['skin_browser_set']} <a href='{parse url="{$this->settings['query_string_formatted']}&amp;unlockUserAgent=1" base="public"}'>{$this->lang->words['override_browser_theme']}</a>
                        </p>
                    <else />
                        <form action="{parse url="{$this->settings['query_string_formatted']}" base="public"}" method="post" class='left'>
                            <fieldset>
                                <input type='hidden' name='k' value='{$this->member->form_hash}' />
                                <label for='newSkin' class='hide'>{$this->lang->words['theme_prefix']}</label>
                                <select name="settingNewSkin" id='newSkin'>
                                    {$footer_items['skin_chooser']}
                                </select>
                                <input type='submit' value='{$this->lang->words['jmp_go']}' class='input_submit alt' id='newSkinSubmit' />
                            </fieldset>
                        </form>
                    </if>
                </if>


Собственно та же "беда". Версия IPB 3.1 стоит.
Если я убираю 
Код

<if test="skinchanger:|:$this->settings['allow_skins'] AND $footer_items['skin_chooser']">

То бокс появляется, в нём отображаются 2 скина, которые разрешено выбирать, но при нажатии на них ровным счётом ничего не происходит.
$this->settings['allow_skins'] - не могу найти где включить.
Если через админку задаю пользователю конкретный скин, то всё нормально отображается.
Хотел уже сам написать вручную кнопочку, типа "Сменить скин", потому что скинов всего 2, но так и не могу уловить какой запрос надо формировать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)