Costruzione di un template modulare.
Libreria Software HIMD
In questa sezione sono contenuti gli step del progetto. Alcuni si possono anche trovare nel mio account Github
Il programma in questione usa largamente un metodo javascript documentGetElmentById il quale permette di costruire una struttura HTML con alcune proprietà interessanti. Una delle quali è la possibilità di calcolare le dimensioni degli elementi.
Normalmente se uno style è usato frequentemente viene creata una class che permette di trasferire dei valori costanti lungo tutto il codice HTML evitando in tal modo di procedere artigianalmente (o con replace) all'aggiornamento del codice.
Tale pratica è molto utile, ma non permette di usare il calcolo matematico per definire gli elementi.
Con document.GetElement è possibile fare un mix tra html css e calcolo aritmentico. Nel programma di seguito si troveranno molti esempi di questa tecnica.
Definizione del progetto:
La struttura è stata definita a grandi linee predentemente in queste pagine, sostanzialmente il codice HIMD (HeaderIframeModalDropdown) risulta un assemblaggio admin e medium derivato da BMU(BaseMediumUser) * riferimento a Github trasponendo il css in jscssSi tratta in un certo modo della stessa idea sviluppata da sass con il precompilato. Una maniera per rendere più flessibile il codice HTML. naturalmente il jscss è paragonabile solo molto idealmente con sass Sviluppare un HTML con DGEBI comporta una conoscenza sufficiente del codice HTML, CSS e ovviamente anche di Javascript. Oggi è impossibile creare un sito web senza javascript, naturalmente ciò va parzialmente in cnflitto con lo spirito HTML poiché tale linguaggio nasce come tollerante di errori in quanto per certi versi l'interprete in caso di errori si sostituisce al programmatore aggiustando il codice errato (ma fino a un certo punto).
Inserire uno script ha come effetti un blocco di HTML nel caso lo script contenesse degli errori di sintassi. Javascript è molto meno rigido di Java o altri veri e propri linguaggi di programmazione tuttavia rende il feeling con la scrittura del codice html molto meno friendly.Il codice jscss è formato dal dgebi vero e proprio e da un eventuale javascript puro aggiunto.
Il codice nel formato dgebi è formato dalla concatenazione di stringhe javascript.Le capacità editoriali dello scrittore di software sono misura dell'esperienza nella scrittura di codice jscss. Alcuni bug soprattutto allorquando il codice diventa molto corposo possono essere molto insidiosi. Il vantaggio rispetto al codice html è lo stop assoluto nel caso ci sia anche una minima sgrammaticatura.
Nel codice HIMD riportanto in Libreria si è fatto largo uso di commenti i quali risultano molto utili.METODOLOGIA del progetto:
Il risultato del codice HIMD somiglia ad un progetto di template e in effeti così funziona, tuttavia la procedura di creazione parte da considerazioni poco deduttive.
La sezione B (base) si costruisce partendo dalle dimensioni width height percentuali di iframe e sono da considerare essenziali i relativi magic numbers. Fatto questo si procede con la definizione di header il quale contiene le icone
X ? !
X e ! si riferiscono a jQuery mentre ? è un drop in puro css. La costante in questo caso è header fixed altezza al quale si adatta il font-size. Si tratta ovviamente del fatto che iframe ha la priorità. Avere priorità iframe comporta anche una gestione di z-index poiché definiscono i livelli di sovrapposizione o startificazione dei menu a tendina. Nel caso di B iframe ha zindex 0 poiché i menu di scelta del contenuto devono essere visti in primo piano (sotto questo aspetto MODAL zindex100 TOOTLTIP zindex110).
La sezione M (medium) è caratterizzata dalla presenza delle voci dell'elenco il che richiede che l'elemento costante sia il font-size attorno al quale ruotano i calcoli della griglia (template).
Inoltre M caratterizzato da essere a mezza strada tra administrator e user, può essere utilizzato anche come file esterno in formato script.Problemi si sincronismo. Quando M è esterno il caricamento da B può non essere sincronizzato se si utilizza link rel href. Per ovviare si utilizza lo script di caricamento sincrono il quale offre la assoluta garanzia che appena viene aggiorato M allora B ne utilizza la versione immediatamente aggiornata.
back ^0945 HIMD studio apps 20200830 hhmm html yyyymmdd bug_report
LEIBNIZ lego HTML CSS JAVASCRIPT
Mok vers. LEIBNIZ (exempli) | |---#L_sessionStart ( php ) | | |---#L_docType | |----head |---#L_meta | |---#L_title | |---#L_icon | |---#L_linkMaterial | |---#L_linkAwesome | |---#L_linkJQuery | |---style | | |---#L_style | | | |---/style | |----/head | |---#L_linkBody | | |---main | |---#L_toggleAgenda class view_agenda | | |---#L_section class hidden-agenda | | |---#L_announcementModal href #announcement | | |---------#L_announcementModal ID class announcement | | |---------#L_viewListaModal class view_lista YM | | |---------Elenco Y(K) | |---announcement fin | | |---#L_viewListaModalID | |------Elenco YM (con link esterni per iframe) | |---viewLista fin | | | |---------#L_iframe | | | |---/section | | |---JQuery view_agenda | | |---#L_jqueryAgenda | | |---/main | | |---#L_AsincronoCss | | | |---#L_TuttoModale | | | |---#L_Temporizzatore | | | |---#L_COPYclipboard | | | |---#L_PROGRESS | | | |---#L_SPINNER | | | |---#L_fine
/************************************ 1---definizione base del progetto--| |---php sessione | |---html ini | |---head ini |---stile |---script |---head fin | 2---inserimento toggleLista |---body ini | |---main ini |---section ini | |---iframe | |---onoff1Lista ini | (fornisce il pannello di | controllo) | |------onoff2Lista |--------onoffLista |----------material-icons-map | |---onoff1Lista fin | | | |---hidden-Lista ini | (quando map cliccata | visualizza il contenuto | compreso in hidden) | | | |------modale ini | | CLASSES | class modale | fixed top 0 left 0 bottom 0 right 0 | pointer-events none | opacity 0 | overflow auto | zindex 100 | | class modale selector target | pointer events auto | opacity 1 | | class modale contenuto | width 70% height 70% | margin top 10% margin left 15% | overflow auto | | class posizione modale | fixed top 1.5 left 10% | margin padding 0 | | |------anchor ref tag modale ini |------------icona menu material |------anchor fin | | division ini class modale | id modale | | chiudi modale ini tag top fin | | | ... applicazioni del modale ... | | | division fin class modale contenuto | | |------modale fin | | | | |------logout ini | class posizione logout |------------icona exit_to_app material |------logout fin | | | |---------posizioneLista INI | (definisce la posizione | della Lista dei contenuti | targati nel frame odlanir) | .---------------------------. | | year002 mese01 mese02 ... | | | year003 '' '' '' | | | ... ... ... ... | | | | | | | | | | | .---------------------------. | | |---------posizioneLista FIN | | | | | | |---hidden-Lista fin | | |---section fin |---main fin | | | | | |---script indicatore progress bar |---script clipboard copy | | | |---body fin | 3---html fin *************************************/
|
- schema template agenda #suptagagendaframework
- spinner minimalista #spinnerminimalista
-
elencoagenda #suptagagendaElenco
Sono raggruppati i tagID per accedere ai file grafici delle pagine
- articolo agenda #suptagagendaarticolo
-
articolo agenda doppia pagina#suptagagendaarticoloDoppiaPagina
Raccoglie in un unico file diverse giornate di una frazione di mese tenendo conto del peso in MB della pagina. In tale modo si ottiene un compattamento riducendo il numero dei file-pagina. All'interno del file compact la individuazione dei giorni viene fatta tramite gli id i quali sono taggati nell'elenco. Qui viene riportato un esempio concreto.
-
php LOGIN #suptagagendalogin
-
LOGIN timer #suptagagendaloginTIMER
Schema di login con temporizzatore. Il problema del login sessione sta ne fatto che user puo' dimenticarsi di eseguire il logout, cosi' facendo si crea un grave problema di sicurezza dei dati poiche' la sessione rimane aperta con possible invalidazione della sicurezza dei dati. Il tentativo messo qui in atto e' di inserire un intervallo di tempo limitato di accesso alla validita' della sessione scaduto il quale occorre reinserire la password. Sistema questo molto artigianale e da rivedere.
var elem = document.getElementById("incremento"); var numero = 0; var intervallo = setInterval(frame, 1000); function frame() { numero=numero+1; elem.innerHTML = numero; if (numero==40) { window.location.href="http://odlanir.altervista.org/logoutagenda.php" } } Implementando lo script si ottiene una temporizzazione di 40 secondi utili allo user per inserire di dati di accreditamento. Lo snip e' utilizzato anche in altri contesti con temporizzazione differente al fine di forzare l'uscita in caso di mancato logout. Questo sistema contiene molto fault ma puo' essere utile.
-
LOGIN timer #suptagagendaloginTIMER
- php LOGOUT#suptagagendalogout
- php LOGGED#suptagagendalogged
E' un coding in progress. Stabilire un milestone e' una faccenda non da poco quando si attua una versione estesa con molte pagine di un codice html. Se si cambia idea avendo distribuito lo stesso stile su innumerevoli pagine il fatto di dover cambiare manualmente il codice in tutte diventa un notevole aggravio di fatica. Da cio' si rende necessario l'utilizzo delle classes quando si e' individuato uno style adeguato e una sua centralizzazione in un file esterno css da poter essere usufruito da piu' pagine. Un po' come la rete a stella. Eseguendo un modify sul external css si ottiene una normalizzione dello style su tutte le page del progetto.
Debugging T1
- T1test01 #suptagT1test01
- html #suptagHTMLT1 html t1
- semantic user interface link #suptagLINKUIT1
- intestazioni e piedipagina #suptagINTESTAZIONIT1
- istogramma progressione #suptagPROGRESSIONET1
- spinner loading percento #suptagSPINNERT1
- dropmenu semantic #suptagDROPMENUT1
- finestra dialogo modal #suptagMODALET1
- hide/show #suptagHIDESHOWT1
- stile t1 #suptagSTILET1
- scrive cronologia php #suptagPHPCRONOLOGIAT1
- id fine #suptagIDFINET1
- T1 modello ridotto (lato user) #supertagLATOUSERT1
Avvio, esecuzione e chiusura sessione di lavoro PHP.
- avvertimento tracciatura #suptagt1avvertimentotracciatura attualmente non visualizzabile
- login #suptagt1Login attualmente non visualizzabile
- logout #suptagt1Logout attualmente non visualizzabile
- controllo sessione #suptagt1codicecontrollophp
- FILE T1 controllabile #suptagt1codicecontrollophpT1
Collezione codici - Repository
- Pagina base #USDpaginabasewysiwyg Esempio di programmazione
- E book #USDBOOKwysiwyg Esempio di programmazione
- E book #USDBOOKxmpwysiwyg Book di 26 pagine
- repository css #USDBOOKrepository
- codici colori personalizzati x123 #codicicoloripersonalizzati Un colore ha sempre la prevalenza
- spinner02 #spinner02 spinner classico senza document
- showhide javascript #showhide showhide
- Tavola semantic #tablesemantic
- Celled grid #celledgrid
- Icone standard #icone-standard Usate frequentemente
- Icone svg #icone-sprite
- PHP LOGIN #codicelogin Login Logout Index
'1234','username1' => 'password1','username2' => 'password2'); /* Check and assign submitted Username and Password to new variable */$Username = isset($_POST['Username']) ? $_POST['Username'] : ''; $Password = isset($_POST['Password']) ? $_POST['Password'] : ''; /* Check Username and Password existence in defined array */ if (isset($logins[$Username]) && $logins[$Username] == $Password){ /* Success: Set session variables and redirect to Protected page */ $_SESSION['UserData']['Username']=$logins[$Username]; header("location:agenda.php"); exit; } else { /*Unsuccessful attempt: Set error message */ $msg="Invalid Login Details"; } } ?>
Loading... Il sistema sta trattando la richiesta, ti preghiamo di attendere. |
Questa versione di t1 comprende sia il codice inlinea che quello esterno in commento.
t1test01 eseguibile
Gli adattamenti richiesti riguardano la necessità del repositiory dei file css e js .
In questo test01 sono collocati nella stessa cartella (folder) del documento web. Ma in una versione definitiva saranno collocati in un repository accessibile a ogni programma di qualsiasi dominio.
I codic php si riferiscono e funzionano solamente in file con estensione php.
Riguardano la possibilità di essere fruiti in un'area riservata accessibile mediante password. Questa occorrenza richiede tutti i file con estensione php.
A complemento di ciò in fondo al codice si trova un php che permette la tracciatura molto soft della navigazione di un ipotetico utente ( ricordarsi però di avvisare il navigante di questa feature del programma ) .
La parte che attiene al LoginLogout è reperibile Qui
Loading... Il sistema sta trattando la richiesta, ti preghiamo di attendere. |
underground_software_distillery©2020 se leggi questo messaggio qualcosa non ha funzionato
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
Questo codice risolve il problema del
mancato sincronismo che invalida il loading
avvertenza.
Quando un codice javascript è
incluso in un document inner si ha un ritardo
nell'avviso loading percentuale tale che
l'user non viene aiutato.
L'unico
modo per ovviare all'inconveniente è
inserire il loading avviso nel codice stesso
extrapolandolo dal document.inner
<div id="Loaded" style=" position:fixed; top:4em; left:1.5em; "> <div class="ui secondary loading small button "> Loading </div> <div id="percento" style="" class="ui secondary small button" > Loading... </div> </div> <script> function AttendereLoading() { if (document.all) {document.all['AttendereLoading'].style.visibility='hidden'; } else if (document.getElementById) {node=document.getElementById('Loaded').style.visibility='hidden'; } } var percento=document.getElementById('percento'); var contatore=1; var intervallo=setInterval( function(){ percento.innerHTML=contatore+'%'; contatore++; if (contatore===101) {clearInterval(intervallo);} }, 30000 ) </script>
Un altro esempio si può trovare in spinner classico che però non usa il semantic user interface
Altre implementazioni sono deprecate.
Repository elenco file css e js
http://edoraandiamo.altervista.org/usdebook/seb/usdceb01.css
http://edoraandiamo.altervista.org/usdebook/seb/usdjeb01.js
http://edoraandiamo.altervista.org/usdebook/seb/usdjeb02.js
http://edoraandiamo.altervista.org/usdebook/seb/usdCEB01_1.css
http://edoraandiamo.altervista.org/usdebook/seb/usdjeb03.js
http://edoraandiamo.altervista.org/usdebook/seb/usdceb02.css
Siti mirror /usdbook/seb/ su domini Altervista:
http://venexiatre.altervista.org/
http://veneziavi.altervista.org/
Siti mirror /usdbook/seb/ su altri domini:
https://ed-ora-andiamo.com/
http://beatsupernovarasa.com/
usdceb01.css usdjeb01.js usdjeb02.js vanno posizionati immediatamente dopo i files Semantic UI CND (in head)
usdCEB01_1.css va posizionato alla fine dello script dei settaggi num_pages num_loaded_pages
usdjeb03.js usdceb02.css vanno posizionati immediatamente prima di </head>
Il corretto posizionamento dei file css e javascript sono molto importanti per il funzionamento del programma.
Naturalmente non possono essere in alcun modo editati senza sapere esattamente che cosa si sta facendo. Una qualsiasi modificazione dei loro codici puo' portare al malfunzionamento dell'intero programma introducendo cosi' bug insidiosi da cui e' poi difficile uscire. Percio' molta cautela!
Tavolozza :
composizione colori rgba base 1 1+1 1+1+1 fattore x min 0 max 255 combinazioni 123 132 213 231 312 321 |
|||||
---|---|---|---|---|---|
titolo | |
---|---|
<main class="ui grid container centro">
ui grid container uniforma mentre la class centro ha la stessa funzione del vecchio comando <center> considerato deprecabile
.centro{ text-align:center !important; margin:auto !important; padding:0 !important; }
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Le icone sprite sono molto ben delineate
nel segno e rievocano lo stile delle icone
microsoft windows10. Quelle presentate nel
riquadro di sinistra sono riferite
a boostrap italia con miei adattamenti. Il file che
si trova al link offre un'idea di come
studiare gli sprite.
Come si può notare
gli viewboxes hanno un id="nome semantico
dello
sprite" utilissimo per non frammentare e
raccogliere in un unico file tutti gli sprite svg.
Purtroppo questa facilitazione funziona
solo con il browser Edge/IExplorer. In sostanza si perde questa utilità se si usano
altri browser.
Nel link trovate i file scompattati
Conviene perciò estrarre gli sprite in modo
singolo e poi trattarli come immagini
<img> in questo caso fare molta attenzione a settare i giusti valori
dei parametri width height
Le immagini degli sprite possono essere
molto grandi e sforare le dimensioni della
fruizione standard di una pagina web
riguardo la semantica dei segni visivi.
Login
Logout
Index
<xmp style="color:green;overflow:auto;"> </xmp>