Example #1
0
 public function process(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     if (!$request->get("label") && !$request->get("block") || !$request->get("languages")) {
         //Make JSON response
         $response = new Vtiger_Response();
         $response->setError('error-param', getTranslatedString("LBL_ERROR_PARAM", $moduleName));
         $response->emit();
         exit;
     }
     $languages = trim($request->get("languages"));
     $a_languages = explode(",", $languages);
     $a_block = $request->get("block");
     //Repair bug with utf8 characters
     if (!is_array($a_block)) {
         $oldValue = Zend_Json::$useBuiltinEncoderDecoder;
         Zend_Json::$useBuiltinEncoderDecoder = true;
         $a_block = Zend_Json::decode($a_block);
         Zend_Json::$useBuiltinEncoderDecoder = $oldValue;
         foreach ($a_block as &$val) {
             $val = utf8_encode($val);
         }
     }
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
     $viewer->assign('LIST_PARENT_TABS', $a_parent_tabs);
     $viewer->assign('LIST_MODULES', $a_modules);
     $viewer->assign('LIST_MANIFEST_TEMPLATES', $a_manifest_templates);
     $viewer->assign('LIST_DIR_TEMPLATES', $a_dir_templates);
     $viewer->assign('a_block', $a_block);
     $viewer->assign('a_languages', $a_languages);
     echo $viewer->view('EditBlockPopup.tpl', $qualifiedModuleName, true);
 }
Example #2
0
 /**
  * Get key value (otherwise default value)
  */
 function get($key, $defvalue = '')
 {
     $value = $defvalue;
     if (isset($this->valuemap[$key])) {
         $value = $this->valuemap[$key];
     }
     if ($value === '' && isset($this->defaultmap[$key])) {
         $value = $this->defaultmap[$key];
     }
     $isJSON = false;
     if (is_string($value)) {
         // NOTE: Zend_Json or json_decode gets confused with big-integers (when passed as string)
         // and convert them to ugly exponential format - to overcome this we are performin a pre-check
         if (strpos($value, "[") === 0 || strpos($value, "{") === 0) {
             $isJSON = true;
         }
     }
     if ($isJSON) {
         $oldValue = Zend_Json::$useBuiltinEncoderDecoder;
         Zend_Json::$useBuiltinEncoderDecoder = false;
         $decodeValue = Zend_Json::decode($value);
         if (isset($decodeValue)) {
             $value = $decodeValue;
         }
         Zend_Json::$useBuiltinEncoderDecoder = $oldValue;
     }
     //Handled for null because vtlib_purify returns empty string
     if (!empty($value)) {
         $value = vtlib_purify($value);
     }
     return $value;
 }
Example #3
0
 public function testJsonWithBuiltins()
 {
     $u = Zend_Json::$useBuiltinEncoderDecoder;
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $this->_testJson(array('string', 327, true, null));
     Zend_Json::$useBuiltinEncoderDecoder = $u;
 }
Example #4
0
 function emitJSON()
 {
     // Allow use of native json encoder/decoder for better performance when the content is huge
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $response = Zend_Json::encode($this->prepareResponse());
     return $response;
 }
 function _encodeResponse($data)
 {
     Zend_Json::$useBuiltinEncoderDecoder = true;
     if (self::$encoding != 'UTF-8') {
         array_walk_recursive($data, array(__CLASS__, 'encodingToUtf8'), self::$encoding);
     }
     return Zend_Json::encode($data);
 }
 /**
  * Descriptografa a URL
  *
  * @param null $paramValue
  * @return mixed
  */
 public static function decrypt($paramValue = NULL)
 {
     $_zendView = Zend_Controller_Front::getInstance();
     if ($paramValue == NULL) {
         $_strUrl = base64_decode($_zendView->getRequest()->getParam('url'));
     } else {
         $_strUrl = base64_decode($paramValue);
     }
     Zend_Json::$useBuiltinEncoderDecoder = TRUE;
     return Zend_Json::decode($_strUrl);
 }
 public function send()
 {
     Zend_Json::$useBuiltinEncoderDecoder = true;
     if ($this->getError()) {
         $this->setR('error');
     } else {
         $this->setR('success');
     }
     Mage::app()->getFrontController()->getResponse()->setHeader('Content-Type', 'text/plain')->setBody(Zend_Json::encode($this->getData()));
     Mage::app()->getFrontController()->getResponse()->sendResponse();
     die;
 }
 public function process(Vtiger_Request $request)
 {
     $GLOBALS['csrf']['frame-breaker'] = false;
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     if (!$request->get("customlink") && !$request->get("type") || !$request->get("languages")) {
         //Make JSON response
         $response = new Vtiger_Response();
         $response->setError('error-param', getTranslatedString("LBL_ERROR_PARAM", $moduleName));
         $response->emit();
     } else {
         $languages = trim($request->get("languages"));
         $a_languages = explode(",", $languages);
         if ($request->get("customlink")) {
             $a_customLink = $request->get("customlink");
             //Repair bug with utf8 characters
             if (!is_array($a_customLink)) {
                 $oldValue = Zend_Json::$useBuiltinEncoderDecoder;
                 Zend_Json::$useBuiltinEncoderDecoder = true;
                 $a_customLink = Zend_Json::decode($a_customLink);
                 Zend_Json::$useBuiltinEncoderDecoder = $oldValue;
                 foreach ($a_customLink as &$val) {
                     $val = utf8_encode($val);
                 }
             }
         }
         if (empty($a_customLink)) {
             $a_customLink["type"] = '';
             $a_customLink["label"] = '';
             $a_customLink["url"] = '';
             $a_customLink["icon"] = '';
             $a_customLink["handlerPath"] = '';
             $a_customLink["handlerClass"] = '';
             $a_customLink["handler"] = '';
             $a_customLink["type"] = $request->get('type');
             foreach ($a_languages as $language) {
                 $a_customLink["label_" . $language] = '';
             }
         }
         $viewer->assign('MODULE', $moduleName);
         $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
         $viewer->assign('a_customLink', $a_customLink);
         $viewer->assign('a_languages', $a_languages);
         echo $viewer->view('EditCustomLinkPopup.tpl', $qualifiedModuleName, true);
     }
 }
 public function process(Vtiger_Request $request)
 {
     $GLOBALS['csrf']['frame-breaker'] = false;
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     if (!$request->get("relatedlist") && !$request->get("relmodule") || !$request->get("languages")) {
         //Make JSON response
         $response = new Vtiger_Response();
         $response->setError('error-param', getTranslatedString("LBL_ERROR_PARAM", $moduleName));
         $response->emit();
     } else {
         $languages = trim($request->get("languages"));
         $a_languages = explode(",", $languages);
         if ($request->get("relatedlist")) {
             $a_relatedList = $request->get("relatedlist");
             //Repair bug with utf8 characters
             if (!is_array($a_relatedList)) {
                 $oldValue = Zend_Json::$useBuiltinEncoderDecoder;
                 Zend_Json::$useBuiltinEncoderDecoder = true;
                 $a_relatedList = Zend_Json::decode($a_relatedList);
                 Zend_Json::$useBuiltinEncoderDecoder = $oldValue;
                 foreach ($a_relatedList as &$val) {
                     $val = utf8_encode($val);
                 }
             }
         }
         if (empty($a_relatedList)) {
             $a_relatedList["relatedModule"] = trim($request->get("relmodule"));
             $a_relatedList["label"] = '';
             $a_relatedList["functionName"] = '';
             $a_relatedList["presence"] = '';
             $a_relatedList["actionAdd"] = '';
             $a_relatedList["actionSelect"] = '';
             foreach ($a_languages as $language) {
                 $a_relatedList["label_" . $language] = '';
             }
         }
         $viewer->assign('MODULE', $moduleName);
         $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
         $viewer->assign('a_relatedList', $a_relatedList);
         $viewer->assign('a_languages', $a_languages);
         echo $viewer->view('EditRelatedListPopup.tpl', $qualifiedModuleName, true);
     }
 }
 public function process(Vtiger_Request $request)
 {
     $GLOBALS['csrf']['frame-breaker'] = false;
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     if (!$request->get("eventobj") && !$request->get("event") || !$request->get("languages")) {
         //Make JSON response
         $response = new Vtiger_Response();
         $response->setError('error-param', getTranslatedString("LBL_ERROR_PARAM", $moduleName));
         $response->emit();
     } else {
         $languages = trim($request->get("languages"));
         $a_languages = explode(",", $languages);
         if ($request->get("eventobj")) {
             $a_event = $request->get("eventobj");
             //Repair bug with utf8 characters
             if (!is_array($a_event)) {
                 $oldValue = Zend_Json::$useBuiltinEncoderDecoder;
                 Zend_Json::$useBuiltinEncoderDecoder = true;
                 $a_event = Zend_Json::decode($a_event);
                 Zend_Json::$useBuiltinEncoderDecoder = $oldValue;
                 foreach ($a_event as &$val) {
                     $val = utf8_encode($val);
                 }
             }
         }
         if (empty($a_event)) {
             $a_event["eventName"] = trim($request->get("event"));
             $a_event["handlerPath"] = '';
             $a_event["handlerClass"] = '';
             $a_event["cond"] = '';
             $a_event["dependentOn"] = '';
             $a_event["isActive"] = false;
         }
         $viewer->assign('MODULE', $moduleName);
         $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
         $viewer->assign('a_event', $a_event);
         $viewer->assign('a_languages', $a_languages);
         echo $viewer->view('EditEventPopup.tpl', $qualifiedModuleName, true);
     }
 }
Example #11
0
 public static function sendResponse($data, $type = 'xml')
 {
     $responseText = '';
     switch ($type) {
         case 'xml':
             header('content-type: application/xml');
             $responseText = is_array($data) ? self::array2xml($data) : $data;
             break;
         case 'json':
             header('content-type: application/json');
             Zend_Json::$useBuiltinEncoderDecoder = true;
             $responseText = Zend_Json::encode($obj);
             break;
         default:
             header('content-type: text/plain');
             $responseText = $data;
     }
     echo $responseText;
     die;
 }
 public function get_editor_json($settings = array())
 {
     $this->EE->load->library('firephp');
     // Are there any config overrides
     $config_override = $this->EE->config->item('editor');
     if ($config_override != false && is_array($config_override)) {
         $settings = $this->array_extend($settings, $config_override);
     }
     require_once PATH_THIRD . 'editor/libraries/zend_json.php';
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $js = new stdClass();
     // Do we need to load an additional Language?
     if (isset($settings['language']) === TRUE && $settings['language'] != 'en') {
         $js->lang = $settings['language'];
     }
     // Minheight
     if (isset($settings['height']) === TRUE && $settings['height'] > 0) {
         $js->minHeight = $settings['height'];
     }
     // Direction
     if (isset($settings['direction']) === TRUE && $settings['direction'] == 'rtl') {
         $js->direction = 'rtl';
     }
     // Toolbar
     if (isset($settings['toolbar']) === TRUE && $settings['toolbar'] == 'no') {
         $js->toolbar = FALSE;
     }
     // Source
     if (isset($settings['source']) === TRUE && $settings['source'] == 'no') {
         $js->source = FALSE;
     }
     // focus
     if (isset($settings['focus']) === TRUE && $settings['focus'] == 'yes') {
         $js->focus = TRUE;
     }
     // Auto Resize
     if (isset($settings['autoresize']) === TRUE && $settings['autoresize'] == 'no') {
         $js->autoresize = FALSE;
     }
     // fixed
     if (isset($settings['fixed']) === TRUE && $settings['fixed'] == 'yes') {
         $js->fixed = TRUE;
     }
     // Convert Links
     if (isset($settings['convertlinks']) === TRUE && $settings['convertlinks'] == 'no') {
         $js->convertLinks = FALSE;
     }
     // Convert Divs
     if (isset($settings['convertdivs']) === TRUE && $settings['convertdivs'] == 'no') {
         $js->convertDivs = FALSE;
     }
     // Overlay
     if (isset($settings['overlay']) === TRUE && $settings['overlay'] == 'no') {
         $js->overlay = FALSE;
     }
     // Observe Images
     if (isset($settings['observeimages']) === TRUE && $settings['observeimages'] == 'no') {
         $js->observeImages = FALSE;
     }
     // Keyboard shortcuts
     if (isset($settings['shortcuts']) === TRUE && $settings['shortcuts'] == 'no') {
         $js->shortcuts = FALSE;
     }
     // wym
     if (isset($settings['wym']) === TRUE && $settings['wym'] == 'yes') {
         $js->wym = TRUE;
     }
     // protocol
     if (isset($settings['protocol']) === TRUE && $settings['protocol'] == 'no') {
         $js->protocol = '';
     }
     // Allowed Tags
     if (isset($settings['allowedtags_option']) === TRUE && $settings['allowedtags_option'] == 'custom') {
         if (isset($settings['allowedtags']) == FALSE || is_array($settings['allowedtags']) == FALSE) {
             $settings['allowedtags'] = array();
         }
         $js->allowedTags = $settings['allowedtags'];
     }
     // Denied Tags
     if (isset($settings['deniedtags_option']) === TRUE && $settings['deniedtags_option'] == 'custom') {
         if (isset($settings['deniedtags']) == FALSE || is_array($settings['deniedtags']) == FALSE) {
             $settings['deniedtags'] = array();
         }
         $js->deniedTags = $settings['deniedtags'];
     }
     // Formatting Tags
     if (isset($settings['formattingtags']) === TRUE && empty($settings['formattingtags']) === FALSE) {
         $js->formattingTags = $settings['formattingtags'];
     }
     // Custom CSS File
     if (isset($settings['css_file']) === TRUE && empty($settings['css_file']) === FALSE) {
         $css_file = trim($settings['css_file']);
         if ($css_file != FALSE) {
             $js->iframe = TRUE;
             $js_css = json_encode(explode(',', $settings['css_file']));
             $js->css = new Zend_Json_Expr($js_css);
         }
     }
     // Buttons
     if (isset($settings['buttons']) === TRUE) {
         $js->buttons = $settings['buttons'];
     } else {
         $js->buttons = array();
     }
     $js->buttonsCustom = new stdClass();
     // -----------------------------------------
     // Override buttons
     // -----------------------------------------
     foreach ($settings['buttons'] as $class) {
         if (isset($this->EE->editor->buttons[$class]) === FALSE) {
             continue;
         }
         $js->buttonsCustom->{$class} = new stdClass();
         $js->buttonsCustom->{$class}->title = $this->EE->editor->buttons[$class]->info['name'];
         if (isset($this->EE->editor->buttons[$class]->info['callback']) === TRUE && $this->EE->editor->buttons[$class]->info['callback'] != FALSE) {
             $js->buttonsCustom->{$class}->callback = new Zend_Json_Expr($this->EE->editor->buttons[$class]->info['callback']);
         }
         if (isset($this->EE->editor->buttons[$class]->dropdown) === TRUE && empty($this->EE->editor->buttons[$class]->dropdown) === FALSE) {
             $js->buttonsCustom->{$class}->dropdown = new stdClass();
             foreach ($this->EE->editor->buttons[$class]->dropdown as $dropname => $item) {
                 $js->buttonsCustom->{$class}->dropdown->{$dropname} = new stdClass();
                 $js->buttonsCustom->{$class}->dropdown->{$dropname}->title = $item['title'];
                 if (isset($item['callback']) === TRUE) {
                     $js->buttonsCustom->{$class}->dropdown->{$dropname}->callback = new Zend_Json_Expr($item['callback']);
                 }
                 if (isset($item['exec']) === TRUE) {
                     $js->buttonsCustom->{$class}->dropdown->{$dropname}->exec = $item['exec'];
                 }
             }
         }
     }
     // Air
     if (isset($settings['air']) === TRUE && $settings['air'] == 'yes') {
         $js->air = TRUE;
         $js->airButtons = $js->buttons;
     }
     $act_url = $this->EE->editor_helper->getRouterUrl('url', 'ACT_file_upload');
     // Local File Upload
     if (isset($settings['upload_service']) === TRUE && $settings['upload_service'] == 'local') {
         // File Upload
         if (isset($settings['file_upload_location']) === TRUE && $settings['file_upload_location'] > 0) {
             $js->fileUpload = $act_url . '&action=file&upload_location=' . $settings['file_upload_location'];
             $js->fileUploadCallback = new Zend_Json_Expr('Editor.UploadCallback');
         }
         // Image Upload
         if (isset($settings['image_upload_location']) === TRUE && $settings['image_upload_location'] > 0) {
             $js->imageUpload = $act_url . '&action=image&upload_location=' . $settings['image_upload_location'];
             $js->imageUploadCallback = new Zend_Json_Expr('Editor.UploadCallback');
             if (isset($settings['image_browsing']) === TRUE && $settings['image_browsing'] == 'yes') {
                 $js->imageGetJson = $act_url . '&action=image_browser&upload_location=' . $settings['image_upload_location'];
                 if (isset($settings['image_subdir']) === TRUE && $settings['image_subdir'] == 'yes') {
                     $js->imageGetJson .= '&subdir=yes';
                 }
             }
         }
     }
     // S3
     if (isset($settings['upload_service']) === TRUE && $settings['upload_service'] == 's3') {
         $js->s3 = $act_url . '&action=s3_info';
         $string = base64_encode($this->encrypt_string(serialize($settings['s3'])));
         $js->s3 .= "&s3={$string}&";
         //$js->fileUpload = true;
     }
     // Plugins
     if (isset($settings['plugins']) === false || empty($settings['plugins'])) {
         $settings['plugins'] = array();
     }
     $settings['plugins'][] = 'dd_keyboard_shortcuts';
     $js->plugins = $settings['plugins'];
     // Js Call Backs
     if (isset($settings['callbacks']) === true && is_array($settings['callbacks']) === true) {
         foreach ($settings['callbacks'] as $callback => $val) {
             $callback = $callback . 'Callback';
             $val = trim($val);
             if (empty($val) === true) {
                 continue;
             }
             $js->{$callback} = new Zend_Json_Expr($val);
         }
     }
     //$this->EE->firephp->log($js);
     $js = Zend_Json::encode($js, false, array('enableJsonExprFinder' => true));
     //		$js = $this->generate_json($js);
     //$this->EE->firephp->log($js);
     return $js;
 }
Example #13
0
 /**
  * Performs a jsonRCP request and gets the results as an array
  *
  * @param string $method
  * @param array $params
  * @return array
  */
 public function __call($method, $params)
 {
     // check
     if (!is_scalar($method)) {
         throw new Exception('Method name has no scalar value');
     }
     // check
     if (is_array($params)) {
         // no keys
         $params = array_values($params);
     } else {
         throw new Exception('Params must be given as array');
     }
     // sets notification or request task
     if ($this->notification) {
         $currentId = NULL;
     } else {
         $currentId = $this->id;
     }
     // prepares the request
     $request = array('method' => $method, 'params' => $params, 'id' => $currentId);
     require_once dirname(__FILE__) . '/../../../Library/Zend/Json.php';
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $request = Zend_Json::encode($request);
     $this->debug && ($this->debug .= '***** Request *****' . "\n" . $request . "\n" . '***** End Of request *****' . "\n\n");
     $ch = curl_init();
     $headers = array();
     $headers[] = 'Content-type: application/json';
     $headers[] = 'Origin: http://preprod.handicap.chatanoo.org';
     if ($this->sessionKey) {
         $headers[] = "Authorization: {$this->sessionKey}";
     }
     curl_setopt($ch, CURLOPT_URL, $this->url);
     curl_setopt($ch, CURLOPT_POST, 1);
     curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
     if (!($response = curl_exec($ch))) {
         throw new Exception('Unable to connect to ' . $this->url);
     }
     $info = curl_getinfo($ch);
     if ($info['http_code'] != 200) {
         throw new Exception('Authorization fail to ' . $this->url);
     }
     $this->debug && ($this->debug .= '***** Server response *****' . "\n" . $response . '***** End of server response *****' . "\n");
     /*Zend_Debug::dump($response);
     		exit;*/
     require_once dirname(__FILE__) . '/../../../Library/Zend/Json.php';
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $response = Zend_Json::decode($response);
     curl_close($ch);
     // debug output
     if ($this->debug) {
         echo nl2br($this->debug);
     }
     // final checks and return
     if (!$this->notification) {
         // check
         if ($response['id'] != $currentId) {
             throw new Exception('Incorrect response id (request id: ' . $currentId . ', response id: ' . $response['id'] . ')');
         }
         if (@(!is_null($response['error']))) {
             print_r($response);
             throw new Exception('Request error: ' . $response['error']);
         }
         return $response['result'];
     } else {
         return true;
     }
 }
Example #14
0
 /**
  * @group ZF-7586
  */
 public function testWillDecodeStructureWithEmptyKeyToObjectProperly()
 {
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $json = '{"":"test"}';
     $object = Zend_Json::decode($json, Zend_Json::TYPE_OBJECT);
     $this->assertTrue(isset($object->_empty_));
     $this->assertEquals('test', $object->_empty_);
 }
 public function process(Vtiger_Request $request)
 {
     $GLOBALS['csrf']['frame-breaker'] = false;
     $viewer = $this->getViewer($request);
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     if (!$request->get("field") && !$request->get("uitype") || !$request->get("mod") || !$request->get("languages")) {
         //Make JSON response
         $response = new Vtiger_Response();
         $response->setError('error-param', getTranslatedString("LBL_ERROR_PARAM", $moduleName));
         $response->emit();
     } else {
         $languages = trim($request->get("languages"));
         $a_languages = explode(",", $languages);
         if ($request->get("field")) {
             $a_field = $request->get("field");
             //Repair bug with utf8 characters
             if (!is_array($a_field)) {
                 $oldValue = Zend_Json::$useBuiltinEncoderDecoder;
                 Zend_Json::$useBuiltinEncoderDecoder = true;
                 $a_field = Zend_Json::decode($a_field);
                 Zend_Json::$useBuiltinEncoderDecoder = $oldValue;
                 foreach ($a_field as &$val) {
                     if (is_string($val)) {
                         $val = utf8_encode($val);
                     }
                 }
             }
         }
         if (empty($a_field)) {
             $a_field["fieldName"] = '';
             $a_field["oldFieldName"] = '';
             $a_field["label"] = '';
             $a_field["tableName"] = 'vtiger_' . strtolower($request->get('mod'));
             $a_field["columnName"] = '';
             $a_field["helpInfoLabel"] = '';
             $a_field["defaultValue"] = '';
             $a_field["generatedType"] = null;
             $a_field["displayType"] = 1;
             $a_field["isEntityIdentifier"] = false;
             $a_field["entityIdentifierFieldName"] = '';
             $a_field["inFilterAll"] = false;
             $a_field["inPopup"] = false;
             $a_field["popupSequence"] = '';
             $a_field["inRelatedList"] = false;
             $a_field["relatedListSequence"] = '';
             $a_field["quickCreate"] = false;
             $a_field["massEditable"] = false;
             $a_field["readOnly"] = false;
             $a_field["relatedModule"] = null;
             $a_field["pickListValues"] = null;
             foreach ($a_languages as $language) {
                 $a_field["label_" . $language] = '';
             }
             foreach ($a_languages as $language) {
                 $a_field["helpInfoLabel_" . $language] = '';
             }
             require_once "modules/{$moduleName}/UITypes.php";
             foreach ($a_uitypes as $uitype) {
                 if ($uitype["num"] == $request->get("uitype")) {
                     $a_field["UITypeNum"] = $request->get("uitype");
                     $a_field["UITypeName"] = $uitype["label"];
                     $a_field["UITypeDBType"] = $uitype["dbtype"];
                     $a_field["UITypeDataType"] = $uitype["datatype"];
                     $a_field["mandatory"] = $uitype["mandatory"];
                     $a_field["twoColumns"] = $uitype["two_columns"];
                     break;
                 }
             }
         }
         if ($a_field["UITypeNum"] == 10) {
             if (empty($a_field["relatedModule"])) {
                 $a_field["relatedModule"] = array('');
             } elseif (is_string($a_field["relatedModule"])) {
                 $a_field["relatedModule"] = array($a_field["relatedModule"]);
             }
         }
         //Get modules
         $db = PearDatabase::getInstance();
         $query = "SELECT tablabel FROM vtiger_tab ORDER BY tablabel ASC";
         $result = $db->pquery($query, array());
         $a_modules = array();
         while ($row = $db->fetchByAssoc($result)) {
             $a_modules[] = $row["tablabel"];
         }
         $viewer->assign('MODULE', $moduleName);
         $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName);
         $viewer->assign('moduleName', $request->get('mod'));
         $viewer->assign('a_modules', $a_modules);
         $viewer->assign('a_field', $a_field);
         $viewer->assign('a_languages', $a_languages);
         echo $viewer->view('EditFieldPopup.tpl', $qualifiedModuleName, true);
     }
 }
Example #16
0
 public function getData()
 {
     global $current_user, $adb;
     if ($this->_isDummy) {
         return array();
     }
     require_once 'include/Webservices/Retrieve.php';
     if ($this->_data === false) {
         #$crmObj = CRMEntity::getInstance($this->_moduleName);
         #$this->_data = $crmObj;
         #$this->_data->id = $this->_id;
         #$this->_data->mode = "edit";
         #$data = $this->_data;
         #$this->_data->retrieve_entity_info($this->_id, $this->_moduleName);
         $this->prepareTransfer();
         try {
             global $current_user;
             $oldCurrentUser = $current_user;
             $current_user = $useUser;
             $focus = CRMEntity::getInstance($this->getModuleName());
             $focus->id = $this->_id;
             $focus->mode = 'edit';
             $focus->retrieve_entity_info($this->_id, $this->getModuleName());
             $this->_data = $focus->column_fields;
             /* both values are irrelevant use ->id and ->getModuleName() */
             unset($this->_data['record_id']);
             unset($this->_data['record_module']);
             $current_user = $oldCurrentUser;
         } catch (Exception $exp) {
             $current_user = $oldCurrentUser;
             if ($exp->getCode() == "DATABASE_QUERY_ERROR") {
                 global $adb;
                 $handleResult = $this->_handleDatabaseError($adb->database->_errorMsg);
                 $this->_data = array();
             } elseif ($exp->getCode() == "ACCESS_DENIED" && $exp->getMessage() == "Permission to perform the operation is denied") {
                 $sql = "SELECT setype FROM vtiger_crmentity WHERE crmid = " . $this->_id;
                 $checkTMP = $adb->query($sql);
                 if ($adb->num_rows($checkTMP) == 0) {
                     #Workflow2::error_handler(E_NONBREAK_ERROR, "Record ".$this->_id." don't exist in the database. Maybe you try to load data from a group?", $exp->getFile(), $exp->getLine());
                     $this->_data = array();
                     return array();
                 }
                 if ($adb->query_result($checkTMP, 0, "setype") != $this->getModuleName()) {
                     throw new \Exception("You want to get a field from " . $this->getModuleName() . " Module, but the ID is from module " . $adb->query_result($checkTMP, 0, "setype") . ".");
                     $this->_data = array();
                     return array();
                 }
                 $entity = VTEntity::getForId($this->_id);
                 #if(empty($entit))
                 #var_dump($this->getModuleName());
                 #var_dump($this->_id);
             } else {
                 #error_log("ERROR RETRIEVE ".$this->getWsId()." ".$exp->getMessage());
                 throw new $exp();
             }
         }
         $this->afterTransfer();
         if ($this->_moduleName == "Emails") {
             require_once "include/Zend/Json.php";
             \Zend_Json::$useBuiltinEncoderDecoder = false;
             $sql = "SELECT * FROM vtiger_emaildetails WHERE emailid = " . $this->getId();
             $result = $adb->query($sql);
             $to_email = $adb->query_result($result, 0, "to_email");
             #if(VtUtils::is_utf8($to_email)) $to_email = utf8_encode($to_email);
             $this->_data["saved_to"] = implode(",", \Zend_Json::decode(html_entity_decode($to_email)));
             $this->_data["from_email"] = $adb->query_result($result, 0, "from_email");
         }
         // Fix for vtiger bug
         if ($this->_moduleName == "SalesOrder" && $this->_data["enable_recurring"] == "0") {
             $this->_data["invoicestatus"] = "AutoCreated";
         }
     }
     #return $this->_data->column_fields;
     return $this->_data;
 }
Example #17
0
 /**
  * @group ZF-8663
  */
 public function testBuiltinJsonEncoderWillProperlyEncodeSolidusInStringValues()
 {
     $source = "</foo><foo>bar</foo>";
     $target = '"<\\/foo><foo>bar<\\/foo>"';
     // first test ext/json
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $this->assertEquals($target, Zend_Json::encode($source));
 }
Example #18
0
 /**
  * @group ZF-4859
  */
 public function testAutocompleteDoesNotDoubleArrayEncodeDataJsonField()
 {
     $view = new Zend_View();
     $form = new ZendX_JQuery_Form();
     $dataSource = array(0 => 'John Doe');
     $lastname = new ZendX_JQuery_Form_Element_AutoComplete("Lastname", array('label' => 'Lastname'));
     $form->addElement($lastname);
     $form->Lastname->setJQueryParam('source', $dataSource);
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $output = $form->render($view);
     $this->assertEquals(array('$("#Lastname").autocomplete({"source":["John Doe"]});'), $view->jQuery()->getOnLoadActions());
     Zend_Json::$useBuiltinEncoderDecoder = false;
     $output = $form->render($view);
     $this->assertEquals(array('$("#Lastname").autocomplete({"source":["John Doe"]});'), $view->jQuery()->getOnLoadActions());
 }
 public function sendResponse($result, $message = '')
 {
     header('content-type: application/json');
     $obj = array('result' => $result ? 'success' : 'failure', 'message' => $message);
     Zend_Json::$useBuiltinEncoderDecoder = true;
     echo Zend_Json::encode($obj);
     die;
 }
Example #20
0
<?php

require_once dirname(__FILE__) . '/.Start.php';
Zend_Wildfire_Plugin_FirePhp::send(array("Отладочный"), 'UTF-8 characters with json_encode()', Zend_Wildfire_Plugin_FirePhp::LOG);
Zend_Wildfire_Plugin_FirePhp::send("Отладочный", 'UTF-8 characters with json_encode()', Zend_Wildfire_Plugin_FirePhp::LOG);
Zend_Wildfire_Plugin_FirePhp::send(array('Test work. Проверка работы.'), 'UTF-8 characters with json_encode()', Zend_Wildfire_Plugin_FirePhp::LOG);
Zend_Wildfire_Plugin_FirePhp::send('Test work. Проверка работы.', 'UTF-8 characters with json_encode()', Zend_Wildfire_Plugin_FirePhp::LOG);
Zend_Json::$useBuiltinEncoderDecoder = true;
Zend_Wildfire_Plugin_FirePhp::send(array("Отладочный"), 'UTF-8 characters with Zend_Json_Encoder::encode()', Zend_Wildfire_Plugin_FirePhp::LOG);
Zend_Wildfire_Plugin_FirePhp::send("Отладочный", 'UTF-8 characters with Zend_Json_Encoder::encode()', Zend_Wildfire_Plugin_FirePhp::LOG);
Zend_Wildfire_Plugin_FirePhp::send(array('Test work. Проверка работы.'), 'UTF-8 characters with Zend_Json_Encoder::encode()', Zend_Wildfire_Plugin_FirePhp::LOG);
Zend_Wildfire_Plugin_FirePhp::send('Test work. Проверка работы.', 'UTF-8 characters with Zend_Json_Encoder::encode()', Zend_Wildfire_Plugin_FirePhp::LOG);
require_once dirname(__FILE__) . '/.End.php';
Example #21
0
 function emitJSON($object)
 {
     Zend_Json::$useBuiltinEncoderDecoder = true;
     echo Zend_Json::encode($object);
 }
Example #22
0
function webforms_returnSuccess($element, $moduleName)
{
    global $successURL;
    if (strlen($successURL) > 0) {
        header("Location: {$successURL}");
    }
    if ($defaultSuccessAction == 'JSON') {
        Zend_Json::$useBuiltinEncoderDecoder = true;
        $json = new Zend_Json();
        echo $json->encode(array('success' => true, 'result' => $element));
    } else {
        webforms_displayTemplate($elemnet, $moduleName, 'modules/Webforms/SuccessPage.tpl');
    }
}
Example #23
0
 public static function getListViewNavigation($currentRecordId)
 {
     global $currentModule, $current_user, $adb, $log, $list_max_entries_per_page;
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $reUseData = false;
     $displayBufferRecordCount = 10;
     $bufferRecordCount = 15;
     if ($currentModule == 'Documents') {
         $sql = "select folderid from vtiger_notes where notesid=?";
         $params = array($currentRecordId);
         $result = $adb->pquery($sql, $params);
         $folderId = $adb->query_result($result, 0, 'folderid');
     }
     $cv = new CustomView();
     $viewId = $cv->getViewId($currentModule);
     if (!empty($_SESSION[$currentModule . '_DetailView_Navigation' . $viewId])) {
         $recordNavigationInfo = Zend_Json::decode($_SESSION[$currentModule . '_DetailView_Navigation' . $viewId]);
         $pageNumber = 0;
         if (count($recordNavigationInfo) == 1) {
             foreach ($recordNavigationInfo as $recordIdList) {
                 if (in_array($currentRecordId, $recordIdList)) {
                     $reUseData = true;
                 }
             }
         } else {
             $recordList = array();
             $recordPageMapping = array();
             foreach ($recordNavigationInfo as $start => $recordIdList) {
                 foreach ($recordIdList as $index => $recordId) {
                     $recordList[] = $recordId;
                     $recordPageMapping[$recordId] = $start;
                     if ($recordId == $currentRecordId) {
                         $searchKey = count($recordList) - 1;
                     }
                 }
             }
             if ($searchKey > $displayBufferRecordCount - 1 && $searchKey < count($recordList) - $displayBufferRecordCount) {
                 $reUseData = true;
             }
         }
     }
     if ($reUseData === false) {
         $recordNavigationInfo = array();
         if (!empty($_REQUEST['start'])) {
             $start = ListViewSession::getRequestStartPage();
         } else {
             $start = ListViewSession::getCurrentPage($currentModule, $viewId);
         }
         $startRecord = ($start - 1) * $list_max_entries_per_page - $bufferRecordCount;
         if ($startRecord < 0) {
             $startRecord = 0;
         }
         $list_query = $_SESSION[$currentModule . '_listquery'];
         $instance = CRMEntity::getInstance($currentModule);
         $instance->getNonAdminAccessControlQuery($currentModule, $current_user);
         vtlib_setup_modulevars($currentModule, $instance);
         if ($currentModule == 'Documents' && !empty($folderId)) {
             $list_query = preg_replace("/[\n\r\\s]+/", " ", $list_query);
             $hasOrderBy = stripos($list_query, 'order by');
             if ($hasOrderBy > 0) {
                 $list_query = substr($list_query, 0, $hasOrderBy - 1) . " AND vtiger_notes.folderid={$folderId} " . substr($list_query, $hasOrderBy);
             } else {
                 $list_query .= " AND vtiger_notes.folderid={$folderId}";
                 $order_by = $instance->getOrderByForFolder($folderId);
                 $sorder = $instance->getSortOrderForFolder($folderId);
                 $tablename = getTableNameForField($currentModule, $order_by);
                 $tablename = $tablename != '' ? $tablename . "." : '';
                 if (!empty($order_by)) {
                     $list_query .= ' ORDER BY ' . $tablename . $order_by . ' ' . $sorder;
                 }
             }
         }
         if ($start != 1) {
             $recordCount = $list_max_entries_per_page + 2 * $bufferRecordCount;
         } else {
             $recordCount = $list_max_entries_per_page + $bufferRecordCount;
         }
         $list_query .= " LIMIT {$startRecord}, {$recordCount}";
         $resultAllCRMIDlist_query = $adb->pquery($list_query, array());
         $navigationRecordList = array();
         while ($forAllCRMID = $adb->fetch_array($resultAllCRMIDlist_query)) {
             $navigationRecordList[] = $forAllCRMID[$instance->table_index];
         }
         $pageCount = 0;
         $current = $start;
         if ($start == 1) {
             $firstPageRecordCount = $list_max_entries_per_page;
         } else {
             $firstPageRecordCount = $bufferRecordCount;
             $current -= 1;
         }
         $searchKey = array_search($currentRecordId, $navigationRecordList);
         $recordNavigationInfo = array();
         if ($searchKey !== false) {
             foreach ($navigationRecordList as $index => $recordId) {
                 if (!is_array($recordNavigationInfo[$current])) {
                     $recordNavigationInfo[$current] = array();
                 }
                 if ($index == $firstPageRecordCount || $index == $firstPageRecordCount + $pageCount * $list_max_entries_per_page) {
                     $current++;
                     $pageCount++;
                 }
                 $recordNavigationInfo[$current][] = $recordId;
             }
         }
         $_SESSION[$currentModule . '_DetailView_Navigation' . $viewId] = Zend_Json::encode($recordNavigationInfo);
     }
     return $recordNavigationInfo;
 }
Example #24
0
 /**
  * Test for ZF-4053
  * 
  * Check to see that cyclical exceptions are silenced when
  * $option['silenceCyclicalExceptions'] = true is used
  */
 public function testZf4053()
 {
     $item1 = new Zend_JsonTest_Item();
     $item2 = new Zend_JsonTest_Item();
     $everything = array();
     $everything['allItems'] = array($item1, $item2);
     $everything['currentItem'] = $item1;
     $options = array('silenceCyclicalExceptions' => true);
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $encoded = Zend_Json::encode($everything, true, $options);
     $json = '{"allItems":[{"__className":"Zend_JsonTest_Item"},{"__className":"Zend_JsonTest_Item"}],"currentItem":"* RECURSION (Zend_JsonTest_Item) *"}';
     $this->assertEquals($encoded, $json);
 }
Example #25
0
 /**
  * Send AJAX response and exit
  * @param string $cart
  * @param string $text
  */
 public function sendWishlistResponse($cart, $text, $wishlist = null, $wishlistLinks = null)
 {
     header('content-type: text/javascript');
     $obj = array('r' => 'success', 'cart' => $cart, 'links' => $text, 'wishlist' => $wishlist, 'wishlist_links' => $wishlistLinks);
     Zend_Json::$useBuiltinEncoderDecoder = true;
     echo Zend_Json::encode($obj);
     die;
 }
 /**
  * Convert data to JSON and add it to response
  */
 public function send()
 {
     Mage::dispatchEvent('awclickcheckout_before_sending_response', array('response' => $this));
     Zend_Json::$useBuiltinEncoderDecoder = true;
     if ($this->getError()) {
         $this->setR('error');
     } else {
         $this->setR('success');
     }
     Mage::app()->getFrontController()->getResponse()->setBody(Zend_Json::encode($this->getData()));
 }
 function getListViewNavigation($currentRecordId)
 {
     global $currentModule, $current_user, $adb, $log, $list_max_entries_per_page;
     Zend_Json::$useBuiltinEncoderDecoder = true;
     $reUseData = false;
     $displayBufferRecordCount = 10;
     $bufferRecordCount = 15;
     if ($currentModule == 'Documents') {
         $sql = "select folderid from vtiger_notes where notesid=?";
         $params = array($currentRecordId);
         $result = $adb->pquery($sql, $params);
         $folderId = $adb->query_result($result, 0, 'folderid');
     }
     $cv = new CustomView();
     $viewId = $cv->getViewId($currentModule);
     if (!empty($_SESSION[$currentModule . '_DetailView_Navigation' . $viewId])) {
         $recordNavigationInfo = Zend_Json::decode($_SESSION[$currentModule . '_DetailView_Navigation' . $viewId]);
         $pageNumber = 0;
         if (count($recordNavigationInfo) == 1) {
             foreach ($recordNavigationInfo as $recordIdList) {
                 if (in_array($currentRecordId, $recordIdList)) {
                     $reUseData = true;
                 }
             }
         } else {
             $recordList = array();
             $recordPageMapping = array();
             foreach ($recordNavigationInfo as $start => $recordIdList) {
                 foreach ($recordIdList as $index => $recordId) {
                     $recordList[] = $recordId;
                     $recordPageMapping[$recordId] = $start;
                     if ($recordId == $currentRecordId) {
                         $searchKey = count($recordList) - 1;
                     }
                 }
             }
             if ($searchKey > $displayBufferRecordCount - 1 && $searchKey < count($recordList) - $displayBufferRecordCount) {
                 $reUseData = true;
             }
         }
     }
     if ($reUseData === false) {
         $recordNavigationInfo = array();
         if (!empty($_REQUEST['start'])) {
             $start = ListViewSession::getRequestStartPage();
         } else {
             $start = ListViewSession::getCurrentPage($currentModule, $viewId);
         }
         $startRecord = ($start - 1) * $list_max_entries_per_page - $bufferRecordCount;
         if ($startRecord < 0) {
             $startRecord = 0;
         }
         $list_query = $_SESSION[$currentModule . '_listquery'];
         if ($currentModule == 'Documents' && !empty($folderId)) {
             $list_query = preg_replace("/[\n\r\\s]+/", " ", $list_query);
             $findOrderByPosition = stripos($list_query, ' ORDER BY ');
             if ($findOrderByPosition > 0) {
                 $orderByClause = substr($list_query, $findOrderByPosition, strlen($list_query));
                 $list_query = substr($list_query, 0, $findOrderByPosition) . " AND vtiger_notes.folderid={$folderId} " . $orderByClause;
             } else {
                 $list_query .= " AND vtiger_notes.folderid={$folderId}";
             }
         }
         if ($start != 1) {
             $recordCount = $list_max_entries_per_page + 2 * $bufferRecordCount;
         } else {
             $recordCount = $list_max_entries_per_page + $bufferRecordCount;
         }
         if ($adb->dbType == "pgsql") {
             $list_query .= " OFFSET {$startRecord} LIMIT {$recordCount}";
         } else {
             $list_query .= " LIMIT {$startRecord}, {$recordCount}";
         }
         $resultAllCRMIDlist_query = $adb->pquery($list_query, array());
         $navigationRecordList = array();
         while ($forAllCRMID = $adb->fetch_array($resultAllCRMIDlist_query)) {
             $navigationRecordList[] = $forAllCRMID['crmid'];
         }
         $pageCount = 0;
         $current = $start;
         if ($start == 1) {
             $firstPageRecordCount = $list_max_entries_per_page;
         } else {
             $firstPageRecordCount = $bufferRecordCount;
             $current -= 1;
         }
         $searchKey = array_search($currentRecordId, $navigationRecordList);
         $recordNavigationInfo = array();
         if ($searchKey !== false) {
             foreach ($navigationRecordList as $index => $recordId) {
                 if (!is_array($recordNavigationInfo[$current])) {
                     $recordNavigationInfo[$current] = array();
                 }
                 if ($index == $firstPageRecordCount || $index == $firstPageRecordCount + $pageCount * $list_max_entries_per_page) {
                     $current++;
                     $pageCount++;
                 }
                 $recordNavigationInfo[$current][] = $recordId;
             }
         }
         $_SESSION[$currentModule . '_DetailView_Navigation' . $viewId] = Zend_Json::encode($recordNavigationInfo);
     }
     return $recordNavigationInfo;
 }