В основном все работает, если я жестко запрограммирую URL-адрес в своем Ajax_Controller, но я хочу, чтобы он обращался к URL-адресу из созданного мной поля CMS.
Заранее спасибо. (пожалуйста, игнорируйте, когда я не закрываю фигурные скобки - просто пытаюсь эффективно скопировать/вставить)
В /mysite/_config.php я создал пользовательский конфиг:
Object::add_extension('SiteConfig', 'CustomSiteConfig');
В /mysite/code/CustomSiteConfig.php я добавил поле, в котором буду хранить URL-адрес:
class CustomSiteConfig extends DataObjectDecorator {
function extraStatics() {
return array(
'db' => array(
'COJsonPath' => 'Text'
)
);
}
public function updateCMSFields(FieldSet &$fields) {
$fields->addFieldToTab("Root.CO", new TextField("COJsonPath", "CO JSON URL"));
}
public function getCOJsonPath(){
return $SiteConfig.COJsonPath;
}
Это успешно создает вкладку в главном родительском элементе в CMS с именем "CO" и поле с именем "CO JSON URL". Я вошел в свою CMS и сохранил http://api.localhost/mymethod/ в этом поле.
Теперь я создал тип страницы Ajax, чтобы упростить выполнение команд Ajax, не позволяя пользователю веб-сайта найти, где находятся мои API, и потому, что jQuery Ajax не похож на XSS (межсайтовый скриптинг).
В /mysite/code/Ajax.php:
class Ajax extends Page {
static $db = array(
);
static $has_one = array(
);
function getCMSFields()
{
$fields = parent::getCMSFields();
return $fields;
}
}
class Ajax_Controller extends Page_Controller {
public function getCO()
{
$buffer = self::createHttpRequest("http://api.localhost/mymethod/");
//$buffer = self::createHttpRequest($CustomSiteConfig::getCOJsonPath());
return $buffer;
}
Этот код работает, но когда я пытаюсь выполнить свой createHttpRequest() с закомментированной строкой, он терпит неудачу. Я знаю, что мой синтаксис неверен, я просто не могу понять, каким он должен быть. Спасибо за помощь - я сделал это раньше, я просто не могу понять - это пятница.