Forums / National / Russian / Тех. поддержка / Пропали звездочки рейтинга reviewstar

ed.moriarti
#1 2021-06-04 21:42

Добрый день! Что то на мои посты совсем нет ответов )) наверное поднадоел )) а может просто возможности нет пока ответить )) ну это я так...

Ребят снова проблема! Пропали звездочки рейтинга на сайте по коду и тегу:

<span class="reviewstar" data-number="{PRD_OWNER_STAR_SUMM}"></span>

Раньше все работало, звезды были, высвечивались...

Хотел переустановить плагин, но сейчас при установке плагина "reviewstar" выдает следующую ошибку:

Fatal error
2021-06-04 21:36

SQL error 42S21: Column already exists: 1060 Duplicate column name 'item_rquality'

#0  cot_diefatal(SQL error 42S21: Column already exists: 1060 Duplicate column name 'item_rquality') called at [/var/www//public_html/system/database.php:574]
#1  CotDB->query(ALTER TABLE `vyp_reviews` ADD COLUMN `item_rquality` int(3) DEFAULT NULL) called at [/var/www//public_html/plugins/reviewstar/setup/reviewstar.install.php:18]
#2  include(/var/www//public_html/plugins/reviewstar/setup/reviewstar.install.php) called at [/var/www//public_html/system/extensions.php:538]
#3  cot_extension_install(reviewstar, ) called at [/var/www//public_html/system/admin/admin.extensions.php:110]
#4  require(/var/www//public_html/system/admin/admin.extensions.php) called at [/var/www//public_html/system/admin/admin.main.php:67]
#5  include(/var/www//public_html/system/admin/admin.main.php) called at [/var/www//public_html/admin.php:25]

=(

cotontidev
#2 2021-06-06 15:37

Попробуйте в файле reviewstar\setup\reviewstar.install.php обернуть SQL запросы на добавление полей в таблице вот таким образом

if (!$db->fieldExists($db_reviews, "item_rquality")) {  
$db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_rquality` int(3) DEFAULT NULL");
}

 

ed.moriarti
#3 2021-06-06 22:18
#45402 cotontidev:

Попробуйте в файле reviewstar\setup\reviewstar.install.php обернуть SQL запросы на добавление полей в таблице вот таким образом

if (!$db->fieldExists($db_reviews, "item_rquality")) {  
$db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_rquality` int(3) DEFAULT NULL");
}

так они по сути такие и есть:

<?php
defined('COT_CODE') or die('Wrong URL');

require_once cot_incfile('reviews', 'plug');

global $cot_extrafields, $db_users, $db_reviews, $db_x;
$db_reviews = (isset($db_reviews)) ? $db_reviews : $db_x . 'reviews';

// Add field if missing
if (!$db->fieldExists($db_users, "user_rquality"))
{
	$dbres = $db->query("ALTER TABLE `$db_users` ADD COLUMN `user_rquality` float(3) DEFAULT NULL");
}

// Add field if missing
if (!$db->fieldExists($db_reviews, "user_rquality"))
{
	$dbres = $db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_rquality` int(3) DEFAULT NULL");
}


// Add field if missing
if (!$db->fieldExists($db_users, "user_rcost"))
{
	$dbres = $db->query("ALTER TABLE `$db_users` ADD COLUMN `user_rcost` float(3) DEFAULT NULL");
}

// Add field if missing
if (!$db->fieldExists($db_reviews, "user_rcost"))
{
	$dbres = $db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_rcost` int(3) DEFAULT NULL");
}

// Add field if missing
if (!$db->fieldExists($db_users, "user_ramity"))
{
	$dbres = $db->query("ALTER TABLE `$db_users` ADD COLUMN `user_ramity` float(3) DEFAULT NULL");
}

// Add field if missing
if (!$db->fieldExists($db_reviews, "user_ramity"))
{
	$dbres = $db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_ramity` int(3) DEFAULT NULL");
}

?>

cool

 

cotontidev
#4 2021-06-13 11:19

Там ошибка, посмотрите проверяет поле user_rcost в таблице $db_reviews, а добавляет поле item_rcost
Нужно исправить условия проверки, вот так верно будет

// Add field if missing
if (!$db->fieldExists($db_users, "user_rquality"))
{
    $dbres = $db->query("ALTER TABLE `$db_users` ADD COLUMN `user_rquality` float(3) DEFAULT NULL");
}
 
// Add field if missing
if (!$db->fieldExists($db_reviews, "item_rquality"))
{
    $dbres = $db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_rquality` int(3) DEFAULT NULL");
}
 
 
// Add field if missing
if (!$db->fieldExists($db_users, "user_rcost"))
{
    $dbres = $db->query("ALTER TABLE `$db_users` ADD COLUMN `user_rcost` float(3) DEFAULT NULL");
}
 
// Add field if missing
if (!$db->fieldExists($db_reviews, "item_rcost"))
{
    $dbres = $db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_rcost` int(3) DEFAULT NULL");
}
 
// Add field if missing
if (!$db->fieldExists($db_users, "user_ramity"))
{
    $dbres = $db->query("ALTER TABLE `$db_users` ADD COLUMN `user_ramity` float(3) DEFAULT NULL");
}
 
// Add field if missing
if (!$db->fieldExists($db_reviews, "item_ramity"))
{
    $dbres = $db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_ramity` int(3) DEFAULT NULL");
}

 

ed.moriarti
#5 2021-06-13 22:01
#45410 cotontidev:

Там ошибка, посмотрите проверяет поле user_rcost в таблице $db_reviews, а добавляет поле item_rcost
Нужно исправить условия проверки, вот так верно будет

// Add field if missing
if (!$db->fieldExists($db_users, "user_rquality"))
{
    $dbres = $db->query("ALTER TABLE `$db_users` ADD COLUMN `user_rquality` float(3) DEFAULT NULL");
}
 
// Add field if missing
if (!$db->fieldExists($db_reviews, "item_rquality"))
{
    $dbres = $db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_rquality` int(3) DEFAULT NULL");
}
 
 
// Add field if missing
if (!$db->fieldExists($db_users, "user_rcost"))
{
    $dbres = $db->query("ALTER TABLE `$db_users` ADD COLUMN `user_rcost` float(3) DEFAULT NULL");
}
 
// Add field if missing
if (!$db->fieldExists($db_reviews, "item_rcost"))
{
    $dbres = $db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_rcost` int(3) DEFAULT NULL");
}
 
// Add field if missing
if (!$db->fieldExists($db_users, "user_ramity"))
{
    $dbres = $db->query("ALTER TABLE `$db_users` ADD COLUMN `user_ramity` float(3) DEFAULT NULL");
}
 
// Add field if missing
if (!$db->fieldExists($db_reviews, "item_ramity"))
{
    $dbres = $db->query("ALTER TABLE `$db_reviews` ADD COLUMN `item_ramity` int(3) DEFAULT NULL");
}

 

Установка прошлауспешно, но звездочки так и не появились ))