Jeśli klawisze funkcyjne F1, F2, … działają dopiero po wciśnięci przycisku Fn – a bez wciśnięcia działają klawisze multimedialne można to przełączyć sekwencją:
Fn + Esc
Jeśli klawisze funkcyjne F1, F2, … działają dopiero po wciśnięci przycisku Fn – a bez wciśnięcia działają klawisze multimedialne można to przełączyć sekwencją:
Fn + Esc
Listy – tablice (indeksowane) ciągów znaków: help @list
# LPUSH users 'ala' - wstawia na początku tablicy users osobę ala # RPUSH users 'ola' - wstawia na końcu tablicy osobę ola # LRANGE users 0 -1 - pobiera wszystkie elementy od indeksu 0 do końca tablicy (-1) 1) "ala" 2) "ola"
return $this->redirect(['action' => 'rcp', '?' => $this->request->getQueryParams()]);
Javascript – parseFloat nie akceptuje przecinka ’,’
netto = parseFloat( ($(this).val()).replace(',', '.') ); $("#netto").val( netto.toFixed(2) )
Wartości finansowe typu decimal(10, 2):
class InvoicePosition extends Entity { protected function _setNetto($netto) { return str_replace(',', '.', $netto); // zamienia przecinki na kropki w Invoices.netto } }
Javascript – parseFloat nie akceptuje przecinka ’,’
netto = parseFloat( ($(this).val()).replace(',', '.') ); $("#netto").val( netto.toFixed(2) )
Czytaj dalej cakephp 4 – zamiana przecinków na kropki -automat
Pobraliśmy wyniki Model->find() w postaci ResultSet. Jak dodać kolejny ResultSet?
Filtrowanie wierszy tabeli – dopasowanie do 2 kolumn
Wyszukiwanie projektów po numerze (ciąg znaków) Ajax Czytaj dalej Ajax – cakephp4 – onKeyUp – wyszukiwanie projektów po nazwie
Konfiguracja i przykład użycia w CakePHP 4 – pakiet gusapi/gusapi v.6.1.1 Czytaj dalej GUS API
mmm
$quest = $this->Questionnaires->get($id, [ 'contain' => [ 'Answers', 'Creators' => function($q) { return $q->select(['id', 'firstname', 'lastname']); }] ]); // Dociągamy dodakowe modele dla uprawnionych if($this->hasAccess()) { $this->Questionnaires->loadInto($quest, [ 'Projects' => function($q) { return $q->select(['id', 'manager_id']); } ]); }
CompaniesTable,
$this == Companies, $this->Projects - powiązana tabela
use Cake\Event\EventInterface; use Cake\Database\Expression\QueryExpression; class CompaniesTable extends Table { public function beforeSave(EventInterface $event, $entity, $options) { // zmienione pole manager_id if($entity->isDirty('manager_id')) { $entity->prev_manager_id = $entity->getOriginal('manager_id') ; // pole przed zmianę // podstawienie innej kolumny, wyrażenia $set_prev_manager_id = new QueryExpression('prev_manager_id = manager_id'); $this->Projects->updateAll( [ $set_prev_manager_id, 'manager_id' => $entity->manager_id ], [ 'company_id' => $entity->id ] ); } }
Aktualizuje rekordy powiązane z inną tabelą
UPDATE projects p INNER JOIN companies c ON c.id=p.company_id SET p.manager_id = c.manager_id WHERE c.manager_id <> p.manager_id AND (p.prev_manager_id <> p.manager_id OR p.prev_manager_id IS NULL); AND c.manager_id = 1023;
Znacznik czasu:
var start_date = $('#start-date').val(); // 2023-02-19 var end_date = $('#end-date').val(); // 2023-02-20 const start_tz = Date.parse(start_date); // const end_tz = Date.parse(end_date); // if(end_tz < start_tz) { alert('Błędna data zakończenia. Popraw !!!'); $('#end-date').val(''); }
Sortowanie po 3 kategoriach. Ostatnia kategoria jest typu znakowego ale przechowuje numery np. 5, 5a, 5b, 6, 6a. Chcemy sortować tak jak liczby
$query->order(['Procedures.proc_type_id', 'Procedures.proc_category_id']); -- numer jest polem typu varchar, wartości: 5, 5a, 5b, 6, 6a ... $query->orderAsc( function($exp, $q) { return $q->func()->cast('numer','UNSIGNED'); });
Google wrzuca do spamu maile bez rekordu SPF
Czytaj dalej SPF, DCIM – wpisy ochrony antyspamowej
Integracja QR code z cakephp 4
Źródło: https://sourceforge.net/projects/phpqrcode/
Czytaj dalej QR code – cakephp 4
Instalacja i konfiguracja
Dodawanie szablonu HTML5 pobranego z zewnątrz
CDN:
<script src="https://d3js.org/d3.v7.min.js"></script>
www download tgz: https://d3js.org/
dokumentacja: https://github.com/d3/d3/wiki
Jakie pliki wrzucić co .gitignore?
Oficjalna wersja pliku na github – zobacz
Etapy budowy aplikacji CakePHP 4
Przygotować dokumentację projektu: aplikacja, visio,
-- przygotować informacje dir: /var/www/mysite.pl database: mysitedb user: 'user1'@'localhost' passwd: "gFtd67%6djEsws0**6!x8s"
Typowe wartości w strefie polskiej:
Instalacja odbywa się w dwóch krokach: najpierw należy zainstalować Community serwer a następnie mongo shell do odpytywania bazy danych.
Instalacja
Plugin jquery-ui wybierający miesiące/lata
Pakiety: mongodb-org – utrzymywany przez MongoDB.org, mongodb – utrzymywany przez Debiana
Ostatnie wersje dla debiana dostępne poprzez sanp