Недавно обновлял компонент самой первой версии Павла Зотова на последнюю версию от Alex Revo, поэтому могу поделиться некоторым опытом.
Собственно как и рекомендует автор были обновлены все файлы, и выполнены запросы
ALTER TABLE `jos_autobb_messages` ADD `company` VARCHAR( 100 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL AFTER `name` ;
ALTER TABLE `jos_autobb_messages` ADD `fuelinputcity` DECIMAL(4,1) NOT NULL DEFAULT '0' AFTER `engine`;
ALTER TABLE `jos_autobb_messages` ADD `fuelinputcountry` DECIMAL(4,1) NOT NULL DEFAULT '0' AFTER `fuelinputcity`;
ALTER TABLE `jos_autobb_messages` ADD `fuelinputboth` DECIMAL(4,1) NOT NULL DEFAULT '0' AFTER `fuelinputcountry` ;
ALTER TABLE `jos_autobb_messages` ADD `lastViewIP` varchar( 20 ) ;
ALTER TABLE `jos_autobb_messages` ADD `power` INT( 11 ) NOT NULL DEFAULT '0' AFTER `volume` ;
ALTER TABLE `jos_autobb_messages` ADD `ip` VARCHAR( 20 ) NULL DEFAULT NULL AFTER `lastViewIP`;
ALTER TABLE `jos_autobb_messages` ADD `banned` TINYINT( 1 ) NOT NULL DEFAULT '0';
ALTER TABLE `jos_autobb_messages` ADD `speed` INT( 3 ) NOT NULL AFTER `power` ;
ALTER TABLE `jos_autobb_messages` ADD `en`TINYINT( 1 ) NOT NULL AFTER `views` ;
ALTER TABLE `jos_autobb_messages` ADD `cr`TINYINT( 1 ) NOT NULL AFTER `en` ;
ALTER TABLE `jos_autobb_messages` CHANGE `en` `en` TINYINT( 1 ) NOT NULL DEFAULT '0',
CHANGE `cr` `cr` TINYINT(1 ) NOT NULL DEFAULT '0';
После чего возникла проблема с путями к изображениям. Сайт действующий и необходимо было сохранить объявления.
В версиях Alex Revo изображения храняться в отедельных папках, в версих - П. Зотова все хранилось в одной папке.
Этот код перекладывает изображения в подпапки
<?
require ('/home/..../public_html/beta/configuration.php');
$dbcon=mysql_connect($mosConfig_host,$mosConfig_user,$mosConfig_password);
mysql_select_db($mosConfig_db, $dbcon);
$dbcon="SELECT title FROM jos_autobb_photos where (msgid >= 2099) AND (msgid <= 2150)";
$result = mysql_query ($dbcon) or die (mysql_error());
$n = mysql_numrows($result);
if($n>0){
$i=0;
while($i<$n){
$myrow=mysql_fetch_array($result);
if ($myrow["title"]) {
$zpl = $myrow["title"];
$exl=explode("-", $myrow["title"]);
mkdir($exl [1], 0777);
if (copy('/home/...../public_html/components/com_autobb/photos/'.$zpl.'', '/home/..../public_html/beta/components/com_autobb/photos/'.$exl[1].'/'.$zpl.''))
{ echo "ОК </br>"; }
else
{ echo "Ошибка при копировании"; }
}
$i++;
}
echo "Копирование успешно выполнено!";
}
?>
Следующий код модифицирует пути к изображениям в БД
<?
require ('/home/..../public_html/beta/configuration.php');
$dbcon=mysql_connect($mosConfig_host,$mosConfig_user,$mosConfig_password);
mysql_select_db($mosConfig_db, $dbcon);
$dbcon="SELECT title FROM jos_autobb_photos where (msgid >= 2099) AND (msgid <= 8297)";
$result = mysql_query ($dbcon) or die (mysql_error());
$n = mysql_numrows($result);
if($n>0){
$i=0;
while($i<$n){
$myrow=mysql_fetch_array($result);
if ($myrow["title"]) {
$zpl = $myrow["title"];
$exl=explode("-", $myrow["title"]);
$zdr = $exl[1];
$zdr .= "/$zpl";
echo $zdr;
$dbrez ="UPDATE jos_autobb_photos SET title = '".$zdr."' WHERE title = '".$zpl."' ";
$resms = mysql_query ($dbrez) or die (mysql_error());
}
$i++;
}
echo "Изменение успешно выполнено!";
}
?>
Коды из этих листингов использовались в отдельных php - файлах.
Замечу что описанные операции выполнялись достаточно долго (копировалось около 8000 тысяч объявлений), поэтому вводились диапазоны объявлений.
Замечу, что код будет работать гораздо быстрее, если переделать проверки и возложить их на MySQL.