1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.

Безопасное и полное удаление плагинов - теперь это возможно!!!

Discussion in 'Прочая Поддержка - Help Requests' started by aj7r, Jun 18, 2010.

?

Какие функции нужны в "удалялках"

Выбор что адалять, а что нет 49 vote(s) 73.1%
Удаление файлов 35 vote(s) 52.2%
Всё нужное и так есть 10 vote(s) 14.9%
Multiple votes are allowed.
  1. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    <a href='./delete_{$plugins_installed[installed_loop].plugin_type}.php'>{lang_print id=175}</a>

    это в admin_plaguns.tpl?
    выложи код admin_plagins.php
  2. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Листинг файлов:
    templates/admin_viewplugins.tpl
    PHP:
    ...
    ...

          <
    div style='margin-top: 7px;'>
            {if 
    $plugins_installed[installed_loop].plugin_version_ready $plugins_installed[installed_loop].plugin_version}
              <
    a href='admin_viewplugins.php?install={$plugins_installed[installed_loop].plugin_type}'>{lang_print id=1111}</a> |
            {elseif 
    $plugins_installed[installed_loop].plugin_version_avail $plugins_installed[installed_loop].plugin_version}
              <
    a href='http://www.socialengine.net/login.php' target='_blank'>{lang_print id=1112}</a> |
            {/if}
            {if 
    $plugins_installed[installed_loop].plugin_disabled}
              <
    a href='admin_viewplugins.php?enable={$plugins_installed[installed_loop].plugin_type}'>{lang_print id=1200}</a>
            {else}
              <
    a href='admin_viewplugins.php?disable={$plugins_installed[installed_loop].plugin_type}'>{lang_print id=1201}</a>
            {/if}
    {* 
    вот новая ссылка на удаление *}
             <
    span style='float:right;'><a href='admin_delete_plugin.php'>{lang_print id=175</a</span>
          </
    div>
        </
    td>
      </
    tr>
    </
    table>
    </
    li>
    {/
    section}

    </
    ul>

    {include 
    file='admin_footer.tpl'}
    admin/admin_delete_plugin.php
    PHP:
    <?php

    /* $Id: admin_faq.php 8 2009-01-11 06:02:53Z john $ */

    $page "admin_delete_plugin";
    include 
    "admin_header.php";

    $task = ( isset($_POST['task']) ? $_POST['task'] : ( isset($_GET['task']) ? $_GET['task'] : NULL ) );
    $order = ( isset($_POST['order']) ? $_POST['order'] : ( isset($_GET['order']) ? $_GET['order'] : NULL ) );



    // GET INSTALLED PLUGINS
    $plugins_installed = Array();
    $plugin_types = Array();
    $plugins $database->database_query("SELECT * FROM se_plugins ORDER BY plugin_order ASC");
    while(
    $plugin_info $database->database_fetch_assoc($plugins)) {

      
    // CHECK FOR INSTALL FILE
      
    $plugin_version_ready "";
      if(
    file_exists("./install_$plugin_info[plugin_type].php")) {
        include 
    "./install_$plugin_info[plugin_type].php";
        
    $plugin_version_ready $plugin_version;
      }

      
    // SET PLUGIN ARRAYS
      
    $plugin_types[] = "install_$plugin_info[plugin_type].php";
      
    $plugins_installed[] = Array('plugin_name' => $plugin_info[plugin_name],
                    
    'plugin_version' => $plugin_info[plugin_version],
                    
    'plugin_type' => $plugin_info[plugin_type],
                    
    'plugin_desc' => $plugin_info[plugin_desc],
                    
    'plugin_icon' => $plugin_info[plugin_icon],
                    
    'plugin_disabled' => $plugin_info[plugin_disabled],
                    
    'plugin_version_avail' => $versions[$plugin_info[plugin_type]],
                    
    'plugin_version_ready' => $plugin_version_ready);
    }


    // BEGIN READY-TO-INSTALL PLUGIN ARRAY
    $plugins_ready = Array();

    // FIND INSTALL FILES
    if($dh opendir("./")) {
      while((
    $file readdir($dh)) !== false) {
        if(
    $file != "." && $file != "..") {
          if(
    strpos($file"install_") === && !in_array($file$plugin_types)) {
            include 
    "./$file";
        
    $plugins_ready[] = Array('plugin_name' => $plugin_name,
                    
    'plugin_version' => $plugin_version,
                    
    'plugin_type' => $plugin_type,
                    
    'plugin_desc' => $plugin_desc,
                    
    'plugin_icon' => $plugin_icon);
          }
        }
      }
      
    closedir($dh);
    }


    // ASSIGN VARIABLES AND SHOW ADMIN VIEW PLUGINS PAGE
    $smarty->assign('plugins_ready'$plugins_ready);
    $smarty->assign('plugins_installed'$plugins_installed);
    $smarty->assign('versions'$versions);

    include 
    "admin_footer.php";
    ?>
    templates/admin_delete_plugin.tpl
    PHP:
    {include file='admin_header.tpl'}

    {* 
    $Idadmin_chat.tpl 6 2009-01-11 06:01:29Z john $ *}

    <
    h2>Удаление плагинов</h2>
    Эти плагины установлены у Вас на сайте и могут быть удаленыЕсли Вы не уверены нажмите <b>"Назад"</b>.<br />
    При удалении плагина очищается только БД от следов плагинаФайлы надо будет удалять вручную.
    <
    br />
    <
    br />

    {* LIST 
    INSTALLED PLUGINS *}
    <
    ul style="list-style:none; padding: 0; margin: 0;" id="SEPluginsList">

    {
    section name=installed_loop loop=$plugins_installed}
    <
    li id="SEPluginList_{$plugins_installed[installed_loop].plugin_type}">
    <
    table width='100%' cellpadding='0' cellspacing='0' class='stats' style='margin-bottom: 10px;'>
      <
    tr>
        <
    td class='plugin'>
          <
    table cellpadding='0' cellspacing='0' width="100%">
            <
    tr>
              <
    td width="20"><img src='../images/icons/{$plugins_installed[installed_loop].plugin_icon|default:"admin_plugins16.gif"}' border='0' class='icon2'></td>
              <
    td class='plugin_name'>{$plugins_installed[installed_loop].plugin_namev{$plugins_installed[installed_loop].plugin_version}</td>
              <
    td align="right">
              <
    a href='admin_viewplugins.php'>{lang_print id=487}</a>&nbsp;&nbsp;&nbsp;<img src="../images/icons/back16.gif" />
              &
    nbsp;&nbsp;&nbsp;
              <
    a href='/delete_{$plugins_installed[installed_loop].plugin_type}.php'>{lang_print id=175}</a>&nbsp;&nbsp;&nbsp;<img src="../images/icons/action_delete2.gif" />
              </
    td>
            </
    tr>
          </
    table>
        </
    td>
      </
    tr>
    </
    table>
    </
    li>
    {/
    section}



    {include 
    file='admin_footer.tpl'}
    Походу надо в "Удаляльных" файлах проверку делать, может вместо include "header.php"; надо include "admin_header.php"; вот листинг delete_radcodes.php для удаления radcodes:
    PHP:
    <?php
    include "header.php";

    $plugin_type "radcodes";

    $query mysql_query("DELETE FROM se_plugins WHERE plugin_type='$plugin_type'");
    if (
    $query) {
        echo 
    "Данные из se_plugins удалены<br>";
    } else {
        echo 
    "Ошибка удаления данных из se_plugins: ".mysql_error()."<br>";
    }

    $query mysql_query("DELETE FROM se_languagevars WHERE 
        languagevar_id='11000001' 
        OR languagevar_id='11000002' 
        OR languagevar_id='11000003'
        OR languagevar_id='11000004'
        OR languagevar_id='11000005'
        OR languagevar_id='11000006'
        OR languagevar_id='11000007'
        OR languagevar_id='11000008'
        OR languagevar_id='11000009'
        OR languagevar_id='11000010'
        OR languagevar_id='11000011'
        OR languagevar_id='11000012'
        OR languagevar_id='11000013'
        OR languagevar_id='11000014'
        OR languagevar_id='11000015'
        OR languagevar_id='11000016'
        OR languagevar_id='11000017'
        "
    );
    if (
    $query) {
        echo 
    "Данные из se_languagevars удалены<br>";
    } else {
        echo 
    "Ошибка удаления данных из se_languagevars: ".mysql_error()."<br>";
    }

    $query mysql_query("DROP TABLE rc_geocache");
    if (
    $query) {
        echo 
    "Таблица rc_geocache удалена<br>";
    } else {
        echo 
    "Ошибка удаления таблицы rc_geocache: ".mysql_error()."<br>";
    }

    $query mysql_query("ALTER TABLE se_settings DROP setting_radcodes_remote_type, DROP setting_radcodes_google_map_api;");
    if (
    $query) {
        echo 
    "Поля из se_settings удалены<br>";
    } else {
        echo 
    "Ошибка удаления полей из se_settings: ".mysql_error()."<br>";
    }

    ?>
  3. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Проблема решена!
    Надо все "Удаляльные" файлы положить в папку admin.
    Во всех них вместо include "header.php"; надо include "admin_header.php";
    При вызове http://test1.ru/admin/delete_radcodes.php, перекидывает на http://test1.ru/admin/admin_login.php

    После всех исправлений имеем:

    • Удаляем прямо из админки
    • Файлы удаления теперь не доступны без авторизации в админпанели
    • На стр. удаления выводятся все установленные плагины, даже те, для которых нет файлов удаления
    • После удаления, инфа выводится на белом листе, а хотелось-бы на фоне админпанели.
    • Данный мод не доделан

    Attached Files:

  4. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Gooos, первая да.
    теперь двай разберемся с
    templates/admin_viewplugins.tpl
    у нее есть php файл. Типа admin_viewplugin.php покажи его.
  5. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    admin_viewplugin.php
    PHP:

    <?php

    /* $Id: admin_viewplugins.php 59 2009-02-13 03:25:54Z john $ */

    $page "admin_viewplugins";
    include 
    "admin_header.php";

    $task = ( isset($_POST['task']) ? $_POST['task'] : ( isset($_GET['task']) ? $_GET['task'] : NULL ) );
    $order = ( isset($_POST['order']) ? $_POST['order'] : ( isset($_GET['order']) ? $_GET['order'] : NULL ) );

    // UPDATE PLUGIN ORDER
    if( $task=="doorder" )
    {
      
    $i 1;
      
    $result TRUE;
      
      foreach( 
    $order as $plugin_type )
      {
        
    $sql "UPDATE se_plugins SET plugin_order='{$i}' WHERE plugin_type='{$plugin_type}' LIMIT 1";
        
    $result $result && (bool) $database->database_query($sql);
        
    $i++;
      }
      
      
    // Flush cached stuff
      
    if( is_object($cache_object) )
      {
        
    $cache_object->remove('site_plugins');
      }
      
      echo 
    json_encode(array('result'=>$result));
      exit();
    }


    // INSTALL RELEVANT PLUGIN
    if(isset($_GET['install']))
    {
      
    // Flush cached stuff
      
    if( is_object($cache_object) )
      {
        
    $cache_object->remove('site_plugins');
      }
      
      
    // Install
      
    $install $_GET['install'];
      if(
    file_exists("./install_$install.php")) { 
        include 
    "./install_$install.php"
        
    header("Location: admin_viewplugins.php");
        exit();  
      }
    }


    if( isset(
    $_GET['disable']) )
    {
      
    $disable $_GET['disable'];
      
    $database->database_query("UPDATE se_plugins SET plugin_disabled=1 WHERE plugin_type='$disable'");
      
      
    // Flush cached stuff
      
    if( $database->database_affected_rows() && is_object($cache_object) )
      {
        
    $cache_object->remove('site_plugins');
      }
      
      
    header("Location: admin_viewplugins.php");
      exit();  
    }

    if( isset(
    $_GET['enable']) )
    {
      
    $enable $_GET['enable'];
      
    $database->database_query("UPDATE se_plugins SET plugin_disabled=0 WHERE plugin_type='$enable'");
      
      
    // Flush cached stuff
      
    if( $database->database_affected_rows() && is_object($cache_object) )
      {
        
    $cache_object->remove('site_plugins');
      }
      
      
    header("Location: admin_viewplugins.php");
      exit();  
    }



    // TRY TO READ VERSION FILE FROM SOCIALENGINE SERVER
    /*include_once "../include/xmlrpc/xmlrpc.inc";
    $f = new xmlrpcmsg('versions', array(php_xmlrpc_encode($setting[setting_key])));
    $c = new xmlrpc_client("/remote_versions.php", "www.socialengine.net", 80);
    $r = &$c->send($f);
    $v = $r->value();
    if($v != 0) {
      $max = $v->arraysize();
      $versions = Array();
      for($i=0;$i<$max;$i++) {
        $rec = $v->arraymem($i);
        $download_type = $rec->structmem("type");
        $download_version = $rec->structmem("version");
        $versions[$download_type->scalarval()] = $download_version->scalarval();
      }
    }
    */

    // GET INSTALLED PLUGINS
    $plugins_installed = Array();
    $plugin_types = Array();
    $plugins $database->database_query("SELECT * FROM se_plugins ORDER BY plugin_order ASC");
    while(
    $plugin_info $database->database_fetch_assoc($plugins)) {

      
    // CHECK FOR INSTALL FILE
      
    $plugin_version_ready "";
      if(
    file_exists("./install_$plugin_info[plugin_type].php")) {
        include 
    "./install_$plugin_info[plugin_type].php";
        
    $plugin_version_ready $plugin_version;
      }

      
    // SET PLUGIN ARRAYS
      
    $plugin_types[] = "install_$plugin_info[plugin_type].php";
      
    $plugins_installed[] = Array('plugin_name' => $plugin_info[plugin_name],
                    
    'plugin_version' => $plugin_info[plugin_version],
                    
    'plugin_type' => $plugin_info[plugin_type],
                    
    'plugin_desc' => $plugin_info[plugin_desc],
                    
    'plugin_icon' => $plugin_info[plugin_icon],
                    
    'plugin_disabled' => $plugin_info[plugin_disabled],
                    
    'plugin_version_avail' => $versions[$plugin_info[plugin_type]],
                    
    'plugin_version_ready' => $plugin_version_ready);
    }


    // BEGIN READY-TO-INSTALL PLUGIN ARRAY
    $plugins_ready = Array();

    // FIND INSTALL FILES
    if($dh opendir("./")) {
      while((
    $file readdir($dh)) !== false) {
        if(
    $file != "." && $file != "..") {
          if(
    strpos($file"install_") === && !in_array($file$plugin_types)) {
            include 
    "./$file";
        
    $plugins_ready[] = Array('plugin_name' => $plugin_name,
                    
    'plugin_version' => $plugin_version,
                    
    'plugin_type' => $plugin_type,
                    
    'plugin_desc' => $plugin_desc,
                    
    'plugin_icon' => $plugin_icon);
          }
        }
      }
      
    closedir($dh);
    }


    // ASSIGN VARIABLES AND SHOW ADMIN VIEW PLUGINS PAGE
    $smarty->assign('plugins_ready'$plugins_ready);
    $smarty->assign('plugins_installed'$plugins_installed);
    $smarty->assign('versions'$versions);
    include 
    "admin_footer.php";
    ?>
  6. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    HTML:
    <a href='./delete_{$plugins_installed[installed_loop].plugin_type}.php'>{lang_print id=175}</a>
    заменить на
    HTML:
    {if $plugins_installed[installed_loop].plugin_delete_ready}
    <a href='./delete_{$plugins_installed[installed_loop].plugin_type}.php'>{lang_print id=175}</a>
    {/if}
    и
    PHP:

      
    // CHECK FOR INSTALL FILE
      
    $plugin_version_ready "";
      if(
    file_exists("./install_$plugin_info[plugin_type].php")) {
        include 
    "./install_$plugin_info[plugin_type].php";
        
    $plugin_version_ready $plugin_version;
      }

      
    // SET PLUGIN ARRAYS
      
    $plugin_types[] = "install_$plugin_info[plugin_type].php";
      
    $plugins_installed[] = Array('plugin_name' => $plugin_info[plugin_name],
                    
    'plugin_version' => $plugin_info[plugin_version],
                    
    'plugin_type' => $plugin_info[plugin_type],
                    
    'plugin_desc' => $plugin_info[plugin_desc],
                    
    'plugin_icon' => $plugin_info[plugin_icon],
                    
    'plugin_disabled' => $plugin_info[plugin_disabled],
                    
    'plugin_version_avail' => $versions[$plugin_info[plugin_type]],
                    
    'plugin_version_ready' => $plugin_version_ready);
    заменить на
    PHP:

      
    // CHECK FOR INSTALL FILE
      
    $plugin_version_ready "";
      if(
    file_exists("./delete_$plugin_info[plugin_type].php")) {
        
    $plugin_delete_ready true;
      } else {
        
    $plugin_delete_ready false;
      }

      
    // SET PLUGIN ARRAYS
      
    $plugin_types[] = "install_$plugin_info[plugin_type].php";
      
    $plugins_installed[] = Array('plugin_name' => $plugin_info[plugin_name],
                    
    'plugin_version' => $plugin_info[plugin_version],
                    
    'plugin_type' => $plugin_info[plugin_type],
                    
    'plugin_desc' => $plugin_info[plugin_desc],
                    
    'plugin_icon' => $plugin_info[plugin_icon],
                    
    'plugin_disabled' => $plugin_info[plugin_disabled],
                    
    'plugin_version_avail' => $versions[$plugin_info[plugin_type]],
                    
    'plugin_version_ready' => $plugin_version_ready,
                    
    'plugin_delete_ready' => $plugin_delete_ready);
  7. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Пробую...
    Пропали все ссылки на удалить на стр. удаления.
    Пхп вставил в admin_delete_plugin.php
  8. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    PHP:
      // CHECK FOR INSTALL FILE
      
    $plugin_version_ready "";
      if(
    file_exists("./delete_$plugin_info[plugin_type].php")) {
        
    $plugin_delete_ready true;
      } else {
        
    $plugin_delete_ready false;
      } 
    замени на
    PHP:
      // CHECK FOR DELETE FILE
     
    $plugin_delete_ready file_exists("./delete_$plugin_info[plugin_type].php") ? 'yes' 'no';
    замени на
    А так?
  9. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    Gooos,ой бля.
    пхп заменить в admin_viewplugin.php
  10. Gooos абырвалГ


    Offline
    • Admin
    Message Count:
    2,435
    Likes Received:
    645
    My version of SE:
    3.20
    Не-а, ссылки не появились.

Share This Page

All rights reserved SocEngine.ru ©