setQuery( "CREATE TABLE IF NOT EXISTS `#__jf_tableinfo` ( `id` int(11) NOT NULL auto_increment, `joomlatablename` varchar(100) NOT NULL default '', `tablepkID` varchar(100) NOT NULL default '', PRIMARY KEY (`id`)) TYPE=MyISAM"); $db->query(); // clear out existing data $db->setQuery( "DELETE FROM `#__jf_tableinfo`"); $db->query(); $joomfishManager =& JoomFishManager::getInstance(); $contentElements = $joomfishManager->getContentElements(true); $sql = "INSERT INTO `#__jf_tableinfo` (joomlatablename,tablepkID) VALUES "; $firstTime = true; foreach ($contentElements as $contentElement){ $tablename = $contentElement->getTableName(); $refId = $contentElement->getReferenceID(); $sql .= $firstTime?"":","; $sql .= " ('".$tablename."', '".$refId."')"; $firstTime = false; } $db->setQuery( $sql); $db->query(); } /** * Testing state of the system bot * */ function _testSystemBotState() { $db =& JFactory::getDBO(); $botState = false; $db->setQuery( "SELECT * FROM #__plugins WHERE element='jfdatabase'"); $db->query(); $plugin = $db->loadObject(); if ($plugin != null && $plugin->published == "1") { $botState = $plugin->id; } return $botState; } function _checkDBCacheStructure (){ JCacheStorageJfdb::setupDB(); $db = & JFactory::getDBO(); $sql = "SHOW COLUMNS FROM #__dbcache LIKE 'value'"; $db->setQuery($sql); $data = $db->loadObject(); if (isset($data) && strtolower($data->Type)!=="mediumblob"){ $sql = "DROP TABLE #__dbcache"; $db->setQuery($sql); $db->query(); JCacheStorageJfdb::setupDB(); } } function _checkDBStructure (){ $db = & JFactory::getDBO(); $sql = "show index from #__jf_content";// where key_name = 'jfContent'"; $db->setQuery($sql); $data = $db->loadObjectList("Key_name"); if (!isset($data['jfContent'])){ $sql = "ALTER TABLE `#__jf_content` ADD INDEX `combo` ( `reference_id` , `reference_field` , `reference_table` )" ; $db->setQuery($sql); $db->query(); $sql = "ALTER TABLE `#__jf_content` ADD INDEX `jfContent` ( `language_id` , `reference_id` , `reference_table` )" ; $db->setQuery($sql); $db->query(); $sql = "ALTER TABLE `#__jf_content` ADD INDEX `jfContentLanguage` (`reference_id`, `reference_field`, `reference_table`, `language_id`)" ; $db->setQuery($sql); $db->query(); } $sql = "ALTER TABLE `#__jf_content` CHANGE COLUMN `value` `value` mediumtext NOT NULL " ; $db->setQuery($sql); @$db->query(); $sql = "ALTER TABLE `#__jf_content` CHANGE COLUMN `original_text` `original_text` mediumtext NOT NULL " ; $db->setQuery($sql); @$db->query(); } }