Skip to content

Instantly share code, notes, and snippets.

View gregogalante's full-sized avatar
✌️
What's happening?

Gregorio Galante gregogalante

✌️
What's happening?
View GitHub Profile
@gregogalante
gregogalante / CustomArraySort.js
Last active August 30, 2018 10:33
CustomArraySort.js
/**
* @param {array} array
* @param {string} attribute
* @param {array} sortOrder
*/
function customArraySort (array, attribute, sortOrder) {
let ordering = {}
for (let i = 0; i < sortOrder.length; i++) {
ordering[sortOrder[i]] = i
}
function timeBetweenDates (dateTo, dateFrom) {
// get total seconds between the times
let delta = Math.abs(date_future - date_now) / 1000
// calculate (and subtract) whole days
let days = Math.floor(delta / 86400)
delta -= days * 86400
// calculate (and subtract) whole hours
let hours = Math.floor(delta / 3600) % 24
delta -= hours * 3600
// calculate (and subtract) whole minutes
@gregogalante
gregogalante / SidebarSections.js
Last active March 5, 2018 13:15
A module to create a sidebar sections navigation based on content titles.
var SidebarSections = (function () {
var CONTENT_CONTAINER = 'YOUR CONTENT CONTAINER SELECTOR'
var SIDEBAR_CONTAINER = 'YOUR SIDEBAR CONTAINER SELECTOR'
var _titles = []
var _titlesGroup = []
// This function is used to initialize the module.
var init = function () {
@gregogalante
gregogalante / SnakeToCamelCase.js
Last active March 5, 2018 11:40 — forked from emcmanus/snakeToCamelCase.js
ES6 module to recursively convert snake case keys in an object to camel case using lodash.
export function camelCaseKeys(object) {
let camelCaseObject = _.cloneDeep(object)
if (_.isArray(camelCaseObject)) {
return _.map(camelCaseObject, camelCaseKeys)
}
if (_.isString(camelCaseObject)) {
return camelCaseObject
}
camelCaseObject = _.mapKeys(camelCaseObject, (value, key) => _.camelCase(key))
@gregogalante
gregogalante / WoocommerceConditionalPaymentMethods.php
Last active August 11, 2020 00:19
Set conditional payments method based on shipping method select by the user.
<?php
// Hide payment gateways based on shipping method
function payment_gateway_disable( $available_gateways ) {
global $woocommerce;
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if( $chosen_shipping == 1479475819 ) {
unset($available_gateways['cod']);
}
@gregogalante
gregogalante / PaperclipDynamicStyle.rb
Created February 8, 2018 09:35
Set custom Paperclip attachments style based on specific attribute extra value.
class Attachment < ApplicationRecord
has_attached_file :file,
styles: ->(a) { a.instance.paperclip_styles },
path: 'public/system/:class/:id/:style_:filename',
url: '/system/:class/:id/:style_:filename'
validates_attachment_presence :file
def paperclip_styles
@gregogalante
gregogalante / ScrollEffect.js
Last active February 12, 2016 13:06
Effetto di comparsa elementi durante lo scrolling. Funzione dipendente dal plugin jquery-visible (https://github.com/customd/jquery-visible).
// Funzione da richiamare nel document.ready
var scrollEffectsInit = function() {
if($(window).width() > 1024) {
$('.animate').css('opacity', '0');
$('.animate-left').css('left', '-100px');
$('.animate-right').css('right', '-100px');
$('.animate-top').css('top', '-100px');
$('.animate-bottom').css('bottom', '-100px');
}
}
@gregogalante
gregogalante / SocialTags.html
Last active February 12, 2016 13:07
Metatags base per il supporto social da parte del sito web.
<meta name="description" content="Page description. No longer than 155 characters." />
<!-- Twitter Card data -->
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@publisher_handle">
<meta name="twitter:title" content="Page Title">
<meta name="twitter:description" content="Page description less than 200 characters">
<meta name="twitter:creator" content="@author_handle">
<!-- Twitter Summary card images must be at least 120x120px -->
<meta name="twitter:image" content="http://www.example.com/image.jpg">
@gregogalante
gregogalante / WpRemoveMenu.php
Last active February 12, 2016 13:07
Codice per nascondere le voci del menu di Wordpress agli utenti.
<?php
function remove_menus(){
// remove_menu_page( 'index.php' ); //Dashboard
remove_menu_page( 'edit.php' ); //Posts
remove_menu_page( 'upload.php' ); //Media
remove_menu_page( 'edit.php?post_type=page' ); //Pages
remove_menu_page( 'edit-comments.php' ); //Comments
remove_menu_page( 'themes.php' ); //Appearance
remove_menu_page( 'plugins.php' ); //Plugins
@gregogalante
gregogalante / WpRemoveUpdates.php
Last active February 12, 2016 13:09
Disattivare gli aggiornamenti di Wordpress dal function.php.
<?php
// Rimozione aggiornamenti wp
add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );
// Rimozione aggiornamenti wp-plugin
add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );
?>