Пример #1
0
			<title>' . $item_title . '</title>
			<description>' . $item_description . '</description>
			' . $item_body . '
			<link>' . $item['link'] . '</link>';
    // some additional entries for podcasts
    if ($_GET['feed'] == 'podcast') {
        echo "\n\t\t\t<itunes:author>" . $item['author_name'] . "</itunes:author>\n\t\t\t<dc:creator>" . $item['author_name'] . "</dc:creator>";
        if (!empty($item['seo_keywords'])) {
            echo '
			<itunes:keywords>' . $item['seo_keywords'] . '</itunes:keywords>';
        }
        // add enclosure
        echo "\n\t\t\t<enclosure url=\"" . $item['itunes_link'] . "\" length=\"" . $item['size'] . "\" type=\"" . $item['mime'] . "\"/>";
    } else {
        // check for attachments
        $attachments = get_article_attachments($item['id']);
        if (!empty($attachments)) {
            foreach ($attachments as $attach) {
                // if this is a podcast feed we need to include the filename to trick itunes
                $url = $_GET['feed'] == 'podcast' ? $attach['itunes_link'] : $attach['link'];
                // show enclosure
                echo "\n\t\t\t\t\t<enclosure url=\"" . $url . "\" length=\"" . $attach['size'] . "\" type=\"" . $attach['mime'] . "\"/>";
            }
        }
    }
    // close off item
    echo "\n\t\t\t<guid isPermaLink=\"true\">" . $item['link'] . "</guid> \n\t\t\t<pubDate>" . $item_date . "</pubDate>\n\t\t</item>";
}
// close xml feed
echo '
	</channel>
/**
 * get_article
 * 
 * 
 * 
 * 
 * 
 * 
 */
function get_article($article_id = '')
{
    $article_id = (int) $article_id;
    $conn = reader_connect();
    $query = "SELECT\n\t\t\t\t\tarticles.id, \n\t\t\t\t \tarticles.title, \n\t\t\t\t\tarticles.url, \n\t\t\t\t\tarticles.summary, \n\t\t\t\t\tarticles.body, \n\t\t\t\t\tarticles.date_uploaded, \n\t\t\t\t\tarticles.date_amended,\n\t\t\t\t\tcategories.title AS category_title, \n\t\t\t\t\tcategories.url AS category_url,\n\t\t\t\t\tparent.title AS parent_category_title,\n\t\t\t\t\tparent.url AS parent_category_url,\n\t\t\t\t\tauthors.name AS author_name, \n\t\t\t\t\tauthors.url AS author_url,\n\t\t\t\t\tauthors.email AS author_email,\n\t\t\t\t\tauthors.contact_flag, \n\t\t\t\t\tarticles.seo_title,\n\t\t\t\t\tarticles.seo_desc, \n\t\t\t\t\tarticles.seo_keywords,\n\t\t\t\t\tarticles.comments_disable, \n\t\t\t\t\tarticles.comments_hide\n\t\t\t\tFROM articles\n\t\t\t\t\tLEFT JOIN authors ON articles.author_id = authors.id \n\t\t\t\t\tLEFT JOIN categories ON articles.category_id = categories.id\n\t\t\t\t\tLEFT JOIN categories AS parent ON categories.category_id = parent.id\n\t\t\t\tWHERE articles.status IN('P','A')\n\t\t\t\t\tAND articles.date_uploaded <= NOW()";
    $query .= !empty($article_id) ? " AND articles.id = " . $article_id : " ORDER BY articles.id DESC LIMIT 0,1";
    // echo $query;
    $result = $conn->query($query);
    $row = $result->fetch_assoc();
    $row = stripslashes_deep($row);
    $result->close();
    // fix relative urls
    $row['body'] = convert_relative_urls($row['body']);
    // check pagination
    $row['pages'] = paginate_article_body($row['body']);
    $row['total_pages'] = count($row['pages']);
    // create links
    $row['link']['blog'] = WW_REAL_WEB_ROOT . '/' . date('Y/m/d', strtotime($row['date_uploaded'])) . '/' . $row['url'] . '/';
    $row['link']['cms'] = WW_REAL_WEB_ROOT . '/' . $row['category_url'] . '/' . $row['url'] . '/';
    // get tags
    $tags = get_article_tags($article_id);
    $row['tags'] = !empty($tags) ? $tags : '';
    // get attachments
    $attachments = get_article_attachments($article_id);
    $row['attachments'] = !empty($attachments) ? $attachments : '';
    // get comments
    if (empty($row['comments_hide'])) {
        $comments = get_article_comments($article_id);
        $row['comments'] = !empty($comments) ? $comments : '';
    }
    return $row;
}
/**
 * get_article_form_data
 * 
 * 
 * 
 * 
 * 
 * 
 */
function get_article_form_data()
{
    $article_data = array();
    if (!empty($_GET['article_id'])) {
        // editing an article
        $article_id = (int) $_GET['article_id'];
        $article_data = get_article_admin($article_id);
        $article_data = stripslashes_deep($article_data);
        // date fields - probably don't need these
        /*
        $article_data['day'] 	= date('d',$article_data['date_ts']);
        $article_data['month'] 	= date('m',$article_data['date_ts']);
        $article_data['year'] 	= date('Y',$article_data['date_ts']);
        $article_data['hour'] 	= date('H',$article_data['date_ts']);
        $article_data['minute'] = date('i',$article_data['date_ts']);
        */
        // tags
        $article_data['tags'] = get_article_tags_admin($article_id);
        // attachments
        $article_data['attachments'] = get_article_attachments($article_id);
    } else {
        // brand new article
        // get default comments config from database
        $config = get_settings('comments');
        $article_data['id'] = 0;
        $article_data['title'] = 'New article';
        $article_data['url'] = '';
        $article_data['summary'] = '';
        $article_data['body'] = '';
        $article_data['status'] = 'D';
        $article_data['author_id'] = $_SESSION[WW_SESS]['user_id'];
        $article_data['category_id'] = 0;
        $article_data['category_url'] = '';
        $article_data['tags'] = array();
        $article_data['attachments'] = array();
        $article_data['seo_title'] = '';
        $article_data['seo_desc'] = '';
        $article_data['seo_keywords'] = '';
        $article_data['comments_hide'] = $config['comments']['site_hide'];
        $article_data['comments_disable'] = $config['comments']['site_disable'];
        // $now = strtotime(get_mysql_time());
        $now = time();
        $article_data['day'] = date('d', $now);
        $article_data['month'] = date('m', $now);
        $article_data['year'] = date('Y', $now);
        $article_data['hour'] = date('H', $now);
        $article_data['minute'] = date('i', $now);
    }
    return $article_data;
}
/**
 * get_article
 * 
 * 
 * 
 * 
 * 
 * 
 */
function get_article($article_id = '')
{
    $article_id = (int) $article_id;
    $conn = reader_connect();
    $query = "SELECT\n\t\t\t\t\tarticles.id, \n\t\t\t\t \tarticles.title, \n\t\t\t\t\tarticles.url, \n\t\t\t\t\tarticles.summary, \n\t\t\t\t\tarticles.body, \n\t\t\t\t\tarticles.date_uploaded, \n\t\t\t\t\tarticles.date_amended,\n\t\t\t\t\tcategories.title AS category_title, \n\t\t\t\t\tcategories.url AS category_url,\n\t\t\t\t\tparent.title AS parent_category_title,\n\t\t\t\t\tparent.url AS parent_category_url,\n\t\t\t\t\tauthors.name AS author_name, \n\t\t\t\t\tauthors.url AS author_url,\n\t\t\t\t\tauthors.email AS author_email,\n\t\t\t\t\tauthors.contact_flag, \n\t\t\t\t\tarticles.seo_title,\n\t\t\t\t\tarticles.seo_desc, \n\t\t\t\t\tarticles.seo_keywords,\n\t\t\t\t\tarticles.redirect_url,\n\t\t\t\t\tarticles.redirect_code,\n\t\t\t\t\tarticles.comments_disable, \n\t\t\t\t\tarticles.comments_hide\n\t\t\t\tFROM articles\n\t\t\t\t\tLEFT JOIN authors ON articles.author_id = authors.id \n\t\t\t\t\tLEFT JOIN categories ON articles.category_id = categories.id\n\t\t\t\t\tLEFT JOIN categories AS parent ON categories.category_id = parent.id\n\t\t\t\tWHERE articles.status IN('P','A')\n\t\t\t\t\tAND articles.date_uploaded <= UTC_TIMESTAMP()";
    $query .= !empty($article_id) ? " AND articles.id = " . $article_id : " ORDER BY articles.id DESC LIMIT 0,1";
    $result = $conn->query($query);
    $row = $result->fetch_assoc();
    // if a redirect url has been set we redirect right here
    if (!empty($row['redirect_url'])) {
        // send 301 redirect unless another valid code has been set
        $redirect_code = (int) $row['redirect_code'];
        $redirect_code = !empty($redirect_code) ? $redirect_code : 301;
        redirect_article($row['redirect_url'], $redirect_code);
    }
    $row = stripslashes_deep($row);
    $result->close();
    // adjust times to local timezone if necessary
    $ts = strtotime($row['date_uploaded']);
    $offset = date('Z');
    $row['date_ts'] = $ts + $offset;
    $row['date_uploaded'] = date('Y-m-d H:i:s', $row['date_ts']);
    // fix relative urls
    $row['body'] = convert_relative_urls($row['body']);
    // check pagination
    $row['pages'] = paginate_article_body($row['body']);
    $row['total_pages'] = count($row['pages']);
    // create links
    $row['link']['blog'] = WW_REAL_WEB_ROOT . '/' . date('Y/m/d', $row['date_ts']) . '/' . $row['url'] . '/';
    $row['link']['cms'] = WW_REAL_WEB_ROOT . '/' . $row['category_url'] . '/' . $row['url'] . '/';
    // put category url in a get param if not set (for custom css styles)
    $_GET['category_url'] = isset($_GET['category_url']) ? $_GET['category_url'] : $row['category_url'];
    // get tags
    $tags = get_article_tags($article_id);
    $row['tags'] = !empty($tags) ? $tags : '';
    // get attachments
    $attachments = get_article_attachments($article_id);
    $row['attachments'] = !empty($attachments) ? $attachments : '';
    // get comments
    if (empty($row['comments_hide'])) {
        $comments = get_article_comments($article_id);
        $row['comments'] = !empty($comments) ? $comments : '';
    }
    return $row;
}