Блок новостей

Кто на сайте?

Всего на сайте: 4
Гостей: 2
Пользователи 0:
- отсутствуют
Роботы 2:
Arraycrawl Bot, Yandex Bot

Спонсоры

Правила публикации новостей размещены в категории "Правила". Последнее обновление - 6 июня 2010.
Автоматическая заливка картинок с фотохостингов и прочих сайтов на свой сайт. (DLE) E-mail
Категория: Информация | Опубликовал: Vid | Дата: 9-06-2010, 03:19
Предназначено для администраторов DLE-сайтов, которые задолбались просить, добавляющих новости постеров, заливать картинки и скрины ТОЛЬКО НА СВОЙ САЙТ!

Если у вас публикуют новость, заливая картинки на различные фото-хостинги, то данный МОД, при нажатии кнопки "отправить", автоматически загружает залитую картинку со стороннего сайта на ваш хостинг в папку uploads, наносит, если это необходимо, водяной знак на все изображения и изменяет ссылки в новостях на новые ссылки залитых картинок. Если картинка на удаленном хосте не существует, то новость отправляется снова на модерацию. Пока ссылка на несуществующую картинку не будет удалена, новость не опубликуется.
С данным модулем все картинки будут хранится только у вас на сайте.

Установка:

(Примечание: Во всех кодах комментарии автора мода сохранены.)

Открываем engine/classes/parse.class.php

Находим:
if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}


Ниже добавляем:
// added by afwollis start
require_once ENGINE_DIR . '/classes/thumb.class.php';
// added by afwollis end


Находим:
function process($source) {


Ниже добавляем:
// added by afwollis start
global $member_id;
require_once ENGINE_DIR.'/inc/image_function.php';
$i_control = new image_controller ();
$i_control->source = $source;
if ($config['allow_watermark'] == "yes")
{
    $i_control->allow_watermark = true;
    }
    $i_control->author = $member_id['name'];
    $i_control->process2 ();
    $source = $i_control->source;
// added by afwollis end



Открываем thumb.class.php


Открываем addnews.php


Открываем engine/inc/editnews.php

Находим:
if( $add_vote ) {


Выше добавляем:
// added by afwollis start
                $date_time = $i_control->prefix;
                $db->query("UPDATE " . PREFIX . "_images set news_id='$item_db[0]' where news_id = '0'");
                // added by afwollis start


Создаем файл image_function.php и заливаем его в engine/inc/

<?php
  class image_controller
  {
    var $img;
    var $source = '';
    var $allow_watermark = true;
    var $images = array ();
    var $thumbs = array ();
    var $prefix = '';
    var $upload_images = array ();
    function get_images ($content)
    {
    global $config;
    preg_match_all ('#\\[img\\](.+?)\\[/img\\]#ie', $content, $preg_array1);
    preg_match_all ('#\\[img(.*?)\\](.*?)\\[/img\\]#ie', $content, $preg_array2);

    /*
    $pattern1 = "#\[img\](.*?)\[\/img\]#ie";
    preg_match_all($pattern1, $content, $preg_array1, PREG_PATTERN_ORDER);
    $pattern2 = "#\[img(.*)\](.*?)\[\/img\]#ie";
    preg_match_all($pattern2, $content, $preg_array2, PREG_PATTERN_ORDER);
    $preg_array2[1] = $preg_array2[2];
    
    foreach($preg_array2[1] as $link)
    {
        $preg_array1[1][] = $link;
    }
    $preg_array = $preg_array1;
    
    print "$content<br /><pre>";
    print_r($preg_array);
    print "</pre>";
    die();
    */
    
    $preg_array2[1] = $preg_array2[2];
    
    foreach($preg_array2[1] as $link)
    {
        $preg_array1[1][] = $link;
    }
    $preg_array = $preg_array1;
    

$domain_name = $config['http_home_url'];
      if (count ($preg_array[1]) != 0)
      {
        foreach ($preg_array[1] as $item)
        {
    $item = str_replace("\\\"","",$item);
    $item = str_replace("\>","",$item);
    $item = str_replace("\/\>","",$item);
    $item = str_replace("\/ \>","",$item);
          if ((!(in_array ($item, $this->images))) and (!preg_match("!$domain_name!si",$item)))
          {
            $this->images[] = $item;
            continue;
          }
        }
      }
    }

    function download ($image_url)
    {
       global $db, $parse, $config;
      $image_name = basename ($image_url);
      $image_arr = explode ('/', $image_name);
      if (count ($image_arr) != 0)
      {
        $image_name = end ($image_arr);
      }
if (!is_dir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX)) {

@mkdir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX, 0777);
@chmod(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX, 0777);
@mkdir(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX."/thumbs", 0777);
@chmod(ROOT_DIR."/uploads/posts/".FOLDER_PREFIX."/thumbs", 0777);
}
$config_path_image_upload = 'uploads/posts/'.FOLDER_PREFIX.'/';

$image_name = $this->prefix . '_' . $image_name;
@copy ($image_url, UPLOAD_PATH . $image_name);

if (is_file(UPLOAD_PATH.$image_name))
    {
    $this->approve = "1";
    }
else
    {
    $this->approve = "0";
    }

//==== new place start

$this->state = true;
$this->img['format']=ereg_replace(".*\.(.*)$","\\1",UPLOAD_PATH . $image_name);
        $this->img['format']=strtoupper($this->img['format']);
        if ($this->img['format']=="JPG" || $this->img['format']=="JPEG") {
            $this->img['format']="JPEG";
            $this->img['src'] = @imagecreatefromjpeg (UPLOAD_PATH . $image_name);
        } elseif ($this->img['format']=="PNG") {
            $this->img['format']="PNG";
            $this->img['src'] = @imagecreatefrompng (UPLOAD_PATH . $image_name);
        } elseif ($this->img['format']=="GIF") {
            $this->img['format']="GIF";
            $this->img['src'] = @imagecreatefromgif (UPLOAD_PATH . $image_name);
        } else {
$this->state = false;
        }
        
if ($this->state and $this->img['src'] != "") {
      if ($this->allow_watermark) {
        $thumb = new thumbnail (UPLOAD_PATH . $image_name);
        $thumb->jpeg_quality ($config['jpeg_quality']);
        $thumb->insert_watermark ($config['max_watermark']);
        $thumb->save (UPLOAD_PATH . $image_name);
        unset ($thumb);
        }

          $thumb = new thumbnail (UPLOAD_PATH . $image_name);
          if ($thumb->size_auto($config['max_image']))
        {
          $thumb->jpeg_quality ($config['jpeg_quality']);
          $thumb->save (THUMB_PATH . $image_name);
          unset ($thumb);
        }
      }else{
            @unlink(UPLOAD_PATH . $image_name);
            return false;
        }
if (@file_exists(THUMB_PATH . $image_name)){
        $serv_image_url ="[thumb]".$config['http_home_url'] . $config_path_image_upload . $image_name."[/thumb]";
        $thumb_url= "[img]".$image_url."[/img]";

        $this->source = str_replace ($thumb_url, $serv_image_url, $this->source);
      }else{
      $serv_image_url = $config['http_home_url'] . $config_path_image_upload . $image_name;
      $this->source = str_replace ($image_url, $serv_image_url, $this->source);
            }
//==== new place end


//$news_id = 13;
if( intval( $_REQUEST['id'] ) ) $news_id = intval( $_REQUEST['id'] ); else $news_id = 0;
$added_time = $this->prefix;
$author = $this->author;
             $row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_images where news_id = '$news_id'");

                          if(!$row['count']) {
                            
                             $inserts = FOLDER_PREFIX."/".$image_name;
                             $db->query("INSERT INTO " . PREFIX . "_images (images, author, news_id, date) values ('$inserts', '$author', '$news_id', '$added_time')");
                          } else {
                $row = $db->super_query("SELECT images  FROM " . PREFIX . "_images where news_id = '$news_id'");

                             if ($row['images'] == "") $listimages = array();
                             else $listimages = explode("|||", $row['images']);
                             foreach ($listimages as $dataimages) {
                                if ($dataimages == FOLDER_PREFIX."/".$image_name) $error_image = "stop";
                             }
                             if ($error_image != "stop") {
                                $listimages[] = FOLDER_PREFIX."/".$image_name;
                                $row['images'] = implode("|||", $listimages);
                $db->query("UPDATE " . PREFIX . "_images set images='{$row['images']}' where news_id = '$news_id'");
    
                             }
                          }

}

    function process2 ()
    {
      $this->prefix = time()+ ($config['date_adjust']*60);
      if (trim ($this->source) != '')
      {
        $this->get_images ($this->source);
      }
      foreach ($this->images as $image_url)
      {
        $this->download ($image_url);
      }
    }
  }





  if (!(defined ('DATALIFEENGINE')))
  {
    exit ('Hacking attempt!');
  }

  define('FOLDER_PREFIX', date("Y-m"));
  define ('UPLOAD_PATH', ROOT_DIR."/uploads/posts/".FOLDER_PREFIX."/");
  define ('THUMB_PATH', UPLOAD_PATH . "thumbs/");

?>




ВСЕ! Благодарим автора мода и пользуемся!

Файлы исходного МОДа можно скачать здесь
Внимание! У вас нет прав для просмотра скрытого текста.
и тупо залить в соответствующие директории на своем хосте, но у меня с allmysoft.ru мод заработал криво - пришлось ручками проделать то, что я описал выше (свои исходные файлы addnews.php и thumb.class.php не трогал вообще). Тестировал на DLE 8.3 (МОД установлен на данном сайте).
not found
 
Другие новости по теме:

  • 0
 (голосов: 0)
Просмотров: 747 | Комментариев: 0