#1
Добрый день, подскажите, как переделать код под ТР? Хочу понять что к чему.
Spoiler content hidden.
<?php
// название скрипта (для будущей системы отслеживания)
define('BB_SCRIPT', 'test');
// подключение ключевых файлов
define('BB_ROOT', './');
require(BB_ROOT . 'common.php');
// начало сессии пользователя
$user->session_start();
// переменные ваши c минимальной фильтрацией
$button = request_var('button', '');
$block = request_var('block', '');
if (isset($button))
{
// запрос в базу
DB()->query("UPDATE bb_configuration SET price = '$button' WHERE item = 'button'");
DB()->query("UPDATE bb_configuration SET price = '$b' WHERE item = 'block'");
// окошко с информацией
bb_die("<font color=\"green\"><b>Настройки сохранены</b></font>");
}
// получаем данные для вывода на страницу
$block_data = DB()->fetch_row("SELECT price FROM bb_configuration WHERE item='block'");
$button_data = DB()->fetch_row("SELECT price FROM bb_configuration WHERE item='button'");
// присваиваем их переменным шаблона
$template->assign_vars(array(
'BLOCK' => $block_data['price'],
'BUTTON' => $button_data['price'],
));
// выводим шаблон
print_page('test.tpl');<form method="post" action="test.php" id="MainForm">
<table class="adn">
<tr class="lineb">
<td align="left">Значение</td>
<td align="left">
<table class="adn">
<tr>
<td align="left" style="border: none; padding: 0">Описание</td>
<td align="right" style="border: none; padding: 0"><a href="#" onclick="document.getElementById('MainForm').submit(); return false" class="liv">Сохранить</a></td>
</tr>
</table>
</td>
</tr>
<tr class="liney">
<td class="settab listsr"><input type=text value='{BUTTON}' name='button'></td>
<td class="listsl"><b>Кнопка</b></td>
</tr>
<tr class="liney ell">
<td class="settab listsr"><input type=text value='{BLOCK}' name='block'></td>
<td class="listsl"><b>Блок</b></td>
</tr>
</table>
</form>Ну напишу в качестве исключения, а то мало ли кому еще пригодится. Но говорю сразу - пишу на коленке в блокноте, может не работать. Написал с комментариями, их удалить можно.Значит я был на верном пути. Только ругается на подключение common.php. Да и не видел я, кстати, в админских файлах такое подключение.
Создаем файл например test.php в корне. Сразу же потребуется одноименный (для простоты) шаблон - test.tpl, в папке styles/templates/default/.
Структура самого файла:
<?php // название скрипта (для будущей системы отслеживания) define('BB_SCRIPT', 'test'); // подключение ключевых файлов define('BB_ROOT', './'); require(BB_ROOT . 'common.php'); // начало сессии пользователя $user->session_start(); // переменные ваши c минимальной фильтрацией $button = request_var('button', ''); $block = request_var('block', ''); if (isset($button)) { // запрос в базу DB()->query("UPDATE bb_configuration SET price = '$button' WHERE item = 'button'"); DB()->query("UPDATE bb_configuration SET price = '$b' WHERE item = 'block'"); // окошко с информацией bb_die("<font color=\"green\"><b>Настройки сохранены</b></font>"); } // получаем данные для вывода на страницу $block_data = DB()->fetch_row("SELECT price FROM bb_configuration WHERE item='block'"); $button_data = DB()->fetch_row("SELECT price FROM bb_configuration WHERE item='button'"); // присваиваем их переменным шаблона $template->assign_vars(array( 'BLOCK' => $block_data['price'], 'BUTTON' => $button_data['price'], )); // выводим шаблон print_page('test.tpl');
Код шаблона:
<form method="post" action="test.php" id="MainForm"> <table class="adn"> <tr class="lineb"> <td align="left">Значение</td> <td align="left"> <table class="adn"> <tr> <td align="left" style="border: none; padding: 0">Описание</td> <td align="right" style="border: none; padding: 0"><a href="#" onclick="document.getElementById('MainForm').submit(); return false" class="liv">Сохранить</a></td> </tr> </table> </td> </tr> <tr class="liney"> <td class="settab listsr"><input type=text value='{BUTTON}' name='button'></td> <td class="listsl"><b>Кнопка</b></td> </tr> <tr class="liney ell"> <td class="settab listsr"><input type=text value='{BLOCK}' name='block'></td> <td class="listsl"><b>Блок</b></td> </tr> </table> </form>
Базовый принцип такой. Можете еще в движке подсмотреть другие файлы как сделаны. Удачи в изучении.
<?php
if (!empty($setmodules))
{
$module['Бла_бла_ба'][''Бла_бла_ба'] = basename(__FILE__);
return;
}
require('./pagestart.php');<?php
if (!empty($setmodules))
{
$module['БРРРР']['БРРРР'] = basename(__FILE__);
return;
}
require('./pagestart.php');
// переменные ваши c минимальной фильтрацией
$button = request_var('button', '');
$block = request_var('block', '');
if (isset($button))
{
// запрос в базу
DB()->query("UPDATE bb_prices SET price = '$button' WHERE item = 'button'");
DB()->query("UPDATE bb_prices SET price = '$block' WHERE item = 'block'");
// окошко с информацией
bb_die("<font color=\"green\"><b>Настройки сохранены</b></font>");
}
// получаем данные для вывода на страницу
$block_data = DB()->fetch_row("SELECT price FROM bb_prices WHERE item='block'");
$button_data = DB()->fetch_row("SELECT price FROM bb_prices WHERE item='button'");
// присваиваем их переменным шаблона
$template->assign_vars(array(
'BLOCK' => $block_data['price'],
'BUTTON' => $button_data['price'],
));
// выводим шаблон
print_page('test.tpl');в админке не надо добавлять common.phpЯ его в админке и не добавляю Что пишу в админке, идет парой сообщений выше. Все равно идет ошибка, которую я выше указал. Если брать корень сайта, и там добавлять, по примеру, который привел @Exile, ошибка та же самая. Я с этой проблемой уже неделю бьюсь, но что сделать, раз бестолковка в этом направлении не работает.
он подгружается в pagestart.php
@Begemot случаем пустой строки или пробела перед <?php нет? Файл в UTF-8 без BOM сохранен?Так, была пустая строка и с кодировкой проблемы. Но теперь другая проблема. Когда нажимаю на пункт в меню, мне выводит надпись "Настройки Сохранены", без всяких полей для изменения оных.