We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 7958
    • 12 Posts
    Привет всем!
    У меня тут небольшая проблемка возникла, как через параметр сниппета в вызове вывести знак вопроса, например есть вызов сниппета:

    [!PrQuest? &question=`Возможно ли?`!]

    но при выводе параметра на страницу, выводится только "Возможно ли" без знака вопроса, он куда то пропадает, в каком бы месте он ни стоял.
    В коде сниппета параметр определяется вот так:

    $question = (isset($question)) ? $question : ’NoQuestion’;

    Помогите разобраться, в чём косяк? как вывести знак вопроса?
      • 31268
      • 111 Posts
      ?
        Discere ne cesses
        • 7958
        • 12 Posts
        не катит, всё что после знака амперсанда тож не выводится как и сам амперсанд
          • 22619
          • 101 Posts
          а если так попробоавть "\?"
            • 1611
            • 591 Posts
            Тут дело такое.
            Задавать его нужно как entity, т.е. ?
            Но. В текущей версии modx это не будет работать, т.к. по неизвестной мне причине, отцы основатели, решили, что это идеологически неверно, позволять писать & в параметре.

            Но. Когда-то они это все-таки реализовали в ядре, но потом закомментировали так нужную нам строчку. Она до сих пор в исходниках и ее можно открыть и испльзовать. Глюков пока не замечено.

            Искать ее здесь:
            \manager\includes\document.parser.class.inc.php Строка 843
            841                    if (strpos($tempSnippetParams, "&") > 0)
            842                        $tempSnippetParams= str_replace("&", "&", $tempSnippetParams);
            843                    $tempSnippetParams = html_entity_decode($tempSnippetParams, ENT_NOQUOTES, $this->config['etomite_charset']); //FS#334 and FS#456
            844                    $tempSnippetParams= split($splitter, $tempSnippetParams);
            845                    $snippetParamCount= count($tempSnippetParams);
            

            У вас перед строкой 843 будет комментарий — уберите его.

            P.S. Все это преверенно на 0.9.6.3
              • 7958
              • 12 Posts
              ага, всё работает, спасибо большое)))
              только вот есть маза, что ТinyMCE вот эти знаки ? переводит в обычные вопросы, и приходится каждый раз его отключать...
                • 1611
                • 591 Posts
                ТinyMCE наоборот должен спец-символы в entity перводить. Хотя может к знаку вопроса это и не относится. (Хотя & точно обрабатывает)