[KÓDOVÁNÍ] Lokální proměnné pro použití v šabloně

Odpovědět
Uživatelský avatar
Otakar Pěnkava
Administrátor
Administrátor
Příspěvky: 581
Registrován: sob 25. říj 2008 16:17:14
Kontaktovat uživatele:

[KÓDOVÁNÍ] Lokální proměnné pro použití v šabloně

Příspěvek od Otakar Pěnkava » stř 21. úno 2018 10:43:24

Ahoj uživatelé,
v minulém dílu jsme se podívali na to jaké proměnné můžeme použít napříč šablonou. Dnes se podíváme jak zjistit proměnné, které můžeme použít pouze na několika málo místech a která se nám často mohou hodit.

Vezměme třeba případ, kdy chceme na domovské stránce (index) vypsat počet příspěvků. Víme, že v šabloně je to soubor index_body.html, dle názvu víme, že soubor, kde jsou definované proměnné je index.php (phpBB má konvenci, kdy před _ pojmenovává php soubor, kde je vše k dané šabloně definované).

Otevřeme si proto index.php a najděme v něm:

Kód: Vybrat vše

$template->assign_vars(array(
V daném poli jsou pak tyto hodnoty: (platí pro verzi 3.2.2)

Kód: Vybrat vše

	'TOTAL_POSTS'	=> $user->lang('TOTAL_POSTS_COUNT', (int) $config['num_posts']),
	'TOTAL_TOPICS'	=> $user->lang('TOTAL_TOPICS', (int) $config['num_topics']),
	'TOTAL_USERS'	=> $user->lang('TOTAL_USERS', (int) $config['num_users']),
	'NEWEST_USER'	=> $user->lang('NEWEST_USER', get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])),

	'LEGEND'		=> $legend,
	'BIRTHDAY_LIST'	=> (empty($birthday_list)) ? '' : implode($user->lang['COMMA_SEPARATOR'], $birthday_list),

	'FORUM_IMG'				=> $user->img('forum_read', 'NO_UNREAD_POSTS'),
	'FORUM_UNREAD_IMG'			=> $user->img('forum_unread', 'UNREAD_POSTS'),
	'FORUM_LOCKED_IMG'		=> $user->img('forum_read_locked', 'NO_UNREAD_POSTS_LOCKED'),
	'FORUM_UNREAD_LOCKED_IMG'	=> $user->img('forum_unread_locked', 'UNREAD_POSTS_LOCKED'),

	'S_LOGIN_ACTION'			=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'),
	'U_SEND_PASSWORD'           => ($config['email_enable']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=sendpassword') : '',
	'S_DISPLAY_BIRTHDAY_LIST'	=> $show_birthdays,
	'S_INDEX'					=> true,

	'U_MARK_FORUMS'		=> ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'hash=' . generate_link_hash('global') . '&mark=forums&mark_time=' . time()) : '',
	'U_MCP'				=> ($auth->acl_get('m_') || $auth->acl_getf_global('m_')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=front', true, $user->session_id) : '')
A z minula víme, že použijeme jen tu první část z řádku (před =>). U našeho příkladu vezmeme TOTAL_TOPICS a v šabloně jej můžeme použít jako {TOTAL_TOPICS}. Ale tato proměnná nám bude fungovat pouze v index_body.html.
Starám se o projekt phpBB.cz od doby, kdy jsem jej zachránil před zaniknutím. Pomůžete mi a dostaneme jej zase nahoru?
Přes soukromé zprávy neposkytuji podporu. Napište do fóra, kde vyřešení problému může pomoci ostatním.

Odpovědět