459 lines
22 KiB
PHP
459 lines
22 KiB
PHP
<?php
|
||
|
||
use Battles\DressedItems;
|
||
use Battles\GameLogs;
|
||
use Battles\InventoryItem;
|
||
use Battles\Template;
|
||
use Battles\Travel;
|
||
use Battles\UserInfo;
|
||
use Battles\UserStats;
|
||
|
||
ob_start("ob_gzhandler");
|
||
session_start();
|
||
$get = filter_input(INPUT_SERVER, 'QUERY_STRING');
|
||
if ($get == 'exit') {
|
||
session_destroy();
|
||
header("Location: fight.php");
|
||
}
|
||
require_once 'functions.php';
|
||
|
||
$user->setOnline();
|
||
|
||
// Инициализируем входящие GET\POST переменные.
|
||
$goto = $_GET['goto'] ?? null;
|
||
$obraz = $_GET['obraz'] ?? null;
|
||
$del = $_GET['del'] ?? null;
|
||
$effectId = $_GET['efid'] ?? null;
|
||
$brons = $_GET['modif_bron'] ?? null;
|
||
$stats = $_GET['modif_stat'] ?? null;
|
||
$mfs = $_GET['modif_mf'] ?? null;
|
||
$ids = $_GET['ids'] ?? null;
|
||
$setShadow = $_POST['setshadow'] ?? null;
|
||
$edit = $_GET['edit'] ?? null;
|
||
|
||
if ($edit) {
|
||
$ups = $_GET['ups'] ?? null;
|
||
$upm = $_GET['upm'] ?? null;
|
||
$use = $_GET['use'] ?? null;
|
||
$useTarget = $_POST['target'] ?? null;
|
||
$drop = $_GET['drop'] ?? null;
|
||
$dress = $_GET['dress'] ?? null;
|
||
$undress = $_GET['undress'] ?? null;
|
||
$destruct = $_GET['destruct'] ?? null;
|
||
|
||
if ($ups) {
|
||
$user->addOnePointToStat($ups);
|
||
}
|
||
if ($upm) {
|
||
addOnePoint($upm, 'mastery');
|
||
}
|
||
if ($drop) {
|
||
$items = new DressedItems($_SESSION['uid']);
|
||
$items->undressItem($drop);
|
||
}
|
||
//Пока что одеваем предмет отсюда.
|
||
if ($dress) {
|
||
echo dressitem($dress);
|
||
}
|
||
if ($destruct) {
|
||
$q = db::c()->query('SELECT `id`, `dressed`, `name`, `duration`, `maxdur` FROM `inventory` WHERE `owner` = ?i AND `id` = ?i', $_SESSION['uid'], $destruct);
|
||
if ($q->getNumRows()) {
|
||
$q = $q->fetch_assoc();
|
||
if (empty($q['dressed'])) {
|
||
destructitem($q['id']);
|
||
GameLogs::addUserLog($user->getId(), $user->getLogin() . ' выбросил предмет ' . $q['name'] . ' id:(cap' . $q['id'] . ')');
|
||
err('Предмет ' . $q['name'] . ' выброшен.');
|
||
} else {
|
||
err('Ошибка: нельзя выбросить одетый предмет!');
|
||
}
|
||
} else {
|
||
err('Ошибка: предмет не найден!');
|
||
}
|
||
}
|
||
if ($use) {
|
||
usemagic($use, $useTarget);
|
||
}
|
||
if ($undress) {
|
||
undressall($_SESSION['uid']);
|
||
}
|
||
}
|
||
|
||
|
||
// Подготавливаем отображение инфы и предметов.
|
||
$userInfo = new UserInfo($user->getId());
|
||
$userStats = new UserStats($user->getId());
|
||
$getItemsBonuses = new DressedItems($user->getId());
|
||
$data = \Battles\Database\DBPDO::INIT()->ofetchAll('SELECT * FROM inventory WHERE owner_id = ? AND dressed_slot = 0 AND on_sale = 0', $user->getId());
|
||
$iteminfo = [];
|
||
foreach ($data as $row) {
|
||
$iteminfo[] = new InventoryItem($row);
|
||
}
|
||
|
||
//Обработчики нажатий на кнопки.
|
||
if ($_POST['battlefield'] ?? 0 && $user->getRoom() == 1) {
|
||
header('Location: zayavka.php');
|
||
exit();
|
||
}
|
||
if ($_POST['module_quest'] ?? 0) {
|
||
header('Location: module_quest.php');
|
||
exit();
|
||
}
|
||
if ($_POST['move_inside'] ?? 0 && $user->getRoom() == 20) {
|
||
header('Location: main.php?goto=arena');
|
||
exit();
|
||
}
|
||
if ($_POST['move_outside'] ?? 0 && $user->getRoom() == 1) {
|
||
header('Location: main.php?goto=plo');
|
||
exit();
|
||
}
|
||
if ($_POST['main_page'] ?? 0) {
|
||
header('Location: main.php');
|
||
exit();
|
||
}
|
||
|
||
if ($edit === null) {
|
||
/* === проверяем соответствие комнаты и скрипта === */
|
||
if (in_array($user->getRoom(), [20, 21, 26, 48, 51, 52, 651, 2655, 2601, 2701, 2702, 2111])) {
|
||
header('Location: city.php');
|
||
exit();
|
||
}
|
||
if (in_array($user->getRoom(), [22, 23, 25, 27, 29, 30, 31, 34, 45, 53, 61, 402, 403, 600, 601, 602, 603, 620, 621, 650, 660, 661, 662, 666, 760, 1051, 1052, 1055])) {
|
||
header('location: ' . Travel::$roomFileName[$user->getRoom()]);
|
||
exit();
|
||
}
|
||
}
|
||
function del_efs($id, $type)
|
||
{
|
||
if ($id && !in_array($type, [2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 20])) {
|
||
db::c()->query('DELETE FROM users_effects WHERE owner_id = ?i AND effect_id = ?i', $_SESSION['uid'], $id);
|
||
if ($type == 1022) {
|
||
db::c()->query('UPDATE `users` SET `invis` = 0 WHERE `id` = ?i', $_SESSION['uid']);
|
||
}
|
||
return 'Эффект удалён.';
|
||
} else {
|
||
return 'Эффект нельзя удалить.';
|
||
}
|
||
}
|
||
|
||
// одеть предмет
|
||
function dressitem($id)
|
||
{
|
||
define('HELMET', 1);
|
||
define('ARMOR', 2);
|
||
define('LEGS', 3);
|
||
define('BOOTS', 4);
|
||
define('GLOVES', 5);
|
||
define('WEAPON', 6);
|
||
define('SHIELD', 7);
|
||
define('BELT', 8);
|
||
define('RING', 9);
|
||
define('AMULET', 10);
|
||
define('DRESSITEM_ERROR', [
|
||
'TOO_MANY_ITEMS_IN_SLOTS' => 'Критическая ошибка: Переполнение слота!',
|
||
'UNKNOWN_ITEM_TYPE' => 'Неизвестный тип предмета!',
|
||
'ITEM_NOT_FOUND' => 'Предмет не найден!',
|
||
'REQUIREMENTS_NOT_MET' => 'Персонаж не соответствует требованиям!',
|
||
]);
|
||
$userStats = new UserStats($_SESSION['uid']);
|
||
$itemInSlot = [];
|
||
$selectedItemRow = db::c()->query('SELECT item_type,need_strength,need_dexterity,need_intuition,need_endurance,need_intelligence,need_wisdom FROM `inventory` WHERE item_id = ?i AND owner_id = ?i AND `dressed_slot` = 0 AND `durability` != 0', $id, $_SESSION['uid']);
|
||
|
||
//$userStats->getStrength()
|
||
if (!$selectedItemRow->getNumRows()) {
|
||
//с предметом что-то сильно не ок, ошибка.
|
||
$error = DRESSITEM_ERROR['ITEM_NOT_FOUND'];
|
||
} else {
|
||
$selectedItem = $selectedItemRow->fetch_object();
|
||
if ($selectedItem->need_strength > $userStats->getFullStats()->strength
|
||
|| $selectedItem->need_dexterity > $userStats->getFullStats()->dexterity
|
||
|| $selectedItem->need_intuition > $userStats->getFullStats()->intuition
|
||
|| $selectedItem->need_endurance > $userStats->getFullStats()->endurance
|
||
|| $selectedItem->need_intelligence > $userStats->getFullStats()->intelligence
|
||
|| $selectedItem->need_wisdom > $userStats->getFullStats()->wisdom) {
|
||
$error = DRESSITEM_ERROR['REQUIREMENTS_NOT_MET'];
|
||
} else {
|
||
$itemInSlotRow = db::c()->query('SELECT dressed_slot FROM inventory WHERE owner_id = ?i AND dressed_slot > 0 AND item_type = ?i', $_SESSION['uid'], $selectedItem->item_type);
|
||
$itemInSlotQuantity = $itemInSlotRow->getNumRows();
|
||
if ($itemInSlotQuantity) {
|
||
while ($row = $itemInSlotRow->fetch_object()) {
|
||
$itemInSlot[] = $row->dressed_slot;
|
||
}
|
||
}
|
||
if (in_array($selectedItem->item_type, [HELMET, ARMOR, LEGS, BOOTS, GLOVES, WEAPON, SHIELD, BELT, AMULET])) {
|
||
//работаем с нормальными слотами
|
||
if (!$itemInSlotQuantity) {
|
||
// просто одеваем предмет
|
||
db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE item_id = ?i', $id);
|
||
} elseif ($itemInSlotQuantity == 1) {
|
||
// снимаем предмет и одеваем вместо
|
||
db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = ?i', $itemInSlot[0]);
|
||
db::c()->query('UPDATE inventory SET dressed_slot = item_type WHERE item_id = ?i', $id);
|
||
} else {
|
||
// невозможная ситуация - два предмета в одиночном слоте. критическая ошибка, запись в лог, раздевание.
|
||
$error = DRESSITEM_ERROR['TOO_MANY_ITEMS_IN_SLOTS'];
|
||
db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot BETWEEN 1 AND 12 AND owner_id = ?i', $_SESSION['uid']);
|
||
}
|
||
} elseif ($selectedItem->item_type == RING) {
|
||
// работаем с кольцами
|
||
if ($itemInSlotQuantity < 3) {
|
||
// Сравниваем массив колец и массив слотов для колец.
|
||
$emptyRingSlots = array_diff([9, 10, 11], $itemInSlot);
|
||
// Сортируем массив свободных слотов по возрастанию.
|
||
sort($emptyRingSlots);
|
||
// Одеваем предмет в первый свободный слот.
|
||
db::c()->query('UPDATE inventory SET dressed_slot = ?i WHERE item_id = ?i', $emptyRingSlots[0], $id);
|
||
} elseif ($itemInSlotQuantity == 3) {
|
||
db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot = 11');
|
||
db::c()->query('UPDATE inventory SET dressed_slot = 11 WHERE item_id = ?i', $id);
|
||
// снимаем предмет из слота 11 и одеваем вместо
|
||
} else {
|
||
// невозможная ситуация - больше трёх предметов на три слота. критическая ошибка, запись в лог, раздевание.
|
||
$error = DRESSITEM_ERROR['TOO_MANY_ITEMS_IN_SLOTS'];
|
||
db::c()->query('UPDATE inventory SET dressed_slot = 0 WHERE dressed_slot BETWEEN 1 AND 12 AND owner_id = ?i', $_SESSION['uid']);
|
||
}
|
||
} else {
|
||
//предмет вообще не должен одеваться, ошибка
|
||
$error = DRESSITEM_ERROR['UNKNOWN_ITEM_TYPE'];
|
||
}
|
||
}
|
||
}
|
||
|
||
if (isset($error)) {
|
||
return $error;
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
// Входим и выходим если можем.
|
||
if ($goto) {
|
||
$imove = true;
|
||
$d = db::c()->query('SELECT SUM(weight) AS sum_weight FROM inventory WHERE owner_id = ?i AND on_sale = 0', $user->getId())->fetch_assoc();
|
||
$eff = db::c()->query('SELECT 1 FROM `users_effects` WHERE `owner_id` = ?i AND (`type` = 14 OR `type` = 13)', $user->getId());
|
||
//(масса: <?= $getItemsBonuses->getItemsWeight() . '/' . $user->strength * 4
|
||
|
||
if ($d['sum_weight'] > $userStats->getStrength() * 4 && $goto) {
|
||
err('У вас переполнен рюкзак, вы не можете передвигаться...');
|
||
$imove = false;
|
||
}
|
||
if ($eff->getNumRows() && $goto) {
|
||
err('У вас тяжелая травма, вы не можете передвигатся...');
|
||
$imove = false;
|
||
}
|
||
if ($goto == 'plo' && !$user->getZayavka() && $imove && $user->getRoom() != 20) {
|
||
db::c()->query('UPDATE users, online SET users.room = 20, online.room = 20 WHERE online.user_id = users.id AND online.user_id = ?i', $user->getId());
|
||
header('Location: city.php');
|
||
exit("<i>Топ-топ-топ...</i>");
|
||
} else {
|
||
err('Подали заявку на бой и убегаете из клуба? Нехорошо...');
|
||
}
|
||
if ($goto == 'arena' && $user->getRoom() == 20 && $imove) {
|
||
db::c()->query('UPDATE users, online SET users.room = 1, online.room = 1 WHERE online.user_id = users.id AND online.user_id = ?i', $user->getId());
|
||
header('Location: main.php');
|
||
exit("<i>Топ-топ-топ...</i>");
|
||
}
|
||
}
|
||
|
||
if (isset($_GET['use'])) {
|
||
usemagic($_GET['use'], $_POST['target']);
|
||
}
|
||
|
||
if ($obraz) {
|
||
$user->setShadow($obraz);
|
||
$user->saveShadow();
|
||
}
|
||
|
||
if ($setShadow) {
|
||
Template::header('Образ персонажа');
|
||
?>
|
||
<div style="text-align: right;">
|
||
<input type=button value="Вернуться" onClick="location.href='main.php?edit=<?= mt_rand() ?>';" class="button">
|
||
</div>
|
||
<table style="padding:5px; margin:auto;">
|
||
<caption><b style="color: red;">Внимание! Образ персонажа выбирается только один раз.</b></caption>
|
||
<tr>
|
||
<td><a href="?edit=1&obraz=m1"><img alt="m01" src="i/shadow/m1.gif"></a>
|
||
<td><a href="?edit=1&obraz=m2"><img alt="m02" src="i/shadow/m2.gif"></a>
|
||
<td><a href="?edit=1&obraz=m3"><img alt="m03" src="i/shadow/m3.gif"></a>
|
||
<td><a href="?edit=1&obraz=m4"><img alt="m04" src="i/shadow/m4.gif"></a>
|
||
<td><a href="?edit=1&obraz=m5"><img alt="m05" src="i/shadow/m5.gif"></a>
|
||
<td><a href="?edit=1&obraz=m6"><img alt="m06" src="i/shadow/m6.gif"></a>
|
||
<td><a href="?edit=1&obraz=m7"><img alt="m07" src="i/shadow/m7.gif"></a>
|
||
<td><a href="?edit=1&obraz=m8"><img alt="m08" src="i/shadow/m8.gif"></a>
|
||
<td><a href="?edit=1&obraz=m9"><img alt="m09" src="i/shadow/m9.gif"></a>
|
||
<td><a href="?edit=1&obraz=m10"><img alt="m10" src="i/shadow/m10.gif"></a>
|
||
<tr>
|
||
<td><a href="?edit=1&obraz=f1"><img alt="f01" src="i/shadow/f1.gif"></a>
|
||
<td><a href="?edit=1&obraz=f2"><img alt="f02" src="i/shadow/f2.gif"></a>
|
||
<td><a href="?edit=1&obraz=f3"><img alt="f03" src="i/shadow/f3.gif"></a>
|
||
<td><a href="?edit=1&obraz=f4"><img alt="f04" src="i/shadow/f4.gif"></a>
|
||
<td><a href="?edit=1&obraz=f5"><img alt="f05" src="i/shadow/f5.gif"></a>
|
||
<td><a href="?edit=1&obraz=f6"><img alt="f06" src="i/shadow/f6.gif"></a>
|
||
<td><a href="?edit=1&obraz=f7"><img alt="f07" src="i/shadow/f7.gif"></a>
|
||
<td><a href="?edit=1&obraz=f8"><img alt="f08" src="i/shadow/f8.gif"></a>
|
||
<td><a href="?edit=1&obraz=f9"><img alt="f09" src="i/shadow/f9.gif"></a>
|
||
<td><a href="?edit=1&obraz=f10"><img alt="f10" src="i/shadow/f10.gif"></a>
|
||
</table>
|
||
<?php
|
||
exit();
|
||
}
|
||
Template::header('Игра');
|
||
?>
|
||
<script src="js/funcs.js"></script>
|
||
<script>
|
||
$(function () {
|
||
$(".tooltip").tipTip({maxWidth: "auto", edgeOffset: 0, fadeIn: 300, fadeOut: 500});
|
||
});
|
||
|
||
let Hint3Name = '';
|
||
|
||
function okno(title, script, name, errk) {
|
||
let errkom = '';
|
||
let com = '';
|
||
if (errk === 1) {
|
||
errkom = 'Нельзя использовать символы: /\:*?"<>|+%<br>';
|
||
}
|
||
document.getElementById("hint3").innerHTML = `
|
||
<table width=100% cellspacing=1 cellpadding=0 bgcolor=CCC3AA>
|
||
<tr>
|
||
<td align=center>
|
||
<b>${title}</b>
|
||
</td>
|
||
<td width=20 align=right valign=top style='cursor: pointer' onclick='closehint3();'>
|
||
<BIG><B>x
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan=2>
|
||
<form action="${script}" method=POST>
|
||
<table width=100% cellspacing=0 cellpadding=2 bgcolor=FFF6DD>
|
||
<tr>
|
||
<INPUT TYPE=hidden name=sd4 value='6'>
|
||
<td colspan=2>
|
||
<span class='error'>${errkom}</span> введите название предмета
|
||
</TD>
|
||
</TR>
|
||
<TR>
|
||
<TD width=50% align=right>
|
||
<INPUT TYPE=text NAME="${name}" value="${com}">
|
||
</TD>
|
||
<TD width=50%>
|
||
<INPUT TYPE='submit' value=' »» '>
|
||
</TD>
|
||
</TR>
|
||
</TABLE>
|
||
</FORM>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
`;
|
||
document.getElementById("hint3").style.visibility = "visible";
|
||
document.getElementById("hint3").style.left = '100';
|
||
document.getElementById("hint3").style.top = '100';
|
||
document.getElementById(name).focus();
|
||
Hint3Name = name;
|
||
}
|
||
</script>
|
||
<div id=hint3 class=ahint></div>
|
||
<div id="chpassbank" style="display:none; position:absolute; top:50px; left:250px;"></div>
|
||
<table style="width: 100%">
|
||
<TR>
|
||
<td style="vertical-align: top; width: 350px">
|
||
<?php $userInfo->showUserDoll(0, 1); ?> <!-- Первый столбец -->
|
||
<div style="text-align: center;">
|
||
<a href='main.php?edit=1&undress=all' class="button">Снять все</a><BR>
|
||
<div class="effectList" style="padding-top: 15px; max-height: 150px; width: 220px;">
|
||
<?= show_eff_inf($user->getId()) ?>
|
||
</div>
|
||
</div>
|
||
<br>
|
||
</td>
|
||
<td style="vertical-align: top; width: 250px"> <!-- Второй столбец -->
|
||
<div>
|
||
<br>Уровень: <strong><?= $user->getLevel() ?></strong>
|
||
<br>Опыт: <strong><?= $user->getExperience() ?></strong>
|
||
<br>Побед: <strong>??</strong>
|
||
<br>Поражений: <strong>??</strong>
|
||
<br>Ничьих: <strong>??</strong>
|
||
<br>Деньги: <strong><?= $user->getMoney() ?></strong> кр.
|
||
<HR>
|
||
</div>
|
||
<!--Параметры-->
|
||
<div>
|
||
<div class="container">
|
||
Сила: <?= ($userStats->getFreeStatPoints() ? $userStats->getStat('strength', 1) . '(' . strval($userStats->getFullStats()->strength) . ')' : $userStats->getFullStats()->strength) ?>
|
||
<br>
|
||
Ловкость: <?= ($userStats->getFreeStatPoints() ? $userStats->getStat('dexterity', 1) . '(' . strval($userStats->getFullStats()->dexterity) . ')' : $userStats->getFullStats()->dexterity) ?>
|
||
<br>
|
||
Интуиция: <?= ($userStats->getFreeStatPoints() ? $userStats->getStat('intuition', 1) . '(' . strval($userStats->getFullStats()->intuition) . ')' : $userStats->getFullStats()->intuition) ?>
|
||
<br>
|
||
Выносливость: <?= ($userStats->getFreeStatPoints() ? $userStats->getStat('endurance', 1) . '(' . strval($userStats->getFullStats()->endurance) . ')' : $userStats->getFullStats()->endurance) ?>
|
||
<br>
|
||
Интеллект: <?= ($userStats->getFreeStatPoints() ? $userStats->getStat('intelligence', 1) . '(' . strval($userStats->getFullStats()->intelligence) . ')' : $userStats->getFullStats()->intelligence) ?>
|
||
<br>
|
||
Мудрость: <?= ($userStats->getFreeStatPoints() ? $userStats->getStat('wisdom', 1) . '(' . strval($userStats->getFullStats()->wisdom) . ')' : $userStats->getFullStats()->wisdom) ?>
|
||
<br>
|
||
<?php if ($userStats->getFreeStatPoints()): ?>
|
||
<small style="color: darkgreen;">Возможных
|
||
увеличений: <?= $userStats->getFreeStatPoints() ?></small><br>
|
||
<?php endif; ?>
|
||
<br>
|
||
Здоровье: <?= $userStats->getHealth() ?><br>
|
||
Пыль: <?= $userStats->getMana() ?><br>
|
||
Уворот: <?= $getItemsBonuses->getEvasionBonus() ?><br>
|
||
Точность: <?= $getItemsBonuses->getAccuracyBonus() ?><br>
|
||
Шанс крита: <?= $getItemsBonuses->getCriticalsBonus() ?><br>
|
||
Урон: <?= $userStats->getMinDamage() + $getItemsBonuses->getMinPhysDamage() ?>
|
||
- <?= $userStats->getMaxDamage() + $getItemsBonuses->getMaxPhysDamage() ?> <br>
|
||
<br>
|
||
Защита от огня: ?? <br>
|
||
Защита от воды: ?? <br>
|
||
Защита от вохдуха: ?? <br>
|
||
Защита от земли: ?? <br>
|
||
Защита от яда: ?? <br>
|
||
Броня головы: <?= $userStats->getHeadArmor() ?> <br>
|
||
Броня корпуса: <?= $userStats->getChestArmor() ?> <br>
|
||
Броня ног: <?= $userStats->getLegArmor() ?> <br>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
<td style="vertical-align: top;">
|
||
<div class="button-container"> <!--Меню-кнопки-->
|
||
<FORM METHOD=POST ACTION="?edit=1" name=f1>
|
||
<?php if ($user->getShadow() == '0.gif' || $user->getAdmin() == 1): ?>
|
||
<INPUT class="button primary icon user" TYPE="submit" name="setshadow" value="Образы"
|
||
title="Образы">
|
||
<?php endif; ?>
|
||
<div class="button-group">
|
||
<?php if ($user->getRoom() == 20): ?>
|
||
<input class="button icon move" type="submit" name="move_inside" value="Войти внутрь">
|
||
<?php elseif ($user->getRoom() == 1): ?>
|
||
<input class="button primary" type="submit" name="battlefield" value="Поединки">
|
||
<input class="button icon move" type="submit" name="move_outside" value="Выйти на улицу">
|
||
<?php endif; ?>
|
||
<input class="button" type="submit" name="module_quest" value="Активные задания">
|
||
<input class="button" type="submit" name="main_page" value="На главную">
|
||
</div>
|
||
</div>
|
||
<div> <!--рюкзак-->
|
||
<table style="border: 0; padding: 2px; border-spacing: 1px; width: 100%; background-color: #a5a5a5">
|
||
<caption>Рюкзак
|
||
(масса: <?= '?? /' . (int)$userStats->getStrength() * 4 ?>)
|
||
</caption>
|
||
<?php
|
||
foreach ($iteminfo as $ii) {
|
||
echo "<tr><td style='width: 100px; text-align: center; background-color: #d3d3d3'>";
|
||
$ii->printImage();
|
||
$ii->printControls();
|
||
echo "<td style='vertical-align: top; background-color: #d3d3d3'>";
|
||
$ii->printInfo();
|
||
}
|
||
if (!$data) {
|
||
echo "<tr><th colspan='3' style='text-align: center; background-color: #c7c7c7'>Пусто";
|
||
}
|
||
?>
|
||
</table>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</table>
|