Skip to content

Instantly share code, notes, and snippets.

View koras's full-sized avatar
🏠
Working from home

Константин koras

🏠
Working from home
View GitHub Profile
@koras
koras / s
Created October 4, 2023 07:31
public static function getItemSurchargeCash($itemID, $partnerID = 0, $price = null) {
// Создайте новый объект Memcached
$memcached = new Memcached();
// Добавьте сервер Memcached (обычно это localhost на порту 11211)
$memcached->addServer('localhost', 11211);
// Создаем ключ кэша на основе параметров запроса
$cacheKey = "getItemSurcharge:itemID={$itemID}:partnerID={$partnerID}:price={$price}";
# DISTINCT - убираем дубли
SELECT DISTINCT department_id
# DISTINCT - где ищем
FROM evaluations
# gender = TRUE - только мужчины, подразумеваем что false это женский пол
WHERE gender = TRUE
# групируем по департаменту
GROUP BY department_id
# В результате груперовки вычисляем только тех кто поставил > 5
HAVING AVG(`value`) > 5;
@koras
koras / newWindows.js
Last active July 10, 2022 17:22
Скрипт открытия картинки при клике на картинку в статье
<script type="text/javascript" >
// получаем все картинки в статье
let elems = document.querySelectorAll('.com-content-article img');
// перебираем все картинки в статье
for (let elem of elems) {
// удаляем атрибут onmouseout
elem.removeAttribute("onmouseout");
// удаляем атрибут onmouseover
@koras
koras / delete_fill.php
Last active April 17, 2022 13:30
Удаление куска кода из таблицы в базе
<?php
// mysql -u root -p autoruk < j25_content.sql
$servername = "localhost";
$database = "";
$username = "";
$password = "";
// Создаем соединение
$link = mysqli_connect($servername, $username, $password, $database);
// Проверяем соединение
if (!$link) {
@koras
koras / telegram.php
Created February 19, 2022 15:10
telegram.php
<?php
// описание метода api telegram
// https://core.telegram.org/bots/api#sendmessage
$tg_user = '1234567890'; // id пользователя, которому отправиться сообщения
$bot_token = '1234567890:XXXXXX'; // токен бота
$text = "Первая строка сообщения <a href='https://vk-book.ru/'>со ссылкой</a> \n Вторая строка с <b>жирным</b> текстом";
// параметры, которые отправятся в api телеграмм
@koras
koras / deleteAdvertAndHeader.js
Last active February 6, 2022 16:31
Delete adverts and a header
// call function from second
let timeout = 300;
/**
* Delete adverts
*/
function removeAdvert() {
// find a classes advert in content
let codeBlocks = document.getElementsByClassName('code-block');
for (let key in codeBlocks) {
Общие требования по ООП
- Клсс должен быть самодостаточный
- В классе не должно быть обращения к переменным объявленным глобально (переменную можно передать в качестве
параметров в класс)
- Не должно быть вызовов в конструкторе методов класса (Конструктор только для инициализации)
- Обращение к DOM только по ссылке
- Методы класса не более 10 строк, иначе такой метод должен вызывать волнение
- Не должно быть сложных условий которые тяжело анализировать (значит в условии что-то не так)
- Не должно быть больших вложений, IF в IF. Как вариант 1 IF можно вынести в другой метод класса и вызывать
/* Надо исправить: Обращаться в классе на прямую к DOM является очень плохой практикой
* Лучше передавать в класс ссылку на элемент и дальше уже работать в классе с этим элементом
* как пример: допустим есть такой класс
class MyClass {
constructor(element){
this.element = element;
}
method(name){
this.element.querySelector('.myclass').textContent = name
class CardList {
constructor(element) {
this.list = [];
this.element = element;
}
/**
* генерируем карточки
* @param {*} initialCard
*/
render(initialCard) {
/**
* Студент делает длинную проверку и незнает как сократить
* if (popupName.value.length > 1 && popupName.value.length < 31 && ((popupLink.value.slice(0, 7) == "http://" && popupLink.value.length > 7) ||
* (popupLink.value.slice(0, 8) == "https://" && popupLink.value.length > 8))) {
* Ну во первых мы в качестве параметров передаём объекты
* и разбиваем на две функции
*/
function _checkLength(item, min, max) {