Skip to content

Instantly share code, notes, and snippets.

@TLMcode
Last active February 16, 2017 23:02
Show Gist options
  • Save TLMcode/becc88d59a29244cd003f25050995db5 to your computer and use it in GitHub Desktop.
Save TLMcode/becc88d59a29244cd003f25050995db5 to your computer and use it in GitHub Desktop.
materialKit methods plus LaunchModalNewsLetterForm() method
$( '#pol-newsletter-form > a' ).on( 'click', function()
{
var error = false, $nl_email = $( '#pol-newsletter-input' );
if ( $nl_email.prop( 'name' ) !== "nlemail" || $nl_email.val().match( /^[\w-\._\+%]+@(?:[\w-]+\.)+[\w]{2,6}$/i ) === null )
{
$nl_email.tooltip( 'show' );
$nl_email.on( 'click', function()
{
$nl_email.tooltip( 'hide' );
});
error = true;
}
else if ( error === false )
{
$.post( '<?php get_theme_url(); ?>/nwemail.php?job=subscribe', $( '#pol-newsletter-form' ).serialize(), function( data, status )
{
var DataObj = JSON.parse( data );
if ( DataObj.error === "success" )
{
$nl_email.on( 'hidden.bs.tooltip', function()
{
$('#ModalNewsletter' ).modal( 'hide' );
$nl_email.off( 'hidden.bs.tooltip' );
});
$nl_email.attr( 'title', 'Thanks for Subscribing!' ).tooltip( 'fixTitle' ).tooltip( 'show' );
setTimeout( function()
{
$nl_email.tooltip( 'hide' );
}, 2000 );
}
});
}
});
<?php
# CWD
# newsletter email processor
$to = '[email protected]';
@$job = @$_GET[ 'job' ];
@$email = $_POST[ 'nlemail' ];
$error_arr = [];
if ( $job == "" || $job !== "subscribe" )
{
$error_arr[ "error" ] = "jobless";
echo json_encode( $error_arr );
}
else if ( isInjected( $email ) )
{
$error_arr[ "error" ] = "injected";
echo json_encode( $error_arr );
}
else if ( !preg_match( '/^[\w-\._\+%]+@(?:[\w-]+\.)+[\w]{2,6}$/i', $email ) ) // validate format
{
$error_arr[ "error" ] = "invalid";
echo json_encode( $error_arr );
}
else
{
# process
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
// $headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n";
$headers .= 'From: New Account <' . $email . '>' . "\r\n";
$subject = 'New Newsletter Subscription!';
$message = "You've recieved a new subscription from: $email";
//$headers .= 'Cc: [email protected]' . "\r\n";
//$headers .= 'Bcc: [email protected]' . "\r\n";
// Mail it
$success = mail( $to, $subject, $message, $headers );
if ( $success )
{
$error_arr[ "error" ] = "success";
echo json_encode( $error_arr );
}
else
{
$error_arr[ "error" ] = "failed";
echo json_encode( $error_arr );
}
}
// injection check
function isInjected( $str )
{
$injections = array
(
'(&)',
'(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
return preg_match( '/' . join( '|', $injections ) . '/is', $str );
}
?>
materialKit = {
misc:{
navbar_menu_visible: 0
},
LaunchModalNewsLetterForm: function( delay = 1000, ckStat = true )
{
// adding the email join popup
if ( document.cookie.indexOf( "shown=" + ckStat ) < 0 )
{
var show = function()
{
$( '#ModalNewsletter' ).modal( 'show' );
};
$( window ).load( function()
{
var timer = window.setTimeout( show, delay );
});
}
document.cookie = "shown=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/";
},
checkScrollForTransparentNavbar: debounce( function()
{
if( $( document ).scrollTop() > 260 )
{
if( transparent )
{
transparent = false;
$( '.navbar-color-on-scroll' ).removeClass( 'navbar-transparent' );
$( '#pol-nav-svg' ).animate( { width: "110px", padding: "5px" }, 300 );
}
} else {
$( '#pol-nav-svg' ).animate( { width: "145px", padding: "10px" }, 300 );
if( !transparent ) {
transparent = true;
$( '.navbar-color-on-scroll' ).addClass( 'navbar-transparent' );
}
}
}, 17 ),
initSliders: function(){
// Sliders for demo purpose
$('#sliderRegular').noUiSlider({
start: 40,
connect: "lower",
range: {
min: 0,
max: 100
}
});
$('#sliderDouble').noUiSlider({
start: [20, 60] ,
connect: true,
range: {
min: 0,
max: 100
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment