Так получилось, что на нашем хостинге стало достаточное количество сайтов с привязкой к рф доменам. В панели ISP Config мы видим кучу сайтов, представленных в виде punycode, из-за этого сложно найти нужный сайт для его редактирования.
Сегодня я потратил около 4 часов для решения этой проблемы.
Наш ISPConfig находится в директории /usr/local/ispconfig, если у вас по другому, то меняйте пути в командах.
1. Переходим в директорию с классами
cd /usr/local/ispconfig/interface/lib/classes
2. Скачиваем класс для перекодировки punycode
wget http://phlymail.com/download/Goodies/idna_convert_080.zip
3. Распаковываем
4. Открываем файл /usr/local/ispconfig/interface/web/sites/web_domain_list.php
после строки
вставляем строки
require_once('../../lib/classes/idna_convert.class.php');
$idn_class = new idna_convert(array('idn_version' => '2008'));
сохраняемся, далее
5. Открываем файл /usr/local/ispconfig/interface/lib/classes/listform_actions.inc.php
в функцию prepareDataRow, после строки
$key = $field['field'];
вставляем следующие строки
if(isset($field['formtype']) && $field['formtype'] == 'DOMAIN')
$rec[$key] = $idn_class->decode(stripslashes(@$rec[$key]));
6. Теперь осталось подправить сам шаблон списка сайтов
открываем файл /usr/local/ispconfig/interface/web/sites/list/web_domain.list.php
и в самом конце находим конфигурацию поля
$liste["item"][] = array( 'field' => "domain",
'datatype' => "VARCHAR",
'formtype' => "TEXT",
'op' => "like",
'prefix' => "%",
'suffix' => "%",
'width' => "",
'value' => "");
нужно сделать так
$liste["item"][] = array( 'field' => "domain",
'datatype' => "VARCHAR",
'formtype' => "DOMAIN",
'op' => "like",
'prefix' => "%",
'suffix' => "%",
'width' => "",
'value' => "");
P.S.:
Уважайте труд других, оставляйте ссылку на данную статью при использовании материалов из нее.
Версия ISPConfig, на моем сервере 3.0.3.3,
операционная система - Debian Squeeze amd64.
Домены, изображенные на скриншоте мне не принадлежат и были использованы в качестве примера.
Для версий новее 3.0.3 смотрите комментарии. Структура малость изменилась в новых версиях, поэтому действия иные.
В дальнейшем будут адаптированы другие компоненты ISPConfig, так что ожидайте дополнения статьи.
Сегодня я потратил около 4 часов для решения этой проблемы.
Наш ISPConfig находится в директории /usr/local/ispconfig, если у вас по другому, то меняйте пути в командах.
1. Переходим в директорию с классами
cd /usr/local/ispconfig/interface/lib/classes
2. Скачиваем класс для перекодировки punycode
wget http://phlymail.com/download/Goodies/idna_convert_080.zip
3. Распаковываем
unzip idna_convert_080.zip
4. Открываем файл /usr/local/ispconfig/interface/web/sites/web_domain_list.php
после строки
$list_def_file = "list/web_domain.list.php";
вставляем строки
require_once('../../lib/classes/idna_convert.class.php');
$idn_class = new idna_convert(array('idn_version' => '2008'));
сохраняемся, далее
5. Открываем файл /usr/local/ispconfig/interface/lib/classes/listform_actions.inc.php
в функцию prepareDataRow, после строки
$key = $field['field'];
вставляем следующие строки
if(isset($field['formtype']) && $field['formtype'] == 'DOMAIN')
$rec[$key] = $idn_class->decode(stripslashes(@$rec[$key]));
6. Теперь осталось подправить сам шаблон списка сайтов
открываем файл /usr/local/ispconfig/interface/web/sites/list/web_domain.list.php
и в самом конце находим конфигурацию поля
$liste["item"][] = array( 'field' => "domain",
'datatype' => "VARCHAR",
'formtype' => "TEXT",
'op' => "like",
'prefix' => "%",
'suffix' => "%",
'width' => "",
'value' => "");
нужно сделать так
$liste["item"][] = array( 'field' => "domain",
'datatype' => "VARCHAR",
'formtype' => "DOMAIN",
'op' => "like",
'prefix' => "%",
'suffix' => "%",
'width' => "",
'value' => "");
P.S.:
Уважайте труд других, оставляйте ссылку на данную статью при использовании материалов из нее.
Версия ISPConfig, на моем сервере 3.0.3.3,
операционная система - Debian Squeeze amd64.
Домены, изображенные на скриншоте мне не принадлежат и были использованы в качестве примера.
Для версий новее 3.0.3 смотрите комментарии. Структура малость изменилась в новых версиях, поэтому действия иные.
В дальнейшем будут адаптированы другие компоненты ISPConfig, так что ожидайте дополнения статьи.
6 комментариев:
К сожалению не помогло... после добавления всех этих строчек у меня отображение списка доменов вообще пропало.
ISPConfig Version: 3.0.4.1
К сожалению не помогло... после добавления всех этих строчек у меня отображение списка доменов вообще пропало.
ISPConfig Version: 3.0.4.1
===========================
если есть время помогите.
почта - support@htcdn.net
Спасибо Вам Павел, информация была очень полезная но не достоверная.
Для ISPConfig 3.0.4.1 :
1. Переходим в директорию с классами
cd /usr/local/ispconfig/interface/lib/classes
2. Скачиваем класс для перекодировки punycode
wget http://phlymail.com/download/Goodies/idna_convert_080.zip
3. Распаковываем
unzip idna_convert_080.zip
4. Открываем файл /usr/local/ispconfig/interface/lib/classes/listform_actions.inc.php
в функцию prepareDataRow, после строки
$key = $field['field'];
require_once('idna_convert.class.php');
$idn_class = new idna_convert(array('idn_version' => '2008'));
$rec[$key] = $idn_class->decode(stripslashes($rec[$key]));
И все Все арбайтен великолепно. больше ничего далать не пришлось.
P.S. Предыдущие два комента мои.
Я извиняюсь все время забываю добавить все что я написал это для Fedora15 + ISPConfig 3.0.4.1
установка по инструкции - http://www.mini-server.ru/server/web/196-fedora-15-ispconfig-3?showall=1.
P.S. Все выше сказанное не сработало на Debian11+ISPConfig, установка с того же сайта.
Ну видимо вся проблема в версии, я писал для версии 3.0.3 а вы в 3.0.4 делали, спасибо за ваши замечания.
С версией 3.0.5.4... - не работает.
Отправить комментарий