Как привязать внешнюю ссылку к заголовку статьи 1.10.6
ЕСТЬ РЕШЕНИЕ
ЗАКРЫТО
#1
22 декабря 2015 в 00:55
Подскажите, пожалуйста, как сделать в 1.10.6 так, чтобы при нажатии на название статьи вместо перехода к ее полному тексту происходил бы переход по внешней ссылке. Но не для всех статей (это я понял как сделать — напрямую в базе указать нужный seolink и изменить в файле model.php строку $url = '/'.$seolink.$page_section.'.html'), а только для некоторых. Дело в том, что у меня часть статей (некоторые новости) сделана как презентационные одностраничники, в то же время другие статьи должны отображаться в стандартном виде. Можно конечно ссылку в анонс засунуть, но это как-то не очень — хотелось бы сделать так чтобы одностраничник открывался именно вместо обычной статьи. Я добросовестно искал ответ на форуме, но не нашел, либо (что вероятнее) не понял, как это можно сделать. Буду очень благодарен за помощь.
#2
22 декабря 2015 в 10:53
Для этого вам нужно в админке создать поле подобное . В базе в таблице контента создать одноимённое поле, куда будет вноситься url которое вы будете указывать при создании материала, а затем в файле шаблона прописать условие когда следует обращаться к $article.url, а когда к $article.my_url
"
" URL страницы Если не указан, генерируется из заголовка
"
#3
24 декабря 2015 в 20:41
Спасибо. Попробовал, но не получилось — знаний не хватает. Пока сделал переадресацию через шаблон, но работает не круто :(. Буду учиться.
Сегодня в 20:00
#4
24 декабря 2015 в 21:30
Можно прямо в тело статьи ставить скрипт переадресации. Это что бы шаблоны не править под каждую статью)Пока сделал переадресацию через шаблон
1.2./admin/aplets/content.php после
Далее в двух местах ищеш такую строку
и следом пишешь такую
Идёш в шаблон com_content_view.tpl и в блоке который начинается с {if $articles} вставляеш условие.Что то типа
Где $article.cat_id == 54 категория статей для этих нужд.
Только наверное в запросе нужно получить $article.cat_id, если она не выводиться.
ALTER TABLE `cms_content` ADD `my_url` VARCHAR(100) NOT NULL
<div style="margin-top:15px"> <strong><?php echo $_LANG['AD_ARTICLE_URL']; ?></strong> <div style="color:gray"><?php echo $_LANG['AD_IF_UNKNOWN']; ?></div> </div> <div> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td><input type="text" name="url" value="<?php echo $mod['url']; ?>" style="width:100%"/></td> <td width="40" align="center">.html</td> </tr> </table> </div>
<br> <div style="margin-top:15px"> <strong>Внешняя сслка</strong> </div> <div> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td><input type="text" name="my_url" value="<?php echo $mod['my_url']; ?>" style="width:100%"/></td> <td width="40" align="center"></td> </tr> </table> </div>
$article['url'] = cmsCore::request('url', 'str');
$article['my_url'] = cmsCore::request('my_url', 'str');
{if $article.cat_id == 54} <a href="{$article.my_url}" class="con_titlelink">{$article.title}</a>{else} <a href="{$article.url}" class="con_titlelink">{$article.title}</a>{/if}
Только наверное в запросе нужно получить $article.cat_id, если она не выводиться.
#6
25 декабря 2015 в 12:39
Нил и Лора! Большое вам спасибо. В тело статьи я скрипт вставлял, но он отображался как текст- значит делал что-то не так. Попробую еще раз. А потом к вставке кода перейду:). Хочу научиться делать все (или почти все) на своих сайтах сам. Еще раз спасибо!