https://nodeschool.io/pl/#workshoppers
Instalacja
# npm install -g javascripting
# npm install -g learnyounode
# npm install -g how-to-npm
https://nodeschool.io/pl/#workshoppers
Instalacja
# npm install -g javascripting
# npm install -g learnyounode
# npm install -g how-to-npm
Powiększanie obrazków – przechodzenie między kolejnymi obrazkami – zintegrowany z bootstrapem
# apt-get install curl software-properties-common # curl -sL https://deb.nodesource.com/setup_12.x | bash - # apt-get install nodejs
# nodejs -v v12.6.0 # npm -V 6.9.0
# cd my_project # npm init # npm install pakiet@versja
Instalacja pakietów w katalogu projektu
# cd /var/www/html/project # npm init # npm install bootstrap # npm install jquery@>=3.0.0 # npm install popper.js@^1.14.7 # npm install --save-dev @fortawesome/fontawesome-free
# ln -s plik_lub_katalog_zrodlowy nowy_link
# SELECT DATE(created) AS data, SUM(price) AS przychod FROM transactions GROUP BY data WITH ROLLUP;
+------------+----------+
| data | przychod |
+------------+----------+
| 2019-06-10 | 406.00 |
| 2019-06-11 | 612.00 |
...................
| 2019-06-19 | 987.00 |
| 2019-06-21 | -3.00 |
| NULL | 7617.00 |
+------------+----------+
Definiowanie zmiennych – kilka wersji
W procedurach
DECLARE user CHAR(77) CHARACTER SET utf8;
SET user = (SELECT CURRENT_USER());
SELECT CONCAT('Witaj, ', user, '!') AS greeting;
# certbot certonly --webroot -w /var/www/html/MYAPP/webroot -d MYDOMAIN.pl # certbot renew # certbot delete -d domena.pl
Porównywanie dat
SELECT * FROM president WHERE birth >= '1970-01-01' AND birth < '1980-01-01';
Losowy rekord
# SELECT * FROM president ORDER BY RAND() LIMIT 1;
Zmiana domyślnej kolejności sortowania kolumny NULL
# SELECT * FROM president ORDER BY IF(death IS NULL, 0, 1), death DESC, last_name;
Oblicza pierwiastek kwadratowy i podaje wynik z 3 cyframi po przecinku
# SELECT FORMAT( SQRT(25), 3);
webhhtrack – linuxowy frontend do – httrack i htsserver
https://curl.haxx.se/docs/manpage.html
Podstawowe użycie – pobiera stronę
# curl https://example.com
https://xdsoft.net/jqplugins/datetimepicker/ – pobrać nowe
Wgranie plików na serwer:
/webroot/css/jquery.datetimepicker.css /webroot/lib/jquery.datetimepicker.full.min.js
templates/layout/default.ctp
head <link rel="stylesheet" href="/css/jquery.datetimepicker.css"> footer <?= $this->Html->script('/lib/jquery.datetimepicker.full.min.js') ?>
dołączyć plik inicjalizujący np. common.js
jQuery.datetimepicker.setLocale('pl'); jQuery(".datetimepicker").datetimepicker({ format:'Y-m-d', timepicker:false, mouseWheel: false, dayOfWeekStart : 1, // poniedziałek scrollMonth : false, // nie przewija myszą miesięcy scrollInput : false, // nie przewija nic i18n:{ pl:{ months:[ 'Styczeń','Luty','Marzec','wiecień', 'Maj','Czerwiec','Lipiec','Sierpień', 'Wrzesień','Październik','Listopad','Grudzień', ], dayOfWeek:[ "Nie", "Pon", "Wto", "Śr", "Czw", "Pt", "Sob", ] } } });
Użycie w szablonie:
<?= $this->Form->text('purchase_date', [ 'class' => 'form-control w-25 datetimepicker', 'default' => (new \DateTime())->format('Y-m-d') ]) ?>
Szczegóły pluginu
# composer require 'davidyell/proffer:^1.0'
Wszytkie pola poza 'published’
# $query->selectAllExcept( $articlesTable, ['published']);
Stos wywioań: alias / funkcja – pozostałe pola
# $query ->select(['slug' => $query->func()->concat(['title' => 'identifier', '-', 'id' => 'identifier'])]) ->select($articlesTable); // Select all fields from articles
Plugin CSV
https://packagist.org/packages/friendsofcake/cakephp-csvview
# composer require friendsofcake/cakephp-csvview # bin/cake plugin load CsvView
Instalacja
# wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
Nazwa domeny
# systeminfo | findstr /B /C:"Domain" Domain: WORKGROUP
Dodawanie zmiennych do szablonu
$this->Form->setTemplates([ 'inputContainer' => '<div class="input {{type}}{{required}}"> {{content}} <span class="help">{{help}}</span></div>' ]);
Załadowanie szablonu config/bootstrap_templ.php
// In a View class $this->loadHelper('Form', [ 'templates' => 'bootstrap_temp.' ]);
Definicja szablonu w pliku config/app_form.php
// config/app_form.php return [ 'inputContainer' => '<div class="form-control">{{content}}</div>', ];
UsersController
Przy wysyłaniu maila z poziomu PHP niektóre serwery nie obsługują smtputf8.
# tailf /var/log/mail.log Mar 7 11:22:31 mail postfix/smtp[22107]: 6CF0BA105E: to=<biuro@topdieta.pl>, relay=topdieta.pl[85.128.156.6]:25, delay=0.27, delays=0.04/0.02/0.2/0, dsn=5.6.7, status=bounced (SMTPUTF8 is required, but was not offered by host topdieta.pl[85.128.156.6])
Aby wyłączyć wsparcie należy:
# apt install libicu-dev
# postconf "smtputf8_enable = no"
# posfix reload
Utworzenie requestu serwera (bez hasła dla klucza)
# openssl req -config openssl-server.cnf -newkey rsa:2048 -sha256 -nodes -out /etc/ssl/requests/h25.csr -keyout /etc/ssl/private/h25.pem -outform PEM
# nano /etc/ssl/openssl-server.cnf
Czytaj dalej openssl – plik konfiguracyjny serwera openssl-server.cnf
Nowy certyfikat serwera: bez CA – na 3 lata – bez zaszyfrowanego klucza
# openssl req -newkey -x509 -nodes rsa:4096 -days 1089 -keyout /etc/ssl/private/serverkey.pem -out /etc/ssl/newcerts/servercert.pem
Weryfikacja
# openssl x509 -purpose -in /etc/ssl/newcerts/servercert.pem
Czytaj dalej openssl – certyfikat serwera self-signed – bez CA
Utworzenie CA i certyfikat serwera