当前位置: 首页>>代码示例>>PHP>>正文


PHP Post::insert方法代码示例

本文整理汇总了PHP中Post::insert方法的典型用法代码示例。如果您正苦于以下问题:PHP Post::insert方法的具体用法?PHP Post::insert怎么用?PHP Post::insert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Post的用法示例。


在下文中一共展示了Post::insert方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: send

 public function send()
 {
     $author = !empty($_POST['author']) ? strip_tags($_POST['author']) : '';
     $content = !empty($_POST['content']) ? htmlspecialchars($_POST['content']) : '';
     $errors = array();
     if (!empty($_POST)) {
         $post = new Post();
         foreach ($_POST as $key => $value) {
             try {
                 $post->{$key} = $value;
             } catch (Exception $e) {
                 $errors[$key] = $e->getMessage();
             }
         }
         if (empty($errors)) {
             $result_id = $post->insert();
             if ($result_id > 0) {
                 header('Location: post.php?id=' . $result_id);
                 exit;
             }
             $errors['internal error'] = 'An error occured, please try again later';
         }
     }
     $vars = array('author' => $author, 'content' => $content, 'errors' => $errors);
     Post::displayTemplate('send.tpl', $vars);
 }
开发者ID:vincenthib,项目名称:jdc-poo,代码行数:26,代码来源:PostController.class.php

示例2: run

 public function run()
 {
     // Common data
     $common = array('user_id' => 1, 'content' => file_get_contents(__DIR__ . '/post-content.txt'));
     // Initialize empty array
     $posts = array();
     // Blog post 1
     $date = new DateTime();
     $posts[] = array_merge($common, array('title' => 'Lorem ipsum dolor sit amet', 'slug' => 'lorem-ipsum-dolor-sit-amet', 'created_at' => $date->modify('-10 day'), 'updated_at' => $date->modify('-10 day')));
     // Blog post 2
     $date = new DateTime();
     $posts[] = array_merge($common, array('title' => 'Vivendo suscipiantur vim te vix', 'slug' => 'vivendo-suscipiantur-vim-te-vix', 'created_at' => $date->modify('-4 day'), 'updated_at' => $date->modify('-4 day')));
     // Blog post 3
     $date = new DateTime();
     $posts[] = array_merge($common, array('title' => 'In iisque similique reprimique eum', 'slug' => 'in-iisque-similique-reprimique-eum', 'created_at' => $date->modify('-2 day'), 'updated_at' => $date->modify('-2 day')));
     // Delete all the blog posts
     DB::table('posts')->truncate();
     // Insert the blog posts
     Post::insert($posts);
 }
开发者ID:forestallers,项目名称:laravel-starter-kit,代码行数:20,代码来源:PostsSeeder.php

示例3: insertProcess

function insertProcess()
{
    $send = Request::get('send');
    $valid = Validator::make(array('send.title' => 'min:1|slashes', 'send.keywords' => 'slashes', 'tags' => 'slashes', 'send.catid' => 'slashes', 'send.type' => 'slashes', 'send.allowcomment' => 'slashes'));
    if (!$valid) {
        throw new Exception("Error Processing Request: " . Validator::getMessage());
    }
    $friendlyUrl = trim(String::makeFriendlyUrl($send['title']));
    $getData = Post::get(array('where' => "where friendly_url='{$friendlyUrl}'"));
    if (isset($getData[0]['postid'])) {
        throw new Exception("This post exists in database.");
    }
    $uploadMethod = Request::get('uploadMethod');
    switch ($uploadMethod) {
        case 'frompc':
            if (Request::hasFile('imageFromPC')) {
                if (Request::isImage('imageFromPC')) {
                    $send['image'] = File::upload('imageFromPC');
                }
            }
            break;
        case 'fromurl':
            if (Request::isImage('imageFromUrl')) {
                $url = Request::get('imageFromUrl');
                $send['image'] = File::upload('uploadFromUrl');
            }
            break;
    }
    $send['userid'] = Users::getCookieUserId();
    if (!Request::has('send.catid')) {
        $loadCat = Categories::get(array('limitShow' => 1));
        if (isset($loadCat[0]['catid'])) {
            $send['catid'] = $loadCat[0]['catid'];
        }
    }
    if (!($id = Post::insert($send))) {
        throw new Exception("Error. " . Database::$error);
    }
    $tags = trim(Request::get('tags'));
    $parse = explode(',', $tags);
    $total = count($parse);
    $insertData = array();
    for ($i = 0; $i < $total; $i++) {
        $insertData[$i]['title'] = trim($parse[$i]);
        $insertData[$i]['postid'] = $id;
    }
    PostTags::insert($insertData);
}
开发者ID:neworldwebsites,项目名称:noblessecms,代码行数:48,代码来源:post.php

示例4: action_auth_ajax_wp_import_posts


//.........这里部分代码省略.........
         // should we import categories as tags too?
         if ($inputs['category_import']) {
             // then do the same as above for the category taxonomy
             $categories = $wpdb->get_results($taxonomy_query, array(':taxonomy' => 'category', ':object_id' => $post->id));
         }
         // create the new post
         $p = new Post(array('title' => MultiByte::convert_encoding($post->post_title), 'content' => MultiByte::convert_encoding($post->post_content), 'user_id' => $user_map[$post->post_author], 'pubdate' => HabariDateTime::date_create($post->post_date), 'updated' => HabariDateTime::date_create($post->post_modified), 'slug' => MultiByte::convert_encoding($post->post_name)));
         // figure out the post type
         switch ($post->post_type) {
             case 'post':
                 $p->content_type = Post::type('entry');
                 break;
             case 'page':
                 $p->content_type = Post::type('page');
                 break;
             default:
                 // we're not importing other types - continue 2 to break out of the switch and the loop and continue to the next post
                 continue 2;
         }
         // figure out the post status
         switch ($post->post_status) {
             case 'publish':
                 $p->status = Post::status('published');
                 break;
             case 'future':
                 $p->status = Post::status('scheduled');
                 break;
             case 'pending':
                 // means pending-review, not pending as in scheduled
             // means pending-review, not pending as in scheduled
             case 'draft':
                 $p->status = Post::status('draft');
                 break;
             default:
                 // Post::status() returns false if it doesn't recognize the status type
                 $status = Post::status($post->post_status);
                 // store in a temp value because if you try and set ->status to an invalid value the Post class freaks
                 if ($status == false) {
                     // we're not importing statuses we don't recognize - continue 2 to break out of the switch and the loop and continue to the next post
                     continue 2;
                 } else {
                     $p->status = $status;
                 }
                 break;
         }
         // if comments are closed, disable them on the new post
         if ($post->comment_status == 'closed') {
             $p->info->comments_disabled = true;
         }
         // save the old post ID in info
         $p->info->wp_id = $post->id;
         // since we're not using it, save the old GUID too
         $p->info->wp_guid = $post->guid;
         // now that we've got all the pieces in place, save the post
         try {
             $p->insert();
             // now that the post is in the db we can add tags to it
             // first, if we want to import categories as tags, add them to the array
             if ($inputs['category_import']) {
                 $tags = array_merge($tags, $categories);
             }
             // now for the tags!
             foreach ($tags as $tag) {
                 // try to get the tag by slug, which is the key and therefore the most unique
                 $t = Tags::get_by_slug($tag->slug);
                 // if we didn't get back a tag, create a new one
                 if ($t == false) {
                     $t = Tag::create(array('term' => $tag->slug, 'term_display' => $tag->name));
                 }
                 // now that we have a tag (one way or the other), associate this post with it
                 $t->associate('post', $p->id);
             }
         } catch (Exception $e) {
             EventLog::log($e->getMessage(), 'err');
             echo '<p class="error">' . _t('There was an error importing post %s. See the EventLog for the error message.', array($post->post_title));
             echo '<p>' . _t('Rolling back changes&hellip;') . '</p>';
             // rollback all changes before we return so the import hasn't changed anything yet
             DB::rollback();
             // and return so they don't get AJAX to send them on to the next step
             return false;
         }
     }
     // if we've finished without an error, commit the import
     DB::commit();
     if ($max < $num_posts) {
         // if there are more posts to import
         // get the next ajax url
         $ajax_url = URL::get('auth_ajax', array('context' => 'wp_import_posts'));
         // bump the import index by one so we get a new batch next time
         $inputs['import_index']++;
     } else {
         // move on to importing comments
         // get the next ajax url
         $ajax_url = URL::get('auth_ajax', array('context' => 'wp_import_comments'));
         // reset the import index so we start at the first comment
         $inputs['import_index'] = 0;
     }
     // and spit out ajax to send them to the next step - posts!
     echo $this->get_ajax($ajax_url, $inputs);
 }
开发者ID:ringmaster,项目名称:system,代码行数:101,代码来源:wpimport.plugin.php

示例5: action_auth_ajax_mt_file_import_all

 /**
  * action: auth_ajax_mt_file_import_all
  *
  * @access public
  * @param array $handler
  */
 public function action_auth_ajax_mt_file_import_all($handler)
 {
     $text = file_get_contents($_SESSION['mtimport_mt_file']);
     try {
         $parser = new MTFileParser($text);
     } catch (Exception $e) {
         echo '<p>' . _t('Failed parsing File: ') . $e->getMessage() . '</p>';
         return;
     }
     $posts = $parser->getResult();
     @reset($posts);
     while (list(, $mt_post) = @each($posts)) {
         // Post
         $t_post = array();
         $tags = array();
         if (isset($mt_post['_META']['BASENAME'])) {
             $t_post['slug'] = $mt_post['_META']['BASENAME'];
         }
         $t_post['content_type'] = Post::type('entry');
         $t_post['title'] = strip_tags(htmlspecialchars_decode(MultiByte::convert_encoding($mt_post['_META']['TITLE'])));
         if (isset($mt_post['EXTENDED BODY']['_BODY'])) {
             $t_post['content'] = MultiByte::convert_encoding($mt_post['BODY']['_BODY'] . $mt_post['EXTENDED BODY']['_BODY']);
         } else {
             $t_post['content'] = MultiByte::convert_encoding($mt_post['BODY']['_BODY']);
         }
         if (!isset($mt_post['_META']['STATUS']) || $mt_post['_META']['STATUS'] == 'Publish') {
             $t_post['status'] = Post::status('published');
         } else {
             $t_post['status'] = Post::status('draft');
         }
         $t_post['pubdate'] = $t_post['updated'] = HabariDateTime::date_create($mt_post['_META']['DATE']);
         if (isset($mt_post['_META']['CATEGORY'])) {
             $tags = array_merge($tags, $mt_post['_META']['CATEGORY']);
         }
         if (isset($mt_post['_META']['TAGS'])) {
             $t_tags = explode(',', $mt_post['_META']['TAGS']);
             $t_tags = array_map('trim', $t_tags, array('"'));
             $tags = array_merge($tags, $t_tags);
         }
         $post = new Post($t_post);
         if (isset($mt_post['_META']['ALLOW COMMENTS']) && $mt_post['_META']['ALLOW COMMENTS'] != 1) {
             $post->info->comments_disabled = 1;
         }
         $post->tags = array_unique($tags);
         $post->user_id = User::identify()->id;
         // TODO: import MT author
         try {
             $post->insert();
         } catch (Exception $e) {
             EventLog::log($e->getMessage(), 'err', null, null, print_r(array($p, $e), 1));
             Session::error($e->getMessage());
             $errors = Options::get('import_errors');
             $errors[] = $p->title . ' : ' . $e->getMessage();
             Options::set('import_errors', $errors);
         }
         // Comments
         if (isset($mt_post['COMMENT'])) {
             @reset($mt_post['COMMENT']);
             while (list(, $mt_comment) = @each($mt_post['COMMENT'])) {
                 $t_comment = array();
                 $t_comment['post_id'] = $post->id;
                 $t_comment['name'] = MultiByte::convert_encoding($mt_comment['AUTHOR']);
                 if (isset($mt_comment['EMAIL'])) {
                     $t_comment['email'] = $mt_comment['EMAIL'];
                 }
                 if (isset($mt_comment['URL'])) {
                     $t_comment['url'] = strip_tags($mt_comment['URL']);
                 }
                 if (isset($mt_comment['IP'])) {
                     $t_comment['ip'] = $mt_comment['IP'];
                 }
                 $t_comment['content'] = MultiByte::convert_encoding($mt_comment['_BODY']);
                 $t_comment['status'] = Comment::STATUS_APPROVED;
                 $t_comment['date'] = HabariDateTime::date_create($mt_comment['DATE']);
                 $t_comment['type'] = Comment::COMMENT;
                 $comment = new Comment($t_comment);
                 try {
                     $comment->insert();
                 } catch (Exception $e) {
                     EventLog::log($e->getMessage(), 'err', null, null, print_r(array($c, $e), 1));
                     Session::error($e->getMessage());
                     $errors = Options::get('import_errors');
                     $errors[] = $e->getMessage();
                     Options::set('import_errors', $errors);
                 }
             }
         }
         // Trackbacks
         if (isset($mt_post['PING'])) {
             @reset($mt_post['PING']);
             while (list(, $mt_comment) = @each($mt_post['PING'])) {
                 $t_comment = array();
                 $t_comment['post_id'] = $post->id;
                 $t_comment['name'] = MultiByte::convert_encoding($mt_comment['BLOG NAME'] . ' - ' . $mt_comment['TITLE']);
//.........这里部分代码省略.........
开发者ID:habari-extras,项目名称:mtimport,代码行数:101,代码来源:mtimport.plugin.php

示例6: action_auth_ajax_blogger_import_all

 /**
  * action: auth_ajax_blogger_import_all
  *
  * @access public
  * @param array $handler
  */
 public function action_auth_ajax_blogger_import_all($handler)
 {
     $feed = simplexml_load_file($_SESSION['bloggerimport_file']);
     if (!$feed) {
         echo '<p>' . _t('Failed parsing File', 'bloggerimport') . '</p>';
         return;
     }
     $post_id_map = array();
     $post_map = array();
     $result = DB::get_results("SELECT post_id,value FROM " . DB::table('postinfo') . " WHERE name='blogger_id';");
     for ($i = 0; $i < count($result); $i++) {
         $post_id_map[$result[$i]->value] = $result[$i]->post_id;
         $post_map[] = $result[$i]->value;
     }
     $comment_map = DB::get_column("SELECT value FROM " . DB::table('commentinfo') . " WHERE name='blogger_id';");
     $entry_count = count($feed->entry);
     for ($i = 0; $i < $entry_count; $i++) {
         $entry = $feed->entry[$i];
         switch ((string) $entry->category[0]['term']) {
             // post
             case 'http://schemas.google.com/blogger/2008/kind#post':
                 // already exists skipped
                 if (in_array((string) $entry->id, $post_map)) {
                     continue;
                 }
                 $t_post = array();
                 $t_post['title'] = MultiByte::convert_encoding((string) $entry->title);
                 $t_post['content'] = MultiByte::convert_encoding((string) $entry->content);
                 $t_post['user_id'] = User::identify()->id;
                 // TODO: import Blogger author
                 $t_post['pubdate'] = HabariDateTime::date_create((string) $entry->published);
                 $t_post['content_type'] = Post::type('entry');
                 $entry->registerXPathNamespace('app', 'http://purl.org/atom/app#');
                 $result = $entry->xpath('//app:draft');
                 if (!empty($result) && (string) $result[0] == 'yes') {
                     $t_post['status'] = Post::status('draft');
                 } else {
                     $t_post['status'] = Post::status('published');
                 }
                 $tags = array();
                 $category_count = count($entry->category);
                 for ($j = 0; $j < count($category_count); $j++) {
                     $tags[] = (string) $entry->category[$i]['term'];
                 }
                 $post = new Post($t_post);
                 $post->tags = array_unique($tags);
                 $post->info->blogger_id = (string) $entry->id;
                 try {
                     $post->insert();
                 } catch (Exception $e) {
                     EventLog::log($e->getMessage(), 'err', null, null, print_r(array($p, $e), 1));
                     Session::error($e->getMessage());
                     $errors = Options::get('import_errors');
                     $errors[] = $post->title . ' : ' . $e->getMessage();
                     Options::set('import_errors', $errors);
                 }
                 $post_id_map[(string) $entry->id] = $post->id;
                 break;
                 // comment
             // comment
             case 'http://schemas.google.com/blogger/2008/kind#comment':
                 // already exists skipped
                 if (in_array((string) $entry->id, $comment_map)) {
                     continue;
                 }
                 $result = $entry->xpath('//thr:in-reply-to');
                 if (empty($result) || !isset($post_id_map[(string) $result[0]['ref']])) {
                     continue;
                 }
                 $t_comment = array();
                 $t_comment['post_id'] = $post_id_map[(string) $result[0]['ref']];
                 $t_comment['name'] = MultiByte::convert_encoding((string) $entry->author->name);
                 if (isset($entry->author->email)) {
                     $t_comment['email'] = (string) $entry->author->email;
                 }
                 if (isset($entry->author->uri)) {
                     $t_comment['url'] = (string) $entry->author->uri;
                 }
                 $t_comment['content'] = MultiByte::convert_encoding((string) $entry->content);
                 $t_comment['status'] = Comment::STATUS_APPROVED;
                 $t_comment['date'] = HabariDateTime::date_create((string) $entry->published);
                 $t_comment['type'] = Comment::COMMENT;
                 $comment = new Comment($t_comment);
                 $comment->info->blogger_id = (string) $entry->id;
                 try {
                     $comment->insert();
                 } catch (Exception $e) {
                     EventLog::log($e->getMessage(), 'err', null, null, print_r(array($c, $e), 1));
                     Session::error($e->getMessage());
                     $errors = Options::get('import_errors');
                     $errors[] = $e->getMessage();
                     Options::set('import_errors', $errors);
                 }
                 break;
//.........这里部分代码省略.........
开发者ID:habari-extras,项目名称:bloggerimport,代码行数:101,代码来源:bloggerimport.plugin.php

示例7: action_auth_ajax_drupal_import_posts

    /**
     * The plugin sink for the auth_ajax_drupal_import_posts hook.
     * Responds via authenticated ajax to requests for post importing.
     *
     * @param AjaxHandler $handler The handler that handled the request, contains $_POST info
     */
    public function action_auth_ajax_drupal_import_posts($handler)
    {
        $valid_fields = array('db_name', 'db_host', 'db_user', 'db_pass', 'db_prefix', 'import_comments', 'postindex', 'entry_type', 'page_type', 'tag_vocab');
        $inputs = array_intersect_key($_POST->getArrayCopy(), array_flip($valid_fields));
        extract($inputs);
        $drupaldb = $this->drupal_connect($db_host, $db_name, $db_user, $db_pass, $db_prefix);
        if ($drupaldb) {
            $postcount = $drupaldb->get_value("SELECT count( nid ) FROM {$db_prefix}node WHERE type IN ( '{$entry_type}', '{$page_type}' );");
            $min = $postindex * DRUPAL_IMPORT_BATCH + ($postindex == 0 ? 0 : 1);
            $max = min(($postindex + 1) * DRUPAL_IMPORT_BATCH, $postcount);
            $user_map = array();
            $userinfo = DB::table('userinfo');
            $user_info = DB::get_results("SELECT user_id, value FROM {$userinfo} WHERE name= 'drupal_uid';");
            foreach ($user_info as $info) {
                $user_map[$info->value] = $info->user_id;
            }
            echo "<p>Importing posts {$min}-{$max} of {$postcount}.</p>";
            $posts = $drupaldb->get_results("\n\t\t\t\tSELECT\n\t\t\t\t\tn.nid,\n\t\t\t\t\tnr.body as content,\n\t\t\t\t\tn.title,\n\t\t\t\t\tn.uid as user_id,\n\t\t\t\t\tFROM_UNIXTIME( n.created ) as pubdate,\n\t\t\t\t\tFROM_UNIXTIME( n.changed ) as updated,\n\t\t\t\t\tn.status as post_status,\n\t\t\t\t\tn.type as post_type\n\t\t\t\tFROM {$db_prefix}node AS n\n\t\t\t\tINNER JOIN {$db_prefix}node_revisions AS nr ON (nr.vid = n.vid)\n\t\t\t\tORDER BY n.nid DESC\n\t\t\t\tLIMIT {$min}, " . DRUPAL_IMPORT_BATCH, array(), 'Post');
            $post_map = DB::get_column("SELECT value FROM {postinfo} WHERE name='drupal_nid';");
            foreach ($posts as $post) {
                if (in_array($post->nid, $post_map)) {
                    continue;
                }
                if ($tag_vocab) {
                    $tags = $drupaldb->get_column("SELECT DISTINCT td.name\n\t\t\t\t\t\tFROM {$db_prefix}term_node AS tn\n\t\t\t\t\t\tINNER JOIN {$db_prefix}term_data AS td ON (td.tid = tn.tid AND td.vid = {$tag_vocab})\n\t\t\t\t\t\tWHERE tn.nid = {$post->nid}");
                } else {
                    $tags = array();
                }
                $post->content = MultiByte::convert_encoding($post->content);
                $post->title = MultiByte::convert_encoding($post->title);
                $post_array = $post->to_array();
                switch ($post_array['post_status']) {
                    case '1':
                        $post_array['status'] = Post::status('published');
                        break;
                    default:
                        $post_array['status'] = Post::status('draft');
                        break;
                }
                unset($post_array['post_status']);
                switch ($post_array['post_type']) {
                    case $entry_type:
                        $post_array['content_type'] = Post::type('entry');
                        break;
                    case $page_type:
                        $post_array['content_type'] = Post::type('page');
                        break;
                }
                unset($post_array['post_type']);
                $post_array['content'] = preg_replace('/<!--\\s*break\\s*-->/', '<!--more-->', $post_array['content']);
                $p = new Post($post_array);
                $p->id = null;
                $p->user_id = $user_map[$p->user_id];
                $p->tags = $tags;
                $p->info->drupal_nid = $post_array['nid'];
                // Store the Drupal post id in the post_info table for later
                $p->exclude_fields(array('nid'));
                try {
                    $p->insert();
                } catch (Exception $e) {
                    EventLog::log($e->getMessage(), 'err', null, null, print_r(array($p, $e), 1));
                    $errors = Options::get('import_errors');
                    $errors[] = $p->title . ' : ' . $e->getMessage();
                    Options::set('import_errors', $errors);
                }
            }
            if ($max < $postcount) {
                $ajax_url = URL::get('auth_ajax', array('context' => 'drupal_import_posts'));
                $postindex++;
                echo <<<DRUPAL_IMPORT_AJAX1
\t\t\t\t\t<script type="text/javascript">
\t\t\t\t\t\$( '#import_progress' ).load(
\t\t\t\t\t\t"{$ajax_url}",
\t\t\t\t\t\t{
\t\t\t\t\t\t\tdb_host: "{$db_host}",
\t\t\t\t\t\t\tdb_name: "{$db_name}",
\t\t\t\t\t\t\tdb_user: "{$db_user}",
\t\t\t\t\t\t\tdb_pass: "{$db_pass}",
\t\t\t\t\t\t\tdb_prefix: "{$db_prefix}",
\t\t\t\t\t\t\timport_comments: "{$import_comments}",
\t\t\t\t\t\t\tentry_type: "{$entry_type}",
\t\t\t\t\t\t\tpage_type: "{$page_type}",
\t\t\t\t\t\t\ttag_vocab: "{$tag_vocab}",
\t\t\t\t\t\t\tpostindex: {$postindex}
\t\t\t\t\t\t}
\t\t\t\t\t );

\t\t\t\t</script>
DRUPAL_IMPORT_AJAX1;
            } else {
                $ajax_url = URL::get('auth_ajax', array('context' => 'drupal_import_comments'));
                echo <<<DRUPAL_IMPORT_AJAX2
\t\t\t\t\t<script type="text/javascript">
\t\t\t\t\t\$( '#import_progress' ).load(
//.........这里部分代码省略.........
开发者ID:habari-extras,项目名称:drupalimport,代码行数:101,代码来源:drupalimport.plugin.php

示例8: action_auth_ajax_chyrp_import_posts

    /**
     * The plugin sink for the auth_ajax_chyrp_import_posts hook.
     * Responds via authenticated ajax to requests for post importing.
     *
     * @param AjaxHandler $handler The handler that handled the request, contains $_POST info
     */
    public function action_auth_ajax_chyrp_import_posts($handler)
    {
        $inputs = $_POST->filter_keys('db_type', 'db_name', 'db_host', 'db_user', 'db_pass', 'postindex');
        foreach ($inputs as $key => $value) {
            ${$key} = $value;
        }
        $connect_string = $this->get_connect_string($db_type, $db_host, $db_name);
        $db = $this->chryp_connect($connect_string, $db_user, $db_pass);
        if ($db) {
            DB::begin_transaction();
            $postcount = $db->get_value("SELECT count(id) FROM posts;");
            $min = $postindex * IMPORT_BATCH + ($postindex == 0 ? 0 : 1);
            $max = min(($postindex + 1) * IMPORT_BATCH, $postcount);
            // old_id was set when we imported the users
            $user_map = array();
            $user_info = DB::get_results("SELECT user_id, value FROM {userinfo} WHERE name='old_id';");
            foreach ($user_info as $info) {
                $user_map[$info->value] = $info->user_id;
            }
            // Posts
            // id INTEGER PRIMARY KEY AUTOINCREMENT,
            // feather VARCHAR(32) DEFAULT '',
            // clean VARCHAR(128) DEFAULT '',
            // url VARCHAR(128) DEFAULT '',
            // pinned BOOLEAN DEFAULT FALSE,
            // status VARCHAR(32) DEFAULT 'public',
            // user_id INTEGER DEFAULT 0,
            // created_at DATETIME DEFAULT NULL,
            // updated_at DATETIME DEFAULT NULL
            //
            // Post attributes
            // post_id INTEGER NOT NULL ,
            // name VARCHAR(100) DEFAULT '',
            // value LONGTEXT,
            echo "<p>Importing posts {$min}-{$max} of {$postcount}.</p>";
            $posts = $db->get_results("\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tattr_body.value as content,\r\n\t\t\t\t\tid,\r\n\t\t\t\t\tattr_title.value as title,\r\n\t\t\t\t\tuser_id,\r\n\t\t\t\t\tcreated_at as pubdate,\r\n\t\t\t\t\tupdated_at as updated,\r\n\t\t\t\t\tupdated_at as modified,\r\n\t\t\t\t\tstatus\r\n\t\t\t\tFROM posts\r\n\t\t\t\tINNER JOIN post_attributes attr_title ON posts.id = attr_title.post_id AND attr_title.name = 'title'\r\n\t\t\t\tINNER JOIN post_attributes attr_body ON posts.id = attr_body.post_id AND attr_body.name = 'body'\r\n\t\t\t\tORDER BY id DESC\r\n\t\t\t\tLIMIT {$min}, " . IMPORT_BATCH, array(), 'Post');
            $post_map = DB::get_column("SELECT value FROM {postinfo} WHERE name='old_id';");
            foreach ($posts as $post) {
                if (in_array($post->id, $post_map)) {
                    continue;
                }
                $post_array = $post->to_array();
                $post_array['content_type'] = Post::type('entry');
                $p = new Post($post_array);
                $p->slug = $post->slug;
                if (isset($user_map[$p->user_id])) {
                    $p->user_id = $user_map[$p->user_id];
                } else {
                    $errors = Options::get('import_errors');
                    $errors[] = _t('Post author id %s was not found in the external database, assigning post "%s" (external post id #%d) to current user.', array($p->user_id, $p->title, $post_array['id']));
                    Options::set('import_errors', $errors);
                    $p->user_id = User::identify()->id;
                }
                $p->guid = $p->guid;
                // Looks fishy, but actually causes the guid to be set.
                $p->info->old_id = $post_array['id'];
                // Store the old post id in the post_info table for later
                try {
                    $p->insert();
                    $p->updated = $post_array['updated'];
                    $p->update();
                } catch (Exception $e) {
                    EventLog::log($e->getMessage(), 'err', null, null, print_r(array($p, $e), 1));
                    Session::error($e->getMessage());
                    $errors = Options::get('import_errors');
                    $errors[] = $p->title . ' : ' . $e->getMessage();
                    Options::set('import_errors', $errors);
                }
            }
            if (DB::in_transaction()) {
                DB::commit();
            }
            if ($max < $postcount) {
                $ajax_url = URL::get('auth_ajax', array('context' => 'chyrp_import_posts'));
                $postindex++;
                $vars = Utils::addslashes(array('host' => $db_host, 'name' => $db_name, 'user' => $db_user, 'pass' => $db_pass));
                echo <<<IMPORT_POSTS
\t\t\t\t\t<script type="text/javascript">
\t\t\t\t\t\$( '#import_progress' ).load(
\t\t\t\t\t\t"{$ajax_url}",
\t\t\t\t\t\t{
\t\t\t\t\t\t\tdb_type: "{$db_type}",
\t\t\t\t\t\t\tdb_host: "{$vars['host']}",
\t\t\t\t\t\t\tdb_name: "{$vars['name']}",
\t\t\t\t\t\t\tdb_user: "{$vars['user']}",
\t\t\t\t\t\t\tdb_pass: "{$vars['pass']}",
\t\t\t\t\t\t\tpostindex: {$postindex}
\t\t\t\t\t\t}
\t\t\t\t\t);

\t\t\t\t</script>
IMPORT_POSTS;
            } else {
                EventLog::log('Import complete from "' . $db_name . '"');
//.........这里部分代码省略.........
开发者ID:habari-extras,项目名称:chyrpimport,代码行数:101,代码来源:chyrpimport.plugin.php

示例9: create

 public function create($router, $user_id, $category_id, $category, $title, $content, $tag)
 {
     if ($user_id) {
         if ($category) {
             $cate = (new Category())->eq('name', $category)->find();
             if (!$cate->id) {
                 $cate->name = $category;
                 $cate->count = 0;
                 $cate->insert();
             }
             $category_id = $cate->id;
         }
         $post = new Post(array('user_id' => (int) $user_id, 'category_id' => intval($category_id), 'title' => $title, 'content' => $content, 'time' => time()));
         $post->insert()->updateTag($tag)->updateCategory();
         $router->error(302, '/post/' . $post->id . '/view', true);
     }
     $this->initSilder();
     $this->cates = (new Category())->findAll();
     $this->user = (new User())->find(1);
     $this->render('post.html');
 }
开发者ID:bephp,项目名称:blog,代码行数:21,代码来源:controller.php

示例10: jkcomics_import_comic_from_file

function jkcomics_import_comic_from_file($file, $categoryId, $path)
{
    $output = array();
    $fullFilePath = $path . '/' . $file;
    $output[] = $fullFilePath;
    //$output[] = $file;
    $fileWithoutExtension = preg_replace('/\\.[^.\\s]{3,4}$/', '', $file);
    $post_filename_parts = explode('_', $fileWithoutExtension);
    if (count($post_filename_parts) != 2) {
        $output[] = 'file error';
        return implode("\n", $output);
    }
    $comic_date = array('y' => '', 'm' => '', 'd' => '');
    $comic_date['y'] = $post_filename_parts[0];
    $comic_date['m'] = substr($post_filename_parts[1], 0, -2);
    $comic_date['m'] = sprintf('%02d', $comic_date['m']);
    $comic_date['d'] = substr($post_filename_parts[1], -2);
    $comic_date['d'] = sprintf('%02d', $comic_date['d']);
    $comic_title = $comic_date['m'] . '-' . $comic_date['d'] . '-' . $comic_date['y'];
    //see if comic exists
    $existingPage = get_page_by_title($comic_title, 'OBJECT', 'jkcomic');
    if ($existingPage) {
        $output[] = $comic_title . ' post exists';
    } else {
        $output[] = $comic_title . ' post does not exist';
        $post = new Post();
        $post->type = 'jkcomic';
        $post->title = $comic_title;
        $post->setDate($comic_date['y'] . '-' . $comic_date['m'] . '-' . $comic_date['d']);
        $existingPage = $post->insert();
    }
    if ($existingPage) {
        //Attach taxonomy
        wp_set_post_terms($existingPage->ID, array($categoryId), 'comic_types');
        //Attach image
        $existingAttachmentId = get_post_meta($existingPage->ID, '_thumbnail_id', true);
        $output[] = '<br/>' . $existingAttachmentId . '<br/>';
        if (empty($existingAttachmentId)) {
            $attachment = new Attachment();
            $output[] = $attachment->uploadFeaturedImage($fullFilePath, $existingPage->ID);
        }
    }
    //return
    return implode("\n", $output);
}
开发者ID:kilrizzy,项目名称:WP-JK-Comics,代码行数:45,代码来源:jk-comics.php

示例11: filter_handle_thread_reply

 /**
  * Handler thread creation form
  */
 public function filter_handle_thread_reply($output, $form, $thread, $forum)
 {
     if (!self::has_permission('reply', $thread)) {
         return _t('<p>You are not authorized to reply to this thread.</p>');
     }
     $postdata = array('user_id' => User::identify()->id, 'pubdate' => HabariDateTime::date_create(), 'content_type' => Post::type('reply'), 'content' => $form->content->value, 'status' => Post::status('published'));
     $reply = new Post($postdata);
     $reply->insert();
     if (self::$anonymity && $form->anonymous->value == TRUE) {
         $reply->info->anonymous = TRUE;
     }
     // Do vocab stuff
     $vocab = Vocabulary::get(self::$vocab);
     $parent_term = $vocab->get_term($thread->slug);
     $reply_term = $vocab->add_term($reply->slug, $parent_term);
     $reply->update();
     Utils::redirect($reply->permalink);
     return '...';
 }
开发者ID:habari-extras,项目名称:spreking,代码行数:22,代码来源:spreking.plugin.php

示例12: action_auth_ajax_hab_import_posts

 /**
  * The plugin sink for the auth_ajax_hab_import_posts hook.
  * Responds via authenticated ajax to requests for post importing.
  *
  * @param AjaxHandler $handler The handler that handled the request, contains $_POST info
  */
 public function action_auth_ajax_hab_import_posts($handler)
 {
     $inputs = $_POST->filter_keys('db_type', 'db_name', 'db_host', 'db_user', 'db_pass', 'db_prefix', 'postindex', 'tag_import');
     $inputs = $inputs->getArrayCopy($inputs);
     $inputs = array_merge($this->default_values, $inputs);
     $connect_string = $this->get_connect_string($inputs['db_type'], $inputs['db_host'], $inputs['db_name']);
     $db = $this->hab_connect($connect_string, $inputs['db_user'], $inputs['db_pass']);
     if (!$db) {
         EventLog::log(sprintf(_t('Failed to import from "%s"'), $inputs['db_name']), 'crit');
         Session::error($e->getMessage());
         echo '<p>' . _t('The database connection details have failed to connect.') . '</p>';
     }
     DB::begin_transaction();
     $old_db_version = (int) $db->get_value("SELECT value FROM {$inputs['db_prefix']}options WHERE name = ?", array('db_version'));
     $postcount = $db->get_value("SELECT count( id ) FROM {$inputs['db_prefix']}posts;");
     $min = $inputs['import_index'] * IMPORT_BATCH + ($inputs['import_index'] == 0 ? 0 : 1);
     $max = min(($inputs['import_index'] + 1) * IMPORT_BATCH, $postcount);
     $user_map = array();
     $user_info = DB::get_results("SELECT user_id, value FROM {userinfo} WHERE name= 'old_id';");
     foreach ($user_info as $info) {
         $user_map[$info->value] = $info->user_id;
     }
     echo "<p>Importing posts {$min}-{$max} of {$postcount}.</p>";
     $posts = $db->get_results("\r\n\t\t\tSELECT\r\n\t\t\t\tcontent,\r\n\t\t\t\tid,\r\n\t\t\t\ttitle,\r\n\t\t\t\tslug,\r\n\t\t\t\tuser_id,\r\n\t\t\t\tguid,\r\n\t\t\t\tpubdate,\r\n\t\t\t\tupdated,\r\n\t\t\t\tmodified,\r\n\t\t\t\tstatus,\r\n\t\t\t\tcontent_type\r\n\t\t\tFROM {$inputs['db_prefix']}posts\r\n\t\t\tORDER BY id DESC\r\n\t\t\tLIMIT {$min}, " . IMPORT_BATCH, array(), 'Post');
     $post_map = DB::get_column("SELECT value FROM {$inputs['db_prefix']}postinfo WHERE name='old_id';");
     foreach ($posts as $post) {
         if (in_array($post->id, $post_map)) {
             continue;
         }
         if ($inputs['tag_import'] == 1) {
             // Import tags
             if ($old_db_version < 3749) {
                 $tags = $db->get_column("SELECT tag_text\r\n\t\t\t\t\t\tFROM {$inputs['db_prefix']}tags\r\n\t\t\t\t\t\tINNER JOIN {$inputs['db_prefix']}tag2post\r\n\t\t\t\t\t\tON {$inputs['db_prefix']}tags.id = {$inputs['db_prefix']}tag2post.tag_id\r\n\t\t\t\t\t\tWHERE post_id = {$post->id}");
             } else {
                 $tags = $db->get_column("SELECT term_display\r\n\t\t\t\t\t\tFROM {$inputs['db_prefix']}terms\r\n\t\t\t\t\t\tINNER JOIN {$inputs['db_prefix']}object_terms\r\n\t\t\t\t\t\tON {$inputs['db_prefix']}terms.id = {$inputs['db_prefix']}object_terms.term_id\r\n\t\t\t\t\t\tWHERE object_id = ? AND object_type_id = ?", array($post->id, Vocabulary::object_type_id('post')));
             }
         } else {
             $tags = array();
         }
         $tags = implode(',', $tags);
         $post_array = $post->to_array();
         $p = new Post($post_array);
         $p->slug = $post->slug;
         if (isset($user_map[$p->user_id])) {
             $p->user_id = $user_map[$p->user_id];
         } else {
             $errors = Options::get('import_errors');
             $errors[] = _t('Post author id %s was not found in the external database, assigning post "%s" (external post id #%d) to current user.', array($p->user_id, $p->title, $post_array['id']));
             Options::set('import_errors', $errors);
             $p->user_id = User::identify()->id;
         }
         $p->guid = $p->guid;
         // Looks fishy, but actually causes the guid to be set.
         $p->tags = $tags;
         $infos = $db->get_results("SELECT name, value, type FROM {$inputs['db_prefix']}postinfo WHERE post_id = ?", array($post_array['id']));
         $p->info->old_id = $post_array['id'];
         // Store the old post id in the post_info table for later
         try {
             $p->insert();
             $p->updated = $post_array['updated'];
             $p->update();
             foreach ($infos as $info) {
                 $fields = $info->get_url_args();
                 $fields['post_id'] = $p->id;
                 DB::insert(DB::table('postinfo'), $fields);
             }
         } catch (Exception $e) {
             EventLog::log($e->getMessage(), 'err', null, null, print_r(array($p, $e), 1));
             Session::error($e->getMessage());
             $errors = Options::get('import_errors');
             $errors[] = $p->title . ' : ' . $e->getMessage();
             Options::set('import_errors', $errors);
         }
     }
     if (DB::in_transaction()) {
         DB::commit();
     }
     if ($max < $postcount) {
         $inputs['import_index']++;
         $ajax_url = URL::get('auth_ajax', array('context' => 'hab_import_posts'));
     } else {
         $inputs['import_index'] = 0;
         $ajax_url = URL::get('auth_ajax', array('context' => 'hab_import_comments'));
     }
     echo $this->get_ajax($ajax_url, $inputs);
 }
开发者ID:habari-extras,项目名称:habari_import,代码行数:92,代码来源:habari_import.plugin.php

示例13: saveNewPost

 function saveNewPost()
 {
     Doo::loadHelper('DooValidator');
     $_POST['content'] = trim($_POST['content']);
     //get defined rules and add show some error messages
     $validator = new DooValidator();
     $validator->checkMode = DooValidator::CHECK_SKIP;
     if ($error = $validator->validate($_POST, 'post_create.rules')) {
         $data['rootUrl'] = Doo::conf()->APP_URL;
         $data['title'] = 'Error Occured!';
         $data['content'] = '<p style="color:#ff0000;">' . $error . '</p>';
         $data['content'] .= '<p>Go <a href="javascript:history.back();">back</a> to edit.</p>';
         $this->render('admin_msg', $data);
     } else {
         Doo::loadModel('Post');
         Doo::loadModel('Tag');
         Doo::autoload('DooDbExpression');
         $p = new Post($_POST);
         $p->createtime = new DooDbExpression('NOW()');
         //insert the post along with the tags
         if (self::$tags != Null) {
             $tags = array();
             foreach (self::$tags as $t) {
                 $tg = new Tag();
                 $tg->name = $t;
                 $tags[] = $tg;
             }
             $id = $p->relatedInsert($tags);
         } else {
             $id = $p->insert();
         }
         //clear the sidebar cache
         Doo::cache('front')->flushAllParts();
         $data['rootUrl'] = Doo::conf()->APP_URL;
         $data['title'] = 'Post Created!';
         $data['content'] = '<p>Your post is created successfully!</p>';
         if ($p->status == 1) {
             $data['content'] .= '<p>Click  <a href="' . $data['rootUrl'] . 'article/' . $id . '">here</a> to view the published post.</p>';
         }
         $this->render('admin_msg', $data);
     }
 }
开发者ID:mindaugas-valinskis,项目名称:doophp,代码行数:42,代码来源:AdminController.php

示例14: User

    $user = User::getByName($userName);
    if ($user == null) {
        $user = new User();
        $user->setUserName($userName);
        $user->setRegistryDate(date('Y-m-d H:i:s'));
        $user->insert();
    }
    $thread->setUserId($user->getUserId());
    $thread->setCreated(date('Y-m-d H:i:s'));
    $thread->insert();
    $post = new Post();
    $post->setUserId($user->getUserId());
    $post->setThreadId($thread->getThreadId());
    $post->setCreated(date('Y-m-d H:i:s'));
    $post->setContent(trim($_POST['content']));
    $post->insert();
    header("Location: /index.php?thread=" . $thread->getThreadId());
    die;
}
?>
<html>
    <head>
        <title>Форум</title>
        <meta charset="utf-8"/>
    </head>
    <body> <?php 
$view = View::getView(View::VIEW_MAIN);
$view->show();
?>
    </body>
</html>
开发者ID:echurmanov,项目名称:php-simple-forum,代码行数:31,代码来源:index.php

示例15: action_auth_ajax_wp_import_posts


//.........这里部分代码省略.........
                    case 'publish':
                        $post_array['status'] = Post::status('published');
                        break;
                    default:
                        $post_array['status'] = Post::status($post_array['post_status']);
                        break;
                }
                unset($post_array['post_status']);
                switch ($post_array['post_type']) {
                    case 'post':
                        $post_array['content_type'] = Post::type('entry');
                        break;
                    case 'page':
                        $post_array['content_type'] = Post::type('page');
                        break;
                    default:
                        // We're not inserting WP's media records.  That would be silly.
                        continue;
                }
                unset($post_array['post_type']);
                $p = new Post($post_array);
                $p->slug = $post->slug;
                if (isset($user_map[$p->user_id])) {
                    $p->user_id = $user_map[$p->user_id];
                } else {
                    $errors = Options::get('import_errors');
                    $errors[] = _t('Post author id %s was not found in WP database, assigning post "%s" (WP post id #%d) to current user.', array($p->user_id, $p->title, $post_array['id']));
                    Options::set('import_errors', $errors);
                    $p->user_id = User::identify()->id;
                }
                $p->guid = $p->guid;
                // Looks fishy, but actually causes the guid to be set.
                $p->tags = $tags;
                $p->info->wp_id = $post_array['id'];
                // Store the WP post id in the post_info table for later
                try {
                    $p->insert();
                    $p->updated = $post_array['updated'];
                    $p->update();
                } catch (Exception $e) {
                    EventLog::log($e->getMessage(), 'err', null, null, print_r(array($p, $e), 1));
                    Session::error($e->getMessage());
                    $errors = Options::get('import_errors');
                    $errors[] = $p->title . ' : ' . $e->getMessage();
                    Options::set('import_errors', $errors);
                }
            }
            if (DB::in_transaction()) {
                DB::commit();
            }
            if ($max < $postcount) {
                $ajax_url = URL::get('auth_ajax', array('context' => 'wp_import_posts'));
                $postindex++;
                $vars = Utils::addslashes(array('host' => $db_host, 'name' => $db_name, 'user' => $db_user, 'pass' => $db_pass, 'prefix' => $db_prefix));
                echo <<<WP_IMPORT_AJAX1
\t\t\t\t\t<script type="text/javascript">
\t\t\t\t\t\$( '#import_progress' ).load(
\t\t\t\t\t\t"{$ajax_url}",
\t\t\t\t\t\t{
\t\t\t\t\t\t\tdb_host: "{$vars['host']}",
\t\t\t\t\t\t\tdb_name: "{$vars['name']}",
\t\t\t\t\t\t\tdb_user: "{$vars['user']}",
\t\t\t\t\t\t\tdb_pass: "{$vars['pass']}",
\t\t\t\t\t\t\tdb_prefix: "{$vars['prefix']}",
\t\t\t\t\t\t\tcategory_import: "{$category_import}",
\t\t\t\t\t\t\tutw_import: "{$utw_import}",
\t\t\t\t\t\t\tpostindex: {$postindex}
\t\t\t\t\t\t}
\t\t\t\t\t );

\t\t\t\t</script>
WP_IMPORT_AJAX1;
            } else {
                $ajax_url = URL::get('auth_ajax', array('context' => 'wp_import_comments'));
                $vars = Utils::addslashes(array('host' => $db_host, 'name' => $db_name, 'user' => $db_user, 'pass' => $db_pass, 'prefix' => $db_prefix));
                echo <<<WP_IMPORT_AJAX2
\t\t\t\t\t<script type="text/javascript">
\t\t\t\t\t\$( '#import_progress' ).load(
\t\t\t\t\t\t"{$ajax_url}",
\t\t\t\t\t\t{
\t\t\t\t\t\t\tdb_host: "{$vars['host']}",
\t\t\t\t\t\t\tdb_name: "{$vars['name']}",
\t\t\t\t\t\t\tdb_user: "{$vars['user']}",
\t\t\t\t\t\t\tdb_pass: "{$vars['pass']}",
\t\t\t\t\t\t\tdb_prefix: "{$vars['prefix']}",
\t\t\t\t\t\t\tcategory_import: "{$category_import}",
\t\t\t\t\t\t\tutw_import: "{$utw_import}",
\t\t\t\t\t\t\tcommentindex: 0
\t\t\t\t\t\t}
\t\t\t\t\t );

\t\t\t\t</script>
WP_IMPORT_AJAX2;
            }
        } else {
            EventLog::log(sprintf(_t('Failed to import from "%s"'), $db_name), 'crit');
            Session::error($e->getMessage());
            echo '<p>' . _t('The database connection details have failed to connect.') . '</p>';
        }
    }
开发者ID:anupom,项目名称:my-blog,代码行数:101,代码来源:wpimport.plugin.php


注:本文中的Post::insert方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。