Author: Alexey Bobkov, Samuel Georges
Inheritance: use trait October\Rain\Support\Traits\Singleton
Esempio n. 1
0
 protected function getData()
 {
     $manager = SnippetManager::instance();
     $snippets = $manager->listSnippets($this->theme);
     $searchTerm = Str::lower($this->getSearchTerm());
     if (strlen($searchTerm)) {
         $words = explode(' ', $searchTerm);
         $filteredSnippets = [];
         foreach ($snippets as $snippet) {
             if ($this->textMatchesSearch($words, $snippet->getName() . ' ' . $snippet->code . ' ' . $snippet->getDescription())) {
                 $filteredSnippets[] = $snippet;
             }
         }
         $snippets = $filteredSnippets;
     }
     usort($snippets, function ($a, $b) {
         return strcmp($a->getName(), $b->getName());
     });
     return $snippets;
 }
Esempio n. 2
0
 public function onGetSnippetNames()
 {
     $codes = array_unique(Request::input('codes'));
     $result = [];
     foreach ($codes as $snippetCode) {
         $parts = explode('|', $snippetCode);
         $componentClass = null;
         if (count($parts) > 1) {
             $snippetCode = $parts[0];
             $componentClass = $parts[1];
         }
         $snippet = SnippetManager::instance()->findByCodeOrComponent($this->theme, $snippetCode, $componentClass);
         if (!$snippet) {
             $result[$snippetCode] = sprintf(trans('rainlab.pages::lang.snippet.not_found'), $snippetCode);
         } else {
             $result[$snippetCode] = $snippet->getName();
         }
     }
     return ['names' => $result];
 }
Esempio n. 3
0
 public static function clearCache()
 {
     $theme = Theme::getEditTheme();
     $router = new Router($theme);
     $router->clearCache();
     StaticPage::clearMenuCache($theme);
     SnippetManager::clearCache($theme);
 }
Esempio n. 4
0
 /**
  * Apples default property values and fixes property names.
  *
  * As snippet properties are defined with data attributes, they are lower case, whereas
  * real property names are case sensitive. This method finds original property names defined
  * in snippet classes or partials and replaces property names defined in the static page markup.
  */
 protected static function preprocessPropertyValues($theme, $snippetCode, $componentClass, $properties)
 {
     $snippet = SnippetManager::instance()->findByCodeOrComponent($theme, $snippetCode, $componentClass, true);
     if (!$snippet) {
         throw new ApplicationException(Lang::get('rainlab.pages::lang.snippet.not_found', ['code' => $snippetCode]));
     }
     $properties = array_change_key_case($properties);
     $snippetProperties = $snippet->getProperties();
     foreach ($snippetProperties as $propertyInfo) {
         $propertyCode = $propertyInfo['property'];
         $lowercaseCode = strtolower($propertyCode);
         if (!array_key_exists($lowercaseCode, $properties)) {
             if (array_key_exists('default', $propertyInfo)) {
                 $properties[$propertyCode] = $propertyInfo['default'];
             }
         } else {
             $markupPropertyInfo = $properties[$lowercaseCode];
             unset($properties[$lowercaseCode]);
             $properties[$propertyCode] = $markupPropertyInfo;
         }
     }
     return $properties;
 }