Не могли бы вы рассказать, как публиковать страницы после нажатия кнопки редактирования (в левом верхнем меню) в режиме Cocrete5 CMS версии 5.8.1.0 без использования кнопки «Создать»?
Я не могу опубликовать какую-либо страницу, нажав кнопку редактирования в верхнем левом углу, отредактировав ее и снова нажав кнопку редактирования.
Кнопка «Опубликовать изменения» отключена, и появляется сообщение:
«Поле Эскиз страницы требуется.» Но я могу опубликовать с помощью меню «Создать» (рядом с правкой в левом верхнем углу).
В чем причина этой проблемы? Это конкретная ошибка?
Похоже, что это позволяет публиковать, если я закомментирую строки в проверке на метод publishinh. Но я до сих пор не могу понять причину проблемы и как ее исправить.
class CheckIn extends BackendInterfacePageController
{
protected $viewPath = '/panels/page/check_in';
// we need this extra because this controller gets called by another page
// and that page needs to know how to submit it.
protected $controllerActionPath = '/ccm/system/panels/page/check_in';
public function canAccess()
{
return $this->permissions->canApprovePageVersions() || $this->permissions->canEditPageContents();
}
public function on_start()
{
parent::on_start();
if ($this->page) {
$v = CollectionVersion::get($this->page, "RECENT");
$this->set('publishDate', $v->getPublishDate());
$this->set('publishErrors', $this->checkForPublishing());
}
}
protected function checkForPublishing()
{
$c = $this->page;
// verify this page type has all the items necessary to be approved.
$e = Loader::helper('validation/error');
if ($c->isPageDraft()) {
if (!$c->getPageDraftTargetParentPageID()) {
$e->add(t('You haven\'t chosen where to publish this page.'));
}
}
$pagetype = $c->getPageTypeObject();
// if (is_object($pagetype)) {
// $validator = $pagetype->getPageTypeValidatorObject();
// $e->add($validator->validatePublishDraftRequest($c));
// }
if ($c->isPageDraft() && !$e->has()) {
$targetParentID = $c->getPageDraftTargetParentPageID();
if ($targetParentID) {
$tp = Page::getByID($targetParentID, 'ACTIVE');
$pp = new Permissions($tp);
if (!is_object($tp) || $tp->isError()) {
$e->add(t('Invalid target page.'));
} else {
if (!$pp->canAddSubCollection($pagetype)) {
$e->add(
t(
'You do not have permissions to add a page of this type in the selected location.'
)
);
}
}
}
}
return $e;
}
Ошибка говорит обо всем? ‘Поле Эскиз страницы обязательно.’ Вы действительно добавили миниатюру?
По сути, вы не можете отправить форму, не заполнив все необходимые поля.
Или ты все еще получил ошибку?
Я мог решить проблему с переопределением файла:
<?php
namespace Application\Attribute\ImageFile;
use Loader;
use Core;
class Controller extends \Concrete\Attribute\ImageFile\Controller
{
public function validateValue()
{
$f = $this->getAttributeValue()->getValue();
if (is_object($f)) {
return true;
}
$e = Core::make('helper/validation/error');
$e->add(t('You must specify a valid file for %s', $this->attributeKey->getAttributeKeyDisplayName()));
return $e;
}
}