FIX Escape class and field name when looking up shortcode fields for SiteTree

This commit is contained in:
Robbie Averill 2017-12-07 12:52:54 +13:00
parent 82a8a4b142
commit dbad64939a

View File

@ -39,18 +39,22 @@ class ShortCodeRelationFinder
}
/**
* @param int $number
* @return DataList
*/
public function getList($number)
{
$number = (int) $number;
$list = DataList::create('SiteTree');
$where = array();
$fields = $this->getShortCodeFields('SiteTree');
$shortcode = DMS::inst()->getShortcodeHandlerKey();
foreach ($fields as $ancClass => $ancFields) {
$ancClass = Convert::raw2sql($ancClass);
foreach ($ancFields as $ancFieldName => $ancFieldSpec) {
$ancFieldName = Convert::raw2sql($ancFieldName);
if ($ancClass != "SiteTree") {
$list = $list->leftJoin($ancClass, '"'.$ancClass.'"."ID" = "SiteTree"."ID"');
$list = $list->leftJoin($ancClass, '"' . $ancClass . '"."ID" = "SiteTree"."ID"');
}
$where[] = "\"$ancClass\".\"$ancFieldName\" LIKE '%[{$shortcode},id=$number]%'"; //."%s" LIKE ""',
}