コード例 #1
0
ファイル: functions.php プロジェクト: expl0iit/quatro
function getPosts($connection, $query, $comments, $username)
{
    $quer = mysqli_query($connection, $query);
    $result = "";
    while ($row = mysqli_fetch_array($quer)) {
        $result = $result . parsePost($connection, $row['id'], $row['author'], $row['post'], $row['group'], $comments, $username);
    }
    return $result;
}
コード例 #2
0
ファイル: index.php プロジェクト: hansnn/resume
function main()
{
    if (isset($_GET['lang']) && $_GET['lang'] == 'en') {
        $lang = 'en';
    } else {
        $lang = 'no';
    }
    $json = getJson($lang);
    $form = parsePost($json);
    if (strlen($form['result']) > 0) {
        // If all fields in $_POST were valid
        saveForm($form['name'], $form['email'], $form['message']);
    }
    require 'cvLayout.php';
}
コード例 #3
0
ファイル: getPosts.php プロジェクト: sdsunjay/rideshare
/**
* Make the request to Facebook for posts
*/
function handlePostsRequest($fb, $requestString, $myfile, $mysqli, $outputToFileFlag, $outputToScreenFlag, $outputToDBFlag)
{
    try {
        $request = $fb->request('GET', $requestString);
        $response = $fb->getClient()->sendRequest($request);
        $pagesEdge = $response->getGraphEdge();
        //$pageCount = 0;
        $postCount = 0;
        do {
            // Iterate over all the GraphNode's returned from the edge
            foreach ($pagesEdge as $page) {
                $postData = $page->asArray();
                parsePost($postCount, $postData, $outputToScreenFlag, $outputToFileFlag, $myfile, $mysqli, $outputToDBFlag);
                //getMoreInfo($fb, $postData["id"]);
                $postCount++;
                //var_dump($post_data);
            }
            // $pageCount++;
            // Get the next page of results
        } while ($pagesEdge = $fb->next($pagesEdge));
        echo "Post Total: " . $postCount;
    } catch (Facebook\Exceptions\FacebookResponseException $e) {
        // When Graph returns an error
        echo 'Graph returned an error: ' . $e->getMessage();
        return false;
    } catch (Facebook\Exceptions\FacebookSDKException $e) {
        // When validation fails or other local issues
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        return false;
    }
    return true;
}
コード例 #4
0
ファイル: ii.write.php プロジェクト: bluecat/iiwork-php
/** 댓글 등록
 * @class write
 * @param
		$data: 글쓰기 data, 이미 check와 가공이 끝난 데이터여야 함
		$board_data: 게시판 설정 data
		-id: 게시판 아이디. 게시판 설정 data가 없을 때 아이디를 토대로 설정을 로드한다.
		-target_post: 타겟 게시물 지정
		-is_check: 입력변수 체크 여부
		-target_member: 대상회원을 지정할 수 있음
		-target_post: 대상게시물번호
		-target_num: 대상게시물num
		-trackback
		-is_conv: 컨버팅
		-is_manage: 게시물관리
 * @return Array data
 */
function addCmt($data, $board_data = '', $param = '')
{
    global $mini;
    $param = param($param);
    $output_conv_update_reply = '';
    iss($data_post);
    iss($data_reply);
    iss($param['id']);
    iss($param['target_post']);
    iss($param['target_num']);
    def($param['is_check'], 1);
    iss($data_before);
    iss($param['is_conv']);
    $trackback = $trackback_excerpt = $trackback_charset = '';
    if (!empty($data['trackback'])) {
        $trackback = $data['trackback'];
    }
    if (!empty($data['trackback_excerpt'])) {
        $trackback_excerpt = $data['trackback_excerpt'];
    }
    if (!empty($data['trackback_charset'])) {
        $trackback_charset = $data['trackback_charset'];
    }
    $is_saveImage = !empty($data['saveImage']) ? 1 : 0;
    if (empty($param['is_conv'])) {
        unset($data['no']);
        unset($data['target_member']);
        unset($data['trackback']);
        unset($data['report']);
        unset($data['ip']);
        unset($data['vote']);
        unset($data['hate']);
        unset($data['download']);
        unset($data['date_last']);
        unset($data['history_vote']);
        unset($data['is_del']);
        if (empty($mini['member']['level_admin'])) {
            unset($data['num']);
            unset($data['parent']);
            unset($data['ment_advice']);
            unset($data['is_lock']);
            unset($data['admit_file']);
            unset($data['admit_post']);
            unset($param['target_member']);
            unset($data['date']);
        }
    }
    iss($data['notice']);
    iss($data['secret']);
    iss($data['pass_encode']);
    iss($data['target_post']);
    iss($data['num']);
    iss($data['reply']);
    iss($data['parent']);
    iss($param['target_member']);
    if (!is_array($data)) {
        __error('입력된 데이터가 없습니다');
    }
    //// 게시판 설정
    if (!is_array($board_data)) {
        if ($param['id']) {
            $board_data = getBoard($param['id'], 1);
        } else {
            __error('게시판 설정이 없습니다');
        }
    }
    //// 기본 규칙 체크
    if (empty($param['is_conv'])) {
        // 공지사항 체크
        if ($data['notice'] && $data['secret']) {
            __error('공지사항은 비밀댓글일 수 없습니다');
        }
        // punish
        if (!empty($mini['log']) && !empty($mini['member']['no']) && empty($mini['member']['level'])) {
            __error('징계상태에서 댓글을 쓸 수 없습니다');
        }
        // 추가필드 권한 체크
        if (!empty($board_data['field'])) {
            foreach ($board_data['field'] as $key => $val) {
                if (!empty($data['field'][$key]) && !empty($val['is_admin']) && empty($mini['member']['level_admin'])) {
                    __error("[{$val['name']}]은 관리자만 입력하실 수 있습니다");
                }
                if (empty($data['field'][$key]) && !empty($val['is_req'])) {
                    __error("[{$val['name']}]을 입력해 주세요");
                }
            }
        }
        // 코멘트 점수주기 변수 담아놓기
        if (!empty($data['point'])) {
            $point = $data['point'];
            unset($data['point']);
            if (preg_match("/[^0-9]/", $point)) {
                __error('댓글 점수주기는 정수만 입력할 수 있습니다');
            }
        }
        // 연속 댓글 체크
        if (!empty($board_data['limit_comment']) && empty($mini['member']['level_admin'])) {
            if ($board_data['limit_comment'] < 2) {
                $board_data['limit_comment'] = 2;
            }
            //+이 쿼리 속도를 확인해 봐야 함
            $tmp_limit_array = array();
            $tmp_limit_array = sql("q:SELECT ip FROM {$board_data['table_cmt']} ORDER BY date DESC LIMIT " . ($board_data['limit_comment'] - 1) . ", mode:firstFieldArray");
            if (!is_array($tmp_limit_array)) {
                $tmp_limit_array = array();
            }
            if (!count(array_diff($tmp_limit_array, array($mini['ip']))) && sql("SELECT COUNT(*) FROM {$board_data['table_cmt']} LIMIT " . ($board_data['limit_comment'] - 1)) > $board_data['limit_comment'] - 1) {
                __error("연속으로 {$board_data['limit_comment']}번 이상 댓글을 작성하실 수 없습니다");
            }
        }
    }
    //// 입력변수 체크
    def($data['target_post'], $param['target_post']);
    check($data['target_post'], "type:num, name:대상게시물번호");
    if ($param['is_check']) {
        checkField($data, $board_data['table_cmt'], $param);
        if (empty($param['is_conv']) && !getPermit("name: comment")) {
            __error('권한이 없습니다');
        }
    }
    //// 대상 게시물 정보 로드
    if ($param['target_post'] && $param['target_num']) {
        $data_post['num'] = $param['target_num'];
    } else {
        $data_post = sql("SELECT * FROM {$board_data['table']} WHERE no={$data['target_post']}");
    }
    if (!is_array($data_post)) {
        __error('대상 게시물이 존재하지 않습니다');
    }
    //// 잠긴글
    if (empty($param['is_conv']) && empty($mini['member']['level_admin']) && !empty($data_post['is_lock'])) {
        __error('게시물이 잠겨 있어 댓글을 작성할 수 없습니다');
    }
    //// 지난글 댓글제한
    if (empty($param['is_conv']) && !empty($board_data['reject_comment']) && empty($mini['member']['level_admin']) && empty($data_post['notice'])) {
        if ($mini['time'] - strtotime($data_post['date']) > $board_data['reject_comment'] * 86400) {
            __error("{$board_data['reject_comment']}일이 지난 글에는 댓글을 작성할 수 없습니다");
        }
    }
    //// 번호
    if (empty($param['is_conv']) || empty($data['num'])) {
        $data['num'] = sql("SELECT MAX(num) FROM {$board_data['table_cmt']} WHERE target_post={$data['target_post']}");
        if (empty($data['num'])) {
            $data['num'] = 0;
        }
        $data['num']++;
    }
    //// 답변 댓글 설정
    if (empty($param['is_conv']) && $data['reply'] && empty($data['parent'])) {
        check($data['reply'], "type:num, name:대상댓글번호");
        $data_reply = sql("SELECT * FROM {$board_data['table_cmt']} WHERE no={$data['reply']}");
        if (!is_array($data_reply)) {
            __error('대상댓글이 존재하지 않습니다');
        }
        if (!empty($data_reply['is_del'])) {
            __error('삭제된 댓글에는 댓글을 달 수 없습니다');
        }
        if (!empty($data_reply['notice'])) {
            __error('공지댓글에는 댓글을 달 수 없습니다');
        }
        $data['num'] = $data_reply['num'];
        $data['parent'] = $data_reply['parent'] . "[{$data_reply['no']}]";
        $data['reply'] = sql("SELECT MAX(reply) FROM {$board_data['table_cmt']} WHERE target_post={$data['target_post']} and parent LIKE '%[{$data_reply['no']}]%'");
        def($data['reply'], $data_reply['reply']);
        $data['reply']++;
        // 비밀댓글의 답변은 모두 비밀
        if (!empty($data_reply['secret'])) {
            $data['secret'] = 1;
        }
    }
    //// 기본정보 입력
    def($data['date'], $mini['date']);
    def($data['ip'], $mini['ip']);
    //// 회원정보 입력
    if (!empty($param['target_member'])) {
        $data['target_member'] = $param['target_member'];
    }
    if (empty($param['is_conv'])) {
        def($data['target_member'], !empty($mini['member']['no']) ? $mini['member']['no'] : "");
        if ($data['target_member']) {
            check($data['target_member'], "type:num, name:회원번호");
            $mdata = sql("SELECT * FROM {$mini['name']['member']} WHERE no={$data['target_member']}");
            // 회원 정보 넣기
            if (is_array($mdata)) {
                parseMember($mdata);
                $data['name'] = $mdata['name'];
            } else {
                __error('존재하지 않는 회원 번호 입니다.');
            }
        } else {
            iss($data['name']);
            iss($data['mail']);
            check($data['name'], "min:1, max:16, name:이름");
            if (empty($data['pass'])) {
                __error('비밀번호를 입력해 주세요. 글 수정시 필요합니다');
            }
        }
        // 마이너스 포인트일 때 포인트 부족 확인하기
        if (empty($mini['member']['level_admin']) && isset($board_data['point_comment']) && $board_data['point_comment'] < 0 && !empty($mdata) && $mdata['point'] < abs($board_data['point_comment'])) {
            __error("포인트가 부족합니다 [" . (abs($board_data['point_comment']) - $mdata['point']) . " 포인트 부족]");
        }
        // 댓글이 없으면 auto_increment 값을 초기화 한다.
        if (!sql("SELECT COUNT(*) FROM {$board_data['table_cmt']} LIMIT 1")) {
            sql("TRUNCATE TABLE {$board_data['table_cmt']}");
        }
    }
    //// trackback
    if (!empty($param['trackback'])) {
        $data['trackback'] = $param['trackback'];
    }
    //// 댓글 가공
    checkPost($data, $board_data, 'cmt');
    //// 쿼리 실행
    if (empty($param['is_conv']) || !empty($param['is_manage'])) {
        sql("INSERT INTO {$board_data['table_cmt']} " . query($data, 'insert'));
        $data['no'] = getLastId($board_data['table_cmt'], "ip='{$data['ip']}' and date='{$data['date']}'");
    } else {
        $output_conv = query($data, 'insert_array', getStr(getColumns($board_data['table_cmt'])));
    }
    //// 답변 댓글 밀기(반업데이트)
    if (empty($param['is_conv']) && $data['reply']) {
        sql("UPDATE {$board_data['table_cmt']} SET reply=reply+1 WHERE target_post={$data['target_post']} and reply >= {$data['reply']} and no != {$data['no']}");
    }
    if (empty($param['is_conv']) || !empty($param['is_manage'])) {
        // 포인트
        if ($board_data['point_comment'] !== 0 && !empty($mini['log']) && (!empty($param['target_member']) || !empty($data['target_member'])) && (empty($board_data['use_cmt_point_one']) || sql("SELECT COUNT(*) FROM {$board_data['table_cmt']} WHERE target_post={$data_post['no']} and target_member=" . (!empty($param['target_member']) ? $param['target_member'] : $data['target_member'])) == 1)) {
            setPoint("\n\t\t\t\t\ttarget: " . (!empty($param['target_member']) ? $param['target_member'] : $data['target_member']) . "\n\t\t\t\t\tpoint: {$board_data['point_comment']}\n\t\t\t\t\tmsg: 댓글 작성\n\t\t\t\t\tparent_no: {$board_data['no']}\n\t\t\t\t\tdata_no: {$data['no']}\n\t\t\t\t");
        }
        if (empty($param['is_conv'])) {
            // 게시물 댓글 개수 증가
            $tmp_q = !empty($data['trackback']) ? "count_trackback=count_trackback+1" : "count_comment=count_comment+1";
            $tmp_q .= ",date_comment = '{$mini['date']}'";
            $tmp_q .= ",name_comment = '{$data['name']}'";
            if (!empty($point)) {
                $tmp_q .= ",point=" . ($data_post['point'] * $data_post['point_count'] + $point) / ($data_post['point_count'] + 1) . ",point_count=point_count+1";
            }
            sql("UPDATE {$board_data['table']} SET {$tmp_q} WHERE no={$data['target_post']}");
            // 댓글 알림
            if (empty($param['is_conv'])) {
                if (empty($data_reply) && !empty($data_post['memo']) && !empty($data_post['target_member']) || !empty($data_reply['memo']) && !empty($data_reply['target_member'])) {
                    include "{$mini['dir']}skin/template/memo.cmt_notice.tpl.php";
                    if (!function_exists('skinConv')) {
                        include "{$mini['dir']}_inc.skinmake.php";
                    }
                    if (!empty($tpl)) {
                        $tmp = !empty($tpl[$mini['site']['template']['cmt_notice']]) ? $tpl[$mini['site']['template']['cmt_notice']] : current($tpl);
                        unset($mini['skin']);
                        $mini['skin'] = '';
                        if (!empty($mini['site'])) {
                            $mini['skin']['site'] =& $mini['site'];
                        }
                        if (!empty($mini['board'])) {
                            $mini['skin']['board'] =& $mini['board'];
                        }
                        if (!empty($data)) {
                            $mini['skin']['data'] =& $data;
                            $mini['skin']['data']['url_view'] = "{$mini['dir']}mini.php?id={$board_data['id']}&amp;no={$data['target_post']}&amp;cNo={$data['no']}";
                        }
                        if (!empty($data_post)) {
                            $mini['skin']['data_post'] = parsePost($data_post, 'list', 1);
                        }
                        if (!empty($data_reply)) {
                            $mini['skin']['data_reply'] =& $data_reply;
                        }
                        $mini['skin']['date'] = $mini['date'];
                        $mini['skin']['pdir'] = $mini['pdir'];
                        $mini['skin']['target'] = !empty($data_reply) ? $data_reply['target_member'] : $data_post['target_member'];
                        $mini['skin']['name'] = !empty($data_reply) ? $data_reply['name'] : $data_post['name'];
                        if (empty($mdata) || $mini['skin']['target'] != $mdata['no']) {
                            $result = sendMemo(array('skip_filter' => 1, 'target_member' => !empty($data_reply) ? $data_reply['target_member'] : $data_post['target_member'], 'ment' => skinConv(!empty($data_reply) ? $tmp['cmt'] : $tmp['post'], 'str')), $mini['skin']['target'], '', '');
                        }
                    } else {
                        __error('인증메일을 발송할 수 없습니다. 관리자에게 문의해 주세요');
                    }
                }
            }
            // 트랙백 댓글 주소 설정
            if (!empty($data_reply) && !empty($data_reply['trackback'])) {
                $tmp_data = getSocket("\n\t\t\t\t\t\turl: {$data_reply['trackback']}\n\t\t\t\t\t\tskip_header: 1\n\t\t\t\t\t");
                if (!empty($tmp_data) && strpos($tmp_data, "<rdf:RDF") !== false) {
                    preg_match("/\\<rdf\\:Description.+trackback\\:ping\\=\"([^\"]+)\" \\/\\>/is", $tmp_data, $mat);
                    if (!empty($mat[1])) {
                        $trackback = $mat[1];
                    }
                }
            }
            // 트랙백 보내기
            if (!empty($trackback)) {
                sendTrackback($trackback, $trackback_excerpt, $trackback_charset, $data, $board_data, 'cmt');
            }
            // 이미지 치환
            if (!empty($is_saveImage) && !empty($data['ment'])) {
                $data['ment'] = saveImage($data['no'], $data['ment'], $board_data, 'cmt');
                sql("UPDATE {$board_data['table_cmt']} SET ment='{$data['ment']}' WHERE no={$data['no']}");
            }
        }
    }
    //// 검색어 등록
    $output_conv_index = addIndex($data, "\n\t\t\tid: {$board_data['no']}\n\t\t\tnum: {$data_post['num']}\n\t\t\tcmt_no: {$data['no']}\n\t\t\tdate: {$data['date']}\n\t\t\ttarget: {$data['target_member']}\n\t\t\tip: {$data['ip']}\n\t\t\tis_conv: " . (!empty($param['is_conv']) && empty($param['is_manage']) ? "1" : "0") . "\n\t\t");
    if (!empty($param['is_conv']) && empty($param['is_manage'])) {
        return array('data' => $output_conv, 'index' => $output_conv_index);
    } else {
        return $data;
    }
}
コード例 #5
0
ファイル: ii.list.php プロジェクト: bluecat/iiwork-php
/** 코멘트 목록 뽑기
 * @class io
 * @param
		-name: 검색배열이름 (list_cmt)
		-id: 게시판아이디, board_data가 있으면 없어도 된다
		-page: 페이지 (마지막페이지)
		-target_post: 대상게시물번호. view가 있으면 없어도 된다
		$board_data: 게시판정보
		$view: 게시물정보
 * @return Array
 */
function getListCmt($param, $board_data = '', $view = '')
{
    global $mini;
    $param = param($param);
    $output = array();
    iss($param['page']);
    def($param['name'], 'list_cmt');
    def($_REQUEST['cPage'], $param['page']);
    def($_REQUEST['cPage'], 999999999999);
    //// 게시판정보
    if (empty($board_data) && !empty($param['id'])) {
        getBoard($param['id']);
        if (empty($mini['site']) || $mini['site']['no'] != $mini['board']['site']) {
            getSite($mini['board']['site']);
        }
    } else {
        if (empty($board_data) && !empty($mini['board'])) {
            $board_data = $mini['board'];
        }
    }
    //// 게시물정보
    if (empty($view)) {
        $view = sql("SELECT * FROM {$board_data['table']} WHERE no={$param['target_post']}");
        if (!is_array($view)) {
            __error('게시물이 존재하지 않습니다' . ' (' . __FILE__ . ' line ' . __LINE__ . ' in ' . __FUNCTION__ . ')');
        }
        parsePost($view);
        $output['view'] = $view;
    } else {
        $param['target_post'] = $view['no'];
    }
    $is_comment_page = !empty($board_data['use_comment_page']) && !empty($board_data['list_count_comment']) ? 1 : 0;
    if (!$is_comment_page) {
        $board_data['list_count_comment'] = 9999999;
    }
    //// 공지사항 제외
    $is_first = 0;
    if ($is_comment_page || empty($_REQUEST['cQuick']) && empty($_REQUEST['cS']) && empty($_REQUEST['cSort'])) {
        $_REQUEST['cS']['notice!'] = 0;
        $is_first = 1;
    }
    $_REQUEST['cAnd'] = 1;
    //// 검색 처리
    setSearch("\n\t\t\tname: {$param['name']}\n\t\t\tquickName: cQuick\n\t\t\tsName: cS\n\t\t\tandName: cAnd\n\t\t\tis_simple: 1\n\t\t");
    //// 기본 검색쿼리 지정
    check($param['target_post'], 'type:num, name:게시물번호');
    $tmp_trackback = !empty($board_data['use_trackback_cmt']) ? '' : " and trackback=''";
    $mini['list'][$param['name']]['where'] = !empty($mini['list'][$param['name']]['where']) ? $mini['list'][$param['name']]['where'] . " and target_post={$param['target_post']}{$tmp_trackback}" : "WHERE target_post={$param['target_post']}{$tmp_trackback}";
    //// 공지사항 로드
    if ($is_first) {
        $notice = sql("q:SELECT * FROM {$board_data['table_cmt']} WHERE notice=1 and target_post={$param['target_post']} ORDER BY num, mode:array");
        $output['notice'] = $notice;
    }
    //// 정렬 처리
    setSort("\n\t\t\tname: {$param['name']}\n\t\t\tsortName: cSort\n\t\t\ttable: {$board_data['table_cmt']}\n\t\t\torder: ORDER BY num, reply\n\t\t\torder_desc: ORDER BY num DESC, reply ASC\n\t\t");
    //// 리스트
    $data = getList("\n\t\t\tname: {$param['name']}\n\t\t\tlist: {$board_data['list_count_comment']}\n\t\t\ttable: {$board_data['table_cmt']}\n\t\t\tpageName: cPage\n\t\t\tdivName: cDiv\n\t\t\tstartName: cStart\n\t\t");
    $output['data'] = $data;
    //		pr($mini['list'][$param['name']]);
    //// 트랙백 같이 뽑기
    /*
    	$t_data = array();
    	if (!empty($board_data['use_trackback_cmt'])) {
    		$t_data = sql("q:SELECT * FROM {$board_data['table_cmt']} WHERE target_post={$view['no']} and trackback!='' ORDER BY num, mode:array");
    		$output['data'] = array_merge($t_data, $output['data']);
    		unset($t_data);
    	}
    */
    //// 트랙백 따로 뽑기
    if ($is_first && empty($board_data['use_trackback_cmt'])) {
        $t_data = sql("q:SELECT * FROM {$board_data['table_cmt']} WHERE target_post={$view['no']} and trackback!='' ORDER BY num, mode:array");
        $output['trackback'] = $t_data;
    }
    return $output;
}
コード例 #6
0
ファイル: forum.php プロジェクト: nizoo/php-oembed
/** parsedText - adds embedcodes at the end of the post */
function parsedText($text)
{
    foreach (parsePost($_POST["szoveg"]) as $item) {
        $text .= "<br/>" . $item;
    }
    return $text;
}
コード例 #7
0
ファイル: genposts.php プロジェクト: kuslahne/nesbot.com
<?php

require 'vendor/autoload.php';
$posts = array();
$postDir = __DIR__ . '/views/posts/';
foreach (scandir($postDir) as $filename) {
    $post = parsePost($postDir, $filename);
    if ($post != null) {
        $posts[$post->posted->timestamp] = $post;
    }
}
ksort($posts);
writePosts($posts, __DIR__ . '/posts.php');
function parsePost($dir, $filename)
{
    $posts = array();
    if (preg_match('/^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})-(.+)\\.php$/', $filename, $matches) === 1) {
        $posted = \Carbon\Carbon::create($matches[1], $matches[2], $matches[3], 12);
        $slug = $matches[4];
        $title = getPostTitle($dir . $filename);
        if (strlen($title) > 0) {
            return new Post($title, $slug, $posted);
        }
    }
    return null;
}
function getPostTitle($file)
{
    $lines = file($file);
    if (preg_match('@^\\<\\?\\/\\*(.+)\\*\\/\\?\\>$@', trim($lines[0]), $matches) === 1) {
        return $matches[1];