четверг, 20 октября 2011 г.

php скрипт постинга в Elgg

Неплохой движок. Бесплатный. Русифицирован и создано много сообществ в поддержку и развитие проекта.

Уникальные признаки:

"Powered by Elgg" inurl:"pg/dashboard"
"Powered by Elgg" inurl:"pg/register"

Например, если нам нужны будут блоги для постинга прокладок или доров. Для этого к признаку сразу добавляем Blogs и получаем уже необходимые нам ресурсы с установленным модулем Blogs:

"Powered by Elgg" inurl:"pg/blog"
inurl:"user/auth/forgot" + Blogs


Легкая автоматизация, набиваем посты:

function post()
 {
   $headers = $this->set_headers();
   $curl_data['headers'] =  $headers;
   $curl_data['followlocation'] = true;
   $curl_data['echo_header'] = true;

   $curl_data['url'] = $this->site."/mod/blog/everyone.php";
   $curl_data['referer'] = $this->site.'/pg/dashboard/';

   $this->code = $this->curl($curl_data);

   $curl_data['url'] = $this->site."/pg/blog/".$this->username."/new/";
   $curl_data['referer'] = $this->site."/mod/blog/everyone.php";

   $this->code = $this->curl($curl_data);

   if(strpos($this->code, 'blogPostForm'))
   {

     # выбираем поля для постинга
    $input_field = $this->get_input_field_post();

    if($input_field[__elgg_token] )
    {
     $input_field[submit] = $this->action;

     $input_field[blogtitle] = $this->post_title;
     $input_field[blogbody] = $this->body;
     $input_field[blogtags] = $this->tags;
     $input_field[comments_select] = 'on';
     $input_field[access_id] = 2;

     $p = array 
     (
     '__elgg_token' => $input_field[__elgg_token],
     '__elgg_ts' => $input_field[__elgg_ts],
     'access_id' => '2',
     'comments_select' => 'on',
     'blogtitle' => $this->post_title,
     'blogbody' => $this->body,
     'blogtags' => $this->tags,
     'submit' => $this->action,
     );

     $curl_data['post'] = http_build_query($p);
     $headers = $this->set_headers();
     $headers[] = "Referer: ".$this->site."/pg/blog/".$this->username."/new/";
     $curl_data['headers'] =  $headers;

     $curl_data['followlocation'] = true;
     $curl_data['echo_header'] = true;
     $curl_data['referer'] = $this->site."/pg/blog/".$this->username."/new/";
     $curl_data['url'] = $this->site."/action/blog/add";
     $this->code = $this->curl($curl_data);

     if (stripos($this->code, 'Your blog post was successfully posted')
      or stripos($this->code, '302 Found')
      or stripos($this->code, '302 Moved Temporarily')
      )
     {
       echo "Post Published";
       $this->get_my_blog_post_url();
       return true;
     } else
     {
      echo "Not Allowed, случилась какая-то хуйета";
      return false;
     }
    }
   }
   else
   {
    $curl_data['url'] = $this->site."/pg/pages/new/";
    $curl_data['referer'] = $this->site.'/mod/pages/world.php';

    $this->code = $this->curl($curl_data);

     # выбираем поля для постинга
    $input_field = $this->get_input_field_post();

    if($input_field[__elgg_token] )
    {
     $input_field[submit] = $this->action;

     $input_field[blogtitle] = $this->post_title;
     $input_field[blogbody] = $this->body;
     $input_field[blogtags] = $this->tags;
     $input_field[comments_select] = 'on';
     $input_field[access_id] = 2;

     $p = array (


     '__elgg_token' => $input_field[__elgg_token],
     '__elgg_ts' => $input_field[__elgg_ts],
     'access_id' => '2',
     'comments_select' => 'on',
     'container_guid' => $input_field[container_guid],
     'owner_guid' => $input_field[owner_guid],
     'parent_guid' => $input_field[parent_guid],
     'write_access_id' => '-2',
     'title' => $this->post_title,
     'description' => $this->body,
     'tags' => $this->tags,


     );

     $curl_data['post'] = http_build_query($p);
     $headers = $this->set_headers();
     $headers[] = "Referer: ".$this->site."/pg/pages/new/";
     $curl_data['headers'] =  $headers;

     $curl_data['followlocation'] = true;
     $curl_data['echo_header'] = true;
     $curl_data['referer'] = $this->site."/pg/pages/new/";
     $curl_data['url'] = $this->site."/action/pages/edit";

     $this->code = $this->curl($curl_data);

     if (stripos($this->code, 'Pages saved')
      or stripos($this->code, '302 Found')
      or stripos($this->code, '302 Moved Temporarily')
      )
     {
       echo "Page Published";
       $this->get_my_page_post_url();
       return true;
     } 
     else
     {
      echo "Not Allowed, случилась какая-то хуйета";
      return false;
     }
    }
   }
 }




2 комментария:

  1. Постинг в фейсбук или одноклассники можете сделать через curl ? Semen256@gmail.com

    ОтветитьУдалить
  2. Постинг в vk и facebook в группы сделать можете?uncorer@gmail.com

    ОтветитьУдалить