Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2012-01-14 13:47:54

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Как вставить конкретный блок на конкретную страницу?

Собственно вопрос. Как вставить чтото на конкретную страницу?

Например надо вставить слово "реклама блаблабла" на страничке http://мойсайт/новости/блаблабла.html

Изменено legenda (2012-01-14 13:48:19)

Не в сети

#2 2012-01-14 16:22:22

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Как вставить конкретный блок на конкретную страницу?

Используй плагин ads_pro, он позволяет ставить код на страницы конкретных новостей.

Не в сети

#3 2012-01-15 08:34:33

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как вставить конкретный блок на конкретную страницу?

vitaly, НЕТО, он позволяет вставлять чтото  в конкретную групу, или категорий или плагинов и т.д., а мне надо на конкретный урл, чтобы только там и больше негде.

Может кто подскажет каким-то пхп кодом? с указанием что вставлять и урл куда вставлять?

Изменено legenda (2012-01-15 08:37:52)

Не в сети

#4 2012-01-15 12:20:15

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

Re: Как вставить конкретный блок на конкретную страницу?

b55cc4909f7ec8bad76c3d186a22d8b3.png

Не в сети

#5 2012-01-15 15:22:47

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как вставить конкретный блок на конкретную страницу?

хм.. такого у меня не было, но уже нашел, хотя проблема нерешилась так как на том сайте тисячи новостей и блок добавления банально не откривается (тупо пустой белый фон)

Но это не решает проблему, я неимел ввиду новости, я имею ввиду просто любой урл

например
http://мой сайт/2012.html (урл странички из архива)
http://мой сайт/2012-01-01.html (урл странички из календаря)
http://мой сайт//plugin/tags/tag/?tag=%C0%F0%F1%E5%ED%E0%EB (урл конкретного тега)
http://мой сайт/невс/page/2.html (урл постранички #2 категории невс)

+ для плагинов разных, пита страничка конкретного пользователя и т.д.

Не в сети

#6 2012-01-20 11:45:20

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: Как вставить конкретный блок на конкретную страницу?

legenda, пока что для аналагичной задачи использую вот такой костыль ввиде вот такого простейшего плагина:

<?php
if (!defined('NGCMS')) die ('HAL');
add_act('index', 'mysidebar');

	function mysidebar(){
		global $tvars, $template, $tpl;

	$ref = $_SERVER['REQUEST_URI'];
	$ref = explode("/", $ref);
	$url_id = $ref[2];


if ($url_id == 'тут_урл_на_котором_надо_что-то_вывести' ){// вместо http://мой сайт/2012-01-01.html ставим 2012-01-01.html
$side_show = 'блаблабла, тут пишем инфу для конкретного урла';
//вопрос - почему не использую адс или адс про?
//ответ ver.1 - адс и адс про не работают со страницами плагинов, т.е. вывести инфу на зтранице плагина нельзя
//ответ ver.2 - тут я могу взять не только текстовую инфу, но и вообще все что угодно (RSS, XML, YML, подключиться к другой базе и т.д.), затем сделать с ней все что угодно, а затем вывести то что нужно... 

}else{
$side_show = '';
}


		$tvars['vars'] = array	(
				'my_data'	=>	$side_show
								);

			$tpl -> template('mysidebar', extras_dir."/mysidebar/tpl");
			$tpl -> vars('mysidebar', $tvars);
			$output .= $tpl -> show('mysidebar');
			$template['vars']['data_mysidebar'] = $output;

}

если подходит, то

1. создаешь папку mysidebar, в которой создаешь файл mysidebar.php и вставляешь данный код
2. в ней создаешь папку tpl, в которой должен быть файлик mysidebar.tpl, содержащий вот такое:

{my_data}

3. в шаблоне в main.tpl в том месте где хочешь вівести пишешь {data_mysidebar}


если есть решение более элегантное то присоеденяюсь к вопросу Легенды, поскольку с твигом не сложилось (http://ngcms.ru/forum/viewtopic.php?pid=27177#p27177)

Изменено t3s (2012-01-20 11:50:54)


Проекты любой сложности. Качественно. Дорого.

Не в сети

#7 2012-01-20 12:05:07

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: Как вставить конкретный блок на конкретную страницу?

Подходы могут быть совершенно разными в зависимости от задачи и количества URL. Если их тысячи и везде все разное, то твой способ очевидно не подходит. Если их десять, то ОК. Возможно страницы можно сгруппировать по признаку, возможно нет. Ели костыль устраивает, то почему нет smile

Не в сети

#8 2012-01-20 17:09:35

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как вставить конкретный блок на конкретную страницу?

смотрите, раньше у меня была такая потребность, сделать ссылку на конкретный сайт на конкретном урл, как я делал

сделал в корне файл linkss.php с таким кодом

<?
    if ($_SERVER['REQUEST_URI']=='/конкретний урл моего сайта' 
    OR $_SERVER['REQUEST_URI']=='/конкретний урл моего сайта2'
    OR $_SERVER['REQUEST_URI']=='/конкретний урл моего сайта3'
    OR $_SERVER['REQUEST_URI']=='/конкретний урл моего сайта4'
    OR $_SERVER['REQUEST_URI']=='/конкретний урл моего сайта5') {
    echo '<a href="http://рекламируемыйсайт/" target="_blank">анкорсайта</a>';    } 
?>

<?
    if ($_SERVER['REQUEST_URI']=='/конкретний урл моего сайта6' 
    OR $_SERVER['REQUEST_URI']=='/конкретний урл моего сайта7'
    OR $_SERVER['REQUEST_URI']=='/конкретний урл моего сайта8'
    OR $_SERVER['REQUEST_URI']=='/конкретний урл моего сайта9'
    OR $_SERVER['REQUEST_URI']=='/конкретний урл моего сайта10') {
    echo '<a href="http://рекламируемыйсайт2/" target="_blank">анкорсайта2</a>';    } 
?>

в маин.тпл вставлял <? include"linkss.php";?> и все, на конкретном урл была конкретная ссылка в том месте где надо.

Этот вариант у меня работает и сейчас, но мне надо счас вставлять не ссылку а блок (гтмл код баннера, код фото, вывод плагина например топ_нюз или лайст коментс) и т.д.

вот мне надо чтото подобное.

t3s, твой вариант насколько я понял, фактически тоже самое что у меня было, возможно немного приукрашено, с выводом ссылкой и словами понятно, но как там именно чтото типа блока выводить?

Изменено legenda (2012-01-20 17:14:45)

Не в сети

#9 2012-01-20 17:15:55

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: Как вставить конкретный блок на конкретную страницу?

пример для последних комментов, другие блоки по аналогии

$side_show = '{plugin_lastcomments}';

соответственно плагин ласт коментс должен быть включен

Изменено t3s (2012-01-20 17:17:31)


Проекты любой сложности. Качественно. Дорого.

Не в сети

#10 2012-01-20 17:18:23

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как вставить конкретный блок на конкретную страницу?

t3s, а как в твоем варианте
1. пару урл для вывода например ссилки для рекламируемого сайта1
2. вывод на других урл ссылки для рекламируемого сайта2
?

Не в сети

#11 2012-01-20 19:46:22

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: Как вставить конкретный блок на конкретную страницу?

точно так же как и в твоем - просто у тебя идет

echo '<a href="http://рекламируемыйсайт2/" target="_blank">анкорсайта2</a>';

а в плагине

$side_show = '<a href="http://рекламируемыйсайт2/" target="_blank">анкорсайта2</a>';

+ плагин удобнее тем, что ты можешь выводить таких блоков несколько, например в сайдбаре и футере...

но как подметил Wolverine - для большого кол-ва это урлов это не самое удачное решение, лучше искать другое...


Проекты любой сложности. Качественно. Дорого.

Не в сети

#12 2012-01-21 17:44:45

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

Re: Как вставить конкретный блок на конкретную страницу?

t3s, я чтото не совсем понял как, можеш написать пример 1 и 2 пункта? а то я в пхп полный ноль)

у меня не много может 20-30 блоков, и они не будут очень часто менятся так что руками это нормально

Не в сети

#13 2012-01-24 00:10:21

t3s
Участник
Откуда планета The мля...
Зарегистрирован: 2009-04-09
Сообщений: 228
Рейтинг :   13 
Сайт

Re: Как вставить конкретный блок на конкретную страницу?

конкретно в твоем варианте - все что между

if ($url_id == 'тут_урл_на_котором_надо_что-то_вывести' ){

и

}else{
$side_show = '';
}

замени на вот такое:

if ($url_id == 'конкретний урл моего сайта1' 
    OR $url_id == 'конкретний урл моего сайта2'
    OR $url_id == 'конкретний урл моего сайта3'
    OR $url_id == 'конкретний урл моего сайта4'
    OR $url_id == 'конкретний урл моего сайта5'){
$side_show = '<a href="http://рекламируемыйсайт/" target="_blank">анкорсайта</a>';
}else if ($url_id == 'конкретний урл моего сайта6' 
    OR $url_id == 'конкретний урл моего сайта7'
    OR $url_id == 'конкретний урл моего сайта8'
    OR $url_id == 'конкретний урл моего сайта9
    OR $url_id == 'конкретний урл моего сайта10'){
$side_show = '<a href="http://рекламируемыйсайт2/" target="_blank">анкорсайта2</a>';
}else{
$side_show = '';
}

но это "неправильно", особенно когда урлов много
например если в урлах есть что-то общее - можно использовать это "общее"
допустим, у тебя имеется такие страницы:
хттп://сайт.ком/super-video.html
хттп://сайт.ком/puper-video.html
хттп://сайт.ком/gyper-video.html
в этом случае мы видем общее между ними - video
если после

$url_id = $ref[2];

добавим

$url_id = substr("$url_id", 6, 11);

то переменная $url_id как раз и будет содержать это самое video

я для себя именно так и делал, т.е. сравнивал часть урла (инфу нужно было вывести для определенного плагина)

Изменено t3s (2012-01-24 00:19:09)


Проекты любой сложности. Качественно. Дорого.

Не в сети

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

Работает на FluxBB