Example #1
0
     $f_user_id = (int) $post['f_user_id'];
 } else {
     $f_user_id = $MSO->data['session']['users_id'];
 }
 $f_comment_allow = isset($post['f_comment_allow']) ? '1' : '0';
 $f_ping_allow = isset($post['f_ping_allow']) ? '1' : '0';
 $f_feed_allow = isset($post['f_feed_allow']) ? '1' : '0';
 // получаем номер опции id из fo_edit_submit[]
 // подготавливаем данные
 $data = array('user_login' => $MSO->data['session']['users_login'], 'password' => $MSO->data['session']['users_password'], 'page_title' => $f_header, 'page_content' => $f_content, 'page_type_id' => $f_page_type, 'page_id_cat' => implode(',', $f_cat), 'page_id_parent' => $f_page_parent, 'page_id_autor' => $f_user_id, 'page_status' => $f_status, 'page_slug' => $f_slug, 'page_password' => $f_password, 'page_comment_allow' => $f_comment_allow, 'page_ping_allow' => $f_ping_allow, 'page_feed_allow' => $f_feed_allow, 'page_tags' => $f_tags, 'page_meta_options' => $f_options, 'page_menu_order' => $page_menu_order);
 if ($page_date_publish) {
     $data['page_date_publish'] = $page_date_publish;
 }
 require_once getinfo('common_dir') . 'functions-edit.php';
 // функции редактирования
 $result = mso_new_page($data);
 // pr($result);
 if (isset($result['result']) and $result['result']) {
     if (isset($result['result'][0])) {
         $url = '<a href="' . mso_get_permalink_page($result['result'][0]) . '" target="_blank">' . t('Посмотреть запись') . '</a> | ' . '<a href="' . $MSO->config['site_admin_url'] . 'page_edit/' . $result['result'][0] . '">' . t('Изменить') . '</a>';
     } else {
         $url = '';
     }
     echo '<div class="update">' . t('Запись добавлена!') . ' ' . $url . '</div>';
     // . $result['description'];
     if ($url and isset($post['f_return'])) {
         mso_redirect($MSO->config['site_admin_url'] . 'page_edit/' . $result['result'][0], true);
     }
     # остальное на дефолт
     $f_content = '';
     $f_header = '';
Example #2
0
function add_new_page($fn, $UP_DIR)
{
    global $MSO;
    $data = file_get_contents($fn);
    if ($data and preg_match('!(.*?)\\n(---)(.*)!is', $data, $conf)) {
        // только если есть шапка и текст
        if (isset($conf[1]) and isset($conf[3])) {
            $top = trim($conf[1]);
            $text = trim($conf[3]);
            $comments = array();
            // комментарии, если есть
            // в тексте может быть секция ---COMMENTS-START--- ---COMMENTS-END---
            if (preg_match('!(.*?)\\n(---COMMENTS-START---)(.*)\\n(---COMMENTS-END---)!is', $text, $t2)) {
                if (isset($t2[4])) {
                    $text = trim($t2[1]);
                    $comments = trim($t2[3]);
                    // комментарии в свою очередь разбиваются ---
                    $comments = array_map('trim', explode('---', $comments));
                }
            }
            $conf = _parse_key_val($top);
            // _log($conf, 'conf');
            // обязательные поля только TITLE
            if (!isset($conf['TITLE'])) {
                return;
            }
            // формируем данные для постинга
            // дополнительные мета-данные
            // вначале формируем общий массив, после выгоняем его в ##METAFIELD##
            $page_meta_options = array();
            $page_meta_options['title'] = isset($conf['META-TITLE']) ? $conf['META-TITLE'] : '';
            $page_meta_options['description'] = isset($conf['META-DESCRIPTION']) ? $conf['META-DESCRIPTION'] : '';
            $page_meta_options['keywords'] = isset($conf['META-KEYWORDS']) ? $conf['META-KEYWORDS'] : '';
            $page_meta_options['image_for_page'] = isset($conf['META-IMAGE_FOR_PAGE']) ? $conf['META-IMAGE_FOR_PAGE'] : '';
            $page_meta_options['image_for_page_out'] = isset($conf['META-IMAGE_FOR_PAGE_OUT']) ? $conf['META-IMAGE_FOR_PAGE_OUT'] : '';
            $page_meta_options['page_template'] = isset($conf['META-PAGE_TEMPLATE']) ? $conf['META-PAGE_TEMPLATE'] : '';
            $page_meta_options['page_css_profiles'] = isset($conf['META-PAGE_CSS_PROFILES']) ? $conf['META-PAGE_CSS_PROFILES'] : '';
            $page_meta_options['info-top-custom'] = isset($conf['META-INFO-TOP-CUSTOM']) ? $conf['META-INFO-TOP-CUSTOM'] : '';
            $page_meta_options['parser_content'] = isset($conf['META-PARSER_CONTENT']) ? $conf['META-PARSER_CONTENT'] : 'Default';
            // прогоняем текст через парсер
            $parser = $page_meta_options['parser_content'];
            // парсер
            $parser_all = mso_hook('parser_register');
            // все зарегистрированные парсеры
            // если парсеры не зарегистрированы, то ничего не делаем
            if (isset($parser_all[$parser]['content_post_edit'])) {
                $func = $parser_all[$parser]['content_post_edit'];
                // функцию, которую нужно выполнить
                if (function_exists($func)) {
                    $text = $func($text);
                }
                // прогоняем текст через парсер
            }
            $meta_options = '';
            foreach ($page_meta_options as $key => $val) {
                $meta_options .= $key . '##VALUE##' . trim($val) . '##METAFIELD##';
            }
            // TYPE: blog — тип записи — делаем запрос к существующим типам
            // поскольку тип нужно будет преобразовать в его id
            $CI =& get_instance();
            $query = $CI->db->get('page_type');
            $res = $query->result_array();
            $page_type = array();
            foreach ($res as $key => $row) {
                $page_type[$row['page_type_name']] = $row['page_type_id'];
            }
            $type = isset($conf['TYPE']) ? $conf['TYPE'] : 'blog';
            if (isset($page_type[$type])) {
                $page_type_id = $page_type[$type];
            } else {
                $page_type_id = $page_type['blog'];
            }
            // получаем все рубрики, смотрим верно ли они указаны
            // если нет, то рубрику не ставим
            // на выходе массив id реальных рубрик
            $CI->db->select('category_id, category_name, category_slug');
            $CI->db->where('category_type', 'page');
            $query = $CI->db->get('category');
            $all_cats = $query->result_array();
            $cat = array();
            // рубрики указываются CAT_ID или CAT_SLUG или CAT
            if (isset($conf['CAT_ID'])) {
                if ($c1 = mso_explode($conf['CAT_ID'])) {
                    // перебираем и ищем их в $all_cats
                    // если есть добавляем номера в общий $cat
                    foreach ($c1 as $id) {
                        foreach ($all_cats as $catX) {
                            if ($catX['category_id'] == $id) {
                                $cat[] = $id;
                            }
                        }
                    }
                }
            } elseif (isset($conf['CAT_SLUG'])) {
                if ($c1 = mso_explode(strtolower($conf['CAT_SLUG']), false)) {
                    foreach ($c1 as $slug) {
                        foreach ($all_cats as $catX) {
                            if ($catX['category_slug'] == $slug) {
                                $cat[] = $catX['category_id'];
                            }
                        }
                    }
                }
            } elseif (isset($conf['CAT'])) {
                // указанные рубрики разделются /
                $c1 = explode('/', trim(mb_strtolower($conf['CAT'])));
                $c1 = array_map('trim', $c1);
                $c1 = array_map('trim', $c1);
                $c1 = array_unique($c1);
                if ($c1) {
                    foreach ($c1 as $name) {
                        foreach ($all_cats as $catX) {
                            if (mb_strtolower($catX['category_name']) == $name) {
                                $cat[] = $catX['category_id'];
                            }
                        }
                    }
                }
            }
            // _log($cat, 'cat');
            // _log($all_cats, 'all_cats');
            $data = array('page_title' => $conf['TITLE'], 'page_content' => $text, 'page_type_id' => $page_type_id, 'page_meta_options' => $meta_options, 'page_date_publish' => isset($conf['DATE']) ? $conf['DATE'] : date('Y-m-d H:i:s'));
            if (isset($conf['STATUS'])) {
                $data['page_status'] = $conf['STATUS'];
            }
            if (isset($conf['MENU_ORDER'])) {
                $data['page_menu_order'] = (int) $conf['MENU_ORDER'];
            }
            if (isset($conf['COMMENT_ALLOW'])) {
                $data['page_comment_allow'] = $conf['COMMENT_ALLOW'];
            }
            if (isset($conf['PASSWORD'])) {
                $data['page_password'] = $conf['PASSWORD'];
            }
            if (isset($conf['FEED_ALLOW'])) {
                $data['page_feed_allow'] = (int) $conf['FEED_ALLOW'];
            }
            if (isset($conf['ID_AUTHOR'])) {
                $data['page_id_autor'] = (int) $conf['ID_AUTHOR'];
            }
            if (isset($conf['SLUG'])) {
                $data['page_slug'] = $conf['SLUG'];
            }
            if (isset($conf['TAG'])) {
                $data['page_tags'] = $conf['TAG'];
            }
            if ($cat) {
                $data['page_id_cat'] = implode(',', $cat);
            }
            // _log($data, 'mso_new_page');
            // функции редактирования
            require_once getinfo('common_dir') . 'functions-edit.php';
            $result = mso_new_page($data);
            // _log();
            // _log($result, 'result');
            $page_id = 0;
            if (isset($result['result'][0])) {
                $page_id = $result['result'][0];
                echo $result['description'] . ' (' . str_replace($UP_DIR, '', $fn) . '): ID = ' . $page_id;
            } else {
                echo $result['description'] . ' (' . str_replace($UP_DIR, '', $fn) . ')';
            }
            // добавляем комментарии
            if ($page_id and $comments) {
                foreach ($comments as $comment) {
                    $com = _parse_key_val($comment);
                    if (isset($com['comment_content'])) {
                        $comment_content = trim(str_replace("__NR__", "\n", $com['comment_content']));
                        $com_data = array('comments_page_id' => $page_id, 'comments_content' => $comment_content, 'comments_date' => isset($com['comment_date']) ? $com['comment_date'] : date('Y-m-d H:i:s'), 'comments_author_ip' => isset($com['comment_author_IP']) ? $com['comment_author_IP'] : '1.1.1.1', 'comments_approved' => 1, 'comments_author_name' => isset($com['comment_author']) ? $com['comment_author'] : 'Аноним');
                        $CI->db->insert('comments', $com_data);
                    }
                }
            }
        } else {
            echo 'Неверный фрормат файла (' . str_replace($UP_DIR, '', $fn) . ')';
        }
    } else {
        echo 'Неверный фрормат файла (' . str_replace($UP_DIR, '', $fn) . ')';
    }
}
Example #3
0
function mso_remote_f_newpost($post)
{
    if (!isset($post['remote_page_title']) or !$post['remote_page_title']) {
        return 'ERROR: missing arguments (remote_page_title)';
    }
    if (!isset($post['remote_page_content']) or !$post['remote_page_content']) {
        return 'ERROR: missing arguments (remote_page_content)';
    }
    if (!isset($post['remote_page_id_autor']) or !$post['remote_page_id_autor']) {
        return 'ERROR: missing arguments (remote_page_id_autor)';
    }
    // if (!isset($post['remote_page_cat_ids']) or !$post['remote_page_cat_ids']) return 'ERROR: missing arguments (remote_page_cat_ids)';
    // if (!isset($post['remote_page_tags']) or !$post['remote_page_tags']) return 'ERROR: missing arguments (remote_page_tags)';
    // if (!isset($post['remote_page_slug']) or !$post['remote_page_slug']) return 'ERROR: missing arguments (remote_page_slug)';
    // if (!isset($post['remote_page_date_publish']) or !$post['remote_page_date_publish']) return 'ERROR: missing arguments (remote_page_date_publish)';
    // if (!isset($post['remote_page_type_id']) or !$post['remote_page_type_id']) return 'ERROR: missing arguments ()';
    // if (!isset($post['remote_page_status']) or !$post['remote_page_status']) return 'ERROR: missing arguments (remote_page_status)';
    // if (!isset($post['remote_page_password']) or !$post['remote_page_password']) return 'ERROR: missing arguments (remote_page_password)';
    // if (!isset($post['remote_page_id_parent']) or !$post['remote_page_id_parent']) return 'ERROR: missing arguments (remote_page_id_parent)';
    // if (!isset($post['remote_page_meta_options']) or !$post['remote_page_meta_options']) return 'ERROR: missing arguments (remote_page_meta_options)';
    $f_comment_allow = isset($post['remote_page_comment_allow']) ? '1' : '0';
    $f_ping_allow = isset($post['remote_page_ping_allow']) ? '1' : '0';
    $f_feed_allow = isset($post['remote_page_feed_allow']) ? '1' : '0';
    $f_date_change = isset($post['remote_page_date_change']) ? '1' : '0';
    // сменить дату?
    if ($f_date_change and isset($post['remote_page_date_publish']) and $post['remote_page_date_publish']) {
        $f_date_publish = $post['remote_page_date_publish'];
    } else {
        $f_date_publish = false;
    }
    $data = array('page_title' => $post['remote_page_title'], 'page_content' => $post['remote_page_content'], 'page_comment_allow' => $f_comment_allow, 'page_ping_allow' => $f_ping_allow, 'page_feed_allow' => $f_feed_allow, 'user_login' => $post['remote_users_login'], 'password' => $post['remote_users_password'], 'page_id_autor' => $post['remote_page_id_autor']);
    if ($f_date_publish) {
        $data['page_date_publish'] = $f_date_publish;
    }
    if (isset($post['remote_page_slug'])) {
        $data['page_slug'] = $post['remote_page_slug'];
    }
    if (isset($post['remote_page_tags'])) {
        $data['page_tags'] = $post['remote_page_tags'];
    }
    if (isset($post['remote_page_type_id'])) {
        $data['page_type_id'] = $post['remote_page_type_id'];
    }
    if (isset($post['remote_page_status'])) {
        $data['page_status'] = $post['remote_page_status'];
    }
    if (isset($post['remote_page_password'])) {
        $data['page_password'] = $post['remote_page_password'];
    }
    if (isset($post['remote_page_id_parent'])) {
        $data['page_id_parent'] = $post['remote_page_id_parent'];
    }
    if (isset($post['remote_page_meta_options'])) {
        $data['page_meta_options'] = $post['remote_page_meta_options'];
    }
    if (isset($post['remote_page_id_cat'])) {
        $data['page_id_cat'] = $post['remote_page_id_cat'];
    }
    //return pr($data, false, false);
    require_once getinfo('common_dir') . 'functions-edit.php';
    // функции редактирования
    $result = mso_new_page($data);
    if (isset($result['result']) and $result['result']) {
        mso_flush_cache();
        // сбросим кэш
        $out = 'OK: ' . $result['description'] . '#' . $result['result'][0] . '#' . $result['result'][1] . '#' . $result['result'][2];
        // status
        // return pr($result['result'], false, false);
        return $out;
    } else {
        $out = 'ERROR: ' . $result['description'];
        return $out;
    }
}
Example #4
0
function mso_remote_f_newpost($post)
{
    if ($post = mso_check_post(array('page_title', 'page_content', 'page_cat_ids', 'page_tags', 'page_slug', 'page_date_publish', 'page_type_id', 'page_status', 'page_password', 'page_id_parent', 'page_meta_options'))) {
        $f_comment_allow = isset($post['page_comment_allow']) ? '1' : '0';
        $f_ping_allow = isset($post['page_ping_allow']) ? '1' : '0';
        $f_feed_allow = isset($post['page_feed_allow']) ? '1' : '0';
        $data = array('page_title' => $post['page_title'], 'page_content' => $post['page_content'], 'page_cat_ids' => $post['page_cat_ids'], 'page_tags' => $post['page_tags'], 'page_slug' => $post['page_slug'], 'page_comment_allow' => $f_comment_allow, 'page_ping_allow' => $f_ping_allow, 'page_feed_allow' => $f_feed_allow, 'page_date_publish' => $post['page_date_publish'], 'page_type_id' => $post['page_type_id'], 'page_status' => $post['page_status'], 'page_password' => $post['page_password'], 'page_id_parent' => $post['page_id_parent'], 'page_meta_options' => $post['page_meta_options'], 'page_id_autor' => getinfo('users_id'));
        require_once getinfo('common_dir') . 'functions-edit.php';
        // функции редактирования
        $result = mso_new_page($data);
        if (isset($result['result']) and $result['result']) {
            mso_flush_cache();
            // сбросим кэш
            $out = 'OK: ' . $result['description'];
            return $out;
        } else {
            $out = 'ERROR: ' . $result['description'];
            return $out;
        }
    } else {
        $out = 'ERROR: ' . 'missing arguments';
        return $out;
    }
}