function serializeArray($result, $instance, $isSimpleResult, $serverKey)
{
    $json = "";
    if (is_array($result)) {
        if (ArrayUtils::isAssociative($result)) {
            $json .= "{";
            foreach ($result as $key => $value) {
                $json .= '"' . $key . '":';
                if (is_object($value)) {
                    $json .= serializeObject($value, $instance, false, $serverKey);
                } else {
                    if (is_array($value)) {
                        $json .= serializeArray($value, $instance, $isSimpleResult, $serverKey);
                    } else {
                        $json .= serializeObject($value, $instance, !is_object($value), $serverKey);
                    }
                }
                $json .= ",";
            }
        } else {
            $json .= "[";
            for ($i = 0; $i < count($result); $i++) {
                $json .= serializeObject($result[$i], $instance, $isSimpleResult, $serverKey) . ",";
            }
        }
        $json = JsonUtils::removeLastChar($result, $json);
        if (ArrayUtils::isAssociative($result)) {
            $json .= "}";
        } else {
            $json .= "]";
        }
    }
    return $json;
}
 /**
  * Temp Store survey.
  *
  * @param AnswersFormRequest $request
  * @param AnswersRepository  $answerRepository
  *
  * @internal param AnswersRepository $repo
  *
  * @return \Illuminate\View\View
  */
 public function store(AnswersFormRequest $request, AnswersRepository $answerRepository, Dispatcher $dispatcher)
 {
     // Make an answers DTO from Inputs
     $answersDTO = new AnswersDTO(serializeArray($request->all()));
     // Create an Answer if email does not already exists
     try {
         $saved = $answerRepository->createAndSaveIfUnique($answersDTO->toArray());
         $dispatcher->fire(new SurveyWasSubmitted($saved->id));
     } catch (EmailExistsException $e) {
         return view('survey.alreadySubmitted', ['email' => $answersDTO->email]);
     }
     return Redirect::route('answer.saved', ['email' => $answersDTO->email ?: '', 'answer_id' => $saved->id]);
 }
function serializeMethodResult($method, $result, $instance, $serverKey)
{
    $json = "";
    if (isNoResult($method)) {
        return "{}";
    }
    $isSimpleResult = isSimpleResult($method);
    if ($result === null) {
        if ($isSimpleResult) {
            $json .= '{"' . $method->getResult() . '":null}';
        } else {
            $json .= "{}";
        }
    } else {
        if ($isSimpleResult) {
            $json .= '{"' . $method->getResult() . '":';
        }
        if ($method->isArray()) {
            if (is_array($result)) {
                $json .= serializeArray($result, $instance, $isSimpleResult, $serverKey);
            } else {
                // The result it's not an array although it was described IT WAS an array
                throw new MashapeException(EXCEPTION_EXPECTED_ARRAY_RESULT_SIMPLE, EXCEPTION_GENERIC_LIBRARY_ERROR_CODE);
            }
        } else {
            if (is_array($result)) {
                // The result it's an array although it was described IT WAS NOT an array
                throw new MashapeException(EXCEPTION_UNEXPECTED_ARRAY_RESULT_SIMPLE, EXCEPTION_GENERIC_LIBRARY_ERROR_CODE);
            } else {
                $json .= serializeObject($result, $instance, $isSimpleResult, $serverKey);
            }
        }
        if ($isSimpleResult) {
            $json .= '}';
        }
    }
    return $json;
}
function serializeObject($result, $instance, $isSimpleResult, $serverKey)
{
    $json = "";
    if ($isSimpleResult) {
        // It's a simple result, just serialize it
        $json = JsonUtils::encodeToJson($result);
    } else {
        // It's a custom object, let's serialize recursively every field
        $className = get_class($result);
        $reflectedClass = new ReflectionClass($className);
        $xmlObject = RESTConfigurationLoader::getObject($className, $serverKey);
        if (empty($xmlObject)) {
            throw new MashapeException(sprintf(EXCEPTION_UNKNOWN_OBJECT, $className), EXCEPTION_GENERIC_LIBRARY_ERROR_CODE);
        }
        // Start element
        $json .= "{";
        // Serialize fields
        $fields = $xmlObject->getFields();
        for ($i = 0; $i < count($fields); $i++) {
            $field = $fields[$i];
            $fieldName = $field->getName();
            $fieldMethod = $field->getMethod();
            $fieldValue = null;
            if (empty($fieldMethod)) {
                if ($reflectedClass->hasProperty($fieldName)) {
                    $reflectedProperty = $reflectedClass->getProperty($fieldName);
                    if ($reflectedProperty->isPublic()) {
                        $fieldValue = $reflectedProperty->getValue($result);
                    } else {
                        // Try using the __get magic method
                        $fieldValue = $reflectedClass->getMethod("__get")->invokeArgs($result, array($fieldName));
                    }
                } else {
                    if (ArrayUtils::existKey($fieldName, get_object_vars($result))) {
                        $fieldValue = $result->{$fieldName};
                    } else {
                        throw new MashapeException(sprintf(EXCEPTION_FIELD_NOTFOUND, $fieldName), EXCEPTION_GENERIC_LIBRARY_ERROR_CODE);
                    }
                }
            } else {
                $fieldValue = $reflectedClass->getMethod($fieldMethod)->invoke($result);
            }
            if ($fieldValue === null && $field->isOptional()) {
                // Don't serialize the field
                continue;
            }
            $json .= '"' . $fieldName . '":';
            if ($fieldValue === null) {
                $json .= JsonUtils::encodeToJson($fieldValue);
            } else {
                $isSimpleField = isSimpleField($field);
                if ($field->isArray()) {
                    if (is_array($fieldValue)) {
                        $json .= serializeArray($fieldValue, $instance, isSimpleField($field), $serverKey);
                    } else {
                        // The result it's not an array although it was described IT WAS an array
                        throw new MashapeException(sprintf(EXCEPTION_EXPECTED_ARRAY_RESULT, $fieldName, $className), EXCEPTION_GENERIC_LIBRARY_ERROR_CODE);
                    }
                } else {
                    if (is_array($fieldValue)) {
                        // The result it's an array although it was described IT WAS NOT an array
                        throw new MashapeException(sprintf(EXCEPTION_UNEXPECTED_ARRAY_RESULT, $fieldName, $className), EXCEPTION_GENERIC_LIBRARY_ERROR_CODE);
                    } else {
                        $json .= serializeObject($fieldValue, $instance, $isSimpleField, $serverKey);
                    }
                }
            }
            $json .= ",";
        }
        if (substr($json, strlen($json) - 1, 1) != "{") {
            $json = JsonUtils::removeLastChar($fields, $json);
        }
        // Close element
        $json .= "}";
    }
    return $json;
}
Exemple #5
0
function getContentTree($params)
{
    /*
    		-- VALID PARAMS --
    		-- REQUIRED --
    id (int) - specifies a specific id to return
    		statusid (int)
    */
    global $statusid;
    global $search;
    global $values;
    $list = get_html_translation_table(HTML_ENTITIES);
    //unset($list['"']);
    unset($list['<']);
    unset($list['>']);
    $search = array_keys($list);
    $values = array_values($list);
    $search = array_map('utf8_encode', $search);
    $sendParams = array();
    $statusid = -1;
    $xml = "";
    $sql = "SELECT content.id,content.parentid,content.migtitle,content.containerpath,is_fixed " . "FROM `content` ";
    if (isset($params['id'])) {
        $sql .= " WHERE content.id = :id ";
        $sendParams['id'] = $params['id'];
        if (isset($params['statusid'])) {
            $statusid = $params['statusid'];
            $sql .= " AND content.statusid = :statusid ";
            $sendParams['statusid'] = $params['statusid'];
        }
        $sql .= " AND deleted = '0' ORDER BY displayorder";
    } else {
        $sql .= " WHERE parentid = 0 AND deleted = '0' ORDER BY displayorder";
    }
    $result = queryDatabase($sql, $sendParams);
    $xml .= "<categoryTree>";
    //$arrContainers = array();
    while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
        $xml .= "<container " . returnTagAttributes($row) . ">";
        if ($x = returnChildren($row['id'])) {
            $xml .= $x;
        }
        $xml .= "</container>";
    }
    $xml .= "</categoryTree>";
    //header('Content-type: text/xml; charset="utf-8"',true);
    $xml = trim($xml);
    serializeArray($xml);
    //echo $xml;
    die;
}
Exemple #6
0
function outputDirectoryListing($newdir)
{
    $dir = opendir($newdir);
    $resultList = array();
    if ($dir) {
        while (($file = readdir($dir)) !== false) {
            if ($file !== "." && $file !== ".." && $file != "migThumbs" && $file != ".DS_Store") {
                $mtime = filemtime($newdir . $file);
                if (is_file($newdir . $file)) {
                    $type = "file";
                    $size = shell_exec("du -k " . $newdir . $file);
                    $chars = preg_split("/[\\s,]*\\\"([^\\\"]+)\\\"[\\s,]*|" . "[\\s,]*'([^']+)'[\\s,]*|" . "[\\s,]+/", $size, -1, PREG_SPLIT_OFFSET_CAPTURE);
                    //print_r($chars);
                    $size = $chars[0][0];
                    $createthumb = preg_match_all('/^.*\\.(jpg|jpeg|png|gif|tiff|tiff|bmp|mov|m4v|flv|f4v|mp4)$/i', $file, $arr, PREG_PATTERN_ORDER);
                    $childrencount = 0;
                } else {
                    $type = "folder";
                    $size = dirsize($newdir . $file);
                    $createthumb = 0;
                    $childrencount = num_files($newdir . $file, 3);
                }
                $size *= 1024;
                //$size = byteSize($size);
                $arr = array("name" => $file, "createdate" => $mtime, "size" => $size, "type" => $type, "createthumb" => $createthumb, "childrencount" => $childrencount);
                array_push($resultList, $arr);
            }
        }
        serializeArray($resultList);
        closedir($dir);
    }
}