Composer

cd ~

mkdir ~/.local/bin -p

wget https://getcomposer.org/installer -O ~/.local/composer-setup.php

php ~/.local/composer-setup.php --install-dir=.local/bin --filename=composer

rm ~/.local/composer-setup.php

ввести exit и открыть его заново composer

=====

composer create-project drupal/recommended-project my

composer-php8.1 create-project drupal/recommended-project my

php8.1 ~/.local/bin/composer create-project drupal/recommended-project my

php8.1 ~/.local/bin/composer require 'drupal/inline_entity_form:^1.0@RC'

Двойной бегунок

Better Exposed Filters - это модуль друпала про раскрытые фильтры с помощью ползунков


Это отсюда: https://jqueryui.com/slider/#range

Компьютер:

js Разное

<button class="button" type="submit" style="margin-left: 10px;"
onclick="return confirm ('Точно хотите удалить этот Заказ?'); ">Удалить заказ</button>

================

@keyframes slide {
0% {
transform: translatex(var(--max, -170%))
}

100% {
transform: translatex(100%)
}
}

let newMax = '-100%';
document.querySelector(".news").style.setProperty('--max', newMax);

Компьютер:

Отправка формы при выборе ниспадающего списка

onchange="this.form.submit()"

<form method="post" action="#3" style="display: inline-block">
<select class="from-month" name="D23" onchange="this.form.submit()">
<option value="2022-09">сентябрь 2022</option>
<option value="2022-10">октябрь 2022</option>
</select>
</form>

Компьютер:

Яндекс карта

Маштабирование по точкам

myMap.setBounds(myMap.geoObjects.getBounds(), {checkZoomRange:true}).then(function(){ if(myMap.getZoom() > 10) myMap.setZoom(10);});

Как прочитать ошибку 500 не имея доступа к Логам?

Re: Как прочитать ошибку 500 не имея доступа к Логам?

добавьте после success еще error через запятую:

error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}

Компьютер:

MODX

$user = $modx->getObject('modUser',array('username' => '823456789'));
$v = $user->id;

//$us = $modx->getObject('modUser', 176);

/*/ создаем пользователя
$user = $modx->newObject('modUser');
// задаем имя пользователя и пароль
$user->set('username', '884');
$user->set('password', '1234567890');
// сохраняем
$user->save();

Компьютер:

Друпал

$pr = commerce_product_load($pr3[$v1[3]]);

//$cena = commerce_product_calculate_sell_price($pr);

//print_r($cena);

isset($pr->commerce_price['und'][0]['amount'])? $price = $pr->commerce_price['und'][0]['amount'] : $price = 0;
print " --- $price";

drush

composer require drush/drush - ставит за секунды

vendor/bin/drush generate theme - Генерирует тему оформления

Компьютер:

Как сразу вывести результат? до окончания работы скрипта. php

ob_flush(); flush();

<?php
if (ob_get_level() == 0) ob_start();

for ($i = 0; $i<3; $i++){

echo " Line to show.";
//echo str_pad('',4096)."\n";

ob_flush();flush();

sleep(2);
}

echo "Done.";

//ob_end_flush();
?>

Удаление папки вместе со всем содержимым

<?php

delDir('.');// удалил даже сам себя

function delDir($dir) {
$files = array_diff(scandir($dir), ['.','..']);
foreach ($files as $file) {
(is_dir($dir.'/'.$file)) ? delDir($dir.'/'.$file) : unlink($dir.'/'.$file);
}
return rmdir($dir);
}

Drupal 8. Друпал 8

Код из генератора:

/**
* @file
* miltorg behaviors.
*/

(function ($, Drupal) {

'use strict';

/**
* Behavior description.
*/
Drupal.behaviors.miltorg = {
attach: function (context, settings) {

console.log('It works!');

}
};

} (jQuery, Drupal));
---------------------------------

Drupal.behaviors.helloword = {
attach: function (context, settings) {

// мой код без jq

}}

А ещё можно так:

Друпал 8 - Запрос к Базе данных

$zapr = "SELECT tid, `name` FROM `taxonomy_term_field_data`";

$rr = \Drupal::database()->query($zapr)->fetchAllKeyed();

============================

$tel = \Drupal::database()->query($zapr)->fetchAllKeyed();

======

$query = \Drupal::database()->select('users_field_data', 'u');
$query->addField('u', 'name');
$query->condition('u.name', 'miltorg');
$r = $query->execute()->fetchObject();

print $r->name;

Создание модуля в Друпал 8

1. Все свои модули нужно класть в папку /modules/custom/
2. Придумайте название модуля. Это важно. Оно, скорее всего будет отражаться практически везде. Для примера - summ
3. В папке /modules/custom/summ создаём файл summ.info.yml
4. Содержание файла:

name: Summ
description: Custom module for learning Drupal 8
type: module
core: 8.x
package: DrupalSumm

5. Зайдите в Модули, найдите и включите наш модуль. Всё должно быть без ошибок.
6. В результате - у нас есть наш подключённый модуль.

7. В той же папке нужно создать файл: summ.routing.yml

8. Содержание файла:

summ.first_page:
  path: '/first-page1'
  defaults:
    _controller: '\Drupal\summ\Controller\FirstPageController::content'
    _title: 'Hello World!'
  requirements:

mySQL

ALTER USER 'miltorg'@'localhost'
IDENTIFIED WITH mysql_native_password
BY 'uuuuuuuuuuuu';

GRANT CREATE, ALTER, SELECT, INSERT, UPDATE, DELETE, DROP ON * . * TO 'miltorg'@'localhost';

GRANT * ON * . * TO 'miltorg'@'localhost';

INSERT, UPDATE, DELETE, DROP

------------

CREATE TABLE new3 SELECT * FROM new1 where sovpalo=10;

select v.* from ( SELECT new8.* , count(1) over(partition by d1) as cnt FROM new8 ) as v where cnt > 4;

SELECT id, MAX(d1), COUNT(*) FROM new8 GROUP BY d1 HAVING COUNT(*) > 2;

SELECT MAX(d1),MAX(st), MIN(st), COUNT(*) FROM new8 GROUP BY d1 HAVING COUNT(*) > 2;

----------------
CREATE TABLE iz209bez12
(
,
Model VARCHAR(20)
);

ALTER TABLE iz209bez12 DROP COLUMN Id; - удаление

Компьютер:

Время работы скрипта.

$t = time();
...
...
...
$t = (time()-$t)/60;
print "Прошло ";
printf('%0.2f', $t);
print " min";

Если нужны милисекунды:

use Time::HiRes;

$t = Time::HiRes::time;
...
...
...
$t2 = Time::HiRes::time;
$t3 = $t2-$t;
print "Прошло ";
printf('%0.8f', $t3);
print " сек ";

Компьютер:

CSS

@keyframes slide {
0% {
transform: translatex(var(--max, -170%))
}

100% {
transform: translatex(100%)
}
}

let newMax = '-100%';
document.querySelector(".news").style.setProperty('--max', newMax);

===========

dd

Диск /dev/sda: 931,53 GiB, 1000204886016 байт, 1953525168 секторов
Disk model: TOSHIBA MQ04ABF1
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт

Диск /dev/sdb: 14,52 GiB, 15581839360 байт, 30433280 секторов
Disk model: OnlyDisk
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x08d87a4c

sudo dd if=/dev/sda of=mbr2.img bs=1G skip=10 count=10 status=progress
10737418240 байт (11 GB, 10 GiB) скопирован, 435 s, 24,7 MB/s
10+0 записей получено
10+0 записей отправлено

Python

sudo ln -s /usr/bin/python3.12 /usr/bin/python
- Это чтоб не писать python3.12

==================

python3 -m http.server --cgi
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
127.0.0.1 - - [10/Dec/2020 23:30:22] "GET / HTTP/1.1" 200 -

#!/usr/bin/env python3

print("Content-type: text/html\n\n")

print("""

Обработка данных форм

""")

print("Hello world!")

print("""
""")

Страницы

Subscribe to Чайник RSS