/** * * @param SiteTree | Int $page - page or page id * @param Int $limit * */ public static function all_for_one_page($page, $limit = 10) { if ($page instanceof SiteTree) { $pageID = $page->ID; } else { $pageID = $page; } $feedIDs = array(); $sql = "\r\n\t\t\tSELECT \"FacebookFeed_Page_Pages\".\"FacebookFeed_PageID\"\r\n\t\t\tFROM \"FacebookFeed_Page_Pages\"\r\n\t\t\tWHERE \"FacebookFeed_Page_Pages\".\"SiteTreeID\" = {$pageID}"; $rows = DB::query($sql); if ($rows) { foreach ($rows as $row) { $feedIDs[$row["FacebookFeed_PageID"]] = $row["FacebookFeed_PageID"]; } } if (count($feedIDs)) { return FacebookFeed_Item::get()->filter(array("FacebookFeed_PageID" => $feedIDs, "Hide" => 0))->limit($limit); } }
public function Fetch($verbose = false) { $count = 0; if ($this->FacebookPageID) { $items = SilverstripeFacebookConnector::get_feed($this->FacebookPageID); if ($items) { foreach ($items as $item) { if (!FacebookFeed_Item::get()->filter(array("UID" => $item["id"]))->first()) { $count++; $message = ""; if (isset($item["message"])) { $message = $item["message"]; } else { if (isset($item["description"])) { $message = $item["description"]; } } //Converts UTF-8 into ISO-8859-1 to solve special symbols issues $message = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $message); $message = $this->stripUnsafe($message); //Get status update time $pubDate = strtotime(isset($item["created_time"]) ? $item["created_time"] : "today"); $convertedDate = gmdate($timeFormat = 'Y-m-d', $pubDate); //Customize this to your liking //Get link to update //Store values in array $obj = new FacebookFeed_Item(); $obj->UID = $item["id"]; $obj->Title = (string) (isset($item["name"]) ? $item["name"] : ""); $obj->Date = $convertedDate; $obj->Author = (string) (isset($item["from"]["name"]) ? $item["from"]["name"] : ""); $obj->Link = (string) (isset($item["link"]) ? $item["link"] : ""); $obj->PictureLink = (string) (isset($item["full_picture"]) ? $item["full_picture"] : ""); $obj->Description = $message; $obj->FacebookFeed_PageID = $this->ID; $obj->write(); } } } else { if ($verbose) { DB::alteration_message("ERROR: no data returned", "deleted"); } } if ($count == 0 && $verbose) { DB::alteration_message("Nothing to add."); } } else { if ($verbose) { DB::alteration_message("ERROR: no Facebook Page ID provided", "deleted"); } } if ($count && $verbose) { DB::alteration_message("Added {$count} items", "created"); } }