chore: snapshot current working tree changes

Save all currently accumulated repository changes as a backup snapshot for Gitea so no local work is lost.
This commit is contained in:
Fedor
2026-03-26 14:19:01 +03:00
parent aec27abeb0
commit 01c4fe80b5
1557 changed files with 2090933 additions and 20934 deletions

View File

@@ -0,0 +1,112 @@
<?php
/**
* Проверка конкретного комментария по ID
* Вызов: https://crm.clientright.ru/scripts/check_specific_comment.php?id=519716
*/
error_reporting(E_ALL);
ini_set('display_errors', '1');
header('Content-Type: text/plain; charset=utf-8');
chdir(dirname(__DIR__));
require_once 'config.inc.php';
$comment_id = isset($_GET['id']) ? (int)$_GET['id'] : 519716;
// Прямое подключение к БД
$mysqli = new mysqli($dbconfig['db_hostname'], $dbconfig['db_username'], $dbconfig['db_password'], $dbconfig['db_name']);
$mysqli->set_charset('utf8');
if ($mysqli->connect_error) {
die("Ошибка подключения: " . $mysqli->connect_error);
}
echo "Проверка комментария ID={$comment_id}\n";
echo str_repeat('=', 70) . "\n\n";
// 1. Проверка vtiger_crmentity
$stmt = $mysqli->prepare("SELECT * FROM vtiger_crmentity WHERE crmid = ?");
$stmt->bind_param('i', $comment_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 0) {
echo "❌ Запись в vtiger_crmentity НЕ НАЙДЕНА!\n";
} else {
echo "✅ vtiger_crmentity:\n";
$row = $result->fetch_assoc();
foreach ($row as $key => $value) {
echo " {$key}: " . ($value ?? 'NULL') . "\n";
}
}
echo "\n";
// 2. Проверка vtiger_modcomments
$stmt = $mysqli->prepare("SELECT * FROM vtiger_modcomments WHERE modcommentsid = ?");
$stmt->bind_param('i', $comment_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 0) {
echo "❌ Запись в vtiger_modcomments НЕ НАЙДЕНА!\n";
} else {
echo "✅ vtiger_modcomments:\n";
$row = $result->fetch_assoc();
foreach ($row as $key => $value) {
if ($key === 'commentcontent') {
echo " {$key}: " . mb_substr($value, 0, 100, 'UTF-8') . "...\n";
} else {
echo " {$key}: " . ($value ?? 'NULL') . "\n";
}
}
}
echo "\n";
// 3. Проверка vtiger_modcommentscf
$stmt = $mysqli->prepare("SELECT * FROM vtiger_modcommentscf WHERE modcommentsid = ?");
$stmt->bind_param('i', $comment_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 0) {
echo "❌ Запись в vtiger_modcommentscf НЕ НАЙДЕНА!\n";
} else {
echo "✅ vtiger_modcommentscf:\n";
$row = $result->fetch_assoc();
foreach ($row as $key => $value) {
echo " {$key}: " . ($value ?? 'NULL') . "\n";
}
}
echo "\n";
// 4. Попытка выборки с JOIN (как в CRM)
$stmt = $mysqli->prepare("
SELECT m.modcommentsid, m.commentcontent, m.related_to, m.channel,
e.smownerid, e.deleted, e.setype
FROM vtiger_modcomments m
INNER JOIN vtiger_crmentity e ON e.crmid = m.modcommentsid
INNER JOIN vtiger_modcommentscf c ON c.modcommentsid = m.modcommentsid
WHERE m.modcommentsid = ? AND e.deleted = 0
");
$stmt->bind_param('i', $comment_id);
$stmt->execute();
$result = $stmt->get_result();
echo str_repeat('=', 70) . "\n";
if ($result->num_rows === 0) {
echo "С JOIN (как в CRM) — комментарий НЕ ПОПАДАЕТ в выборку!\n";
echo " Возможные причины:\n";
echo " - deleted = 1 в vtiger_crmentity\n";
echo " - Нет записи в vtiger_modcommentscf\n";
} else {
echo "С JOIN (как в CRM) — комментарий НАЙДЕН:\n";
$row = $result->fetch_assoc();
foreach ($row as $key => $value) {
if ($key === 'commentcontent') {
echo " {$key}: " . mb_substr($value, 0, 100, 'UTF-8') . "...\n";
} else {
echo " {$key}: " . ($value ?? 'NULL') . "\n";
}
}
}
$mysqli->close();