Код parse include - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

include

Страница 1 из 1

Код parse include

#1 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 15 Октябрь 2013 - 04:42

В шаблонах можно любую информацию скрыть от гостей (или открыть, в зависимости от <else />) блоком "<if test="memberbox:|:$this->memberData['member_id']">для зарегистрированных<else />для гостей</if>"

Кроме вот этого:
{parse include="cod.php"}

Если помещаешь внутрь <if test="memberbox:|:$this->memberData['member_id']">, выдаёт ошибку форума.

Не подскажите как такое скрыть от зарегистрированных, но оставить гостям? Очень нужно.
0

#2 Пользователь не на сайте   Bot ответил: »

 
 
  • Почетный робот
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
 

Отправлено 15 Октябрь 2013 - 04:42

Обратите внимание

По указанному вами в профиле "Board url" находится не IP.Board, либо модифицированный пиратский скрипт с удаленными копирайтами. Если вы указали неверный URL, пожауйста, поправьте его, потому что он скорее всего потребуется при диагностике вашей проблемы. Нелицензионные скрипты не приветствуются, т.к. зачастую именно некорректное "нуление" и является причиной проблем в них.


0

#3 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 152
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 15 Октябрь 2013 - 11:35

Естесственно, внутри фигурных скобок html-теги работать не будут. "{parse include="cod.php"}" - подгрузка контента из файла cod.php, если нужны какие то изменения в этом контенте, то и правьте файл, а не шаблон. Если же нужно условие запрещающее эту подгрузку, когда страница открывается зарегестрированным пользователем, то конструкция будет выглядеть так:
<if test="!$this->memberData['member_id']">{parse include="cod.php"}</if>


Еще - выражение "memberbox:|:", в вашем условии, это якорь для привязки хуков. Копировать в свои условия его не нужно, можно так поломать структуру привязки.
0

#4 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 15 Октябрь 2013 - 16:15

Dmitriy427,
Такую конструкцию админка не принимает, пишет:
"В шаблоне обнаружена ошибка синтаксиса. Проверьте правильность содержимого шаблона и попробуйте сохранить его снова."
0

#5 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 152
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 15 Октябрь 2013 - 22:21

Попробуйте так:
<if test="!isset($this->memberData['member_id'])">{parse include="cod.php"}</if>

0

#6 Пользователь не на сайте   tasker ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 145
  • Регистрация: 01-Август 13
  • Репутация: 12
  • IPB version:3.4.x
 

Отправлено 15 Октябрь 2013 - 23:02

Мне кажется, достаточно было заменить двойные кавычки на одинарные.
0

#7 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 15 Октябрь 2013 - 23:21

Просмотреть сообщениеDmitriy427 сказал(а):

Попробуйте так:

isset в таком условии всегда выдаст true, так как переменная $this->memberData['member_id'] всегда объявлена. Либо ! $this->memberData['member_id'], либо $this->memberData['member_id'] > 0

Одинарные кавычки избавляет от синтаксической ошибки, но include кажется все равно не парсится.
0

#8 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 16 Октябрь 2013 - 15:03

Если нужно условие, то его можно добавить в подключаемом файле

code.php

<?php

if( $this->memberData['member_id'] > 0 )
{
	echo "Текст для зарегистрированных пользователей";
}
else
{
	echo "Текст для гостей";
}

?>

0

#9 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 16 Октябрь 2013 - 20:29

Просмотреть сообщениеDmitriy427 сказал(а):

Попробуйте так:

Аналогично - В шаблоне обнаружена ошибка синтаксиса. Проверьте правильность содержимого шаблона и попробуйте сохранить его снова.

Просмотреть сообщениеsiv1987 сказал(а):

Одинарные кавычки избавляет от синтаксической ошибки, но include кажется все равно не парсится.

Да, не парсится.

Просмотреть сообщениеsiv1987 сказал(а):

Если нужно условие, то его можно добавить в самом подключаемом файле

На жаль не срабатывает :(
0

#10 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 16 Октябрь 2013 - 22:51

Просмотреть сообщениеHaktar сказал(а):

На жаль не срабатывает

parse это замена инклуда, так что должно сработать. Проверяйте лучше код.
echo также можно заменить на $IPBHTML .= 'text'; (главное точку не пропустить перед '=')
0

#11 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 17 Октябрь 2013 - 00:06

siv1987,
Мне нужно скрыть от зарегистрированных вот такой текст:

<?php
	require_once($_SERVER['DOCUMENT_ROOT'].'/uniplacer_config.php');
	require_once($_SERVER['DOCUMENT_ROOT'].'/'._UNIPLACE_USER_.'/uniplacer.php'); 

	$Uniplacer = new Uniplacer(_UNIPLACE_USER_);
	$Uniplacer->GetCode();
	$links = $Uniplacer->GetLinks();
	
	if($links){
		foreach($links as $link){
			echo $link.' ';
		}
	}

?>

0

#12 Пользователь не на сайте   Dmitriy427 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Specialist
  • Сообщений: 574
  • Регистрация: 15-Октябрь 11
  • Репутация: 152
  • Откуда:Россия, Тула
  • IPB version:3.3.x
 

Отправлено 17 Октябрь 2013 - 00:12

Вот так работает у меня:
<if test="!$this->memberData['member_id']">{parse expression="include '/полный_путь_к_файлу/my_code.php'"}</if>

С тегом "parse include", внутри условия, какой то баг парсера начиная с 3.0 еще и не исправленный до сих пор, судя по тому, что я в сети нарыл.
0

#13 Пользователь на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 735
  • Регистрация: 20-Март 09
  • Репутация: 2 273
  • IPB version:3.1.x
 

Отправлено 17 Октябрь 2013 - 01:07

Вывод можно делать либо через $IPBHTML .= в подключаемом файле, либо через переменные в шаблоне. Можно также использовать echo, так как результат вставки буферизируется и клеится к основному шаблону.

Просмотреть сообщениеHaktar сказал(а):

Мне нужно скрыть от зарегистрированных вот такой текст:


if( ! $this->memberData['member_id'] )
{
	require_once($_SERVER['DOCUMENT_ROOT'].'/uniplacer_config.php');
	require_once($_SERVER['DOCUMENT_ROOT'].'/'._UNIPLACE_USER_.'/uniplacer.php'); 

	$Uniplacer = new Uniplacer(_UNIPLACE_USER_);
	$Uniplacer->GetCode();
	$links = $Uniplacer->GetLinks();

	if($links){
		foreach($links as $link){
			//$IPBHTML .= $link.' ';
			echo $link.' ';
		}
	}
}

2

#14 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 632
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 17 Октябрь 2013 - 02:31

siv1987,
Спасибо, получилось!
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна