Русский English Deutsch Українська Қазақша

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

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

Вы не вошли.

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

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

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

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

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

Отредактировано legenda (2012-01-14 12:48:19)

Вне форума

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

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

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

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

Вне форума

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

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

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

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

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

Отредактировано legenda (2012-01-15 07:37:52)

Вне форума

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

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

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

b55cc4909f7ec8bad76c3d186a22d8b3.png

Вне форума

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

legenda
Участник
Откуда: ua
Здесь с 2009-12-22
Сообщений: 2,151
Рейтинг :   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 10: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 10:50:54)


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

Вне форума

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

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

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

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

Вне форума

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

legenda
Участник
Откуда: ua
Здесь с 2009-12-22
Сообщений: 2,151
Рейтинг :   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 16:14:45)

Вне форума

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

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

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

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

$side_show = '{plugin_lastcomments}';

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

Отредактировано t3s (2012-01-20 16:17:31)


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

Вне форума

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

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

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

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

Вне форума

#11 2012-01-20 18: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 16:44:45

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

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

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

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

Вне форума

#13 2012-01-23 23: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-23 23:19:09)


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

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.017 сек, 7 запросов выполнено - Использовано памяти: 588.2 Кбайт (Пик: 625.2 Кбайт) ]