Symfony \ Component \ Yaml \ Exception \ ParseException
Duplicate key "type" detected at line 23 (near "type: Repeaat Track"). Symfony\Component\Yaml\Exception\ParseException thrown with message "Duplicate key "type" detected at line 23 (near "type: Repeaat Track")." Stacktrace: #40 Symfony\Component\Yaml\Exception\ParseException in /apps/topdata/app/webroot/libraries/gantry5/vendor/symfony/yaml/Parser.php:360 #39 Symfony\Component\Yaml\Parser:doParse in /apps/topdata/app/webroot/libraries/gantry5/vendor/symfony/yaml/Parser.php:537 #38 Symfony\Component\Yaml\Parser:parseBlock in /apps/topdata/app/webroot/libraries/gantry5/vendor/symfony/yaml/Parser.php:208 #37 Symfony\Component\Yaml\Parser:doParse in /apps/topdata/app/webroot/libraries/gantry5/vendor/symfony/yaml/Parser.php:537 #36 Symfony\Component\Yaml\Parser:parseBlock in /apps/topdata/app/webroot/libraries/gantry5/vendor/symfony/yaml/Parser.php:332 #35 Symfony\Component\Yaml\Parser:doParse in /apps/topdata/app/webroot/libraries/gantry5/vendor/symfony/yaml/Parser.php:537 #34 Symfony\Component\Yaml\Parser:parseBlock in /apps/topdata/app/webroot/libraries/gantry5/vendor/symfony/yaml/Parser.php:332 #33 Symfony\Component\Yaml\Parser:doParse in /apps/topdata/app/webroot/libraries/gantry5/vendor/symfony/yaml/Parser.php:97 #32 Symfony\Component\Yaml\Parser:parse in /apps/topdata/app/webroot/libraries/gantry5/vendor/symfony/yaml/Yaml.php:80 #31 Symfony\Component\Yaml\Yaml:parse in /apps/topdata/app/webroot/libraries/quix/src/Config/Loaders/YamlConfigLoader.php:26 #30 ThemeXpert\Config\Loaders\YamlConfigLoader:load in /apps/topdata/app/webroot/libraries/quix/vendor/symfony/config/Loader/DelegatingLoader.php:40 #29 Symfony\Component\Config\Loader\DelegatingLoader:load in /apps/topdata/app/webroot/libraries/quix/src/Config/Loader.php:88 #28 ThemeXpert\Config\Loader:load in /apps/topdata/app/webroot/libraries/quix/src/Config/ConfigBag.php:108 #27 ThemeXpert\Config\ConfigBag:load in /apps/topdata/app/webroot/libraries/quix/src/Config/ConfigBag.php:71 #26 ThemeXpert\Config\ConfigBag:fill in /apps/topdata/app/webroot/libraries/quix/src/Quix/Element/ElementBag.php:75 #25 ThemeXpert\Quix\Element\ElementBag:add in /apps/topdata/app/webroot/libraries/quix/src/Quix/Element/ElementBag.php:58 #24 call_user_func_array in /apps/topdata/app/webroot/libraries/quix/src/Quix/Element/ElementBag.php:58 #23 ThemeXpert\Quix\Element\ElementBag:load in /apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php:273 #22 ThemeXpert\Quix\Application:ThemeXpert\Quix\{closure} in /apps/topdata/app/webroot/libraries/quix/src/Quix/Cache.php:128 #21 ThemeXpert\Quix\Cache:getCacheById in /apps/topdata/app/webroot/libraries/quix/src/Quix/Cache.php:103 #20 ThemeXpert\Quix\Cache:fetch in /apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php:300 #19 ThemeXpert\Quix\Application:getElements in /apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php:110 #18 ThemeXpert\Quix\Application:ThemeXpert\Quix\{closure} in /apps/topdata/app/webroot/libraries/gantry5/compat/vendor/pimple/pimple/src/Pimple/Container.php:122 #17 Pimple\Container:offsetGet in /apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php:198 #16 ThemeXpert\Quix\Application:getAllNodes in /apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php:152 #15 ThemeXpert\Quix\Application:ThemeXpert\Quix\{closure} in /apps/topdata/app/webroot/libraries/gantry5/compat/vendor/pimple/pimple/src/Pimple/Container.php:122 #14 Pimple\Container:offsetGet in /apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php:248 #13 ThemeXpert\Quix\Application:getWebFontsRenderer in /apps/topdata/app/webroot/libraries/quix/app/drivers/joomla/partials/quix-render-item.php:314 #12 QuixRenderItemHelper:loadAssetsClassicBuilder in /apps/topdata/app/webroot/libraries/quix/app/drivers/joomla/partials/quix-render-item.php:155 #11 quixRenderItem in /apps/topdata/app/webroot/components/com_quix/views/page/view.html.php:71 #10 QuixViewPage:display in /apps/topdata/app/webroot/libraries/src/Cache/Controller/ViewController.php:102 #9 Joomla\CMS\Cache\Controller\ViewController:get in /apps/topdata/app/webroot/libraries/src/MVC/Controller/BaseController.php:655 #8 Joomla\CMS\MVC\Controller\BaseController:display in /apps/topdata/app/webroot/components/com_quix/controller.php:79 #7 QuixController:display in /apps/topdata/app/webroot/libraries/src/MVC/Controller/BaseController.php:702 #6 Joomla\CMS\MVC\Controller\BaseController:execute in /apps/topdata/app/webroot/components/com_quix/quix.php:74 #5 require_once in /apps/topdata/app/webroot/libraries/src/Component/ComponentHelper.php:402 #4 Joomla\CMS\Component\ComponentHelper:executeComponent in /apps/topdata/app/webroot/libraries/src/Component/ComponentHelper.php:377 #3 Joomla\CMS\Component\ComponentHelper:renderComponent in /apps/topdata/app/webroot/libraries/src/Application/SiteApplication.php:194 #2 Joomla\CMS\Application\SiteApplication:dispatch in /apps/topdata/app/webroot/libraries/src/Application/SiteApplication.php:233 #1 Joomla\CMS\Application\SiteApplication:doExecute in /apps/topdata/app/webroot/libraries/src/Application/CMSApplication.php:225 #0 Joomla\CMS\Application\CMSApplication:execute in /apps/topdata/app/webroot/index.php:49
Stack frames (41)
40
Symfony\Component\Yaml\Exception\ParseException
/vendor/symfony/yaml/Parser.php360
39
Symfony\Component\Yaml\Parser doParse
/vendor/symfony/yaml/Parser.php537
38
Symfony\Component\Yaml\Parser parseBlock
/vendor/symfony/yaml/Parser.php208
37
Symfony\Component\Yaml\Parser doParse
/vendor/symfony/yaml/Parser.php537
36
Symfony\Component\Yaml\Parser parseBlock
/vendor/symfony/yaml/Parser.php332
35
Symfony\Component\Yaml\Parser doParse
/vendor/symfony/yaml/Parser.php537
34
Symfony\Component\Yaml\Parser parseBlock
/vendor/symfony/yaml/Parser.php332
33
Symfony\Component\Yaml\Parser doParse
/vendor/symfony/yaml/Parser.php97
32
Symfony\Component\Yaml\Parser parse
/vendor/symfony/yaml/Yaml.php80
31
Symfony\Component\Yaml\Yaml parse
/apps/topdata/app/webroot/libraries/quix/src/Config/Loaders/YamlConfigLoader.php26
30
ThemeXpert\Config\Loaders\YamlConfigLoader load
/apps/topdata/app/webroot/libraries/quix/vendor/symfony/config/Loader/DelegatingLoader.php40
29
Symfony\Component\Config\Loader\DelegatingLoader load
/apps/topdata/app/webroot/libraries/quix/src/Config/Loader.php88
28
ThemeXpert\Config\Loader load
/apps/topdata/app/webroot/libraries/quix/src/Config/ConfigBag.php108
27
ThemeXpert\Config\ConfigBag load
/apps/topdata/app/webroot/libraries/quix/src/Config/ConfigBag.php71
26
ThemeXpert\Config\ConfigBag fill
/apps/topdata/app/webroot/libraries/quix/src/Quix/Element/ElementBag.php75
25
ThemeXpert\Quix\Element\ElementBag add
/apps/topdata/app/webroot/libraries/quix/src/Quix/Element/ElementBag.php58
24
call_user_func_array
/apps/topdata/app/webroot/libraries/quix/src/Quix/Element/ElementBag.php58
23
ThemeXpert\Quix\Element\ElementBag load
/apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php273
22
ThemeXpert\Quix\Application ThemeXpert\Quix\{closure}
/apps/topdata/app/webroot/libraries/quix/src/Quix/Cache.php128
21
ThemeXpert\Quix\Cache getCacheById
/apps/topdata/app/webroot/libraries/quix/src/Quix/Cache.php103
20
ThemeXpert\Quix\Cache fetch
/apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php300
19
ThemeXpert\Quix\Application getElements
/apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php110
18
ThemeXpert\Quix\Application ThemeXpert\Quix\{closure}
/compat/vendor/pimple/pimple/src/Pimple/Container.php122
17
Pimple\Container offsetGet
/apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php198
16
ThemeXpert\Quix\Application getAllNodes
/apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php152
15
ThemeXpert\Quix\Application ThemeXpert\Quix\{closure}
/compat/vendor/pimple/pimple/src/Pimple/Container.php122
14
Pimple\Container offsetGet
/apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php248
13
ThemeXpert\Quix\Application getWebFontsRenderer
/apps/topdata/app/webroot/libraries/quix/app/drivers/joomla/partials/quix-render-item.php314
12
QuixRenderItemHelper loadAssetsClassicBuilder
/apps/topdata/app/webroot/libraries/quix/app/drivers/joomla/partials/quix-render-item.php155
11
quixRenderItem
/apps/topdata/app/webroot/components/com_quix/views/page/view.html.php71
10
QuixViewPage display
/apps/topdata/app/webroot/libraries/src/Cache/Controller/ViewController.php102
9
Joomla\CMS\Cache\Controller\ViewController get
/apps/topdata/app/webroot/libraries/src/MVC/Controller/BaseController.php655
8
Joomla\CMS\MVC\Controller\BaseController display
/apps/topdata/app/webroot/components/com_quix/controller.php79
7
QuixController display
/apps/topdata/app/webroot/libraries/src/MVC/Controller/BaseController.php702
6
Joomla\CMS\MVC\Controller\BaseController execute
/apps/topdata/app/webroot/components/com_quix/quix.php74
5
require_once
/apps/topdata/app/webroot/libraries/src/Component/ComponentHelper.php402
4
Joomla\CMS\Component\ComponentHelper executeComponent
/apps/topdata/app/webroot/libraries/src/Component/ComponentHelper.php377
3
Joomla\CMS\Component\ComponentHelper renderComponent
/apps/topdata/app/webroot/libraries/src/Application/SiteApplication.php194
2
Joomla\CMS\Application\SiteApplication dispatch
/apps/topdata/app/webroot/libraries/src/Application/SiteApplication.php233
1
Joomla\CMS\Application\SiteApplication doExecute
/apps/topdata/app/webroot/libraries/src/Application/CMSApplication.php225
0
Joomla\CMS\Application\CMSApplication execute
/apps/topdata/app/webroot/index.php49
                        } elseif ($allowOverwrite || !isset($data[$key])) {
                            // Spec: Keys MUST be unique; first one wins.
                            // But overwriting is allowed when a merge node is used in current block.
                            if (null !== $subTag) {
                                $data[$key] = new TaggedValue($subTag, $value);
                            } else {
                                $data[$key] = $value;
                            }
                        } else {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $realCurrentLineNbKey + 1, $this->currentLine);
                        }
                    }
                } else {
                    $value = $this->parseValue(rtrim($values['value']), $flags, $context);
                    // Spec: Keys MUST be unique; first one wins.
                    // But overwriting is allowed when a merge node is used in current block.
                    if ($allowOverwrite || !isset($data[$key])) {
                        $data[$key] = $value;
                    } else {
                        throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
                    }
                }
                if ($isRef) {
                    $this->refs[$isRef] = $data[$key];
                    array_pop($this->refsBeingParsed);
                }
            } elseif ('"' === $this->currentLine[0] || "'" === $this->currentLine[0]) {
                if (null !== $context) {
                    throw new ParseException('Unable to parse.', $this->getRealCurrentLineNb() + 1, $this->currentLine, $this->filename);
                }
 
                try {
                    return Inline::parse($this->lexInlineQuotedString(), $flags, $this->refs);
                } catch (ParseException $e) {
                    $e->setParsedLine($this->getRealCurrentLineNb() + 1);
                    $e->setSnippet($this->currentLine);
 
                    throw $e;
                }
            } elseif ('{' === $this->currentLine[0]) {
Arguments
  1. "Duplicate key "type" detected at line 23 (near "type: Repeaat Track")."
    
    private function parseBlock(int $offset, string $yaml, int $flags)
    {
        $skippedLineNumbers = $this->skippedLineNumbers;
 
        foreach ($this->locallySkippedLineNumbers as $lineNumber) {
            if ($lineNumber < $offset) {
                continue;
            }
 
            $skippedLineNumbers[] = $lineNumber;
        }
 
        $parser = new self();
        $parser->offset = $offset;
        $parser->totalNumberOfLines = $this->totalNumberOfLines;
        $parser->skippedLineNumbers = $skippedLineNumbers;
        $parser->refs = &$this->refs;
        $parser->refsBeingParsed = $this->refsBeingParsed;
 
        return $parser->doParse($yaml, $flags);
    }
 
    /**
     * Returns the current line number (takes the offset into account).
     *
     * @internal
     */
    public function getRealCurrentLineNb(): int
    {
        $realCurrentLineNumber = $this->currentLineNb + $this->offset;
 
        foreach ($this->skippedLineNumbers as $skippedLineNumber) {
            if ($skippedLineNumber > $realCurrentLineNumber) {
                break;
            }
 
            ++$realCurrentLineNumber;
        }
 
        return $realCurrentLineNumber;
Arguments
  1. "Repeaat Track"
    
  2. 0
    
                } elseif (null !== $subTag = $this->getLineTag(ltrim($values['value'], ' '), $flags)) {
                    $data[] = new TaggedValue(
                        $subTag,
                        $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(null, true), $flags)
                    );
                } else {
                    if (
                        isset($values['leadspaces'])
                        && (
                            '!' === $values['value'][0]
                            || self::preg_match('#^(?P<key>'.Inline::REGEX_QUOTED_STRING.'|[^ \'"\{\[].*?) *\:(\s+(?P<value>.+?))?\s*$#u', $this->trimTag($values['value']), $matches)
                        )
                    ) {
                        // this is a compact notation element, add to next block and parse
                        $block = $values['value'];
                        if ($this->isNextLineIndented()) {
                            $block .= "\n".$this->getNextEmbedBlock($this->getCurrentLineIndentation() + \strlen($values['leadspaces']) + 1);
                        }
 
                        $data[] = $this->parseBlock($this->getRealCurrentLineNb(), $block, $flags);
                    } else {
                        $data[] = $this->parseValue($values['value'], $flags, $context);
                    }
                }
                if ($isRef) {
                    $this->refs[$isRef] = end($data);
                    array_pop($this->refsBeingParsed);
                }
            } elseif (
                self::preg_match('#^(?P<key>(?:![^\s]++\s++)?(?:'.Inline::REGEX_QUOTED_STRING.'|(?:!?!php/const:)?[^ \'"\[\{!].*?)) *\:(( |\t)++(?P<value>.+))?$#u', rtrim($this->currentLine), $values)
                && (false === strpos($values['key'], ' #') || \in_array($values['key'][0], ['"', "'"]))
            ) {
                if ($context && 'sequence' == $context) {
                    throw new ParseException('You cannot define a mapping item when in a sequence.', $this->currentLineNb + 1, $this->currentLine, $this->filename);
                }
                $context = 'mapping';
 
                try {
                    $key = Inline::parseScalar($values['key']);
                } catch (ParseException $e) {
Arguments
  1. 20
    
  2. """
    name: repeat_track\n
    type: switch\n
    type: Repeaat Track\n
    """
    
  3. 0
    
    private function parseBlock(int $offset, string $yaml, int $flags)
    {
        $skippedLineNumbers = $this->skippedLineNumbers;
 
        foreach ($this->locallySkippedLineNumbers as $lineNumber) {
            if ($lineNumber < $offset) {
                continue;
            }
 
            $skippedLineNumbers[] = $lineNumber;
        }
 
        $parser = new self();
        $parser->offset = $offset;
        $parser->totalNumberOfLines = $this->totalNumberOfLines;
        $parser->skippedLineNumbers = $skippedLineNumbers;
        $parser->refs = &$this->refs;
        $parser->refsBeingParsed = $this->refsBeingParsed;
 
        return $parser->doParse($yaml, $flags);
    }
 
    /**
     * Returns the current line number (takes the offset into account).
     *
     * @internal
     */
    public function getRealCurrentLineNb(): int
    {
        $realCurrentLineNumber = $this->currentLineNb + $this->offset;
 
        foreach ($this->skippedLineNumbers as $skippedLineNumber) {
            if ($skippedLineNumber > $realCurrentLineNumber) {
                break;
            }
 
            ++$realCurrentLineNumber;
        }
 
        return $realCurrentLineNumber;
Arguments
  1. """
    - name: audio_mp3_link\n
      type: file-manager\n
      label: MP3 File\n
    \n
    - name: audio_ogg_link\n
      type: file-manager\n
      label: OGG File\n
    \n
    - name: autoplay_audio\n
      type: switch\n
      label: Autoplay\n
    \n
    - name: repeat_track\n
      type: switch\n
      type: Repeaat Track\n
    """
    
  2. 0
    
                    // Merge keys
                } elseif (!isset($values['value']) || '' === $values['value'] || 0 === strpos($values['value'], '#') || (null !== $subTag = $this->getLineTag($values['value'], $flags)) || '<<' === $key) {
                    // hash
                    // if next line is less indented or equal, then it means that the current value is null
                    if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) {
                        // Spec: Keys MUST be unique; first one wins.
                        // But overwriting is allowed when a merge node is used in current block.
                        if ($allowOverwrite || !isset($data[$key])) {
                            if (null !== $subTag) {
                                $data[$key] = new TaggedValue($subTag, '');
                            } else {
                                $data[$key] = null;
                            }
                        } else {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
                        }
                    } else {
                        // remember the parsed line number here in case we need it to provide some contexts in error messages below
                        $realCurrentLineNbKey = $this->getRealCurrentLineNb();
                        $value = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(), $flags);
                        if ('<<' === $key) {
                            $this->refs[$refMatches['ref']] = $value;
 
                            if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $value instanceof \stdClass) {
                                $value = (array) $value;
                            }
 
                            $data += $value;
                        } elseif ($allowOverwrite || !isset($data[$key])) {
                            // Spec: Keys MUST be unique; first one wins.
                            // But overwriting is allowed when a merge node is used in current block.
                            if (null !== $subTag) {
                                $data[$key] = new TaggedValue($subTag, $value);
                            } else {
                                $data[$key] = $value;
                            }
                        } else {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $realCurrentLineNbKey + 1, $this->currentLine);
                        }
                    }
Arguments
  1. 5
    
  2. """
    - name: audio_mp3_link\n
      type: file-manager\n
      label: MP3 File\n
    \n
    - name: audio_ogg_link\n
      type: file-manager\n
      label: OGG File\n
    \n
    - name: autoplay_audio\n
      type: switch\n
      label: Autoplay\n
    \n
    - name: repeat_track\n
      type: switch\n
      type: Repeaat Track\n
    """
    
  3. 0
    
    private function parseBlock(int $offset, string $yaml, int $flags)
    {
        $skippedLineNumbers = $this->skippedLineNumbers;
 
        foreach ($this->locallySkippedLineNumbers as $lineNumber) {
            if ($lineNumber < $offset) {
                continue;
            }
 
            $skippedLineNumbers[] = $lineNumber;
        }
 
        $parser = new self();
        $parser->offset = $offset;
        $parser->totalNumberOfLines = $this->totalNumberOfLines;
        $parser->skippedLineNumbers = $skippedLineNumbers;
        $parser->refs = &$this->refs;
        $parser->refsBeingParsed = $this->refsBeingParsed;
 
        return $parser->doParse($yaml, $flags);
    }
 
    /**
     * Returns the current line number (takes the offset into account).
     *
     * @internal
     */
    public function getRealCurrentLineNb(): int
    {
        $realCurrentLineNumber = $this->currentLineNb + $this->offset;
 
        foreach ($this->skippedLineNumbers as $skippedLineNumber) {
            if ($skippedLineNumber > $realCurrentLineNumber) {
                break;
            }
 
            ++$realCurrentLineNumber;
        }
 
        return $realCurrentLineNumber;
Arguments
  1. """
    general:\n
      - name: audio_mp3_link\n
        type: file-manager\n
        label: MP3 File\n
    \n
      - name: audio_ogg_link\n
        type: file-manager\n
        label: OGG File\n
    \n
      - name: autoplay_audio\n
        type: switch\n
        label: Autoplay\n
    \n
      - name: repeat_track\n
        type: switch\n
        type: Repeaat Track\n
    \n
    styles:\n
      - name : element\n
        type : divider\n
        label : Element Style - Apply On Element Body\n
    \n
      - name: margin\n
        type: margin\n
    \n
      - name: padding\n
        type: padding
    """
    
  2. 0
    
                    // Merge keys
                } elseif (!isset($values['value']) || '' === $values['value'] || 0 === strpos($values['value'], '#') || (null !== $subTag = $this->getLineTag($values['value'], $flags)) || '<<' === $key) {
                    // hash
                    // if next line is less indented or equal, then it means that the current value is null
                    if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) {
                        // Spec: Keys MUST be unique; first one wins.
                        // But overwriting is allowed when a merge node is used in current block.
                        if ($allowOverwrite || !isset($data[$key])) {
                            if (null !== $subTag) {
                                $data[$key] = new TaggedValue($subTag, '');
                            } else {
                                $data[$key] = null;
                            }
                        } else {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $this->getRealCurrentLineNb() + 1, $this->currentLine);
                        }
                    } else {
                        // remember the parsed line number here in case we need it to provide some contexts in error messages below
                        $realCurrentLineNbKey = $this->getRealCurrentLineNb();
                        $value = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(), $flags);
                        if ('<<' === $key) {
                            $this->refs[$refMatches['ref']] = $value;
 
                            if (Yaml::PARSE_OBJECT_FOR_MAP & $flags && $value instanceof \stdClass) {
                                $value = (array) $value;
                            }
 
                            $data += $value;
                        } elseif ($allowOverwrite || !isset($data[$key])) {
                            // Spec: Keys MUST be unique; first one wins.
                            // But overwriting is allowed when a merge node is used in current block.
                            if (null !== $subTag) {
                                $data[$key] = new TaggedValue($subTag, $value);
                            } else {
                                $data[$key] = $value;
                            }
                        } else {
                            throw new ParseException(sprintf('Duplicate key "%s" detected.', $key), $realCurrentLineNbKey + 1, $this->currentLine);
                        }
                    }
Arguments
  1. 4
    
  2. """
    general:\n
      - name: audio_mp3_link\n
        type: file-manager\n
        label: MP3 File\n
    \n
      - name: audio_ogg_link\n
        type: file-manager\n
        label: OGG File\n
    \n
      - name: autoplay_audio\n
        type: switch\n
        label: Autoplay\n
    \n
      - name: repeat_track\n
        type: switch\n
        type: Repeaat Track\n
    \n
    styles:\n
      - name : element\n
        type : divider\n
        label : Element Style - Apply On Element Body\n
    \n
      - name: margin\n
        type: margin\n
    \n
      - name: padding\n
        type: padding
    """
    
  3. 0
    
     *
     * @throws ParseException If the YAML is not valid
     */
    public function parse(string $value, int $flags = 0)
    {
        if (false === preg_match('//u', $value)) {
            throw new ParseException('The YAML value does not appear to be valid UTF-8.', -1, null, $this->filename);
        }
 
        $this->refs = [];
 
        $mbEncoding = null;
 
        if (2 /* MB_OVERLOAD_STRING */ & (int) \ini_get('mbstring.func_overload')) {
            $mbEncoding = mb_internal_encoding();
            mb_internal_encoding('UTF-8');
        }
 
        try {
            $data = $this->doParse($value, $flags);
        } finally {
            if (null !== $mbEncoding) {
                mb_internal_encoding($mbEncoding);
            }
            $this->refsBeingParsed = [];
            $this->offset = 0;
            $this->lines = [];
            $this->currentLine = '';
            $this->numberOfParsedLines = 0;
            $this->refs = [];
            $this->skippedLineNumbers = [];
            $this->locallySkippedLineNumbers = [];
            $this->totalNumberOfLines = null;
        }
 
        return $data;
    }
 
    private function doParse(string $value, int $flags)
    {
Arguments
  1. "content"
    
  2. 0
    
     * Parses YAML into a PHP value.
     *
     *  Usage:
     *  <code>
     *   $array = Yaml::parse(file_get_contents('config.yml'));
     *   print_r($array);
     *  </code>
     *
     * @param string $input A string containing YAML
     * @param int    $flags A bit field of PARSE_* constants to customize the YAML parser behavior
     *
     * @return mixed
     *
     * @throws ParseException If the YAML is not valid
     */
    public static function parse(string $input, int $flags = 0)
    {
        $yaml = new Parser();
 
        return $yaml->parse($input, $flags);
    }
 
    /**
     * Dumps a PHP value to a YAML string.
     *
     * The dump method, when supplied with an array, will do its best
     * to convert the array into friendly YAML.
     *
     * @param mixed $input  The PHP value
     * @param int   $inline The level where you switch to inline YAML
     * @param int   $indent The amount of spaces to use for indentation of nested nodes
     * @param int   $flags  A bit field of DUMP_* constants to customize the dumped YAML string
     */
    public static function dump($input, int $inline = 2, int $indent = 4, int $flags = 0): string
    {
        $yaml = new Dumper($indent);
 
        return $yaml->dump($input, $inline, 0, $flags);
    }
}
Arguments
  1. """
    name: Audio\n
    slug: audio\n
    groups: content\n
    form:\n
      general:\n
        - name: audio_mp3_link\n
          type: file-manager\n
          label: MP3 File\n
    \n
        - name: audio_ogg_link\n
          type: file-manager\n
          label: OGG File\n
    \n
        - name: autoplay_audio\n
          type: switch\n
          label: Autoplay\n
    \n
        - name: repeat_track\n
          type: switch\n
          type: Repeaat Track\n
    \n
      styles:\n
        - name : element\n
          type : divider\n
          label : Element Style - Apply On Element Body\n
    \n
        - name: margin\n
          type: margin\n
    \n
        - name: padding\n
          type: padding
    """
    
  2. 0
    
 
class YamlConfigLoader extends FileLoader
{
    /**
     * Load all YML configuration files.
     *
     * @param mixed $resource
     * @param null  $type
     *
     * @return array
     */
    public function load($resource, $type = null)
    {
        $files = $this->getLocator()->locate($resource, null, false);
 
        $elements = [];
 
        foreach ($files as $file) {
            # Parse YML file.
            $config = Yaml::parse(file_get_contents($file));
 
            $elements[$file] = $config;
        }
 
        return $elements;
    }
 
    /**
     * Determines the configuration file is YML or not.
     *
     * @param mixed $resource
     * @param null  $type
     *
     * @return bool
     */
    public function supports($resource, $type = null)
    {
        return is_string($resource) && 'yml' === pathinfo(
            $resource,
            PATHINFO_EXTENSION
Arguments
  1. """
    name: Audio\n
    slug: audio\n
    groups: content\n
    form:\n
      general:\n
        - name: audio_mp3_link\n
          type: file-manager\n
          label: MP3 File\n
    \n
        - name: audio_ogg_link\n
          type: file-manager\n
          label: OGG File\n
    \n
        - name: autoplay_audio\n
          type: switch\n
          label: Autoplay\n
    \n
        - name: repeat_track\n
          type: switch\n
          type: Repeaat Track\n
    \n
      styles:\n
        - name : element\n
          type : divider\n
          label : Element Style - Apply On Element Body\n
    \n
        - name: margin\n
          type: margin\n
    \n
        - name: padding\n
          type: padding
    """
    
 *
 * @author Fabien Potencier <fabien@symfony.com>
 */
class DelegatingLoader extends Loader
{
    public function __construct(LoaderResolverInterface $resolver)
    {
        $this->resolver = $resolver;
    }
 
    /**
     * {@inheritdoc}
     */
    public function load($resource, $type = null)
    {
        if (false === $loader = $this->resolver->resolve($resource, $type)) {
            throw new FileLoaderLoadException($resource, null, null, null, $type);
        }
 
        return $loader->load($resource, $type);
    }
 
    /**
     * {@inheritdoc}
     */
    public function supports($resource, $type = null)
    {
        return false !== $this->resolver->resolve($resource, $type);
    }
}
 
Arguments
  1. "config.yml"
    
  2. "yml"
    
     * @throws \Symfony\Component\Config\Exception\FileLoaderLoadException
     */
    public function load()
    {
        $elements = [];
 
        // load configuration that has PHP extension.
        try {
            $configs = $this->loader->load('config.php', 'php');
 
            $elements = array_merge($elements, $configs);
        } catch (ConfigFileIsNotAnArray $e) {
            xception($e->getMessage());
        } catch (InvalidArgumentException $e) {
            //xception( $e->getMessage(), 0);
        }
 
        // load configuration that has YML extension.
        try {
            $configs = $this->loader->load('config.yml', 'yml');
            $elements = array_merge($elements, $configs);
        } catch (ConfigFileIsNotAnArray $e) {
            xception($e->getMessage());
        } catch (InvalidArgumentException $e) {
            //xception( $e->getMessage(), 0);
        }
 
        $elements = $this->transform($elements);
 
        return $elements;
    }
 
    /**
     * Get all directories of the given path.
     *
     * @param $path
     *
     * @return array
     */
    protected function directories($path)
Arguments
  1. "config.yml"
    
  2. "yml"
    
    public function getConfigs()
    {
        $configs = $this->finalTransformer->transform($this->configs);
 
        return $configs;
    }
 
    /**
     * Load elements.
     *
     * @param $path
     * @param $url
     *
     * @return array
     */
    protected function load($path, $url)
    {
        $loader = new Loader($path, $url);
 
        return $loader->load();
    }
 
    /**
     * Validating the configuration file.
     *
     * @param $configs
     *
     * @return mixed
     */
    protected function validate($configs)
    {
        $configs = array_reduce($configs, function ($carry, $config) {
            $this->validator->validate($config, $config['file']);
 
            return $carry;
        }, []);
 
        return $configs;
    }
 
        $this->finalTransformer = $finalTransformer;
    }
 
    /**
     * Fill up the configuration array.
     *
     * @param $path
     * @param $url
     * @param $groups
     *
     * @return $this
     * @throws DirectoryNotFoundException
     */
    public function fill($path, $url, $groups)
    {
        if (!is_dir($path)) {
            throw new DirectoryNotFoundException("directory `{$path}` was not found in filesystem");
        }
 
        $configs = $this->load($path, $url);
 
        $this->validate($configs);
 
        $configs = $this->transform($configs, $path);
 
        $configs = $this->setGroups($configs, $groups);
 
        $this->configs = array_merge($this->configs, $configs);
 
        return $this;
    }
 
    /**
     * Get configuration.
     *
     * @return array
     */
    public function getConfigs()
    {
        $configs = $this->finalTransformer->transform($this->configs);
Arguments
  1. "/apps/topdata/app/webroot/libraries/quix/app/elements"
    
  2. "/libraries/quix/app/elements"
    
    {
        foreach ($this->pathBags as $bag) {
            call_user_func_array([$this, 'add'], $bag);
        }
       
        return $this;
    }
    /**
     * Adding bag to the config bag.
     *
     * @param       $path
     * @param       $url
     * @param array $group
     *
     * @return $this
     */
    public function add($path, $url, $group = [])
    {
        try {
            $this->configBag->fill($path, $url, $group);
        } catch (DirectoryNotFoundException $e) {
            xception($e->getMessage());
        }
        return $this;
    }
    /**
     * Get config bag instance.
     *
     * @return ConfigBag
     */
    public function getConfigBag()
    {
        return $this->configBag;
    }
}
Arguments
  1. "/apps/topdata/app/webroot/libraries/quix/app/elements"
    
  2. "/libraries/quix/app/elements"
    
  3. []
    
     * @param       $path
     * @param       $url
     * @param array $groups
     */
    public function fill($path, $url, $groups = [], $builder = '')
    {
        if(!$builder && $this->builder == 'frontend') return;
 
        $this->pathBags[] = compact("path", "url", "groups");
    }
 
    /**
     * Adding all path bags to the config bag.
     *
     * @return $this
     */
    public function load()
    {
        foreach ($this->pathBags as $bag) {
            call_user_func_array([$this, 'add'], $bag);
        }
       
        return $this;
    }
    /**
     * Adding bag to the config bag.
     *
     * @param       $path
     * @param       $url
     * @param array $group
     *
     * @return $this
     */
    public function add($path, $url, $group = [])
    {
        try {
            $this->configBag->fill($path, $url, $group);
        } catch (DirectoryNotFoundException $e) {
            xception($e->getMessage());
        }
Arguments
  1. "/apps/topdata/app/webroot/libraries/quix/app/elements"
    
  2. "/libraries/quix/app/elements"
    
  3. []
    
     * @param       $path
     * @param       $url
     * @param array $groups
     */
    public function fill($path, $url, $groups = [], $builder = '')
    {
        if(!$builder && $this->builder == 'frontend') return;
 
        $this->pathBags[] = compact("path", "url", "groups");
    }
 
    /**
     * Adding all path bags to the config bag.
     *
     * @return $this
     */
    public function load()
    {
        foreach ($this->pathBags as $bag) {
            call_user_func_array([$this, 'add'], $bag);
        }
       
        return $this;
    }
    /**
     * Adding bag to the config bag.
     *
     * @param       $path
     * @param       $url
     * @param array $group
     *
     * @return $this
     */
    public function add($path, $url, $group = [])
    {
        try {
            $this->configBag->fill($path, $url, $group);
        } catch (DirectoryNotFoundException $e) {
            xception($e->getMessage());
        }
Arguments
  1. array:2 [
      0 => ElementBag {}
      1 => "add"
    ]
    
  2. array:3 [
      "path" => "/apps/topdata/app/webroot/libraries/quix/app/elements"
      "url" => "/libraries/quix/app/elements"
      "groups" => []
    ]
    
     * @return mixed
     */
    public function getNodes()
    {
        return $this->cache->fetch('nodes', function () {
            return $this->getNodesBag()->load()->getConfigBag()->getConfigs();
        });
    }
 
    /**
     * Get elements.
     *
     * [IMPORTANT] This method need to decouple. So that, the application can work with other platform.
     *
     * @return mixed
     */
    public function getElements()
    {
        return $this->cache->fetch('elements', function () {
            $elements = $this->getElementsBag()->load()->getConfigBag()->getConfigs();
 
            $elementsInfo = qxGetElementsInfo();
 
            $elementsInfo = array_reduce($elementsInfo, function ($carry, $element) {
                $carry[$element->alias] = (array)$element; // must be send as alias
 
                return $carry;
            }, []);
 
            $elements = array_map(function ($element) use ($elementsInfo) {
                if (array_key_exists($element['slug'], $elementsInfo)) {
                    $checked = $elementsInfo[$element['slug']]['status'];
                } else {
                    if (in_array($element['slug'], $this->disabledElements)) {
                        $checked = false;
                    } else {
                        $checked = true;
                    }
                }
 
     *
     * @param $id
     * @param $callback
     *
     * @return mixed
     */
    protected function getCacheById($id, $callback)
    {
        $id = $id . $this->builder;
 
        if (!$this->shouldCache) {
            return $callback();
        } else {
            $cache = $this->cache->get($id, 'lib_quix');
 
            if($cache){
                return $cache;
            }else{
 
                $data = $callback();
                // $this->cache->store($data, $id, 'quix'); // old way
                $this->cache->store($data, $id, $this->cachePath); // new path with v2 support
 
                return $data;
            }
            
            // if ($this->cache->contains($id)) {
            //     return $this->cache->fetch($id);
            // } else {
            //     $data = $callback();
            //     $this->cache->save($id, $data, $this->cacheLifeTime);
 
            //     return $data;
            // }
        }
    }
}
 
    }
 
    /**
     * Get cache details by ID.
     *
     * @param $id
     *
     * @return mixed
     */
    public function fetch($id)
    {
        $id = $id . $this->builder;
        $args = func_get_args();
 
        if (count($args) === 1) {
            // return $this->cache->fetch($id);
            return $this->cache->get($id, 'lib_quix');
        } else {
            $callback = $args[1];
            return $this->getCacheById($id, $callback);
        }
    }
 
    /**
     * Get Cache by id.
     *
     * @param $id
     * @param $callback
     *
     * @return mixed
     */
    protected function getCacheById($id, $callback)
    {
        $id = $id . $this->builder;
 
        if (!$this->shouldCache) {
            return $callback();
        } else {
            $cache = $this->cache->get($id, 'lib_quix');
 
Arguments
  1. "elementsclassicclassic"
    
  2. Closure {
      class: "ThemeXpert\Quix\Application"
      this: Application { …}
      file: "/apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php"
      line: "272 to 300"
    }
    
            }, []);
 
            $elements = array_map(function ($element) use ($elementsInfo) {
                if (array_key_exists($element['slug'], $elementsInfo)) {
                    $checked = $elementsInfo[$element['slug']]['status'];
                } else {
                    if (in_array($element['slug'], $this->disabledElements)) {
                        $checked = false;
                    } else {
                        $checked = true;
                    }
                }
 
                $element['enabled'] = $checked;
 
                return $element;
            }, $elements);
 
            return $elements;
        });
    }
 
    /**
     * Get elements json.
     *
     * [IMPORTANT] This method need to decouple. So that, the application can work with other platform.
     *
     * @return mixed
     */
    public function getElementsJson()
    {
        return $this->cache->fetch('json_elements', function () {
            return json_encode($this->getElements());
        });
    }
 
    /**
     * loading shape divider svg
     *
     * @return mixed
Arguments
  1. "elementsclassic"
    
  2. Closure {
      class: "ThemeXpert\Quix\Application"
      this: Application { …}
      file: "/apps/topdata/app/webroot/libraries/quix/src/Quix/Application.php"
      line: "272 to 300"
    }
    
 
            return new ElementBag($validator, $transformer, $container['finalConfigTransformer'], $builder);
        };
 
        // Bind nodes with the container
        $this->container['nodes'] = function ($container) use ($builder) {
            $validator = new NodeValidator();
            $transformer = new NodeTransformer(new FormEngine(new ControlsTransformer($builder)), $builder);
 
            return new NodeBag($validator, $transformer, $container['finalConfigTransformer'], $builder);
        };
 
        // Bind presets with the container
        $this->container['presets'] = function ($container) {
            return new Library();
        };
 
        // Bind allNodes with the container
        $this->container['allNodes'] = function ($container) {
            $elements = $this->getElements();
            $nodes = $this->getNodes();
            return array_merge($elements, $nodes);
        };
 
        // Bind mobile detect with the container
        $this->container['mobile_detect'] = function ($container) {
            return new Mobile_Detect();
        };
 
        // Bind view with the container
        $this->container['view'] = function ($container) use ($builder) {
            // if( checkQuixIsVersion2() && ($builder == "frontend") ) {
            if ($builder == 'frontend') {
                return new View(new TwigEngine, $builder);
            } else {
                return new View(new PhpEngine, $builder);
            }
        };
 
        // Bind view renderer with the container
    {
        if (!isset($this->keys[$id])) {
            throw new UnknownIdentifierException($id);
        }
 
        if (
            isset($this->raw[$id])
            || !\is_object($this->values[$id])
            || isset($this->protected[$this->values[$id]])
            || !\method_exists($this->values[$id], '__invoke')
        ) {
            return $this->values[$id];
        }
 
        if (isset($this->factories[$this->values[$id]])) {
            return $this->values[$id]($this);
        }
 
        $raw = $this->values[$id];
        $val = $this->values[$id] = $raw($this);
        $this->raw[$id] = $raw;
 
        $this->frozen[$id] = true;
 
        return $val;
    }
 
    /**
     * Checks if a parameter or an object is set.
     *
     * @param string $id The unique identifier for the parameter or object
     *
     * @return bool
     */
    #[\ReturnTypeWillChange]
    public function offsetExists($id)
    {
        return isset($this->keys[$id]);
    }
 
Arguments
  1. Container {}
    
    }
 
    /**
     * Get presents bag.
     *
     * @return mixed
     */
    public function getPresetsBag()
    {
        return $this->container['presets'];
    }
 
    /**
     * Get all nodes.
     *
     * @return mixed
     */
    public function getAllNodes()
    {
        return $this->container['allNodes'];
    }
 
    /**
     * Get view renderer.
     *
     * @return mixed
     */
    public function getViewRenderer()
    {
        return $this->container['viewRenderer'];
    }
 
    /**
     * Get template renderer.
     *
     * @return mixed
     */
    public function getTemplateRenderer()
    {
        return $this->container['templateRenderer'];
Arguments
  1. "allNodes"
    
        };
 
        // Bind style renderer with the container
        $this->container['styleRenderer'] = function ($container) {
            return new StyleRenderer($container['view'], $container['mobile_detect'], $container['allNodes']);
        };
 
        // Bind script renderer with the container
        $this->container['scriptRenderer'] = function ($container) {
            return new ScriptRenderer($container['view'], $container['mobile_detect'], $container['allNodes']);
        };
 
        // Bind template renderer with the container
        $this->container['templateRenderer'] = function ($container) {
            return new TemplateRenderer($container['view'], $container['mobile_detect'], $container['allNodes']);
        };
 
        // Bind web font renderer with the container
        $this->container['webFontsRenderer'] = function ($container) {
            return new WebFontsRenderer($this->cache, $this->getAllNodes());
        };
 
        // Bind view engine tracker with the container
        $this->container['engineTracker'] = function () {
            return new EngineTracker;
        };
    }
 
    /**
     * Get element bag.
     *
     * @return mixed
     */
    public function getElementsBag()
    {
        return $this->container['elements'];
    }
 
    /**
     * Get nodes bag.
    {
        if (!isset($this->keys[$id])) {
            throw new UnknownIdentifierException($id);
        }
 
        if (
            isset($this->raw[$id])
            || !\is_object($this->values[$id])
            || isset($this->protected[$this->values[$id]])
            || !\method_exists($this->values[$id], '__invoke')
        ) {
            return $this->values[$id];
        }
 
        if (isset($this->factories[$this->values[$id]])) {
            return $this->values[$id]($this);
        }
 
        $raw = $this->values[$id];
        $val = $this->values[$id] = $raw($this);
        $this->raw[$id] = $raw;
 
        $this->frozen[$id] = true;
 
        return $val;
    }
 
    /**
     * Checks if a parameter or an object is set.
     *
     * @param string $id The unique identifier for the parameter or object
     *
     * @return bool
     */
    #[\ReturnTypeWillChange]
    public function offsetExists($id)
    {
        return isset($this->keys[$id]);
    }
 
Arguments
  1. Container {}
    
    }
 
    /**
    * Get script renderer.
    *
    * @return mixed
    */
    public function getScriptRenderer()
    {
        return $this->container['scriptRenderer'];
    }
 
    /**
     * Get web fonts renderer.
     *
     * @return mixed
     */
    public function getWebFontsRenderer()
    {
        return $this->container['webFontsRenderer'];
    }
 
    /**
     * Get nodes.
     *
     * @return mixed
     */
    public function getNodes()
    {
        return $this->cache->fetch('nodes', function () {
            return $this->getNodesBag()->load()->getConfigBag()->getConfigs();
        });
    }
 
    /**
     * Get elements.
     *
     * [IMPORTANT] This method need to decouple. So that, the application can work with other platform.
     *
     * @return mixed
Arguments
  1. "webFontsRenderer"
    
            }
        }
 
        if (JDEBUG) {
            \JProfiler::getInstance('Application')->mark('After loading core CSS (' . $item->builder . ')');
        }
    }
 
    public static function loadAssetsClassicBuilder($quix, $data, $item, $type, $pageModifiedTimeStamp)
    {
        if (JDEBUG) {
            \JProfiler::getInstance('Application')->mark('Before loading assets (' . $item->builder . ')');
        }
        $document = \JFactory::getDocument();
 
        // classic builder codes start
        loadClassicBuilderPreviewAssets();
        plgSystemQuix::addQuixTrapCSSclassic();
 
        $webFontsRenderer = $quix->getWebFontsRenderer();
        $fonts = $webFontsRenderer->getUsedFonts($data);
        $fontsWeight = $webFontsRenderer->getUsedFontsWeight();
 
        Assets::bulkCssMinifier(
            $pageModifiedTimeStamp,
            $quix->getStyleRenderer()->render($data, null, $item->builder),
            $type,
            $item->id
        );
 
        if (count($fonts)) {
            /**
             * Dynamically generate font families name string.
             */
            $fontFamilies = '';
 
            $count = count($fonts);
 
            foreach ($fonts as $font) {
                $weights = isset($fontsWeight[$font])
            if (strlen($jsCotent) > 2) {
                Assets::bulkJsMinifier($pageModifiedTimeStamp . '-fileJS' . $type . $item->id, $jsCotent, $type, $item->id);
            }
        } else {
            $scriptRendared = $quix->getScriptRenderer()->render($data, null, $item->builder);
            $scriptRendared = QuixRenderItemHelper::minimizeJavascriptSimple($scriptRendared);
 
            // var_dump($scriptRendared);die;
            if (strlen($scriptRendared) > 8) { // as less then 8 not seems possible
                $scripts = "(function(){{$scriptRendared}}());";
                file_put_contents(get_compiled_js_path() . "{$compiledJs}", $scripts);
 
                Assets::bulkJsMinifier($pageModifiedTimeStamp . '-script', $scripts, $type, $item->id);
            }
            // Assets::load($item->builder);
        }
 
        // ======= visual builder codes end
    } else {
        QuixRenderItemHelper::loadAssetsClassicBuilder($quix, $data, $item, $type, $pageModifiedTimeStamp);
    } ?>
        <?php
    if (JDEBUG) {
        \JProfiler::getInstance('Application')->mark('Before making view (' . $item->builder . ')');
    } ?>
 
        <?php echo $quix->getViewRenderer()->render($data, null, $item->builder); ?>
 
        <?php
    if (JDEBUG) {
        \JProfiler::getInstance('Application')->mark('After making view (' . $item->builder . ')');
    } ?>
    </div>
</div>
<?php
 
    if ($item->builder == 'frontend' && !empty($code)) {
        Assets::bulkJsMinifier($pageModifiedTimeStamp . '-loadGlobalStyles' . $type . $item->id, ";(function(){ if(typeof loadGlobalStyles == 'function') loadGlobalStyles($code); })();", $type, $item->id);
        // $document->addScriptDeclaration(";(function(){ if(typeof loadGlobalStyles == 'function') loadGlobalStyles($code); })();");
    }
Arguments
  1. Application {}
    
  2. array:5 [
      0 => array:4 [
        "visibility" => array:4 [
          "lg" => true
          "md" => true
          "sm" => true
          "xs" => true
        ]
        "form" => array:2 [
          "general" => array:8 [
            "container" => 0
            "bg_image" => ""
            "image_repeat" => "no-repeat"
            "image_position" => "initial"
            "image_size" => "initial"
            "bg_color" => ""
            "bg_parallax" => false
            "padding" => array:4 [
              "top" => ""
              "left" => ""
              "bottom" => ""
              "right" => ""
            ]
          ]
          "advanced" => array:3 [
            "label" => "Section"
            "id" => "qx-node-421"
            "class" => ""
          ]
        ]
        "slug" => "section"
        "children" => array:3 [
          0 => array:4 [
            "visibility" => array:4 [
              "lg" => true
              "md" => true
              "sm" => true
              "xs" => true
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => false
                "bg_image" => ""
                "equal_column" => false
                "image_size" => "initial"
                "bg_color" => "#F2F2F2"
                "image_position" => "initial"
                "margin" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-752"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:1 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-203"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "center"
                        "content" => "<h1>Topdata à votre service <br />pour vos campagnes et vos retours de campagne</h1>"
                        "animation" => "fadeIn"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => ""
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-914"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 1
                  "md" => 1
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
          1 => array:4 [
            "visibility" => array:4 [
              "lg" => true
              "md" => true
              "sm" => true
              "xs" => false
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => false
                "bg_image" => "images/topdata/Topservices-Logo-200.png"
                "equal_column" => false
                "image_size" => "initial"
                "bg_color" => "#F2F2F2"
                "image_position" => "center"
                "margin" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-545"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:2 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-166"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:11 [
                        "alignment" => "center"
                        "animation" => "fadeInLeft"
                        "placement" => "beforeTitle"
                        "image_alt_text" => ""
                        "animation_delay" => 0.1
                        "title" => "Un service de fulfillment pour le traitement de vos dons "
                        "content" => "<p>Gagnez du temps et concentrez vous sur votre mission en nous confiant la gestion de vos remontées de campagnes. Suivez l'activité en temps réel sur Topdon comme si les opérations étaient traitées dans vos locaux.</p>"
                        "icon" => "fa fa-file-text-o"
                        "link" => array:2 [
                          "url" => null
                          "target" => null
                        ]
                        "image" => "images/topdata/1.png"
                        "icon_enabled" => true
                      ]
                      "styles" => array:22 [
                        "header_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_image" => ""
                        "header_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_radius" => "13"
                        "image_size" => "initial"
                        "bg_hover_color" => ""
                        "body_color" => ""
                        "media_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_color" => ""
                        "icon_font_size" => "65"
                        "border" => false
                        "body_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_hover_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => "20%"
                          "bottom" => ""
                          "right" => "20%"
                        ]
                        "border_color" => "#5FBD13"
                        "padding" => array:4 [
                          "top" => "15px"
                          "left" => "15px"
                          "bottom" => ""
                          "right" => "15px"
                        ]
                        "header_color" => ""
                        "border_width" => 2
                        "icon_color" => "#5FBD13"
                        "border_style" => "solid"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Blurb"
                        "id" => "qx-node-167"
                        "class" => ""
                      ]
                    ]
                    "slug" => "blurb"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 0.5
                  "md" => 0.5
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
              1 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-998"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:11 [
                        "alignment" => "center"
                        "animation" => "fadeInRight"
                        "placement" => "beforeTitle"
                        "image_alt_text" => ""
                        "animation_delay" => 0.1
                        "title" => "Une équipe de professionnels du fundraising pour vos extractions"
                        "content" => "<p>Concentrez vous sur votre segmentation et vos messages et confiez nous l'exécution de vos campagnes de fidélisation de prospection ou  d'échange.</p>"
                        "icon" => "fa fa-database"
                        "link" => array:2 [
                          "url" => null
                          "target" => null
                        ]
                        "image" => "images/topdata/1.png"
                        "icon_enabled" => true
                      ]
                      "styles" => array:22 [
                        "header_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_image" => ""
                        "header_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_radius" => "13"
                        "image_size" => "initial"
                        "bg_hover_color" => ""
                        "body_color" => ""
                        "media_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_color" => ""
                        "icon_font_size" => "65"
                        "border" => false
                        "body_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_hover_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => "15%"
                          "bottom" => ""
                          "right" => "15%"
                        ]
                        "border_color" => "#5FBD13"
                        "padding" => array:4 [
                          "top" => "15px"
                          "left" => "15px"
                          "bottom" => ""
                          "right" => "15px"
                        ]
                        "header_color" => ""
                        "border_width" => 2
                        "icon_color" => "#5FBD13"
                        "border_style" => "solid"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Blurb"
                        "id" => "qx-node-499"
                        "class" => ""
                      ]
                    ]
                    "slug" => "blurb"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 0.5
                  "md" => 0.5
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
          2 => array:4 [
            "visibility" => array:4 [
              "lg" => false
              "md" => false
              "sm" => false
              "xs" => true
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => false
                "bg_image" => ""
                "equal_column" => false
                "image_size" => "initial"
                "bg_color" => "#F2F2F2"
                "image_position" => "center"
                "margin" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-9710"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:2 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-9711"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:11 [
                        "alignment" => "center"
                        "animation" => "fadeInLeft"
                        "placement" => "beforeTitle"
                        "image_alt_text" => ""
                        "animation_delay" => 0.1
                        "title" => "Un service de fullfilment pour le traitement de vos dons "
                        "content" => "<p>Gagnez du temps et concentrez vous sur votre mission en nous confiant la gestion de vos remontées de campagnes. Suivez l'activité en temps réel sur Topdon comme si les opérations étaient traitées dans vos locaux.</p>"
                        "icon" => "fa fa-file-text-o"
                        "link" => array:2 [
                          "url" => null
                          "target" => null
                        ]
                        "image" => "images/topdata/1.png"
                        "icon_enabled" => true
                      ]
                      "styles" => array:22 [
                        "header_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_image" => ""
                        "header_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_radius" => "13"
                        "image_size" => "initial"
                        "bg_hover_color" => ""
                        "body_color" => ""
                        "media_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_color" => ""
                        "icon_font_size" => "65"
                        "border" => false
                        "body_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_hover_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => "20%"
                          "bottom" => ""
                          "right" => "20%"
                        ]
                        "border_color" => "#5FBD13"
                        "padding" => array:4 [
                          "top" => "15px"
                          "left" => "15px"
                          "bottom" => ""
                          "right" => "15px"
                        ]
                        "header_color" => ""
                        "border_width" => 2
                        "icon_color" => "#5FBD13"
                        "border_style" => "solid"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Blurb"
                        "id" => "qx-node-1012"
                        "class" => ""
                      ]
                    ]
                    "slug" => "blurb"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 0.5
                  "md" => 0.5
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
              1 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-2813"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:11 [
                        "alignment" => "center"
                        "animation" => "fadeInRight"
                        "placement" => "beforeTitle"
                        "image_alt_text" => ""
                        "animation_delay" => 0.1
                        "title" => "Une équipe de professionnels du fundraising pour vos extractions"
                        "content" => "<p>Concentrez vous sur votre segmentation et vos messages et confiez nous l'exécution de vos campagnes de fidélisation de prospection ou  d'échange.</p>"
                        "icon" => "fa fa-database"
                        "link" => array:2 [
                          "url" => null
                          "target" => null
                        ]
                        "image" => "images/topdata/1.png"
                        "icon_enabled" => true
                      ]
                      "styles" => array:22 [
                        "header_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_image" => ""
                        "header_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_radius" => "13"
                        "image_size" => "initial"
                        "bg_hover_color" => ""
                        "body_color" => ""
                        "media_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_color" => ""
                        "icon_font_size" => "65"
                        "border" => false
                        "body_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_hover_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => "15%"
                          "bottom" => ""
                          "right" => "15%"
                        ]
                        "border_color" => "#5FBD13"
                        "padding" => array:4 [
                          "top" => "15px"
                          "left" => "15px"
                          "bottom" => ""
                          "right" => "15px"
                        ]
                        "header_color" => ""
                        "border_width" => 2
                        "icon_color" => "#5FBD13"
                        "border_style" => "solid"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Blurb"
                        "id" => "qx-node-1014"
                        "class" => ""
                      ]
                    ]
                    "slug" => "blurb"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 0.5
                  "md" => 0.5
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
        ]
      ]
      1 => array:4 [
        "visibility" => array:4 [
          "lg" => true
          "md" => true
          "sm" => true
          "xs" => true
        ]
        "form" => array:2 [
          "general" => array:8 [
            "container" => 0
            "bg_image" => ""
            "image_repeat" => "no-repeat"
            "image_position" => "initial"
            "image_size" => "initial"
            "bg_color" => ""
            "bg_parallax" => false
            "padding" => array:4 [
              "top" => ""
              "left" => ""
              "bottom" => ""
              "right" => ""
            ]
          ]
          "advanced" => array:3 [
            "label" => "Section"
            "id" => "qx-node-5815"
            "class" => ""
          ]
        ]
        "slug" => "section"
        "children" => array:1 [
          0 => array:4 [
            "visibility" => array:4 [
              "lg" => true
              "md" => true
              "sm" => true
              "xs" => true
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => true
                "bg_image" => ""
                "equal_column" => false
                "image_size" => "initial"
                "bg_color" => ""
                "image_position" => "initial"
                "margin" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-7916"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:1 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => true
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-2717"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:2 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "center"
                        "content" => "<h1>Un plateau d’opérateurs<br />pour le traitement de vos opérations courantes.</h1>"
                        "animation" => "fadeIn"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => "25px"
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => ""
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-8418"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                  1 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "justify"
                        "content" => "<p>Topdata vous offre les services d’un plateau de gestion qui s’en occupera à votre place,<br />de façon permanente ou épisodiquement, pour absorber vos pics de remontées<br />de campagne et encaisser rapidement les dons.<br /><br /></p>"
                        "animation" => "fadeIn"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => ""
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-3519"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 1
                  "md" => 1
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
        ]
      ]
      2 => array:4 [
        "visibility" => array:4 [
          "lg" => true
          "md" => true
          "sm" => true
          "xs" => true
        ]
        "form" => array:2 [
          "general" => array:8 [
            "container" => 0
            "bg_image" => ""
            "image_repeat" => "no-repeat"
            "image_position" => "initial"
            "image_size" => "initial"
            "bg_color" => ""
            "bg_parallax" => false
            "padding" => array:4 [
              "top" => ""
              "left" => ""
              "bottom" => ""
              "right" => ""
            ]
          ]
          "advanced" => array:3 [
            "label" => "Section"
            "id" => "qx-node-6320"
            "class" => ""
          ]
        ]
        "slug" => "section"
        "children" => array:2 [
          0 => array:4 [
            "visibility" => array:4 [
              "lg" => true
              "md" => true
              "sm" => true
              "xs" => true
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => false
                "bg_image" => ""
                "equal_column" => false
                "image_size" => "initial"
                "bg_color" => ""
                "image_position" => "initial"
                "margin" => array:4 [
                  "top" => "20px"
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-3421"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:1 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-2822"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:8 [
                        "image" => "images/topdata/Topservices---Le-plateau-de-gestion-des-dons.jpg"
                        "alt_text" => ""
                        "title_text" => ""
                        "responsive" => false
                        "alignment" => "center"
                        "link" => array:2 [
                          "url" => null
                          "target" => null
                        ]
                        "image_width" => ""
                        "image_height" => ""
                      ]
                      "styles" => array:9 [
                        "animation" => "fadeIn"
                        "border_radius" => 3
                        "open_lightbox" => false
                        "border" => false
                        "border_hover_color" => ""
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "border_color" => ""
                        "border_width" => 2
                        "border_style" => "solid"
                      ]
                      "advanced" => array:3 [
                        "label" => "Image"
                        "id" => "qx-node-8423"
                        "class" => ""
                      ]
                    ]
                    "slug" => "image"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 1
                  "md" => 1
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
          1 => array:4 [
            "visibility" => array:4 [
              "lg" => true
              "md" => true
              "sm" => true
              "xs" => true
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => true
                "bg_image" => ""
                "equal_column" => true
                "image_size" => "initial"
                "bg_color" => "#959595"
                "image_position" => "initial"
                "margin" => array:4 [
                  "top" => "25px"
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-3524"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:3 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-8925"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "left"
                        "content" => """
                          <h2>La gestion de vos courriers</h2>\n
                          <ul>\n
                          <li>Réception de votre courrier</li>\n
                          <li>Ouverture et dépouillement</li>\n
                          <li>Encodage préparatoire à la saisie</li>\n
                          <li>Envoi de lettres-type</li>\n
                          <li>Archivage</li>\n
                          </ul>
                          """
                        "animation" => "fadeInLeft"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => "rgba(255, 255, 255, 1)"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-2926"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 0.33333333333333
                  "md" => 0.33333333333333
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
              1 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-5727"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "left"
                        "content" => """
                          <h2>Le traitement de vos dons et encaissements</h2>\n
                          <ul>\n
                          <li>Saisie ou scannage des dons, abonnements, commandes. Préparation des remises en banque, dépôt.</li>\n
                          <li>Saisie instantanées des dons par CB.</li>\n
                          <li>Saisie des prélèvements et préparation des échéanciers de prélèvements automatiques et transmission à votre banque.</li>\n
                          </ul>
                          """
                        "animation" => "fadeInLeft"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => "rgba(255, 255, 255, 1)"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-5528"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 0.33333333333333
                  "md" => 0.33333333333333
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
              2 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-2929"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "left"
                        "content" => """
                          <h2>Le traitement des reçus fiscaux</h2>\n
                          <ul>\n
                          <li>Composition des matrices spécifiques aux campagnes et aux types de donateurs selon vos instructions</li>\n
                          <li>Edition et expédition de vos reçus fiscaux, quels qu’en soient les volumes et la périodicité.</li>\n
                          </ul>
                          """
                        "animation" => "fadeInLeft"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => "rgba(255, 255, 255, 1)"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-4830"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 0.33333333333333
                  "md" => 0.33333333333333
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
        ]
      ]
      3 => array:4 [
        "visibility" => array:4 [
          "lg" => true
          "md" => true
          "sm" => true
          "xs" => true
        ]
        "form" => array:2 [
          "general" => array:8 [
            "container" => 0
            "bg_image" => ""
            "image_repeat" => "no-repeat"
            "image_position" => "initial"
            "image_size" => "initial"
            "bg_color" => ""
            "bg_parallax" => false
            "padding" => array:4 [
              "top" => ""
              "left" => ""
              "bottom" => ""
              "right" => ""
            ]
          ]
          "advanced" => array:3 [
            "label" => "Section"
            "id" => "qx-node-4131"
            "class" => ""
          ]
        ]
        "slug" => "section"
        "children" => array:3 [
          0 => array:4 [
            "visibility" => array:4 [
              "lg" => true
              "md" => true
              "sm" => true
              "xs" => true
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => true
                "bg_image" => ""
                "equal_column" => false
                "image_size" => "initial"
                "bg_color" => ""
                "image_position" => "initial"
                "margin" => array:4 [
                  "top" => "25px"
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-8032"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:1 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => true
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-2933"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:2 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "center"
                        "content" => "<h1>Une équipe de professionnels du fundraising <br />pour vos extractions</h1>"
                        "animation" => "fadeIn"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => ""
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-8034"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                  1 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "justify"
                        "content" => "<p>Notre équipe, experte en collecte de fonds et forte d’une expérience de plus de 20 ans, <br />vous offrira un véritable conseil et accompagnement marketing. <br />Elle peut vous conseiller sur votre segmentation ou réaliser pour vous vos extractions.</p>"
                        "animation" => "fadeIn"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => ""
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-4335"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 1
                  "md" => 1
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
          1 => array:4 [
            "visibility" => array:4 [
              "lg" => true
              "md" => true
              "sm" => true
              "xs" => true
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => true
                "bg_image" => ""
                "equal_column" => false
                "image_size" => "initial"
                "bg_color" => "#959595"
                "image_position" => "initial"
                "margin" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-636"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:2 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-7637"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "left"
                        "content" => """
                          <h2>Campagnes de fidélisation</h2>\n
                          <ul>\n
                          <li>Création des requêtes de sélection</li>\n
                          <li>Définition des segments et des exclusions</li>\n
                          <li>Comptages et vérifications</li>\n
                          <li>Extractions des cibles et transmission aux prestataires de déduplication et de routage</li>\n
                          </ul>
                          """
                        "animation" => "fadeInLeft"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => "rgba(255, 255, 255, 1)"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-338"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 0.5
                  "md" => 0.5
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
              1 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => false
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-1639"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "left"
                        "content" => """
                          <h2>Campagnes de prospection</h2>\n
                          <ul>\n
                          <li>Comptages et extractions pour vos échanges. Les fichiers extraits de votre base sont cryptés pour garantir la sécurité de vos données.</li>\n
                          <li>Saisie de tous les éléments (fichier, sélection, quantité, etc.) nécessaires à la création de vos campagnes de prospection dans Topdon.</li>\n
                          </ul>
                          """
                        "animation" => "fadeInLeft"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => "rgba(255, 255, 255, 1)"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-4340"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 0.5
                  "md" => 0.5
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
          2 => array:4 [
            "visibility" => array:4 [
              "lg" => true
              "md" => true
              "sm" => true
              "xs" => true
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => true
                "bg_image" => ""
                "equal_column" => false
                "image_size" => "initial"
                "bg_color" => ""
                "image_position" => "initial"
                "margin" => array:4 [
                  "top" => "15px"
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-4341"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:1 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => true
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-2542"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:2 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "center"
                        "content" => "<h2>Analyses sur mesure</h2>"
                        "animation" => "fadeInDown"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => ""
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-1743"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                  1 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:3 [
                        "alignment" => "justify"
                        "content" => """
                          <p>Une analyse sur mesure est nécessaire quand vos besoins précis ne sont pas couverts par les fonctions de Topdon. Rien n’est impossible mais tout est une question de présentation.</p>\n
                          <p>Topdata répondra à vos besoins, quels qu’ils soient en matière de production d’information et si la demande est régulière, les tableaux et autres outils nés durant cette analyse viendront intégrer spécifiquement votre version de Topdon.</p>\n
                          <p>La prochaine fois que vous en aurez besoin, ils seront donc à votre disposition.</p>\n
                          <p><em>Quelques exemples d’analyses sur mesure :</em></p>\n
                          <ul>\n
                          <li>Répondre à des comptages particuliers ou ponctuels.</li>\n
                          <li>Vous assister en produisant des tableaux et analyses spécifiques, notamment pour un rapport particulier.</li>\n
                          <li>Définir les classes d’une segmentation RFM.</li>\n
                          <li>Mettre en œuvre des analyses de datamining.</li>\n
                          </ul>
                          """
                        "animation" => "fadeInUp"
                      ]
                      "styles" => array:9 [
                        "bg_image" => ""
                        "image_size" => "initial"
                        "bg_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => "15%"
                          "bottom" => ""
                          "right" => "15%"
                        ]
                        "font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "text_color" => ""
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Text"
                        "id" => "qx-node-4644"
                        "class" => ""
                      ]
                    ]
                    "slug" => "text"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 1
                  "md" => 1
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
        ]
      ]
      4 => array:4 [
        "visibility" => array:4 [
          "lg" => true
          "md" => true
          "sm" => true
          "xs" => true
        ]
        "form" => array:2 [
          "general" => array:8 [
            "container" => false
            "bg_image" => ""
            "image_repeat" => "no-repeat"
            "image_position" => "initial"
            "image_size" => "initial"
            "bg_color" => ""
            "bg_parallax" => false
            "padding" => array:4 [
              "top" => ""
              "left" => ""
              "bottom" => ""
              "right" => ""
            ]
          ]
          "advanced" => array:3 [
            "label" => "Section"
            "id" => "qx-node-4745"
            "class" => ""
          ]
        ]
        "slug" => "section"
        "children" => array:1 [
          0 => array:4 [
            "visibility" => array:4 [
              "lg" => true
              "md" => true
              "sm" => true
              "xs" => true
            ]
            "form" => array:2 [
              "general" => array:10 [
                "container" => false
                "bg_image" => ""
                "equal_column" => false
                "image_size" => "initial"
                "bg_color" => "#F2F2F2"
                "image_position" => "initial"
                "margin" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "padding" => array:4 [
                  "top" => ""
                  "left" => ""
                  "bottom" => ""
                  "right" => ""
                ]
                "bg_parallax" => false
                "image_repeat" => "no-repeat"
              ]
              "advanced" => array:3 [
                "label" => "Row"
                "id" => "qx-node-5646"
                "class" => ""
              ]
            ]
            "slug" => "row"
            "children" => array:1 [
              0 => array:5 [
                "visibility" => array:4 [
                  "lg" => true
                  "md" => true
                  "sm" => true
                  "xs" => true
                ]
                "form" => array:2 [
                  "general" => array:8 [
                    "center_text" => true
                    "bg_image" => ""
                    "image_repeat" => "no-repeat"
                    "image_position" => "initial"
                    "image_size" => "initial"
                    "bg_color" => ""
                    "margin" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                    "padding" => array:4 [
                      "top" => ""
                      "left" => ""
                      "bottom" => ""
                      "right" => ""
                    ]
                  ]
                  "advanced" => array:3 [
                    "label" => "Column"
                    "id" => "qx-node-847"
                    "class" => ""
                  ]
                ]
                "slug" => "column"
                "children" => array:1 [
                  0 => array:3 [
                    "visibility" => array:4 [
                      "lg" => true
                      "md" => true
                      "sm" => true
                      "xs" => true
                    ]
                    "form" => array:3 [
                      "general" => array:11 [
                        "alignment" => "center"
                        "animation" => 0
                        "placement" => "beforeTitle"
                        "image_alt_text" => ""
                        "animation_delay" => 0.1
                        "title" => "Facilitez votre quotidien et recentrez vous sur votre cause"
                        "content" => """
                          <h4>Topservices est un concentré de savoir-faire et d'expérience <br />en matière de gestion des dons, des donateurs et d'élaboration des campagnes.</h4>\n
                          <h4>N'hésitez pas à nous contacter :</h4>\n
                          <h4>Par téléphone : <strong>04 67 73 12 85</strong></h4>\n
                          <h4>Par email : <a style="color: #666666;" href="mailto:contact@topdata.fr">contact@topdata.fr</a></h4>\n
                          <h4>Ou envoyez nous un message <strong><a style="color: #666666;" title="Envoyez un message à Topdata" href="../#to_contact">via notre formulaire</a></strong></h4>\n
                          <p> </p>\n
                          <p> </p>
                          """
                        "icon" => "fa fa-user"
                        "link" => array:2 [
                          "url" => "https://topdon.fr/#contact"
                          "target" => false
                        ]
                        "image" => ""
                        "icon_enabled" => true
                      ]
                      "styles" => array:22 [
                        "header_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_image" => ""
                        "header_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_radius" => 3
                        "image_size" => "initial"
                        "bg_hover_color" => ""
                        "body_color" => "rgba(74, 74, 74, 1)"
                        "media_margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "bg_color" => ""
                        "icon_font_size" => 80
                        "border" => false
                        "body_font" => array:8 [
                          "size" => ""
                          "bold" => ""
                          "underline" => ""
                          "italic" => ""
                          "family" => ""
                          "case" => ""
                          "spacing" => ""
                          "height" => ""
                        ]
                        "border_hover_color" => ""
                        "image_position" => "initial"
                        "margin" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "border_color" => ""
                        "padding" => array:4 [
                          "top" => ""
                          "left" => ""
                          "bottom" => ""
                          "right" => ""
                        ]
                        "header_color" => ""
                        "border_width" => 2
                        "icon_color" => ""
                        "border_style" => "solid"
                        "image_repeat" => "no-repeat"
                      ]
                      "advanced" => array:3 [
                        "label" => "Blurb"
                        "id" => "qx-node-5248"
                        "class" => ""
                      ]
                    ]
                    "slug" => "blurb"
                  ]
                ]
                "size" => array:4 [
                  "lg" => 1
                  "md" => 1
                  "sm" => 0.5
                  "xs" => 1
                ]
              ]
            ]
          ]
        ]
      ]
    ]
    
  3. CMSObject {}
    
  4. "page"
    
  5. "0000-00-00 00:00:00"
    
            return false;
        }
 
        if (isset($this->item->id) && $this->item->id) {
            // hardcode type for builder use, so we know its page
            $this->item->type = 'page';
 
            // Check the view access to the article (the model has already computed the values).
            if ($this->item->params->get('access-view') == false && ($this->item->params->get('show_noauth', '0') == '0')) {
                $app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error');
                $app->setHeader('status', 403, true);
 
                return;
            }
 
            // count hits
            $this->get('Hit');
 
            // render quix content and trigger content plugin
            $this->item->text = quixRenderItem($this->item);
 
        // render quix content and trigger content plugin
            /*
            $itemCacheName = $this->item->builder . '-page-' . $this->item->id;
            $cache = JFactory::getCache('com_quix', '');
            $cache->setCaching( true );
            $pageContent = $cache->get($itemCacheName);
            if (!empty($pageContent)) {
                $the_page_output = $pageContent;
            }else{
                $the_page_output = quixRenderItem($this->item);
                $cache->store($the_page_output, $itemCacheName);
            }
 
            $this->item->text = $the_page_output;
            */
        } else {
            JError::raiseError(404, JText::_('JERROR_PAGE_NOT_FOUND'));
            return false;
        }
Arguments
  1. CMSObject {}
    
        }
 
        // No hit so we have to execute the view
        if (!method_exists($view, $method))
        {
            return false;
        }
 
        if ($locktest->locked === false && $locktest->locklooped === true)
        {
            // We can not store data because another process is in the middle of saving
            $view->$method();
 
            return false;
        }
 
        // Capture and echo output
        ob_start();
        ob_implicit_flush(false);
        $view->$method();
        $data = ob_get_clean();
        echo $data;
 
        /*
         * For a view we have a special case.  We need to cache not only the output from the view, but the state
         * of the document head after the view has been rendered.  This will allow us to properly cache any attached
         * scripts or stylesheets or links or any other modifications that the view has made to the document object
         */
        if ($wrkarounds)
        {
            $data = Cache::setWorkarounds($data);
        }
 
        // Store the cache data
        $this->cache->store(serialize($data), $id);
 
        if ($locktest->locked === true)
        {
            $this->cache->unlock($id);
        }
                }
                else
                {
                    $registeredurlparams = new \stdClass;
                }
 
                foreach ($urlparams as $key => $value)
                {
                    // Add your safe URL parameters with variable type as value {@see \JFilterInput::clean()}.
                    $registeredurlparams->$key = $value;
                }
 
                $app->registeredurlparams = $registeredurlparams;
            }
 
            try
            {
                /** @var \JCacheControllerView $cache */
                $cache = \JFactory::getCache($option, 'view');
                $cache->get($view, 'display');
            }
            catch (\JCacheException $exception)
            {
                $view->display();
            }
        }
        else
        {
            $view->display();
        }
 
        return $this;
    }
 
    /**
     * Execute a task by triggering a method in the derived class.
     *
     * @param   string  $task  The task to perform. If no matching task is found, the '__default' task is executed, if defined.
     *
     * @return  mixed   The value returned by the called method.
Arguments
  1. QuixViewPage {}
    
  2. "display"
    
            // Somehow the person just went to the form - we don't allow that.
            // return JError::raiseError(403, JText::sprintf('COM_QUIX_UNHELD_ID', $id));
            // directly redirect to task edit
            $url = 'index.php?option=com_quix&task=' . $this->input->get('type', 'page') . '.edit&id=' . $id;
            $app->redirect($url);
        }
        
        // JCH fix for amp format
        QuixFrontendHelper::fixJCH();
 
        if ($format == 'amp') {
            $free = QuixHelper::isFreeQuix();
            if ($free) {
                $uri = JUri::getInstance();
                $uri->delVar('format');
                $app->redirect($uri->toString());
            }
        }
 
        return parent::display($cachable, $urlparams);
    }
 
    /**
     * Method to perform ajax call
     *
     * @param   element  element name must be passed
     * @param   format   format can be html, raw, json; default: json
     * @param   method   default method: get; will call getAjax(). postfix is: Ajax.
     *
     * @return  core output, like: json or other format
     * url example: index.php?option=com_quix&task=ajax&element=simple-contact&format=json&method=get
     * @since    1.3
     */
    public function ajax()
    {
        // Reference global application object
        $app = JFactory::getApplication();
 
        // JInput object
        $input = $app->input;
Arguments
  1. true
    
  2. false
    
 
        $task = strtolower((string) $task);
 
        if (isset($this->taskMap[$task]))
        {
            $doTask = $this->taskMap[$task];
        }
        elseif (isset($this->taskMap['__default']))
        {
            $doTask = $this->taskMap['__default'];
        }
        else
        {
            throw new \Exception(\JText::sprintf('JLIB_APPLICATION_ERROR_TASK_NOT_FOUND', $task), 404);
        }
 
        // Record the actual task being fired
        $this->doTask = $doTask;
 
        return $this->$doTask();
    }
 
    /**
     * Method to get a model object, loading it if required.
     *
     * @param   string  $name    The model name. Optional.
     * @param   string  $prefix  The class prefix. Optional.
     * @param   array   $config  Configuration array for model. Optional.
     *
     * @return  \JModelLegacy|boolean  Model object on success; otherwise false on failure.
     *
     * @since   3.0
     */
    public function getModel($name = '', $prefix = '', $config = array())
    {
        if (empty($name))
        {
            $name = $this->getName();
        }
 
        {
            $app->setHeader('status', 403, true);
            $app->redirect(JRoute::_('index.php'), 403);
        }
    }
}
 
// Include dependencies
jimport( 'quix.app.bootstrap' );
 
global  $QuixBuilderType ;
$QuixBuilderType = "frontend";
jimport( 'quix.app.init' );
 
JLoader::register( 'QuixFrontendHelper', JPATH_COMPONENT . '/helpers/quix.php' );
JLoader::register( 'QuixHelper', JPATH_COMPONENT_ADMINISTRATOR . '/helpers/quix.php' );
 
// Execute the task.
$controller = JControllerLegacy::getInstance( 'Quix' );
$controller->execute( $app->input->get( 'task' ) );
$controller->redirect();
Arguments
  1. ""
    
        {
            \JProfiler::getInstance('Application')->mark('afterRenderComponent ' . $option);
        }
 
        return $contents;
    }
 
    /**
     * Execute the component.
     *
     * @param   string  $path  The component path.
     *
     * @return  string  The component output
     *
     * @since   1.7
     */
    protected static function executeComponent($path)
    {
        ob_start();
        require_once $path;
 
        return ob_get_clean();
    }
 
    /**
     * Load the installed components into the components property.
     *
     * @param   string  $option  The element value for the extension
     *
     * @return  boolean  True on success
     *
     * @since   1.5
     * @deprecated  4.0  Use JComponentHelper::load() instead
     */
    protected static function _load($option)
    {
        return static::load($option);
    }
 
    /**
Arguments
  1. "/apps/topdata/app/webroot/components/com_quix/quix.php"
    
             */
            define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR . '/components/' . $option);
        }
 
        $path = JPATH_COMPONENT . '/' . $file . '.php';
 
        // If component is disabled throw error
        if (!static::isEnabled($option) || !file_exists($path))
        {
            throw new MissingComponentException(\JText::_('JLIB_APPLICATION_ERROR_COMPONENT_NOT_FOUND'), 404);
        }
 
        // Load common and local language files.
        $lang->load($option, JPATH_BASE, null, false, true) || $lang->load($option, JPATH_COMPONENT, null, false, true);
 
        // Handle template preview outlining.
        $contents = null;
 
        // Execute the component.
        $contents = static::executeComponent($path);
 
        // Revert the scope
        $app->scope = $scope;
 
        if (JDEBUG)
        {
            \JProfiler::getInstance('Application')->mark('afterRenderComponent ' . $option);
        }
 
        return $contents;
    }
 
    /**
     * Execute the component.
     *
     * @param   string  $path  The component path.
     *
     * @return  string  The component output
     *
     * @since   1.7
Arguments
  1. "/apps/topdata/app/webroot/components/com_quix/quix.php"
    
 
            case 'feed':
                $document->setBase(htmlspecialchars(\JUri::current()));
                break;
        }
 
        $document->setTitle($params->get('page_title'));
        $document->setDescription($params->get('page_description'));
 
        // Add version number or not based on global configuration
        if ($this->get('MetaVersion', 0))
        {
            $document->setGenerator('Joomla! - Open Source Content Management - Version ' . JVERSION);
        }
        else
        {
            $document->setGenerator('Joomla! - Open Source Content Management');
        }
 
        $contents = ComponentHelper::renderComponent($component);
        $document->setBuffer($contents, 'component');
 
        // Trigger the onAfterDispatch event.
        \JPluginHelper::importPlugin('system');
        $this->triggerEvent('onAfterDispatch');
    }
 
    /**
     * Method to run the Web application routines.
     *
     * @return  void
     *
     * @since   3.2
     */
    protected function doExecute()
    {
        // Initialise the application
        $this->initialiseApp();
 
        // Mark afterInitialise in the profiler.
Arguments
  1. "com_quix"
    
        // Mark afterInitialise in the profiler.
        JDEBUG ? $this->profiler->mark('afterInitialise') : null;
 
        // Route the application
        $this->route();
 
        // Mark afterRoute in the profiler.
        JDEBUG ? $this->profiler->mark('afterRoute') : null;
 
        /*
         * Check if the user is required to reset their password
         *
         * Before $this->route(); "option" and "view" can't be safely read using:
         * $this->input->getCmd('option'); or $this->input->getCmd('view');
         * ex: due of the sef urls
         */
        $this->checkUserRequireReset('com_users', 'profile', 'edit', 'com_users/profile.save,com_users/profile.apply,com_users/user.logout');
 
        // Dispatch the application
        $this->dispatch();
 
        // Mark afterDispatch in the profiler.
        JDEBUG ? $this->profiler->mark('afterDispatch') : null;
    }
 
    /**
     * Return the current state of the detect browser option.
     *
     * @return    boolean
     *
     * @since    3.2
     */
    public function getDetectBrowser()
    {
        return $this->_detect_browser;
    }
 
    /**
     * Return the current state of the language filter.
     *
            array('option', 'view', 'format', 'lang', 'Itemid', 'template', 'templateStyle', 'task'),
            function($systemVariable) use ($input) {
                return $input->exists($systemVariable) && is_array($input->getRaw($systemVariable));
            }
        );
 
        // Unset invalid system variables
        foreach ($invalidInputVariables as $systemVariable)
        {
            $input->set($systemVariable, null);
        }
 
        // Abort when there are invalid variables
        if ($invalidInputVariables)
        {
            throw new \RuntimeException('Invalid input, aborting application.');
        }
 
        // Perform application routines.
        $this->doExecute();
 
        // If we have an application document object, render it.
        if ($this->document instanceof \JDocument)
        {
            // Render the application output.
            $this->render();
        }
 
        // If gzip compression is enabled in configuration and the server is compliant, compress the output.
        if ($this->get('gzip') && !ini_get('zlib.output_compression') && ini_get('output_handler') !== 'ob_gzhandler')
        {
            $this->compress();
 
            // Trigger the onAfterCompress event.
            $this->triggerEvent('onAfterCompress');
        }
 
        // Send the application response.
        $this->respond();
 
{
    include_once __DIR__ . '/defines.php';
}
 
if (!defined('_JDEFINES'))
{
    define('JPATH_BASE', __DIR__);
    require_once JPATH_BASE . '/includes/defines.php';
}
 
require_once JPATH_BASE . '/includes/framework.php';
 
// Set profiler start time and memory usage and mark afterLoad in the profiler.
JDEBUG ? JProfiler::getInstance('Application')->setStart($startTime, $startMem)->mark('afterLoad') : null;
 
// Instantiate the application.
$app = JFactory::getApplication('site');
 
// Execute the application.
$app->execute();
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
UNIVAPP
"topdata"
USER
"topdata"
HOME
"/apps/topdata"
HTTP_HOST
"topdata.fr"
HTTP_REFERER
"https://www.topdon.fr/topservices"
HTTP_USER_AGENT
"claudebot"
HTTP_ACCEPT
"*/*"
REDIRECT_STATUS
"200"
SERVER_NAME
"topdata.fr"
SERVER_PORT
"443"
SERVER_ADDR
"5.135.55.84"
REMOTE_USER
""
REMOTE_PORT
"40344"
REMOTE_ADDR
"34.237.245.80"
SERVER_SOFTWARE
"nginx/1.18.0"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/1.1"
DOCUMENT_ROOT
"/apps/topdata/app/webroot"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/topservices"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
SCRIPT_FILENAME
"/apps/topdata/app/webroot/index.php"
PATH_INFO
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1710830996.4619
REQUEST_TIME
1710830996
Key Value
UNIVAPP
"topdata"
USER
"topdata"
HOME
"/apps/topdata"
HTTP_HOST
"topdata.fr"
HTTP_REFERER
"https://www.topdon.fr/topservices"
HTTP_USER_AGENT
"claudebot"
HTTP_ACCEPT
"*/*"
REDIRECT_STATUS
"200"
SERVER_NAME
"topdata.fr"
SERVER_PORT
"443"
SERVER_ADDR
"5.135.55.84"
REMOTE_USER
""
REMOTE_PORT
"40344"
REMOTE_ADDR
"34.237.245.80"
SERVER_SOFTWARE
"nginx/1.18.0"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/1.1"
DOCUMENT_ROOT
"/apps/topdata/app/webroot"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/topservices"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
SCRIPT_FILENAME
"/apps/topdata/app/webroot/index.php"
PATH_INFO
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1710830996.4619
REQUEST_TIME
1710830996
0. Whoops\Handler\PrettyPageHandler