/**
  * @param string $name
  *
  * @return mixed|string
  */
 public function getSource($name)
 {
     $name = $this->getName($name);
     $content = '';
     if ($pos = strpos($name, '@')) {
         $propertySet = substr($name, $pos + 1);
         $name = substr($name, 0, $pos);
     }
     $c = (is_numeric($name) and $name > 0) ? $name : array('templatename' => $name);
     /** @var modChunk $chunk */
     if ($element = $this->modx->getObject('modTemplate', $c)) {
         $content = $element->getContent();
         if (!empty($propertySet) and $tmp = $element->getPropertySet($propertySet)) {
             $properties = $tmp;
         } else {
             $properties = $element->getProperties();
         }
         if (!empty($content) and !empty($properties)) {
             $content = $this->twiggy->parseChunk('@INLINE ' . $content, $properties);
         }
     }
     return $content;
 }
 /**
  * @param $pm
  *
  * @return bool
  */
 public static function hasPermission($pm)
 {
     return self::$modx->hasPermission($pm);
 }