VRP - API delle librerie (GENERATA)

Documento generato da docs/genera_doc.php dai commenti del codice.

Per ogni funzione: firma, descrizione, parametri, ritorno e Usato in (dove viene chiamata nel lab).

Non modificare a mano: si rigenera. Ultima generazione: 2026-07-08 16:35


vrn_foto.php

vrn_foto_search(string $q, bool $anw = false, int $limit = 500)

Cerca foto per nome o cartella nell'indice lenostre.foto.

parametrodescrizione
string $qtesto da cercare (LIKE, su nome e cartella)
bool $anwse false, ESCLUDE le foto naturiste (anw=1)
int $limitnumero massimo di risultati

Ritorna: array - righe: path, cartella, nome, lat, lon, scattata_il, anw

manuale: sezione: Ricerca foto

Usato in: platform/pages/search.php:22


vrp_auth.php

vrp_login(string $username, string $password)

Verifica username+password e apre la sessione. Vero se autenticato.

parametrodescrizione
string $username
string $password

Ritorna: bool

manuale: sezione: Accesso

Usato in: platform/pages/login.php:33

vrp_current_user()

L'utente loggato (con i suoi ruoli per-servizio) o null. Memoizzato.

Ritorna: array|null - ['id','username','display_name','email','avatar','roles'=>[svc=>role]]

Usato in: platform/lib/vrp_auth.php:102, platform/lib/vrp_auth.php:112, platform/lib/vrp_auth.php:124, platform/lib/vrp_auth.php:185, platform/lib/vrp_log.php:59, platform/lib/vrp_services.php:156, platform/lib/vrs.php:45, platform/pages/accesso.php:20, platform/pages/home.php:28, platform/pages/login.php:24, platform/pages/profilo.php:22, public/index.php:78, public/index.php:95, public/share/index.php:14

vrp_logout(string $action = 'logout')

Chiude la sessione (e timbra la chiusura nel registro del portinaio).

parametrodescrizione
string $action'logout' (default) o 'timeout'

Ritorna: void

Usato in: platform/lib/vrp_auth.php:216, platform/pages/logout.php:35

vrp_user_role(string $service)

Ruolo dell'utente corrente in un servizio, o null se non ne ha.

parametrodescrizione
string $serviceslug del servizio (es. 'vrv')

Ritorna: string|null

Usato in: platform/lib/vrs.php:52

vrp_is_admin()

Vero se l'utente corrente e' admin (ha ruolo 'admin' in un servizio).

Ritorna: bool

Usato in: platform/lib/vrp_auth.php:184, platform/pages/home.php:41, public/index.php:51, public/index.php:102

vrp_role_top()

Il ruolo "piu' alto" dell'utente corrente fra tutti i servizi, o null

Ritorna: string|null

Usato in: platform/lib/vrp_log.php:63, public/index.php:108

vrp_role_icon(?string $role)

Icona (entita' HTML, gia' pronta da stampare) che evidenzia un ruolo:

parametrodescrizione
`stringnull $role`ruolo (es. 'admin') o null

Ritorna: string

Usato in: public/index.php:110

vrp_guard_request()

Guardia d'AREA per i servizi ospitati DENTRO il lab (es. wiz_foto in

Ritorna: void

Usato in: platform/boot/3_2_1_Go.php:60, platform/lib/vrp_services.php:86

vrp_session_check()

Controllo del timeout d'inattivita' (autoritativo, server-side).

Ritorna: void

Usato in: platform/boot/3_2_1_Go.php:56


vrp_db.php

vrp_db(string $nome)

PDO verso un database della piattaforma (memoizzato per richiesta).

parametrodescrizione
string $nomechiave in VRP_DB_CREDS (es. 'lenostre')

Ritorna: PDO

Usato in: platform/boot/vrp_defines.php:58, platform/lib/vrn_foto.php:6, platform/lib/vrp_db.php:5, platform/lib/vrp_db.php:61, platform/lib/vrp_db.php:72, platform/lib/vrp_db.php:83, platform/lib/vrp_db.php:94, platform/lib/vrp_db.php:105

vrp_all(string $db, string $sql, array $params = [])

Tutte le righe di una SELECT (fetchAll associativo).

parametrodescrizione
string $dbnome database (es. 'lenostre')
string $sqlquery con placeholder :nome
array $paramsparametri [':nome' => valore]

Ritorna: array

Usato in: platform/lib/vrn_foto.php:36, platform/lib/vrp_auth.php:68, platform/lib/vrs.php:77, platform/lib/vrs.php:87, platform/lib/vrs.php:218, platform/pages/sessioni.php:27, platform/pages/sessioni.php:40, platform/pages/sessioni.php:62, platform/pages/users.php:175, platform/pages/users.php:179

vrp_row(string $db, string $sql, array $params = [])

Una riga (array associativo) o null se nessuna.

Ritorna: array|null

Usato in: platform/lib/vrp_auth.php:23, platform/lib/vrp_auth.php:60, platform/lib/vrs.php:69, platform/lib/vrs.php:97, platform/pages/profilo.php:102, platform/pages/users.php:155, platform/pages/users.php:186

vrp_val(string $db, string $sql, array $params = [])

Un solo valore scalare (prima colonna della prima riga).

Usato in: platform/pages/sessioni.php:49, platform/pages/users.php:70, platform/pages/users.php:171

vrp_run(string $db, string $sql, array $params = [])

Esegue INSERT/UPDATE/DELETE, ritorna il numero di righe toccate.

Ritorna: int

Usato in: platform/lib/vrp_auth.php:32, platform/lib/vrp_auth.php:33, platform/lib/vrp_auth.php:86, platform/lib/vrp_auth.php:220, platform/lib/vrs.php:200, platform/lib/vrs.php:221, platform/lib/vrs.php:223, platform/pages/profilo.php:56, platform/pages/profilo.php:63, platform/pages/profilo.php:83, platform/pages/users.php:87, platform/pages/users.php:97, platform/pages/users.php:120, platform/pages/users.php:132, platform/pages/users.php:136, platform/pages/users.php:160

vrp_insert(string $db, string $sql, array $params = [])

INSERT, ritorna l'id auto-generato.

Ritorna: string

Usato in: platform/lib/vrs.php:142, platform/lib/vrs.php:184, platform/pages/users.php:73


vrp_img.php

vrp_img_resolve(string $src, array $bases)

Risolve un web-path (es. "/leNostre/2025/foto.jpg") nel path reale sul

parametrodescrizione
string $srcweb-path come arriva da ?src=
array $basesmappa web-prefix => base-filesystem

Ritorna: string|null - path reale del file, oppure null se fuori base / inesistente

manuale: sezione: Immagini

Usato in: platform/lib/vrp_img.php:15, public/wiz_foto/nc_thumb.php:32

vrp_img_fail(int $code, string $msg)

Ferma lo script emettendo un codice HTTP e un messaggio testuale.

parametrodescrizione
int $code
string $msg

Ritorna: void

Usato in: platform/lib/vrp_img.php:96, platform/lib/vrp_img.php:100, platform/lib/vrp_img.php:128

vrp_img_serve(string $fsPath, int $w, array $opt = [])

Ridimensiona il file $fsPath a larghezza $w e lo EMETTE come JPEG, con

parametrodescrizione
string $fsPathpath reale del file, gia' risolto e autorizzato
int $wlarghezza richiesta (normalizzata sulla whitelist)
array $opt'cache_dir' (stringnull) base cache; null = niente cache su disco

Ritorna: void

manuale: sezione: Immagini

Usato in: platform/lib/vrp_img.php:16, public/share/anw/verboten.php:33, public/share/thumb.php:11, public/share/thumb.php:65, public/wiz_foto/nc_thumb.php:11, public/wiz_foto/nc_thumb.php:43


vrp_log.php

vrp_log_rank(string $level)

Rango numerico di un livello (999 se sconosciuto).

parametrodescrizione
string $levelERRORWARNTRACEINFODEBUG

Ritorna: int

manuale: sezione: Log

Usato in: platform/lib/vrp_log.php:48

vrp_log_enabled(string $level)

Vero se, data la soglia VRP_LOG_LEVEL, il livello va scritto.

parametrodescrizione
string $level

Ritorna: bool

Usato in: platform/lib/vrp_log.php:76

vrp_log_identity()

Firma di chi sta agendo, per la riga di log: [@utente#id@ruolo].

Ritorna: string

Usato in: platform/lib/vrp_log.php:96

vrp_log_write(string $level, string $msg)

Scrive una riga di log, se il livello e' abilitato dalla soglia.

parametrodescrizione
string $level
string $msg

Ritorna: void

Usato in: platform/lib/vrp_log.php:116, platform/lib/vrp_log.php:124, platform/lib/vrp_log.php:132, platform/lib/vrp_log.php:140, platform/lib/vrp_log.php:148

vrp_log_error(string $msg)

Logga un ERRORE serio (sempre scritto: rango minimo).

parametrodescrizione
string $msgmessaggio

Ritorna: void

manuale: sezione: Log

Usato in: _(nessun uso trovato nel lab)_

vrp_log_warn(string $msg)

Logga un WARNING (situazione anomala non fatale).

parametrodescrizione
string $msgmessaggio

Ritorna: void

manuale: sezione: Log

Usato in: _(nessun uso trovato nel lab)_

vrp_log_trace(string $msg)

Logga una TRACE (ingresso/uscita del flusso principale).

parametrodescrizione
string $msgmessaggio

Ritorna: void

manuale: sezione: Log

Usato in: _(nessun uso trovato nel lab)_

vrp_log_info(string $msg)

Logga una INFO (decisioni e contesto operativo).

parametrodescrizione
string $msgmessaggio

Ritorna: void

manuale: sezione: Log

Usato in: platform/pages/config.php:59, platform/pages/config.php:114, platform/pages/config.php:148, platform/pages/config.php:171, platform/pages/login.php:38, platform/pages/profilo.php:94, platform/pages/users.php:148, platform/pages/users.php:162

vrp_log_debug(string $msg)

Logga un DEBUG (dettaglio massimo: branch, variabili intermedie).

parametrodescrizione
string $msgmessaggio

Ritorna: void

manuale: sezione: Log

Usato in: _(nessun uso trovato nel lab)_


vrp_services.php

vrp_services()

Lista dei servizi ACCESI, ognuno con la sua targa, pronta per la

Ritorna: array - slug => ['slug','label','icon','blurb','url','enabled', ...]

manuale: sezione: Servizi

Usato in: platform/lib/vrp_auth.php:168, platform/lib/vrp_services.php:95, platform/pages/home.php:31, platform/pages/users.php:35

vrp_service_config(string $slug)

Config COMPLETA di un servizio (non solo la targa), dal file puntato

parametrodescrizione
string $slugchiave del servizio (es. 'vrw')

Ritorna: array

Usato in: platform/lib/vrp_services.php:71, platform/lib/vrs.php:27, platform/lib/vrw.php:18, public/wiz_foto/nc_thumb.php:24, public/wiz_foto/nextcloud_import.php:10

vrp_load_service_libs()

Carica le librerie PHP dei servizi che ne dichiarano una (campo lib

Ritorna: void

Usato in: platform/boot/3_2_1_Go.php:53

vrp_current_service()

Il servizio ospitato nel lab dentro cui cade la richiesta corrente

Ritorna: array|null - la targa del servizio (slug + manifest) o null

Usato in: platform/lib/vrp_services.php:123, platform/lib/vrp_services.php:156

vrp_service_bg()

Dipinge le pagine HTML del servizio ospitato col suo sfondo, guidato

Ritorna: void

Usato in: platform/boot/3_2_1_Go.php:64, platform/lib/vrp_services.php:145

vrp_service_esci()

Inietta un bottone "Esci" fisso nelle pagine dei SERVIZI ospitati (che

Ritorna: void

manuale: sezione: Servizi

Usato in: platform/boot/3_2_1_Go.php:68


vrp_util.php

vrp_h($s)

Escape HTML sicuro. Tollera null e array (uniti con " & ").

parametrodescrizione
mixed $s

Ritorna: string

manuale: sezione: Utility

Usato in: platform/lib/vrp_services.php:159, platform/lib/vrs.php:276, platform/lib/vrs.php:293, platform/lib/vrs.php:307, platform/lib/vrs.php:310, platform/lib/vrs.php:328, platform/lib/vrs.php:339, platform/lib/vrs.php:342, platform/lib/vrs.php:349, platform/lib/vrs.php:350, platform/lib/vrs.php:351, platform/pages/accesso.php:45, platform/pages/accesso.php:47, platform/pages/accesso.php:48, platform/pages/accesso.php:50, platform/pages/accesso.php:54, platform/pages/accesso.php:57, platform/pages/admin.php:32, platform/pages/admin.php:38, platform/pages/admin.php:39 _(+97)_

vrp_url(string $path = '/')

URL assoluto a partire dalla base di piattaforma (VRP_BASE_URL).

parametrodescrizione
string $pathpercorso relativo (es. 'public/vrp_config.php')

Ritorna: string

Usato in: platform/lib/vrp_auth.php:188, platform/lib/vrp_services.php:159, platform/lib/vrp_util.php:51, platform/pages/accesso.php:21, platform/pages/accesso.php:32, platform/pages/accesso.php:47, platform/pages/login.php:22, platform/pages/login.php:50, platform/pages/logout.php:30, platform/pages/logout.php:37, platform/pages/logout.php:51, platform/pages/logout.php:52, platform/pages/profilo.php:24, platform/pages/profilo.php:103, platform/pages/users.php:197, public/index.php:54, public/index.php:55, public/index.php:84, public/index.php:87, public/share/index.php:45

vrp_asset_url(string $rel)

URL di un asset con marca-tempo (?v=mtime) per bustare la cache.

parametrodescrizione
string $relpercorso relativo alla piattaforma (es. 'public/css/x.css')

Ritorna: string

Usato in: _(nessun uso trovato nel lab)_

vrp_client_ip()

IP del client, gestendo eventuali proxy; '-' se ignoto.

Ritorna: string

Usato in: platform/lib/vrp_auth.php:39

vrp_is_lan()

Vero se la richiesta arriva dalla LAN di casa o da localhost

Ritorna: bool

Usato in: platform/lib/vrp_auth.php:180, platform/pages/home.php:40, public/index.php:46, public/index.php:101, public/share/anw/verboten.php:15, public/wiz_foto/nc_thumb.php:18

vrp_csrf_token()

Token CSRF di sessione (creato una volta sola).

Ritorna: string

Usato in: platform/lib/vrs.php:310, platform/pages/config.php:199, platform/pages/login.php:41, platform/pages/profilo.php:104, platform/pages/users.php:192, public/share/index.php:78, public/share/index.php:85

vrp_csrf_check()

Verifica il token CSRF arrivato via POST.

Ritorna: bool

Usato in: platform/pages/config.php:49, platform/pages/login.php:31, platform/pages/profilo.php:40, platform/pages/users.php:48, public/share/create_dir.php:10, public/share/delete.php:11, public/share/upload.php:10

vrp_load_json(string $path)

Legge un file JSON e lo restituisce come array. Fail-loud: se il file

parametrodescrizione
string $pathpercorso assoluto del file .json

Ritorna: array

Usato in: platform/lib/vrp_services.php:30, platform/lib/vrp_services.php:54, platform/pages/users.php:38


vrs.php

vrs_cfg()

vrs.php - VittRos Share: libreria del servizio di condivisione file.

manuale: sezione: Share

Usato in: platform/lib/vrs.php:33, platform/lib/vrs.php:39

vrs_storage_root()

Radice fisica dello storage (cartelle numerate per dir_id).

Usato in: platform/lib/vrs.php:109

vrs_root_dir_id()

Id della cartella radice dell'albero share.

Usato in: platform/lib/vrs.php:208, platform/lib/vrs.php:285, public/share/delete.php:18, public/share/index.php:15, public/share/index.php:19

vrs_uid()

Id dell'utente di piattaforma corrente, o null.

Usato in: platform/lib/vrs.php:58, public/share/create_dir.php:17, public/share/upload.php:20

vrs_is_admin()

Vero se l'utente corrente e' admin del servizio share.

Usato in: platform/lib/vrs.php:59

vrs_can_manage(?int $ownerUserId)

Vero se l'utente corrente puo' gestire un elemento di $ownerUserId.

Usato in: platform/lib/vrs.php:196, platform/lib/vrs.php:212, platform/lib/vrs.php:302

vrs_get_dir(int $dirId)

Una cartella per id (viva), o null.

Usato in: platform/lib/vrs.php:139, platform/lib/vrs.php:152, platform/lib/vrs.php:211, platform/lib/vrs.php:274, public/share/index.php:17, public/share/index.php:20, public/share/upload.php:16

vrs_list_child_dirs(int $parentId)

Cartelle figlie (vive) di una cartella, in ordine di nome.

Usato in: platform/lib/vrs.php:215, platform/lib/vrs.php:285, platform/lib/vrs.php:325

vrs_list_files(int $dirId)

File (vivi) contenuti in una cartella, in ordine di nome.

Usato in: platform/lib/vrs.php:332

vrs_get_file(int $fileId)

Un file per id (vivo), o null.

Usato in: platform/lib/vrs.php:195, public/share/download.php:11, public/share/thumb.php:19

vrs_fs_dir(int $dirId)

Path fisico della cartella di un dir_id.

Usato in: platform/lib/vrs.php:115, platform/lib/vrs.php:125, platform/lib/vrs.php:222

vrs_ensure_fs_dir(int $dirId)

Garantisce (e ritorna) la cartella fisica di un dir_id.

Usato in: platform/lib/vrs.php:145, platform/lib/vrs.php:164

vrs_file_path(array $file)

Path fisico completo di un file (dalla sua riga share_files).

Usato in: platform/lib/vrs.php:199, platform/lib/vrs.php:219, public/share/download.php:17, public/share/thumb.php:33

vrs_create_dir(int $parentId, string $name, int $ownerUserId)

Crea una cartella figlia (DB + mkdir). Ritorna il nuovo id.

Usato in: public/share/create_dir.php:24

vrs_store_uploaded_file(int $dirId, array $file, int $ownerUserId)

Salva un file uploadato in una cartella (move + insert). Ritorna l'id.

Usato in: public/share/upload.php:41

vrs_delete_file(int $id)

Cancella un file: rimuove il file fisico e marca la riga come eliminata.

Usato in: public/share/delete.php:20

vrs_delete_dir(int $id)

Cancella una cartella (ricorsiva, hard): rimuove i file fisici e le

Usato in: platform/lib/vrs.php:216, public/share/delete.php:20

vrs_format_bytes(int $bytes)

Byte -> stringa leggibile (B/KB/MB/GB/TB).

Usato in: platform/lib/vrs.php:335

vrs_sanitize_filename(string $name)

Sanitizza il nome di un file (mantiene lettere/numeri/._- e spazi->_).

Usato in: platform/lib/vrs.php:163

vrs_sanitize_dirname(string $name)

Sanitizza il nome logico di una cartella (niente slash, spazi compressi).

Usato in: platform/lib/vrs.php:135

vrs_is_thumbable(string $filename)

Vero se il nome-file e' un'immagine servibile come thumbnail da vrp_img.

Usato in: platform/lib/vrs.php:338, public/share/thumb.php:26

vrs_is_video(string $filename)

Vero se il nome-file e' un video (anteprima = fotogramma via ffmpeg).

Usato in: platform/lib/vrs.php:340, public/share/thumb.php:27

vrs_breadcrumb(int $dirId)

Briciole di navigazione (dalla radice alla cartella corrente).

Usato in: public/share/index.php:70

vrs_render_tree(int $currentId)

Albero laterale: le cartelle di primo livello sotto la radice.

Usato in: public/share/index.php:94

vrs_delete_button(string $type, int $id, int $backDir, ?int $ownerId)

Bottoncino 🗑 (form POST a delete.php) per file/cartella, solo se l'utente

Usato in: platform/lib/vrs.php:329, platform/lib/vrs.php:353

vrs_render_dir(int $dirId)

Contenuto della cartella: sottocartelle + file (anteprima per immagini e

Usato in: public/share/index.php:98


vrw.php

vrw_base_url()

Prefisso URL della cartella del wizard (per i link fra gli step).

Ritorna: string

Usato in: platform/lib/vrw.php:48, platform/lib/vrw.php:51, public/wiz_foto/index.php:4

vrw_css_href()

URL del foglio di stile locale del wizard (theme.css).

Ritorna: string

Usato in: public/wiz_foto/export_staging_csv.php:93, public/wiz_foto/heic_to_jpg.php:249, public/wiz_foto/import.php:288, public/wiz_foto/index.php:23, public/wiz_foto/nextcloud_import.php:112, public/wiz_foto/unzip_amazon.php:257, public/wiz_foto/upload_to_staging.php:65

vrw_mkdir(string $dir)

Crea una cartella (se manca) con i permessi collaborativi del wizard.

Usato in: public/wiz_foto/unzip_amazon.php:10, public/wiz_foto/unzip_amazon.php:115, public/wiz_foto/unzip_amazon.php:154

vrw_is_jpeg(string $p)

Vero se il file e' un JPEG (per estensione).

Usato in: platform/lib/vrw.php:115, public/wiz_foto/nextcloud_import.php:33, public/wiz_foto/nextcloud_import.php:63

vrw_is_heic(string $p)

Vero se il file e' un HEIC/HEIF (per estensione).

Usato in: public/wiz_foto/heic_to_jpg.php:158, public/wiz_foto/nextcloud_import.php:34, public/wiz_foto/nextcloud_import.php:64

vrw_heic_to_jpg(string $src, string $dst)

Converte un HEIC in JPG col primo strumento disponibile

parametrodescrizione
string $srcfile HEIC
string $dstjpg di destinazione (temporaneo)

Ritorna: bool

Usato in: public/wiz_foto/nextcloud_import.php:79

vrw_exif_date(string $file)

Data/ora dagli EXIF del JPEG (DateTimeOriginal/Digitized/DateTime), o null.

Usato in: platform/lib/vrw.php:197

vrw_filename_date(string $path)

Data/ora dal nome file (IMG_AAAAMMGG_HHMMSS, AAAA-MM-GG_HH-MM-SS, ...), o null.

Usato in: platform/lib/vrw.php:198

vrw_filename_year_hint(string $path)

Solo l'anno dal nome (fallback per la cartella indecise), o null.

Usato in: platform/lib/vrw.php:204

vrw_safe_target_path(string $dstDir, string $baseName)

Percorso di destinazione senza sovrascrivere (_001, _002, ...).

Usato in: platform/lib/vrw.php:218

vrw_is_duplicate_by_size(string $dstPath, int $srcSize)

Doppione se esiste gia' un file di pari dimensione nel punto di destinazione.

Usato in: platform/lib/vrw.php:212, platform/lib/vrw.php:235

vrw_ingest(string $src, string $label, string $destBase, string $mode, bool $dryRun, bool $useMtime)

Importa UN file in leNostre. Ritorna l'esito (senza scrivere se $dryRun).

parametrodescrizione
string $srcfile sorgente (jpeg)
string $labeletichetta per la cartella "indecise" (es. account)
string $destBaseradice leNostre
string $mode'copy' (default sensato per Nextcloud) o 'move'
bool $dryRunsolo anteprima, non tocca il disco
bool $useMtimeusa la mtime se mancano EXIF e data-nel-nome

Ritorna: array - ['status'=>imported|indecise|skipped|error,'dry'=>bool,'dst'=>..,'source'=>..,'msg'=>..]

Usato in: public/wiz_foto/nextcloud_import.php:86

vrw_fix_file(string $file)

Applica al file i permessi collaborativi del wizard.

Usato in: public/wiz_foto/unzip_amazon.php:173

vrw_fix_dir(string $dir)

Applica alla cartella i permessi collaborativi del wizard.

Usato in: _(nessun uso trovato nel lab)_

vrw_pecore_overlay(string $title, array $doneButtons, string $movie = '/vittrosviaggi_shared/movie/intervallo/intervallo_pecore.mp4')

Overlay "intervallo pecore" + barra di avanzamento: fonte UNICA per

parametrodescrizione
string $titletitolo mostrato sull'overlay
array $doneButtonsbottoni di fine lavoro ([label,href]; href '#stay' = resta)
string $movievideo di attesa (default: intervallo pecore in shared)

Ritorna: void

Usato in: public/wiz_foto/heic_to_jpg.php:333, public/wiz_foto/import.php:375, public/wiz_foto/unzip_amazon.php:344