public static function loadConfig() { //SQL::exec("INSERT INTO [config]p ([key],[value],[type],[assign]) VALUES ( 'url_blog_category','./%slug/','string',0 )"); if ($result = SQL::query("SELECT [key],[value],[type],[assign] FROM [config]p")) { foreach ($result->fetch() as $item) { switch ($item->type) { case 'string': ESCMS::$cfg[$item->key] = (string) $item->value; break; case 'int': case 'integer': ESCMS::$cfg[$item->key] = (int) $item->value; break; case 'boolean': ESCMS::$cfg[$item->key] = (bool) $item->value; break; default: ESCMS::$cfg[$item->key] = $item->value; break; } if ((bool) $item->assign) { TPL::add($item->key, $item->value); } define('CFG_' . strtoupper($item->key), $item->value); } } else { throw new Exception('The configuration could not be loaded.'); } }
public function getPost($slug) { if (!($result = SQL::query("\r\nSELECT\r\n\t[blog_posts]p.[post_id] AS [post_id],\r\n\t[blog_posts]p.[post_date] AS [post_date],\r\n\t[blog_posts]p.[post_header] AS [post_header],\r\n\t[blog_posts]p.[category_id] AS [category_id],\r\n\t[blog_categories]p.[category_slug] AS [category_slug],\r\n\t[blog_categories]p.[category_header] AS [category_header],\r\n\t[blog_posts_contents]p.[post_prologue] AS [post_prologue],\r\n\t[blog_posts_contents]p.[post_content] AS [post_content],\r\n\tcount([blog_comments]p.[comment_id]) AS [comments_count]\r\nFROM [blog_posts]p\r\nLEFT JOIN [blog_categories]p\r\n\tON [blog_posts]p.[category_id] == [blog_categories]p.[category_id]\r\nLEFT JOIN [blog_posts_contents]p\r\n\tON [blog_posts]p.[post_id] == [blog_posts_contents]p.[post_id]\r\nLEFT JOIN [blog_comments]p\r\n\tON [blog_posts]p.[post_id] == [blog_comments]p.[post_id]\r\nWHERE ([blog_posts]p.[post_slug] == '" . SQL::escape($slug) . "')\r\nGROUP BY [blog_posts]p.[post_id]\r\nORDER BY [blog_posts]p.[post_date]"))) { throw new Exception('The post could not be selected.'); } else { if ($result->numRows() == 0) { Debug::header(404); } $post = $result->fetchOne(); TPL::add('BLOG_CATEGORY_LINK', str_replace(array('%slug', '%id'), array($post->category_slug, $post->category_id), CFG_URL_BLOG_CATEGORY)); TPL::add('BLOG_POST_ID', $post->post_id); TPL::add('BLOG_POST_HEADER', $post->post_header); TPL::add('BLOG_POST_SLUG', $slug); TPL::add('BLOG_POST_DATE', date(ESCMS_DATE_FORMAT, (int) $post->post_date)); TPL::add('BLOG_POST_PROLOGUE', $post->post_prologue); TPL::add('BLOG_POST_CONTENT', $post->post_content); TPL::add('BLOG_CATEGORY_HEADER', $post->category_header); TPL::add('BLOG_CATEGORY_SLUG', $post->category_slug); TPL::add('BLOG_POST_COMMENTS_COUNT', $post->comments_count); } }
{ } $blog = new ESCMSModule_Sys_blog(); $blog->getCategories(); if (!isset($_GET['c']) || $_GET['c'] == 'blog' && !isset($_GET['slug'], $_GET['section']) && isset($_GET['archive'])) { if (!isset($_GET['archive']) || !isset($_GET['selectmode'])) { TPL::addTpl('index'); } else { TPL::addTpl('archive'); } $blog->getLatestPosts(); } if (isset($_GET['c']) && $_GET['c'] == 'blog') { if (isset($_GET['section'])) { switch ($_GET['section']) { case 'category': if (isset($_GET['slug'])) { TPL::add('BLOG_CATEGORY_HEADER', $blog->getCategoryInfo($_GET['slug'])->category_header); TPL::addTpl('blog_category'); $blog->getCategoryPosts($_GET['slug']); } break; case 'post': if (isset($_GET['slug'])) { TPL::addTpl('blog_post'); $blog->getPost($_GET['slug']); } break; } } }
public static function header($code, $message = '') { switch ($code) { case 400: header('HTTP/1.1 400 Bad Request'); break; case 404: header('HTTP/1.1 404 Not Found'); break; case 503: default: header('HTTP/1.1 503 Service Unavailable'); break; } try { TPL::trash(); TPL::$dirpath = ESCMS_PATH_TPL . '.debug/'; TPL::add(array('EXCEPTION_MESSAGE' => $message)); if (!TPL::addTpl('header' . $code)) { switch ($code) { case 400: die('<h1>HTTP/1.1 400 Bad Request</h1><p>' . $message . '</p>'); break; case 404: die('<h1>HTTP/1.1 404 Not Found</h1>'); break; case 503: default: throw new Exception($message); } } else { TPL::pack(); die; } } catch (Exception $exc) { die('<h1>503 Service Unavailable</h1><p>' . $exc->getMessage() . '</p>'); } }
case 'timestamp': $cfg['etc'][$item->module][$item->name] = strtotime($item->value); if ((int) $item->assign) { TPL::add(strtoupper($item->name), formatDateTime($cfg['etc'][$item->module][$item->name])); } break; default: $cfg['etc'][$item->module][$item->name] = $item->value; if ((int) $item->assign) { TPL::add(strtoupper($item->name), $cfg['etc'][$item->module][$item->name]); } break; } } } // Configure the template system if (defined('TEMPLATE_DIRPATH')) { TPL::$dirpath = TEMPLATE_DIRPATH; } else { TPL::$dirpath = './styles/' . $cfg['etc']['core']['site_style'] . '/'; } // Init the language system if (defined('IN_SYS') && IN_SYS) { Langs::$dirpath = './langs/' . $cfg['etc']['core']['site_lang'] . '/'; } else { Langs::$dirpath = './langs/' . $cfg['etc']['core']['acp_lang'] . '/'; } define('SITE_ROOT_PATH', $cfg['etc']['core']['SITE_ROOT_PATH']); TPL::add('HTTP_REFERER', $_SERVER['HTTP_REFERER']); // Init the modules Modules::load();
public function _module_config_load() { $cfg = core::s('cfg'); TPL::add('SITE_TITLE', '{L_SITE_CONFIG} — {SITE_HEADER} / {L_ACP}'); $sql = new SQLObject(); if ($sql->query("\r\nSELECT module,name,value,type\r\nFROM " . $sql->table('config') . "\r\nWHERE (module = 'core')")) { foreach ($sql->fetch() as $item) { switch ($item->type) { case 'integer': $value = (int) $item->value; break; case 'string': $value = (string) $item->value; break; case 'float': $value = (double) $item->value; break; case 'timestamp': $value = strtotime((string) $item->value); break; case 'boolean': if ((int) $item->value == 0) { $value = false; } else { $value = true; } TPL::cond('MODULE_CONFIG:' . strtoupper($item->name), $value); break; default: $value = $item->value; break; } TPL::add('MODULE_CONFIG:' . strtoupper($item->name), $value); } } $dir = dir('./langs/'); while ($file = $dir->read()) { if ($file == '.' || $file == '..') { continue; } $langs[] = $file; } sort($langs); $f_langs = array(); foreach ($langs as $lang) { $f_langs[] = array('LANG_CODENAME' => $lang, 'conds' => array('LANG_ACTIVE' => $lang == $cfg['etc']['core']['site_lang'] ? true : false)); } TPL::assignAsLoop('MODULE_CONFIG:SITE_LANG', $f_langs); $f_langs = array(); foreach ($langs as $lang) { $f_langs[] = array('LANG_CODENAME' => $lang, 'conds' => array('LANG_ACTIVE' => $lang == $cfg['etc']['core']['acp_lang'] ? true : false)); } TPL::assignAsLoop('MODULE_CONFIG:ACP_LANG', $f_langs); $dir = dir('./styles/'); while ($file = $dir->read()) { if ($file == '.' || $file == '..' || $file == '.acp') { continue; } $styles[] = $file; } sort($styles); $f_styles = array(); foreach ($styles as $style) { $info = array(); $path = './styles/' . $style . '/style.cfg'; if (file_exists($path)) { $data = simplexml_load_file($path); foreach ($data->children() as $item) { switch ($item['name']) { case 'name': $info['name'] = $item['value']; break; case 'author': $info['author'] = $item['value']; break; case 'author_link': $info['author_link'] = $item['value']; break; case 'preview': $preview = true; $info['preview'] = './styles/' . $style . '/' . $item['value']; break; } } } if (!isset($info['name'])) { $info['name'] = $style; } if (!isset($info['author'])) { $info['author'] = '{L_UNKNOWN}'; } if (!isset($info['preview'])) { $preview = false; $info['preview'] = './styles/.acp/media/images/style_preview.png'; } if ($style == $cfg['etc']['core']['site_style']) { TPL::add('MODULE_CONFIG:SITE_STYLE_NAME', strlen($info['name']) > 24 ? mb_substr($info['name'], 0, 24, 'UTF-8') . '...' : $info['name']); } $f_styles[] = array('STYLE_CODENAME' => $style, 'STYLE_NAME' => $info['name'], 'STYLE_AUTHOR' => $info['author'], 'STYLE_AUTHOR_LINK' => $info['author_link'], 'STYLE_PREVIEW' => $info['preview'], 'conds' => array('STYLE_ACTIVE' => $style == $cfg['etc']['core']['site_style'] ? true : false, 'STYLE_AUTHOR_LINK' => isset($info['author_link']) ? true : false, 'STYLE_PREVIEW' => $preview)); } TPL::assignAsLoop('MODULE_CONFIG:SITE_STYLE', $f_styles); }
require_once './app/layers/dal.layer.php'; require_once './app/layers/tpl.layer.php'; require_once './app/layers/core.layer.php'; Lib::$dirpath = ESCMS_PATH_LIB; SQL::$dirpath = ESCMS_PATH_DAL_DRIVERS; TPL::$dirpath = ESCMS_PATH_TPL . 'looksmog/'; # replace! -> db TPL::add('SITE_ROOT_PATH', SITE_ROOT_PATH); switch (ESCMS_DB_TYPE) { case 'sqlite2': $params = array('file' => ESCMS_DB_FILE); break; } SQL::openConnection(array('type' => ESCMS_DB_TYPE, 'prefix' => ESCMS_DB_PREFIX, 'params' => $params)); if (defined('REQUEST_RAW') && !defined('REDIRECTED')) { $e = explode(SITE_ROOT_PATH, 'http://' . $_SERVER['HTTP_HOST'] . REQUEST_RAW, 2); TPL::add('PAGE_URI', SITE_ROOT_PATH . $e[1]); define('REQUEST', '/' . end($e)); require_once './app/resolve.php'; die; } else { $e = explode(SITE_ROOT_PATH, 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); define('PAGE_URI', SITE_ROOT_PATH . $e[1]); } //SQL::exec("CREATE TABLE [config]p ( [key] VARCHAR(32) NOT NULL UNIQUE, [value] VARCHAR(256) NULL, [type] VARCHAR(8) NOT NULL, [assign] BOOLEAN )"); //Debug::dump(SQL::exec("INSERT INTO [config]p ([key],[value],[type],[assign]) VALUES ('URL_BLOG_POST','./clanky/%slug/','string',0)")); ESCMS::loadConfig(); ESCMS::loadModules(); Debug::log(); TPL::pack(); print round(microtime(true) - $time, 3) * 1000 . ' ms';
<?php TPL::add(array('L_ACP' => 'Administrace', 'L_ACP_HOME' => 'Úvod administrace', 'L_INDEX' => 'Úvod webu', 'L_BACKLINK' => 'Zpět na předchozí stránku', 'L_OVERVIEW' => 'Přehled', 'L_STATS' => 'Statistiky', 'L_MODULES' => 'Moduly', 'L_MODULES_CORE' => 'Jádro', 'L_MODULES_CORE_NO_MODULES' => 'V jádře nejsou žádné moduly, což je blbost, takže se obraťte na podporu systému.', 'L_MODULES_CORE_FOOT' => 'Toto je pouze přehled modulů v jádře. Nelze je deaktivovat ani odinstalovat.', 'L_MODULES_ADDITIONAL' => 'Přídavné moduly', 'L_MODULES_ADDITIONAL_NO_MODULES' => 'Žádné přídavné moduly nejsou nainstalovány.', 'L_MODULES_AVAILABLE' => 'Dostupné moduly', 'L_MODULES_AVAILABLE_NO_MODULES' => 'Žádné moduly nejsou dostupné.', 'L_MODULE_INSTALL' => 'Nainstalovat', 'L_MODULE_UNINSTALL' => 'Odinstaloval', 'L_MODULE_ACTIVATE' => 'Aktivovat', 'L_MODULE_DEACTIVATE' => 'Deaktivovat', 'L_MODULES_GET_MORE' => 'Získat další moduly', 'L_SITE_CONFIG' => 'Konfigurace webu', 'L_CLOSE' => 'Zavřít', 'L_EDIT' => 'Upravit', 'L_DELETE' => 'Smazat', 'L_PREV' => '« Před.', 'L_NEXT' => 'Další »', 'L_YES' => 'Ano', 'L_NO' => 'Ne', 'L_AUTHOR' => 'Autor', 'L_CONFIG_SUBMIT' => 'Upravit konfiguraci', 'L_CONFIG_OK' => 'Konfigurace byla úspěšně upravena.', 'L_CONFIG_ERROR' => 'Konfigurace nebyla upravena.', 'L_ACRONYM_MINUTES' => 'min', 'L_SYSTEM_INFO' => 'Systémové informace', 'L_INFO_CORE_VERSION' => 'Verze jádra', 'L_INFO_CORE_LAST_UPDATE' => 'Poslední aktualizace jádra', 'L_MODULE_CORE' => 'Jádro systému', 'L_MODULE_CORE_DESCRIPTION' => 'Správa jádra systému.', 'L_CONFIG_BASE_OPTIONS' => 'Možnosti systému', 'L_CONFIG_BASE_DATE_TIME' => 'Datum a čas', 'L_CONFIG_BASE_FTP_DATA' => 'FTP údaje', 'L_CONFIG_BASE_FTP_DATA_INFO' => 'Posílány aktualizačnímu serveru při nahrávání aktualizací.', 'L_CONFIG_BASE_SITE_HEADER' => 'Nadpis webu', 'L_CONFIG_BASE_SITE_SLOGAN' => 'Slogan webu', 'L_CONFIG_BASE_SITE_ROOT_PATH' => 'Kořenový adresář', 'L_CONFIG_BASE_SITE_ROOT_PATH_INFO' => 'Pozor, mívá vliv na celou prezentaci! Uveďte i zakončovací lomítko!', 'L_CONFIG_BASE_SHOW_ERRORS' => 'Zobrazovat chyby', 'L_CONFIG_BASE_SITE_LANG' => 'Jazyk prezentace', 'L_CONFIG_BASE_ACP_LANG' => 'Jazyk administrace', 'L_CONFIG_BASE_SITE_STYLE' => 'Styl prezentace', 'L_CONFIG_BASE_DATETIME_FORMAT' => 'Formát data a času', 'L_CONFIG_BASE_DATE_FORMAT' => 'Formát data', 'L_CONFIG_BASE_ONLINE_OFFSET' => 'Offset času online', 'L_CONFIG_BASE_ONLINE_OFFSET_INFO' => 'Čas, před jehož uplynutím je uživatel zobrazen jako online (v sekundách).', 'L_CONFIG_BASE_DATETIME_FORMAT_INFO' => 'Hodnota je kompatibilní s PHP funkcí <a href="http://php.net/function.date">date()</a>.', 'L_CONFIG_BASE_FTP_HOST' => 'FTP server', 'L_CONFIG_BASE_FTP_HOST_INFO' => 'Neuvádějte <strong>localhost</strong>, ale veřejnou adresu serveru.', 'L_CONFIG_BASE_FTP_PORT' => 'Port', 'L_CONFIG_BASE_FTP_PORT_INFO' => 'Výchozí hodnotou je <strong>21</strong>.', 'L_CONFIG_BASE_FTP_USERNAME' => 'Uživatelské jméno', 'L_CONFIG_BASE_FTP_PASSWORD' => 'Heslo', 'L_GET_MORE_STYLES' => 'Získat další styly', 'L_PERMISSION.core.modules' => 'Moduly', 'L_PERMISSION.core.modules.show' => 'Zobrazit', 'L_PERMISSION.core.modules.install' => 'Instalovat', 'L_PERMISSION.core.modules.uninstall' => 'Odinstalovávat', 'L_PERMISSION.core.modules.activate' => 'Aktivovat', 'L_PERMISSION.core.config' => 'Konfigurace webu', 'L_PERMISSION.core.config.edit' => 'Upravovat'));
public function groups_getGrouplist() { $sql = new SQLObject(); $p = new Pages(); $p->url = './acp.php?c=users&section=groups&page=%page'; $p->per_page = 25; $p->query = "SELECT group_id,group_name,group_description FROM " . $sql->table('auth_groups') . " ORDER BY group_name ASC"; $f_groups = array(); if ($p->make()) { foreach ($p->fetch() as $group) { $f_groups[] = array('GROUP_ID' => $group->group_id, 'GROUP_NAME' => $group->group_name, 'GROUP_DESCRIPTION' => $group->group_description, 'GROUP_ACTION_EDIT' => './acp.php?c=users&section=groups&mode=edit', 'GROUP_ACTION_DELETE' => './action.php?c=users&section=groups&mode=delete&group_id=' . $group->group_id, 'conds' => array('ANONYMOUS' => (int) $group->group_id == -1 ? true : false)); } } core::s('tpl')->assignLoop('AUTH_GROUPLIST', $f_groups); TPL::add('PAGES_GROUPLIST', $p->browser()); }
<?php TPL::add(array('L_MODULE_AUTH' => 'Autorizace', 'L_MODULE_AUTH_DESCRIPTION' => 'Správa uživatelů a nastavení oprávnění', 'L_LOGIN' => 'Přihlásit se', 'L_LOGOUT' => 'Odhlásit se', 'L_AUTH_ALERT_TOO_LITTLE_DATA' => 'Příliš málo dat!', 'L_AUTH_LOGGED_AS' => 'Jste přihlášen jako {CURRENT_USER.USERNAME}.', 'L_AUTH_ALERT_LOGIN_INACTIVE_USER' => 'Váš účet ještě nebyl aktivován!', 'L_AUTH_ALERT_LOGIN_INVALID_PASSWORD' => 'Špatné heslo. <a href="{HTTP_REFERER}">Zkusit znovu</a>', 'L_AUTH_ALERT_INVALID_USERNAME' => 'Neplatné uživatelské jméno:<ul><li>Rozsah 3-32 znaků</li><li>Může obsahovat pouze a-z, A-Z, 0-9, _, - a mezeru.</li></ul>', 'L_AUTH_ALERT_INVALID_PASSWORD' => 'Neplatné heslo:<ul><li>Rozsah 8-24 znaků</li><li>Může obsahovat a-z, A-Z, 0-9 a následující: !.:@$#%^*&()~"\\\'\\/[]</li></ul>', 'L_AUTH_ALERT_ADD_USER_ERROR' => 'Uživatel nebyl přidán.', 'L_AUTH_ALERT_USER_ADDED' => 'Uživatel byl úspěšně přidán.', 'L_AUTH_ALERT_TOO_LITTLE_DATA' => 'Bylo odesláno příliš málo dat.', 'L_AUTH_ALERT_INVALID_GROUPNAME' => 'Neplatné jméno skupiny:<ul><li>Rozsah 1-128 znaků</li></ul>', 'L_AUTH_ALERT_GROUP_ADDED_PERMISSIONS' => 'Skupina byla úspěšně přidána a byla jí přidělena požadovaná oprávnění.', 'L_AUTH_ALERT_GROUP_ADDED_SOME_PERMISSIONS' => 'Skupina byla úspěšně přidána, ale byla jí přidělena pouze některá požadované oprávnění.', 'L_AUTH_ALERT_GROUP_ADDED_NO_PERMISSIONS' => 'Skupina byla úspěšně přidána, ale nebyla jí přidělena požadovaná oprávnění.', 'L_AUTH_ALERT_GROUP_DELETED' => 'Skupina byla úspěšně smazána.', 'L_AUTH_ALERT_GROUP_ONLY_PERMISSIONS_DELETED' => 'Skupina nebyla smazána, ale byla jí odstraněna veškerá oprávnění.', 'L_AUTH_ALERT_DELETE_GROUP_ERROR' => 'Skupina nebyla odstraněna.', 'L_AUTH_ALERT_USER_DELETED' => 'Uživatel byl úspěšně smazán.', 'L_AUTH_ALERT_DELETE_USER_ERROR' => 'Uživatel nebyl smazán.', 'L_AUTH_ALERT_NO_CHALLENGE' => 'Nemáte platný ticket pro přihlášení.</p><p>Pro obnovení ticketu musíte aktualizovat stránku s přihlašovaním dialogem.</p><p><a href="{HTTP_REFERER}">Zpět na předchozí stránku</a>', 'L_PERMISSION_AUTH_ACP_ENTER' => 'Nemáte oprávnění vstupovat do administračního rozhraní!', 'L_PERMISSION_AUTH_ADD_USER' => 'Namáte oprávnění přidávat uživatele!', 'L_PERMISSION_AUTH_DELETE_USER' => 'Nemáte oprávnění mazat uživatele.', 'L_PERMISSION_AUTH_ADD_GROUP' => 'Namáte oprávnění přidávat skupiny!', 'L_PERMISSION_AUTH_DELETE_GROUP' => 'Nemáte oprávnění mazat skupiny!', 'L_AUTHBOX_TITLE' => 'Autorizace', 'L_USERNAME' => 'Uživatelské jméno', 'L_PASSWORD' => 'Heslo', 'L_AUTH_SAVE' => 'Zapamatovat', 'L_USERS' => 'Uživatelé', 'L_USERS_USERS' => 'Uživatelé', 'L_USERS_GROUPS' => 'Skupiny', 'L_USERS_GROUPS_INFO' => 'Od příslušnosti ve skupinách se odvíjejí uživatelova oprávnění.', 'L_USERS_ADD_USER' => 'Přidat uživatele', 'L_USERS_ADD_USER_SUBMIT' => 'Přidat uživatele', 'L_USERS_ADD_GROUP' => 'Přidat skupinu', 'L_USERS_ADD_GROUP_SUBMIT' => 'Přidat skupinu', 'L_ONLINE_USERS' => 'Uživatelé online', 'L_ONLINE_USERS_NO_USERS' => 'Žádný uživatel není online.', 'L_ONLINE_ADMINS' => 'Administrátoři online', 'L_ONLINE_ADMINS_NO_ADMINS' => 'Žádný administrátor není online.', 'L_USERS_COUNT_USERS' => 'Počet uživatelů', 'L_USERS_COUNT_GROUPS' => 'Počet skupin', 'L_USERNAME_INFO' => 'Rozsah 3-32 znaků; Může obsahovat pouze a-z, A-Z, 0-9, _, - a mezeru.', 'L_USERS_EMAIL' => 'E-mail', 'L_USERS_EMAIL_ERROR' => 'Zadaná hodnota není platná e-mailová adresa.', 'L_USERS_GENDER' => 'Pohlaví', 'L_GENDER_MALE' => 'Muž', 'L_GENDER_FEMALE' => 'Žena', 'L_GENDER_NA' => 'Neuvedeno', 'L_PASSWORD_INFO' => 'Rozsah 8-24 znaků; Může obsahovat a-z, A-Z, 0-9 a následující: !.:@$#%^*&()~"\'/[]\\', 'L_PASSWORD_STRENGTH_INVALID' => 'Neplatné heslo: Rozsah 8-24 znaků; Může obsahovat a-z, A-Z, 0-9 a následující: !.:@$#%^*&()~"\\\'\\/[]', 'L_PASSWORD_STRENGTH_WEAK' => 'Slabé heslo', 'L_PASSWORD_STRENGTH_NORMAL' => 'Normální heslo', 'L_PASSWORD_STRENGTH_STRONG' => 'Silné heslo', 'L_PASSWORD_CONFIRM' => 'Ověření hesla', 'L_PASSWORD_CONFIRM_ERROR' => 'Hesla se neshodují', 'L_USER_GROUPS_INFO' => 'Každý uživatel je automaticky zařazen do skupiny <strong>Uživatelé</strong>.', 'L_USER_GROUPS_MULTIPLE_INFO' => 'V případě příslušnosti do více skupin se vždy načtou veškerá oprávnění všech skupin.', 'L_USER_GROUP_MAIN' => 'Zaškrtávací políčko určuje <strong>příslušnost</strong> do skupin a přepínač <strong>zobrazovanou</strong> skupinu v uživatelově profilu.', 'L_GROUP_NAME' => 'Název skupiny', 'L_GROUP_NAME_INFO' => 'Rozsah 1-128 znaků', 'L_GROUP_DESCRIPTION' => 'Popis skupiny', 'L_GROUP_DESCRIPTION_INFO' => 'Maximálně 256 znaků; Nepovinné', 'L_GROUP_PERMISSIONS' => 'Oprávnění skupiny', 'L_GROUP_PERMISSIONS_INFO' => 'Oprávnění přidělená všem členům skupiny', 'L_PERMISSION.auth.acp' => 'Administrace', 'L_PERMISSION.auth.acp.enter' => 'Povolit vstup', 'L_PERMISSION.auth.user' => 'Uživatelé', 'L_PERMISSION.auth.user.add' => 'Přidávat', 'L_PERMISSION.auth.user.edit' => 'Upravovat', 'L_PERMISSION.auth.user.delete' => 'Mazat', 'L_PERMISSION.auth.user.change_groups' => 'Měnit příslušnost ve skupinách (oprávnění)', 'L_PERMISSION.auth.group' => 'Skupiny', 'L_PERMISSION.auth.group.add' => 'Přidávat', 'L_PERMISSION.auth.group.edit' => 'Upravovat (oprávnění)', 'L_PERMISSION.auth.group.delete' => 'Mazat'));