GlisWeb framework
_page.utils.php
Vai alla documentazione di questo file.
1 <?php
2 
3  // SDF funzione per la duplicazione di una pagina
4  function duplicaPagina( $oldPgId, $newSiteId, $newParentId = NULL, $recursive ){
5 
6  global $cf;
7 
8  $newPgId = 0; // inizializzo l'id della nuova pagina
9 
10  // ID della nuova pagina
11  $newPgId = mysqlDuplicateRow( $cf['mysql']['connection'], 'pagine', $oldPgId, NULL, array('id_sito' => $newSiteId, 'id_genitore' => $newParentId) );
12 
13  // se ho il nuovo id pagina procedo con la duplicazione degli elementi collegati (contenuti, immagini, ...)
14  if ( is_int($newPgId) ) {
15 
16  // duplicazione contenuti
17  $oldConts = mysqlQuery( $cf['mysql']['connection'], 'SELECT * FROM contenuti WHERE id_pagina = ?', array( array( 's' => $oldPgId ) ) );
18  foreach( $oldConts as $cont ) {
19  $dup = mysqlDuplicateRow( $cf['mysql']['connection'], 'contenuti', $cont['id'], NULL, array( 'id_pagina' => $newPgId ) );
20  }
21 
22  // duplicazione immagini
23  $oldImgs = mysqlQuery( $cf['mysql']['connection'], 'SELECT * FROM immagini WHERE id_pagina = ?', array( array( 's' => $oldPgId ) ) );
24  foreach( $oldImgs as $img ) {
25  $dup = mysqlDuplicateRow( $cf['mysql']['connection'], 'immagini', $img['id'], NULL, array( 'id_pagina' => $newPgId ) );
26  }
27 
28  // duplicazione file
29  $oldFiles = mysqlQuery( $cf['mysql']['connection'], 'SELECT * FROM file WHERE id_pagina = ?', array( array( 's' => $oldPgId ) ) );
30  foreach( $oldFiles as $file ) {
31  $dup = mysqlDuplicateRow( $cf['mysql']['connection'], 'file', $file['id'], NULL, array( 'id_pagina' => $newPgId ) );
32  }
33 
34  // duplicazione video
35  $oldVideos = mysqlQuery( $cf['mysql']['connection'], 'SELECT * FROM video WHERE id_pagina = ?', array( array( 's' => $oldPgId ) ) );
36  foreach( $oldVideos as $video ) {
37  $dup = mysqlDuplicateRow( $cf['mysql']['connection'], 'video', $video['id'], NULL, array( 'id_pagina' => $newPgId ) );
38  }
39 
40  // duplicazione metadati
41  $oldMetas = mysqlQuery( $cf['mysql']['connection'], 'SELECT * FROM metadati WHERE id_pagina = ?', array( array( 's' => $oldPgId ) ) );
42  foreach( $oldMetas as $meta ) {
43  $dup = mysqlDuplicateRow( $cf['mysql']['connection'], 'metadati', $meta['id'], NULL, array( 'id_pagina' => $newPgId ) );
44  }
45 
46  // duplicazione associazione pagina menu
47  $oldPgMns = mysqlQuery( $cf['mysql']['connection'], 'SELECT * FROM pagine_menu WHERE id_pagina = ?', array( array( 's' => $oldPgId ) ) );
48  foreach( $oldPgMns as $pgmn ) {
49  $dup = mysqlDuplicateRow( $cf['mysql']['connection'], 'pagine_menu', $pgmn['id'], NULL, array( 'id_pagina' => $newPgId ) );
50  }
51 
52  // duplicazione associazione pagina macro
53  $oldPgMcrs = mysqlQuery( $cf['mysql']['connection'], 'SELECT * FROM pagine_macro WHERE id_pagina = ?', array( array( 's' => $oldPgId ) ) );
54  foreach( $oldPgMcrs as $pgmcr ) {
55  $dup = mysqlDuplicateRow( $cf['mysql']['connection'], 'pagine_macro', $pgmcr['id'], NULL, array( 'id_pagina' => $newPgId ) );
56  }
57 
58 
59  // se viene richiesto di duplicare ricorsivamente la pagina...
60  if( $recursive == 1 ) {
61 
62  // verifico se ci sono pagine figlie
63  $childPgs = mysqlQuery( $cf['mysql']['connection'], 'SELECT * FROM pagine WHERE id_genitore = ?', array( array( 's' => $oldPgId ) ) );
64 
65  if( count( $childPgs ) > 0 ){
66 
67  // per ogni pagina figlia trovata...
68  foreach( $childPgs as $pg ) {
69 
70  // richiamo la duplicazione della pagina stessa e delle figlie
71  duplicaPagina( $pg['id'], $newSiteId, $newPgId, 1 );
72  }
73  }
74  }
75 
76  }
77 
78  return $newPgId;
79 
80  }
81 
82 ?>
duplicaPagina( $oldPgId, $newSiteId, $newParentId=NULL, $recursive)
Definition: _page.utils.php:4
mysqlQuery( $c, $q, $p=false, &$e=array())
$cf['ricerca']['template']
Definition: _030.common.php:7
$file
Definition: _osm.php:32
mysqlDuplicateRow( $c, $t, $o, $n=NULL, $x=array())