Предоставляем срочную помощь по DLE, пишем эксклюзивные модули для вашего проекта, парсеры грабберы, исправляем базу данных, удаляем вирусы редиректы, обновляем скрипты, помощь с переездом на другой хостинг, перенос домена, большой опыт работы с высоконагруженными проектами, защита ddos атаки, ботов и спама, оптимизация модулей и серверов дле, более 10 лет работы, тысячи модификаций и доработок, короткие сроки, дорого, качественно. telegram: @histoo

[Решено] Добавление участников в приватную тему

  1. Онлайн

    Grey

    Администраторы

    Сообщений: 2130

    Исправление функции добавления участников в приватную тему, функция вообще не была дописана, видимо вы юзера торопили белого, всё хотели новый релиз, никогда не торопите кодеров! Пришлось дописывать самому.


    В файле: /engine/bullet_energy/action/site/editor.php

    Найдите:
    private function _privateParamTopic()
    {
    ...
    }


    Замените на:
    private function _privateParamTopic()
      {
        if(empty(parent::$globalParam['id']) or !parent::$is_logged) {
          return parent::$helper->getError() ;
        }
        parent::$db->query("SELECT * FROM " . DBNAME . "." . PREFIX . "_be_topic WHERE id = " . parent::$globalParam['id']) ;
        $row = parent::$db->get_row() ;
        
        if(!parent::$helper->ckeckModulesConfig('be_ts_add_private') and parent::$helper->checkModerator($row['id_parent']) or !$row) {
          return parent::$helper->getError() ;
        }
    
    
        if( empty($_REQUEST['is_param']) ) {
        // Старая функция вывода таблицы редактирования
        $row['topic_private_user'] = unserialize($row['topic_private_user']) ;
            //sort($row['topic_private_user']['full_array']) ;
            
        foreach ($row['topic_private_user']['full_array'] as $key => $value) {
          if($row['autor_id'] != $value['id']) {
            $value['marker'] = '<a class="deleteUser" onclick="userDeleteTopicPrivate(' . parent::$globalParam['id'] . ',' . $key . '); return false;" href="#">[X]</a>' ;
          }
          $row['listUser'][] = '<li id="listElement-' . $key . '">' . parent::$link->card_user(array($value['name'], $value['id'])) . $value['name'] . '</a>' . $value['marker'] . '</li>' ;
        }
        
        $row['listUser'] = '<ul>' . implode(', ', $row['listUser']) . '</ul>' ;
        return parent::$helper->getJson(array('param' => 1, 'titl'=>parent::$bullet_energy_lang['topic_144'],'data' => '<div class="paramBox"><label for="is_private"><input type="checkbox" checked="checked" name="is_private" value="1" id="is_private">' . parent::$bullet_energy_lang['ptopic_0'] . '</label></div><div class="paramBox"><p>' . parent::$bullet_energy_lang['ptopic_1'] . '</p><input style="width:467px!important" type="text" id="new_private_user" name="new_private_user" value=""></div><div class="userPrivateBlock"><p>' . parent::$bullet_energy_lang['ptopic_3'] . '</p>' . $row['listUser'] . '</div><i style="color:red;font-size:11px">' . parent::$bullet_energy_lang['ptopic_2'] . '[/i]<input type="hidden" name="id_topic" value="' . $row['id'] . '">')) ;
        }
        //        
        
        elseif ($_REQUEST['is_param'] == 'save') {
        
          if((int)$_REQUEST['status'] != $row['topic_type']) {
            parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_type = 0, topic_private_user = '' WHERE id = " . parent::$globalParam['id']) ;
            return parent::$helper->getJson(array('param' => 1)) ;
          }
          
          $row['topic_private_user'] = unserialize($row['topic_private_user']) ;
            //sort($row['topic_private_user']['full_array']) ;
          
          $_REQUEST['user_new'] = parent::$helper->convert_unicode($_REQUEST['user_new'], parent::$config['DLE']['charset']) ;
          $_REQUEST['user_new'] = explode(',', trim(strip_tags($_REQUEST['user_new']) ) ) ;
          foreach ($_REQUEST['user_new'] as $key => $value) {
            $value = trim($value) ;
            if(!$value) {
              continue ;
            }
            
            $value = parent::$db->safesql($value) ;
            $is = parent::$db->super_query("SELECT user_id, name FROM " . DBNAME . "." . PREFIX . "_users WHERE name = '{$value}'") ;
            
    //      var_dump($row);
            if(!$is['user_id'] or in_array($is['user_id'], $row['topic_private_user']['array']) ) {
              continue ;
            }
            
            $row['marker'] = true ;
            $is['user_id'] = (int)$is['user_id'] ;
            $row['topic_private_user']['array'][] = $is['user_id'] ;
            $row['topic_private_user']['full_array'][] = array('id' => $is['user_id'], 'name' => $is['name']) ;
            unset($is) ;
          }
          if($row['marker']) {
            //sort($row['topic_private_user']['full_array']) ;
            foreach ($row['topic_private_user']['full_array'] as $key => $value) {
              if($row['autor_id'] != $value['id']) {
                $value['marker'] = '<a class="deleteUser" onclick="userDeleteTopicPrivate(' . parent::$globalParam['id'] . ',' . $key . '); return false;" href="#">[X]</a>' ;
              }
              $row['listUser'][] = '<li id="listElement-' . $key . '">' . parent::$link->card_user(array($value['name'], $value['id'])) . $value['name'] . '</a>' . $value['marker'] . '</li>' ;
            }
            $row['listUser'] = '<ul>' . implode(', ', $row['listUser']) . '</ul>' ;
            $row['topic_private_user'] = parent::$db->safesql(serialize($row['topic_private_user'])) ;
            parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_private_user = '{$row['topic_private_user']}' WHERE id = " . parent::$globalParam['id']) ;
            return parent::$helper->getJson(array('param' => 1, 'data' => $row['listUser'])) ;
          } else {
            return parent::$helper->getError(parent::$bullet_energy_lang['ptopic_4']) ;
          }
        } elseif ($_REQUEST['is_param'] == 'remove') {
          $_REQUEST['user'] = (int)$_REQUEST['user'] ;
          
          $row['topic_private_user'] = unserialize($row['topic_private_user']) ;
         
          if(isset($row['topic_private_user']['full_array'][$_REQUEST['user']]['id']) and in_array($row['topic_private_user']['full_array'][$_REQUEST['user']]['id'], $row['topic_private_user']['array'])) {
          
            $row['topic_private_user']['array'] = array_flip($row['topic_private_user']['array']) ;
            unset($row['topic_private_user']['array'][$row['topic_private_user']['full_array'][$_REQUEST['user']]['id']]) ;
            $row['topic_private_user']['array'] = array_flip($row['topic_private_user']['array']) ;
            
            
            
            unset($row['topic_private_user']['full_array'][$_REQUEST['user']]) ;
            
            //sort($row['topic_private_user']['full_array']) ;
            
            foreach ($row['topic_private_user']['full_array'] as $key => $value) {
              if($row['autor_id'] != $value['id']) {
                $value['marker'] = '<a class="deleteUser" onclick="userDeleteTopicPrivate(' . parent::$globalParam['id'] . ',' . $key . '); return false;" href="#">[X]</a>' ;
              }
              $row['listUser'][] = '<li id="listElement-' . $key . '">' . parent::$link->card_user(array($value['name'], $value['id'])) . $value['name'] . '</a>' . $value['marker'] . '</li>' ;
            }
            $row['listUser'] = '<ul>' . implode(', ', $row['listUser']) . '</ul>' ;
            //
            
            //
            $row['topic_private_user'] = parent::$db->safesql(serialize($row['topic_private_user'])) ;
            parent::$db->query("UPDATE " . DBNAME . "." . PREFIX . "_be_topic SET topic_private_user = '{$row['topic_private_user']}' WHERE id = " . parent::$globalParam['id']) ;
            return parent::$helper->getJson(array('param' => 1, 'data' => $row['listUser'])) ;
          } else {
            return parent::$helper->getError() ;
          }
        }
      }


    В файле: /templates/ваш шаблон/bullet_energy/js/base_site_bullet_energy.js

    Найти функцию:
    function userDeleteTopicPrivate(a, b) {
    ...
    }


    Заменить на:
    function userDeleteTopicPrivate(a, b) {
    	Ajax_Loading("");
    	if (forum_cpu) {
    		var c = dle_root + forum_path + "/set/param_private_topic"
    	}
    	else {
    		var c = dle_root + "index.php?do=" + forum_path + "&action=set¶m=param_private_topic"
    	}
    	$.post(c, {
    		id: a,
    		user: b,
    		is_param: "remove"
    	}, function(a) {
    		if (a.param == 1) {
    			$(".userPrivateBlock ul").replaceWith(a.data);
    		}
    		Ajax_close("")
    	}, "json")
    }


    Тут у нас всё. Теперь новых участников можно добавлять и удалять нормально полноценно через ajax.
    Сообщение отредактировал Grey 18 сентября 2014 - 19:40

    сделаю любой модуль dle на заказ, если вам нужны услуги по dle
    скaйп rdn-team.com
    телегрaм @histoo

    5 августа 2013 - 04:01 / #1
  2. Онлайн

    Grey

    Администраторы

    Сообщений: 2130

    перезалил аттач

    Вложения:

    1. 1375677073privacyfix.r2.rar

      Размер файла:
      1,92 Kb
      Скачиваний:
      385

    сделаю любой модуль dle на заказ, если вам нужны услуги по dle
    скaйп rdn-team.com
    телегрaм @histoo

    18 сентября 2014 - 19:40 / #2
Модераторы форума: greyPowered by Bullet Energy Forum