Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

0 Пользователей и 1 Гость просматривают эту тему.
  • 165 Ответов
  • 59790 Просмотров
*

DKsN

  • Захожу иногда
  • 258
  • 15 / 0
  • [BODY]
Re: Надоела captcha (CAPTCHA)?
« Ответ #150 : 20.01.2012, 17:01:47 »
Для 1.7 есть что нибудь подобное? Не из разряда "хвастаюсь" а из - "делюсь"? Почти 2 года теме. Зачем?
« Последнее редактирование: 20.01.2012, 17:05:46 от DKsN »
*

InfRiNgeR Of CalmNeS

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: Надоела captcha (CAPTCHA)?
« Ответ #151 : 13.04.2012, 03:17:51 »
Заранее извиняюсь, что сюда не заходил долгое время.

Хорошо придумано..)
Благодарю, но я лишь ремэйкер, начальная идея заложена в Виджете (Slider jQuery UI), Adeptus воплотил свою идею, а я - свою, дополнив её некоторыми рациональными элементами.

InfRiNgeR Of CalmNeS
А можете дать попользоваться вашу версию? Мне даже не нужна вся CAPTCHA, а только ваша модификация JS интересует. Потому как решение правда оригинальное.
Дать попользоваться пока не могу, тот проект для которого я сделал, пока ещё не запустился. Когда проект запустится и наберет обороты, тогда смогу. Когда это произойдет сказать сложно. Одно с уверенностью сказать могу, Вы за это время сами напишите такую же, а может и свою индивидуальную версию смастерите (естественно, только при условии, что вознамеритесь). По поводу модификации js, то, что-то могу выложить.

Уже 2 ночи по моим солнечным, поэтому вкратце и по существу:
1. В темплэйте вьювера (tmpl/default.php), есть фрейм (имя фрейма используется при вызове некоторых js-ф-ций):
Код: html4strict
 <iframe name="frame_footer" src="/tmpl/form.php" frameborder="no" width="100%" height="250px" scrolling="no"></iframe>
2. часть js кода из form.php:
Код: javascript
jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;
    (function(a){a.widget("ui.slider",a.extend({},a.ui.mouse,{_init:function(){var b=this,c=this.options;this._keySliding=false;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");this.range=a([]);if(c.range){if(c.range===true){this.range=a("<div></div>");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length<c.values.length){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d<b))){d=b}if(d!=this.values(e)){var c=this.values();c[e]=d;var h=this._trigger("slide",f,{handle:this.handles[e],value:d,values:c});var b=this.values(e?0:1);if(h!==false){this.values(e,d,(f.type=="mousedown"&&this.options.animate),true)}}}else{if(d!=this.value()){var h=this._trigger("slide",f,{handle:this.handles[e],value:d});if(h!==false){this._setData("value",d,(f.type=="mousedown"&&this.options.animate))}}}},_stop:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("stop",d,b)},_change:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("change",d,b)},value:function(b){if(arguments.length){this._setData("value",b);this._change(null,0)}return this._value()},values:function(b,e,c,d){if(arguments.length>1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(c<this._valueMin()){c=this._valueMin()}if(c>this._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);;
    (function(jQuery) {
    jQuery.fn.slideLock = function(options) {
       
    var defaults = {
    labelText: "Разблокируйте кнопку:",
    noteText: "(если вы не бот...)",
                slideText: "Значение слайдера:",
    lockText: "Закрыто",
    unlockText: "Открыто",
    iconURL: "arrow_right.png",
    inputID: "sliderInput",
    onCSS: "#333",
    offCSS: "#aaa",
    inputValue: 1,
    saltValue: 9,
    checkValue: 10,
    submitID: "#submit"
    };
   
            var opts = jQuery.extend(defaults, options);
   
            function insertLocker() {
               
    var uiHTML = '<p class="slider"><label for="slider">' + opts.labelText + '<br/><span class="quiet">' + opts.noteText + '</span></label>';
                    uiHTML += '<p style="text-align: left; margin-left: 11px; margin-top: 5px; width: 740px;"><label for="amount">' + opts.slideText + '</label><input type="text" id="amount" style="border: 0pt none; font-weight: bold; background-color: rgb(246, 246, 246); color: rgb(128, 128, 128); font-size: 17px; font-family: verdana; padding-left: 5px;" /></p>';
                    uiHTML += '<div id="slcont"><div id="slider"></div></div></p>';
                    uiHTML += '<p class="quiet"><span id="locked">' + opts.lockText + '</span><img src="' + opts.iconURL + '" alt="разблокировать" /><span id="unlocked">' + opts.unlockText + '</span></p>';
                    uiHTML += '<input type="hidden" name="' + opts.inputID + '" value="" id="' + opts.inputID + '" />';
               
                    return uiHTML;
    }
   
            return this.each(function() {
               
    var obj = jQuery(this);
   
                obj.before(insertLocker());
   
                jQuery("#slider").slider({
    animate: true,
                    //value: 4,
    step: 2,
          min: 0,
                    max: 10,
    stop: function(event, ui) {
                       
                        var val = window.parent.document.getElementById('rand_val').value == '' ? 100 : window.parent.document.getElementById('rand_val').value;
   
                        if(ui.value == val) {
    jQuery("#locked").css({'color': opts.offCSS, 'font-weight': 'normal'});
    jQuery("#unlocked").css({'color': opts.onCSS, 'font-weight': 'normal'});
    load_form();
    }else{
    jQuery("#locked").css({'color': opts.onCSS, 'font-weight': 'normal'});
    jQuery("#unlocked").css({'color': opts.offCSS, 'font-weight': 'normal'});
    //unload_form();
    //jQuery("#slider").slider("value",0);
    }
    },
                    slide: function( event, ui ) {
        jQuery( "#amount" ).val( ui.value );
                    }
    });
               
                jQuery( "#amount" ).val(jQuery( "#slider" ).slider( "value" ));
               
    });
           
    };
       
    })(jQuery);
3. Чуток ниже продолжение js кода из того же form.php:
Код: javascript
    	jQuery(document).ready(function() {

            rand_val = jQuery(window.parent.document).find("#rand_val").val();
           
            if(rand_val == 2) {
                rand_val_txt = 'два';
            } else if(rand_val == 4) {
                rand_val_txt = 'четыре';
            } else if(rand_val == 6) {
                rand_val_txt = 'шесть';
            }else if(rand_val == 8) {
                rand_val_txt = 'восемь';
            }else if(rand_val == 10) {
                rand_val_txt = 'десять';
            }
           
jQuery("#correct_wrong").slideLock({
labelText:"",
noteText:"Перетащите слайдер до цифры "+rand_val_txt+" или кликните по ней.",
                slideText: "Значение слайдера:",
lockText:"Закрыто",
unlockText:"Открыто",
iconURL:"arrow_right.png",
inputID:"sliderInput",
onCSS:"#000",
offCSS:"#aaa",
inputValue:1,
saltValue:9,
checkValue:10,
submitID:"#correct_wrong"
});

});

4. Если, чего-то не понятно или где-то чего-то не добавил, потому что есть куски js-кода, которые не касаются сабжа, а чисто функционала проекта, то пишите.   

InfRiNgeR Of CalmNeS, общество будет благодарно
Я и не сомневаюсь. Всегда рад помочь таким же как я.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Надоела captcha (CAPTCHA)?
« Ответ #152 : 13.04.2012, 06:56:27 »
Хорошо бы без использования jquery и тем более ui. На мутулз ведь можно сделать этот слайдер.
А вобще этот слайдер можно заменить тупо кнопкой "Я не робот". Робот кнопку не нажмет, а человек нажмет, вот и все, зачем какието громоздкие слайдеры, нипанимаю.
А вобще можно сделать плагин группы captcha (в Joomla 2.5). Плагин будет добавлять в форму слайдер или тупо кнопку. По нажатию на кнопку/перетягиванию слайдера/что угодно еще, требующее активности пользователя добавлять или наоборот убирать из формы особое скрытое поле. По верификации CAPTCHA проверять это поле - если оно присутствует - значит это не бот. Все предельно просто, вот только нужно ли? Еслиб было нужно, ужеб давно кто-нибудь такой плагин сделал, но я такого не встречал, интреесно - почему?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Re: Надоела captcha (CAPTCHA)?
« Ответ #153 : 22.04.2012, 11:30:58 »
Я мутулз так и не осилил, хоть и старался. Квери же влет, все просто и понятно. Кстати, почему бот не нажмет кнопку? А фишка слайдера в том, что для бота ползунок слайдера - тупо картинка, и че с ней делать он не знает.
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Надоела captcha (CAPTCHA)?
« Ответ #154 : 22.04.2012, 16:06:20 »
Я мутулз так и не осилил, хоть и старался. Квери же влет, все просто и понятно. Кстати, почему бот не нажмет кнопку? А фишка слайдера в том, что для бота ползунок слайдера - тупо картинка, и че с ней делать он не знает.
А как он нажмет? у него че, руки чтоли есть? :)
Ну если есть опасения что руки у него всетаки есть, то может быть вместо <button> использовать <img> и для бота это будет тупо картинка :)
Так в чем проявляется надобность слайдера то?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

nthanter

  • Захожу иногда
  • 55
  • 1 / 1
Re: Надоела captcha (captcha)?
« Ответ #155 : 11.11.2012, 20:51:49 »
думаю что ничто и никогда не заменит систему CAPTCHA от спама
*

Vokson

  • Захожу иногда
  • 83
  • 0 / 0
Re: Надоела captcha (captcha)?
« Ответ #156 : 11.11.2012, 22:36:15 »
Мм-да Господа, теме больше двух лет, а воз как говорится и ныне там!
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Re: Надоела captcha (captcha)?
« Ответ #157 : 13.11.2012, 12:16:28 »
Мм-да Господа, теме больше двух лет, а воз как говорится и ныне там!
А в чем проблема то? Что конкретно нужно?
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

skyrec

  • Захожу иногда
  • 382
  • 10 / 0
  • Люблю я детей !!!
Re: Надоела captcha (captcha)?
« Ответ #158 : 28.12.2012, 04:05:53 »
Есть другая тема, картинки ч кучку собирать...
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Надоела captcha (captcha)?
« Ответ #159 : 28.12.2012, 06:50:00 »
Есть другая тема, картинки ч кучку собирать...
Слишком много телодвижений для юзера. Слайдер - пока что самое простое и идеальное действие для юзера.
*

skyrec

  • Захожу иногда
  • 382
  • 10 / 0
  • Люблю я детей !!!
Re: Надоела captcha (captcha)?
« Ответ #160 : 28.12.2012, 10:28:20 »
Слишком много телодвижений для юзера. Слайдер - пока что самое простое и идеальное действие для юзера.
Не знаю мне нравиться, из трех частей одну собрать, прикольно. Лучше чем глаза ломать на тексте.
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Надоела captcha (captcha)?
« Ответ #161 : 30.12.2012, 19:53:07 »
А мне нравится просто передвинуть слайдер и региться далее без всяких проблем.
Есть еще более простой вариант антиспама - контрольный вопрос. Мне на дле он реально очень помогает.
*

Bright

  • Захожу иногда
  • 170
  • 2 / 2
Re: Надоела captcha (captcha)?
« Ответ #162 : 04.02.2013, 22:30:09 »
Не знаю мне нравиться, из трех частей одну собрать, прикольно. Лучше чем глаза ломать на тексте.
Как-то видел обсуждение такой "CAPTCHA" - там многие признавались, что специально по несколько раз обновляли страницу, чтобы собирать красивые картинки.
Им по по приколу, а сайту - поведенческие факторы. :)

А вообще даже линейные - повод для фантазии. Можно сделать "желоб" фигурным. Простейший - вверх/влево/вниз, это движение можно сделать даже стилизованным под затвор винтовки и расположить под углом.
« Последнее редактирование: 04.02.2013, 22:33:39 от Bright »
*

Gnom41k

  • Захожу иногда
  • 147
  • 5 / 1
  • W.Shop
Re: Надоела captcha (captcha)?
« Ответ #163 : 22.11.2013, 11:26:16 »
Я решил такую капчу на scriptegrator получилось по моему прикольно, кому интересно http://ekotex.in.ua/enter.html?view=registration
*

egorovv

  • Осваиваюсь на форуме
  • 35
  • 0 / 1
Re: Надоела captcha (captcha)?
« Ответ #164 : 20.02.2014, 20:13:41 »
Извините за дилетантский вопрос. Как можно эту "капчу" прикрутить к компоненту ChronoForms?
*

gard88

  • Захожу иногда
  • 61
  • 0 / 0
Re: Надоела captcha (captcha)?
« Ответ #165 : 20.12.2014, 23:03:53 »
Народ, помогите! 2 вопроса:
Как и где изменить фразу "Proves you're human and slide to unlock." на свою ?
Как убрать надпись "Powered by Great Joomla!" ?
Как Изменил?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться