Добрый день, коллеги. После топиков по xPDO мне много стало ясно и уже появилась простейшая реализация задачи:
<code> if (isset($_GET['bobo'])) {$bobo = $_GET['bobo'];}else{$bobo = '0';} ... $where = array( 'parent' => 2, 'pagetitle' => $bobo ); $resources = $modx->getCollection('modResource',$where); $countpagetitle = count($resources); if ($bobo <> '0' && $countpagetitle == 0){ $newpc = $modx->newObject('modResource'); $newpc->set('pagetitle',$bobo); $newpc->set('parent',2); $newpc->set('template',1); $newpc->save(); $newpc->setTVValue('bobo',$bobo); ... $newpc->save(); } </code>
Но я столкнулся с проблемой и не могу понять в чем дело. 172.16.25.10/index.php?id=13&bobo=hello&...&...&... При открытии браузером страницы с этим сниппетом все работает, создает новый ресурс и заполняются его TV поля. А при открытии этой же ссылки в VBScript сообщается ошибка 404.
Из браузера:
<code> 172.16.11.71 - - [21/Nov/2013:21:29:34 +0400] "GET /index.php?id=13&bobo=444 HTTP/1.1" 200 584 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36" </code>
Из VBScript:
<code> 172.16.11.71 - - [21/Nov/2013:21:30:03 +0400] "GET /index.php?id=13&bobo=444 HTTP/1.1" 404 2896 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media </code>
VBScript:
<code> Wscript.echo WebResponse("http://172.16.25.10/index.php?id=13&bobo=444") Function WebResponse(sURL) Dim XmlHttpRequest Set XmlHttpRequest = CreateObject("MSXML2.XMLHTTP") XmlHttpRequest.Open "GET", sURL, False XmlHttpRequest.setRequestHeader "If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 UTC" XmlHttpRequest.setRequestHeader "Cache-Control", "no-store, no-cache" XmlHttpRequest.setRequestHeader "Pragma", "no-cache" XmlHttpRequest.send WebResponse = XmlHttpRequest.responseText End Function </code>
Сервер: Виртуальная машина XenSrv в локальной сети ubuntu-13.10-server-amd64 LAMP
Провел эксперимент в корневой директории создал файл test.php
<code> <?php $bobo = $_GET['bobo']; echo $bobo; ?> </code>
172.16.25.10/test.php?bobo=444 И VBScript стал получать ответ 200
Стало ясно что MODX учитывает какие то параметры обращения к серверу, возможно это сделано для безопасности
Коллеги, в чем может быть дело? Заранее благодарен, Евгений.