installModulesPlugins($this);
if ($message) echo '
Installation of modules/plugins had errors:
'.$message;
}
clearstatcache();
if (@file_get_contents(_CMSAPI_LOCAL_DIRECTORY.'/cms_is_joomla.php')) include_once(JPATH_SITE.'/plugins/cmsapi/plgCmsapiLoad.php');
// Define CMS environment
if (!defined('_CMSAPI_ADMIN_SIDE')) define('_CMSAPI_ADMIN_SIDE', 1);
foreach (array('aliro','mambo','joomla') as $cmsapi_cms) @include(dirname(__FILE__)."/cms_is_$cmsapi_cms.php");
require(_CMSAPI_ABSOLUTE_PATH.'/components/com_glossary/glossary.autoload.php');
// End of CMS environment definition
$gconfig = cmsapiConfiguration::getInstance('com_glossary', true);
function com_install () {
// This function should work for any component without alteration
function makeMenuEntry ($database) {
if ('Aliro' == _CMSAPI_CMS_BASE) return;
$compname = 'Glossary';
$shortname = 'glossary';
$option = 'com_glossary';
$database->setQuery("SELECT MIN(id) FROM `#__components` WHERE `option` = '$option'");
$compnum = intval($database->loadResult());
$database->setQuery("SELECT count(*) FROM `#__menu` WHERE published > 0 AND link = 'index.php?option=$option'");
if (!$database->loadResult()) {
$database->setQuery("SELECT MAX(ordering) FROM `#__menu`");
$ordering = intval($database->loadResult() + 1);
if ('Joomla' == _CMSAPI_CMS_BASE) $database->setQuery("INSERT INTO `#__menu` "
." (`id`, `menutype`, `name`, `alias`, `link`, `type`, `published`, `parent`, `componentid`, `sublevel`, `ordering`, `checked_out`, `checked_out_time`, `pollid`, `browserNav`, `access`, `utaccess`, `params`) "
." VALUES (NULL , 'mainmenu', '$compname', '$shortname', 'index.php?option=$option', 'components', '1', '0', $compnum, '0', $ordering, '0', '0000-00-00 00:00:00', '0', '0', '0', '0', '')");
else $database->setQuery("INSERT INTO `#__menu` "
." (`id`, `menutype`, `name`, `link`, `type`, `published`, `parent`, `componentid`, `sublevel`, `ordering`, `checked_out`, `checked_out_time`, `pollid`, `browserNav`, `access`, `utaccess`, `params`) "
." VALUES (NULL , 'mainmenu', '$compname', 'index.php?option=$option]', 'components', '1', '0', $compnum, '0', $ordering, '0', '0000-00-00 00:00:00', '0', '0', '0', '0', '')");
$database->query();
}
else {
$database->setQuery("UPDATE #__menu SET componentid = $compnum WHERE link LIKE 'index.php?option=$option%'");
$database->query();
}
}
function updateDB ($database) {
$database->setQuery ("SHOW COLUMNS FROM #__glossaries");
$fields = $database->loadObjectList();
$fieldnames = array();
foreach ($fields as $field) $fieldnames[] = $field->Field;
if (!in_array('language', $fieldnames)) {
$sql = 'ALTER TABLE `#__glossaries`'
.' ADD `language` varchar(25) NOT NULL AFTER `description`;';
$database->setQuery($sql);
$database->query();
}
}
$interface = cmsapiInterface::getInstance();
$database = $interface->getDB();
updateDB($database);
makeMenuEntry($database);
// This code is application specific
glossaryEntry::setFirstWords(5000);
$database->setQuery("SELECT COUNT(*) FROM #__glossaries");
if (!$database->loadResult()) {
$database->setQuery("SELECT id, name, description, published FROM #__categories WHERE section = 'com_glossary'");
$categories = $database->loadObjectList();
if ($categories) {
foreach ($categories as $category) {
$database->setQuery("INSERT INTO #__glossaries (id, name, description, published) VALUES ('$category->id', '$category->name', '$category->description', $category->published)");
$database->query();
}
}
else {
$database->setQuery("INSERT INTO #__glossaries (name, description, published) VALUES ('Glossary', 'Glossary of terms used on this site', 1)");
$database->query();
}
}
}