Forumlar / National / Russian / Модули и плагины / [Решено] Плагин "Nevalidate"

12>>>

Обсуждение плагина

webitproff
#1 2023-05-31 07:51

Плагин "Nevalidate"

проверка доступности логина и email для регистрации

Тестировалось на
Cotonti Siena v.0.9.23 beta
PHP Version 8.1.18

Первая установка накрылась,

полез по ошибкам,

исправьте файл nevalidate.rc.php на код ниже

<?php
/* ====================
[BEGIN_COT_EXT]
Hooks=rc
[END_COT_EXT]
==================== */
  
/**
 *  checking the availability of login and email for registration for Cotonti
 *
 * @package nevalidate
 * @version 1.0.0
 * @author Aliaksei Kobak
 * @copyright Copyright (c) Aliaksei Kobak 2014 - 2023
 * @license BSD
 */
  
defined('COT_CODE') or die('Wrong URL');
  
if (isset($_GET['e']) && $_GET['e'] == 'users' && isset($_GET['m']) && $_GET['m'] == 'register') {
     Resources::linkFileFooter(Cot::$cfg['plugins_dir'] . '/nevalidate/js/GetUserInfo.js', 'js');
     Resources::embedFooter('
          $().ready(function() {
                    $("input[name=rusername]").after("<div id=\"divMy_Name\"></div>");
                    $("input[name=ruseremail]").after("<div id=\"divEmail\"></div>");
                    $("input[name=rusername]").blur(function(){
                              process_name();
                    })
                    $("input[name=ruseremail]").blur(function(){
                              process_email();
                    })
          });
    ');
};

 

Важное примечание, пожалуйста сделайте в инструкции к установке плагина, это в первую очередь для новичков нужно и обязательно

1.Скачать актуальную версию плагина из GitHub

2.Папку из архива загрузить в папку с плагинами вашего сайта.

2.1 Если плагин загружали из репозитория на GitHub, - вам нужно папку "nevalidate-master" переименовать в "nevalidate"...

что-то в таком духе....

и немного напрягает меня лично то, что из-за хука "standalone",

после установки плагина,

на странице плагина в админке

Управление сайтом / Расширения / Name E-mail validation

появляется кнопка "открыть", которая предполагает некую самостоятельность и локацию, но тут же вызывает ошибку.

это не критика, это факты, концепция плагина интересная, но есть технические моменты

 

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

Bu konu webitproff tarafından düzenlendi(2023-06-01 10:01, 10 aylar önce)
Kabak
#2 2023-05-31 08:06

да, благодарен за найденные деффекты.  Как всё исправлю , напишу.

Добавлено 15 минут спустя:

Я не знаю как убрать эту кнопку.  Там всё отрабатывает корректно.  Просто кнопки этой быть недолжно 

Добавлено 5 минут спустя:

Первая установка накрылась,

полез по ошибкам,

Что конкретно у вас "накрылось" и какие конкретно "полезли" ошибки ?


Bu konu Kabak tarafından düzenlendi(2023-05-31 08:28, 10 aylar önce)
webitproff
#3 2023-05-31 08:45
#46763 Kabak:

Что конкретно у вас "накрылось" и какие конкретно "полезли" ошибки ?

Parse error: Invalid body indentation level (expecting an indentation level of at least 20) in /hom********/public_html/plugins/nevalidate/nevalidate.rc.php on line 24 

сразу после клика "установить" и всё )) сайт недоступен

Добавлено 2 минуты спустя:

#46763 Kabak:

Я не знаю как убрать эту кнопку.  Там всё отрабатывает корректно.  Просто кнопки этой быть недолжно 

ведь написал, кнопка из-за хука "standalone", - такова особенность движка кота

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Kabak
#4 2023-05-31 08:51

У меня на 0.9.22   на двух сайтах нет проблем

Добавлено 5 минут спустя:

Parse error: Invalid body indentation level (expecting an indentation level of at least 20) in /hom********/public_html/plugins/nevalidate/nevalidate.rc.php on line 24   

Это, вероятно,  js ругается у вас на оформление кода )))  что типа нужно писать строки кода с каим-то "нужным ЕМУ" отступом. Я не знаю откуда ему нужен отступ с уровнем 20  и что это значит. 

24     Resources::embedFooter('

Добавлено 1 минута спустя:

ведь написал, кнопка из-за хука "standalone", - такова особенность движка кота

У плагина нет hooks   поэтому оформил как standalone.  Я с удовольствем уберу эту кнопку, как только изучу как это сделать корректно

 


Bu konu Kabak tarafından düzenlendi(2023-05-31 09:00, 10 aylar önce)
webitproff
#5 2023-05-31 08:59
#46765 Kabak:

Это, вероятно,  js ругается у вас на оформление кода )))  что типа нужно писать строки кода с каим-то "нужным ЕМУ" отступом. Я не знаю откуда ему нужен отступ с уровнем 20  и что это значит. 

ставил всё по дефолту.

и лучше бы проверить самому на установку с нуля, чтобы не было "Это, вероятно,  js ругается у вас "

никаких изменений до установки ни в движке, ни в плагине не осуществлял

имейте ввиду, что не исправите, кто-то снова напишет

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Kabak
#6 2023-05-31 09:03

имейте ввиду, что не исправите, кто-то снова напишет

да-да, вероятно, кто-нибудь ещё установит и подтвердит, что проблема не только у вас.  Буду устранять.

Добавлено 2 минуты спустя:

Кстати, эти строки кода предложили вы.  ( без обвинений и обид )  Я благодарен вам и у меня на двух сайтах всё отлично отрабатывает.  Я бы рад полностью ознакомиться с правилами как это нужно писать и Павел подтвердил правильность вашего кода... кажется.  Давайте дождёмся мнения экспертов, если они сюда зайдут.

Добавлено 7 минут спустя:

Скорее всего у вас установлен какой-то плагин или модуль который дополнительно парсит PHP подгружаемых файлов, если я правильно понимаю эту ошибку.

Добавлено 2 минуты спустя:

изначально вы предлагали такое решение

Resources::embedFooter(<<<JS
$().ready(function() {
$("section.div_block_register input[name=rusername]").after("<div id=\"divMy_Name\"></div>");
$("section.div_block_register input[name=ruseremail]").after("<div id=\"divEmail\"></div>");
  
$("section.div_block_register input[name=rusername]").blur(function(){
        process_name();
})
  
$("section.div_block_register input[name=ruseremail]").blur(function(){
        process_email();
})
});
JS
);
};

Resources::embedFooter(<<<JS 

...

JS ); };

 

Попробуйте изменить удалённо, если есть возможность редактировать файлы на сервере.

Вчера у вас всё работало

Добавлено 6 часов спустя:

Я поймал ошибку о которой вы говорили

нужно просто заменить в nevalidate.rc.php строки с 24 до конца на это

Resources::embedFooter('
    $().ready(function() 
    {
        $("input[name=rusername]").after("<div id=\"divMy_Name\"></div>");
        $("input[name=ruseremail]").after("<div id=\"divEmail\"></div>");
        $("input[name=rusername]").blur(function(){ process_name(); })
        $("input[name=ruseremail]").blur(function(){ process_email(); })
    });
                    ');
};

 как вы и просили.


Bu konu Kabak tarafından düzenlendi(2023-05-31 15:59, 10 aylar önce)
Dayver
#7 2023-05-31 16:02
#46767 Kabak:

Давайте дождёмся мнения экспертов, если они сюда зайдут.

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

Добавлено 5 часов спустя:

Поменял на ajax + слегка привёл стиль кода к стандарту и кое-где убрал избыточность, далее протестил - всё работает, отправил запрос на слияние коммитов

Pavlo Tkachenko aka Dayver

Bu konu Dayver tarafından düzenlendi(2023-05-31 21:46, 10 aylar önce)
Kabak
#8 2023-06-01 05:19

Благодарю, Павел.

Попробую отыскать что ещё было изменено , кроме hook=ajax ,  чтобы Ajax заработал.

Вероятно, я при замене хука на аякс забыл нажать кнопку обновить плагин.


Bu konu Kabak tarafından düzenlendi(2023-06-01 06:12, 10 aylar önce)
Kopusha
#9 2023-06-01 06:54
привёл стиль кода к стандарту 

У меня в коде ты бы ругался про пробелы и табуляцию)

webitproff
#10 2023-06-01 08:33
#46789 Kabak:

Благодарю, Павел.

Попробую отыскать что ещё было изменено , кроме hook=ajax ,  чтобы Ajax заработал.

Вероятно, я при замене хука на аякс забыл нажать кнопку обновить плагин.

к сожелению и у меня не пошел он..

в хроме всплывает диалоговое с "При обращении к серверу возникли проблемы: Not Found"

Добавлено 6 минут спустя:

это на сайте, где всё по-дефолту

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

Bu konu webitproff tarafından düzenlendi(2023-06-01 08:40, 10 aylar önce)
Kabak
#11 2023-06-01 08:42
#46792 webitproff:
#46789 Kabak:

Благодарю, Павел.

Попробую отыскать что ещё было изменено , кроме hook=ajax ,  чтобы Ajax заработал.

Вероятно, я при замене хука на аякс забыл нажать кнопку обновить плагин.

к сожелению и у меня не пошел он..

в хроме всплывает диалоговое с "При обращении к серверу возникли проблемы: Not Found"

Добавлено 6 минут спустя:

это на сайте, где всё по-дефолту

У меня было такое, вероятно я не обновил плагин после изменения на hook=ajax  , но при hook=standalone плагин должен работать, да но в админке тогда будет кнопка которая вам не нравится.

 

webitproff
#12 2023-06-01 09:43
#46793 Kabak:
 

У меня было такое, вероятно я не обновил плагин после изменения на hook=ajax  , но при hook=standalone плагин должен работать, да но в админке тогда будет кнопка которая вам не нравится.

 

так а смысл...?

я то ладно, а кому поставишь - вызывает ощущение что админка и движок кривой

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Dayver
#13 2023-06-01 09:45
#46791 Kopusha:
привёл стиль кода к стандарту 

У меня в коде ты бы ругался про пробелы и табуляцию)

На самом деле и для меня самого это проблема ... за всё время существования Кота привык к табуляциям ... сейчас решили перейти на другой стандарт где отступы это пробелы, в итоге в коде движка каша из двух разных стандартов.

А если речь в целом про отступы то это да - ооочень тяжело читать код у которого отступы чёрти как проставлены - потому пришлось сперва их поправить а потом уже по сути смотреть

Добавлено 7 минут спустя:

#46789 Kabak:

Благодарю, Павел.

Попробую отыскать что ещё было изменено , кроме hook=ajax ,  чтобы Ajax заработал.

Вероятно, я при замене хука на аякс забыл нажать кнопку обновить плагин.

для перехода на аякс как я уже пиисал в этой теме нужно было всего лишь два дейсвтия сделать 

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

2) в GetUserInfo.js поменять в двух местах одну букву

вместо

xmlHttp.open("GET", "index.php?e=nevalidate&name=" + SName, true);
....
xmlHttp.open("GET", "index.php?e=nevalidate&email=" + email_1, true);

что б было

xmlHttp.open("GET", "index.php?r=nevalidate&name=" + SName, true);
....
xmlHttp.open("GET", "index.php?r=nevalidate&email=" + email_1, true);

тоесть вместо e=nevalidate писать r=nevalidate

И все сразу плагин работает по новому ... а ваши ошибки возникают либо по причинам невнимательности и не обновления плагина в админке либо по причине что браузер закешил старый GetUserInfo.js и потому даже после обновления плагина скрипт даёт команду на отправку запросов по старому нерабочему адресу с e=nevalidate ... для определения ошибки смотрите внимательно адрес запросов в сетевых обращениях панели разработчика браузера

Pavlo Tkachenko aka Dayver

Bu konu Dayver tarafından düzenlendi(2023-06-01 09:53, 10 aylar önce)
webitproff
#14 2023-06-01 09:58
#46795 Dayver:

И все сразу плагин работает по новому ... а ваши ошибки возникают либо по причинам невнимательности и не обновления плагина в админке либо по причине что браузер закешил старый GetUserInfo.js и потому даже после обновления плагина скрипт даёт команду на отправку запросов по старому нерабочему адресу с e=nevalidate ... для определения ошибки смотрите внимательно адрес запросов в сетевых обращениях панели разработчика браузера

 

Павел, приношу свои извинения,

я действительно затупил банально и жестко,

оно тупо в кеше сидело!

сам с себя по ржал laugh

работает!

аккаунт удален - не срослось с разработчиками
ушел на другой движок
Kopusha
#15 2023-06-01 20:51

e=nevalidate писать r=nevalidate
E = env.ext

R -?

И что такое z? Давно хотел спросить. php.z

12>>>