Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Добавление материалов

Добавление материалов


     25.01.2014    Все вопросы » Хаки    3708

вопрос
Всем привет!
Я не могу найди ни одного хака для упрошенного добавление материалов через addnews, верней один хак нашел но он стоит 12$ и у него много других функций которые мне не нужны. вот этот хак: http://nowheredev.ru/developments/php/78-dobavlenie-kartinok-i-faylov-v-novost-v40.html

Можете пожалуйста помочь с этим вопросом бесплатно?!
Нужно чтоб на странице добавления было всего три поля.
1. Для названия материала
2. Для вставки картинки через "Обзор"
3. Для текста

Нужно чтоб ссылка картинки заливалась сразу в доп.поле.

Ответил: estverum


Для начала, хотелось бы написать,что я использую шаблон своего сайта, поэтому Вам надо менять именно значения кода на свой, при это не затрагивая стили.

<div class="baseconet lcol">
    <div class="fortxtfull">
        <div class="ftitle">
            <div class="otitle">
                <h3 class="btl"><b>Добавить новость</b></h3>
            </div>
        </div>
        <div class="ftitle">
            <div class="otitle">
    <div class="baseform">    
        <table class="tableform">
            <tr>
                <td class="label">
                    Название:<span class="impot">*</span>
                </td>
                <td><input type="text" name="title" id="title" value="{title}" maxlength="150" class="f_input" />&nbsp;<input class="bbcodes" style="height: 22px; font-size: 11px;" title="Проверить похожие новости" onclick="find_relates(); return false;" type="button" value="Найти похожие" /><span id="related_news"></span></td>
            </tr>
            
            
            [group=1]
        [urltag]
            <tr>
                <td class="label">URL статьи:</td>
                <td><input type="text" name="alt_name" value="{alt-name}" maxlength="150" class="f_input" /></td>
            </tr>
        [/urltag]
            [/group]
             <tr>
            <td><input type="hidden" name="catlist[]" value="1"></td>
            </tr>
          
            [group=2]
            <tr>
                <td colspan="2">
                    <b>Деятельность: <span class="impot"></span></b> (Необязательно)
                    [not-wysywyg]
                    <div class="bb-editor">
                        
                        <textarea name="full_story" id="full_story" onfocus="setFieldName(this.name)" rows="20" class="f_textarea" >{full-story}</textarea>
                    </div>
                    [/not-wysywyg]
                    {fullarea}
                </td>
            </tr>
            [/group]
            <tr>
                <td colspan="2">
                    <b>Картинка:</b>(Необязательно)
                               [not-wysywyg]
                    <div class="bb-editor">
                        {bbcode}
                        <textarea name="short_story" id="short_story" onfocus="setFieldName(this.name)" rows="15" class="f_textarea" >{short-story}</textarea>
                    </div>
                    [/not-wysywyg]
                    {shortarea}
                </td>
            </tr>
{xfields}
            [group=1]
            <tr>
                <td class="label">Ключевые слова для облака тегов:</td>
                <td><input type="text" name="tags" id="tags" value="{tags}" maxlength="150"  class="f_input" autocomplete="off" /></td>
            </tr>
            [/group]
        [question]
        <tr>
            <td class="label">
                Вопрос:
            </td>
            <td>
                <div>{question}</div>
            </td>
        </tr>
        <tr>
            <td class="label">
                Ответ:<span class="impot">*</span>
            </td>
            <td>
                <div><input type="text" name="question_answer" class="f_input" /></div>
            </td>
        </tr>
        [/question]
            [sec_code]
            <tr>
                <td class="label">
                    Введите код<br />с картинки:<span class="impot">*</span>
                </td>
                <td>
                    <div>{sec_code}</div>
                    <div><input type="text" name="sec_code" id="sec_code" style="width:115px" class="f_input" /></div>
                </td>
            </tr>
            [/sec_code]
            [recaptcha]
            <tr>
                <td class="label">
                    Введите два слова, показанных на изображении:<span class="impot">*</span>
                </td>
                <td>
                    <div>{recaptcha}</div>
                </td>
            </tr>
            [/recaptcha]
            <tr>
                <td colspan="2" style="display:none;">{admintag}</td>
            </tr>
         </table>
                    <div class="fieldsubmit">
            <button name="add" class="fbutton" type="submit"><span>Опубликовать</span></button>
            <button name="nview" onclick="preview()" class="fbutton" type="submit"><span>Предосмотр</span></button>
        </div>
    </div>                
            </div>
        </div>
    </div>
</div>


Теперь разберем,что к чему из-того что есть в коде:
[group=2][/group] - скроет заполнение поля для гостей,админа и пользователей,кроме группы под id=2
[group=1][/group] - будет видно только админу.
Если Вы вообще не желаете видеть эти поля - удалите их начиная с самих тегов,от [group=Х] до [/group]

Для загрузки картинки используем поле Короткая новость(описание).
Для поля текст добавление через админку дополнительное поле со значением текст. Отключаем в этом поле использовать панель.

- использует по умолчанию категорию под id =1, так как Вы желаете чтобы добавлялось во все категории, может правда не сработать, но попробуйте продублировать их изменяя значение value="X", где Х - это Id категории. Если не прокатит, тогда придется включить выбор категории - {category}. Как заметили он находится в теге [group=2] ,я выше писал, что можете удалить все что находится в этих тегах,если их значение не надо...это поле не стоит удалять. Данный тег помогает скрыть его от глаз гостей и пользователей(кстати, я пишу гости, потому что у меня на сайте гости могут добавлять новости). Если будете использовать {category}, тогда надо сам тег [group=2]убрать и его закрывающую.

Теперь переходим к файлу engine/modules/bbcode.php и заменяем на этот код все что там есть

<?PHP
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004,2013 SoftNews Media Group
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: bbcode.php
-----------------------------------------------------
Назначение: подключение основных компонентов
=====================================================
*/

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

$i = 0;
$output = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tr>";

$smilies = explode(",", $config['smilies']);
$count_smilies = count($smilies);

foreach($smilies as $smile)
{
   $i++; $smile = trim($smile);

   $output .= "<td style=\"padding:2px;\" align=\"center\"><a href=\"#\" onclick=\"dle_smiley(':$smile:'); return false;\"><img style=\"border: none;\" alt=\"$smile\" src=\"".$config['http_home_url']."engine/data/emoticons/$smile.gif\" /></a></td>";

    if ($i%4 == 0 AND $i < $count_smilies) $output .= "</tr><tr>";

}

$output .= "</tr></table>";

if (isset($addtype) AND $addtype == "addnews") {

   $startform = "short_story";
   $addform = "document.entryform";

   $add_id = (isset($_REQUEST['id'])) ? intval($_REQUEST['id']) : '';
   $p_name = urlencode($member_id['name']);

   if ($is_logged OR ($user_group[$member_id['user_group']]['allow_image_upload'] OR $user_group[$member_id['user_group']]['allow_file_upload']) )
   {
      $image_upload = "<b id=\"b_up\" class=\"bb-btnph\" onclick=\"dle_image_upload( '{$p_name}', '{$add_id}' ); return false;\" title=\"Загрузить фото\">{$lang['bb_t_up']}</b>";
   }
   else {$image_upload = "";}

$code = <<<HTML
<div class="bb-pane" onmouseenter="if(is_ie9) get_sel(eval('fombj.'+ selField));">
{$image_upload}
</div>
<div id="dle_emos" style="display: none;" title="{$lang['bb_t_emo']}"><div style="width:100%;height:100%;overflow: auto;">{$output}</div></div>
HTML;

}
else {

  $startform = "comments";
  $addform = "document.getElementById( 'dle-comments-form' )";
  $add_id = false;

   if ($user_group[$member_id['user_group']]['allow_url'])
   {
      $url_link = "<b id=\"b_url\" class=\"bb-btn\" onclick=\"tag_url()\" title=\"{$lang['bb_t_url']}\">{$lang['bb_t_url']}</b><b id=\"b_leech\" class=\"bb-btn\" onclick=\"tag_leech()\" title=\"{$lang['bb_t_leech']}\">{$lang['bb_t_leech']}</b>";
   }
   else $url_link = "";

   if ($user_group[$member_id['user_group']]['allow_image'])
   {
      $image_link = "<b id=\"b_img\" class=\"bb-btn\" onclick=\"tag_image()\" title=\"{$lang['bb_b_img']}\">{$lang['bb_b_img']}</b>";
   }
   else $image_link = "";

$code = <<<HTML
<div class="bb-editor">
<div class="bb-pane" onmouseenter="if(is_ie9) get_sel(eval('fombj.'+ selField));">

<span class="bb-sep">|</span>
<b id="b_left" class="bb-btn" onclick="simpletag('left')" title="{$lang['bb_t_l']}">{$lang['bb_t_l']}</b>
<b id="b_center" class="bb-btn" onclick="simpletag('center')" title="{$lang['bb_t_c']}">{$lang['bb_t_c']}</b>
<b id="b_right" class="bb-btn" onclick="simpletag('right')" title="{$lang['bb_t_r']}">{$lang['bb_t_r']}</b>
<span class="bb-sep">|</span>
<b id="b_emo" class="bb-btn" onclick="ins_emo(this)" title="{$lang['bb_t_emo']}">{$lang['bb_t_emo']}</b>
{$url_link}
{$image_link}
<b id="b_color" class="bb-btn" onclick="ins_color(this)" title="{$lang['bb_t_color']}">{$lang['bb_t_color']}</b>
<span class="bb-sep">|</span>
<b id="b_hide" class="bb-btn" onclick="simpletag('hide')" title="{$lang['bb_t_hide']}">{$lang['bb_t_hide']}</b>
<b id="b_quote" class="bb-btn" onclick="simpletag('quote')" title="{$lang['bb_t_quote']}">{$lang['bb_t_quote']}</b>
<b id="b_tnl" class="bb-btn" onclick="translit()" title="{$lang['bb_t_translit']}">{$lang['bb_t_translit']}</b>
<b id="b_spoiler" class="bb-btn" onclick="simpletag('spoiler')" title="{$lang['bb_t_spoiler']}">{$lang['bb_t_spoiler']}</b>
</div>
<div id="dle_emos" style="display: none;" title="{$lang['bb_t_emo']}"><div style="width:100%;height:100%;overflow: auto;">{$output}</div></div>
<textarea name="comments" id="comments" cols="70" rows="10" onfocus="setNewField(this.name, document.getElementById( 'dle-comments-form' ))">{text}</textarea>
</div>
HTML;
}

if ( isset($allow_subscribe) AND $allow_subscribe ) $code .= "<br /><input type=\"checkbox\" name=\"allow_subscribe\" id=\"allow_subscribe\" value=\"1\" /><label for=\"allow_subscribe\">&nbsp;" . $lang['c_subscribe'] . "</label><br />";

$js_array[] = "engine/classes/js/bbcodes.js";

$image_align = array ();
$image_align[$config['image_align']] = "selected";


$bb_code = <<<HTML
<script type="text/javascript">
<!--
var text_enter_url       = "$lang[bb_url]";
var text_enter_size       = "$lang[bb_flash]";
var text_enter_flash       = "$lang[bb_flash_url]";
var text_enter_page      = "$lang[bb_page]";
var text_enter_url_name  = "$lang[bb_url_name]";
var text_enter_page_name = "$lang[bb_page_name]";
var text_enter_image    = "$lang[bb_image]";
var text_enter_email    = "$lang[bb_email]";
var text_code           = "$lang[bb_code]";
var text_quote          = "$lang[bb_quote]";
var text_upload         = "$lang[bb_t_up]";
var error_no_url        = "$lang[bb_no_url]";
var error_no_title      = "$lang[bb_no_title]";
var error_no_email      = "$lang[bb_no_email]";
var prompt_start        = "$lang[bb_prompt_start]";
var img_title           = "$lang[bb_img_title]";
var email_title          = "$lang[bb_email_title]";
var text_pages          = "$lang[bb_bb_page]";
var image_align          = "{$config['image_align']}";
var bb_t_emo              = "{$lang['bb_t_emo']}";
var bb_t_col              = "{$lang['bb_t_col']}";
var text_enter_list     = "{$lang['bb_list_item']}";
var text_alt_image      = "{$lang['bb_alt_image']}";
var img_align              = "{$lang['images_align']}";
var img_align_sel          = "<select name='dleimagealign' id='dleimagealign' class='ui-widget-content ui-corner-all'><option value='' {$image_align[0]}>{$lang['images_none']}</option><option value='left' {$image_align['left']}>{$lang['images_left']}</option><option value='right' {$image_align['right']}>{$lang['images_right']}</option><option value='center' {$image_align['center']}>{$lang['images_center']}</option></select>";

var selField  = "{$startform}";
var fombj    = {$addform};
-->
</script>
{$code}
HTML;
?>


Что это дает? У Вас в форме bbcode появится только одна кнопка - загрузить(картинка в виде папки) можете поменять на свою картинку подправив стиль. Если у Вас уже были проведены до этого какие то манипуляции, тогда то Вам придется сравнивать и заменять соответственно,чтобы не задеть другие правки.

Внимание!!! Даная манипуляция с файлом bbcode.php удалите Вашу панель с изображениями при добавлении статей в поле короткая и полная новость, панель для комментариев останется.

После всего необходимо выбрать в админке Использовать редактор при добавлении новости с сайта BB CODE
Все вроде!
Не забудьте сделать резервную копию заменяемых файлов.

5 комментариев

ПафНутиЙ
Админ

ПафНутиЙ - 25 января 2014 23:10 -

Да, есть один способ - сделать самостоятельно.

Каков вопрос - таков и ответ. Просто помните об этом.

estverum
Юзер

estverum - 26 января 2014 14:23 -

Это просто. Вечером могу скинуть код. Только напишите id категорий в которую надо публиковать.

edik8305
Юзер

edik8305 - 26 января 2014 17:49 -

Спасибо буду очень благодарен.
Нужно чтоб во всех категориях публиковалось!

estverum
Юзер

estverum - 27 января 2014 02:59 -

PS Данный код не добавился почему то в ответ
<input type="hidden" name="catlist[]" value="1">
- использует по умолчанию категорию под id =1, так как Вы желаете чтобы добавлялось во все категории, ....дальше по тексту

estverum
Юзер

estverum - 27 января 2014 03:09 -

Как альтернативу(этот метод для проб) можно попробовать включить в дополнительном поле "Несколько строк" использовать панель BBCODE, а в админке в настройках использования редактора для добавления новости с сайта выбрать другой редактор,кроме BBCODE

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх