Fix on heuristic to get Summit Pages
Change-Id: Ideca7236721dc4b3ad2926cc9fdac4e29fbe7d2a
This commit is contained in:
parent
79353a59a4
commit
b75c54bb2a
@ -92,9 +92,9 @@ class SummitSerializer extends SilverStripeSerializer
|
||||
// pages info
|
||||
$main_page = $summit->getMainPage();
|
||||
$schedule_page = $summit->getSchedulePage();
|
||||
$values['page_url'] = sprintf("%ssummit/%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $main_page);
|
||||
$values['schedule_page_url'] = sprintf("%ssummit/%s/%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $main_page, $schedule_page);
|
||||
$values['schedule_event_detail_url'] = sprintf("%ssummit/%s/%s/%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $main_page, $schedule_page, 'events/:event_id/:event_title');
|
||||
$values['page_url'] = sprintf("%s%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $main_page);
|
||||
$values['schedule_page_url'] = sprintf("%s%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $schedule_page);
|
||||
$values['schedule_event_detail_url'] = sprintf("%s%s/%s", Config::get("server.assets_base_url", 'https://www.openstack.org/'), $schedule_page, 'events/:event_id/:event_title');
|
||||
|
||||
// tickets
|
||||
if(in_array('ticket_types', $relations)) {
|
||||
|
@ -347,12 +347,10 @@ class SummitEvent extends SilverstripeBaseModel
|
||||
if($this->hasRSVPTemplate()){
|
||||
|
||||
$summit = $this->getSummit();
|
||||
$main_page = $summit->getMainPage();
|
||||
$schedule_page = $summit->getSchedulePage();
|
||||
|
||||
$url = sprintf("%ssummit/%s/%s/events/%s/%s/rsvp",
|
||||
if(empty($schedule_page)) return '';
|
||||
$url = sprintf("%s%s/events/%s/%s/rsvp",
|
||||
Config::get("server.assets_base_url", 'https://www.openstack.org/'),
|
||||
$main_page,
|
||||
$schedule_page,
|
||||
$this->getId(),
|
||||
$this->getSlug()
|
||||
|
@ -1248,21 +1248,11 @@ class Summit extends SilverstripeBaseModel
|
||||
*/
|
||||
public function getMainPage()
|
||||
{
|
||||
try {
|
||||
$sql = <<<SQL
|
||||
SELECT URLSegment FROM SiteTree
|
||||
INNER JOIN
|
||||
SummitPage ON SummitPage.ID = SiteTree.ID
|
||||
WHERE SummitID = :summit_id AND ClassName IN ('SummitStaticAboutBostonPage', 'SummitStaticAboutPage','SummitNewStaticAboutPage','SummitHighlightsPage', 'SummitAboutPage');
|
||||
SQL;
|
||||
$stmt = $this->prepareRawSQL($sql);
|
||||
$stmt->execute(['summit_id' => $this->id]);
|
||||
$res = $stmt->fetchAll(\PDO::FETCH_COLUMN);
|
||||
return count($res) > 0 ? $res[0] : '';
|
||||
} catch (\Exception $ex) {
|
||||
|
||||
}
|
||||
return '';
|
||||
$path = $this->getSchedulePage();
|
||||
if(empty($path)) return '';
|
||||
$paths = explode("/", $path);
|
||||
array_pop($paths);
|
||||
return join("/", $paths);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1270,21 +1260,40 @@ SQL;
|
||||
*/
|
||||
public function getSchedulePage()
|
||||
{
|
||||
$paths = [];
|
||||
try {
|
||||
$sql = <<<SQL
|
||||
SELECT URLSegment FROM SiteTree
|
||||
SELECT URLSegment,ParentID FROM SiteTree
|
||||
INNER JOIN
|
||||
SummitPage ON SummitPage.ID = SiteTree.ID
|
||||
WHERE SummitID = :summit_id AND ClassName = 'SummitAppSchedPage';
|
||||
SQL;
|
||||
$stmt = $this->prepareRawSQL($sql);
|
||||
$stmt->execute(['summit_id' => $this->id]);
|
||||
$res = $stmt->fetchAll(\PDO::FETCH_COLUMN);
|
||||
return count($res) > 0 ? $res[0] : '';
|
||||
} catch (\Exception $ex) {
|
||||
$res = $stmt->fetchAll();
|
||||
if(count($res) == 0 ) return '';
|
||||
$segment = $res[0]['URLSegment'];
|
||||
$parent_id = intval($res[0]['ParentID']);
|
||||
|
||||
$paths[] = $segment;
|
||||
do{
|
||||
$sql = <<<SQL
|
||||
SELECT URLSegment,ParentID FROM SiteTree
|
||||
WHERE ID = :parent_id;
|
||||
SQL;
|
||||
$stmt = $this->prepareRawSQL($sql);
|
||||
$stmt->execute(['parent_id' => $parent_id]);
|
||||
$res = $stmt->fetchAll();
|
||||
if(count($res) == 0 ) break;
|
||||
$segment = $res[0]['URLSegment'];
|
||||
$parent_id = intval($res[0]['ParentID']);
|
||||
$paths[] = $segment;
|
||||
} while($parent_id > 0);
|
||||
|
||||
} catch (\Exception $ex) {
|
||||
return '';
|
||||
}
|
||||
return '';
|
||||
return join("/", array_reverse($paths));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -74,7 +74,7 @@ final class OAuth2SummitApiTest extends ProtectedApiTest
|
||||
$this->assertResponseStatus(200);
|
||||
}
|
||||
|
||||
public function testGetSummit($summit_id = 24)
|
||||
public function testGetSummit($summit_id = 25)
|
||||
{
|
||||
|
||||
$params = array
|
||||
|
Loading…
x
Reference in New Issue
Block a user