$phy_category['id'], 'virt_category_id' => $cat['id'], // 'updated' => date('Y-m-d H:i:s'), ); single_insert(PHY2VIRT_CATEGORIES_TABLE, $insert); return $cat; } function physical2virtual_convert() { global $conf; $options=array(); if (isset($conf['physical2virtual']['unlock_virtual']) and $conf['physical2virtual']['unlock_virtual']) $options['visible'] = true; $options['inherit'] = $conf['physical2virtual']['inherit']; // Remove virtual without physical $query = ' SELECT virt_category_id FROM '.PHY2VIRT_CATEGORIES_TABLE.' WHERE phy_category_id NOT IN ( SELECT cat.id FROM '.CATEGORIES_TABLE.' cat WHERE cat.dir IS NOT NULL ) ;'; $category_ids = array_from_query($query, 'virt_category_id'); delete_categories($category_ids); $query = ' DELETE FROM '.PHY2VIRT_CATEGORIES_TABLE.' WHERE phy_category_id NOT IN ( SELECT cat.id FROM '.CATEGORIES_TABLE.' cat WHERE cat.dir IS NOT NULL ) ;'; pwg_query($query); $query = ' SELECT id, name, id_uppercat FROM '.CATEGORIES_TABLE.' WHERE dir IS NOT NULL ;'; // get physical $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { $parent = isset($conf['physical2virtual']['parent_cat']) ? $conf['physical2virtual']['parent_cat'] : null; if ($conf['physical2virtual']['store_structure']) { // get array of physical parents $cat_info = get_cat_info($row['id']); $uppers = $cat_info['upper_names']; array_pop($uppers); // remove themself foreach ($uppers as $upper) { $parent = find_or_create_virtual_category($upper, $parent, $options)['id']; } } $virt_cat = find_or_create_virtual_category($row, $parent, $options); if (isset($conf['physical2virtual']['lock_physical']) and $conf['physical2virtual']['lock_physical']) { $cat_info = get_cat_info($row['id']); if ($cat_info['visible'] == true) { set_cat_visible(array($row['id']), false); } } if (isset($conf['physical2virtual']['private_physical']) and $conf['physical2virtual']['private_physical']) { set_cat_status(array($row['id']), 'private'); } $query = ' INSERT IGNORE INTO '.IMAGE_CATEGORY_TABLE.' (category_id, image_id) SELECT '.$virt_cat['id'].', image_id FROM '.IMAGE_CATEGORY_TABLE.' WHERE category_id = '.$row['id'].' ;'; pwg_query($query); $query = ' UPDATE '.PHY2VIRT_CATEGORIES_TABLE.' SET updated = NOW() WHERE virt_category_id = '.$virt_cat['id'].' ;'; pwg_query($query); if (!(isset($virt_cat['representative_picture_id']) and $virt_cat['representative_picture_id'])) { set_random_representant(array($virt_cat['id'])); } } } function physical2virtual_admin_menu($menu) { $menu[] = array( 'NAME' => 'physical2virtual', 'URL' => PHYSICAL2VIRTUAL_ADMIN, ); return $menu; } ?>