Перейти к контенту
  • 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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