------ -----------------
------------------

Кто знает как исправить?

Тема в разделе "Хаки", создана пользователем AnimeWars, 14 мар 2014.

  1. AnimeWars

    AnimeWars Новичек

    24
    0
    Есть во такой хак загрузки постеров при додавании новости


    Инструкция добавления картинок и файлов в новость для ДЛЕ 9.8 (Другие версии нужно проверять самостоятельно!):

    Делаем все в точности, файл за файлом и юудет Вам счастье.

    Файл addnews.php

    Меняем строку
    $script .= "";
    На строку
    $script .= "";


    В конце файла перед закрытием тега пхп >? вставляем этот код (Читайте коментарии к коду, там есть ограничения по формату загружаемых файлов):


    //Загрузка картинок
    $imags_id=0;
    $idpost = $row['id'];
    while ($imags_idsuper_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );
    if( ! $row['count'] ) {
    $added_time = time() + ($config['date_adjust'] * 60);
    $inserts = FOLDER_PREFIX . "/" . $file_prefix . $image_name;
    $db->query( "INSERT INTO " . PREFIX . "_images (images, author, news_id, date) values ('$inserts', '{$member_id[name]}', '$idpost', '$added_time')" );
    } else {
    $row = $db->super_query( "SELECT images FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );
    if( $row['images'] == "" ) $listimages = array ();
    else $listimages = explode( "|||", $row['images'] );
    foreach ( $listimages as $dataimages ) {
    if( $dataimages == FOLDER_PREFIX . "/" . $file_prefix . $image_name ) $error_image = "stop";
    }
    if( $error_image != "stop" ) {
    $listimages[] = FOLDER_PREFIX . "/" . $file_prefix . $image_name;
    $row['images'] = implode( "|||", $listimages );
    $db->query( "UPDATE " . PREFIX . "_images set images='{$row['images']}' where author = '{$member_id[name]}' AND news_id = '$idpost'" );
    }
    }
    if( @file_exists( ENGINE_DIR . '/classes/thumb.class.php' ) ) {
    include_once ENGINE_DIR . '/classes/thumb.class.php';
    } else (include_once ENGINE_DIR . '/inc/makethumb.php');
    $tumb_ok = false;
    $_POST['make_thumb'] = true;
    $_POST['make_watermark'] = $config['allow_watermark'];
    if( isset( $_POST['make_thumb'] ) ) {
    $thumb = new thumbnail( $config_path_image_upload . $file_prefix . $image_name );
    if( $thumb->size_auto( $config['max_image'], $_POST['t_seite'] ) ) {
    $thumb->jpeg_quality( $config['jpeg_quality'] );
    if( $config['allow_watermark'] == "yes" and $_POST['make_watermark'] == "yes" ) $thumb->insert_watermark( $config['max_watermark'] );
    $thumb->save( $config_path_image_upload . "thumbs/" . $file_prefix . $image_name );
    }
    if( @file_exists( $config_path_image_upload . "thumbs/" . $file_prefix . $image_name ) ) $tumb_ok = true;
    @chmod( $config_path_image_upload . "thumbs/" . $file_prefix . $image_name, 0666 );
    }
    $config['max_up_side'] = intval( $config['max_up_side'] );
    if( ($config['allow_watermark'] == "yes" and $_POST['make_watermark'] == "yes") or $config['max_up_side'] ) {
    $thumb = new thumbnail( $config_path_image_upload . $file_prefix . $image_name );
    $thumb->jpeg_quality( $config['jpeg_quality'] );
    if( $config['max_up_side'] ) $thumb->size_auto( $config['max_up_side'] );
    if( $config['allow_watermark'] == "yes" and $_POST['make_watermark'] == "yes" ) $thumb->insert_watermark( $config['max_watermark'] );
    $thumb->save( $config_path_image_upload . $file_prefix . $image_name );
    }
    }
    }

    }
    }
    //Загрузка файла
    $row['id'] = $idpost; // Создает копию id новости, нужна в случаи если мы загружаем и файл и картинку
    $allowed_files = array ("torrent"); // ВАЖНО! этот код отвечает за добавление файлов с нужным нам разширением. Укажите форматы через запятую. Например: $allowed_files = array ("torrent", "rar", "png");
    if (isset($_FILES['file_add']) && $_FILES['file_add']!='') { //Проверяем существует ли поле добавление файла

    $file_prefix = time() + rand( 1, 100 ); // Создаем префикс файла на основе времени и случайного числа, нужно чтоб название файлов были уникальны
    $file_prefix .= "_";
    define( 'FOLDER_PREFIX', date( "Y-m" ) );

    if( ! is_dir( ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX ) ) { //Если нет папки для загрузки файлов, то создаем ее
    @mkdir( ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX, 0777 );
    @chmod( ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX, 0777 );
    }

    $config_path_file_upload = ROOT_DIR . "/uploads/files/" . FOLDER_PREFIX . "/"; // Переменная пути папки для фалов
    $folder_prefix .= FOLDER_PREFIX . "/";
    $current_file = 'file_add';
    $file = $_FILES[$current_file]['tmp_name'];
    $file_name = $_FILES[$current_file]['name'];
    $image_size = $_FILES[$current_file]['size'];
    $error_code = $_FILES[$current_file]['error'];

    $file_name_arr = explode( ".", $file_name );
    $type1 = totranslit( end( $file_name_arr ) );
    if( $file_name != "" ) {
    $curr_key1 = key( $file_name_arr );
    unset( $file_name_arr[$curr_key1] );
    $file_name = totranslit( implode( ".", $file_name_arr ) ) . "." . $type1;
    }

    if ( in_array( strtolower( $type1 ), $allowed_files) ) { // Проверяем формат файлов

    @move_uploaded_file( $file, $config_path_file_upload . $file_prefix . $file_name ); // Копируем файлы в папку

    if( @file_exists( $config_path_file_upload . $file_prefix . $file_name ) ) { //Если файлы найдены идем дальше

    if( intval( $config['max_file_size'] ) and @filesize( ROOT_DIR . "/uploads/files/" . $file_prefix . $file_name ) > ($config['max_file_size'] * 1024) ) { // Проверяем размер файлов
    @unlink( ROOT_DIR . "/uploads/files/" . $file_prefix . $file_name );

    } else {
    @chmod( ROOT_DIR . "/uploads/files/" . $file_prefix . $file_name, 0666 );
    $img_result .= "$file_name -> $lang[files_upok]
    ";
    $added_time = time() + ($config['date_adjust'] * 60);

    $db->query( "INSERT INTO " . PREFIX . "_files (news_id, name, onserver, author, date) values ('{$row['id']}', '$file_name', '{$folder_prefix}{$file_prefix}{$file_name}', '{$member_id[name]}', '$added_time')" ); // Добавляем в базу данных путь к загруженным файлам

    }
    }
    }
    }


    В файле addnews.tpl добавляем это в нужном нам месте (Этот код отвечает за вывод кнопок добавления картинок и файла через форму добавдения новости):

    Основной скриншот: Без логотипов других сайтов





    Дополнительные скриншоты: Без логотипов других сайтов







    Торрент файл: Файлы торрентов должны быть рабочими!





    Смотрите внимательно, атрибут accept="" в теге input выполняет роль ограничения по формату файлов, если Вам нужно загружать не торрент файл - ставте свой формат.

    Далее настроим вывод картинок и файлов в полной новости. Идем в файл showfull.php
    Перед строкой
    while ( $related = $db->get_row() ) {
    Вставляем этот код:
    /*Вывод картинки*/
    $sql_result2 = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}'" );
    $poster = $db->get_row($sql_result2);
    if ($poster['images'] != "") {
    $scrsList = explode('|||',$poster['images']);
    $scrs = '';
    $cntscrs = count($scrsList);
    $ai = 0;

    foreach ($scrsList as $scr)
    {
    $ai++;
    $scr = trim($scr);
    $poster_temp = explode("/",$scr);
    $poster_name = $poster_temp[1];
    $poster_data = substr($scr,0,8);

    if( @file_exists( ROOT_DIR.'/uploads/posts/'.$poster_data.'thumbs/'.$poster_name ) ){
    $_POST['poster_'.$ai] = set ( '{news_and_files}', $scrs);

    } else {
    $tpl->set ( '{news_and_files}', "");
    }
    ////////Вставка ссылки файла


    Далее в файле файле fullstory.tpl добавляем код, чтоб видеть наши скрины и файлы в полной новости:
    В начале файла вставляем это (Этот скрипт нужен для дополнительных картинок, чтоб у них был спойлер, можно его и не писать):


    function toggle() {
    var ele = document.getElementById("toggleText");
    var text = document.getElementById("displayText");
    if(ele.style.display == "block") {
    ele.style.display = "none";
    text.innerHTML = "Дополнительные скриншоты";
    }
    else {
    ele.style.display = "block";
    text.innerHTML = "Дополнительные скриншоты";
    }
    }


    После {full-story} добавляем это:

    {news_and_files}

    Дополнительные скриншоты


    {poster2}

    {poster3}

    {poster4}



    Перед {full-story} вставляем это:
    {poster1}


    Переходим к файлу show.short.php
    Тут ищем строку
    if( isset($view_template) AND $view_template == "rss" ) {
    И перед ней вставляем код:
    /*Вывод картинки*/
    $sql_result2 = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}'" );
    $poster = $db->get_row($sql_result2);
    $_POST['poster_1'] = ''; /*http://imagename.ru/noimages.jpg заменяем данную ссылку на вашу ссылку на картинку*/
    if ($poster['images'] != "") {
    $scrsList = explode('|||',$poster['images']);
    $scrs = '';
    $cntscrs = count($scrsList);
    $ai = 0;

    foreach ($scrsList as $scr)
    {
    $ai++;
    $scr = trim($scr);
    $poster_temp = explode("/",$scr);
    $poster_name = $poster_temp[1];
    $poster_data = substr($scr,0,8);

    if( @file_exists( ROOT_DIR.'/uploads/posts/'.$poster_data.'thumbs/'.$poster_name ) ){
    $_POST['poster_'.$ai] =
     
  2. a-droid

    a-droid Новичек

    4.197
    0
  3. AnimeWars

    AnimeWars Новичек

    24
    0

Поделиться этой страницей