We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 13227
    • 10 Posts
    Äîáðîãî âðåìåíè ñóòîê, óâàæàåìûå!

    Ñèòóàöèÿ:
    - Íàïèñàë îáåðòêó ê Ditto, â êîòîðîé ïðèñâàèâàþ çíà÷åíèÿ ïàðàìåòðàì.
    - Çàòåì äåëàþ: $result=$modx->runSnippet("Ditto", $params); return($result);
    - ðàáîòàåò çàìå÷àòåëüíî smiley.

    À âîïðîñ, â ñëåäóþùåì: êàê ñäåëàòü âûçîâ ñíèïïåòà èç îáåðòêè íåêýøèðóåìûì?

    Â äîêóìåíòàöèè, íàïðèìåð: http://modxcms.com/snippets.html íå íàøåë smiley sad

    Ïîìîãèòå, ïîæàëóéñòà. Ñïàñèáî.

    PS Ïðîáîâàë äåëàòü [!îáåðòêà!] íî ýòî, âðîäå, íå òî...
      • 4023
      • 17 Posts
      хз как правильно но мона сделать :
      или просто очистка кеша после вызова или

      в document.parser.class.inc.php
            function runSnippet($snippetName, $params= array ()) {
              if (isset ($this->snippetCache[$snippetName])) {
                  $snippet= $this->snippetCache[$snippetName];
                  $properties= $this->snippetCache[$snippetName . "Props"];
              } else { // not in cache so let's check the db
                  $sql= "SELECT * FROM " . $this->getFullTableName("site_snippets") . " WHERE " . $this->getFullTableName("site_snippets") . ".name='" . mysql_escape_string($snippetName) . "';";
                  $result= $this->dbQuery($sql);
                  if ($this->recordCount($result) == 1) {
                      $row= $this->fetchRow($result);
                      $snippet= $this->snippetCache[$row['name']]= $row['snippet'];
                      $properties= $this->snippetCache[$row['name'] . "Props"]= $row['properties'];
                  } else {
                      $snippet= $this->snippetCache[$snippetName]= "return false;";
                      $properties= '';
                  }
              }
              // load default params/properties
              $parameters= $this->parseProperties($properties);
              $parameters= array_merge($parameters, $params);
              // run snippet
              return $this->evalSnippet($snippet, $parameters);
          }
      добавить новую

          function runSnippet2($snippetName, $params= array ()) {
      
                  $sql= "SELECT * FROM " . $this->getFullTableName("site_snippets") . " WHERE " . $this->getFullTableName("site_snippets") . ".name='" . mysql_escape_string($snippetName) . "';";
                  $result= $this->dbQuery($sql);
                  if ($this->recordCount($result) == 1) {
                      $row= $this->fetchRow($result);
                      $snippet= $this->snippetCache[$row['name']]= $row['snippet'];
                      $properties= $this->snippetCache[$row['name'] . "Props"]= $row['properties'];
                  } else {
                      $snippet= $this->snippetCache[$snippetName]= "return false;";
                      $properties= '';
                  }
              
              // load default params/properties
              $parameters= $this->parseProperties($properties);
              $parameters= array_merge($parameters, $params);
              // run snippet
              return $this->evalSnippet($snippet, $parameters);
          }
        • 13227
        • 10 Posts
        Î! Ñïàñèáî! Ñåé÷àñ ïîïðîáóþ.
        È íàçâàòü runSnippetUncached smiley , äëèííîâàòî òîëüêî.

        Âîò ïðîñèòñÿ åùå îäèí ïàðàìåòð â runSnippet...

        À, ìîæåò è íåïðàâèëüíî, ÿ ñèì îçàäà÷èëñÿ, êîãäà Ditto ýëåìåíòû ïàãèíàöèè ïîêàçûâàåò íà ñòðàíèöå ïðîñòûì òåêñòîì. Ïðè÷åì, åñëè âûçûâàòü íàïðÿìóþ, íå èç îáåðòêè, ðàáîòàåò íîðìàëüíî.