Finalmente ho ottenuto due risultati, riesco a caricare i file e cartelle senza perdere quelli presenti e riesco a far eseguire lo script, questo solo in parte. Mi popola il db ma non mi crea la cartella
defined('_JEXEC') or die;
/**
* Installs some files that the installer does not move.
*
* @since 1.0
*/
class pkg_RubricaInstallerScript
{
/**
* Copying files
*
* @param string $type Installation type
* @param JInstallerAdapterComponent $parent Installation adapter
*
* @return bool False if something happens
*/
public function postflight($type, $parent)
{
// Create the rubrica content type object.
$db = JFactory::getDbo();
$rubrica = new stdClass();
$rubrica->greeting = 'Rubrica';
$rubrica->tables = '{"contatti": "Contatti"}';
$rubrica->modules = '{"modules_depselect": "modules/depselect/depselect.php"}';
$rubrica->languages = '{"it": "Italiano"}';
// Set the object into the content types table.
$rubrica_Inserted = $db->insertObject('#__datagrill', $rubrica);
$lastid=LAST_INSERT_ID();
$newappPath=JPATH_COMPONENT_SITE.'/apps/'.urlencode($lastid).'_'.urlencode($greeting);
if (!file_exists($newappPath)) {
mkdir($newappPath, 0755, true);
}
$parent->getParent()->setRedirectURL(JRoute::_('index.php?option=com_datagrill&view=installation', false));
return true;
}
}
Ho dovuto agire da package suddividendo le azioni di caricare file e aggiornare db da file script
però adesso si blocca su questa variabile che dice non è definita
$lastid=LAST_INSERT_ID();
Serve per ottenere il nome della cartella contenente l'applicazione, nello script cerco di creare direttamente la cartella, però poi dovrò modificare perché in pratica la cartella è stata già caricata e quindi dovrò solo rinominarla.
Come ottengo l'ultimo id inserito nella tabella?
Grazie per la pazienza di chi mi sta seguendo