diff --git a/src/administrator/components/com_ccm/ccm.xml b/src/administrator/components/com_ccm/ccm.xml index 77de63e..217f0b8 100644 --- a/src/administrator/components/com_ccm/ccm.xml +++ b/src/administrator/components/com_ccm/ccm.xml @@ -11,23 +11,15 @@ sql/install.mysql.utf8.sql + sql/install.postgresql.utf8.sql sql/uninstall.mysql.utf8.sql + sql/uninstall.postgresql.utf8.sql - - - sql/updates/mysql/1.0.1.sql - - - - - src - - services diff --git a/src/administrator/components/com_ccm/language/en-GB/com_ccm.ini b/src/administrator/components/com_ccm/language/en-GB/com_ccm.ini index 86fe5b4..a2210e7 100644 --- a/src/administrator/components/com_ccm/language/en-GB/com_ccm.ini +++ b/src/administrator/components/com_ccm/language/en-GB/com_ccm.ini @@ -1,6 +1,9 @@ COM_CCM="CMS Content Migration" COM_CCM_APPLY_MIGRATION_BTN="Apply Migration" +COM_CCM_CMS_DETAILS="CMS Details" COM_CCM_CMS_ID="CMS ID" +COM_CCM_CMS_FORM_NEW="New CMS" +COM_CCM_CMS_FORM_EDIT="Edit CMS" COM_CCM_CMS_NAME="CMS Name" COM_CCM_CMS_NAME_ADD="Add new CMS" COM_CCM_CMS_NAME_EDIT="Edit CMS" @@ -19,6 +22,13 @@ COM_CCM_CONFIG_URL_LABEL="CMS URL" COM_CCM_CONFIGURATION="CCM Migration Configuration" COM_CCM_DESCRIPTION="CMS Content Migration . Migrating content via the web services API from a source CMS to a target CMS." COM_CCM_FILTER_SEARCH="Search" +COM_CCM_MESSAGE_MIGRATION_COMPLETED_PARTIALLY="Partial migration completed. " +COM_CCM_MESSAGE_MIGRATION_COMPLETED_SUCCESSFULLY="All migrations completed successfully: " +COM_CCM_MESSAGE_MIGRATION_FAILED="Failed: " +COM_CCM_MESSAGE_MIGRATION_FAILED_ALL="All migrations failed: " +COM_CCM_MESSAGE_MIGRATION_FAILED_THIS="Migration failed: " +COM_CCM_MESSAGE_MIGRATION_NO_DATA_PROVIDED="No data provided for migration." +COM_CCM_MESSAGE_MIGRATION_SUCCESSFUL="Successful: " COM_CCM_MIGRATION_FIELDSET_LABEL="Migration Settings" COM_CCM_MIGRATION_SOURCE_CMS="Source CMS" COM_CCM_MIGRATION_TARGET_CMS="Target CMS" diff --git a/src/administrator/components/com_ccm/sql/install.postgresql.utf8.sql b/src/administrator/components/com_ccm/sql/install.postgresql.utf8.sql new file mode 100644 index 0000000..0277dc4 --- /dev/null +++ b/src/administrator/components/com_ccm/sql/install.postgresql.utf8.sql @@ -0,0 +1,20 @@ +-- +-- Table structure for table #__ccm_cms +-- + +CREATE TABLE IF NOT EXISTS "#__ccm_cms" ( + "id" serial NOT NULL, + "name" varchar(100) DEFAULT '' NOT NULL, + "url" varchar(255) DEFAULT '' NOT NULL, + "credentials" varchar(255) DEFAULT NULL, + "content_keys_types" json DEFAULT NULL, + "ccm_mapping" json DEFAULT NULL, + "created" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + "modified" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY ("id") +); + +-- Inserting initial data for table #__ccm_cms +INSERT INTO "#__ccm_cms" ("id", "name") VALUES +(1, 'Joomla'), +(2, 'WordPress'); diff --git a/src/administrator/components/com_ccm/sql/uninstall.postgresql.utf8.sql b/src/administrator/components/com_ccm/sql/uninstall.postgresql.utf8.sql new file mode 100644 index 0000000..b7e19ac --- /dev/null +++ b/src/administrator/components/com_ccm/sql/uninstall.postgresql.utf8.sql @@ -0,0 +1,2 @@ +DROP TABLE IF EXISTS "#__ccm_cms"; + diff --git a/src/administrator/components/com_ccm/src/Controller/CmsController.php b/src/administrator/components/com_ccm/src/Controller/CmsController.php index e602ebb..cc9e1bc 100644 --- a/src/administrator/components/com_ccm/src/Controller/CmsController.php +++ b/src/administrator/components/com_ccm/src/Controller/CmsController.php @@ -23,16 +23,6 @@ protected function getRedirectToListAppend() return '&view=cmss'; } - public function migrate() - { - error_log('CmsController::migrate called'); - $migration = new \Joomla\Component\CCM\Administrator\Migration\Migration(); - $migration->migrate(); - - // Optionally redirect or set a message - $this->setMessage('Migration completed!'); - // $this->setRedirect('index.php?option=com_ccm'); - } /** * Save the CMS item. * diff --git a/src/administrator/components/com_ccm/src/Controller/DisplayController.php b/src/administrator/components/com_ccm/src/Controller/DisplayController.php index 3d07028..8f67f80 100644 --- a/src/administrator/components/com_ccm/src/Controller/DisplayController.php +++ b/src/administrator/components/com_ccm/src/Controller/DisplayController.php @@ -29,11 +29,12 @@ class DisplayController extends BaseController /** * Method to display a view. * - * @param boolean $cachable If true, the view output will be cached - * @param array $urlparams An array of safe URL parameters and their variable types, for valid values see {@link \JFilterInput::clean()}. + * @param boolean $cachable If true, the view output will be cached + * @param array $urlparams An array of safe URL parameters and their variable types, for valid values see {@link \JFilterInput::clean()}. * * @return static This object to support chaining. * + * @throws \Exception * @since 1.0.0 */ public function display($cachable = false, $urlparams = []) diff --git a/src/administrator/components/com_ccm/src/Controller/MigrationController.php b/src/administrator/components/com_ccm/src/Controller/MigrationController.php index 39475a5..bbbf578 100644 --- a/src/administrator/components/com_ccm/src/Controller/MigrationController.php +++ b/src/administrator/components/com_ccm/src/Controller/MigrationController.php @@ -13,15 +13,23 @@ \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects +use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\Controller\BaseController; class MigrationController extends BaseController { + /** + * Apply migration from source CMS to target CMS. + * + * @return void + * + * @since 1.0.0 + */ public function apply() { $data = $this->input->post->get('jform', [], 'array'); if (empty($data)) { - $this->setMessage('No data provided for migration.', 'error'); + $this->setMessage(Text::_('COM_CCM_MESSAGE_MIGRATION_NO_DATA_PROVIDED'), 'error'); $this->setRedirect('index.php?option=com_ccm&view=migration'); return; } @@ -29,7 +37,7 @@ public function apply() $sourceCmsId = isset($data['source_cms']) ? (int) $data['source_cms'] : 0; $targetCmsId = isset($data['target_cms']) ? (int) $data['target_cms'] : 0; - /** @var MigrationModel $model */ + /** @var \Joomla\Component\CCM\Administrator\Model\MigrationModel $model */ $model = $this->getModel(); try { @@ -68,18 +76,18 @@ public function apply() // Prepare summary message if (!empty($successfulMigrations) && empty($failedMigrations)) { - $this->setMessage('All migrations completed successfully: ' . implode(', ', $successfulMigrations)); + $this->setMessage(Text::_('COM_CCM_MESSAGE_MIGRATION_COMPLETED_SUCCESSFULLY') . implode(', ', $successfulMigrations)); } elseif (!empty($successfulMigrations) && !empty($failedMigrations)) { - $message = 'Partial migration completed. '; - $message .= 'Successful: ' . implode(', ', $successfulMigrations) . '. '; - $message .= 'Failed: ' . implode(', ', $failedMigrations); + $message = Text::_('COM_CCM_MESSAGE_MIGRATION_COMPLETED_PARTIALLY'); + $message .= Text::_('COM_CCM_MESSAGE_MIGRATION_SUCCESSFUL') . implode(', ', $successfulMigrations) . '. '; + $message .= Text::_('COM_CCM_MESSAGE_MIGRATION_FAILED') . implode(', ', $failedMigrations); $this->setMessage($message, 'warning'); } else { - $this->setMessage('All migrations failed: ' . implode(', ', $failedMigrations), 'error'); + $this->setMessage(Text::_('COM_CCM_MESSAGE_MIGRATION_FAILED_ALL') . implode(', ', $failedMigrations), 'error'); } } catch (\Exception $e) { - $this->setMessage('Migration failed: ' . $e->getMessage(), 'error'); + $this->setMessage(Text::_('COM_CCM_MESSAGE_MIGRATION_FAILED_THIS') . $e->getMessage(), 'error'); } $this->setRedirect('index.php?option=com_ccm&view=migration'); } diff --git a/src/administrator/components/com_ccm/src/Model/MigrationModel.php b/src/administrator/components/com_ccm/src/Model/MigrationModel.php index d1f3535..6b557cb 100644 --- a/src/administrator/components/com_ccm/src/Model/MigrationModel.php +++ b/src/administrator/components/com_ccm/src/Model/MigrationModel.php @@ -84,9 +84,9 @@ protected function loadFormData() /** * Migrate from source CMS to target CMS. * - * @return void + * @return boolean * - * @since 4.0.0 + * @since 1.0.0 */ public function migrate($sourceCmsId, $targetCmsId, $sourceType, $targetType) { diff --git a/src/administrator/components/com_ccm/src/View/Migration/HtmlView.php b/src/administrator/components/com_ccm/src/View/Migration/HtmlView.php index 21916b3..45f870a 100644 --- a/src/administrator/components/com_ccm/src/View/Migration/HtmlView.php +++ b/src/administrator/components/com_ccm/src/View/Migration/HtmlView.php @@ -16,7 +16,7 @@ use Joomla\CMS\Language\Text; use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView; use Joomla\CMS\Toolbar\ToolbarHelper; -use Joomla\Component\CCM\Administrator\Migration\Migration; +use Joomla\Component\CCM\Administrator\Model\MigrationModel; class HtmlView extends BaseHtmlView { @@ -26,7 +26,7 @@ class HtmlView extends BaseHtmlView public function display($tpl = null): void { - /** @var Migration $model */ + /** @var MigrationModel $model */ $model = $this->getModel(); $this->item = $model->getItem(); diff --git a/src/administrator/components/com_ccm/tmpl/cms/edit.php b/src/administrator/components/com_ccm/tmpl/cms/edit.php index 63cdd94..e98b241 100644 --- a/src/administrator/components/com_ccm/tmpl/cms/edit.php +++ b/src/administrator/components/com_ccm/tmpl/cms/edit.php @@ -10,6 +10,7 @@ defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; +use Joomla\CMS\Language\Text; use Joomla\CMS\Router\Route; /** @var Joomla\CMS\WebAsset\WebAssetManager $wa */ @@ -18,20 +19,20 @@ ->useScript('form.validate'); ?> -
-
-
-
-
-
- form->getFieldset() as $field) :?> - renderField(); ?> - -
-
-
-
+ + 'details', 'recall' => true, 'breakpoint' => 768]); ?> + +
+ form->getFieldset() as $field) :?> + renderField(); ?> +
+ + + + form->renderControlFields(); ?>