* Invision Power Services * IP.Board v3.2.3 * Setup skin file * Last Updated: $Date: 2011-09-27 21:33:45 -0400 (Tue, 27 Sep 2011) $ * * * @author $Author: bfarber $ * @copyright (c) 2001 - 2009 Invision Power Services, Inc. * @license This is NULLED! * @package IP.Board * @link http://hatynka.in * @since Friday 19th May 2006 17:33 * @version $Revision: 9556 $ */ class skin_setup extends output { /** * Show no button * */ private $_showNoButtons = FALSE; /** * Prevent our main destructor being called by this class * * @access public * @return @e void */ public function __destruct() { } /** * Show install complete page * * @access public * @param array * @return string HTML */ public function upgrade_complete( $options ) { $IPBHTML = ""; //--starthtml--// $_productName = $this->registry->fetchGlobalConfigValue('name'); $IPBHTML .= << EOF; foreach( $options as $app => $_bleh ) { foreach( $options[ $app ] as $num => $data ) { if ( ! $data['out'] ) { continue; } if ( $data['app']['key'] == 'core' ) { $data['app']['name'] = 'IP.Board'; } $IPBHTML .= <<Сообщения

{$data['out']}

EOF; } } $IPBHTML .= <<Поздравляем, ваш форум! обновлен


Обновление завершено! EOF; $IPBHTML .= <<Полезные ссылки EOF; return $IPBHTML; } /** * Show the page to manually run log query, with option to prune and run instead * * @access public * @return string HTML */ public function upgrade_manual_queries_logs( $queries, $id=1, $TABLE='' ) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<Пожалуйста выполните следующие запросы прежде чем продолжить
Вы можете нажать здесь чтобы очистить таблицу-журнал '{$TABLE}' и мастер сам внесет изменения в структуру
ИЛИ
Запустите следующие запросы сами:
EOF; return $IPBHTML; } /** * Show the install start page * * @access public * @return string HTML */ public function upgrade_manual_queries( $queries, $sourceFile='' ) { $IPBHTML = ""; //--starthtml--// $or = ''; $IPBHTML .= <<Выполните следующие SQL запросы перед продолжением
EOF; if ( $sourceFile ) { $or = 'ИЛИ '; $IPBHTML .= <<Запустите этот файл
EOF; } $IPBHTML .= <<{$or}отдельные запросы
EOF; return $IPBHTML; } /** * Show the install start page * * @access public * @return string HTML */ public function upgrade_ready( $name, $current, $latest) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<$name
Текущая версия: v{$current}
Последняя версия: v{$latest}
Опции обновления
  • Показывать SQL запросы для запуска вручную. ВНИМАНИЕ: Если вы выберите эту опцию, то вам будут показаны SQL запросы, которые необходмо выполнить в командной строке mysql. Если вы не уверены в своих силах, то свяжитесь с нашей службой поддержки.
  • Обновлять разделы помощи, если будут найдены различия

EOF; return $IPBHTML; } /** * Show the upgrade app options * * @access public * @return string HTML */ public function upgrade_appsOptions( $options ) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= << EOF; foreach( $options as $app => $_bleh ) { foreach( $options[ $app ] as $num => $data ) { if ( $data['app']['key'] == 'core' ) { $data['app']['name'] = 'IP.Board'; } $IPBHTML .= <<{$data['app']['name']} {$data['long']} {$data['out']}
EOF; } } $IPBHTML .= << EOF; return $IPBHTML; } /** * Show the DB override page * * @access public * @return string HTML */ public function upgrade_previousSession( $session=array() ) { $IPBHTML = ""; //--starthtml--// $url = IPSSetUp::getSavedData('install_url'); $date = gmdate( 'r', $session['session_start_time'] ); $IPBHTML .= <<

Unfinished Upgrade Detected

An unfinished upgrade from {$date} GMT has been detected.
The upgrade was on section '{$session['session_section']} - {$session['_session_get']['do']}' upgrading apps '{$session['_sd']['install_apps']}', currently on app '{$session['_sd']['appdir']}'

You can continue from this point by clicking here or you may click the NEXT button below to start a new upgrade session.

EOF; return $IPBHTML; } /** * Show the upgrader applications page * * @access public * @param array Applications * @return string HTML */ public function upgrade_apps( $apps, $notices ) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= << Выберите приложения для обновления. EOF; foreach( array( 'core', 'ips', 'other' ) as $type ) { switch( $type ) { case 'core': $title = "Приложения по-умолчанию"; break; case 'ips': $title = "Приложения IPS"; break; case 'other': $title = "Приложения сторонних разработчиков"; break; } if ( count( $apps[ $type ] ) ) { $IPBHTML .= << {$title} EOF; foreach( $apps[ $type ] as $key => $data ) { if ( $type == 'core' ) { if ( $key == 'core' ) { $data['name'] = 'IP.Board'; } else { continue; } } $_upav = ( $data['_vnumbers']['current'][0] >= $data['_vnumbers']['latest'][0] ) ? 0 : 1; $upgrade = ( ! $_upav ) ? "Обновлено" : "Обновить до {$data['_vnumbers']['latest'][1]}"; $_checked = ( $type == 'core' AND $key == 'core' AND ( $_upav ) ) ? ' checked="checked" onclick="this.checked=true"' : ''; $_style = ( ! $data['_vnumbers']['current'][0] OR ( ! $_upav ) ) ? 'display:none' : ''; /* Not installed? */ if ( ! $data['_vnumbers']['current'][0] ) { $upgrade = "Приложение не установлено."; $data['_vnumbers']['current'][1] = ''; } //----------------------------------------- // Yes, I know this wouldn't work for "core" // apps, but we can just use the global folder // for them so it's irrelevant //----------------------------------------- $img = is_file( IPSLib::getAppDir( $key ) . '/skin_cp/appIcon.png' ) ? $this->settings['base_url'] . '/' . CP_DIRECTORY . '/applications_addon/' . $type . '/' . $key . '/skin_cp/appIcon.png' : "../skin_cp/images/applications/{$key}.png"; $IPBHTML .= << {$data['name']} {$data['_vnumbers']['current'][1]} $upgrade EOF; if ( count( $notices[ $key ] ) ) { $IPBHTML .= "
    "; foreach ( $notices[ $key ] as $n ) { $IPBHTML .= "
  • {$n}
  • "; } $IPBHTML .= "
"; } } $IPBHTML .= << EOF; } } return $IPBHTML; } /** * Show the upgrade overview page * * @access public * @param bool Files ok * @param bool Extensions ok * @param array Extensions * @return string HTML */ public function upgrade_overview( $filesOK, $extensionsOK, $extensions=array()) { $minPHP = IPSSetUp::minPhpVersion; $minSQL = IPSSetUp::minDb_mysql; $prefPHP = IPSSetUp::prefPhpVersion; $prefSQL = IPSSetUp::prefDb_mysql; /* Memory warning */ $_memLimit = null; $_recLimit = 128; if( @ini_get('memory_limit') ) { $_memLimit = @ini_get('memory_limit'); } $_filesOK = ( $filesOK === NULL ) ? "Не проверено" : ( ( $filesOK === FALSE ) ? "Нет" : "Есть" ); $_extensionsOK = ( $extensionsOK === FALSE ) ? "Нет" : "Есть"; $IPBHTML = ""; //--starthtml--// $IPBHTML .= << Системные требования
PHP: v{$minPHP} или выше
SQL: MySQL v$minSQL ($prefSQL или выше предпочтительнее)

EOF; if( $_memLimit ) { $_intLimit = $_memLimit; $_intRec = $_recLimit * 1024 * 1024; preg_match( '#^(\d+)(\w+)$#', strtolower($_intLimit), $match ); if( $match[2] == 'g' ) { $_intLimit = intval( $_intLimit ) * 1024 * 1024 * 1024; } else if ( $match[2] == 'm' ) { $_intLimit = intval( $_intLimit ) * 1024 * 1024; } else if ( $match[2] == 'k' ) { $_intLimit = intval( $_intLimit ) * 1024; } else { $_intLimit = intval( $_intLimit ); } if( $_intLimit >= $_intRec ) { $IPBHTML .= <<Memory Limit (конфигурация PHP): рекомендуется {$_recLimit}M или более
Значение на вашей системе: {$_memLimit} EOF; } else { $IPBHTML .= <<Memory Limit (конфигурация PHP): рекомендуется {$_recLimit}M или более
Значение на вашей системе: {$_memLimit}.
Пожалуйста свяжитесь с вашим хостинг-провайдером для увеличения параметра до {$_recLimit}M.
EOF; } } else { $IPBHTML .= <<Memory Limit (конфигурация PHP): рекомендуется {$_recLimit}M или более
Внимание: не удалось определить значени параметра на вашей системе. EOF; } //----------------------------------------- // Suhosin //----------------------------------------- if( extension_loaded( 'suhosin' ) ) { $_postMaxVars = @ini_get('suhosin.post.max_vars'); $_reqMaxVars = @ini_get('suhosin.request.max_vars'); $_postMaxLen = @ini_get('suhosin.post.max_value_length'); $_reqMaxLen = @ini_get('suhosin.request.max_value_length'); $_reqMaxVar = @ini_get('suhosin.request.max_varname_length'); $_indPMV = $_postMaxVars < 4096 ? "orange; font-weight: bold" : "green"; $_indRMV = $_reqMaxVars < 4096 ? "orange; font-weight: bold" : "green"; $_indPML = $_postMaxLen < 1000000 ? "orange; font-weight: bold" : "green"; $_indRML = $_reqMaxLen < 1000000 ? "orange; font-weight: bold" : "green"; $_indRMVL = $_reqMaxVar < 350 ? "orange; font-weight: bold" : "green"; $IPBHTML .= <<
Suhosin:
Некоторые значения не удовлетворяют рекомендуемым.
suhosin.post.max_vars: 4096 или более
Значение на вашей системе: {$_postMaxVars}.
Может привести к проблемам при сохранении форм (особенно в админ-центре).

suhosin.request.max_vars: 4096 или более
Значение на вашей системе: {$_reqMaxVars}.
Может привести к проблемам при сохранении форм (особенно в админ-центре).

suhosin.post.max_value_length: 1000000 или более
Значение на вашей системе: {$_postMaxLen}.
Может привести к проблемам при сохранении больших сообщений или подобной информации.

suhosin.request.max_value_length: 1000000 или более
Значение на вашей системе: {$_reqMaxLen}.
Может привести к проблемам при сохранении больших сообщений или подобной информации.

suhosin.request.max_varname_length: 350 или более
Значение на вашей системе: {$_reqMaxVar}.
>Может привести к проблемам при работе с ЧПУ.

EOF; } $IPBHTML .= <<
Требуемые файлы: {$_filesOK}

Проверка: Расширения PHP
Общие расширения: {$_extensionsOK} EOF; foreach( $extensions as $xt ) { if ( $xt['_ok'] !== TRUE ) { if ( $xt['_ok'] !== 1 ) { $IPBHTML .= "
{$xt['prettyname']} ({$xt['extensionname']}): Нет (Подробнее)"; } else { $IPBHTML .= "
{$xt['prettyname']} ({$xt['extensionname']}) Рекомендуется: ВНИМАНИЕ (Подробнее)"; } } else { $IPBHTML .= "
{$xt['prettyname']} ({$xt['extensionname']}): Есть"; } } $IPBHTML .= << EOF; return $IPBHTML; } /** * Log in page * * @access public * @return string HTML */ public function upgrade_login_200plus( $loginType ) { $IPBHTML = ""; //--starthtml--// $label = ( $loginType == 'username' ) ? 'Имя пользователя' : 'Email адрес'; $IPBHTML .= <<
Добро пожаловать в систему обновления. Мастер обновления проведет вас через все необходимые шаги.

Авторизация
{$label}:
Пароль
EOF; return $IPBHTML; } /** * Log in page * * @access public * @return string HTML */ public function upgrade_login_300plus( $additional_data, $replace_form ) { $IPBHTML = ""; //--starthtml--// if( $replace_form ) { $IPBHTML .= $additional_data[0]; } else { $IPBHTML .= <<
Добро пожаловать в систему обновления. Мастер обновления проведет вас через все необходимые шаги.

Авторизация
EOF; if( count($additional_data) > 0 ) { foreach( $additional_data as $form_html ) { $IPBHTML .= $form_html; } } $IPBHTML .= <<
EOF; } return $IPBHTML; } /** * Show error page * * @access public * @param string Error message * @return string HTML */ public function page_error($msg) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= << {$msg} EOF; return $IPBHTML; } /** * Show locked page * * @access public * @return string HTML */ public function page_locked() { $IPBHTML = ""; //--starthtml--// $IPBHTML .= << УСТАНОВЩИК ЗАБЛОКИРОВАН
Для продолжения удалите файл "cache/installer_lock.php". EOF; return $IPBHTML; } /** * Show install complete page * * @access public * @param bool Installer was locked successfully * @return string HTML */ public function page_installComplete( $installLocked ) { $IPBHTML = ""; //--starthtml--// $_productName = $this->registry->fetchGlobalConfigValue('name'); if ( ! $installLocked ) { $extra = "
УСТАНОВЩИК НЕ ЗАБЛОКИРОВАН
Немедленно удалите файл 'admin/install/index.php' !
"; } $IPBHTML .= << Установка завершена!

Поздравляем, {$_productName} установлен и готов к использованию! Ниже приведено несколько полезных ссылок.


{$extra}

Полезные ссылки

EOF; return $IPBHTML; } /** * Show the install start page * * @access public * @return string HTML */ public function page_install() { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<Начать для запуска установки!

EOF; return $IPBHTML; } /** * Show the admin info page * * @access public * @return string HTML */ public function page_admin() { $IPBHTML = ""; //--starthtml--// $username = htmlspecialchars($_REQUEST['username']); $email = htmlspecialchars($_REQUEST['email']); $IPBHTML .= << Внимательно заполните форму.
Данные введенные здесь используются для доступа к администраторским функциям системы.
Учетная запись администратора
Имя пользователя:
Пароль:
Подтвердите пароль:
E-mail адрес:
EOF; return $IPBHTML; } /** * Show the DB override page * * @access public * @return string HTML */ public function page_dbOverride() { $IPBHTML = ""; //--starthtml--// $url = IPSSetUp::getSavedData('install_url'); $IPBHTML .= << В базе данных ({$this->request['db_name']}) уже есть таблицы с таким же префиксом ({$this->request['db_pre']}).
Вы можете перезаписать существующие таблицы или вы можете выбрать другую базу данных или префикс.
Может быть вы хотели запустить обновление ?
Перезапись таблиц
Перезаписать существующие в базе данных таблицы

Изменить данные базы данных
Хост SQL:
Название базы данных:
Имя пользователя:
Пароль:
Префикс таблиц:
EOF; return $IPBHTML; } /** * Collect DB info * * @access public * @return string HTML */ public function page_db() { $IPBHTML = ""; //--starthtml--// /* 'lil hack here */ if ( is_file( DOC_IPS_ROOT_PATH . "conf_global.php" ) ) { $INFO = array(); require( DOC_IPS_ROOT_PATH . 'conf_global.php' );/*noLibHook*/ if ( is_array( $INFO ) && count($INFO) ) { $this->request['db_host'] = ( $this->request['db_host'] ) ? ( $this->request['db_host'] == 'localhost' ? ( $INFO['sql_host'] ? $INFO['sql_host'] : 'localhost' ) : $this->request['db_host'] ) : 'localhost'; $this->request['db_name'] = ( $this->request['db_name'] ) ? $this->request['db_name'] : $INFO['sql_database']; } } $IPBHTML .= << Необходимо создать базу данных перед продолжением. Обратитесь к вашему хостинг провайдеру, если не уверены в значениях этих настроек.
Информация о базе данных
Хост SQL:
Название базы данных:
Имя пользователя:
Пароль:
Префикс таблиц:
EOF; return $IPBHTML; } /** * Check the database to use * * @access public * @param array Available DB drivers * @return string HTML */ public function page_check_db( $drivers ) { $_drivers = ''; foreach ($drivers as $k => $v) { $selected = ($v == "Mysql") ? " selected='selected'" : ""; $_drivers .= "\n"; } $IPBHTML = ""; //--starthtml--// $IPBHTML .= << Выберите какой драйвер базы данных вы хотите использовать.
Драйвер базы данных
SQL драйвер:
EOF; return $IPBHTML; } /** * Show the EULA * * @access public * @return string HTML */ public function page_eula() { $_eula = nl2br( $this->registry->fetchGlobalConfigValue('license') ); $IPBHTML = ""; //--starthtml--// $IPBHTML .= << check_eula = function() { if( document.getElementById( 'eula' ).checked == true ) { return true; } else { alert( 'Для продолжения установки необходми согласиться с условиями лицензии' ); return false; } } document.getElementById( 'install-form' ).onsubmit = check_eula; Пожалуйста, прочитайте все пункты Пользовательского Соглашения.

{$_eula}
EOF; return $IPBHTML; } /** * Ask for license key * * @access public * @return string HTML */ public function page_license( $error ) { $IPBHTML = ""; //--starthtml--// if ( $error ) { $IPBHTML .= <<{$error} EOF; } $IPBHTML .= <<
Ключ лицензии
Ключ
Ввод ключа лицензии не обязателен для продолжения установки. Вы можете ввести его позже.

Ключ - это любая комбинация символов.
EOF; return $IPBHTML; } /** * Show the address info page * * @access public * @param string Directory * @param string URL * @return string HTML */ public function page_address( $dir, $url ) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= << Адрес установки
Директория установки:
URL установки:
EOF; return $IPBHTML; } /** * Show the applications page * * @access public * @param array Applications * @return string HTML */ public function page_apps( $apps ) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= << Выберите приложения для установки.
Были обнаружены следующие приложения: EOF; foreach( array( 'core', 'ips', 'other' ) as $type ) { switch( $type ) { case 'core': $title = "Приложения по-умолчанию"; break; case 'ips': $title = "Приложения IPS"; break; case 'other': $title = "Приложения сторонних разработчиков"; break; } if ( count( $apps[ $type ] ) ) { $IPBHTML .= << {$title} EOF; foreach( $apps[ $type ] as $key => $data ) { $_checked = ( $type == 'core' OR $type == 'ips' ) ? ' checked="checked" ' : ''; $_style = ( $type == 'core' ) ? 'display:none' : ''; //----------------------------------------- // Yes, I know this wouldn't work for "core" // apps, but we can just use the global folder // for them so it's irrelevant //----------------------------------------- $img = is_file( IPSLib::getAppDir( $key ) . '/skin_cp/appIcon.png' ) ? '../applications_addon/' . $type . '/' . $key . '/skin_cp/appIcon.png' : "../skin_cp/images/applications/{$key}.png"; $IPBHTML .= << {$data['name']} От: {$data['author']}
{$data['description']}
EOF; } $IPBHTML .= << EOF; } } return $IPBHTML; } /** * Show the requirements page * * @access public * @param bool Files ok * @param bool Extensions ok * @param array Extensions * @return string HTML */ public function page_requirements( $filesOK, $extensionsOK, $extensions=array(), $text='установки' ) { $minPHP = IPSSetUp::minPhpVersion; $minSQL = IPSSetUp::minDb_mysql; $prefPHP = IPSSetUp::prefPhpVersion; $prefSQL = IPSSetUp::prefDb_mysql; /* Memory warning */ $_memLimit = null; $_recLimit = 128; if( @ini_get('memory_limit') ) { $_memLimit = @ini_get('memory_limit'); } $_filesOK = ( $filesOK === NULL ) ? "Не проверено" : ( ( $filesOK === FALSE ) ? "Нет" : "Есть" ); $_extensionsOK = ( $extensionsOK === FALSE ) ? "Нет" : ( $extensionsOK === TRUE ? "Есть" : "Не полностью" ); $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<
Добро пожаловать в систему установки. Мастер установки проведет вас через весь процесс {$text}.
EOF; if( $text == 'upgrade' ) { $IPBHTML .= << If you are not comfortable performing the upgrade yourself, please stop now and submit a technical support ticket so that our technicians can perform the upgrade for you.

You should be certain that you have a complete database backup before proceeding. By continuing, you are certifying that you have saved a database backup.
EOF; } $IPBHTML .= << Если вам нужна помощь по работе с мастером установки, то обратитесь к документации.
Системные требования
PHP: v{$minPHP} или выше
SQL: MySQL v$minSQL ($prefSQL или выше предпочтительнее)

EOF; if( $_memLimit ) { $_intLimit = $_memLimit; $_intRec = $_recLimit * 1024 * 1024; preg_match( '#^(\d+)(\w+)$#', strtolower($_intLimit), $match ); if( $match[2] == 'g' ) { $_intLimit = intval( $_intLimit ) * 1024 * 1024 * 1024; } else if ( $match[2] == 'm' ) { $_intLimit = intval( $_intLimit ) * 1024 * 1024; } else if ( $match[2] == 'k' ) { $_intLimit = intval( $_intLimit ) * 1024; } else { $_intLimit = intval( $_intLimit ); } if( $_intLimit >= $_intRec ) { $IPBHTML .= <<Memory Limit (конфигурация PHP): рекомендуется {$_recLimit}M или более
Значение на вашей системе: {$_memLimit} EOF; } else { $IPBHTML .= <<Memory Limit (конфигурация PHP): рекомендуется {$_recLimit}M или более
Значение на вашей системе: {$_memLimit}.
Пожалуйста свяжитесь с вашим хостинг-провайдером для увеличения параметра до {$_recLimit}M.
EOF; } } else { $IPBHTML .= <<Memory Limit (конфигурация PHP): рекомендуется {$_recLimit}M или более
Внимание: не удалось определить значени параметра на вашей системе. EOF; } //----------------------------------------- // Suhosin //----------------------------------------- if( extension_loaded( 'suhosin' ) ) { $_postMaxVars = @ini_get('suhosin.post.max_vars'); $_reqMaxVars = @ini_get('suhosin.request.max_vars'); $_postMaxLen = @ini_get('suhosin.post.max_value_length'); $_reqMaxLen = @ini_get('suhosin.request.max_value_length'); $_reqMaxVar = @ini_get('suhosin.request.max_varname_length'); $_indPMV = $_postMaxVars < 4096 ? "orange; font-weight: bold" : "green"; $_indRMV = $_reqMaxVars < 4096 ? "orange; font-weight: bold" : "green"; $_indPML = $_postMaxLen < 1000000 ? "orange; font-weight: bold" : "green"; $_indRML = $_reqMaxLen < 1000000 ? "orange; font-weight: bold" : "green"; $_indRMVL = $_reqMaxVar < 350 ? "orange; font-weight: bold" : "green"; $IPBHTML .= <<
Suhosin:
Некоторые значения не удовлетворяют рекомендуемым.
suhosin.post.max_vars: 4096 или более
Значение на вашей системе: {$_postMaxVars}.
Может привести к проблемам при сохранении форм (особенно в админ-центре).

suhosin.request.max_vars: 4096 или более
Значение на вашей системе: {$_reqMaxVars}.
Может привести к проблемам при сохранении форм (особенно в админ-центре).

suhosin.post.max_value_length: 1000000 или более
Значение на вашей системе: {$_postMaxLen}.
Может привести к проблемам при сохранении больших сообщений или подобной информации.

suhosin.request.max_value_length: 1000000 или более
Значение на вашей системе: {$_reqMaxLen}.
Может привести к проблемам при сохранении больших сообщений или подобной информации.

suhosin.request.max_varname_length: 350 или более
Значение на вашей системе: {$_reqMaxVar}.
Может привести к проблемам при работе с ЧПУ.

EOF; } $IPBHTML .= <<Проверка: Файлы
Требуемые файлы: {$_filesOK}

Проверка: Расширения PHP
Общие расширения PHP: {$_extensionsOK} EOF; foreach( $extensions as $xt ) { if ( $xt['_ok'] !== TRUE ) { if ( $xt['_ok'] !== 1 ) { $IPBHTML .= "
{$xt['prettyname']} ({$xt['extensionname']}): Нет (Подробнее)"; } else { $IPBHTML .= "
{$xt['prettyname']} ({$xt['extensionname']}) Рекомендуется: Нет (Подробнее)"; } } else { $IPBHTML .= "
{$xt['prettyname']} ({$xt['extensionname']}): Есть"; } } $IPBHTML .= << EOF; return $IPBHTML; } /** * Global template/wrapper * * @access public * @param string Title * @param string Page content * @param array Data * @param array Errors * @param array Warnings * @param array Install step info * @return string HTML */ public function globalTemplate( $title, $content, $data=array(), $errors=array(), $warnings=array(), $messages=array(), $installStep=array(), $version, $appData ) { $IPBHTML = ""; //--starthtml--// $_cssPath = '../setup/public'; $_productVersion = $this->registry->fetchGlobalConfigValue('version'); $_productName = $this->registry->fetchGlobalConfigValue('name'); $app = ( IPS_IS_UPGRADER ) ? 'upgrade' : 'install'; $extraUrl = ( IPS_IS_UPGRADER ) ? '&s=' . $this->request['s'] : ''; $extraUrl .= ( IPS_IS_UPGRADER AND $this->request['workact'] ) ? '&workact=' . $this->request['workact'] : ''; $extraUrl .= ( IPS_IS_UPGRADER AND isset( $this->request['st'] ) ) ? '&st=' . $this->request['st'] : ''; $extraInfo = ( IPS_IS_UPGRADER AND $version ) ? 'Модуль: ' . $version . '
(' . $appData['name'] . ')' : ''; $IPBHTML .= << Установщик IPS: {$title}