Забыли пароль?
Запросите новый здесь.

Автор темы: jikaka
ID темы: 1180
Информация:
Тема содержит 17 сообщения, была просмотрена 4300 раз.
Просмотр темы
PHP-Fusion Russia » Расширения » Хаки/скрипты
 Распечатать тему
Ссылка на источник новости
jikaka
Для новостных сайтов будет вполне полезной вещью.

1. Открываем news.php, находим:
Скачать исходники  Код
$news_info = array(
            "news_id" => $data['news_id'],
            "user_id" => $data['user_id'],
            "user_name" => $data['user_name'],
            "user_status" => $data['user_status'],
            "news_date" => $data['news_datestamp'],
            "cat_id" => $data['news_cat'],
            "cat_name" => $data['news_cat_name'],
            "cat_image" => $news_cat_image,
            "news_subject" => $data['news_subject'],
            "news_ext" => $data['news_extended'] ? "y" : "n",
            "news_reads" => $data['news_reads'],
            "news_comments" => $comments,
            "news_allow_comments" => $data['news_allow_comments'],
            "news_sticky" => $data['news_sticky']
         );



заменяем на:
Скачать исходники  Код
$news_info = array(
            "news_id" => $data['news_id'],
            "user_id" => $data['user_id'],
            "user_name" => $data['user_name'],
            "user_status" => $data['user_status'],
            "news_date" => $data['news_datestamp'],
            "cat_id" => $data['news_cat'],
            "cat_name" => $data['news_cat_name'],
            "cat_image" => $news_cat_image,
            "news_subject" => $data['news_subject'],
            "news_ext" => $data['news_extended'] ? "y" : "n",
            "news_reads" => $data['news_reads'],
            "news_comments" => $comments,
            "news_allow_comments" => $data['news_allow_comments'],
            "news_source_url" => $data['news_source_url'],
            "news_source_title" => $data['news_source_title'],
            "news_sticky" => $data['news_sticky']
         );



находим:
Скачать исходники  Код
$news_info = array(
         "news_id" => $data['news_id'],
         "user_id" => $data['user_id'],
         "user_name" => $data['user_name'],
         "user_status" => $data['user_status'],
         "news_date" => $data['news_datestamp'],
         "cat_id" => $data['news_cat'],
         "cat_name" => $data['news_cat_name'],
         "cat_image" => $news_cat_image,
         "news_subject" => $data['news_subject'],
         "news_ext" => "n",
         "news_reads" => $data['news_reads'],
         "news_comments" => dbcount("(comment_id)", DB_COMMENTS, "comment_type='N' AND comment_item_id='".$data['news_id']."' AND comment_hidden='0'"),
         "news_allow_comments" => $data['news_allow_comments'],
         "news_sticky" => $data['news_sticky']
      );



заменяем на:
Скачать исходники  Код
$news_info = array(
         "news_id" => $data['news_id'],
         "user_id" => $data['user_id'],
         "user_name" => $data['user_name'],
         "user_status" => $data['user_status'],
         "news_date" => $data['news_datestamp'],
         "cat_id" => $data['news_cat'],
         "cat_name" => $data['news_cat_name'],
         "cat_image" => $news_cat_image,
         "news_subject" => $data['news_subject'],
         "news_ext" => "n",
         "news_reads" => $data['news_reads'],
         "news_comments" => dbcount("(comment_id)", DB_COMMENTS, "comment_type='N' AND comment_item_id='".$data['news_id']."' AND comment_hidden='0'"),
         "news_allow_comments" => $data['news_allow_comments'],
         "news_source_url" => $data['news_source_url'],
         "news_source_title" => $data['news_source_title'],
         "news_sticky" => $data['news_sticky']
      );



сохраняем файл.

2. Открываем administration/news.php, находим:
Скачать исходники  Код
$news_subject = stripinput($_POST['news_subject']);



после добавляем:
Скачать исходники  Код
$news_source_url = stripinput($_POST['news_source_url']);
$news_source_title = stripinput($_POST['news_source_title']);



находим:
Скачать исходники  Код
UPDATE ".DB_NEWS." SET news_subject='$news_subject',



заменяем на:
Скачать исходники  Код
UPDATE ".DB_NEWS." SET news_subject='$news_subject', news_source_url='$news_source_url',



находим:
Скачать исходники  Код
$result = dbquery("INSERT INTO ".DB_NEWS." (news_subject, news_cat, news_news, news_extended, news_breaks, news_name, news_datestamp, news_start, news_end, news_image, news_image_t1, news_image_t2, news_visibility, news_draft, news_sticky, news_reads, news_allow_comments, news_allow_ratings) VALUES ('$news_subject', '$news_cat', '$body', '$body2', '$news_breaks', '".$userdata['user_id']."', '".($news_start_date != 0 ? $news_start_date : time())."', '$news_start_date', '$news_end_date', '$news_image', '$news_image_t1', '$news_image_t2', '$news_visibility', '$news_draft', '$news_sticky', '0', '$news_comments', '$news_ratings')");



заменяем на:
Скачать исходники  Код
$result = dbquery("INSERT INTO ".DB_NEWS." (news_subject, news_source_url, news_source_title, news_cat, news_news, news_extended, news_breaks, news_name, news_datestamp, news_start, news_end, news_image, news_image_t1, news_image_t2, news_visibility, news_draft, news_sticky, news_reads, news_allow_comments, news_allow_ratings) VALUES ('$news_subject', '$news_source_url', '$news_source_title', '$news_cat', '$body', '$body2', '$news_breaks', '".$userdata['user_id']."', '".($news_start_date != 0 ? $news_start_date : time())."', '$news_start_date', '$news_end_date', '$news_image', '$news_image_t1', '$news_image_t2', '$news_visibility', '$news_draft', '$news_sticky', '0', '$news_comments', '$news_ratings')");



находим:
Скачать исходники  Код
$result = dbquery("SELECT news_subject, news_cat, news_news, news_extended, news_start, news_end, news_image, news_image_t1, news_image_t2, news_visibility, news_draft, news_sticky, news_breaks, news_allow_comments, news_allow_ratings FROM ".DB_NEWS." WHERE news_id='".(isset($_POST['news_id']) ? $_POST['news_id'] : $_GET['news_id'])."' LIMIT 1");



заменяем на:
Скачать исходники  Код
$result = dbquery("SELECT news_subject, news_source_url, news_source_title, news_cat, news_news, news_extended, news_start, news_end, news_image, news_image_t1, news_image_t2, news_visibility, news_draft, news_sticky, news_breaks, news_allow_comments, news_allow_ratings FROM ".DB_NEWS." WHERE news_id='".(isset($_POST['news_id']) ? $_POST['news_id'] : $_GET['news_id'])."' LIMIT 1");



находим:
Скачать исходники  Код
$news_subject = $data['news_subject'];



ниже добавляем:
Скачать исходники  Код
$news_source_url = $data['news_source_url'];
$news_source_title = $data['news_source_title'];



находим:
Скачать исходники  Код
$news_subject = "";



после добавляем:
Скачать исходники  Код
$news_source_url = "";
$news_source_title = "";



находим:
Скачать исходники  Код
echo "<td width='80%' class='tbl'><input type='text' name='news_subject' value='".$news_subject."' class='textbox' style='width: 250px' /></td>\n";
echo "</tr>\n<tr>\n";



после добавляем:
Скачать исходники  Код
echo "<td width='100' class='tbl'>Source info:</td>\n";
echo "<td width='80%' class='tbl'>Source URL: <input type='text' name='news_source_url' value='".$news_source_url."' class='textbox' style='width: 250px' />
<br />Source title: <input type='text' name='news_source_title' value='".$news_source_title."' class='textbox' style='width: 250px' /></td>\n";
echo "</tr>\n<tr>\n";



сохраняем файл.

Теперь нужно отредактировать файл theme.php (функцию render_news).
В каждой теме данная часть может быть разной, поэтому ниже приводится код, который вам надо будет добавить.

3. Открываем файл theme.php вашей темы, находим функцию render_news и добавляем к ней следующий код:
Скачать исходники  Код
/* News source */
      if (!strstr($info['news_source_url'], "http://") && !strstr($info['news_source_url'], "https://")) {
         $urlprefix = "http://";
          } else {
         $urlprefix = "";
      }
       if($info['news_source_url'] != "" && $info['news_source_title'] != ""){
           echo " <strong>Source:</strong> <a href='".$urlprefix.$info['news_source_url']."' title='".$urlprefix.$info['news_source_url']."' target='_blank'>".$info['news_source_title']."</a>";
           }
           /* News source */



4. И последнее, вы должны добавить новые поля в вашу базу данных в таблицу новостей.
Для этого необходимо перейти в Панель админа -> Дополнительные страницы
Потом скопировать и вставить в страницу нижеприведенный код и нажить кнопку "Предпросмотр".
Скачать исходники  Код
<?php
$result = dbquery("ALTER TABLE ".DB_NEWS." ADD news_source_url VARCHAR(250) NOT NULL DEFAULT '' AFTER news_allow_ratings");
$result = dbquery("ALTER TABLE ".DB_NEWS." ADD news_source_title VARCHAR(200) NOT NULL DEFAULT '' AFTER news_source_url");
?>



После этого можно проверять результат.
x1
 
Web
Polarfox
имхо шагов дофига,
на офе я не стал этого писать, но думаю что можно было инсталяжку чтоли сделать ему...

Еще, лучше два субшага (находим-заменяем) чем нить объединять, для наглядности.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
x3
 
Web
jikaka
согласен, но тут правки всего на 3 файла
делается в течение 5 минут
не считаю это затратным для того, кому это необходимо
 
Web
Alex
ровно 20 минут ушло!
x1
 
Web
Alex
ссылка на источник вылазит на странице где все новости, как сделать чтоб она была только внутри новости?
 
Web
jikaka
поставь условие на проверку readmore
если есть, то выводить
это в файле theme.php
 
Web
Alex
в файле news.php
у меня в районе 73 строки
Скачать исходники  Код

$news_info = array(
            "news_id" => $data['news_id'],
            "user_id" => $data['user_id'],
            "user_name" => $data['user_name'],
            "user_status" => $data['user_status'],
            "news_date" => $data['news_datestamp'],
            "cat_id" => $data['news_cat'],
            "cat_name" => $data['news_cat_name'],
            "cat_image" => $news_cat_image,
            "news_subject" => $data['news_subject'],
            "news_ext" => $data['news_extended'] ? "y" : "n",
            "news_reads" => $data['news_reads'],
            "news_comments" => $comments,
            "news_allow_comments" => $data['news_allow_comments'],
            "news_sticky" => $data['news_sticky']
         );




вот так оставил

а в районе 127 строки
Скачать исходники  Код

$news_info = array(
         "news_id" => $data['news_id'],
         "user_id" => $data['user_id'],
         "user_name" => $data['user_name'],
         "user_status" => $data['user_status'],
         "news_date" => $data['news_datestamp'],
         "cat_id" => $data['news_cat'],
         "cat_name" => $data['news_cat_name'],
         "cat_image" => $news_cat_image,
         "news_subject" => $data['news_subject'],
         "news_ext" => "n",
         "news_reads" => $data['news_reads'],
         "news_comments" => dbcount("(comment_id)", DB_COMMENTS, "comment_type='N' AND comment_item_id='".$data['news_id']."' AND comment_hidden='0'"),
         "news_allow_comments" => $data['news_allow_comments'],
      "news_source_url" => $data['news_source_url'],
        "news_source_title" => $data['news_source_title'],
            "news_sticky" => $data['news_sticky']
      );





ссылка на источник осталась только внутри новости.


UPD при таком варианте журнал ошибок ругается на файл темы
 
Web
Alex
а что если прописать не в файле темы в файле news.php? знаю где, не знаю что.

пробовал код из файла темы вставить, ничего не вышло
 
Web
jikaka
поставь условие на проверку readmore
если есть, то выводить
это в файле theme.php

 
Web
Alex
заметил что перестало сохраняться изменения новости, т.е. новость отлично добавляется но в последующем изменить ее нельзя стало, подумав что последнее я добавлял на сайт данный скрипт, решил вернуть бекапнутый файл (/administration/news.php) и о чудо все опять заработало, так что здесь где то косяк, либо я у себя накосячил.

кто это еще у себя делал проверьте работает ли у вас редактирование новостей, в админке при сохранении пишет что пункт изменен а в реалии нет!
 
Web
mishqa35
Ошибка в п2, 2 шаг
Открываем administration/news.php, находим:
Скачать исходники  Код
UPDATE ".DB_NEWS." SET news_subject='$news_subject',



заменяем на:
Скачать исходники  Код
UPDATE ".DB_NEWS." SET news_subject='$news_subject', news_source_url='$news_source_url', news_source_title='$news_source_title',



Потеряли news_source_title))
x1
 
Web
Alex
mishqa35, спасибо работает!
 
Web
GORDON
а скрин или реальный сайт дать, посмотреть как все это выглядит?
x1
 
Alex
на скрине админка
linkme.ufanet.ru/images/96ef0ad0e37c89f968eaa76cfd3e8583.jpg

как это выглядит в новости
x1
 
Web
yury
можно произвольный титл прописывать даже?
 
Alex
yury написал:

можно произвольный титл прописывать даже?


конечно!!! что напишите то и отобразиться
 
Web
KaBaN
Ребят, расскажите подробнее как сделать вывод только в полной новости? Что бы файл темы не ругался.
Изменил(а) KaBaN, 07.11.2016 17:41
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,167)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)