Joomla - проблема имени базы
Материал из 1GbWiki.
Версия 01:25, 6 августа 2008 (править) 74.74.120.218 (Обсуждение) (ciIpCjObEAfj) ← К предыдущему изменению |
Текущая версия (13:48, 20 ноября 2009) (править) (отменить) Dmih (Обсуждение | вклад) м |
||
(6 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | + | == Неудобство решено == | |
+ | В системе хостинга 1Gb решено называть базы без префикса 1. | ||
+ | Теперь базы, создаваемые системой, совместимы с требованием Joomla. | ||
+ | |||
+ | == Для истории == | ||
+ | В Joomla версии 1.5 (проблема точно есть на версии 1.5.2) присутствует | ||
+ | проблема связанная с тем, что эта "CMS" считает будто имя БД не может начинаться с цифры, при указании имени БД с префиксом "1gb_" пользователи получают сообщение | ||
+ | |||
+ | "Имя базы данных MySQL должно начинаться с латинской буквы и может содержать только латинские буквы, | ||
+ | цифры или символ подчёркивания (A-Z,a-z,0-9,_)" | ||
+ | |||
+ | К сожалению разработчики Joomla в этом отношении не правы, так как имя базы данных для mySQL '''может''' содержать первым символом цифру, о чём имеется многолетняя беспроблемная практика как с нашей стороны, так и со стороны любых других CMS и систем которые как либо вообще работают с СУБД mySQL. | ||
+ | |||
+ | Для того что бы обойти указанное огарничение нужно внести изменение в код Joomla с целью снять проверку правильности ввода имени БД, для этого нужно отредактировать два файла: | ||
+ | |||
+ | * /installation/installer/models/model.php, найти в нём следующий код (ориентиром может служить переменная 'MYSQLDBNAMEINVALIDCHARS': | ||
+ | |||
+ | if (!preg_match( '#^[a-zA-Z]+[a-zA-Z0-9_]*$#', $DBname )) { | ||
+ | $this->setError(JText::_('MYSQLDBNAMEINVALIDCHARS')); | ||
+ | $this->setData('back', 'dbconfig'); | ||
+ | $this->setData('errors', $errors); | ||
+ | return false; | ||
+ | } | ||
+ | |||
+ | и удалить его - просто стереть эти 6 строчек. | ||
+ | |||
+ | |||
+ | * /installation/template/tmpl/dbconfig.html, ориентир тот же: | ||
+ | |||
+ | } else if (!regex.test(DBname.value)) { | ||
+ | alert('<jtmpl:translate key="MYSQLDBNAMEINVALIDCHARS" escape="yes">The MySQL Database Name must ... | ||
+ | return; | ||
+ | |||
+ | и так же их удалить | ||
+ | |||
+ | [[Категория:CMS]] | ||
+ | [[Категория:Проблемы с известными скриптами]] |
Текущая версия
Неудобство решено
В системе хостинга 1Gb решено называть базы без префикса 1. Теперь базы, создаваемые системой, совместимы с требованием Joomla.
Для истории
В Joomla версии 1.5 (проблема точно есть на версии 1.5.2) присутствует проблема связанная с тем, что эта "CMS" считает будто имя БД не может начинаться с цифры, при указании имени БД с префиксом "1gb_" пользователи получают сообщение
"Имя базы данных MySQL должно начинаться с латинской буквы и может содержать только латинские буквы, цифры или символ подчёркивания (A-Z,a-z,0-9,_)"
К сожалению разработчики Joomla в этом отношении не правы, так как имя базы данных для mySQL может содержать первым символом цифру, о чём имеется многолетняя беспроблемная практика как с нашей стороны, так и со стороны любых других CMS и систем которые как либо вообще работают с СУБД mySQL.
Для того что бы обойти указанное огарничение нужно внести изменение в код Joomla с целью снять проверку правильности ввода имени БД, для этого нужно отредактировать два файла:
- /installation/installer/models/model.php, найти в нём следующий код (ориентиром может служить переменная 'MYSQLDBNAMEINVALIDCHARS':
if (!preg_match( '#^[a-zA-Z]+[a-zA-Z0-9_]*$#', $DBname )) { $this->setError(JText::_('MYSQLDBNAMEINVALIDCHARS')); $this->setData('back', 'dbconfig'); $this->setData('errors', $errors); return false; }
и удалить его - просто стереть эти 6 строчек.
- /installation/template/tmpl/dbconfig.html, ориентир тот же:
} else if (!regex.test(DBname.value)) { alert('<jtmpl:translate key="MYSQLDBNAMEINVALIDCHARS" escape="yes">The MySQL Database Name must ... return;
и так же их удалить