Каждый блок это класс.

Блоки разделены на 3 части:

  • шапка - тут по центру полужирным написано название класса, а абстрактные классы пишутся полужирным курсивом
  • в центре указаны поля, по левому краю с маленькой буквы
  • внизу методы, тоже по левому краю с маленькой буквы

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

  • + - public
  • - - private
  • # - protected
  • / - derived, потомок
  • ~ - пакет

Между объектами класса могут быть следующие связи:

Как сохранить cookie на d7:

\Bitrix\Main\Context::getCurrent()->getResponse()->addCookie(
    new \Bitrix\Main\Web\Cookie('cookieName', 'cookieValue')
);

Но на странице обязательно должен быть подключен

require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php'); 

или

require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_after.php");

т. к. куки d7 добавляются именно в эпилоге.

При этом старый код

$APPLICATION->set_cookie('cookieName', 'cookieValue');

сработает даже без подключения эпилога.

Это свойство определяет может ли мышь взаимодействовать с элементом.

По умолчанию стоит значение auto.

Значение none предотвращает события: hover, active, click и прочие. При чём не только в css но и в js.

Не работает в старых IE, доступно только начиная с IE11.

Зачем?

1. Чтобы элемент не реагировал на наведение мыши, если в css прописаны стили для :hover и прочих.

2. Чтобы отключить правую кнопку мыши.

3. Для ускорения скроллинга, т. к. без hover перерисовок станет меньше.

  • 95% успеха зависит от архитектуры
  • основное усилие нужно направить на обеспечение гибкости системы
  • не получится всё спрогнозировать заранее, поэтому ключ в постепенном росте, нужно постепенно принимать правильные архитектурные решения
  • решения должны быть простыми, гибкая система не бывает сложной
  • правильные приоритеты - всё, что влияет меньше чем на 5% пользователей можно отложить и заняться тем, что важнее

Для связи таблиц в дочерней таблице мы можем создать внешний ключ, описывающий связь с записями родительской таблицы.

При создании внешнего ключа мы можем указать поведение записей дочерней таблицы при изменении записей родительской таблицы.

Допустим у нас есть таблица с годами:

CREATE TABLE `year` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `year` INT(11) NOT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

таблица с месяцами:

CREATE TABLE `month` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `month` INT(11) NOT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;

и таблица с днями:

Страницы