Скажем, у меня есть плагин Foo
в osclass. В этом плагине мы регистрируем крюк, когда отправляется элемент. Согласно документации на **** osclass, единственный крючок, который запускается, когда объект отправлен, отправлен по posted_item
.
Но, насколько я могу судить, просматривая код, он запускается после того, как данные исходного элемента уже были проверены и сохранены в базе данных. Что делать, если проверка какого-либо определенного кода плагина не удалась, и я хотел бы показать пользователю сообщение об ошибке и представить ему форму снова, чтобы дать ему возможность изменить эту информацию? Очень похоже на то, что вы пытаетесь отправить новый элемент, но не заполняете одну из базовой информации, например, description
.
Кажется, я не могу найти способ сделать это. Только обходной путь, который я нахожу, чтобы исключить отправку элемента, несмотря на то, что он содержит недопустимые данные для плагина, без редактирования основного кода osclass, заключается в том, чтобы удалить отправленный элемент снова в posted_item
обратного вызова posted_item
. Это кажется чрезвычайно громоздким, а также требует, чтобы каждый другой плагин проверял, что элемент все еще существует, чтобы убедиться, что они не сохраняют данные, связанные с элементом, который теперь удален.
То, что я хотел бы, и задаться вопросом, пропустил ли я, - это крюк, который запускается, когда элемент отправлен, но перед тем, как он будет записан в базу данных, и будет иметь возможность генерировать "ошибки", которые могут привести к тому, что элемент не будет опубликован, и пользователь перенаправляется обратно в форму с "ошибкой", отображаемой точно так же, как и для базовой информации об элементе.
У кого-нибудь есть решение, которое я пропустил? Это похоже на очень важную часть плагинов, и без него размещенные элементы могут стать очень фрагментированными.