Skip to content

Commit e0d4f0e

Browse files
committed
Add a helpful error message when there are no article categories
See https://www.woltlab.com/community/thread/313610/
1 parent c633b33 commit e0d4f0e

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use wcf\system\attachment\AttachmentHandler;
1717
use wcf\system\bbcode\BBCodeHandler;
1818
use wcf\system\cache\builder\ArticleCategoryLabelCacheBuilder;
19+
use wcf\system\exception\NamedUserException;
1920
use wcf\system\exception\UserInputException;
2021
use wcf\system\html\input\HtmlInputProcessor;
2122
use wcf\system\html\upcast\HtmlUpcastProcessor;
@@ -26,6 +27,7 @@
2627
use wcf\util\ArrayUtil;
2728
use wcf\util\DateUtil;
2829
use wcf\util\HeaderUtil;
30+
use wcf\util\HtmlString;
2931
use wcf\util\StringUtil;
3032

3133
/**
@@ -226,13 +228,23 @@ class ArticleAddForm extends AbstractForm
226228
*/
227229
public $attachmentObjectType = 'com.woltlab.wcf.article';
228230

231+
protected CategoryNodeTree $categoryNodeTree;
232+
229233
/**
230234
* @inheritDoc
231235
*/
232236
public function readParameters()
233237
{
234238
parent::readParameters();
235239

240+
241+
$this->categoryNodeTree = new CategoryNodeTree('com.woltlab.wcf.article.category');
242+
if (\iterator_count($this->categoryNodeTree->getIterator()) === 0) {
243+
throw new NamedUserException(
244+
HtmlString::fromSafeHtml(WCF::getLanguage()->getDynamicVariable('wcf.acp.article.category.error.noCategories'))
245+
);
246+
}
247+
236248
if (isset($_REQUEST['categoryID'])) {
237249
$this->categoryID = \intval($_REQUEST['categoryID']);
238250
}
@@ -707,7 +719,7 @@ public function assignVariables()
707719
'teaser' => $this->teaser,
708720
'content' => $this->content,
709721
'availableLanguages' => $this->availableLanguages,
710-
'categoryNodeList' => (new CategoryNodeTree('com.woltlab.wcf.article.category'))->getIterator(),
722+
'categoryNodeList' => $this->categoryNodeTree->getIterator(),
711723
'accessibleCategoryIDs' => ArticleCategory::getAccessibleCategoryIDs(),
712724
'labelIDs' => $this->labelIDs,
713725
'labelGroups' => $this->labelGroups,

wcfsetup/install/lang/de.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
<item name="wcf.acp.article.category.sortField"><![CDATA[Sortierung]]></item>
8585
<item name="wcf.acp.article.category.sortField.publicationDate"><![CDATA[Veröffentlichungsdatum]]></item>
8686
<item name="wcf.acp.article.category.sortField.title"><![CDATA[Titel]]></item>
87+
<item name="wcf.acp.article.category.error.noCategories"><![CDATA[Bevor {if LANGUAGE_USE_INFORMAL_VARIANT}du{else}Sie{/if} einen Artikel erstellen {if LANGUAGE_USE_INFORMAL_VARIANT}kannst, musst du{else}könne, müssen Sie{/if} eine <a href="{link controller='ArticleCategoryAdd' isACP=true}{/link}">Kategorie anlegen</a>.]]></item>
8788
<item name="wcf.acp.article.content"><![CDATA[Inhalt]]></item>
8889
<item name="wcf.acp.article.enableComments"><![CDATA[Kommentare aktivieren]]></item>
8990
<item name="wcf.acp.article.i18n"><![CDATA[Mehrsprachigkeit]]></item>

wcfsetup/install/lang/en.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
<item name="wcf.acp.article.category.sortField"><![CDATA[Show Order]]></item>
8585
<item name="wcf.acp.article.category.sortField.publicationDate"><![CDATA[Publication Date]]></item>
8686
<item name="wcf.acp.article.category.sortField.title"><![CDATA[Title]]></item>
87+
<item name="wcf.acp.article.category.error.noCategories"><![CDATA[Please <a href="{link controller='ArticleCategoryAdd' isACP=true}{/link}">add a category</a> before writing articles.]]></item>
8788
<item name="wcf.acp.article.content"><![CDATA[Content]]></item>
8889
<item name="wcf.acp.article.enableComments"><![CDATA[Enable comments]]></item>
8990
<item name="wcf.acp.article.i18n"><![CDATA[Multilingualism]]></item>

0 commit comments

Comments
 (0)