14 if( isset(
$ct[
'page'][
'metadati'][
'id_categoria_prodotti'] ) && ! empty(
$ct[
'page'][
'metadati'][
'id_categoria_prodotti'] ) ) {
18 #1 array(
's' =>
$ct[
'page'][
'metadati'][
'id_categoria_prodotti'] ),
19 #1 array(
's' =>
$cf[
'localization'][
'language'][
'id'] )
20 array(
's' =>
$cf[
'localization'][
'language'][
'id'] ),
21 array(
's' =>
$ct[
'page'][
'metadati'][
'id_categoria_prodotti'] )
27 $order = $orders = array();
30 if( empty( $orders ) ) {
31 $orders = array(
'prodotti_categorie.ordine' =>
'ASC' );
43 if( isset(
$_SESSION[
'__view__'][
'__pages__'][
$ct[
'page'][
'id'] ][
'__filters__'][
'__inclusivo__'] ) ) {
50 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'__inclusivo__'] ) ) {
52 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] ) && ! empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] ) ) {
53 if( ! isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] ) || empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] ) ) {
54 $_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] =
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'];
58 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] ) && ! empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] ) ) {
59 if( ! isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] ) || empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] ) ) {
60 $_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] =
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'];
64 if( ! empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] ) && ! empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] ) ) {
65 $filters = array(
'( ( larghezza_prodotto <= ? AND lunghezza_prodotto <= ? ) OR ( larghezza_prodotto <= ? AND lunghezza_prodotto <= ? ) )' );
66 $params[] = array(
's' =>
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] );
67 $params[] = array(
's' =>
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] );
68 $params[] = array(
's' =>
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] );
69 $params[] = array(
's' =>
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] );
70 $orders = array(
'somma_dimensioni' =>
'DESC' );
76 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] ) ) {
77 if( ! empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] ) ) {
78 $filters[] =
' larghezza_prodotto <= ? ';
79 $params[] = array(
's' =>
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'larghezza_max'] );
84 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] ) ) {
85 if( ! empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] ) ) {
86 $filters[] =
' lunghezza_prodotto <= ? ';
87 $params[] = array(
's' =>
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'lunghezza_max'] );
96 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'marchio'] ) ) {
98 $marchi_richiesti = array();
99 foreach(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'marchio'] as $idmarchio => $marchio ) {
101 $marchi_richiesti[] = $idmarchio;
105 if(count($marchi_richiesti)) {
107 foreach( $marchi_richiesti as $marchio_richiesto ) {
108 $cond[] =
' prodotti.id_marchio = ? ';
109 $params[] = array(
's' => $marchio_richiesto );
112 $filters[] =
' (' . implode(
' OR ', $cond ) .
') ';
117 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'taglia'] ) ) {
118 $taglie_richieste = array();
119 foreach(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'taglia'] as $idtaglia => $taglia ) {
121 $taglie_richieste[] = $idtaglia;
125 if(count($taglie_richieste)) {
127 foreach( $taglie_richieste as $taglia_richiesta ) {
128 $cond[] =
' articoli.id_taglia = ? ';
129 $params[] = array(
's' => $taglia_richiesta );
132 $filters[] =
' (SELECT count(*) as numArt FROM articoli where id_prodotto = prodotti.id AND (' . implode(
' OR ', $cond ) .
'))';
138 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'categoria'] ) ) {
139 $categorie_richieste = array();
140 foreach(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__filters__'][
'categoria'] as $idcategoria => $categoria ) {
141 if($categoria == 1) {
142 $categorie_richieste[] = $idcategoria;
146 if(count($categorie_richieste)) {
148 foreach( $categorie_richieste as $categoria_richiesta ) {
149 $cond[] =
' prodotti_categorie.id_categoria = ? ';
150 $params[] = array(
's' => $categoria_richiesta );
152 $filters[] =
' (' . implode(
' OR ', $cond ) .
') ';
157 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__search__'] ) ) {
158 if( ! empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__search__'] ) ) {
159 foreach( explode(
' ',
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__search__'] ) as $tks ) {
162 foreach( array(
'prodotti.id',
'contenuti.title',
'contenuti.h1',
'contenuti.h2',
'contenuti.abstract',
'contenuti.testo' ) as $field ) {
163 $cond[] = $field .
' LIKE ?';
164 $params[] = array(
's' => $like );
166 $filters[] =
' (' . implode(
' OR ', $cond ) .
') ';
172 if( isset(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__sort__'][
'prezzo'] ) ) {
173 if( ! empty(
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__sort__'][
'prezzo'] ) ) {
174 $orders[
'prezzi.prezzo'] =
$_SESSION[
'__view__'][
'__pages__'][ $ct[
'page'][
'id'] ][
'__sort__'][
'prezzo'];
182 foreach( $orders as $fld => $ord ) {
183 $order[] = $fld .
' ' . $ord;
187 $q =
'SELECT SQL_CALC_FOUND_ROWS prodotti.id, contenuti.title, contenuti.h1, contenuti.h2, contenuti.cappello, contenuti.abstract, ' 188 .
'immagini.path AS immagine, contenuti_immagine.cappello AS didascalia, ' 189 .
'( prodotti.larghezza_prodotto + prodotti.lunghezza_prodotto ) AS somma_dimensioni, ' 190 .
'concat( "categorie_prodotti_'.$ct[
'page'][
'metadati'][
'id_categoria_prodotti'].
'_prodotti_", prodotti.id ) AS id_pagina, ' 191 .
'prodotti.id_marchio, marchi.nome as marchio, ' 192 .
'mPiuVenduti.testo AS piu_venduti ' 194 #1 .
'INNER JOIN prodotti_categorie ON ( prodotti_categorie.id_prodotto = prodotti.id AND prodotti_categorie.id_categoria = ? ) ' 195 .
'INNER JOIN prodotti_categorie ON prodotti_categorie.id_prodotto = prodotti.id ' 196 .
'INNER JOIN contenuti ON ( contenuti.id_prodotto = prodotti.id AND contenuti.id_lingua = ? ) ' 197 .
'INNER JOIN tipologie_pubblicazione ON tipologie_pubblicazione.id = prodotti.id_tipologia_pubblicazione ' 198 #2 TODO il fatto che siano o meno ammissibili prodotti senza prezzo dovrebbe essere un
'opzione 199 #2 .'INNER JOIN prezzi ON prezzi.id_prodotto = prodotti.id
' 200 #2 .'INNER JOIN iva ON iva.id = prezzi.id_iva
' 201 .'LEFT JOIN prezzi ON prezzi.id_prodotto = prodotti.id
' 202 .'LEFT JOIN iva ON iva.id = prezzi.id_iva
' 203 .'LEFT JOIN immagini ON ( immagini.id_prodotto = prodotti.id AND immagini.id_ruolo = 4 )
' 204 .'LEFT JOIN contenuti AS contenuti_immagine ON ( contenuti_immagine.id_immagine = immagini.id AND contenuti.id_lingua = contenuti.id_lingua )
' 205 .'LEFT JOIN metadati AS mPiuVenduti ON ( mPiuVenduti.id_prodotto = prodotti.id AND mPiuVenduti.nome =
"piu_venduti" )
' 206 .'LEFT JOIN marchi ON (prodotti.id_marchio = marchi.id )
' // SDF 207 .'LEFT JOIN articoli ON prodotti.id = articoli.id_prodotto
' // SDF 208 .'WHERE categorie_prodotti_path_check( prodotti_categorie.id_categoria, ? ) = 1 AND tipologie_pubblicazione.se_pubblicato = 1
' 209 // .'AND articoli.id_taglia IS NOT NULL
' // SDF 210 // .'AND prodotti.se_disponibile = 1
' // SDF 211 .'AND (SELECT count(*) FROM immagini where id_articolo IN (SELECT articoli.id FROM articoli WHERE id_prodotto = prodotti.id))
' // SDF 212 // .'OR ( SELECT count(*) FROM immagini where id_prodotto = prodotti.id ) > 0 )
' // SDF 213 .( ( count( $filters ) ) ? 'AND (
' : NULL ) . implode( $conj, $filters ) . ( ( count( $filters ) ) ? ')
' : NULL ) 214 .'GROUP BY prodotti.id
' 215 .'ORDER BY
' . implode( ',
', $order ) . ' ' 219 // SDF query per il conteggio del numero totale di prodotti (stessi parametri della q sopra ma senza paginazione) 220 $qTot = 'SELECT count(prodotti.id)
' 222 .'INNER JOIN prodotti_categorie ON prodotti_categorie.id_prodotto = prodotti.id
' 223 .'INNER JOIN contenuti ON ( contenuti.id_prodotto = prodotti.id AND contenuti.id_lingua = ? )
' 224 .'INNER JOIN tipologie_pubblicazione ON tipologie_pubblicazione.id = prodotti.id_tipologia_pubblicazione
' 225 .'LEFT JOIN prezzi ON prezzi.id_prodotto = prodotti.id
' 226 .'LEFT JOIN iva ON iva.id = prezzi.id_iva
' 227 .'LEFT JOIN immagini ON ( immagini.id_prodotto = prodotti.id AND immagini.id_ruolo = 4 )
' 228 .'LEFT JOIN contenuti AS contenuti_immagine ON ( contenuti_immagine.id_immagine = immagini.id AND contenuti.id_lingua = contenuti.id_lingua )
' 229 .'LEFT JOIN metadati AS mPiuVenduti ON ( mPiuVenduti.id_prodotto = prodotti.id AND mPiuVenduti.nome =
"piu_venduti" )
' 230 .'LEFT JOIN marchi ON (prodotti.id_marchio = marchi.id )
' // SDF 231 .'LEFT JOIN articoli ON prodotti.id = articoli.id_prodotto
' // SDF 232 .'WHERE categorie_prodotti_path_check( prodotti_categorie.id_categoria, ? ) = 1 AND tipologie_pubblicazione.se_pubblicato = 1
' 233 // .'AND articoli.id_taglia IS NOT NULL
' // SDF 234 // .'AND prodotti.se_disponibile = 1
' // SDF 235 .'AND (SELECT count(*) FROM immagini where id_articolo IN (SELECT articoli.id FROM articoli WHERE id_prodotto = prodotti.id))
' // SDF 236 .( ( count( $filters ) ) ? 'AND (
' : NULL ) . implode( $conj, $filters ) . ( ( count( $filters ) ) ? ')
' : NULL ) 237 .'GROUP BY prodotti.id
'; 240 // SDF leggo il numero totale di prodotti 241 $totpg = count( mysqlQuery( $cf['mysql
']['connection
'], $qTot, $params ) ); 244 // aggiunta della paginazione 245 $params[] = array( 's
' => $pg ); 246 $params[] = array( 's
' => $perpg ); 249 // SDF aggiunto numero massimo pagine 250 $_REQUEST['__maxpg__
'] = floor( $totpg / $perpg ); 253 // selezione dei prodotti 254 # $ct['page
']['contents
']['prodotti
'] = mysqlCachedQuery( 255 # $cf['memcache
']['connection
'], 256 $ct['page
']['contents
']['prodotti
'] = mysqlQuery( 257 $cf['mysql
']['connection
'], 262 // echo "pg: " . $pg; 263 // echo "record con limit: " . count($ct['page
']['contents
']['prodotti
']) . PHP_EOL; 264 // echo "record totali" . $totpg; 268 // ciclo su $ct['page
']['contents
']['prodotti
'] per creare il sotto array di articoli 269 // $ct['page
']['contents
']['prodotti
'][id_prodotto]['contents
']['articoli
'] 271 // SDF leggo il primo articolo (per l'immagine prodotto) e le info sul prezzo
272 foreach( $ct[
'page'][
'contents'][
'prodotti'] as $key => $prod ) {
275 $cf[
'mysql'][
'connection'],
276 'SELECT nome, path, orientamento FROM immagini WHERE id_articolo = ( SELECT id FROM articoli WHERE id_prodotto = ? ORDER BY id LIMIT 1 ) ORDER BY ordine LIMIT 1' 279 array(
's' => $prod[
'id'] )
283 $ct[
'page'][
'contents'][
'prodotti'][ $key ][
'immagine_principale'] = $immagine[0];
287 $cf[
'mysql'][
'connection'],
288 'SELECT * from prezzi_view WHERE id_prodotto = ?' 291 array(
's' => $prod[
'id'] )
295 foreach( $prezzi as $prezzo ) {
296 $ct[
'page'][
'contents'][
'prodotti'][ $key ][
'prezzi'][ $prezzo[
'listino'] ] = $prezzo;
299 $variazione_prezzo =
variazionePrezzo(
$cf[
'mysql'][
'connection'], $prezzo[
'id_listino'], $prezzo[
'id_prodotto'], $prezzo[
'prezzo_lordo'] );
300 $ct[
'page'][
'contents'][
'prodotti'][ $key ][
'prezzi'][ $prezzo[
'listino'] ][
'tipo_sconto'] = $variazione_prezzo[
'tipoSconto'];
301 $ct[
'page'][
'contents'][
'prodotti'][ $key ][
'prezzi'][ $prezzo[
'listino'] ][
'sconto'] = $variazione_prezzo[
'sconto'];
302 $ct[
'page'][
'contents'][
'prodotti'][ $key ][
'prezzi'][ $prezzo[
'listino'] ][
'sconto_su'] = $variazione_prezzo[
'sconto_su'];
303 $ct[
'page'][
'contents'][
'prodotti'][ $key ][
'prezzi'][ $prezzo[
'listino'] ][
'importo_sconto'] = $variazione_prezzo[
'importoSconto'];
304 $ct[
'page'][
'contents'][
'prodotti'][ $key ][
'prezzi'][ $prezzo[
'listino'] ][
'prezzo_scontato'] = $variazione_prezzo[
'prezzoScontato'];
312 $cf[
'mysql'][
'connection'],
313 'SELECT id, nome FROM categorie_prodotti ' 314 .
'WHERE (id = ? OR id_genitore = ?) AND id_tipologia_pubblicazione = 2 ORDER BY categorie_prodotti.nome' 317 array(
's' => $ct[
'page'][
'metadati'][
'id_categoria_prodotti'] ),
318 array(
's' => $ct[
'page'][
'metadati'][
'id_categoria_prodotti'] )
325 $cf[
'mysql'][
'connection'],
326 'SELECT DISTINCT marchi.id, marchi.nome FROM marchi INNER JOIN prodotti ON marchi.id = prodotti.id_marchio INNER JOIN prodotti_categorie ' 327 .
'ON prodotti.id = prodotti_categorie.id_prodotto INNER JOIN categorie_prodotti ON prodotti_categorie.id_categoria = categorie_prodotti.id ' 328 .
'WHERE categorie_prodotti.id = ? OR categorie_prodotti.id_genitore = ? ORDER BY marchi.nome' 331 array(
's' => $ct[
'page'][
'metadati'][
'id_categoria_prodotti'] ),
332 array(
's' => $ct[
'page'][
'metadati'][
'id_categoria_prodotti'] )
338 $cf[
'mysql'][
'connection'],
339 'SELECT DISTINCT taglie.id, taglie.it as nome FROM taglie INNER JOIN articoli ON taglie.id = articoli.id_taglia ' 340 .
'INNER JOIN prodotti ON articoli.id_prodotto = prodotti.id INNER JOIN prodotti_categorie ' 341 .
'ON prodotti.id = prodotti_categorie.id_prodotto INNER JOIN categorie_prodotti ON prodotti_categorie.id_categoria = categorie_prodotti.id ' 342 .
'WHERE categorie_prodotti.id = ? OR categorie_prodotti.id_genitore = ? ORDER BY taglie.id' 345 array(
's' => $ct[
'page'][
'metadati'][
'id_categoria_prodotti'] ),
346 array(
's' => $ct[
'page'][
'metadati'][
'id_categoria_prodotti'] )
if(isset( $cx['contatti'])) if(isset( $cf['site']['contatti'])) $ct['contatti']
$cf['ricerca']['template']
if(isset( $_REQUEST['amazonCheckoutSessionId'])) $_SESSION['carrello']
$_REQUEST['__view__'][ $ct['view']['id']]['__restrict__']['id_progetto']['EQ']