saippuakauppias / vk-wallposter

Публикация материалов на стены в группы, публичные страницы и стену пользователя.
39 stars 19 forks source link

Код для прикрепления файлов #8

Open stanrevko opened 10 years ago

stanrevko commented 10 years ago

/* VK.api wall.post - описание параметров * $params = array( 'message'=>'', 'owner_id' => '', 'friends_only' => '', 'from_group' => '', 'message' => '', 'attachments' =>"", 'friends_only' => '', 'publish_date'=>'', 'post_id'=>'' );*/

public function post_to_wall_query2($params) {

    if (!is_numeric($params['owner_id'])) {
        $this->put_error_in_logfile('user_id - only numbers!');
        return FALSE;
    }

    $hash = $this->get_hash('id' . $params['owner_id']);
    if (empty($hash)) {
        $this->put_error_in_logfile('JS-Field "post_hash" not found!');
        return FALSE;
    }
    $official=1; $friends_only=1;
    $official = $official ? '1' : '';
    $friends_only = $friends_only ? '1' : '';

    $post = array(
        'act' => 'post',
        'al' => '1',
        'facebook_export' => '',
        'friends_only' => $params['friends_only'],
        'hash' => $hash,
        'message' => $params['message'],
        'note_title' => '',
        'official' => $official,
        'status_export' => '',
        'to_id' => $params['owner_id'],
        'type' => "all",
    );

    //парсинг прикреплений
    $post += $this->parseAttachments($params['attachmets']);
    $result = $this->minicurl->get_file('http://vk.com/al_wall.php', $post);
    $this->sleep();
    preg_match('#>\d<!>\d+<!>([\d]+)<!>#isU', $result, $match);
    return (isset($match[1]) AND ($match[1] == '0'));
}

public function parseAttachments($attachmets){
    //список поддерживаемых типов прикреплений
    $types = array("photo","video","audio","doc","page","note");
    $regexp = "/(".  implode("|", $types).")(\-?\d{2,}_\d{2,})/";
    preg_match_all($regexp, $attachmets, $res);
    $post = array(); //масив добавиться до масива с параметрами post       
    foreach ($res[0] as $k=>$row){
        $n=$k+1;
        $post["attach".$n]=$res[2][$k];
        $post["attach".$n."_type"]=$res[1][$k];

    }        
    return $post;
}
stanrevko commented 10 years ago

Спасибо большое за Ваш Код. Вот моё дополнение. Нужно улучшить и всё проверить, но уже работает.

saippuakauppias commented 10 years ago

А вы могли бы прислать pull-request? Я бы проверил и смержил.

stanrevko commented 10 years ago

Да, но мне нужно Ваше разрешение

saippuakauppias commented 10 years ago

Нет, не обязательно иметь права у меня в репозитории. Вам нужно сделать fork, внести изменения в своём репозитории, а затем отправить мне Pull request.