Вы не зашли.
Собственно вопрос. Как вставить чтото на конкретную страницу?
Например надо вставить слово "реклама блаблабла" на страничке http://мойсайт/новости/блаблабла.html
Изменено legenda (2012-01-14 13:48:19)
Не в сети
vitaly, НЕТО, он позволяет вставлять чтото в конкретную групу, или категорий или плагинов и т.д., а мне надо на конкретный урл, чтобы только там и больше негде.
Может кто подскажет каким-то пхп кодом? с указанием что вставлять и урл куда вставлять?
Изменено legenda (2012-01-15 08:37:52)
Не в сети
Не в сети
хм.. такого у меня не было, но уже нашел, хотя проблема нерешилась так как на том сайте тисячи новостей и блок добавления банально не откривается (тупо пустой белый фон)
Но это не решает проблему, я неимел ввиду новости, я имею ввиду просто любой урл
например
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 категории невс)
+ для плагинов разных, пита страничка конкретного пользователя и т.д.
Не в сети
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)
Проекты любой сложности. Качественно. Дорого.
Не в сети
Подходы могут быть совершенно разными в зависимости от задачи и количества URL. Если их тысячи и везде все разное, то твой способ очевидно не подходит. Если их десять, то ОК. Возможно страницы можно сгруппировать по признаку, возможно нет. Ели костыль устраивает, то почему нет
Не в сети
смотрите, раньше у меня была такая потребность, сделать ссылку на конкретный сайт на конкретном урл, как я делал
сделал в корне файл 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)
Не в сети
пример для последних комментов, другие блоки по аналогии
$side_show = '{plugin_lastcomments}';
соответственно плагин ласт коментс должен быть включен
Изменено t3s (2012-01-20 17:17:31)
Проекты любой сложности. Качественно. Дорого.
Не в сети
Не в сети
точно так же как и в твоем - просто у тебя идет
echo '<a href="http://рекламируемыйсайт2/" target="_blank">анкорсайта2</a>';
а в плагине
$side_show = '<a href="http://рекламируемыйсайт2/" target="_blank">анкорсайта2</a>';
+ плагин удобнее тем, что ты можешь выводить таких блоков несколько, например в сайдбаре и футере...
но как подметил Wolverine - для большого кол-ва это урлов это не самое удачное решение, лучше искать другое...
Проекты любой сложности. Качественно. Дорого.
Не в сети
t3s, я чтото не совсем понял как, можеш написать пример 1 и 2 пункта? а то я в пхп полный ноль)
у меня не много может 20-30 блоков, и они не будут очень часто менятся так что руками это нормально
Не в сети
конкретно в твоем варианте - все что между
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)
Проекты любой сложности. Качественно. Дорого.
Не в сети