mirror of https://github.com/joomla/joomla-cms.git
[4.4] When duplicating a tour with 0 (no) steps, SQL fails (#43044)
* Test if duplicated tour has no step * Update TourModel.php Removed empty line
This commit is contained in:
parent
8d78c6bada
commit
75ecb674d8
|
@ -313,7 +313,7 @@ class TourModel extends AdminModel
|
|||
// Reset the id to create a new record.
|
||||
$table->id = 0;
|
||||
|
||||
$table->published = 0;
|
||||
$table->published = 0;
|
||||
|
||||
if (!$table->check() || !$table->store()) {
|
||||
throw new \Exception($table->getError());
|
||||
|
@ -349,82 +349,84 @@ class TourModel extends AdminModel
|
|||
$db->setQuery($query);
|
||||
$rows = $db->loadObjectList();
|
||||
|
||||
$query = $db->getQuery(true)
|
||||
->insert($db->quoteName('#__guidedtour_steps'))
|
||||
->columns(
|
||||
[
|
||||
$db->quoteName('tour_id'),
|
||||
$db->quoteName('title'),
|
||||
$db->quoteName('description'),
|
||||
$db->quoteName('ordering'),
|
||||
$db->quoteName('position'),
|
||||
$db->quoteName('target'),
|
||||
$db->quoteName('type'),
|
||||
$db->quoteName('interactive_type'),
|
||||
$db->quoteName('url'),
|
||||
$db->quoteName('created'),
|
||||
$db->quoteName('created_by'),
|
||||
$db->quoteName('modified'),
|
||||
$db->quoteName('modified_by'),
|
||||
$db->quoteName('language'),
|
||||
$db->quoteName('note'),
|
||||
]
|
||||
);
|
||||
if ($rows) {
|
||||
$query = $db->getQuery(true)
|
||||
->insert($db->quoteName('#__guidedtour_steps'))
|
||||
->columns(
|
||||
[
|
||||
$db->quoteName('tour_id'),
|
||||
$db->quoteName('title'),
|
||||
$db->quoteName('description'),
|
||||
$db->quoteName('ordering'),
|
||||
$db->quoteName('position'),
|
||||
$db->quoteName('target'),
|
||||
$db->quoteName('type'),
|
||||
$db->quoteName('interactive_type'),
|
||||
$db->quoteName('url'),
|
||||
$db->quoteName('created'),
|
||||
$db->quoteName('created_by'),
|
||||
$db->quoteName('modified'),
|
||||
$db->quoteName('modified_by'),
|
||||
$db->quoteName('language'),
|
||||
$db->quoteName('note'),
|
||||
]
|
||||
);
|
||||
|
||||
foreach ($rows as $step) {
|
||||
$dataTypes = [
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::STRING,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::STRING,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::STRING,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::STRING,
|
||||
];
|
||||
foreach ($rows as $step) {
|
||||
$dataTypes = [
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::STRING,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::STRING,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::STRING,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::INTEGER,
|
||||
ParameterType::STRING,
|
||||
ParameterType::STRING,
|
||||
];
|
||||
|
||||
$query->values(
|
||||
implode(
|
||||
',',
|
||||
$query->bindArray(
|
||||
[
|
||||
$table->id,
|
||||
$step->title,
|
||||
$step->description,
|
||||
$step->ordering,
|
||||
$step->position,
|
||||
$step->target,
|
||||
$step->type,
|
||||
$step->interactive_type,
|
||||
$step->url,
|
||||
$date,
|
||||
$user->id,
|
||||
$date,
|
||||
$user->id,
|
||||
$step->language,
|
||||
$step->note,
|
||||
],
|
||||
$dataTypes
|
||||
$query->values(
|
||||
implode(
|
||||
',',
|
||||
$query->bindArray(
|
||||
[
|
||||
$table->id,
|
||||
$step->title,
|
||||
$step->description,
|
||||
$step->ordering,
|
||||
$step->position,
|
||||
$step->target,
|
||||
$step->type,
|
||||
$step->interactive_type,
|
||||
$step->url,
|
||||
$date,
|
||||
$user->id,
|
||||
$date,
|
||||
$user->id,
|
||||
$step->language,
|
||||
$step->note,
|
||||
],
|
||||
$dataTypes
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
$db->setQuery($query);
|
||||
$db->setQuery($query);
|
||||
|
||||
try {
|
||||
$db->execute();
|
||||
} catch (\RuntimeException $e) {
|
||||
Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
|
||||
try {
|
||||
$db->execute();
|
||||
} catch (\RuntimeException $e) {
|
||||
Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
|
||||
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
throw new \Exception($table->getError());
|
||||
|
|
Loading…
Reference in New Issue