ExBB Community » » HTML » Подключение PHP файла

Страниц (9): « 1 2 3 4 5 6 7 8 [9]
 

121. WebMaster - 12 марта 2014 — 07:57 - перейти к сообщению
На счёт проверки доступа к определённым функциям, тоже есть наработки:
CODE:

user::checkForumAccess($forum_id, $access_name, $group_id=-1); // Проверяет доступ к функции отдельного форума, например может ли пользователь создавать темы в определённом форуме
user::checkGroupAccess($access_name, $group_id=-1); // Проверяет общие права доступа, например может ли пользователь отправлять ЛС


Структура MySQL таблицы с настройками доступа такова:
CODE:

CREATE TABLE IF NOT EXISTS `exbb_access` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`group_id` int(25) NOT NULL,
`forum_id` int(25) NOT NULL,
`access_name` varchar(255) NOT NULL,
`access_value` int(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Если у поля forum_id стоит значение 0 - то настройка является общей для группы(например "Может ли пользователь отправлять ЛС"Подмигивание
122. 1Bot - 12 марта 2014 — 08:23 - перейти к сообщению
MVC архитектура должна наконец отделить логику от интерфейса и способа хранения данных. Здорово

Дополнительно рекомендую еще более структурировать код вокруг сущностей форума, т.е. использовать классы для описания пользователя, форума, группы, категории, сообщения и т.д. и описать в классах основные действия с вызовом событий до/после действий и при исключениях.
123. WebMaster - 12 марта 2014 — 08:27 - перейти к сообщению
Уже сейчас можно писать отдельные модули... Уже есть авторизация/регистрация пользователя.
Прикрепил скрин главной страницы(то что сейчас получается)
124. WebMaster - 12 марта 2014 — 13:12 - перейти к сообщению
А как избавляться от такого в представлениях? Хотелось бы чистый HTML код.
Можно выполнять циклы в модели и при каждой итерации подключать файл с шаблоном?
Код (Отобразить)
125. 1Bot - 12 марта 2014 — 14:09 - перейти к сообщению
Цитата:
Модель - содержит бизнес-логику приложения и включает методы выборки (это могут быть методы ORM), обработки (например, правила валидации) и предоставления конкретных данных, что зачастую делает ее очень толстой, что вполне нормально.
Модель не должна напрямую взаимодействовать с пользователем. Все переменные, относящиеся к запросу пользователя должны обрабатываться в контроллере.
Модель не должна генерировать HTML или другой код отображения, который может изменяться в зависимости от нужд пользователя. Такой код должен обрабатываться в видах.
Одна и та же модель, например: модель аутентификации пользователей может использоваться как в пользовательской, так и в административной части приложения. В таком случае можно вынести общий код в отдельный класс и наследоваться от него, определяя в наследниках специфичные для подприложений методы.

Вид - используется для задания внешнего отображения данных, полученных из контроллера и модели.
Виды cодержат HTML-разметку и небольшие вставки PHP-кода для обхода, форматирования и отображения данных.
Не должны напрямую обращаться к базе данных. Этим должны заниматься модели.
Не должны работать с данными, полученными из запроса пользователя. Эту задачу должен выполнять контроллер.
Может напрямую обращаться к свойствам и методам контроллера или моделей, для получения готовых к выводу данных.
Виды обычно разделяют на общий шаблон, содержащий разметку, общую для всех страниц (например, шапку и подвал) и части шаблона, которые используют для отображения данных выводимых из модели или отображения форм ввода данных.

Контроллер — связующее звено, соединяющее модели, виды и другие компоненты в рабочее приложение. Контроллер отвечает за обработку запросов пользователя. Контроллер не должен содержать SQL-запросов. Их лучше держать в моделях. Контроллер не должен содержать HTML и другой разметки. Её стоит выносить в виды.
В хорошо спроектированном MVC-приложении контроллеры обычно очень тонкие и содержат только несколько десятков строк кода. Логика контроллера довольно типична и большая ее часть выносится в базовые классы.
Модели, наоборот, очень толстые и содержат большую часть кода, связанную с обработкой данных, т.к. структура данных и бизнес-логика, содержащаяся в них, обычно довольно специфична для конкретного приложения.


Если в представлении необходим вывод циклических данных, то проще в цикле как раз и вызывать вывод представления для отдельных элементов.
126. WebMaster - 12 марта 2014 — 14:23 - перейти к сообщению
Цитата:
Если в представлении необходим вывод циклических данных, то проще в цикле как раз и вызывать вывод представления для отдельных элементов.


Т.е. должно быть так?
CODE:

class ModelIndex extends Model {
public function getData() {
// ...
foreach ($allCats as $cat) {
// ...
foreach ($keys as $key) {
template::view('index', 'forum_data');
}
//...
}

}
// Тут другие методы
}
127. WebMaster - 13 марта 2014 — 07:46 - перейти к сообщению
Цитата:
Дополнительно рекомендую еще более структурировать код вокруг сущностей форума, т.е. использовать классы для описания пользователя, форума, группы, категории, сообщения и т.д. и описать в классах основные действия с вызовом событий до/после действий и при исключениях.

Написал класс для описания пользователя... Использовать можно так:
CODE:

// Изменение пользователя
$id = 1; // ID пользователя
$user = new User($id);
$user->setPosts($user->getPosts()+1);
$user->setName('Пользователь!');
$user->save(); // Сохранить новые данных в БД

// Создание пользователя
$user = new User();
$user->setLogin('UserLogin');
$user->setPassword('password');
$user->setMail('mail@mai.ru');
$user->setPosts(0);
$user->setName('Вася');
$user->setGroupId(3);
$user->save();

// Удаление пользователя
$user = new User(1);
$user->delete();


Таблица для пользователей в БД выглядит так, полей минимум.
CODE:
CREATE TABLE IF NOT EXISTS `exbb_users` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`login` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`mail` varchar(50) NOT NULL,
`posts` int(10) NOT NULL,
`name` varchar(50) NOT NULL,
`group_id` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
128. 1Bot - 13 марта 2014 — 07:48 - перейти к сообщению
1Bot пишет:
Если в представлении необходим вывод циклических данных, то проще в цикле как раз и вызывать вывод представления для отдельных элементов.


Моя ошибка: не в представлении, а в отображении!
Т.е. правильно:
Если в отображении необходим вывод циклических данных, то проще в цикле как раз и вызывать вывод методов отображения для отдельных элементов.
129. YuraP0d - 7 июня 2014 — 19:53 - перейти к сообщению
Привет всем, нужна помощь, есть страница на которой выводится форма коментариев спомощью JS
CODE:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<link rel="stylesheet" href="/comment/ecomment.css" type="text/css"></script>

позже я подключил на эту страницу ещё один JS для увеличения картинок с классом
CODE:
class="magnify leftimg"
CODE:
leftimg
это стиль размещения
CODE:
<script type="text/javascript" src="/js/jquery.magnifier.js"></script>

картинки увеличиваются а форма с коментариями теперь не работает, либо отображается но не работает, либо её нет вообще(по разному пробовал), это из-за второго JS, можно ли его подключить так, что бы всё работало?

полностью всё рамещается так
CODE:
<head>
<meta charset="UTF-8">
<title>...</title>
<meta name="description" content="...">
<meta name="keywords" content="...">
<link href="/style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<link rel="stylesheet" href="/comment/ecomment.css" type="text/css">
<script type="text/javascript" src="/js/jquery.magnifier.js"></script>
</head>
130. YuraP0d - 7 июня 2014 — 20:46 - перейти к сообщению
А может, что бы не парится с этим увеличение картинок сделать через css? Но как не знаю, хорошо бы пример, с настройками бордюра и фона для картинок, а то некоторые в .png, и неохота их в .jpg переводить

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0398]     [ ]