Перейти к контенту
  • 0

Вопрос по (DP34) Global Sidebars


ipb323

Вопрос

Пытаюсь в правую панель воткнуть стандартный код, по типу {parse advertisement='index_header'}, но несмотря на включённый режим Raw, выводится просто указанный текст, а не значение переменной. Может кто сталкивался?

 

Ссылка на комментарий
Поделиться на других сайтах

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

  • 0

Допустим есть некая зона, на которую назначено несколько баннеров. При показе они последовательно перебираются, а вот как понять количество этих баннеров, чтобы сделать нужной размерности цикл и вывести их все вместе, друг за другом (в колонку)?

Штатного пути решения проблемы не оказалось, пришлось через работу с БД. Может кому понадобится:

$this->registry =  ipsRegistry::instance(); 
$this->DB  = $this->registry->DB();
$this->DB->query( "SELECT * FROM ibf_nexus_ads WHERE ad_locations='my_banners' AND ad_active='1'"); 
$result = $this->DB->execute();
$row = $this->DB->fetch( $result );
do {
echo "<div align='center' class='nexus_ad'>";
echo "<a href='".$row['ad_link']."' target='_blank'>";
echo "<img src='".$row['ad_image']."' />";
echo "</a></div><br />";
$row = $this->DB->fetch( $result );
    } while ($row['ad_id']<>''); 
Ссылка на комментарий
Поделиться на других сайтах

  • 0

В пояснении к этому режиму написано: This mode is required for any javascript adverts - like google adsense etc. OR for parsing blocks from the IP.Content.

К слову, php тоже пробовал, но в этом режиме просто пусто. Стандартный php-код работает.

Изменено пользователем ipb323
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Я же говорю, как написано, так и есть. RAW выводит текст как есть без обработок. Это необходимо для вывода javascript. Отдельно парсятся конкретно блоки ip.content, конструкция вида {parse block=... , и только она. Есть же специальный тип для рекламы нексус.

А в php нет конструкций типа {parse...} само собой будет ошибка
Надо вызывать функцию напрямую

echo $this->registry->getClass('IPSAdCode')->getAdById();

для ID или для ключа

echo $this->registry->getClass('IPSAdCode')->getAdCode();

 

Ну и еще можно сделать финт ушами, создать в скине шаблон, который будет содержать {parse advertisement='index_header'} а в блоке уже гнать этот шаблон.

  • Лайк 1
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Спасибо за разъяснения, попробую так сделать. Хотя, вчера исхитрился по-другому - echo file_get_contents( "http://*********/interface/advertisements.php?index_header" );


@Denis Chursinov, всё получилось.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Думаю, что нигде. Даже официальные гайды у IPS с переходом на 4 пропали с сайта. 
Есть разбор в oxygen http://community.invisionpower.com/resources/doxygen/index.html
Но в итоге все равно придется брать дебаггер и изучать все самому. А с нексусом еще большая морока, код у него закрытый.

  • Лайк 1
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Есть разбор в oxygen

Отличная ссылка!

 

Возникает ещё один интересный момент. Допустим есть некая зона, на которую назначено несколько баннеров. При показе они последовательно перебираются, а вот как понять количество этих баннеров, чтобы сделать нужной размерности цикл и вывести их все вместе, друг за другом (в колонку)? Или может быть есть ещё какой способ?

Изменено пользователем ipb323
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Можно воспользоваться кешем - ipsRegistry::cache()->getCache("nexus_ads"); .

Получится так:
 

$this->registry =  ipsRegistry::instance(); 

$rows =  $this->registry->cache()->getCache("nexus_ads");
if (isset($rows['my_banners']) AND is_array($rows['my_banners'])){
foreach ($rows['my_banners'] as $row){ 
echo "<div align='center' class='nexus_ad'>";
echo "<a href='".$row['ad_link']."' target='_blank'>";
echo "<img src='".$row['ad_image']."' />";
echo "</a></div><br />";
} }
  • Лайк 1
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.