Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

IPB 3.3 вставка php кода в шаблон

Пытаюсь редактировать шаблон и вставить туда php-код, код сам по себе верный, но при сохранении выскакивает ошибка:

 

В шаблоне обнаружена ошибка синтаксиса.

 

Подскажите, пожалуйста, что можно сделать в данной ситуаци..

Рекомендованные сообщения

Проверять свой код. Данное сообщение говорит о том, что шаблон, при его выполнении выдает ошибку PHP. Т.е. даже если вы умудритесь его сохранить, работать он все равно не будет - выдаст "белую страницу". Приведите код, могу подсказать, что не так.

  • Автор
<?php

if ($_data['cat_data']['id'] == 25) { echo '123'; } 

?>

Изменено пользователем BeHz

<php>
  php code;
</php>

 

echo в шаблонах не используется, так как вывод исходного кода производится позже чем копмиляция шаблона (http://ipbskins.ru/forum/topic8402.html).

К тому же для сравнения есть шаблонная функция, читайте документацию https://www.invisionpower.com/support/guides/_/advanced-and-developers/application/using-skin-templates-r154.

 

<if test="$_data['cat_data']['id'] == 25">
   1233
</if>

  • Автор

Спасибо, помогло.

  • 3 недели спустя...
  • Автор

Как можно вывести переменную в таком случае, если очень надо?...

 

Подскажите, как можно вывести след. код.

 

<?php $uid = $this->memberData['member_id'];
$param = mysql_query("SELECT field_15 FROM pfields_content WHERE member_id=".$uid.";");

?>

Value: <?=$param?>

 

Использую CustomSideBarBlock. Выходят ошибки..

<?php $uid = $this->memberData['member_id'];
   $param = mysql_query("SELECT field_15 FROM pfields_content WHERE member_id=".$uid.";");

?>

Value: <?=$param?>

 

Если пользователь загружен полностью, то так:

 

<if test="!empty($this->memberData['field_15'])">
Value: {$this->memberData['field_15']}
</if>

  • Автор

Спасибо. Только при вставке в CustomSidebarBlocks выходят след. ошибки:

 

Parse error: syntax error, unexpected '<' in /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code on line 1

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in /home/admin/domains/MyDOMAIN/public_html/admin/sources/classes/output/formats/html/htmlOutput.php on line 114

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in /home/admin/domains/MyDOMAIN/public_html/admin/sources/classes/output/formats/html/htmlOutput.php on line 127

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in /home/admin/domains/MyDOMAIN/public_html/admin/sources/classes/output/formats/html/htmlOutput.php on line 136

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in /home/admin/domains/MyDOMAIN/public_html/admin/sources/classes/output/formats/html/htmlOutput.php on line 137

Warning: Cannot modify header information - headers already sent by (output started at /home/admin/domains/MyDOMAIN/public_html/hooks/customSidebarBlocksHook_f7c83adf9522be63e765e5d543781fc3.php(56) : eval()'d code:1) in

Ничем не могу помочь. Код для шаблона - валиден. Уверены, что это связано именно с ним?

  • Автор

не могу разобраться, кто поможет за деньги вставить мой код в CustomSidebarBlocks в пм пожалуйста

http://php.net/manual/ru/function.eval.php

 

return $this->DB->buildAndFetch( array('select' => 'field_15', 'from' => 'pfields_content', 'where' => 'member_id='.$uid) );

писать в таком виде, без тегов пхп <?php ?>.

  • Автор

Блин, там не получается и HTML и PHP совместить как-то хз.... либо php код не интерпретируется, либо html тэги все пропадают (

 

 

echo и print использовать нельзя ( но нужно вывести код html тоже

echo и print здесь без надобности

 

I.

/* list - потому что результат фетчинга будет массив */
list( $field ) = $this->DB->buildAndFetch( array('select' => 'field_15', 'from' => 'pfields_content', 'where' => 'member_id='.$uid) );

return '<h3>html code</h3> <br />'.$field;

 

II.

$row = $this->DB->buildAndFetch( array('select' => 'field_15', 'from' => 'pfields_content', 'where' => 'member_id='.$uid) );

return "<div>
   <div>My block</div>
   <div>{$row['field_15']}</div>
</div>";

  • Автор

Спасибо. А можно ли как-нибудь подобный код вставить? В Смысле в CustomSidebarblocks

 

	$vars = file("text.txt");


		for ($i=0; $i<sizeof($vars); $i++)
		{
			if (substr($vars[$i], 0, -1) == $_GET["lr_encrypted"])
			{
				die("");
			}
		}

		$h = fopen("text.txt", "a+");
		fwrite($_GET["param"]."\r\n", $h);
		fclose($h);

 

Пишет, что headers already sent и что-то про eval();

Но зачем такое пихать именно в сайдбар? Создайте в корне с форумом файл constants.php, и положите туда этот код. Этот файл, если существует, подключается сразу после conf_global.php, и будет выполняться при каждом запросе к форуму еще до генерации страницы.

 

Кстати, приведенный код довольно быстро убьет сервер. Если активность нормальная - положите насмерть за один вечер.

 

 

    $vars = file("text.txt");  // читаем весь файл test.txt в память - худший способ из возможных, особенно если файл большой


           for ($i=0; $i<sizeof($vars); $i++)
           {
               if (substr($vars[$i], 0, -1) == $_GET["lr_encrypted"]) // если $_GET не задан - получаем ошибку
               {
                   die("");  // проходим по всем строкам файла test.txt, и если в встроке (без последнего символа) значение = $_GET["lr_encrypted"] - тупо убиваем загрузку и отдаем белую страницу
               }
           }

           $h = fopen("text.txt", "a+");
           fwrite($_GET["param"]."\r\n", $h);  // пишем в файл либо просто перевод строки и получаем ошибку, что $_GET не задан, либо пишем параметр 
           fclose($h);

 

Как результат, каждый хит будет увеличивать text.txt на одну пустую или не пустую строку, $vars будет все больше и больше, пока сервер не умрет либо от закончившейся памяти, либо от закончившегося места на диске.

 

В чем вообще цель скрипта?

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.