http://www.1gb.ua/wiki/index.php?title=Joomla_-_%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%B1%D0%B0%D0%B7%D1%8B&action=history&feed=atomJoomla - проблема имени базы - История изменений2024-03-29T08:45:34ZИстория изменений этой страницы в викиMediaWiki 1.10.1http://www.1gb.ua/wiki/index.php?title=Joomla_-_%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%B1%D0%B0%D0%B7%D1%8B&diff=4929&oldid=prevDmih в 13:48, 20 ноября 20092009-11-20T13:48:47Z<p></p>
<p><b>Новая статья</b></p><div>== Неудобство решено ==<br />
В системе хостинга 1Gb решено называть базы без префикса 1.<br />
Теперь базы, создаваемые системой, совместимы с требованием Joomla.<br />
<br />
== Для истории ==<br />
В Joomla версии 1.5 (проблема точно есть на версии 1.5.2) присутствует <br />
проблема связанная с тем, что эта "CMS" считает будто имя БД не может начинаться с цифры, при указании имени БД с префиксом "1gb_" пользователи получают сообщение <br />
<br />
"Имя базы данных MySQL должно начинаться с латинской буквы и может содержать только латинские буквы, <br />
цифры или символ подчёркивания (A-Z,a-z,0-9,_)"<br />
<br />
К сожалению разработчики Joomla в этом отношении не правы, так как имя базы данных для mySQL '''может''' содержать первым символом цифру, о чём имеется многолетняя беспроблемная практика как с нашей стороны, так и со стороны любых других CMS и систем которые как либо вообще работают с СУБД mySQL.<br />
<br />
Для того что бы обойти указанное огарничение нужно внести изменение в код Joomla с целью снять проверку правильности ввода имени БД, для этого нужно отредактировать два файла:<br />
<br />
* /installation/installer/models/model.php, найти в нём следующий код (ориентиром может служить переменная 'MYSQLDBNAMEINVALIDCHARS':<br />
<br />
if (!preg_match( '#^[a-zA-Z]+[a-zA-Z0-9_]*$#', $DBname )) {<br />
$this->setError(JText::_('MYSQLDBNAMEINVALIDCHARS'));<br />
$this->setData('back', 'dbconfig');<br />
$this->setData('errors', $errors);<br />
return false;<br />
}<br />
<br />
и удалить его - просто стереть эти 6 строчек.<br />
<br />
<br />
* /installation/template/tmpl/dbconfig.html, ориентир тот же:<br />
<br />
} else if (!regex.test(DBname.value)) {<br />
alert('<jtmpl:translate key="MYSQLDBNAMEINVALIDCHARS" escape="yes">The MySQL Database Name must ...<br />
return;<br />
<br />
и так же их удалить<br />
<br />
[[Категория:CMS]]<br />
[[Категория:Проблемы с известными скриптами]]</div>Dmih