Как привязать внешнюю ссылку к заголовку статьи 1.10.6

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 22 декабря 2015 в 00:55
Подскажите, пожалуйста, как сделать в 1.10.6 так, чтобы при нажатии на название статьи вместо перехода к ее полному тексту происходил бы переход по внешней ссылке. Но не для всех статей (это я понял как сделать — напрямую в базе указать нужный seolink и изменить в файле model.php строку $url = '/'.$seolink.$page_section.'.html'), а только для некоторых. Дело в том, что у меня часть статей (некоторые новости) сделана как презентационные одностраничники, в то же время другие статьи должны отображаться в стандартном виде. Можно конечно ссылку в анонс засунуть, но это как-то не очень — хотелось бы сделать так чтобы одностраничник открывался именно вместо обычной статьи. Я добросовестно искал ответ на форуме, но не нашел, либо (что вероятнее) не понял, как это можно сделать. Буду очень благодарен за помощь.
#2 22 декабря 2015 в 10:53
Для этого вам нужно в админке создать поле подобное
  1. " URL страницы
  2. Если не указан, генерируется из заголовка
. В базе в таблице контента создать одноимённое поле, куда будет вноситься url которое вы будете указывать при создании материала, а затем в файле шаблона прописать условие когда следует обращаться к $article.url, а когда к $article.my_url
"
#3 24 декабря 2015 в 20:41
Спасибо. Попробовал, но не получилось — знаний не хватает. Пока сделал переадресацию через шаблон, но работает не круто :(. Буду учиться.
#4 24 декабря 2015 в 21:30

Пока сделал переадресацию через шаблон

Alsgus
Можно прямо в тело статьи ставить скрипт переадресации. Это что бы шаблоны не править под каждую статью)
#5 24 декабря 2015 в 22:53
1.
  1. ALTER TABLE `cms_content` ADD `my_url` VARCHAR(100) NOT NULL
2./admin/aplets/content.php после
  1. <div style="margin-top:15px">
  2. <strong><?php echo $_LANG['AD_ARTICLE_URL']; ?></strong>
  3.  
  4. <div style="color:gray"><?php echo $_LANG['AD_IF_UNKNOWN']; ?></div>
  5. </div>
  6. <div>
  7. <table border="0" cellpadding="0" cellspacing="0" width="100%">
  8. <tr>
  9. <td><input type="text" name="url" value="<?php echo $mod['url']; ?>" style="width:100%"/></td>
  10. <td width="40" align="center">.html</td>
  11. </tr>
  12. </table>
  13. </div>
  1. <br>
  2. <div style="margin-top:15px">
  3. <strong>Внешняя сслка</strong>
  4.  
  5. </div>
  6. <div>
  7. <table border="0" cellpadding="0" cellspacing="0" width="100%">
  8. <tr>
  9. <td><input type="text" name="my_url" value="<?php echo $mod['my_url']; ?>" style="width:100%"/></td>
  10. <td width="40" align="center"></td>
  11. </tr>
  12. </table>
  13. </div>
Далее в двух местах ищеш такую строку
  1. $article['url'] = cmsCore::request('url', 'str');
и следом пишешь такую
  1. $article['my_url'] = cmsCore::request('my_url', 'str');
Идёш в шаблон com_content_view.tpl и в блоке который начинается с {if $articles} вставляеш условие.Что то типа
  1. {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 == 54 категория статей для этих нужд.
Только наверное в запросе нужно получить $article.cat_id, если она не выводиться.
#6 25 декабря 2015 в 12:39
Нил и Лора! Большое вам спасибо. В тело статьи я скрипт вставлял, но он отображался как текст- значит делал что-то не так. Попробую еще раз. А потом к вставке кода перейду:). Хочу научиться делать все (или почти все) на своих сайтах сам. Еще раз спасибо!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.