Функция для получения установленных тем оформления в GetSimple CMS
В системе управления контентом GetSimple CMS нет стандартной функции для получения списка установленных тем оформления. Если возникает потребность в такой функции, напишем её самостоятельно, предварительно разобравшись в том, как GetSimple CMS определяет установленные темы оформления.
Темы оформления GetSimple CMS расположены в поддиректориях директории, заданной в постоянной GSTHEMESPATH
.Каждая тема офомления определяется существованием файл шаблона оформления страниц template.php, а название темы оформления соответствует имени директории. Остальные директории и файлы игнорируются.
На основе описанной логики работы GetSimple CMS можно написать следующий PHP код.
/**
* Возвращает имена установленных тем оформления веб-сайта
*
* @uses GSTHEMESPATH
*
* @return array Массив с именами установленных тем оформления веб-сайта
*/
function get_installed_themes()
{
$themes = array();
foreach (new DirectoryIterator(GSTHEMESPATH) as $fileinfo) {
if ($fileinfo->isDir() && !$fileinfo->isDot()) {
if (file_exists($fileinfo->getPathname() . DIRECTORY_SEPARATOR . 'template.php')) {
$themes[] = $fileinfo->getFilename();
}
}
}
return $themes;
}
Теперь можно вывести список всех установленных тем оформления так.
<?php
echo '<ul>';
foreach (get_installed_themes() as $item) {
echo "<li>$item</li>";
}
echo '</ul>';
?>
Важно! В файле /admin/inc/basic.php определена функция get_themes()
, но не смотря на имя, эта функция возвращает список файлов заданной темы оформления, а не список установленных тем оформления.