Web Мастерская
Как правильно писать функцию в обработчике события?
Для примера пишем функцию:
Или так:
Теперь пробуем вызывать функцию, при клике на ссылку (
Первый вариант на jQuery:
Первый вариант на чистом JS:
Или, второй вариант на jQuery:
Второй вариант на чистом JS:
Какой из вариантов, по Вашему, будет работать, а какой нет? Работать будет первый вариант, как на jQuery, так и на чистом JS. Именно первый вариант является правильным....
display, так:
function display(param) {
/* Code Function */
};Или так:
var display = function(param) {
/* Code Function */
};Теперь пробуем вызывать функцию, при клике на ссылку (
class="beginning"):
Первый вариант на jQuery:
$(document).on('click', 'a.beginning', () => {
display('cover');
});Первый вариант на чистом JS:
var beginning = document.querySelector('a.beginning');
beginning.addEventListener('click', function() {
display('cover');
});Или, второй вариант на jQuery:
$(document).on('click', 'a.beginning', display('cover'));Второй вариант на чистом JS:
var beginning = document.querySelector('a.beginning');
beginning.addEventListener('click', display('cover'));Какой из вариантов, по Вашему, будет работать, а какой нет? Работать будет первый вариант, как на jQuery, так и на чистом JS. Именно первый вариант является правильным....
- Жалоба
- 1
Nginx: Как запретить прямое обращение к файлам
Для одной задумки потребовалось запретить прямое обращение к файлам, при этом, чтобы сценарий движка, мог иметь полный доступ, к файлам. Сделать это надо было на Nginx. Мне помогли с этим и сейчас расскажу, что необходимо сделать, чтобы запретить.
Папка для запрета:
Код для конфига Nginx:
Многие пишут
После добавления строк выше, необходимо перечитать конфигурацию. Для этого я использую команду:
Готово. Теперь папка
Возможно, пригодится: Тема: Команды для настройки сервера....
Папка для запрета:
/app/XX/data/. Вместо XX идентификатор приложения, то есть цифры, которые постоянно меняются.Код для конфига Nginx:
location ~* /app/\d+/data/ {
valid_referers server_names;
if ($invalid_referer) {
return 404;
}
}Многие пишут
return 403 (Запрещено), я решил, что будет лучше отправлять на 404 ошибку, нежели прямо давать понять, что сюда нельзя.После добавления строк выше, необходимо перечитать конфигурацию. Для этого я использую команду:
nginx -s reloadГотово. Теперь папка
data скрыта от прямого обращения.Возможно, пригодится: Тема: Команды для настройки сервера....
jQuery: Как заменить класс у элемента
Для замены класса будем использовать две функции:
Допустим элемент
Делаем так:
Предварительно стоит проверить наличие класса, что необходимо заменить:
...
removeClass: Удаляет класс или классы, что были указанны.addClass: Добавляет указанный класс элементу.
Допустим элемент
div#taskInfo имеет класс displayNone, который нам необходимо заменить на displayInlineBlock:
<div id="taskInfo" class="displayNone"></div>Делаем так:
$('#taskInfo').removeClass('displayNone').addClass('displayInlineBlock');Предварительно стоит проверить наличие класса, что необходимо заменить:
if ($('#taskInfo').hasClass('displayNone')) {
$('#taskInfo').removeClass('displayNone').addClass('displayInlineBlock');
};Как записать массив в файл на PHP
Для записи в файл, можно использовать функцию
Если указанного файла не существует, функция
Функция отлично пишет строки, но вот писать массивы не умеет. Чтобы записать массив в файл, при помощи
Теперь массив будет записан в файл, сохранив свою...
file_put_contents, которая и была создана для записи в файл. Пример:
// $file: Путь и имя файла, в который будет осуществляться запись
// $content: Текст / Код, который необходимо записать
file_put_contents($file, $content);Если указанного файла не существует, функция
file_put_contents его создаст. И если файл создан, функция его перезапишет.Функция отлично пишет строки, но вот писать массивы не умеет. Чтобы записать массив в файл, при помощи
file_put_contents, необходимо предварительно перевести "структуру" массива в строку. Сделать это можно функцией var_export, добавив второй необязательный параметр: true (true - возвращает представление переменной вместо его вывода):
// $file: Путь и имя файла, в который будет осуществляться запись
// $content: Массив, который необходимо записать в файл
$content = var_export($content, true);
file_put_contents($file, $content);Теперь массив будет записан в файл, сохранив свою...
Вложенная буферизация ob_start()
Мой движок использует буферизацию. При написании одного модуля (Блог: Обработать файл перед его получением на PHP) мне потребовалось добавить в уже существующею буферизацию, ещё одну. В интернете искал, как правильно сделать вложенную буферизацию и решение было найдено. Моя буферизация в буферизации выглядит так:
...
// Получение шаблона приложения
ob_start();
include (phpfox::getParam('core.dir_app') . $id . PHPFOX_DS . 'page' . PHPFOX_DS . $page . '.php');
$html = ob_get_clean();
// End: Получение шаблона приложения