1

Osclassで運営しているサイトで、RSSフィードのタイトルに価格を入れる方法を教えてください。

Like This [価格/タイトル(連絡先)]

 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」がありますが、データにアクセスできないようです。そのため、コアを変更する必要があります。

oc-includes/controllers/search.php の'price' => osc_item_formated_price()両方の呼び出しに行を追加します。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()
        ));
    }
}

次に、どこかに を追加して、RSSfeed::dumpXML メソッドを変更できますecho $item['price']

PS: Osclass Github にコミットして、フィード フックを使用できるようにします。

于 2014-12-18T14:59:39.673 に答える