Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $rules = [
- 'title' => [
- 'default' => '',
- 'processor' => static function($v) {
- $v = str_replace(' ', ' ', $v);
- $v = trim($v);
- $v = Common::removeEmoji($v);
- $v = mb_substr($v, 0, 240);
- return $v;
- }
- ],
- 'title_ceo' => [
- 'default' => '',
- 'processor' => static function($v) {
- $v = str_replace(' ', ' ', $v);
- $v = trim($v);
- $v = Common::removeEmoji($v);
- $v = mb_substr($v, 0, 240);
- return $v;
- }
- ],
- 'short' => [
- 'default' => '',
- 'processor' => static function($v) {
- $v = str_replace(' ', ' ', $v);
- $v = trim($v);
- $v = Common::removeEmoji($v);
- return $v;
- }
- ],
- 'html' => [
- 'comment' => 'Обработка HTML-вставок. Это правило должно стоять перед text_bb если мы хотим модифицировать исходный датасет',
- 'default' => Core::serialize([]),
- 'processor' => static function($entity, $source_dataset) {
- // $entity == $_REQUEST['html']
- // $source_dataset == $_REQUEST;
- $html_keys = array_keys($entity);
- preg_match_all("/\[html\sid=([0-9]+)\]/i", $source_dataset['text_bb'], $m);
- foreach ($html_keys as $v) {
- if (!in_array($v, $m[1])) {
- unset($entity[$v]);
- } else {
- $entity[$v] = Common::removeEmoji($entity[$v]);
- }
- }
- return Core::serialize($entity);
- }
- ],
- 'text_bb' => [
- 'default' => '',
- 'processor' => static function($v) {
- $v = str_replace("\r\n", "\n", $v);
- if (_env('FEATURE.SAVE_ARTICLE.REPLACE_QUOTES', 1) == 1) {
- $replacement = array_fill(0, count(Articles::quotes_replacement), """);
- } else {
- $replacement = array_values(Articles::quotes_replacement);
- }
- $v = str_replace(array_keys(Articles::quotes_replacement), $replacement, $v);
- $v = str_replace('…', "…", $v);
- $v = str_replace(['—', '–'], ['—', '–'], $v);
- if (_env('FEATURE.SAVE_ARTICLE.REMOVE_EMOJI', 1) == 1) {
- $v = Common::removeEmoji($v);
- }
- return $v;
- }
- ],
- 'external' => [
- 'default' => '',
- 'processor' => static function($s) {
- $s = trim($s);
- return (!filter_var($s, FILTER_VALIDATE_URL)) ? "https://{$s}" : $s;
- }
- ],
- // предположительно это будет работать...
- 'cdate' => [
- 'default' => '',
- 'processor' => static function($v) {
- // в шаблоне поля день/месяц/год час/минуты задаются как name="cdate[0][2]" , name="cdate[0][1]", name="cdate[0][0]", name="cdate[1][0]", name="cdate[1][1]"
- // это кошмарное легаси! Конечно, нужно перерабывать в cdate_day, cdate_month итд
- $d = implode('-', array_reverse($v[0]));
- $t = implode(':', $v[1]);
- return implode(' ', [ $d, $t ]);
- }
- ],
- 's_draft' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_hidden' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_rss_yandex' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_rss_social' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_rss_yandex_zen' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_rss_telegram' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_is_article' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_nopub' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- //
- 's_photorep' => [
- 'comment' => 'галочка фото (ставит иконку фото к материалу) @todo: может ли быть материал с вставкой репортажа, но без этой галочки?',
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_videorep' => [
- 'comment' => 'галочка видео (ставит иконку видео к материалу) @todo: может ли быть материал с видео-вставкой, но без этой галочки?',
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_advert' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 'advert_hint' => [
- 'default' => '',
- 'processor' => static function($v) {
- $v = str_replace(' ', ' ', $v);
- $v = trim($v);
- $v = Common::removeEmoji($v);
- return $v;
- },
- 'type' => 'string'
- ],
- 's_advert_techosphere' => [
- 'comment' => 'рекламные свойства: техносфера',
- 'default' => 0,
- ],
- 's_bold' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 'author' => [
- 'default' => '',
- 'type' => 'string',
- 'processor' => static function($v) {
- $v = str_replace(' ', ' ', $v);
- $v = trim($v);
- $v = Common::removeEmoji($v);
- return $v;
- },
- ],
- 'author_id' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_is_oped' => [
- 'comment' => 'op-ed - авторская колонка, буквально',
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_inread' => [
- 'comment' => 'вставлять ли инрид-баннеры?',
- 'default' => 0,
- 'type' => 'int'
- ],
- 's_cdn' => [
- 'default' => 0,
- 'type' => 'int'
- ],
- 'translit_title' => []
- ];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement