Foren / National / Russian / Тех. поддержка / Проверить include на существование

Kopusha
#1 2. Juli 2020, 20:26
	<!-- IF {FILE "{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/includes/countries/cu/menu.tpl"}	 -->
	{FILE "{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/includes/countries/cu/menu.tpl"}			
	<!-- ENDIF -->

не работает, если там нет файла tpl мне выдает в основном тпл текст
themes/beta/includes/countries/cu/menu.tpl
Как сделать что бы была проверка и если файл есть то давало его, если нет то ничего.

Спасиб!

Edward
#2 3. Juli 2020, 06:39

Надо лезть в шаблонизатор.

А какой в этой проверке смысл? С таким же успехом может пропасть шалон page.system, например. И вместо него будет выведен треш по умолчанию. Этот шаблон должен быть на месте, если предусмотрен.

Почти с такой же задачей разбирался, но не совсем. У меня прайс для регионов инклюдится, и если его нет, то выводится прайс по умолчанию.

Решил так:

function seos_get_file_content($domain = 'default_domain', $cat = 'index', $file = '') {
	$file_path = 'datas/files/seos/' . $domain . '/' . $cat . '/' . $file;
	
	if (!is_file($file_path)){
		return false;
	}
	
	try {
	    $content = file_get_contents($file_path);

	    if ($content === false) {
	    	// Handle error
	    	return false;
	    }

	    return $content;

	} catch (Exception $e) {
	    // Handle exception
	    return false;
	}
}

Естественно в этом случае теги внутри включаемого файла не парсятся.

Email: ed.gabishev@gmail.com
Telegram: https://t.me/Ed_Gaba
jCube Group
#3 3. Juli 2020, 07:14
#44958 Kopusha:
	<!-- IF {FILE "{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/includes/countries/cu/menu.tpl"}	 -->
	{FILE "{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/includes/countries/cu/menu.tpl"}			
	<!-- ENDIF -->

не работает, если там нет файла tpl мне выдает в основном тпл текст
themes/beta/includes/countries/cu/menu.tpl
Как сделать что бы была проверка и если файл есть то давало его, если нет то ничего.

Спасиб!

И не должно рабоатать, для начало нужно проверить,  если использовать переменные то нужно писать функию,  но это должно быть примерно так :

<!-- IF {PHP|file_exists("themes/default/includes/countries/cu/menu.tpl")}   -->
{FILE "{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/includes/countries/cu/menu.tpl"}         
<!-- ENDIF -->
Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
Kopusha
#4 3. Juli 2020, 09:55

Ну я ночью поигрался пришел к примерно такому же сам выводу

Или костыли или тупо сделать 248 пустых инклудов что бы они были и заполнять по мере прихода контента эти инклуды