This guide assumes you are on Centos or a Redhat / Fedora system.
sudo yum remove java
sudo yum install java-1.7.0-openjdk
sudo yum install java-1.7.0-openjdk-devel
# download Solr
cd ~/| <?php | |
| /** | |
| * This function uploads a file from a URL to the media library, designed to be placed in your own theme or plugin. | |
| * Metadata will be generated and images will generate thumbnails automatically. | |
| * | |
| * HOW TO USE: | |
| * 1. Add the function below to your theme or plugin | |
| * 2. Call the function and provide the URL to an image or other file. | |
| * 3. If successful, the attachment ID will be returned. |
| { | |
| "presets": [ | |
| [ "env", { | |
| "modules": false, | |
| "targets": { | |
| "browsers": [ | |
| "last 2 Chrome versions", | |
| "last 2 Firefox versions", | |
| "last 2 Safari versions", | |
| "last 2 iOS versions", |
| <?php | |
| /* | |
| * Loop through Categories and Display Posts within | |
| */ | |
| $post_type = 'features'; | |
| // Get all the taxonomies for this post type | |
| $taxonomies = get_object_taxonomies( array( 'post_type' => $post_type ) ); | |
| foreach( $taxonomies as $taxonomy ) : |
| /** | |
| * VH and VW units can cause issues on iOS devices: http://caniuse.com/#feat=viewport-units | |
| * | |
| * To overcome this, create media queries that target the width, height, and orientation of iOS devices. | |
| * It isn't optimal, but there is really no other way to solve the problem. In this example, I am fixing | |
| * the height of element `.foo` —which is a full width and height cover image. | |
| * | |
| * iOS Resolution Quick Reference: http://www.iosres.com/ | |
| */ | |
Writing unit tests for your craft plugin has not been straight forward out of the gate but P&T is taking steps to fully integrate unit testing and have already added the basic necessities to do so.
@craft = /path/to/site/craft
@craftTests = @craft/app/tests
Most developers would agree that, all other things being equal, a synchronous program is easier to work with than an asynchronous one. The logic for this is pretty clear: one flow of execution is easier for the human mind to simulate than n concurrent flows.
After doing two small projects in node.js (one of which is here -- ready for the blinding flurry of criticism), there's one question that I can't shake: if asynchronicity is an optimization (that is, a complexity introduced for the sake of performance), why would people, a priori, turn to a framework that imposes it for everything? If asynchronous code is harder to reason about, why would we elect to live in a world where it is the default?
It could be argued pretty well that the browser is a domain that inherently lends itself to an async model, but I'd be very curious to hear a defense of "async-first" thinking for problems that are typically solved on the server-side. When working with node, I've noticed
| /*------------------------------------------ | |
| Responsive Grid Media Queries - 1280, 1024, 768, 480 | |
| 1280-1024 - desktop (default grid) | |
| 1024-768 - tablet landscape | |
| 768-480 - tablet | |
| 480-less - phone landscape & smaller | |
| --------------------------------------------*/ | |
| @media all and (min-width: 1024px) and (max-width: 1280px) { } | |
| @media all and (min-width: 768px) and (max-width: 1024px) { } |
| <?php | |
| add_action( 'wp_enqueue_scripts', 'enqueue_my_styles' ); | |
| /** | |
| * Example callback function that demonstrates how to properly enqueue conditional stylesheets in WordPress for IE. | |
| * IE10 and up does not support conditional comments in standards mode. | |
| * | |
| * @uses wp_style_add_data() WordPress function to add the conditional data. | |
| * @link https://developer.wordpress.org/reference/functions/wp_style_add_data/ |
| //addEventListener polyfill 1.0 / Eirik Backer / MIT Licence | |
| (function(win, doc){ | |
| if(win.addEventListener)return; //No need to polyfill | |
| function docHijack(p){var old = doc[p];doc[p] = function(v){return addListen(old(v))}} | |
| function addEvent(on, fn, self){ | |
| return (self = this).attachEvent('on' + on, function(e){ | |
| var e = e || win.event; | |
| e.preventDefault = e.preventDefault || function(){e.returnValue = false} | |
| e.stopPropagation = e.stopPropagation || function(){e.cancelBubble = true} |