Exemple #1
0
 function copyFiles()
 {
     clearstatcache();
     $status =& DMStatus::getInstance();
     $root = JPATH_ROOT;
     $site = $root . DS . 'components' . DS . 'com_docman';
     $admin = $root . DS . 'administrator' . DS . 'components' . DS . 'com_docman';
     // dmdocuments
     $dmdoc = $root . DS . _DM_DEFAULT_DATA_FOLDER;
     @mkdir($dmdoc, 0755, true);
     @copy($admin . DS . 'htaccess.txt', $dmdoc . DS . '.htaccess');
     @copy($site . DS . 'index.html', $dmdoc . DS . 'index.html');
     if (!file_exists($dmdoc . DS . '.htaccess')) {
         $status->addMsg("Couldn't secure <strong>{$dmdoc}</strong>. Please create the folder yourself. Next copy {$admin}" . DS . "htaccess.txt to {$dmdoc}" . DS . ".htaccess");
     }
     $files = self::getFiles();
     foreach ($files as $src => $dest) {
         @mkdir(dirname($dest), 0755);
         @copy($src, $dest);
         if (!file_exists($dest)) {
             $status->addMsg("Couldn't copy the following file: <br /><strong>Source: </strong>{$src}<br /><strong>Destination</strong>{$dest}<br />");
         }
     }
     JFolder::copy(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'ext' . DS . 'plugins' . DS . 'editors-xtd' . DS . 'doclink' . DS, JPATH_ROOT . DS . 'plugins' . DS . 'editors-xtd' . DS . 'doclink');
 }
function com_install()
{
    global $install_type;
    // Joomla's archive handler eats a lot of memory
    if ((int) ini_get('memory_limit') < 24) {
        @ini_set('memory_limit', '24M');
    }
    $lang = JFactory::getLanguage();
    $lang->load('com_installer');
    $tasks = array('copyFiles', 'insertInDb', 'removeAdminMenuImages', 'setAdminMenuImages', 'cpanel', 'track');
    $status =& DMStatus::getInstance();
    $args = array();
    if ($install_type === 'update') {
        $args[] = true;
    }
    while ($status->get() && ($task = array_shift($tasks))) {
        call_user_func_array(array('DMInstallHelper', $task), $args);
    }
    echo '<ul>';
    foreach ($status->getMsgs() as $msg) {
        echo '<li>' . $msg . '</li>';
    }
    echo '</ul>';
    return $status->get();
}
function com_install()
{
    $tasks = array('logo', 'files', 'moduleDB', 'pluginDB', 'upgradeTables', 'removeAdminMenuImages', 'setAdminMenuImages', 'cpanel');
    $status =& DMStatus::getInstance();
    while ($status->get() && ($task = array_shift($tasks))) {
        call_user_func(array('DMInstallHelper', $task));
    }
    echo '<ul>';
    foreach ($status->getMsgs() as $msg) {
        echo '<li>' . $msg . '</li>';
    }
    echo '</ul>';
    return $status->get();
}
 function copyFiles($is_update = false)
 {
     clearstatcache();
     $status =& DMStatus::getInstance();
     $root = JPATH_ROOT;
     $site = $root . DS . 'components' . DS . 'com_docman';
     $admin = $root . DS . 'administrator' . DS . 'components' . DS . 'com_docman';
     // dmdocuments
     $dmdoc = $root . DS . _DM_DEFAULT_DATA_FOLDER;
     if (!is_dir($dmdoc) && !$is_update) {
         @mkdir($dmdoc, 0755, true);
         @copy($admin . DS . 'htaccess.txt', $dmdoc . DS . '.htaccess');
         @copy($site . DS . 'index.html', $dmdoc . DS . 'index.html');
         if (!file_exists($dmdoc . DS . '.htaccess')) {
             $status->addMsg("Couldn't secure <strong>{$dmdoc}</strong>. Please create the folder yourself. Next copy {$admin}" . DS . "htaccess.txt to {$dmdoc}" . DS . ".htaccess");
         }
     }
     $admin_path = JPATH_ROOT . '/administrator/components/com_docman';
     if (!$is_update) {
         if (!file_exists($admin_path . '/docman.config.defaults.php') || !JFile::copy($admin_path . '/docman.config.defaults.php', $admin_path . '/docman.config.php')) {
             $status->addMsg('Cannot find default configuration file for DOCman. You need to save the configuration options yourself in the component.');
         }
     }
     // create the folders
     $folders = DMInstallHelper::getFolders();
     foreach ($folders as $folder) {
         if (!is_dir($folder)) {
             JFolder::create($folder);
         }
     }
     // plugins/docman is separate, because we don't want to delete on uninstall
     if (!is_dir(JPATH_ROOT . DS . 'plugins' . DS . 'docman')) {
         JFolder::create(JPATH_ROOT . DS . 'plugins' . DS . 'docman');
     }
     //create the files
     $files = DMInstallHelper::getFiles();
     foreach ($files as $src => $dest) {
         JFile::copy($src, $dest);
         if (!file_exists($dest)) {
             $status->addMsg("Couldn't copy the following file: <br /><strong>Source: </strong>{$src}<br /><strong>Destination</strong>{$dest}<br />");
         }
     }
     //create the folder of plugins editors-xtd doclink
     JFolder::copy(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'ext' . DS . 'plugins' . DS . 'editors-xtd' . DS . 'doclink' . DS . 'images' . DS, JPATH_ROOT . DS . 'plugins' . DS . 'editors-xtd' . DS . 'doclink' . DS . 'images', '', true);
     JFolder::copy(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'ext' . DS . 'plugins' . DS . 'editors-xtd' . DS . 'doclink' . DS . 'lang' . DS, JPATH_ROOT . DS . 'plugins' . DS . 'editors-xtd' . DS . 'doclink' . DS . 'lang', '', true);
     JFolder::copy(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'ext' . DS . 'plugins' . DS . 'editors-xtd' . DS . 'doclink' . DS . 'popups' . DS, JPATH_ROOT . DS . 'plugins' . DS . 'editors-xtd' . DS . 'doclink' . DS . 'popups', '', true);
 }
 /**
  * Upgrade tables from 1.3rc2/1.4beta2 style to 1.4rc1 style
  */
 function upgradeTables()
 {
     global $database;
     $status =& DMStatus::getInstance();
     $queries = array();
     $database->setQuery("SHOW INDEX FROM #__docman");
     $database->query();
     $num_keys = $database->getNumRows();
     switch ($num_keys) {
         case 1:
             // there's only a primary index, add some more
             $queries[] = "ALTER TABLE `#__docman` ADD INDEX `pub_appr_own_cat_name`  (`published`, `approved`, `dmowner`, `catid`, `dmname`(64))";
             $queries[] = "ALTER TABLE `#__docman` ADD INDEX `appr_pub_own_cat_date`  (`approved`, `published`, `dmowner`, `catid`, `dmdate_published`)";
             $queries[] = "ALTER TABLE `#__docman` ADD INDEX `own_pub_appr_cat_count` (`dmowner`, `published`, `approved`, `catid`, `dmcounter`)";
             // pass through (more can be added later on)
         // pass through (more can be added later on)
         default:
             break;
     }
     foreach ($queries as $query) {
         $database->setQuery($query);
         if (!$database->query()) {
             $status->addMsg('Error upgrading tables');
         }
     }
 }