30
1
mirror of https://github.com/joomla-extensions/weblinks.git synced 2024-06-09 09:42:24 +00:00
weblinks/src/com_weblinks/admin/script.php
2015-04-01 23:12:10 +02:00

107 lines
2.6 KiB
PHP

<?php
/**
* @package Joomla.Administrator
* @subpackage com_weblinks
*
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Installation class to perform additional changes during install/uninstall/update
*
* @package Joomla.Administrator
* @subpackage com_weblinks
* @since 3.4
*/
class Com_WeblinksInstallerScript
{
/**
* Function to perform changes during install
*
* @param JInstallerAdapterComponent $parent The class calling this method
*
* @return void
*
* @since 3.4
*/
public function install($parent)
{
// Initialize a new category
/** @type JTableCategory $category */
$category = JTable::getInstance('Category');
// Check if the Uncategorised category exists before adding it
if (!$category->load(array('extension' => 'com_weblinks', 'title' => 'Uncategorised')))
{
$category->extension = 'com_weblinks';
$category->title = 'Uncategorised';
$category->description = '';
$category->published = 1;
$category->access = 1;
$category->params = '{"category_layout":"","image":""}';
$category->metadata = '{"author":"","robots":""}';
$category->language = '*';
// Set the location in the tree
$category->setLocation(1, 'last-child');
// Check to make sure our data is valid
if (!$category->check())
{
JFactory::getApplication()->enqueueMessage(JText::sprintf('COM_WEBLINKS_ERROR_INSTALL_CATEGORY', $category->getError()));
return;
}
// Now store the category
if (!$category->store(true))
{
JFactory::getApplication()->enqueueMessage(JText::sprintf('COM_WEBLINKS_ERROR_INSTALL_CATEGORY', $category->getError()));
return;
}
// Build the path for our category
$category->rebuildPath($category->id);
}
}
/**
* method to update the component
*
* @return void
*/
function update($parent)
{
$tasks = array(
'0' => 'sid',
'1' => 'date',
'2' => 'archived',
'3' => 'approved',
);
foreach $tasks as $column)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(*);
$query->from($db->quoteName('information_schema.columns'));
$query->where($db->quoteName('table_name') . ' = '. $db->quote('#__weblinks'));
$query->where($db->quoteName('column_name') . ' = '. $db->quote($column));
$numrows = $query->getNumRows();
$db->clean();
if ($numrows != 0)
{
$sql = "ALTER TABLE `#__weblinks` DROP COLUMN `' . $column . '`";
$db->setQuery($sql);
$db->execute();
}
}
}
}