Проект

Общее

Профиль

Действие #1496

Исследование работы со скинами (3.1.4)

Добавил(а) LastDragon больше 7 лет назад. Обновлено больше 6 лет назад.

Статус:
Закрыт
Приоритет:
Нормальный
Назначена:
Категория:
Skins support
Версия:
Дата начала:
04.12.2010
Дата завершения:
16.04.2011
Готовность:

100%


Описание

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

IPS_26680.patch Просмотреть (1,29 КБ) LastDragon, 23.12.2010 14:19

IPB-1293120281035.png Просмотреть (44,7 КБ) LastDragon, 23.12.2010 16:51

IPS_26684.patch Просмотреть (773 байта) LastDragon, 23.12.2010 16:51

IPS_26686.patch Просмотреть (1,55 КБ) LastDragon, 23.12.2010 20:26

IPS_26689.patch Просмотреть (3,44 КБ) LastDragon, 23.12.2010 20:26

266

Связанные задачи

связана с IPB3 Toolkit (toolkit) - Улучшение #1406: Установка 'skin_collections.set_master_key' при создании скина Отклонен 04.11.2010 23.12.2010
связана с IPB3 Toolkit (toolkit) - Ошибка #1488: Не работает создание релизов для скинов Отклонен 03.12.2010 10.04.2011
связана с IPB3 Toolkit (toolkit) - Улучшение #1497: Не правильный список приложений при сборке скина Отклонен 04.12.2010 16.04.2011
связана с IPB3 Toolkit (toolkit) - Улучшение #1520: Автоматическое применение патчей Отклонен 23.12.2010
связана с IPB3 Toolkit (toolkit) - Улучшение #1554: Заменять пути в CSS файлах на {style_images_url} Закрыт 27.12.2010 10.04.2011
связана с IPB3 Toolkit (toolkit) - Улучшение #1523: Возможность выбирать разрешен ли экспорт скина Закрыт 24.12.2010 04.01.2011
связана с IPB3 Toolkit (toolkit) - Улучшение #1522: Добавление скина: создавать мастер директории для скина Закрыт 23.12.2010 04.01.2011
связана с IPB3 Toolkit (toolkit) - Улучшение #1521: Добавлении скина: добавлять запись в masterMap.php если его там нет Закрыт 23.12.2010 16.04.2011

История

#1 Обновлено LastDragon больше 7 лет назад

План:
  1. Создание скина
  2. Добавление нового шаблона
  3. Ребилд
  4. Проверка базы
  5. Экспорт
  6. Если в п.1 не устанавливает set_master_key - установить и повторить остальные шаги
Выполняется 2 раза:
  • Все действия через админку
  • Все действия через toolkit
Результаты:
  • отчет
  • фиксы
  • создание багов в трекере IPS
  • создание фиксов на форуме

#2 Обновлено LastDragon больше 7 лет назад

  1. Установлен чистый форум
  2. Выполнен импорт скина ("Velvet - Blue (Import)")
  3. Создан новый скин через админку ("Test (ACP)")
  4. Создан новый скин с помощью "IPB Toolkit" ("Test (Toolkit)")
  5. Изменены данные скина

Список скинов

set_id set_name set_key set_parent_id set_parent_array set_child_array set_master_key
1 IP.Board default 0 a:0:{} a:0:{} root
2 IP.Board Mobile mobile 0 a:0:{} a:0:{} mobile
3 IP.Board XML xmlskin 0 a:0:{} a:0:{} xmlskin
4 Velvet - Blue (Import) 0 a:0:{} a:0:{} root
5 Test (ACP) test-acp 0 a:0:{} a:0:{} root
6 Test (Toolkit) test-toolkit 0 a:0:{} a:0:{} root

Шаблоны

template_set_id template_group template_content template_name template_data template_added_to template_master_key
0 skin_global <a href=... defaultHeader 0 root
0 skin_global defaultHeader 0 xmlskin
0 skin_global <h1>...</h1> defaultHeader 0 mobile
4 skin_global Velvet - Blue (Import) defaultHeader 4
1 skin_global IP.Board defaultHeader 0
3 skin_global IP.Board XML defaultHeader 0
2 skin_global IP.Board Mobile defaultHeader 0
5 skin_global Test (ACP) defaultHeader 0
6 skin_global Test (Toolkit) defaultHeader 0

Макросы

replacement_key replacement_content replacement_set_id replacement_added_to replacement_master_key
add_folder <img src=... 0 0 root
add_folder Velvet - Blue (Import) 4 4
add_folder IP.Board 1 0
add_folder IP.Board XML 3 3
add_folder IP.Board Mobile 2 2
add_folder Test (ACP) 5 0
add_folder Test (Toolkit) 6 0

CSS

css_set_id css_group css_content css_added_to css_master_key
0 ipb_ie /*****... 0 root
0 ipb_ie #search {... 0 xmlskin
0 ipb_ie #search {... 0 mobile
1 ipb_ie IP.Board 0
3 ipb_ie IP.Board XML 0
2 ipb_ie IP.Board Mobile 0
4 ipb_ie Velvet - Blue (Import) 0
5 ipb_ie Test (ACP) 0
6 ipb_ie Test (Toolkit) 0

#3 Обновлено LastDragon больше 7 лет назад

  1. Включен режим разработки
  2. Скины добавлены в masterMap.php
  3. Созданы master директории из админки
  4. Созданы master директории с помощью "IPB Toolkit"

masterMap.php

<?php
/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.1.4
 * IN_DEV Remapping.
 * Last Updated: $Date: 2010-07-14 05:39:43 -0400 (Wed, 14 Jul 2010) $
 * </pre>
 *
 * @author         $Author: matt $
 * @copyright    (c) 2001 - 2009 Invision Power Services, Inc.
 * @license        http://www.invisionpower.com/community/board/license.html
 * @package        IP.Board
 * @link        http://www.invisionpower.com
 * @since        3.0
 * @version        $Revision: 6648 $
 *
 */

/**
* This file is used to map skin IDs to a "master skin" directory for offline editing
* It is only used when IN_DEV is on.
* You are responsible for creating any directory and setting appropriate permission for IP.Board to write into it
* You can then import/export the skin in master format from the ACP -> Look & Feel (Menu button on appropriate skin row that will show when you have added it to the $REMAP array below
*/

/*
    To be able to edit a skin outside of the ACP, do this.

    1) Create a new skin set within the ACP. It can be a 'root' skin or a 'child'. It doesn't matter. Make sure you enter a 'skin_key' which must be unique.
    2) Put your board in IN_DEV mode by editing the constant in conf_global.php
    3) Create a new master skin directory in /cache/skin_cache. It must be something unique like 'mytest', like 'master_skin_mytest' for example.
    4) Add your new 'skin_key' to the 'templates' array below.
    5) Back into your ACP, go to the list of skin sets. Click on the menu icon for your new skin set and choose: 'EXPORT Templates into 'master' directory...'.

    You should now be able to edit those files as you browse the board without the ACP. When you are done, simply choose 'IMPORT Templates..'.
*/

$REMAP = array(
    # This is the skin IPB uses when IN_DEV is switched on. Change the ID to
    # your own skin if desired.
    'inDevDefault' => 'root',

    # Master skins - please do not modify
    'masterKeys'  => array( 'root', 'xmlskin', 'mobile' ),

    # This defines which skins are exported for the installer
    'export'       => array(  0 => 'root',
                              2 => 'xmlskin',
                              1 => 'mobile' ),

    # Templates array. setID OR setKey => styleDir. styleDir must be created in 'cache/skin_cache' first
    'templates'    => array(
                             'root'         => 'master_skin',
                             'xmlskin'      => 'master_skin_xml',
                             'mobile'       => 'master_skin_mobile',
                             'velvet-blue'  => 'master_skin_velvet-blue',
                             'test-acp'     => 'master_skin_test-acp',
                             'test-toolkit' => 'master_skin_test-toolkit',
                           ),

    # CSS. setID OR setKey => cssDir. cssDir must be created in 'public/style_css' first
    'css'           => array(
                            'root'         => 'master_css',
                            'xmlskin'      => 'master_css_xml',
                            'mobile'       => 'master_css_mobile',
                            'velvet-blue'  => 'master_css_velvet-blue',
                            'test-acp'     => 'master_css_test-acp',
                            'test-toolkit' => 'master_css_test-toolkit',
                            ),

    # Images                        
    'images'        => array( 'root'         => 'master',
                              'xmlskin'      => 'master',
                              'mobile'       => 'mobile',
                              'velvet-blue'  => 'velvet-blue',
                              'test-acp'     => 'master',
                              'test-toolkit' => 'master', )
);

Создание master директорий из админки

Это невозможно выполнить для стандартных скинов - используем buildInDev.php:
  • "IP.Board"
  • "IP.Board XML"
  • "IP.Board Mobile"

Первый блин комом:

>php buildInDev.php

 (_) _ __   ____
 | || '_ \ / ___'
 | || |_) |  \__.
 | || .__/.\___  \
 |_||_|  |_______/

--------------------------------------------
Welcome to the IN_DEV build tool
This tool will create the required directories and files to run in IN_DEV
--------------------------------------------

Hit Any Key To Continue:

cache/skin_cache/master_skin created...
cache/skin_cache/master_skin_xml created...
cache/skin_cache/master_skin_mobile created...
public/style_css/master_css created...
public/style_css/master_css_xmlskin created...
public/style_css/master_css_mobile created...
PHP templates written for root
PHP Fatal error:  Uncaught exception 'Exception' with message 'DIR_DOES_NOT_EXIST' in admin/sources/classes/skins/skinCaching.php:1568
Stack trace:
#0 buildInDev.php(200): skinCaching->writeMasterSkin('xmlskin', 'master_skin_xml...')
#1 buildInDev.php(115): moo->_doSkins()
#2 buildInDev.php(62): moo->__construct(Object(ipsRegistry))
#3 {main}
  thrown in admin/sources/classes/skins/skinCaching.php on line 1568

Скрипт пытается использовать директорию cache/skin_cache/master_skin_xmlskin, но создает cache/skin_cache/master_skin_xml - исправляем (см. IPS#25590).

Для остальных скинов используем соответсвующие команды в ACP.

Проверяем что получилось:

Скин Шаблон (defaultHeader) Максрос (add_folder) CSS (ipb_ie)
IP.Board <a href=... <img src='... /*****...
IP.Board XML <a href=... <img src='... /*****...
IP.Board Mobile <a href=... <img src='... /*****...
Velvet - Blue (Import) не создан Velvet - Blue (Import)
Test (ACP) Test (ACP) не создан Test (ACP)
Test (Toolkit) Test (Toolkit) не создан Test (Toolkit)

Зачеркнуто - неправильные значения (какие должны быть смотри выше).

Создание master директорий с помощью "IPB Toolkit"

Скин Шаблон (defaultHeader) Максрос (add_folder) CSS (ipb_ie)
IP.Board <a href=... <img src='... /*****...
IP.Board XML <a href=... <img src='... /*****...
IP.Board Mobile <a href=... <img src='... /*****...
Velvet - Blue (Import) Velvet - Blue (Import) Velvet - Blue (Import)
Test (ACP) Test (ACP) Test (ACP) Test (ACP)
Test (Toolkit) Test (Toolkit) Test (Toolkit) Test (Toolkit)

Зачеркнуто - неправильные значения (какие должны быть смотри выше).

#4 Обновлено LastDragon больше 7 лет назад

Бага IPS#26680

#5 Обновлено LastDragon больше 7 лет назад

  • Файл IPS_26680.patch добавлен

Фиск. Багу также обновил.

Создание master директорий из админки

Скин Шаблон (defaultHeader) Максрос (add_folder) CSS (ipb_ie)
IP.Board <a href=... <img src='... /*****...
IP.Board XML IP.Board XML IP.Board XML IP.Board XML
IP.Board Mobile IP.Board Mobile IP.Board Mobile IP.Board Mobile
Velvet - Blue (Import) Velvet - Blue (Import) не создан Velvet - Blue (Import)
Test (ACP) Test (ACP) не создан Test (ACP)
Test (Toolkit) Test (Toolkit) не создан Test (Toolkit)

Зачеркнуто - неправильные значения (какие должны быть смотри выше).

Создание master директорий с помощью "IPB Toolkit"

Скин Шаблон (defaultHeader) Максрос (add_folder) CSS (ipb_ie)
IP.Board <a href=... <img src='... /*****...
IP.Board XML IP.Board XML IP.Board XML IP.Board XML
IP.Board Mobile IP.Board Mobile IP.Board Mobile IP.Board Mobile
Velvet - Blue (Import) Velvet - Blue (Import) Velvet - Blue (Import) Velvet - Blue (Import)
Test (ACP) Test (ACP) Test (ACP) Test (ACP)
Test (Toolkit) Test (Toolkit) Test (Toolkit) Test (Toolkit)

Зачеркнуто - неправильные значения (какие должны быть смотри выше).


Уже лучше. Остальное пусть сами фиксят.

#6 Обновлено LastDragon больше 7 лет назад

  • Значение IPS_26680.patch параметра Файл удалено

#7 Обновлено LastDragon больше 7 лет назад

Исправленный патч

#8 Обновлено LastDragon больше 7 лет назад

266

Устанавливаем в masterMap.php:

'inDevDefault' => 'velvet-blue',

Получаем: "IPB-1293120281035.png"

Проблема в том, что метод output::buildRemapData() неправильно определяет ID нашего скина:

array
  'templates' => 
    array
      'root' => string 'master_skin' (length=11)
      'xmlskin' => string 'master_skin_xmlskin' (length=19)
      'mobile' => string 'master_skin_mobile' (length=18)
      4 => string 'master_skin_velvet-blue' (length=23)
      5 => string 'master_skin_test-acp' (length=20)
      6 => string 'master_skin_test-toolkit' (length=24)
  'css' => 
    array
      'root' => string 'master_css' (length=10)
      'xmlskin' => string 'master_css_xmlskin' (length=18)
      'mobile' => string 'master_css_mobile' (length=17)
      4 => string 'master_css_velvet-blue' (length=22)
      5 => string 'master_css_test-acp' (length=19)
      6 => string 'master_css_test-toolkit' (length=23)
  'inDevDefault' => string '6' (length=1)
  'masterKeys' => 
    array
      0 => string 'root' (length=4)
      1 => string 'xmlskin' (length=7)
      2 => string 'mobile' (length=6)
  'images' => 
    array
      'root' => string 'master' (length=6)
      'xmlskin' => string 'master' (length=6)
      'mobile' => string 'mobile' (length=6)
      'velvet-blue' => string 'velvet-blue' (length=11)
      'test-acp' => string 'master' (length=6)
      'test-toolkit' => string 'master' (length=6)
  'export' => 
    array
      0 => string 'root' (length=4)
      2 => string 'xmlskin' (length=7)
      1 => string 'mobile' (length=6)

Бага IPS#26684 Фикс прикрепил.

#9 Обновлено LastDragon больше 7 лет назад

  • Параметр Категория изменился с Core на Skins support

1) Импортируем данные с помощью build4release.php
2) Импортируем данные с помощью команд в ACP

Шаблоны

template_set_id template_group template_content template_name template_data template_added_to template_master_key
0 skin_global IP.Board Master defaultHeader 0 root
0 skin_global IP.Board XML Master defaultHeader 0 xmlskin
0 skin_global IP.Board Mobile Master defaultHeader 0 mobile
1 skin_global IP.Board defaultHeader 0
3 skin_global IP.Board XML defaultHeader 0
2 skin_global IP.Board Mobile defaultHeader 0
4 skin_global Velvet - Blue (Import) Master defaultHeader 4 velvet-blue
5 skin_global Test (ACP) Master defaultHeader 5 test-acp
6 skin_global Test (Toolkit) Master defaultHeader 6 test-toolkit

Ребилд master шаблонов НЕ затрагивает наши изменения сделанные в этих шаблонах в ACP (хотя для всех скинов кроме "IP.Board" эти изменения экспортируются - вполне возможно из-за того что ключ не совпадает с "root"). Для остальных шаблонов принудительно выставляется template_master_key это не правильно (см. исходные данные) - если это не master скин не должно быть никакого значения.

CSS

css_set_id css_group css_content css_added_to css_master_key
0 ipb_ie IP.Board Master 0 root
3 ipb_ie IP.Board XML Master 3 xmlskin
2 ipb_ie IP.Board Mobile Master 2 mobile
1 ipb_ie IP.Board 0
3 ipb_ie IP.Board XML 0
2 ipb_ie IP.Board Mobile 0
4 ipb_ie Velvet - Blue (Import) Master 0 velvet-blue
5 ipb_ie Test (ACP) Master 0 test-acp
6 ipb_ie Test (Toolkit) Master 0 test-toolkit

См. шаблоны.

Макросы

replacement_key replacement_content replacement_set_id replacement_added_to replacement_master_key
add_folder Velvet - Blue (Import) Master 0 0 velvet-blue
add_folder Test (ACP) Master 0 0 test-acp
add_folder Test (Toolkit) Master 0 0 test-toolkit
add_folder Velvet - Blue (Import) Master 0 0 velvet-blue
add_folder Test (ACP) Master 0 0 test-acp
add_folder Test (Toolkit) Master 0 0 test-toolkit
add_folder Velvet - Blue (Import) Master 0 0 velvet-blue
add_folder Test (ACP) Master 0 0 test-acp
add_folder Test (Toolkit) Master 0 0 test-toolkit
add_folder IP.Board Master 0 0 root
add_folder IP.Board XML Master 0 0 xmlskin
add_folder IP.Board Mobile Master 0 0 mobile
add_folder Velvet - Blue (Import) Master 0 0 velvet-blue
add_folder Test (ACP) Master 0 0 test-acp
add_folder Test (Toolkit) Master 0 0 test-toolkit

Макросы можно перестроить в "Внешний вид" -> "Инструменты стилей" -> "Перестроить базовые макросы из дискового кеша". Работает. НО снова устанавливается replacement_master_key - его не должно быть; при повторном запуске макросы добавляются еще раз (для master скинов этого не происходит)

#10 Обновлено LastDragon больше 7 лет назад

  • Файл IPS_26686.patch добавлен

Макросы

Бага IPS#26686 Прикрепил фикс

#11 Обновлено LastDragon больше 7 лет назад

  • Значение IPS_26686.patch параметра Файл удалено

#12 Обновлено LastDragon больше 7 лет назад

Шаблоны и CSS

Бага IPS#26689

#13 Обновлено LastDragon больше 7 лет назад

  • Параметр Дата завершения изменился на 23.12.2010

Так же было исправлено несколько ошибок в самом toolkit-е, см. r706.

#14 Обновлено LastDragon около 7 лет назад

  • Параметр Статус изменился с Новый на Решен
  • Параметр Готовность изменился с 0 на 100

#15 Обновлено LastDragon около 7 лет назад

  • Параметр Дата завершения изменился с 23.12.2010 на 16.04.2011

#16 Обновлено LastDragon больше 6 лет назад

  • Параметр Статус изменился с Решен на Закрыт

Экспортировать в Atom PDF