Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - sam

Страницы: [1] 2 3 ... 15
1
Здравствуйте! Периодически наблюдаются проблемы в работе сайта - сайт зависает (ответ из БД приходит с большой задержкой). Обратились к хостеру, с целью выяснения причины этой проблемы. Как хостер сказал, от серверов скриптов и БД идут множественные соединения, ожидающие исполнения. Говорят, что это не нормально и говорит о недостаточной оптимизированности сайта и его запросов. Другими словами, сайт инициирует большое количество подключений при одном запросе.

Что можете сказать по этому поводу? Сталкивались с такой проблемой? Где найти решение этой проблемы?

2
Шаблоны PHP / Re: uLogin
« : 20 Июня 2017, 13:35:25 »
Или может кто поможет с переписыванием кода ниже под uLogin (http://ulogin.ru/constructor.php)?

abstract class __loginza_users {
 
    public function  getLoginzaProvider() {
        $loginzaAPI = new loginzaAPI();
 
        $result = Array();
        foreach($loginzaAPI->getProvider() as $k=>$v) {
            $result['providers']['nodes:provider'][] = array('attribute:name'=>$k, 'attribute:title'=>$v);
        }
 
        $result ['widget_url'] = $loginzaAPI->getWidgetUrl() . "&providers_set=yandex,mailru,rambler,vkontakte,odnoklassniki,mailruapi,google,facebook,twitter";
 
        if (def_module::isXSLTResultMode()) {
            return $result;
        } else {
            return $result['widget_url'];
        }
    }
 
    public function loginza($template = 'default') {
        if(!empty($_POST['token']) ) {
            $loginzaAPI = new loginzaAPI();
 
            $profile = $loginzaAPI->getAuthInfo($_POST['token']);
 
            if( !empty($profile)) {
                $profile = new loginzaUserProfile($profile);
 
                $objectTypes = umiObjectTypesCollection::getInstance();
                $objectTypeId    = $objectTypes->getBaseType("users",    "user");
                $objectType = $objectTypes->getType($objectTypeId);
 
                $nickname = $profile->genNickname();
                $provider = $profile->genProvider();
                $provider_url = parse_url($provider);
                $provider_name = str_ireplace('www.', '', $provider_url['host']);
                $login = $nickname . "@" . $provider_name;
                $password = $profile->genRandomPassword();
                $email = $profile->genUserEmail();
                $lname = $profile->getLname();
                $fname = $profile->getFname();
 
                if(!$fname) $fname=$nickname;
 
                $sel = new selector('objects');
                $sel->types('object-type')->name('users', 'user');
                $sel->where('login')->equals($login);
                $sel->where('loginza')->equals($provider_name);
                $user =  $sel->first;
                $from_page = getRequest("from_page");
 
                if($user instanceof iUmiObject) {
                    permissionsCollection::getInstance()->loginAsUser($user);
                    session_commit();
 
                    $this->redirect($from_page ? $from_page : ($this->pre_lang . '/users/auth/'));
                }
 
                if(!preg_match("/.+@.+\..+/", $email)) {
                    while(true) {
                        $email = $nickname.rand(1,100)."@".getServer('HTTP_HOST');
                        if($this->checkIsUniqueEmail($email)) {
                            break;
                        }
                    }
                }
 
                $object_id = umiObjectsCollection::getInstance()->addObject($login, $objectTypeId);
                $object = umiObjectsCollection::getInstance()->getObject($object_id);
 
                $object->setValue("login", $login);
                $object->setValue("password", md5($password));
                $object->setValue("e-mail", $email);
                $object->setValue("fname", ($fname));
                $object->setValue("lname", $lname);
                $object->setValue("loginza", $provider_name);
                $object->setValue("register_date", time());
                $object->setValue("is_activated", '1');
                $object->setValue("activate_code", md5(uniqid(rand(), true)));
 
                $_SESSION['cms_login'] = $login;
                $_SESSION['cms_pass'] = md5($password);
                $_SESSION['user_id'] = $object_id;
                session_commit();
 
                $group_id = regedit::getInstance()->getVal("//modules/users/def_group");
                $object->setValue("groups", Array($group_id));
 
 
                $data_module = cmsController::getInstance()->getModule('data');
                $data_module->saveEditedObject($object_id, true);
 
                $object->commit();
 
                $this->redirect($from_page ? $from_page : ($this->pre_lang . '/users/auth/'));
            }
        }
        return $this->auth();
    }
}

3
Шаблоны PHP / uLogin
« : 20 Июня 2017, 10:16:24 »
Здравствуйте! Кто-нибудь может поделиться файлами /php/users/authorization.phtml и /xslt/modules/users/authorization.xsl ?

4
JS и AJAX / Re: Войти через Loginza
« : 19 Июня 2017, 13:19:37 »
Дело в том, что скрипт подгружается из сайта Loginz-ы.

Думаю, может перейти на uLogin. Если есть PHP-файл (аналог /classes/modules/users/_loginza.php), может поделитесь? Плагин для UMI.CMS если есть uLogin (если поделитесь при наличии), то могу попросить их разработчиков помочь с подключением.

5
JS и AJAX / Войти через Loginza
« : 18 Июня 2017, 20:52:20 »
Здравствуйте! Просьба, подскажите:
1. Почему когда нажимаю на кнопку "Войти через Loginza" не всплывает окно по верх страницы, а происходит переход на http://loginza.ru/api/widget?token_url=https%3A%2F%2Fmysite.ru:80%3A80%2Fusers%2Floginza%2F%3Ffrom_page%3Dhttps%253A%252F%252Fmysite.ru%253A80%252F ? Раньше ведь всплывало окно при нажатии?!
2. И что за :80 после mysite.ru - откуда берётся и подставляется этот :80? При закрытии окна после перехода, вызывается ошибка из-за этого :80 в ссылке. Как это можно убрать?

6
У нас поддержка закончилась, иначе давно бы обратились в Службу Заботы UMI.
PHP 5.4 поможет или нет?

7
Для того, чтобы наглядно увидеть состояние производительности, сделал скриншот (во вложении). Не вооруженным глазом видно состояние производительности. Раньше load average у нас был на уровне единицы, с небольшими колебаниями. Сама производительность была выше 50 (до этого, год назад, 8-21, не выше). Высокие показатели load average вроде говорит о том, что система не справляется с нагрузками. Почему-то хостер нагрузок на их сервера не наблюдает?! Ничего не можем понять, в чём проблема?!

8
Хостер предлагает/рекомендует перейти на PHP 5.6 и включить модуль кэширования Opcache.
Никакой нагрузки на сервер, говорят нет. А модуль кэширования Opcache видимо в PHP 5.6.

9
А, интересно, UMI.CMS 2.9.0 поддержит хотя бы PHP версии 5.6?

10
Цитировать
Спросите в поддержке хостинга, что изменилось за последнее время. Если хостинг виртуальный, то, возможно, на ваш сервер пришли несколько высоконагруженных проектов.
Виртуальный хостинг. Вот это вполне возможно, высоконагруженные проекты. Уточним. Спасибо! Из изменений - раньше допускалось превышение лимита опер.памяти, нынче лимит, это "потолок". Если упираемся к "потолку", начинается торможение сайта. Мы, думаю, можем ведь просить их перевести нас на другой сервер, где невысоконагруженные проекты.

11
Цитировать
Попробуйте, но не уверен, что это сильно повлияет на скорость работы сайта. Грамотное кеширование было реализовано в версии 2.11. До этого кеширование работало непредсказуемо.
Возможно Вы имеете в веду кэширование в UMI (через админку). Хостер предлагает сделать кэширование через личный кабинет нашего хостинга (там можно указывать кэширование в часах).
Цитировать
Попробуйте другой хостинг.
Мы с этим хостером уже давно. Раньше может были с ними проблемы, нынче, до марта 2017 их почти не было. Сейчас просто что-то у них поменялось, что стало отрицательно отражаться на скорости работы нашего сайта.

12
Ясно. Не всё так просто. Обновиться сможем, если доп.расходы нам одобрят. Просто хостинг провайдер, кроме обновления до PHP 7.0, предлагает нам включить кэширование на стороне хостинга, чтобы ускорить работу сайта. Вот и думаем, если с обновлением пока не понятно, то может включить нам кэширование?! Настораживает одно - цены и наличие товаров, интресно, тоже будут кэшироваться?! И, насколько это кэширование ускорит наш сайт?! Что можете сказать по этому поводу (может посоветуете что-нибудь ещё, кроме обновления CMS)?

13
Поддержка PHP 7.0 с версии UMI.CMS 14 вроде начинается. Может подскажете, что конкретно изменилось/добавилось, что PHP 7.0 поддерживаться стало?

14
Здравствуйте!
Несколько дней назад наш хостер перевёл наш сайт вроде на "более производительный сервер". В кавычках потому, что, после этого сайт стал тормозить. На данный момент мы на UMI.CMS 2.9.0 и используем PHP версии 5.3 с настройками модулей (подключенные: curl, dom, eaccelerator, gd, iconv, json, mbstring, mysql, session, simplexml, sockets, timezonedb, tokenizer, xml, xmlreader, xsl, zlib). До момента переноса нашего сайта на новый сервер хостером, всё работала на ура. Обращались к хостеру, что-то вроде делали или не делали, но пока ещё всё так же печально.

Уточнили у хостера, может нам перейти на PHP 7.0, на что они ответили: "проконсультируйтесь с разработчиком, так как, возможно, что скрипты сайта не совместимы с данной версией РНР".

Просьба, подскажите разработчики, если наш сайт на UMI.CMS 2.9.0, то перейти на PHP 7.0 мы можем? Если да, то какие конкретные модули PHP (см. ранее "подключенные" выше) нам надо будет подключать, чтобы сайт стал работать лучше, а не окончательно встал?

15
Получил я то, что хотел (см. вложение), правда css под это ещё надо сделать, но в целом то, что нужно. Вызов в ~/modules/catalog/common.xsl сделал так:
<xsl:variable name="item" select="document(concat('upage://', @id))/udata" />
<xsl:apply-templates select="$item//group[@name = '&group-parameter;']" mode="table_short" />
Темплейт "table_short" берётся из ~/modules/catalog/object-view.xsl. Доделывать это всё ещё надо, думаю, сделаю.

За помощь и подсказки благодарю admin (http://umihelp.ru/forum/index.php?action=profile;u=1) и aghigay (http://umihelp.ru/forum/index.php?action=profile;u=37628)!

Страницы: [1] 2 3 ... 15