diff --git a/administrator/components/com_content/models/article.php b/administrator/components/com_content/models/article.php index fb30aadb9eb84..60598aedf333c 100644 --- a/administrator/components/com_content/models/article.php +++ b/administrator/components/com_content/models/article.php @@ -466,6 +466,37 @@ public function save($data) $data['state'] = 0; } + // Automatic handling of alias for empty fields + if (in_array($app->input->get('task'), array('apply', 'save', 'save2new')) && (int) $app->input->get('id') == 0) + { + if ($data['alias'] == null) + { + if (JFactory::getConfig()->get('unicodeslugs') == 1) + { + $data['alias'] = JFilterOutput::stringURLUnicodeSlug($data['title']); + } + else + { + $data['alias'] = JFilterOutput::stringURLSafe($data['title']); + } + + $table = JTable::getInstance('Content', 'JTable'); + + if ($table->load(array('alias' => $data['alias'], 'catid' => $data['catid']))) + { + $msg = JText::_('COM_CONTENT_SAVE_WARNING'); + } + + list($title, $alias) = $this->generateNewTitle($data['catid'], $data['alias'], $data['title']); + $data['alias'] = $alias; + + if (isset($msg)) + { + $app->enqueueMessage($msg, 'warning'); + } + } + } + if (parent::save($data)) { diff --git a/administrator/language/en-GB/en-GB.com_content.ini b/administrator/language/en-GB/en-GB.com_content.ini index 6d3b1b05eccb5..f0c2966b9091c 100644 --- a/administrator/language/en-GB/en-GB.com_content.ini +++ b/administrator/language/en-GB/en-GB.com_content.ini @@ -142,6 +142,7 @@ COM_CONTENT_PAGEBREAK_TITLE="Page Title:" COM_CONTENT_PAGEBREAK_TOC="Table of Contents Alias:" COM_CONTENT_RIGHT="Right" COM_CONTENT_SAVE_SUCCESS="Article successfully saved" +COM_CONTENT_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the article to customise the alias" COM_CONTENT_SELECT_AN_ARTICLE="Select an Article" COM_CONTENT_SHARED_DESC="These settings apply for Shared Options in List, Blog and Featured unless they are changed by the menu settings." COM_CONTENT_SHARED_LABEL="Shared Options"