1. Upoznavanje sa 4D okolišem
Ovaj dio treba obuhvatiti osnovnu pripremu za rad u razvoju blokova.
1.1 Priprema za izradu blokova
Za početak, trebate postaviti sljedeće tehnologije:
• Virtualna mašina / Linux: Trebat će vam Linux-based VM.
• WordPress: WordPress treba biti instaliran i pokrenut, jer će se blokovi integrirati unutar njega.
• MySQL: Instalirajte i konfigurirajte MySQL za potrebe baze podataka.
• NGINX: NGINX kao web server za posluživanje vaše aplikacije.
• PHP – PHP Memcached: Instalirajte PHP i potrebne PHP module, uključujući Memcached za keširanje.
• Code Editor: Postavite editor koda poput VS Code-a za lakše kodiranje.
• Github: Osigurajte da ste upoznati s korištenjem Git-a za verzioniranje vašeg koda i pohranjivanje na GitHubu.
1.2 Dokumentacija i 4D varijable
• Obavezne klase: Koje klase morate koristiti u vašem codebase-u? Ako možete podijeliti te klase, mogu ih detaljnije objasniti.
• W4D klase: Ako su u pitanju apstraktne ili osnovne klase koje čine temelj za prilagođene blokove, potrebno je objasniti kako se koriste.
• Smjernice i željena struktura blokova: Ako imate specifične smjernice o strukturi blokova, to će pomoći u daljnjem razvoju.
1.3 Upoznavanje s dizajnom blokova i dizajn setova
• Figma: Ako ste već koristili Figma za dizajn, mogu vam pomoći u povezivanju dizajna s kodom.
• Upute i opća pravila: Ako postoje pravila ili smjernice o dizajnu, molim vas podijelite ih kako bi se vodilo prema tim principima.
• Česta pitanja: Ako imate najčešće postavljana pitanja vezana uz razvoj blokova, slobodno ih podijelite, a ja ću ih obraditi.
1.4 Korisni linkovi i literatura
• Imenovanje blokova i dokumenata: Ako imate specifične konvencije za imenovanje blokova, datoteka, i sl., podijelite ih sa mnom.
• Imenovanje klasa i datoteka: Imenovanje klasa i datoteka važno je za čitljivost i održavanje koda. Ako imate smjernice za ovo, navedite ih.
• BEM Konvencija: Ako slijedite BEM (Block Element Modifier) konvenciju za CSS, objasnit ćemo kako ju implementirati.
________________________________________
2. Proces izrade bloka
Ovaj dio treba obuhvatiti proces od početne ideje do implementacije bloka.
2.1 Definiranje specifikacija bloka
Prvo, potrebno je definirati što blok treba raditi:
• Je li to statički ili dinamički blok?
• Koji su parametri potrebni za blok (npr. tekst, slike)?
• Hoće li blok komunicirati s bazom podataka? Ako da, kakve upite trebate?
Ako možete podijeliti primjere specifikacija blokova, mogu biti precizniji.
2.2 Razrada i plan izrade bloka
Ovdje ćete razraditi cijeli proces razvoja bloka:
• Prototipiranje i mockupovi: Postoji li faza prototipa?
• Radni tijek razvoja: Kako tim radi na blokovima? Razvija li se frontend prvo, pa backend?
________________________________________
3. Korak 1: Izrada front-end izgleda bloka
Ovdje ćemo opisati kako se razvija front-end za blok.
3.1 Izrada statičnog elementa HTML
Objasnite osnovnu strukturu HTML-a koju koristite za blok.
• Koje HTML oznake se koriste?
• Koristite li neki templating engine (npr. Twig)?
3.2 Stilizacija statičnog elementa SCSS
Objasnite kako stilizirate blok koristeći SCSS.
• Kako primjenjujete stilove na blok?
• Imate li ponovljivih komponenti ili klasa?
3.3 Optimizacija responzivnosti za manje uređaje
Kako osigurati da blok bude responzivan?
• Koristite li media queries?
• Koje korake poduzimate da testirate responzivnost?
________________________________________
Korak 2: Parametrizacija
Inicijalizacija
• Dodavanje novog bloka u listu blokova: Kako registrirati blok u WordPress sustavu?
• Dodavanje datoteke bloka u dokumentaciju plugina/teme: Kako povezati datoteke blokova u dokumentaciji plugin-a ili teme?
Parametrizacija jednostavnog bloka
• Izrada dokumenta za setiranje bloka: Kako postaviti parametre za blok?
• Izrada dokumenta za prikaz bloka: Kako će blok biti prikazan na stranici?
• Composer: Ako koristite Composer za upravljanje ovisnostima, objasnit ćemo kako to raditi.
• Testiranje: Kako testirati blokove u različitim uvjetima?
Parametrizacija složenog bloka
Za složene blokove trebate:
• Views: Kako strukturirati prikaze blokova?
• Forms: Ako blok uključuje forme, kako ih implementirati?
• ForEach pristup: Kako iterirati kroz podatke u bloku?
• Limitiranje broja renderanih elemenata: Kako kontrolirati broj elemenata koji se prikazuju?
________________________________________
Što mi treba od vas
Za detaljniji vodič, trebam sljedeće:
1. Primjeri koda: Ako imate specifičan kod za jednostavne ili složene blokove, podijelite ga.
2. Struktura WordPress-a: Kako registrirate blokove i koji su osnovni dijelovi vaše teme ili plugina?
3. PHP ili JavaScript klase: Ako koristite određene klase za logiku blokova, podijelite ih.
4. Dizajn ili mockupovi: Ako imate dizajne u Figmi ili neki drugi alat, mogu vam pomoći s njihovom implementacijom u kod.
5. Testiranje: Kako testirate blokove? Imate li specifične alate za testiranje?
________________________________________
Neka vas ovo vodi u pravom smjeru. Slobodno mi se javite s detaljima koji su vam potrebni, i mogu vam pomoći s konkretnim primjerima i kodom!
This is the text you gave me yesterday as guides for a new employe who should do the new block task
what code or information do you need to finalise this into a multi page document so even someone who doesn't know how to code can understand how blocks are made
I will explain the process of making a block
First you start on your custom page and make the php file
mine is template-landing.php and it contains all the blocks that i am making (the static frontend part first) here is the file
Et voluptate repellat cum aspernatur consequatur
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec purus augue, varius et ante a, varius feugiat turpis. Sed dictum orci nec libero placerat, ullamcorper aliquet orci condimentum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec purus augue, varius et ante a, varius feugiat turpis. Sed dictum orci nec libero placerat, ullamcorper aliquet orci condimentum.
and then you make an scss file in this directory themes/web-4d-theme/web-4d-theme/resources/sass/w4d/components and name it "_filename.scss" , and you have to forward it in index.scss and in the _filename.scss you need to do use "../abstract" as * like this ".account {
display: grid;
grid-template-columns: 1fr 348px;
gap: 5.625rem;
margin-bottom: 5rem;
&-sidebar {
&__user {
padding: 1.25rem 1.625rem;
color: var(--white);
background-color: var(--base-color-80);
border-radius: 0.25rem;
margin-bottom: 1.5rem;
&-email {
font-size: 1.25rem;
font-weight: 700;
display: block;
line-height: 2;
}
p {
color: var(--white);
margin-bottom: 0 !important;
}
}
&__nav {
margin-bottom: 0.75rem;
&-link {
padding: 0.75rem 1.5rem;
display: block;
border: 1px solid var(--base-color-40);
background-color: var(--white);
transition: 200ms ease-out;
&--active {
color: var(--accent-color);
font-weight: 600;
}
&:hover {
background-color: var(--light-color-10);
}
&:not(:first-child) {
border-top: unset;
}
&:first-child {
border-top-left-radius: 0.25rem;
border-top-right-radius: 0.25rem;
}
&:last-child {
border-bottom-left-radius: 0.25rem;
border-bottom-right-radius: 0.25rem;
}
}
}
&__logout {
padding: 0.75rem 1.5rem;
color: var(--base-color-60);
background-color: var(--light-color-10);
display: block;
border: 1px solid var(--base-color-40);
border-radius: 0.25rem;
}
}
}"
Then you are done with frontend and you need to parametrize the block
step 1 /var/www/html/wp-content/plugins/4D-WPPlugin/includes/constants/w4d-blocks.php
add block here and add images to plugins/4D-WPPlugin/assets/img/block-screenshots and plugins/4D-WPPlugin/assets/img/block-screenshots
then make file in plugins/4D-WPPlugin/includes/admin/blocks/views
Like this "