Сайтостроение

 Все то, благодаря чему вы сейчас смотрите и то, что видите, скрывает в себе не столь явное и визуально пригодное для восприятия. Ведь за страницами любого сайта в интернете скрыто множеств кода, тегов, описаний... В общем всего того, что делает сайт наглядным не только вам, но и электронным машинам и роботам, которые с ним работают.
 Если вы по долгу своей профессии, а может по увлечению все-таки каким-о образом связаны с процессом создания сайтов, то мы думаем вам будет полезна данная категория. Ведь в ней мы как раз и расскажем о том, как можно сделать визуализацию, оптимизацию, всевозможные улучшения и изменения для сайтов и их страниц...

Как добавить картинку из первого поста к названию темы phpbb3

Требовалось добавить на форуме фото из первого поста к названию темы. Движок phpBB 3.0.9., шаблон prosilver.

Единственным полуготовым решением на тот момент оказался мод Topic images from attachments v0.2, готовых вообще не нашлось. А полуготовое потому, что требуется "доработать напильником".

Что дает модификация:

Возможность использования изображений тем настраивается для каждого форума
Группам/пользователям можно назначать права на установку изображений тем
В админке можно задать максимальный размер миниатюры для изображения тем (Общие -> Конфигурация -> Размещение сообщений -> Максимальная ширина/высота изображения темы) и отключать этот функционал совсем, установив 0
Стандартная структура работы с миниатюрами не нарушена, миниатюры тем не имеют отношения и обычным миниатюрам изображений
При использовании изображений небольших размеров (меньше максимального для миниатюр тем) само изображение выводится из оригинального файла, следовательно можно использовать небольшое анимированное gif-изображение

Как работает:

Пользователь пишет первый пост в теме, загружает изображение (вложения для работы мода должны быть разрешены), жмет "назначить изображение теме", по заданным в админке размерам генерируется превьюшка, которая пишется в папку с вложениями (iles/) с префиксом topic_image_ .Перед названиями в списке тем появляется загруженное изображение.

Как защитить форум от спама

Рано или поздно перед каждым администратором форума особо остро встает проблема СПАМА. Спам этот разносится по форуму пользователями как вручную, так и автоматически и если распространение первого можно легко остановить силами самих движков форумов, то со вторым немного сложнее. Современные программы для постинга (автоматической рассылки сообщений) по форумам позволяют регистрироваться даже с возможностью активации по электронной почте, спамеру нужно лишь вводить вручную выводимую ему на монитор капчу с разных форумов в том случае, если программе не удалось самой распознать ее. А если ваш форум попал в базу рассылок одной из популярных программ, количество спам регистраций за сутки может достигать пятисот. Приведу некоторые принципы борьбы со спамом и готовое решение (на мой взгляд самое шикарное) для форума SMF.

После установки форума phpBB оказалось, что заголовки конференций и тем у него мягко говоря не оптимизированы. До названия, например, темы идет сначала название сайта, далее текст "Просмотр темы", а уже только после - название темы. Аналогично на страницах с конференциями со словами "Просмотр форума". Так и просится все поменять местами в обратном порядке, а "Просмотр..." вообще убрать. Как? Разбираемся на версии phpBB 3.0.9:

Коды ошибок посылаются WEB-сервером агенту пользователя для определения его дальнейшего поведения. Ответы веб-сервера делятся на диапазоны:

100-199 Информационный. Сообщает агенту что, запрос агента принят и обрабатывается
200-299 Запрос агента обработан успешно, сервер отправил клиенту запрашиваемый документ
300-399 Запрос агента изменен и агенту нужно предпринять некоторые действия для удовлетворения измененного запроса.
400-499 Проблемы при попытке выполнить запрос.
500-599 Ошибки сервера
В диапазоне определены лишь несколько кодов, хотя для сервера при необходимости могут определяться собственные коды. При получении кода, который не может распознать, агент интерпретирует его в соответствии с диапазоном, к которому этот код принадлежит. Коды в диапазонах 100-199, 200-299 и 300-399 большинство Web-броузеров обрабатывают без извещения пользователя, а некоторые коды ошибок из диапазонов 400-499, 500-599 отображаются для пользователя.

Установка друпал 7

Установка Drupal 7 мало отличается от установки шестой версии. Ставим:

 Часто случалась такая оказия, что на сайте с движком Джумла все вроде бы было хорошо, но вот проходит какое-то время и бац – не приходят комментарии для модерации. Вполне возможно, что такое было после обновления версии Джумлы или отдельных дополнений, не в этом суть. И, конечно, начинался «разбор полетов» где и что.

Проблемы с отправкой почты частенько возникают при переносе сайта с localhost  (локального компьютера) или хостинга на хостинг. Причин этих проблем несколько и скрыты они могут быть как в настройках сервера, так и настройках самой joomla. Отсюда и вариантов решения тоже несколько и на вскидку нельзя сказать, какой подойдет именно вам. Я после установки сайта на хостинг сразу проверяю работоспособность отправки почты.

Бывает так, что что к своему серверу вы даже не притрагивались, а некоторые сайты на нем стали выдавать ошибку 502 Bad Gateway. В чем может быть дело?

Ошибка при обновлении joomla или установке плагинов, модулей

При обновлении >joomla 1.5, 1.6, 1.7, 2.5  или при установке каких-либо модулей или плагинов на нее же установщик может ругаться следующими фразами:

JFolder::files: Путь не указывает на правильную папку или папка была удалена
JFolder::folder: Путь не указывает на правильную папку или папка была удалена
JFolder::files: Путь не указывает на правильную папку или папка была удалена
Ошибка! Не найден XML-файл установки Joomla!

или, как вариант:

JFolder: :files: Путь ведёт не к каталогу. Путь: /***/tmp/install_4f31baa4cf881
JFolder: :folder: Путь ведёт не к каталогу. Путь: ***/tmp/install_4f31baa4cf881
JFolder: :files: Путь ведёт не к каталогу. Путь: ***/tmp/install_4f31baa4cf881
JInstaller: :Install: Не найден установочный XML-файл Joomla

Итог - ничего не устанавливается.

Ссылки, как уже говорилось в статье как сделать ссылку, бывают прямыми (к примеру http: //сайт.ру ) и через редирект (перенаправление), например: http: //сайт.ру/goto/http://yandex.ru/ или http: //сайт.ру/go.php?site=yandex.ru . Если без дополнительных действий прописать такие ссылки, работать должным образом они не будут, и в лучшем случае покажут ошибку 404 (страница не существует). Нужен скрипт, который именно внутри html ищет и заменяет ссылки на редирект. Для разных движков, да практически для всех, существуют плагины, автоматически заменяющие внешние ссылки на редиректные, но смысл их один и заключается примерно в следующем.

Подкатегории

 Раздел посвящен разметке страниц, то есть формированию кода, как правило тегов по определенному алгоритму. Здесь именно правильно сказать на мой взгляд, что HTML, это прежде всего, разметка, а не язык, так как алгоритмы и логика подразумевают так скажем прикрепление каких-то ярлыков к тегам, а не выполнение непосредственных активных задач. Это потом уже с этими ярлыками работают языки, а вот HTML ставит как раз границы с чем работать.

PHP Собственно создание такого раздела как JavaScript на этом сайте не оставило вариантов по поводу того, что раздел с HTML все же должен был когда-то появиться. Ибо даже за небольшими какими-то символами приходилось лазить по всему интернету, то там, то сям.
 В итоге, было решено завести свой какой-то небольшой "склад" или "архив" это уж как угодно, куда можно будет обратиться даже за элементарными синтаксическими писаниями кода, ведь если даже представляешь как и что, все равно в голове порой не держится или элементарно вылетает на время, как же это все пишется.
 В некоторых случаях здесь не только можно будет подсмотреть написания, но надеюсь со временем хранить какие-то формы, которые можно будет использовать для оформления страничек сайта. Хотя если речь идет о полноценном оформлении, то без CSS уже не обойтись...

P.S. Пока в этот же раздел будут попадать и странички про динамичный HTML, то есть про PHP, а там будет видно.

 

 Как это бы не звучало странно, но интересоваться Java Script я стал исключительно ради собственного любопытства. Причем это любопытство было подкреплено, прежде всего, не изучением непосредственно языков программирования, а изучением электроники. В ней после построения неких аналоговых схем, я добрался до микроконтроллеров. И эти самые микроконтроллеры пришлось программировать, ведь без прошивки это не более чем кусочки пластика и железа. В итоге, чуть-чуть освоившись с программированием микроконтроллеров и начав кое-что осознавать, я ненароком провел некую параллель между попавшимся мне на глаза кодом для микроконтроллеров и Java Script. И тут-то и выяснилось, что изучая один из языков программирования, по сути ты познаешь логику построения и других языков.
 При этом долгое время я так и не мог решиться завести на сайте отдельную категорию под Java Script, так как не чувствовал в себе некой достаточной фундаментальности, для однозначно полезных и "сильных" статей по этой теме. Однако материал постепенно накапливался как снежный ком и хранить его размазывая по другим смежным категориям оказалось делом неблагодарным, так как там он был не в тему... В итоге так и родилась вот эта категория, которая станет для меня моим небольшим справочником в изучении Java Script, если же это кому-то пригодится еще, то будет и вовсе здорово. Осталось лишь замолвить слово о снисхождении к моему опыту, так как он изначально идет от дилетанта...

Далее, пожалуй, текст будет всегда несколько неряшлев и постоянно в доработке, ведь в нем то и дело будут появляться новые элементы, ссылки на конкретные примеры, объяснений операторов JS, по крайней мере так, как я их понимаю. К тому же масло в огонь будут подливать и разработчики ПО, ведь и у них что-то постоянно будет меняться, что потребует корректировок, что-то я буду переосмысливать и переписывать.
 ...это более для собственного пользования, однако если вы новичок или любитель в Java Script, то даже такая кустарная информация вам может быть очень даже полезной.

Операторы функции и их применения будут сведены в таблицу с комментариями и пояснениями, к ней и обращаемся.

Наименование

Пример использования или синтаксис

Примечание

HTML  формы для ввода

<input   id="ida" >

<input   id="ida" >

Форма для ввода, рамка ida – свой уникальный id - a на страницу для элемента, для считывания переменной добавляем value 

<input type="radio" > 

<input type="radio" > 

 Примерно тоже самое, что и просто input, но обработка данных сложнее. (пример)

<input type="checkbox">

<input type="checkbox">

Примерно тоже самое, что и radio, только можно установить несколько значений.

onchange

<select onchange="...">

 Позволяет выбирать значение из списка (пример)

 

 

 

HTML  формы для вывода

<div>

<div id="demo1">Текст</div>

Используется для вывода данных, с возможностью подмены их через JS

<pre>

<pre id="demo1"></pre>

 Можно также как и в div выводить значение, но форма отображения блока будет уже со стилями свойственными pre

 Арифметические операторы

 

плюс 

-

 

минус 

*

 

умножить 

 **

 

степень 

/

 

делить

%

(* -при делении на 2 можно использовать для нахождения чет, нечет)

модуль

++

(инкремент) 

прибавить в виде приращения 

--  (декремент)

убавить в виде сокращения 

Элементы активности

<button onclick="myF()">Кнопка</button>

<button onclick="myF()">Кнопка</button>

Можем ссылаться как на выполнение функции myF(), так и на вывод информации сразу

onclick

см. выше пример для кнопки

При кликании будет активироваться, можно добавлять к картинкам, кнопкам, ссылкам (пример)

onmouseover 

см. выше пример для кнопки

активируется при наведении на элемент курсора мышки

onmouseout

см. выше пример для кнопки

активируется при уводе мышки с элемента
onkeydown см. выше пример для кнопки активируется при нажатии клавиш на клавиатуре
onload window.onload=function(…){…} активизируется при загрузке страницы
onkeyup
onkeyup="function(this.value)"
активизируется в момент отпускания нажатой клавиши

getElementById

document.getElementById("email") (берет значение из ID email)

document - Обращение к файлу html
getElementById() – получить элемент по идентификатору() (можно и при помощи других критериев)
email - id элемента

getElementsByClassName

getElementsByClassName("...")[0]; Берет элементы по классу (пример)

getElementsByTagName

getElementsByTagName("...")[0]

Берет элементы по названию блока div, p... (пример)

document.body.innerHTML.

document.body.innerHTML.replace(/8/g, '7'); (замена 8 на 7 подмена)

document.body.innerHTML.style (меняет стиль)

выводит значение, стиль в HTML

 document.location.href =

 document.location.href = (пример)

  перенаправляет со страницы что ввели или то, что взяли из формы (переменной)

setInterval

setInterval(function(){ ….},1000);

Вызывает функцию с заданной периодичностью многократно. (пример)

setTimeout

см. setInterval

Схожее с setInterval, но вызывает код один раз. (пример)

 

 

 

 

 

 

Сервисные (исполнительные) элементы

<script type="text/javascript">

</script>

 

 

Обрамляем JS

typeof x

document.getElementById("demo1").innerHTML = typeof x;

Х – переменная, для которой хотим узнать тип. Его выводим для нашего случая через запрос для блока ID demo1. Блок конечно тоже должен быть в наличии, а то куда же выводить то?!

let и var

 

var применяется для присвоения значения переменной скажем в функции, когда берем ее значение из формы ввода.

let x = 5;

let x = document.getElementById("id");
var a = document.getElementById("x").value;

Присваиваем значение для переменной. Можно использовать присвоение через document.getElementById("id"). id - в данном случае берется скажем из формы ввода где форма расположена в document.

if

if (условие) {делаем}

Условие для одного раза

while

Смотри if

Тоже, что и if, только будет повторяться, пока не уйдет далее. Может зациклить машину.

switch

switch(i) {
  case i=0:
    ...
    break;
  case i=1:
    ...
    break;
  case i=2:
    ...
  default:
    ...
}

Выполняем одно из условии исходя из критерия, скажем для переменной i. Как только условие будет выполнено, то цикл перебора закончится. (пример)

default: - если ни одно из условий не сработало.

 for

 for (let i=0; i<10; i++) {что делаем}

 Применяется, как правило, для работы с массивами, перебирая от i = 0 до i<10 с шагом i++. (пример)

 Ну уж и никаких шансов у меня и не оставалось, чтобы обойти стороной CSS с тех пор, как я любительски связался с JS и с HTML, ну или PHP. Собственно раз это должно было произойти, то почему бы и нет...!?
 Так вот, все полезные и интересные "фишки" я и буду утягивать к себе сюда, на этом и закончу пока вступление для моей категории CSS.
 Более подробные примеры использования CSS будут приведены в конкретных статьях этой категории.

 

 

Краткий справочник* - дополняется

animation: show 3s 1; /* Указываем название анимации, её время и количество повторов*/
animation-fill-mode: forwards; /* Чтобы элемент оставался в конечном состоянии анимации */
animation-delay: 1s; /* Задержка перед началом */
opacity:0; прозрачность /* от 0 до 1 */
width:300px;
background:#176387; /* фон */
color:#fff; /* цвет шрифта */
font-size:25px; /* размер шрифта */
border:3px solid #2BA2DB; /* рамка */
padding:20px; /* отступ снаружи */
margin:auto; /* отступ внутри */
margin-bottom:20px; /* отступ */
text-align:center; /* выравнивание */
transition: 1s; /*Скорость перехода состояния элемента*/

В это категории речь пойдет об особенностях использования CMS Joomla