Ist es möglich, die Box "Einleitungstext" komplett zu deaktivieren, so dass diese beim Erstellen und Bearbeiten eine News nicht mehr angezeigt wird?
Einleitungstext komplett deaktivierbar?
-
- News-System
-
PoooMukkel -
17. April 2017 um 21:15 -
Geschlossen
Vielen dank.
-
-
Du kannst diese durch ändern des Templates entfernen.
-
Gut. Dann versuche ich da mal was zu finden.
-
Es sollte reichen, das du folgende Zeilen entfernst aus der newsAdd.tpl
Code: newsAdd.tpl
Alles anzeigen<dl{if $errorField == 'teaser'|concat:$availableLanguage->languageID} class="formError"{/if}> <dt> <label for="teaser{@$availableLanguage->languageID}">{lang}wcf.acp.article.teaser{/lang}</label> </dt> <dd> <textarea name="teaser[{@$availableLanguage->languageID}]" id="teaser{@$availableLanguage->languageID}" class="wysiwygTextarea" data-autosave="de.wbb-elite.news.news.teaser{if $action == "add"}Add-{@$__wcf->getUser()->userID}{else}Edit-{@$news->newsID}-{@$availableLanguage->languageID}{/if}" rows="5">{if !$teaser[$availableLanguage->languageID]|empty}{$teaser[$availableLanguage->languageID]}{/if}</textarea> {include file='wysiwyg' wysiwygSelector='teaser'|concat:$availableLanguage->languageID} {if $errorField == 'teaser'|concat:$availableLanguage->languageID} <small class="innerError"> {if $errorType == 'empty'} {lang}wcf.global.form.error.empty{/lang} {elseif $errorType == 'tooLong'} {lang}wcf.message.error.tooLong{/lang} {elseif $errorType == 'censoredWordsFound'} {lang}wcf.message.error.censoredWordsFound{/lang} {elseif $errorType == 'disallowedBBCodes'} {lang}wcf.message.error.disallowedBBCodes{/lang} {elseif $errorType == 'multilingual'} {lang}wcf.global.form.error.multilingual{/lang} {else} {lang}de.wbb-elite.news.error.{@$errorType}{/lang} {/if} </small> {/if} <small>{lang}de.wbb-elite.news.teaser.description{/lang}</small> </dd> </dl>
Und
Code: newsAdd.tpl
Alles anzeigen<dl{if $errorField == 'teaser'} class="formError"{/if}> <dt> <label for="teaser">{lang}wcf.acp.article.teaser{/lang}</label> </dt> <dd> <textarea name="teaser" class="wysiwygTextarea" id="teaser" data-autosave="de.wbb-elite.news.news.teaser{if $action == "add"}Add-{@$__wcf->getUser()->userID}{else}Edit-{@$news->newsID}-{/if}" rows="5">{if !$teaser|empty}{$teaser}{/if}</textarea> {include file='wysiwyg' wysiwygSelector='teaser'} {if $errorField == 'teaser'} <small class="innerError"> {if $errorType == 'empty'} {lang}wcf.global.form.error.empty{/lang} {elseif $errorType == 'tooLong'} {lang}wcf.message.error.tooLong{/lang} {elseif $errorType == 'censoredWordsFound'} {lang}wcf.message.error.censoredWordsFound{/lang} {elseif $errorType == 'disallowedBBCodes'} {lang}wcf.message.error.disallowedBBCodes{/lang} {elseif $errorType == 'multilingual'} {lang}wcf.global.form.error.multilingual{/lang} {else} {lang}de.wbb-elite.news.error.{@$errorType}{/lang} {/if} </small> {/if} <small>{lang}de.wbb-elite.news.teaser.description{/lang}</small> </dd> </dl>
-
Danke dir Olaf. Ich probiere das mal aus.
-
Jetzt bin ich endlich mal dazu gekommen, das auszuprobieren und was soll ich sagen? Es funktioniert. Genial Olaf! Danke dir.
-
@PoooMukkel, du hattest noch ein Problem?
Schick bitte mal die Fehlermeldung
-
Danke Olaf für das Wiederöffnen des Themas.
Ich hatte nur schnell versucht, mit aktivierter Templateänderung eine neue News zu erstellen und zu ändern. Hatte aber nur die Formulare aufgerufen. Das funktionierte.
Wenn ich allerdings mit aktivierter Änderung die erstellte oder geänderte News dann abschicken möchte, erscheint folgender Fehler:
PHP
Alles anzeigenTue, 02 May 2017 10:49:55 +0000 Message: preg_match_all() expects parameter 2 to be string, array given PHP version: 7.0.14-nmm1 WoltLab Suite version: 3.0.4 Request URI: /deals/news-add/ Referrer: http://wsc.compiware-forum.de/deals/news-add/ User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36 Peak Memory Usage: 9622120/134217728 ====== Error Class: wcf\system\exception\ErrorException Error Message: preg_match_all() expects parameter 2 to be string, array given Error Code: 0 File: /www/htdocs/w0060f78/compiware_wsc/lib/system/WCF.class.php (292) Extra Information: - Stack Trace: [{"function":"handleError","class":"wcf\\system\\WCF","type":"::","args":[2,"preg_match_all() expects parameter 2 to be string, array given","\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/system\/bbcode\/BBCodeParser.class.php",455,{"ignoreSoureCodes":"[redacted]","validTags":"[redacted]","pattern":"[redacted]","matches":"[redacted]"}],"file":"[internal function]","line":"?"},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/system\/bbcode\/BBCodeParser.class.php","line":455,"function":"preg_match_all","args":["~\\[(?:\/(?:b|i|u|s|sub|sup|email|color|size|font|align|quote|code|img|url|list|table|tr|td|media|spoiler|tt|attach|wsm|wsp|user|file|deal|info|album|image|edit|offtopic|quelle|trennlinie|fa|compihtml)|(?:b|i|u|s|sub|sup|email|color|size|font|align|quote|code|img|url|list|table|tr|td|media|spoiler|tt|attach|wsm|wsp|user|file|deal|info|album|image|edit|offtopic|quelle|trennlinie|fa|compihtml)\r\n\t\t\t(?:=\r\n\t\t\t\t(?:'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'|[^,\\]]*)\r\n\t\t\t\t(?:,(?:'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'|[^,\\]]*))*\r\n\t\t\t)?)\\]~ix",[],null],"class":"","type":""},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/system\/bbcode\/HtmlBBCodeParser.class.php","line":65,"function":"buildTagArray","class":"wcf\\system\\bbcode\\BBCodeParser","type":"->","args":[false]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/system\/html\/input\/HtmlInputProcessor.class.php","line":58,"function":"parse","class":"wcf\\system\\bbcode\\HtmlBBCodeParser","type":"->","args":[[]]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/deals\/lib\/form\/NewsAddForm.class.php","line":633,"function":"process","class":"wcf\\system\\html\\input\\HtmlInputProcessor","type":"->","args":[[],"de.wbb-elite.news.message",0]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/deals\/lib\/form\/NewsAddForm.class.php","line":614,"function":"checkContent","class":"news\\form\\NewsAddForm","type":"->","args":["teaser",[],0,300,0,true]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/deals\/lib\/form\/NewsAddForm.class.php","line":529,"function":"validateI18","class":"news\\form\\NewsAddForm","type":"->","args":["teaser",0,300,0,true,true]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/form\/AbstractForm.class.php","line":59,"function":"validate","class":"news\\form\\NewsAddForm","type":"->","args":[]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/form\/AbstractForm.class.php","line":112,"function":"submit","class":"wcf\\form\\AbstractForm","type":"->","args":[]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/form\/AbstractCaptchaForm.class.php","line":67,"function":"readData","class":"wcf\\form\\AbstractForm","type":"->","args":[]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/deals\/lib\/form\/NewsAddForm.class.php","line":250,"function":"readData","class":"wcf\\form\\AbstractCaptchaForm","type":"->","args":[]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/page\/AbstractPage.class.php","line":274,"function":"readData","class":"news\\form\\NewsAddForm","type":"->","args":[]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/page\/AbstractPage.class.php","line":103,"function":"show","class":"wcf\\page\\AbstractPage","type":"->","args":[]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/system\/request\/Request.class.php","line":83,"function":"__run","class":"wcf\\page\\AbstractPage","type":"->","args":[]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/lib\/system\/request\/RequestHandler.class.php","line":94,"function":"execute","class":"wcf\\system\\request\\Request","type":"->","args":[]},{"file":"\/www\/htdocs\/w0060f78\/compiware_wsc\/deals\/index.php","line":10,"function":"handle","class":"wcf\\system\\request\\RequestHandler","type":"->","args":["news"]}]
Diese ist jetzt speziell beim Erstellen einer News entstanden. Beim Ändern sieht sie aber so ähnlich aus.Deaktiviere ich die Templateänderungen wieder, also lösche das Template aus der Gruppe, dann ist wieder alles gut.
-
Mh, füg bitte mal folgenden Code in die news/lib/form/NewsAddForm.class.php ein
PHP: NewsAddForm.class.php
Alles anzeigenprivate function checkContent($name, $value, $minCharacter, $maxLength, $minWords, $censorship) { if(is_array($value)) $value = ""; $this->htmlInputProcessor[$name] = new HtmlInputProcessor(); $this->htmlInputProcessor[$name]->process($value, $this->messageObjectType, 0); $message = $this->htmlInputProcessor[$name]->getTextContent(); $length = mb_strlen($message); // check character length if ($minCharacter > 0 && $length < $minCharacter) { WCF::getTPL()->assign('minCharLength', $minCharacter); throw new UserInputException($name, 'minCharLength'); } if ($minWords > 0 && count(explode(' ', $message)) < $minWords) { WCF::getTPL()->assign('minWords', $minWords); throw new UserInputException($name, 'minWordCount'); } // check object max length if ($maxLength != 0 && $length > $maxLength) { WCF::getTPL()->assign('maxLength', $maxLength); throw new UserInputException($name, 'tooLong'); } if (ENABLE_CENSORSHIP && $censorship == true) { $result = Censorship::getInstance()->test($message); if ($result) { WCF::getTPL()->assign("censoredWords" . $name, $result); throw new UserInputException($name, 'censoredWordsFound'); } } if (WCF::getLanguage()->get($message, true) != $message && WCF::getLanguage()->get($message, true) != '') { throw new UserInputException($name, 'langvar'); } $disallowedBBCodes = $this->htmlInputProcessor[$name]->validate(); if (!empty($disallowedBBCodes)) { WCF::getTPL()->assign('disallowedBBCodes', $disallowedBBCodes); throw new UserInputException($name, 'disallowedBBCodes'); } return $this->htmlInputProcessor[$name]->getHtml(); }
-
Inklusive Templateänderungen? Oder soll ich die Änderungen wieder entfernen, bevor ich die PHP Datei ändere?
-
Ändern und die PHP Datei ändern
-
Soll ich den vorhandenen Code in der PHP Datei ersetzen?
PHP
Alles anzeigenprivate function checkContent($name, $value, $minCharacter, $maxLength, $minWords, $censorship) { $this->htmlInputProcessor[$name] = new HtmlInputProcessor(); $this->htmlInputProcessor[$name]->process($value, $this->messageObjectType, 0); $message = $this->htmlInputProcessor[$name]->getTextContent(); $length = mb_strlen($message); // check character length if ($minCharacter > 0 && ($length < $minCharacter)) { throw new UserInputException($name, 'minCharLength'); } if ($minWords > 0 && (count(explode(' ', $message)) < $minWords)) { throw new UserInputException($name, 'minWordCount'); } // check object max length if ($maxLength != 0 && $length > $maxLength) { throw new UserInputException($name, 'tooLong'); } if (ENABLE_CENSORSHIP && $censorship == true) { $result = Censorship::getInstance()->test($message); if ($result) { WCF::getTPL()->assign("censoredWords" . $name, $result); throw new UserInputException($name, 'censoredWordsFound'); } } if (WCF::getLanguage()->get($message, true) != $message && WCF::getLanguage()->get($message, true) != '') { throw new UserInputException($name, 'langvar'); } $disallowedBBCodes = $this->htmlInputProcessor[$name]->validate(); if (!empty($disallowedBBCodes)) { WCF::getTPL()->assign('disallowedBBCodes', $disallowedBBCodes); throw new UserInputException($name, 'disallowedBBCodes'); } return $this->htmlInputProcessor[$name]->getHtml(); }
Ganz schön kompliziert das alles und nach einem Update wäre alles wieder weg oder?
-
Genau
-
Jetzt funktioniert es! Kann News erstellen und ändern ohne Einleitungstext.
Wenn jetzt aber ein Update des News System kommt, wäre das alles wieder weg oder?
-
Nein, diese Fehlerbehebung ist schon in der neuen Version drinnen
-
Aber das Template muss ich nach dem nächsten Update trotzdem anpassen oder?
-
Wenn du das Template über das Design im ACP geändert hast, dann nicht.
-
Logisch habe ich das Template über das ACP angepasst.
Wollte nur wissen, ob ich das geänderte Template nach dem Update wieder "löschen" und somit wieder das Standard-Template benutzen kann. Aber ich muss das geänderte Template dann behalten richtig?
-
Genau
-
Gut zu wissen. Danke!
-