# Or read it online: http://www.gnu.org/licenses/licenses.html#GPL
#
#-------------------------------------------------------------------------
#END_LICENSE
if (!isset($gCms)) {
    exit;
}
if (!$this->CheckPermission('Modify Modules')) {
    exit;
}
$_SESSION[$this->GetName()]['active_tab'] = 'modules';
if (!isset($params['name'])) {
    $this->Redirect($id, 'defaultadmin');
}
$prefix = trim($params['name']);
$repmodules = modulerep_client::get_repository_modules($prefix, FALSE, TRUE);
if (!is_array($repmodules) || $repmodules[0] === FALSE) {
    // for some reason, nothing matched.
    $this->Redirect($id, 'defaultadmin');
}
$repmodules = $repmodules[1];
$instmodules = '';
$result = modmgr_utils::get_installed_modules();
if (!$result[0]) {
    $this->_DisplayErrorPage($id, $params, $returnid, $result[1]);
    return;
}
$instmodules = $result[1];
$caninstall = true;
if (FALSE == can_admin_upload()) {
    echo '<div class="pageerrorcontainer"><div class="pageoverflow"><p class="pageerror">' . $this->Lang('error_permissions') . '</p></div></div>';
if (FALSE == can_admin_upload()) {
    echo '<div class="pageerrorcontainer"><div class="pageoverflow"><p class="pageerror">' . $this->Lang('error_permissions') . '</p></div></div>';
    $caninstall = false;
}
$curletter = 'A';
if (isset($params['curletter'])) {
    $curletter = $params['curletter'];
    $_SESSION['mm_curletter'] = $curletter;
} else {
    if (isset($_SESSION['mm_curletter'])) {
        $curletter = $_SESSION['mm_curletter'];
    }
}
// get the modules available in the repository
$repmodules = '';
$result = modulerep_client::get_repository_modules($curletter);
if (!$result[0]) {
    $this->_DisplayErrorPage($id, $params, $returnid, $result[1]);
    return;
}
$repmodules = $result[1];
// get the modules that are already installed
$instmodules = '';
$result = modmgr_utils::get_installed_modules();
if (!$result[0]) {
    $this->_DisplayErrorPage($id, $params, $returnid, $result[1]);
    return;
}
$instmodules = $result[1];
// build a letters list
$letters = array();
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Or read it online: http://www.gnu.org/licenses/licenses.html#GPL
#
#-------------------------------------------------------------------------
#END_LICENSE
if (!isset($gCms)) {
    exit;
}
$active_tab = 'modules';
if (isset($params['active_tab'])) {
    $active_tab = $params['active_tab'];
}
$_SESSION[$this->GetName()]['active_tab'] = $active_tab;
$allmods = modulerep_client::get_repository_modules('', 0);
$deps = array(array('name' => $params['name'], 'version' => $params['version'], 'filename' => $params['filename'], 'by' => '', 'size' => $params['size']));
if (!$allmods[0]) {
    $this->_DisplayErrorPage($id, $params, $returnid, $allmods[1]);
    return;
}
$ret = modmgr_utils::add_dependencies_to_list($params['filename'], $allmods, $deps);
if (!$ret[0]) {
    $this->_DisplayErrorPage($id, $params, $returnid, $ret[1]);
    return;
}
// de-dupe list
$deps = modmgr_utils::remove_duplicate_dependencies($deps);
modmgr_utils::find_unfulfilled_dependencies($deps);
$tmp = array();
foreach ($deps as $onedep) {