protected function error($msg)
 {
     $this->setNoRender();
     $this->_request->setDispatched(true);
     if ($this->_request->isXmlHttpRequest()) {
         $arp = new AjaxResponse();
         $arp->setStatus(AjaxResponse::STATUS_FAILED);
         $arp->setMessage($msg);
         $this->json($arp);
     } else {
         $this->view->msg = $msg;
         $this->renderScript('common/error.phtml');
     }
 }
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
require_once dirname(__FILE__) . "/../../core/globalSettings.php";
require_once dirname(__FILE__) . "/../classes/class_gml2.php";
require_once dirname(__FILE__) . "/../classes/class_json.php";
$ajaxResponse = new AjaxResponse($_POST);
if ($ajaxResponse->getMethod() != "createUsemap") {
    $ajaxResponse->setSuccess(false);
    $ajaxResponse->setMessage("method invalid");
    $ajaxResponse->send();
    exit;
}
$url = $ajaxResponse->getParameter('url');
//urldecode($_REQUEST["url"]);
$g = new gml2();
$g->parsegml($url);
$um_title = array();
$um_x = array();
$um_y = array();
for ($i = 0; $i < $g->getMemberCount(); $i++) {
    $um_title[] = utf8_decode($g->getValueBySeparatedKey($i, "name"));
    $um_x[] = $g->getXfromMemberAsString($i, 0);
    $um_y[] = $g->getYfromMemberAsString($i, 0);
}
         * @security_patch sqli done
         */
        $sqlMinx = "SELECT X(transform(GeometryFromText('POINT(" . pg_escape_string($x) . " " . pg_escape_string($y) . ")'," . pg_escape_string($oldEPSG) . ")," . pg_escape_string($newEPSG) . ")) as minx";
        $resMinx = pg_query($con, $sqlMinx);
        $minx = floatval(pg_fetch_result($resMinx, 0, "minx"));
        $sqlMiny = "SELECT Y(transform(GeometryFromText('POINT(" . pg_escape_string($x) . " " . pg_escape_string($y) . ")'," . pg_escape_string($oldEPSG) . ")," . pg_escape_string($newEPSG) . ")) as miny";
        $resMiny = pg_query($con, $sqlMiny);
        $miny = floatval(pg_fetch_result($resMiny, 0, "miny"));
    }
    return array("x" => $minx, "y" => $miny);
}
switch ($ajaxResponse->getMethod()) {
    case "transform":
        if (!Mapbender::postgisAvailable()) {
            $ajaxResponse->setSuccess(false);
            $ajaxResponse->setMessage(_mb("PostGIS is not available. Please contact the administrator."));
            $ajaxResponse->send();
        }
        $fromSrs = $ajaxResponse->getParameter("fromSrs");
        $toSrs = $ajaxResponse->getParameter("toSrs");
        $x = $ajaxResponse->getParameter("x");
        $y = $ajaxResponse->getParameter("y");
        $bboxStr = $ajaxResponse->getParameter("bbox");
        $bbox = explode(",", $bboxStr);
        $response = null;
        $oldEPSG = preg_replace("/EPSG:/", "", $fromSrs);
        $newEPSG = preg_replace("/EPSG:/", "", $toSrs);
        if (!is_null($bbox) && is_array($bbox) && count($bbox) === 4) {
            $response = array("newSrs" => $toSrs, "points" => array());
            for ($i = 0; $i < count($bbox); $i += 2) {
                $pt = transform(floatval($bbox[$i]), floatval($bbox[$i + 1]), $oldEPSG, $newEPSG);
Example #4
0
 /**
  * Set the response expired
  * 
  * @param bool $inAjax
  * 
  * @return void
  */
 protected function response_expired($inAjax)
 {
     $message = "Your current session with this application has expired.  Please refresh your browser window to continue.";
     if ($inAjax) {
         $ajax = new AjaxResponse();
         $ajax->setMessage($message);
         echo json_encode($ajax->m);
     } else {
         echo $message;
     }
 }
                $fileId = createFile($data);
                $e = new mb_exception("fileid " . $fileId);
                if ($fileId == false) {
                    throw new Exception("Could not create file");
                }
                $url = "../tmp/{$fileId}";
                $result = array('url' => $url);
                break;
            default:
                throw new Exception("method invalid");
        }
        $ajaxResponse->setSuccess(true);
        $ajaxResponse->setResult($result);
    } catch (Exception $E) {
        $ajaxResponse->setSuccess(false);
        $ajaxResponse->setMessage($E->getMessage() . " [" . $E->getLine() . "]");
    }
    $ajaxResponse->send();
} else {
    if ($_SERVER['REQUEST_METHOD'] == "GET") {
        ob_start();
        $fileid = $_GET['file'];
        header("Content-Type", "application/x-json");
        header("Content-Disposition", "attachment; filename=\"" . $filename . "\"");
        $result = file_get_contents(realpath(dirname(__FILE__) . "/../../http/tmp/{$id}"));
        print $result;
        ob_end_flush();
    }
}
function createFile($data)
{
            $resultObj["original_featuretype_keyword"] = implode(", ", $keywords);
        }
    }
    return $resultObj;
}
switch ($ajaxResponse->getMethod()) {
    case "getOriginalMetadata":
        $wfsId = $ajaxResponse->getParameter("id");
        $featuretypeName = $ajaxResponse->getParameter("featuretypeName");
        $sql = <<<SQL
\t
SELECT wfs_getcapabilities_doc FROM wfs WHERE wfs_id = {$wfsId};

SQL;
        $res = db_query($sql);
        $row = db_fetch_array($res);
        $wfs_getcapabilities_doc = $row["wfs_getcapabilities_doc"];
        if ($featuretypeName != "") {
            $resultObj = getFeaturetypeMetadataFromXml($wfs_getcapabilities_doc, $featuretypeName);
        } else {
            $resultObj = getWfsMetadataFromXml($wfs_getcapabilities_doc);
        }
        $ajaxResponse->setResult($resultObj);
        $ajaxResponse->setSuccess(true);
        break;
    default:
        $ajaxResponse->setSuccess(false);
        $ajaxResponse->setMessage(_mb("An unknown error occured."));
        break;
}
$ajaxResponse->send();
$myLayer = $ajaxResponse->getParameter('layer');
$myWfsConf = $ajaxResponse->getParameter('wfsConf');
try {
    switch ($ajaxResponse->getMethod()) {
        case "getWfsConfs":
            $result = getWfsConfs($myGui);
            $ajaxResponse->setSuccess(true);
            $ajaxResponse->setResult($result);
            break;
        case "saveLayerWfsConnection":
            $result = saveLayerWfsConnection($myWfsConf, $myGui, $myLayer);
            if ($result === true) {
                $ajaxResponse->setSuccess(true);
            } else {
                $ajaxResponse->setSuccess(false);
                $ajaxResponse->setMessage("An error occured performing UPDATE");
            }
            break;
        default:
            $ajaxResponse->setSuccess(false);
            $ajaxResponse->setMessage("method invalid");
    }
} catch (Exception $E) {
    $ajaxResponse->setSuccess(false);
    $ajaxResponse->setMessage("An error occured");
    $e = new mb_exception("mod_wfsLayerObj_conf.php: " . $E->getMessage());
}
$ajaxResponse->send();
function getWfsConfs($myGui)
{
    $user = new User($_SESSION["mb_user_id"]);
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
require dirname(__FILE__) . "/mb_validateSession.php";
$epsgObj = array();
$ajaxResponse = new AjaxResponse($_POST);
switch ($ajaxResponse->getMethod()) {
    case "changeEpsg":
        if (!Mapbender::postgisAvailable()) {
            $ajaxResponse->setSuccess(false);
            $ajaxResponse->setMessage(_mb("PostGIS is not available. Please contact the administrator."));
            $ajaxResponse->send();
        }
        $epsgArray = $ajaxResponse->getParameter("srs");
        $newSrs = $ajaxResponse->getParameter("newSrs");
        for ($i = 0; $i < count($epsgArray); $i++) {
            // check if parameters are valid geometries to
            // avoid SQL injections
            $currentEpsg = $epsgArray[$i];
            $oldEPSG = preg_replace("/EPSG:/", "", $currentEpsg->epsg);
            $newEPSG = preg_replace("/EPSG:/", "", $newSrs);
            $extArray = explode(",", $currentEpsg->extent);
            if (is_numeric($extArray[0]) && is_numeric($extArray[1]) && is_numeric($extArray[2]) && is_numeric($extArray[3]) && is_numeric($oldEPSG) && is_numeric($newEPSG)) {
                $con = db_connect($DBSERVER, $OWNER, $PW);
                $sqlMinx = "SELECT X(transform(GeometryFromText('POINT(" . $extArray[0] . " " . $extArray[1] . ")'," . $oldEPSG . ")," . $newEPSG . ")) as minx";
                $resMinx = db_query($sqlMinx);
require_once dirname(__FILE__) . "/../classes/class_administration.php";
$ajaxResponse = new AjaxResponse($_POST);
$json = new Mapbender_JSON();
$currentUser = new User();
$wmc = new wmc();
$resultObj = array();
switch ($ajaxResponse->getMethod()) {
    case 'checkConstraints':
        $resultObj = Mapbender::session()->get("wmcConstraints");
        $ajaxResponse->setResult($resultObj);
        $ajaxResponse->setSuccess(true);
        break;
    case 'deleteWmc':
        if (Mapbender::session()->exists("mb_wmc")) {
            Mapbender::session()->delete("mb_wmc");
            $ajaxResponse->setMessage(_mb("WMC in session reset."));
            $ajaxResponse->setSuccess(true);
        } else {
            $ajaxResponse->setMessage(_mb("No WMC in session found."));
            $ajaxResponse->setResult($resultObj);
            $ajaxResponse->setSuccess(false);
        }
        break;
    case 'updateWmc':
        if (!Mapbender::session()->exists("wmcGetApi") || !is_a(Mapbender::session()->get("wmcGetApi"), "wmc")) {
            $ajaxResponse->setMessage(_mb("No WMC in session."));
            $ajaxResponse->setSuccess(true);
            break;
        }
        $wmc = Mapbender::session()->get("wmcGetApi");
        $skipWms = $ajaxResponse->getParameter("wmsIndices");
/*
 * License:
 * Copyright (c) 2009, Open Source Geospatial Foundation
 * This program is dual licensed under the GNU General Public License 
 * and Simplified BSD license.  
 * http://svn.osgeo.org/mapbender/trunk/mapbender/license/license.txt
 */
require_once dirname(__FILE__) . "/../php/mb_validateSession.php";
require_once dirname(__FILE__) . "/../classes/class_administration.php";
require_once dirname(__FILE__) . "/../classes/class_wmc.php";
require_once dirname(__FILE__) . "/../classes/class_json.php";
require_once dirname(__FILE__) . "/../classes/class_lzw_decompress.php";
$ajaxResponse = new AjaxResponse($_POST);
if ($ajaxResponse->getMethod() != "saveWMC") {
    $ajaxResponse->setSuccess(false);
    $ajaxResponse->setMessage("method invalid");
    $ajaxResponse->send();
    exit;
}
$json = new Mapbender_JSON();
// get data from POST and SESSION
$userId = Mapbender::session()->get("mb_user_id");
$mapObject = $ajaxResponse->getParameter('mapObject');
$lzwCompressed = $ajaxResponse->getParameter('lzwCompressed');
$saveInSession = $ajaxResponse->getParameter('saveInSession');
$extensionData = $json->decode($ajaxResponse->getParameter('extensionData'));
$attributes = $ajaxResponse->getParameter('attributes');
$overwrite = $ajaxResponse->getParameter('overwrite');
$overwrite = $overwrite == "1" ? true : false;
//for debugging, write mapObject to file
if ($lzwCompressed == 'true') {
<?php

require_once dirname(__FILE__) . "/../../core/globalSettings.php";
require_once dirname(__FILE__) . "/../classes/class_connector.php";
require_once dirname(__FILE__) . "/../classes/class_administration.php";
require_once dirname(__FILE__) . "/../classes/class_stripRequest.php";
require_once dirname(__FILE__) . "/../classes/class_weldMaps2JPEG.php";
$ajaxResponse = new AjaxResponse($_REQUEST);
$wmcId = $ajaxResponse->getParameter("wmcId");
$mapUrls = $ajaxResponse->getParameter("mapUrls");
if (!$wmcId) {
    $ajaxResponse->setSuccess(false);
    $ajaxResponse->setMessage('wmcId not set');
    $ajaxResponse->send();
}
if (!$mapUrls) {
    $ajaxResponse->setSuccess(false);
    $ajaxResponse->setMessage('mapURLs not set');
    $ajaxResponse->send();
}
switch ($ajaxResponse->getMethod()) {
    case "saveWmcPreview":
        //check if all urls have been send - sometimes only false is send - then delete this entry!
        //loop
        $mapUrlsNew = array();
        $problemUrls = array();
        for ($i = 0; $i < count($mapUrls); $i++) {
            if ($mapUrls[$i] != 'false') {
                $mapUrlsNew[] = $mapUrls[$i];
            } else {
                $problemUrls[] = $i;
 public function signInAction()
 {
     if (!$this->_request->isXmlHttpRequest()) {
         return;
     }
     $arp = new AjaxResponse();
     $arp->setStatus(AjaxResponse::STATUS_FAILED);
     $email = trim($this->_getParam('email'));
     $password = trim($this->_getParam('password'));
     if (empty($email) || empty($password)) {
         $arp->setMessage('E-mail and password can not be empty.');
         $this->json($arp);
         return;
     }
     $hashedPassword = hash('sha256', $password);
     $user = new Model_User($email);
     if (!$user->exists() || $user->get('password') != $hashedPassword) {
         $arp->setMessage('Authentication failed, You entered an incorrect username, or password.');
         $this->json($arp);
         return;
     }
     $this->setLoginCookie($email, $hashedPassword);
     $arp->setStatus(AjaxResponse::STATUS_OK);
     $this->json($arp);
 }
$json = new Mapbender_JSON();
$touObject = new tou();
//$currentUser = new User();
//$wmc = new wmc();
$resultObj = array();
//obj structure in session for acceptedTou (see class_tou.php):
//acceptedTou {
//		wms [100,101,112],
//		wfs [12,34]
//		}
switch ($ajaxResponse->getMethod()) {
    case 'checkAcceptedTou':
        $result = $touObject->check($ajaxResponse->getParameter("serviceType"), $ajaxResponse->getParameter("serviceId"));
        $ajaxResponse->setResult($result['accepted']);
        //1 or 0
        $ajaxResponse->setMessage(_mb($result['message']));
        $ajaxResponse->setSuccess(true);
        break;
    case 'setAcceptedTou':
        $serviceType = $ajaxResponse->getParameter("serviceType");
        $serviceId = $ajaxResponse->getParameter("serviceId");
        $result = $touObject->set($ajaxResponse->getParameter("serviceType"), $ajaxResponse->getParameter("serviceId"));
        $ajaxResponse->setResult($result['setTou']);
        //1 or 0
        $ajaxResponse->setMessage(_mb($result['message']));
        $ajaxResponse->setSuccess(true);
        break;
        // Invalid command
    // Invalid command
    default:
        $ajaxResponse->setMessage(_mb("No method specified."));
<?php

require_once dirname(__FILE__) . "/../php/mb_validateSession.php";
require_once dirname(__FILE__) . "/../classes/class_json.php";
$ajaxResponse = new AjaxResponse($_POST);
switch ($ajaxResponse->getMethod()) {
    case "createWPSRequest":
        $templatefilePath = realpath(dirname(__FILE__) . "/../../resources/wps_template.xml");
        $parameters = $ajaxResponse->getParameter('attributes');
        try {
            $result = createWPSRequest($parameters, $templatefilePath);
            $ajaxResponse->setSuccess(true);
            $ajaxResponse->setResult($result);
        } catch (Exception $E) {
            $ajaxResponse->setSuccess(true);
            $ajaxResponse->setMessage($E->getMessage);
        }
        break;
    default:
        $ajaxResponse->setSuccess(false);
        $ajaxResponse->setMessage("method invalid");
}
$ajaxResponse->send();
/*
* @params parameters an assoc array containing parameters with wich to create a WPS request
* @return a WPS XML document
*/
function createWPSRequest($parameters, $templatefilePath)
{
    // check and give parameters default values
    // need this collection to be subscriptable
try {
    switch ($method) {
        case "intersect":
            $geometries = $request->getParameter("geometries");
            $clickPoint = $request->getparameter("clickPoint");
            $resultGeometries = array();
            $i = 0;
            foreach ($geometries as $geometry) {
                $sql = "SELECT ST_Intersects ('{$clickPoint}'::geometry, '{$geometry}'::geometry);";
                $dbresult = db_query($sql);
                $row = db_fetch_array($dbresult);
                $result = $row["st_intersects"] == "f" ? false : true;
                if ($result) {
                    $resultGeometries[$i] = $geometry;
                }
                $i++;
            }
            $request->setSuccess(true);
            $request->setResult(array("geometries" => $resultGeometries));
            break;
        default:
            $e = new mb_exception(__FILE__ . ": RPC called with invalid Method '{$method}'");
            $request->setSuccess(false);
            $request->setMessage(__FILE__ . ": RPC called with invalid Method '{$method}'");
    }
} catch (Exception $E) {
    $e = new mb_exception(__FILE__ . ": RPC failed. Exception: '{$E}'");
    $request->setSuccess(false);
    $request->setMessage(__FILE__ . ": RPC failed. Exception: '{$E}'");
}
$request->send();
require_once dirname(__FILE__) . "/../../http/classes/class_connector.php";
require_once dirname(__FILE__) . "/../../http/classes/class_administration.php";
require_once dirname(__FILE__) . "/../classes/class_weldMaps2JPEG.php";
//define("LAYER_PREVIEW_BASE","../tmp/layerpreviews/");
//define("LAYER_PREVIEW_BASE","../tmp/");
$ajaxResponse = new AjaxResponse($_REQUEST);
$mapurl = $ajaxResponse->getParameter("mapurl");
$layerName = $ajaxResponse->getParameter("layerName");
$legendUrl = $ajaxResponse->getParameter("legendUrl");
$wmsId = $ajaxResponse->getParameter("wmsId");
$layerId = $ajaxResponse->getParameter("layerId");
$layerPreviewMapFileName = PREVIEW_DIR . "/" . $layerId . "_layer_map_preview.jpg";
$layerPreviewLegendFileName = PREVIEW_DIR . "/" . $layerId . "_layer_legend_preview.jpg";
if (!$mapurl) {
    $ajaxResponse->setSuccess(false);
    $ajaxResponse->setMessage('mapURL not set');
    $ajaxResponse->send();
}
/*
if(!$legendurl){
	$ajaxResponse->setSuccess(false);
	$ajaxResponse->setMessage('legendURL not set');
	$ajaxResponse->send();
}
*/
if (!$wmsId) {
    $ajaxResponse->setSuccess(false);
    $ajaxResponse->setMessage('wmsId not set');
    $ajaxResponse->send();
}
if (!$layerName) {
 protected function sendResult($result = '')
 {
     $arp = new AjaxResponse();
     $arp->setStatus(AjaxResponse::STATUS_OK);
     $arp->setMessage($result);
     $this->json($arp);
 }
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
require_once dirname(__FILE__) . "/../../core/globalSettings.php";
require_once dirname(__FILE__) . "/../php/mb_validateSession.php";
require_once dirname(__FILE__) . "/../classes/class_json.php";
require_once dirname(__FILE__) . "/../classes/class_wfs_configuration.php";
require_once dirname(__FILE__) . "/../classes/class_wfs_conf.php";
$ajaxResponse = new AjaxResponse($_REQUEST);
$command = $ajaxResponse->getMethod();
switch ($command) {
    case "getWfsConfsFromId":
        $wfsConfIdString = $ajaxResponse->getParameter("wfsConfIdString");
        if (!$wfsConfIdString) {
            $ajaxResponse->setSuccess($false);
            $ajaxResponse->setMessage("missing wfsConfIdString");
            $ajaxResponse->send();
            break;
        }
        $wfsConfIdString = trim($wfsConfIdString, ',');
        $wfsConfIds = explode(',', $wfsConfIdString);
        $result = array();
        foreach ($wfsConfIds as $wfsId) {
            $currentWfsConf = WfsConfiguration::createFromDb($wfsId);
            if ($currentWfsConf !== null) {
                $result[] = $currentWfsConf;
            }
        }
        $ajaxResponse->setResult($result);
        $ajaxResponse->send();
        break;
# License:
# Copyright (c) 2009, Open Source Geospatial Foundation
# This program is dual licensed under the GNU General Public License
# and Simplified BSD license.
# http://svn.osgeo.org/mapbender/trunk/mapbender/license/license.txt
require_once dirname(__FILE__) . "/../php/mb_validateSession.php";
require_once dirname(__FILE__) . "/../classes/class_gui.php";
require_once dirname(__FILE__) . "/../classes/class_user.php";
$ajaxResponse = new AjaxResponse($_POST);
switch ($ajaxResponse->getMethod()) {
    case "sql":
        $application = new gui($ajaxResponse->getParameter("applicationId"));
        $user = new User();
        $apps = $user->getApplicationsByPermission();
        if (in_array($application->id, $apps)) {
            $sql = $application->toSql();
            $resultObj = array("sql" => $sql);
            $ajaxResponse->setResult($resultObj);
            $ajaxResponse->setSuccess(true);
            break;
        }
        $ajaxResponse->setSuccess(false);
        $ajaxResponse->setMessage(_mb("You are not allowed to access this application."));
        break;
    default:
        $ajaxResponse->setSuccess(false);
        $ajaxResponse->setMessage(_mb("An unknown error occured."));
        break;
}
$ajaxResponse->send();
switch ($ajaxResponse->getMethod()) {
    // gets available WMCs
    case "getWmc":
        $showPublic = $ajaxResponse->getParameter("showPublic");
        //$e = new mb_notice("mod_loadwmc_server.php: showPublic: ".$showPublic);
        $resultObj["wmc"] = $wmc->selectByUser($currentUser, $showPublic);
        $ajaxResponse->setResult($resultObj);
        $ajaxResponse->setSuccess(true);
        break;
        // gets XML document of a WMC
    // gets XML document of a WMC
    case "getWmcDocument":
        $wmcId = $ajaxResponse->getParameter("id");
        $doc = $wmc->getDocument($wmcId);
        if (!$doc) {
            $ajaxResponse->setMessage(_mb("The WMC document could not be found."));
            $ajaxResponse->setSuccess(false);
        } else {
            $resultObj["wmc"] = array("document" => $doc);
            $ajaxResponse->setResult($resultObj);
            $ajaxResponse->setSuccess(true);
        }
        break;
        // deletes a WMC
    // deletes a WMC
    case "deleteWmc":
        $wmcId = $ajaxResponse->getParameter("id");
        if ($wmc->delete($wmcId, $userId)) {
            $ajaxResponse->setMessage(_mb("WMC has been deleted from the database."));
            $ajaxResponse->setSuccess(true);
        } else {
             $nodeArray[count($nodeArray) - 1]["right"] = ++$left;
         }
         return $nodeArray;
     }
     $nodeArray = addSubTree($rows, 0, 1);
     $resultObj = array("nestedSets" => $nodeArray);
     $ajaxResponse->setResult($resultObj);
     $ajaxResponse->setSuccess(true);
     break;
 case "save":
     $data = $ajaxResponse->getParameter("data");
     try {
         $wmsId = intval($data->wms->wms_id);
     } catch (Exception $e) {
         $ajaxResponse->setSuccess(false);
         $ajaxResponse->setMessage(_mb("Invalid WMS ID."));
         $ajaxResponse->send();
     }
     getWms($wmsId);
     $wms = new wms();
     $wms->createObjFromDBNoGui($wmsId, false);
     //here the original urls will be used - cause the object will used to update the wms table
     $columns = array("wms_abstract", "wms_title", "fees", "accessconstraints", "contactperson", "contactposition", "contactvoicetelephone", "contactfacsimiletelephone", "contactorganization", "address", "city", "stateorprovince", "postcode", "country", "contactelectronicmailaddress", "wms_termsofuse", "wms_network_access", "fkey_mb_group_id");
     foreach ($columns as $c) {
         $value = $data->wms->{$c};
         if (!is_null($value)) {
             $wms->{$c} = $value;
         }
     }
     if (is_array($data->wms->layer_searchable)) {
         foreach ($wms->objLayer as &$layer) {
SQL;
        $res = db_query($sql);
        while ($row = db_fetch_assoc($res)) {
            $resultObj["customCats"][] = $row["fkey_custom_category_id"];
        }
        $ajaxResponse->setResult($resultObj);
        $ajaxResponse->setSuccess(true);
        break;
    case "save":
        global $firephp;
        $data = $ajaxResponse->getParameter("data");
        try {
            $wmcId = intval($data->wmc->wmc_id);
        } catch (Exception $e) {
            $ajaxResponse->setSuccess(false);
            $ajaxResponse->setMessage(_mb("Invalid WMC ID."));
            $ajaxResponse->send();
        }
        $wmcFactory = new WmcFactory();
        $wmc = $wmcFactory->createFromDb($wmcId);
        if (is_null($wmc)) {
            $ajaxResponse->setSuccess(false);
            $ajaxResponse->setMessage(_mb("Invalid WMC ID."));
            $ajaxResponse->send();
        }
        $columns = array("wmc_abstract", "wmc_title", "wmc_keyword", "isoTopicCats", "inspireCats", "customCats", "public");
        foreach ($columns as $c) {
            $value = $data->wmc->{$c};
            if ($c === "wmc_keyword") {
                $wmc->{$c} = explode(",", $value);
                foreach ($wmc->{$c} as &$val) {
 public function orderConversationAction()
 {
     $this->view->sn = $sn = trim($this->_getParam('sn', ''));
     $lastId = intval(trim($this->_getParam('lastId', 0)));
     $getConversation = $this->_getParam('getConversation');
     if (empty($getConversation)) {
         return;
     }
     $oc = new Model_OrderConversation();
     $lastId = intval($lastId);
     $result = $oc->fetchPagedList(1, 999999, array(Db::RAW_WHERE_KEY => 'id>' . $lastId, 'sn' => $sn), 'id ASC')['rows'];
     $arp = new AjaxResponse();
     $arp->setStatus(AjaxResponse::STATUS_OK);
     $arp->setMessage($result);
     $this->json($arp);
 }