1

我想问一下如何在使用 Osclass 运行的网站的 RSS 提要标题中包含价格。

喜欢这个[价格/标题(联系电话)]

 public function dumpXML() {
        echo '<?xml version="1.0" encoding="UTF-8"?>', PHP_EOL;
        echo '<rss version="2.0">', PHP_EOL;
        echo '<channel>', PHP_EOL;
        echo '<title>', $this->title, '</title>', PHP_EOL;
        echo '<link>', $this->link, '</link>', PHP_EOL;
        echo '<description>', $this->description, '</description>', PHP_EOL;
        foreach ($this->items as $item) {
            echo '<item>', PHP_EOL;
            echo '<title><![CDATA[', $item['title'], ']]></title>', PHP_EOL;
            echo '<link>', $item['link'], '</link>', PHP_EOL;
            echo '<guid>', $item['link'], '</guid>', PHP_EOL;

            echo '<description><![CDATA[';

            echo $item['description'], ']]>';
            echo '</description>', PHP_EOL;

            echo '<country>', $item['country'], '</country>', PHP_EOL;
            echo '<region>', $item['region'], '</region>', PHP_EOL;
            echo '<city>', $item['city'], '</city>', PHP_EOL;
            echo '<cityArea>', $item['city_area'], '</cityArea>', PHP_EOL;
            echo '<category>', $item['category'], '</category>', PHP_EOL;

            echo '</item>', PHP_EOL;
        }
        echo '</channel>', PHP_EOL;
        echo '</rss>', PHP_EOL;
    }
}

感谢您

4

1 回答 1

1

通常,我会告诉你不要修改核心。您有一个为此目的而设计的钩子:'feed',但您似乎无法访问数据。所以你必须修改核心。

'price' => osc_item_formated_price()在 oc-includes/controllers/search.php 的两个addItem()调用中添加一行:

while(osc_has_items()) {
    if(osc_count_item_resources() > 0){
        osc_has_item_resources();
        $feed->addItem(array(
            'title' => osc_item_title(),
            'link' => htmlentities( osc_item_url(),  ENT_COMPAT, "UTF-8" ),
            'description' => osc_item_description(),
            'country' => osc_item_country(),
            'region' => osc_item_region(),
            'city' => osc_item_city(),
            'city_area' => osc_item_city_area(),
            'category' => osc_item_category(),
            'dt_pub_date' => osc_item_pub_date(),
            'image'     => array(  'url'    => htmlentities(osc_resource_thumbnail_url(),  ENT_COMPAT, "UTF-8"),
                                   'title'  => osc_item_title(),
                                   'link'   => htmlentities( osc_item_url() ,  ENT_COMPAT, "UTF-8") )
        ));
    } else {
        $feed->addItem(array(
            'title' => osc_item_title(),
            'link' => htmlentities( osc_item_url() , ENT_COMPAT, "UTF-8"),
            'description' => osc_item_description(),
            'country' => osc_item_country(),
            'region' => osc_item_region(),
            'city' => osc_item_city(),
            'city_area' => osc_item_city_area(),
            'category' => osc_item_category(),
            'dt_pub_date' => osc_item_pub_date()
        ));
    }
}

然后,您将能够通过在echo $item['price']某处添加一个来修改 RSSfeed::dumpXML 方法。

PS:我将尝试在 Osclass Github 中进行提交以使提要挂钩可用。

于 2014-12-18T14:59:39.673 回答