101Helper.Com: How To

Top Menu [Pages]

    Social Links

Articles Update
Loading...
This time I would like to write a tutorial about how to add safelink generator widget on your blogger blog with easy steps.


what is Safelink?


Safelink Generator widget is a link converter or link modifier automatically. By using safelink on blogspot, a website has an intermediary that must be addressed by the user before going to the final destination. Generally safelink technique is often found on blogs with downloadable content. Because in safelink can increase income through advertising.

Safelink is used by advertisement publishers, who are certainly used as a medium to display their ads so they can get more clicks or earn more. If you can get more income from ads through safelink, why don't you just use safelink generator widget. it's not just blogs with downloadable content that use blogger safelinks on every site. Many blogs have used safelink with bloggers, because the income from safelink is quite promising. If you can get more income from ads through this safelink, why don't you just use it?


Follow the steps carefully to add safelink generator widget page and download link page on your blogger blog.



Copy the following Javascript Code and paste before </body>.


<b:if cond="data:view.isPage">
<script type="text/javascript">
//<![CDATA[
//timer.js
!function(i){var e={init:function(e){var t={timer:null,timerSeconds:10,callback:function(){},timerCurrent:0,showPercentage:!1,fill:!1,color:"#CCC"};return t=i.extend(t,e),this.each(function(){var e=i(this);e.data("pietimer")||(e.addClass("pietimer"),e.css({fontSize:e.width()}),e.data("pietimer",t),t.showPercentage&&e.find(".percent").show(),t.fill&&e.addClass("fill"),e.pietimer("start"))})},stopWatch:function(){var e=i(this).data("pietimer");if(e){var t=(e.timerFinish-(new Date).getTime())/1e3;if(t<=0)clearInterval(e.timer),i(this).pietimer("drawTimer",100),e.callback();else{var r=100-t/e.timerSeconds*100;i(this).pietimer("drawTimer",r)}}},drawTimer:function(e){$this=i(this);var t=$this.data("pietimer");if(t){$this.html('<div class="percent"></div><div class="slice'+(e>50?' gt50"':'"')+'><div class="pie"></div>'+(e>50?'<div class="pie fill"></div>':"")+"</div>");var r=3.6*e;$this.find(".slice .pie").css({"-moz-transform":"rotate("+r+"deg)","-webkit-transform":"rotate("+r+"deg)","-o-transform":"rotate("+r+"deg)",transform:"rotate("+r+"deg)"}),$this.find(".percent").html(Math.round(e)+"%"),t.showPercentage&&$this.find(".percent").show(),$this.hasClass("fill")?$this.find(".slice .pie").css({backgroundColor:t.color}):$this.find(".slice .pie").css({borderColor:t.color})}},start:function(){var e=i(this).data("pietimer");e&&(e.timerFinish=(new Date).getTime()+1e3*e.timerSeconds,i(this).pietimer("drawTimer",0),e.timer=setInterval("$this.pietimer('stopWatch')",50))},reset:function(){var e=i(this).data("pietimer");e&&(clearInterval(e.timer),i(this).pietimer("drawTimer",0))}};i.fn.pietimer=function(t){return e[t]?e[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void i.error("Method "+t+" does not exist on jQuery.pietimer"):e.init.apply(this,arguments)}}(jQuery);

// SafeLink.js
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=o(n(1)),c=o(n(3)),u=o(n(4));function o(t){return t&&t.__esModule?t:{default:t}}var l=function(t){function o(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(o.__proto__||Object.getPrototypeOf(o)).call(this));return n.resolveOptions(e),n.listenClick(t),n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(o,c.default),i(o,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===r(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,u.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new a.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return s("action",t)}},{key:"defaultTarget",value:function(t){var e=s("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return s("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),o}();function s(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=l},function(t,e,n){"use strict";var o,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=n(2),c=(o=a)&&o.__esModule?o:{default:o};var u=function(){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.resolveOptions(t),this.initSelection()}return i(e,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,c.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,c.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),e}();t.exports=u},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n},function(t,e,n){var d=n(5),h=n(6);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!d.string(e))throw new TypeError("Second argument must be a String");if(!d.fn(n))throw new TypeError("Third argument must be a Function");if(d.node(t))return s=e,f=n,(l=t).addEventListener(s,f),{destroy:function(){l.removeEventListener(s,f)}};if(d.nodeList(t))return a=t,c=e,u=n,Array.prototype.forEach.call(a,function(t){t.addEventListener(c,u)}),{destroy:function(){Array.prototype.forEach.call(a,function(t){t.removeEventListener(c,u)})}};if(d.string(t))return o=t,r=e,i=n,h(document.body,o,r,i);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,a,c,u,l,s,f}},function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,n){var a=n(7);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=a(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},function(t,e){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}}])});

// Expires Header
jQuery.cookie = function(e, n, o) {
    if (arguments.length > 1 && "[object Object]" !== String(n)) {
        if (o = jQuery.extend({}, o), (null === n || void 0 === n) && (o.expires = -1), "number" == typeof o.expires) {
            var t = o.expires,
                r = o.expires = new Date;
            r.setDate(r.getDate() + t)
        }
        return n = String(n), document.cookie = [encodeURIComponent(e), "=", o.raw ? n : encodeURIComponent(n), o.expires ? "; expires=" + o.expires.toUTCString() : "", o.path ? "; path=" + o.path : "", o.domain ? "; domain=" + o.domain : "", o.secure ? "; secure" : ""].join("")
    }
    o = n || {};
    var i, c = o.raw ? function(e) {
        return e
    } : decodeURIComponent;
    return (i = new RegExp("(?:^|; )" + encodeURIComponent(e) + "=([^;]*)").exec(document.cookie)) ? c(i[1]) : null
};
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('$(K).Q(2(){$("#1y").f("u",2(){4 e=$("#O").q(),r=$("#1g"),a=$("#1h"),n=$("#1i");C(""==e)J $("#O").1j(),!1;$("#z").9("<6 g=\'5 5-1k-o\'></6> 1l 1m"),a.j("8"),r.v("8"),$.1f({1n:"/1p/1q/1r?1s=1t-1u-1d",1o:"1e",14:"1c",L:2(t){4 o="",l=t.I.W,s=B X;C(Y 0!==l){N(4 i=0;i<l.w;i++){N(4 d=0;d<l[i].A.w;d++)C("11"==l[i].A[d].12){o=l[i].A[d].F;15}s[i]=o;4 c=16.17()*s.w;c=19(c)}M=k.1a+"//"+x.k.1b+"/p/1x.9"+"#?o="+V.1v(m(e),m("T")),a.v("8"),r.j("8"),n.q(M)}1U n.q("1V 1W!")},1X:2(){n.q("21 20 I!")}})}),B 23(".z").f("L",2(e){$("#z").9("<6 g=\'5 5-G\'></6> P 1S H 1I")})});$(K).Q(2(){$.D=2(o){4 n=B 1A("[?&]"+o+"=([^&#]*)").1B(x.k.F);J y==n?y:1C(n[1])||0};4 b=$("#b"),7=$("#7"),h=$("#h");2 S(){4 o=3;7.j("8");4 n=1D(2(){4 e=o-=1;7.9(\'<6 g="5 5-1E 5-1F"></6> 1G 1z...\'),e<0&&(1H(n),7.U("R",!1),7.9(\'<6 g="5 5-G"></6> 1K H P\'))},1N)}y!=$.D("o")&&h.1P({1w:10,13:"#1O",1M:!1,1L:!0,1J:2(){b.U("R",!1),b.j("8"),h.v("8")}});4 E=!1;b.u(2(){0==E&&(S(),E=!0),$("9, 1R").1Q({1Z:22(7.1T().1Y-10)},18)}),7.f("u",2(){4 o=V.Z(m($.D("o")),m("T"));x.k.F=o}).f(!1,2(){})});',62,128,'||function||var|fa|span|gotolink|hidden|html||getlink||||on|class|timer||removeClass|location||convertstr||||val||||click|addClass|length|window|null|copytoclipboard|link|new|if|urlParam|request|href|check|to|feed|return|document|success|resultgenerate|for|generateurl|Link|ready|disabled|gotolinkcountdown|root|prop|aesCrypto|entry|Array|void|decrypt||alternate|rel|color|dataType|break|Math|random|500|parseInt|protocol|hostname|jsonp|script|get|ajax|generatelink|generateloading|resulturl|focus|floppy|Copy|URL|url|type|feeds|posts|summary|alt|json|in|encrypt|timerSeconds|download|btngenerate|Wait|RegExp|exec|decodeURI|setInterval|cog|spin|Please|clearInterval|Clipboard|callback|Go|showPercentage|fill|1e3|03a9f4|pietimer|animate|body|Copied|offset|else|No|result|error|top|scrollTop|loading|Error|eval|ClipboardJS'.split('|'),0,{}))
function convertstr(str) {return str.replace(/^\s+/, '').replace(/\s+$/, ''); } 
var CryptoJS=CryptoJS||function(t,e){var r={},n=r.lib={},i=n.Base=function(){function t(){}return{extend:function(e){t.prototype=this;var r=new t;return e&&r.mixIn(e),r.hasOwnProperty("init")||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),o=n.WordArray=i.extend({init:function(t,r){t=this.words=t||[],this.sigBytes=r!=e?r:4*t.length},toString:function(t){return(t||a).stringify(this)},concat:function(t){var e=this.words,r=t.words,n=this.sigBytes,i=t.sigBytes;if(this.clamp(),n%4)for(var o=0;i>o;o++){var s=r[o>>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else if(r.length>65535)for(var o=0;i>o;o+=4)e[n+o>>>2]=r[o>>>2];else e.push.apply(e,r);return this.sigBytes+=i,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=i.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var r=[],n=0;e>n;n+=4)r.push(4294967296*t.random()|0);return new o.init(r,e)}}),s=r.enc={},a=s.Hex={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;r>i;i++){var o=e[i>>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;e>n;n+=2)r[n>>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new o.init(r,e/2)}},c=s.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;r>i;i++){var o=e[i>>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;e>n;n++)r[n>>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new o.init(r,e)}},f=s.Utf8={stringify:function(t){try{return decodeURIComponent(escape(c.stringify(t)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(t){return c.parse(unescape(encodeURIComponent(t)))}},u=n.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r=this._data,n=r.words,i=r.sigBytes,s=this.blockSize,a=4*s,c=i/a;c=e?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var f=c*s,u=t.min(4*f,i);if(f){for(var h=0;f>h;h+=s)this._doProcessBlock(n,h);var p=n.splice(0,f);r.sigBytes-=u}return new o.init(p,u)},clone:function(){var t=i.clone.call(this);return t._data=this._data.clone(),t},_minBufferSize:0}),h=(n.Hasher=u.extend({cfg:i.extend(),init:function(t){this.cfg=this.cfg.extend(t),this.reset()},reset:function(){u.reset.call(this),this._doReset()},update:function(t){return this._append(t),this._process(),this},finalize:function(t){t&&this._append(t);var e=this._doFinalize();return e},blockSize:16,_createHelper:function(t){return function(e,r){return new t.init(r).finalize(e)}},_createHmacHelper:function(t){return function(e,r){return new h.HMAC.init(t,r).finalize(e)}}}),r.algo={});return r}(Math);!function(){{var t=CryptoJS,e=t.lib,r=e.WordArray,n=t.enc;n.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,n=this._map;t.clamp();for(var i=[],o=0;r>o;o+=3)for(var s=e[o>>>2]>>>24-o%4*8&255,a=e[o+1>>>2]>>>24-(o+1)%4*8&255,c=e[o+2>>>2]>>>24-(o+2)%4*8&255,f=s<<16|a<<8|c,u=0;4>u&&r>o+.75*u;u++)i.push(n.charAt(f>>>6*(3-u)&63));var h=n.charAt(64);if(h)for(;i.length%4;)i.push(h);return i.join("")},parse:function(t){var e=t.length,n=this._map,i=n.charAt(64);if(i){var o=t.indexOf(i);-1!=o&&(e=o)}for(var s=[],a=0,c=0;e>c;c++)if(c%4){var f=n.indexOf(t.charAt(c-1))<<c%4*2,u=n.indexOf(t.charAt(c))>>>6-c%4*2;s[a>>>2]|=(f|u)<<24-a%4*8,a++}return r.create(s,a)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}}(),function(t){function e(t,e,r,n,i,o,s){var a=t+(e&r|~e&n)+i+s;return(a<<o|a>>>32-o)+e}function r(t,e,r,n,i,o,s){var a=t+(e&n|r&~n)+i+s;return(a<<o|a>>>32-o)+e}function n(t,e,r,n,i,o,s){var a=t+(e^r^n)+i+s;return(a<<o|a>>>32-o)+e}function i(t,e,r,n,i,o,s){var a=t+(r^(e|~n))+i+s;return(a<<o|a>>>32-o)+e}var o=CryptoJS,s=o.lib,a=s.WordArray,c=s.Hasher,f=o.algo,u=[];!function(){for(var e=0;64>e;e++)u[e]=4294967296*t.abs(t.sin(e+1))|0}();var h=f.MD5=c.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,o){for(var s=0;16>s;s++){var a=o+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var f=this._hash.words,h=t[o+0],p=t[o+1],l=t[o+2],d=t[o+3],v=t[o+4],y=t[o+5],g=t[o+6],_=t[o+7],m=t[o+8],S=t[o+9],B=t[o+10],x=t[o+11],k=t[o+12],C=t[o+13],z=t[o+14],w=t[o+15],E=f[0],D=f[1],M=f[2],b=f[3];E=e(E,D,M,b,h,7,u[0]),b=e(b,E,D,M,p,12,u[1]),M=e(M,b,E,D,l,17,u[2]),D=e(D,M,b,E,d,22,u[3]),E=e(E,D,M,b,v,7,u[4]),b=e(b,E,D,M,y,12,u[5]),M=e(M,b,E,D,g,17,u[6]),D=e(D,M,b,E,_,22,u[7]),E=e(E,D,M,b,m,7,u[8]),b=e(b,E,D,M,S,12,u[9]),M=e(M,b,E,D,B,17,u[10]),D=e(D,M,b,E,x,22,u[11]),E=e(E,D,M,b,k,7,u[12]),b=e(b,E,D,M,C,12,u[13]),M=e(M,b,E,D,z,17,u[14]),D=e(D,M,b,E,w,22,u[15]),E=r(E,D,M,b,p,5,u[16]),b=r(b,E,D,M,g,9,u[17]),M=r(M,b,E,D,x,14,u[18]),D=r(D,M,b,E,h,20,u[19]),E=r(E,D,M,b,y,5,u[20]),b=r(b,E,D,M,B,9,u[21]),M=r(M,b,E,D,w,14,u[22]),D=r(D,M,b,E,v,20,u[23]),E=r(E,D,M,b,S,5,u[24]),b=r(b,E,D,M,z,9,u[25]),M=r(M,b,E,D,d,14,u[26]),D=r(D,M,b,E,m,20,u[27]),E=r(E,D,M,b,C,5,u[28]),b=r(b,E,D,M,l,9,u[29]),M=r(M,b,E,D,_,14,u[30]),D=r(D,M,b,E,k,20,u[31]),E=n(E,D,M,b,y,4,u[32]),b=n(b,E,D,M,m,11,u[33]),M=n(M,b,E,D,x,16,u[34]),D=n(D,M,b,E,z,23,u[35]),E=n(E,D,M,b,p,4,u[36]),b=n(b,E,D,M,v,11,u[37]),M=n(M,b,E,D,_,16,u[38]),D=n(D,M,b,E,B,23,u[39]),E=n(E,D,M,b,C,4,u[40]),b=n(b,E,D,M,h,11,u[41]),M=n(M,b,E,D,d,16,u[42]),D=n(D,M,b,E,g,23,u[43]),E=n(E,D,M,b,S,4,u[44]),b=n(b,E,D,M,k,11,u[45]),M=n(M,b,E,D,w,16,u[46]),D=n(D,M,b,E,l,23,u[47]),E=i(E,D,M,b,h,6,u[48]),b=i(b,E,D,M,_,10,u[49]),M=i(M,b,E,D,z,15,u[50]),D=i(D,M,b,E,y,21,u[51]),E=i(E,D,M,b,k,6,u[52]),b=i(b,E,D,M,d,10,u[53]),M=i(M,b,E,D,B,15,u[54]),D=i(D,M,b,E,p,21,u[55]),E=i(E,D,M,b,m,6,u[56]),b=i(b,E,D,M,w,10,u[57]),M=i(M,b,E,D,g,15,u[58]),D=i(D,M,b,E,C,21,u[59]),E=i(E,D,M,b,v,6,u[60]),b=i(b,E,D,M,x,10,u[61]),M=i(M,b,E,D,l,15,u[62]),D=i(D,M,b,E,S,21,u[63]),f[0]=f[0]+E|0,f[1]=f[1]+D|0,f[2]=f[2]+M|0,f[3]=f[3]+b|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;r[i>>>5]|=128<<24-i%32;var o=t.floor(n/4294967296),s=n;r[(i+64>>>9<<4)+15]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[(i+64>>>9<<4)+14]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,c=a.words,f=0;4>f;f++){var u=c[f];c[f]=16711935&(u<<8|u>>>24)|4278255360&(u<<24|u>>>8)}return a},clone:function(){var t=c.clone.call(this);return t._hash=this._hash.clone(),t}});o.MD5=c._createHelper(h),o.HmacMD5=c._createHmacHelper(h)}(Math),function(){var t=CryptoJS,e=t.lib,r=e.Base,n=e.WordArray,i=t.algo,o=i.MD5,s=i.EvpKDF=r.extend({cfg:r.extend({keySize:4,hasher:o,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r=this.cfg,i=r.hasher.create(),o=n.create(),s=o.words,a=r.keySize,c=r.iterations;s.length<a;){f&&i.update(f);var f=i.update(t).finalize(e);i.reset();for(var u=1;c>u;u++)f=i.finalize(f),i.reset();o.concat(f)}return o.sigBytes=4*a,o}});t.EvpKDF=function(t,e,r){return s.create(r).compute(t,e)}}(),CryptoJS.lib.Cipher||function(t){var e=CryptoJS,r=e.lib,n=r.Base,i=r.WordArray,o=r.BufferedBlockAlgorithm,s=e.enc,a=(s.Utf8,s.Base64),c=e.algo,f=c.EvpKDF,u=r.Cipher=o.extend({cfg:n.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var e=this._doFinalize();return e},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?x:m}return function(e){return{encrypt:function(r,n,i){return t(n).encrypt(e,r,n,i)},decrypt:function(r,n,i){return t(n).decrypt(e,r,n,i)}}}}()}),h=(r.StreamCipher=u.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),e.mode={}),p=r.BlockCipherMode=n.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),l=h.CBC=function(){function e(e,r,n){var i=this._iv;if(i){var o=i;this._iv=t}else var o=this._prevBlock;for(var s=0;n>s;s++)e[r+s]^=o[s]}var r=p.extend();return r.Encryptor=r.extend({processBlock:function(t,r){var n=this._cipher,i=n.blockSize;e.call(this,t,r,i),n.encryptBlock(t,r),this._prevBlock=t.slice(r,r+i)}}),r.Decryptor=r.extend({processBlock:function(t,r){var n=this._cipher,i=n.blockSize,o=t.slice(r,r+i);n.decryptBlock(t,r),e.call(this,t,r,i),this._prevBlock=o}}),r}(),d=e.pad={},v=d.Pkcs7={pad:function(t,e){for(var r=4*e,n=r-t.sigBytes%r,o=n<<24|n<<16|n<<8|n,s=[],a=0;n>a;a+=4)s.push(o);var c=i.create(s,n);t.concat(c)},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},y=(r.BlockCipher=u.extend({cfg:u.cfg.extend({mode:l,padding:v}),reset:function(){u.reset.call(this);var t=this.cfg,e=t.iv,r=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=r.createEncryptor;else{var n=r.createDecryptor;this._minBufferSize=1}this._mode=n.call(r,this,e&&e.words)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else{var e=this._process(!0);t.unpad(e)}return e},blockSize:4}),r.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=e.format={},_=g.OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;if(r)var n=i.create([1398893684,1701076831]).concat(r).concat(e);else var n=e;return n.toString(a)},parse:function(t){var e=a.parse(t),r=e.words;if(1398893684==r[0]&&1701076831==r[1]){var n=i.create(r.slice(2,4));r.splice(0,4),e.sigBytes-=16}return y.create({ciphertext:e,salt:n})}},m=r.SerializableCipher=n.extend({cfg:n.extend({format:_}),encrypt:function(t,e,r,n){n=this.cfg.extend(n);var i=t.createEncryptor(r,n),o=i.finalize(e),s=i.cfg;return y.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,r,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var i=t.createDecryptor(r,n).finalize(e.ciphertext);return i},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),S=e.kdf={},B=S.OpenSSL={execute:function(t,e,r,n){n||(n=i.random(8));var o=f.create({keySize:e+r}).compute(t,n),s=i.create(o.words.slice(e),4*r);return o.sigBytes=4*e,y.create({key:o,iv:s,salt:n})}},x=r.PasswordBasedCipher=m.extend({cfg:m.cfg.extend({kdf:B}),encrypt:function(t,e,r,n){n=this.cfg.extend(n);var i=n.kdf.execute(r,t.keySize,t.ivSize);n.iv=i.iv;var o=m.encrypt.call(this,t,e,i.key,n);return o.mixIn(i),o},decrypt:function(t,e,r,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var i=n.kdf.execute(r,t.keySize,t.ivSize,e.salt);n.iv=i.iv;var o=m.decrypt.call(this,t,e,i.key,n);return o}})}(),function(){var t=CryptoJS,e=t.lib,r=e.BlockCipher,n=t.algo,i=[],o=[],s=[],a=[],c=[],f=[],u=[],h=[],p=[],l=[];!function(){for(var t=[],e=0;256>e;e++)t[e]=128>e?e<<1:e<<1^283;for(var r=0,n=0,e=0;256>e;e++){var d=n^n<<1^n<<2^n<<3^n<<4;d=d>>>8^255&d^99,i[r]=d,o[d]=r;var v=t[r],y=t[v],g=t[y],_=257*t[d]^16843008*d;s[r]=_<<24|_>>>8,a[r]=_<<16|_>>>16,c[r]=_<<8|_>>>24,f[r]=_;var _=16843009*g^65537*y^257*v^16843008*r;u[d]=_<<24|_>>>8,h[d]=_<<16|_>>>16,p[d]=_<<8|_>>>24,l[d]=_,r?(r=v^t[t[t[g^v]]],n^=t[t[n]]):r=n=1}}();var d=[0,1,2,4,8,16,32,64,128,27,54],v=n.AES=r.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes/4,n=this._nRounds=r+6,o=4*(n+1),s=this._keySchedule=[],a=0;o>a;a++)if(r>a)s[a]=e[a];else{var c=s[a-1];a%r?r>6&&a%r==4&&(c=i[c>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c]):(c=c<<8|c>>>24,c=i[c>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c],c^=d[a/r|0]<<24),s[a]=s[a-r]^c}for(var f=this._invKeySchedule=[],v=0;o>v;v++){var a=o-v;if(v%4)var c=s[a];else var c=s[a-4];f[v]=4>v||4>=a?c:u[i[c>>>24]]^h[i[c>>>16&255]]^p[i[c>>>8&255]]^l[i[255&c]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,s,a,c,f,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,u,h,p,l,o);var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,n,i,o,s,a){for(var c=this._nRounds,f=t[e]^r[0],u=t[e+1]^r[1],h=t[e+2]^r[2],p=t[e+3]^r[3],l=4,d=1;c>d;d++){var v=n[f>>>24]^i[u>>>16&255]^o[h>>>8&255]^s[255&p]^r[l++],y=n[u>>>24]^i[h>>>16&255]^o[p>>>8&255]^s[255&f]^r[l++],g=n[h>>>24]^i[p>>>16&255]^o[f>>>8&255]^s[255&u]^r[l++],_=n[p>>>24]^i[f>>>16&255]^o[u>>>8&255]^s[255&h]^r[l++];f=v,u=y,h=g,p=_}var v=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&p])^r[l++],y=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[p>>>8&255]<<8|a[255&f])^r[l++],g=(a[h>>>24]<<24|a[p>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^r[l++],_=(a[p>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^r[l++];t[e]=v,t[e+1]=y,t[e+2]=g,t[e+3]=_},keySize:8});t.AES=r._createHelper(v)}();var aesCrypto={};!function(t){"use strict";t.formatter={prefix:"",stringify:function(t){var r=this.prefix;return r+=t.salt.toString(),r+=t.ciphertext.toString()},parse:function(t){var r=CryptoJS.lib.CipherParams.create({}),e=this.prefix.length;return 0!==t.indexOf(this.prefix)?r:(r.ciphertext=CryptoJS.enc.Hex.parse(t.substring(16+e)),r.salt=CryptoJS.enc.Hex.parse(t.substring(e,16+e)),r)}},t.encrypt=function(r,e){try{return CryptoJS.AES.encrypt(r,e,{format:t.formatter}).toString()}catch(n){return""}},t.decrypt=function(r,e){try{var n=CryptoJS.AES.decrypt(r,e,{format:t.formatter});return n.toString(CryptoJS.enc.Utf8)}catch(i){return""}}}(aesCrypto);
//]]>
</script>
</b:if>


Copy and Paste the following CSS code just below the ]]></b:skin>


<b:if cond='data:view.isPage'>
<style>
/* Safe Link Generator */
.input-group{position:relative}
.panel.panel-primary{background:#eee;text-align:center;display:table;overflow:hidden;width:100%;max-width:970px;padding:0;border-radius:5px;margin:25px auto;border:1px solid #e1e1e1}
.panel-body{position:relative;margin:0 25px;box-sizing:border-box}
.panel-heading h2{color:#000;margin:0 auto 25px auto;font-weight:500;padding:15px;font-size:20px;border-bottom:1px solid rgba(0,0,0,0.05)}
.panel-body input{background:#fff;width:100%;padding:15px;border-radius:5px;border:1px solid transparent;box-shadow:0 1px 1px rgba(204,197,185,0.5);font-size:16px;color:#000;outline:none;text-indent:60px;transition:all .3s;box-sizing:border-box}
.panel-body input:focus{background:#fff;color:#000;border-color:#e74c3c;outline:none;box-shadow:0 0 5px rgba(0,0,0,0.1)}
.panel-body .input-group-btn{position:absolute;top:0;right:0}
.panel-body button{border-radius:0 5px 5px 0;background:#008000;color:#fff;border:0;padding:0 52px;height:50px;font-weight:700;font-size:14px;text-transform:uppercase;outline:none;cursor:pointer;transition:all .3s}
.panel-body button:hover,.panel-body button:focus{background:#d24637;outline:none}
#generatelink{margin:20px auto 0 auto}
#generatelink button{background:#01a3a4;border-radius:5px;font-size:14px;padding:0 32px}
#generatelink button:hover,#generatelink button:focus{background:#028889;border-radius:5px;font-size:14px}
#generatelink button .fa.fa-floppy-o,#generatelink button .fa.fa-check{margin:0 5px 0 0}
.panel-body:before{content:&#39; \f0c1&#39;;background:rgba(0,0,0,0.05);font-family:fontawesome;position:absolute;left:0;top:0;color:#888;padding:12px 20px;border-radius:5px 0 0 5px;border-right:1px solid transparent;transition:all .6s}
.panel-body:active:before,.panel-body:focus-within:before{content:&#39; \f061&#39;;background:#e74c3c;color:#fff}
#generatelink input{background:#ffeaa7;text-indent:0}
#generatelink input:hover,#generatelink input:focus{background:#ffeaa7;border-color:transparent;box-shadow:none}
#generateloading{margin:20px auto 0 auto;font-size:20px;color:#f39c12;font-weight:normal}
.hidden{display:none}

/* Safelink Timer */
#timer{margin:20px auto;width:80px;text-align:center}
.pietimer{position:relative;font-size:200px;width:1em;height:1em}
.pietimer &gt; .percent{position:absolute;top:28px;left:12px;width:3.33em;font-size:18px;text-align:center;display:none}
.pietimer &gt; .slice{position:absolute;width:1em;height:1em;clip:rect(0px,1em,1em,0.5em)}
.pietimer &gt; .slice.gt50{clip:rect(auto,auto,auto,auto)}
.pietimer &gt; .slice &gt; .pie{border:0.06em solid #c0c0c0;position:absolute;width:70px;height:70px;clip:rect(0em,0.5em,1em,0em);border-radius:0.5em}
.pietimer &gt; .slice &gt; .pie.fill{-moz-transform:rotate(180deg)!important;-webkit-transform:rotate(180deg)!important;-o-transform:rotate(180deg)!important;transform:rotate(180deg)!important}
.pietimer.fill &gt; .percent{display:none}
.pietimer.fill &gt; .slice &gt; .pie{border:transparent;background-color:#c0c0c0;width:1em;height:1em}

/* Safelink Button */
.text-center{text-align:center}
.text-center button{margin:20px auto;border-radius:5px;text-align:center;padding:10px 22px;background:#008000;color:#fff;cursor:pointer;font-weight:700;font-size:100%;text-transform:uppercase;box-shadow:0 5px 10px rgba(0,0,0,0.19),0 3px 3px rgba(0,0,0,0.13);transition:all 0.3s cubic-bezier(.25,.8,.25,1);border:none}
.panel-body .text-center button{margin:0 auto}
.text-center button:hover,.text-center button:active,.text-center button:focus{box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}
.text-center button span{margin:0 5px 0 0}
.panel-body{margin:0 auto;padding:25px}
.panel-body:before{display:none}
.panel-heading h2{background:#fff;color:#222;margin:0 auto;font-weight:500;padding:21px;font-size:24px;text-align:center}
@media (max-width:540px){
  .panel-body .input-group-btn{display:block;position:relative;overflow:hidden;margin:20px auto 0 auto}
  .panel-body button{border-radius:5px;width:100%}}
</style>
</b:if>


Creating Safe Link Generator Page (Safelink Tool)


Access your blog Pages > click New Page > Title , in title enter "Safe Link Generator" (without quotes).

Note:- the Safe Link Generator page will not work if you don't put the title correctly, after adding the title your page link must look like this.

https://www.yourdomainname.com/p/safe-link-generator.html


Then you just need to paste the below code into the page html version. and click the save button, after saving proceed ahead to create link target page.


<div class="panel panel-primary">
   <div class="panel-body">
      <div class="form-group">
         <div class="input-group">
            <input class='form-control' id='generateurl' oninvalid='this.setCustomValidity(&apos;Please Enter valid link&apos;)' placeholder='Enter your link with https:// here...' required='required' type='url'/>
            <span class="input-group-btn">
            <button class="btn btn-primary primary-color primary-color-border" id="btngenerate" oninvalid="this.setCustomValidity('Please Enter valid link')" required="required" type="button">
              <i aria-hidden="true" class="fa fa-shield fa-fw"></i> Generate
            </button>
            </span>
         </div>
      </div>
      <div class="hidden text-center" id="generateloading"><i class="fa fa-cog fa-spin"></i></div>
      <div class="hidden" id="generatelink">
         <div class="form-group has-success">
            <div class="input-group">
               <input class="form-control" id="resulturl" onclick="this.focus();this.select()" readonly="readonly" type="text" />
            </div>
            <br />
            <div class="text-center">
               <button class='copytoclipboard btn-sm btn btn-success' data-clipboard-action='copy' data-clipboard-target='#resulturl' id='copytoclipboard'><span class='fa fa-floppy-o'/> Copy URL</button>
            </div>
         </div>
      </div>
   </div>
</div>

<style>
#main-wrapper {
    width: 100%;
}
#sidebar-wrapper {
    display: none;
}
.item-post h1.post-title {
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 1px;
    background-color: #3f51b5;
    background-image: -webkit-linear-gradient(left,#3f51b5,#03a9f4);
    background-image: linear-gradient(to right,#3f51b5,#03a9f4);
    color: #fff;
    border: 1px solid #3F51B5;
    border-radius: 4px;
    font-size: 25px;
    padding: 5px 0;
}
</style>


Note:- Remember one thing you need to paste the code in html part of the editor other wise it won't work.


Creating Safe Link Download Page (Safelink Download Page)


Access your blog Pages > click New Page > Title , in title enter "Download" (without quotes).

Note:- the Link Target page will not work if you don't put the title correctly, after adding the title your page link must look like this.

https://www.yordomainname.com/p/download.html


Then you just need to paste the below code into the page html version. Add this code in the post, paste it between paragraphs of your blog article (above). Replace the code marked with your ad code.


<div id="timer"></div>
<div class="text-center">
<button class="btn bt-success hidden" disabled="" id="getlink">Get Link</button>
<!--Your Ad Code-->
</div>


Then add this code in the post, paste it between paragraphs of your blog article (below). Replace the code marked with your ad code.


<div class="text-center">
<button class="btn bt-success hidden" disabled="" id="gotolink">Go to Link</button>
<div style="display: inline-block; margin: auto;">
<!--Your Ad code-->
</div>
</div>


Note:- Remember one thing you need to paste the code in html part of the editor other wise it won't work.


Creating a safelink


Simply open the page (Link generator) you have created above. and then add your desired url with complete link starting with https://. For example https://101helper.com to encrypt it, then click the generate button.

After Clicking a new section will appear where the encrypted link will present, just click the copy button to copy the link, then just visit the link.

How to add safelink generator and download page on blogger blog?

How to create and setup sub domain on a blogger (blogspot) blog from custom domain?
Who already have a blog with a domain / custom domain or also called TLD (Top Level Domain), you can also create several sub domains from the parent domain or custom domain that you use. This is useful if you have another blog that you want to link to a domain / custom domain so you don't need to buy a new domain anymore and it's quite useful to save your expenses.

For example, the domain / custom domain address that you have is https://www.yourdomain.com and if you want to add another blog for example with a niche Technology, you can add sub domains with the name Tech or techno (https://tech.yourdomain.com).

Let's follow the steps below.


First, log in to the member page or client area of your domain. You can adjust it with the client area domain that you use.

Then click the Domain menu and select which domain you want to add a sub domain to. Like the example here select yourdomain.com, If you want to add sub domains from the yourdomain.com domain.

Once selected, it will bring up menus such as nameservers, manage DNS, etc. Select the Manage DNS or Manage DNS menu .

Then add a new record in the Manage DNS column, Add subdomain name record and add ghs.google.com to the CNAME column .

Well, now only needs to wait for the propagation, it takes about 1 hours or usually faster than the new sub domain you made.

Next enter the Blogger dashboard , then select the blog that you want to add to the sub domain you made. Then select the Settings menu > Publishing and click on Custom Domain for your blog to install a new sub domain.

How to create and setup sub domain on a blogger (blogspot) blog from custom domain?


Add the sub domain name in the column provided then click Save .

How to create and setup sub domain on a blogger (blogspot) blog from custom domain?


Done, now enable HTTPS in the same menu. For tips, you can check here How to Enable HTTPS on a Blogspot website with a Custom Domain .

How to create and setup sub domain on a blogger (blogspot) blog from custom domain?


If you encounter problems, you can’t click Save when installing a sub domain. Possible Nameservers on the blog is different from Nameservers on the main blog, for that just add the names provided by Google to the Manage DNS page earlier. Examples of nameservers like this:

How to create and setup sub domain on a blogger (blogspot) blog from custom domain?


The arrow above is the nameservers from your blog, add the nameservers on the Manage DNS page by adding a new record in the column provided.

Select the record type with CNAME , then click Save and wait for the same number of times as the previous step. If so, try clicking Save again on the Blogger page.

How to create and setup sub domain on a blogger (blogspot) blog from custom domain?



Enabling HTTPS has become mandatory in terms of security also google gives priority to those sites which have ssl certificate installed. Previously this feature wasn't available on blogger. But now this feature is available from your custom domains and can be installed in very simple steps. The ssl certification is provided by google and only official method to do so. Its absolutely free and requires no coding knowledge, a beginner can easily enable this option by simply selecting options through easy to choose toggle menu.


What is HTTPS?


HTTPS (Hypertext Transfer Protocol Secure) is a protocol that uses HTTP on encrypted connections with transport-layer security and HTTPS is a secure version of HTTP . HTTPS is used to protect the data transmitted from eavesdroppers. This is a standard protocol for conducting financial transactions on the web, and can protect users of a website from censorship by the government or ISP.


Advantages of Using HTTPS:


Of course the purpose of using HTTPS on a blog is to optimize a blog on a search engine, or it can also be known as SEO (search engine optimization) should everything that is considered good in the eyes of visitors as well as search engines should we do. Besides functioning as a security for visitors, HTTPS Affects the search engine rating factors such as Google, Bing, etc.

How to enable HTTPS on blogger blog with custom domain and sub domain of custom domain?


Let us begin, first of all login into your Blogger account, please type or copy and paste it draft.blogger.com into the search tab.

After that, click the Settings menu > Basic > HTTPS , then you will see two options in HTTPS Category. HTTPS Availability and HTTPS Redirect. click on the HTTPS Availability toggle menu.

After activating, wait for few moments until the menu on HTTPS Switching opens. Click the refresh button in the browser or click F5 on the keyboard, you can see HTTPS Availability Status: pending HTTPS Availability is being processed. Check back later.

The enabling process takes time, if your blog has huge number of posts then it will take little extra time, we recommend you to enable this option in night and leave it for some time.




HTTPS redirect setting unavailable unless HTTPS is avialable. If HTTPS already Available click on the HTTPS redirect toggle menu to redirect HTTP to HTTPS.



Finally, the HTTPS feature that is given for free has been installed on your blog's custom domain.

How to enable HTTPS on blogger blog with custom domain and sub domain?

How to make footer credit (backlink) incapable of being removed from blogger Template?
When creating a template that will be distributed free later, of course the creator injected a credit link / footer link in the custom template. This is done to get a backlink from the template user who is interested in the template, created by the template designer / devloper.

But sometimes this hope must be dashed and in vain if the template falls to unscrupulous free template users who like to remove credit links from a template created by someone else who downloaded it.

Instead of wanting to get a backlink, the template made by the template designer / developer is claimed by others and as if it were his template.

Well, to overcome this, there is a way that should be applied by the template designer / developer, if later you still want to create a new template again and share it for free. Namely using JavaScript that serves to redirect the link credit template. That is, if the free template user modifies the link credit with his own version, then the link will be redirected to as usual, the alias will not change at all. For the interested in implementing this method, follow the following steps.

Copy the following code, and place it before </body>.


<script type='text/javascript'>
//<![CDATA[
$(document)['ready'](function() {setInterval(function() {if (!$('#merocredit:visible')['length']) {window['location']['href'] = 'https://101helper.com'}}, 3000)});window['onload'] = function() {var merocredit = document['getElementById']('merocredit');merocredit['setAttribute']('href', 'https://101helper.com');merocredit['setAttribute']('rel', 'dofollow');merocredit['setAttribute']('title', '101helper.com');merocredit['setAttribute']('style', 'display: inline-block!important; font-size: inherit!important; color: #71d54c!important; visibility: visible!important;z-index:99!important; opacity: 1!important;');merocredit['innerHTML'] = '101helper.com'};
//]]>
</script>


For example your template footer html code as below.


Copyright &#169; <script type='text/javascript'>var creditsyear = new Date();document.write(creditsyear.getFullYear());</script> | <a class='sitename' expr:href='data:blog.homepageUrl' expr:title='data:blog.title'><data:blog.title/></a> | Designed by <a href='https://www.101helper.com' id='merocredit' rel='dofollow' title='101helper'>101helper</a>.


Change the link and title above with your blog's link and title. If so, save the template and see the results.

There are a few tips if your blogspot template results are still selling well in others, by asking the interested person to send an email or write an email in the comments column who interested in your template. That way you can find out who is using your template, and who has intentionally changed the credit link.

How to make footer credit link (backlink) incapable of being removed from blogger Template?

How To Install Floating Contact Us Widget on Blogger Blog
As we know , the contact form widget / contact form is an email facility from Blogger that functions to connect between visitors and blog owners to communicate with each other personally and it is quite easy to send a quick query email to the support to find some desire information.

Today in this article, we will show you how to add a floating contact us widget in blogger blog. First of all, you must have contact form widget already available on our blog. Make sure you have installed the contact form widget on your blog . If you haven’t added the widget in Layout > Add a Gadget. Then, get on with the way it is implemented.

The very first thing you need to do is to take a backup of your template, so in case you did not followed the bellow instructions properly you can use the backup to restore the template.


Go to Blogger Dashboard > Theme > Edit HTML > Click anywhere in the HTML template editor and press (CTRL+F), this will enable a search box. Now search for skin tag ]]></b:skin> and just above it paste the following CSS style sheet coding.

/* Floating Contact Form */
.ContactForm,.ContactForm .title{display:none}
.floating-wid{position:fixed;width:280px;right:10px;bottom:0;z-index:99}
.floating-wid-head a{width:100%;padding:8px 10px;background:#2997e0;color:#fff;font-weight:400;display:inline-block;transition:all .3s linear}
.floating-wid-head a:hover{background:#2588ca;color:#fff}
.floating-wid-body{height:285px;background:#fff;padding:10px;display:none;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}
.floating-wid-head{text-align:right}
.floating-wid-body .ContactForm{margin:0;display:block!important}
#ContactForm1_contact-form-name,#ContactForm1_contact-form-email{background:#fff;border:0;padding:10px 0;color:#999;font-weight:normal;width:100%;max-width:initial;border-bottom:1px solid #ccc;transition:.2s ease all}
#ContactForm1_contact-form-email-message{background:#fff;border:none;color:#8f8f8f;padding:10px 0;width:100%;max-width:initial;border-bottom:1px solid #ccc}
#ContactForm1_contact-form-name:focus,#ContactForm1_contact-form-email:focus,#ContactForm1_contact-form-email-message:focus,#ContactForm1_contact-form-name:hover,#ContactForm1_contact-form-email:hover,#ContactForm1_contact-form-email-message:hover{background:#fff;box-shadow:none;border-bottom-color:#ff3c3c;transition:all .3s linear}
#ContactForm1_contact-form-submit{position:relative;color:#fff;font-weight:400;font-size:12px;cursor:pointer;background:#57ad68;border:none;float:left;box-shadow:0 0 0 0 rgba(0,0,0,0.19);transition:all .3s linear}
#ContactForm1_contact-form-submit:hover{background:#468a53;}
#ContactForm1_contact-form-submit:active{box-shadow:0 4px 15px 0 rgba(0,0,0,0.19);}
.contact-form-widget form{display:table;margin:0 auto;}
.contact-form-widget {max-width:initial;}
.floating-wid-body{-moz-box-sizing:initial;-webkit-box-sizing:initial;box-sizing:initial}


Now with the help of search box, look for the starting </body>tag and just Above it paste the following JavaScript code.

<script type='text/javascript'>
//<![CDATA[
// Floating Contact Form
$("body").append('<div class="floating-wid"><div class="floating-wid-head"><a href="#no-move">Contact Form</a></div><div class="floating-wid-body"></div></div>'),$(".ContactForm").appendTo(".floating-wid-body");var slide_up_ai=!1;$(".floating-wid-head a").click(function(){slide_up_ai?(slide_up_ai=!1,$(".floating-wid-body").slideUp()):(slide_up_ai=!0,$(".floating-wid-body").slideDown())});
//]]>
</script>


Once everything is done, Save Template. Now go to your site and you will notice a floating contact us widget on the bottom right of your screen.

How To Install Floating Contact Form Widget on Blogger Blog

How To Create Contact Page On Blogger Blog
Blogger is very robust and easy to operate CMS platform, you don't have to be a geek to operate the dashboard or settings. But with easiness, there comes some limitations, By default you can't create a Contact us page, you have to either you have to use any third party plugin or have to tweak blogger's official contact widget, so that it can work on static pages. Creating a separate page for contact purpose is very professional and also makes your blog clean by hiding unnecessary widgets and plugins thats’s why , Lets move further and see How to create Contact Us page without Adding Contact Form Widget in Blogger Blog.

Hiding The Widget (If already Added Contact Form Widget in your template).

Before Editing we recommend you to make a backup of your template, so that anything goes wrong you still have your blog design safe.

The First thing you need to do is to login into your Blogger account and go to Blogger Dashboard > Theme > Edit HTML and search for the ending ]]></b:skin>tag and just Above it paste the following code.


.sidebar .widget.ContactForm {
    display: none!important;
}


Creating a Page

To Create Contact Us Page Go to Blogger Dashboard.

How To Create Contact Page On Blogger Blog

Click on the Pages

How To Create Contact Page On Blogger Blog

Click on the New Page Button.

How To Create Contact Page On Blogger Blog

  • Give The title Contact Us
  • Click On HTML and Copy and Paste the following Html Code



<form name="contact-form">
<div class='formcolumn1'>
<input id="ContactForm1_contact-form-name" name="name" placeholder='Name' size="30" type="text" value="" /> </div>
<div class='formcolumn2'>
<input id="ContactForm1_contact-form-email" name="email" placeholder='Email' size="30" type="text" value="" /> </div>
<div class='formcolumn3'>
<textarea cols="25" id="ContactForm1_contact-form-email-message" name="email-message" placeholder='Message' rows="7"></textarea> </div>
<input class="ripplelink" id="ContactForm1_contact-form-submit" type="button" value="Send Now" />
<div style="max-width: 100%; text-align: center; width: 100%;">
<div id="ContactForm1_contact-form-error-message">
</div>
<div id="ContactForm1_contact-form-success-message">
</div>
</div>
</form>


Add the following CSS Code.


<style type="text/css">
#ContactForm1{display:none}
#ContactForm1_contact-form-name, #ContactForm1_contact-form-email{display:inline-block;width:100%;height:auto;margin:10px auto;padding:14px;background:#fff;color:#222;border:1px solid rgba(0,0,0,0.08)}
#ContactForm1_contact-form-email-message{font-family:'Roboto';width:100%;height:250px;margin:10px auto;padding:14px;background:#fff;color:#222;border:1px solid rgba(0,0,0,0.08)}
#ContactForm1_contact-form-name:focus, #ContactForm1_contact-form-email:focus, #ContactForm1_contact-form-email-message:focus{background:#fff;outline:none;border-color:rgba(0,0,0,0.18)}
#ContactForm1_contact-form-submit{background:#fff;color:#5f6368;font-size:16px;width:161px;height:45px;float:left;padding:0 0 0 20px;margin:10px 0 3px 5px;cursor:pointer;border:none;border-radius:24px;box-shadow:0 1px 2px 0 rgba(60,64,67,0.302),0 1px 3px 1px rgba(60,64,67,0.149);transition:box-shadow .08s linear,min-width .15s cubic-bezier(0.4,0.0,0.2,1)}
.formcolumn4{position:relative}
.formcolumn4:before{background-image:url(//1.bp.blogspot.com/-EjaivrciJ2E/XpiXp1OyCWI/AAAAAAAAALI/2Qor5dfvEV8ISc4t9ENpjefSc9hThcwvQCLcBGAsYHQ/s1600/Mail-me.PNG);background-position:center;background-repeat:no-repeat;background-size:20px;content:'';display:block;height:63px;width:32px;position:absolute;z-index:1;left:15px;top:0}
#ContactForm1_contact-form-submit:hover{background:#fafafb;box-shadow:0 1px 3px 0 rgba(60,64,67,0.302),0 4px 8px 3px rgba(60,64,67,0.149)}
#ContactForm1_contact-form-error-message,#ContactForm1_contact-form-success-message{margin-top:35px}
form{color:#888}
.formcolumn1,.formcolumn2{float:left;width:50%}
.formcolumn1,.formcolumn2{margin:0 0 10px 0;padding:0 10px 0 0}
.formcolumn2{padding:0 0 0 10px}
@media only screen and (max-width:768px){
  .formcolumn1,.formcolumn2{width:100%;padding:0}
}
</style>


If you want to add this CSS Code in the Template, add right just bellow the code ]]></b:skin>. With the Blogger’ Conditional Tag.
<b:if cond='data:view.isPage'>
..........
..........
</b:if>


Add the Following JavaScript Code.


<script src="https://www.blogger.com/static/v1/widgets/2271878333-widgets.js" type="text/javascript"></script>
<script type='text/javascript'>
if (typeof(BLOG_attachCsiOnload) != 'undefined' &amp;&amp; BLOG_attachCsiOnload != null) { window['blogger_templates_experiment_id'] = 'templatesV1';window['blogger_blog_id'] = '<data:blog.blogId/>';BLOG_attachCsiOnload(''); }_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d<data:blog.blogId/>','<data:blog.url/>','<data:blog.blogId/>');
_WidgetManager._RegisterWidget('_ContactFormView', new _WidgetInfo('ContactForm1', 'footer1', null, document.getElementById('ContactForm1'), {'contactFormMessageSendingMsg': 'Sending...', 'contactFormMessageSentMsg': 'Your message has been sent.', 'contactFormMessageNotSentMsg': 'Message could not be sent. Please try again later.', 'contactFormInvalidEmailMsg': 'A valid email address is required.', 'contactFormEmptyMessageMsg': 'Message field cannot be empty.', 'title': 'Contact Form', 'blogId': '<data:blog.blogId/>', 'contactFormNameMsg': 'Name', 'contactFormEmailMsg': 'Email', 'contactFormMessageMsg': 'Message', 'contactFormSendMsg': 'Send', 'submitUrl': 'https://www.blogger.com/contact-form.do'}, 'displayModeFull'));
</script>


If you want to add this Javascript Code in the Template, add right just Above the code </body>. With the Blogger’s Conditional Tag.
<b:if cond='data:view.isPage'>
..........
..........
</b:if>


  • Click on the Search Description and write the description.
  • Then, click on the Option Select Don't allow, hide existing and click on the Done. After that, Publish the Contact Us Page.

How To Create Contact Page On Blogger Blog

How To Add Stylish Contact Form Widget On the Blogger Blog
Basically Contact Form widget will give your visitors and readers a medium to contact you easily. Blogger doesn't supports plugins like wordpress so it becomes very hectic job to find a better looking and better working contact widget for your blog.

There are a lot of third party widgets available but most of them are premium or very limited to access, But if you use blogger's default one, it becomes easy to manage messages you will receive through this widget as it will forward the message to your same email id which you are using to access the blog.


Create Contact Us Widget On Blogger’s Blogspot Website


Follow the steps given below to add a contact us gadget on your blog.

Go to blogger.com and log in to your account. If you are running multiple blogs, you need to choose the desired blog from the list from your blogger dashboard.

How To Add Stylish Contact Form Widget On the Blogger Blog

Click on Layout from the left sidebar to get an option to add gadgets.

How To Add Stylish Contact Form Widget On the Blogger Blog

You can see an Add a Gadget link on the main panel on the right side. Clicking on it will bring you to a list of gadgets.

How To Add Stylish Contact Form Widget On the Blogger Blog

There are more gadgets. Now, you will see Contact Form. Just add the same to add Contact Form Widget. Then, you will see popup.

How To Add Stylish Contact Form Widget On the Blogger Blog

Click on the Save Button to save Contact Form Widget.

Next, please open Template Dashboard > Theme > Edit HTML >  apply the code below before  </style> or ]]></b:skin>.

/* Contact Form */
#ContactForm1_contact-form-widget {
    max-width:100% !important
}
#ContactForm1_contact-form-name, #ContactForm1_contact-form-email, #ContactForm1_contact-form-email-message {
    background-color:#FFF;
    border:1px solid #eee;
    border-radius:3px;
    padding:10px;
    margin-bottom:10px !important;
    max-width:100% !important
}
#ContactForm1_contact-form-name {
    width:47.7%;
    height:50px
}
#ContactForm1_contact-form-email {
    width:49.7%;
    height:50px
}
#ContactForm1_contact-form-email-message {
    height:150px
}
#ContactForm1_contact-form-button-submit {
    max-width:100%;
    width:100%;
    z-index:0;
    margin:4px 0 0;
    padding:10px !important;
    text-align:center;
    cursor:pointer;
    background:#27ae60;
    border:0;
    height:auto;
    -webkit-border-radius:2px;
    -moz-border-radius:2px;
    -ms-border-radius:2px;
    -o-border-radius:2px;
    border-radius:2px;
    text-transform:uppercase;
    -webkit-transition:all .2s ease-out;
    -moz-transition:all .2s ease-out;
    -o-transition:all .2s ease-out;
    -ms-transition:all .2s ease-out;
    transition:all .2s ease-out;
    color:#FFF
}
#ContactForm1_contact-form-button-submit:hover {
    background:#2c3e50
}
#ContactForm1_contact-form-email:focus, #ContactForm1_contact-form-name:focus, #ContactForm1_contact-form-email-message:focus {
    box-shadow:none !important
}
@media screen and (max-width:640px) {
#ContactForm1_contact-form-name, #ContactForm1_contact-form-email {
    width:100%;
}}


Then, Save Template.

How To Add Stylish Contact Form Widget On the Blogger Blog

Breadcrumb is an important part of blogger blog, First it helps in easy navigation and then it also helps in case of SEO. this widget is very clean and easy to use, comes in very minimal state with elegant appearance it enhance your blog looks. The benefit of this breadcrumb widget is that it shows only one label in between, in terms of seo google shows only one label in the search results, So we have maintained it in a same way, We have managed the number of labels displayed on Breadcrumbs is only one. No matter how many labels are added to each blog post, still only one label will appear on the breadcrumbs.

Some time ago I got an email notification from Google Search Console about the problem of breadcrumb data-vocabulary.org schema deprecated with the contents of the message as shown below.


Google announced support for vocabulary data on April 6, 2020 !, about "data-vocabulary.org schema deprecated"

As of April 6, 2020, http://data-vocabulary.org  markup will no longer be eligible for Google rich result features.  You can read more about this news on google's official blog, through below link. Check Here : -
https://webmasters.googleblog.com/2020/01/data-vocabulary.html

But you don't need to panic. Now this is a crucial step and you need to carefully do this to convert vocabulary-data.org to schema.org, otherwise, you won't be able to fix the issue.

First open the Blogger page> Click the Themes menu and click the Edit HTML button.

In the template, search for the below code. <b:includable id='comment-form' var='post'>

Once you will find the code, right above the code look for the HTML post code like this,

<b:includable id='breadcrumb' var='posts'>
..............
...............
</b:includable>


Replace it with below code.


<b:includable id='breadcrumb' var='posts'>
   <b:if cond='data:blog.pageType == &quot;item&quot;'>
      <b:loop values='data:posts' var='post'>
         <b:if cond='data:post.labels'>
            <div class='breadcrumbs' itemscope='itemscope' itemtype='https://schema.org/BreadcrumbList'>
               <span itemprop='itemListElement' itemscope='itemscope' itemtype='https://schema.org/ListItem'>
                  <a class='homebread' expr:href='data:blog.homepageUrl' itemprop='item' title='Home'>
                  <span itemprop='name'>Home</span></a>
                  <meta content='1' itemprop='position'/>
               </span> / <b:loop index='num' values='data:post.labels' var='label'>
                  <span itemprop='itemListElement' itemscope='itemscope' itemtype='https://schema.org/ListItem'>
                     <a expr:href='data:label.url + &quot;?&amp;max-results=16&quot;' expr:title='data:label.name' itemprop='item'>
                        <span itemprop='name'>
                           <data:label.name/>
                        </span>
                     </a>
                     <meta expr:content='data:num+2' itemprop='position'/>
                  </span>
                  <b:if cond='data:label.isLast != &quot;true&quot;'> / </b:if>
               </b:loop> / <span>
                  <data:post.title/>
               </span>
            </div>
         </b:if>
      </b:loop>
   </b:if>
</b:includable>


Then add the following CSS code before the code ]]></b:skin>


/* Breadcrumbs */
.breadcrumbs{padding:0;margin-bottom:20px;border:0;display:inline-block;font-size:12px;color:#888}
.breadcrumbs a,.post-info a{color:#888}
.breadcrumbs a:hover{color:#f24a4a}
.breadcrumbs svg{width:16px;height:16px;vertical-align:-4px}
.breadcrumbs svg path{fill:#888}
.homebread{margin:0 2px 0 0}


Next, find the code <b:includable id='main' var='top'> and add this code <b:include data='posts' name='breadcrumb'/>directly below the code <b:includable id='main' var='top'>

After that, click Save theme and finish.

The next step is to check back on your https://search.google.com/search-console blog and click on the Breadcrumb menu.


Click on the writing Error section , after that click on the button Validate Fix


Then, just wait for the repair message to be sent via email after it is validated.

How To Fix data-vocabulary.org Schema Deprecated Breadcrumb Error in Blogger Search Console

Get the latest in your inbox.

Signup to be the first to know when we publish updates, best-practices, tips and tricks.