Skip to content

Instantly share code, notes, and snippets.

@johandouma
johandouma / gist:73b5da17334773138d60
Last active January 16, 2016 08:12
Craft CMS + Foundation Top Bar Twig Macro
{% macro menu(entries, active, level) %}
{% if entries|length %}
{% set level = level|default(1) %}
<ul class="level-{{ level }} {{ level > 1 ? "dropdown sub" : "left top" }}">
{% for n in entries %}
<li class="{{ loop.first ? "first" : "" }} {{ loop.last ? "last" : "" }}
{%- if n.children|length %}has-dropdown{% endif %}
{%- if active is defined and (active.descendantOf(n) or active.id == n.id) %} active{% endif %}">
<a href="{{ n.url }}">
{{ n }}
@pafnuty
pafnuty / init.php
Last active June 5, 2017 17:43
Вывод отладки в Bitrix через Kint
<?
# /local/php_interface/init.php
/**
* Вывод дебага через класс Kint
* @author Павел Белоусов <pb@infoexpert.ru>
*
* @param mixed $var Данные, которые требуется вывести
* @param string $function Функция, вызываемая из класса Kint. По умолчанию 'd'. Можно передать s, cd или ddd
* @param boolean $bAllUsers True — выводить всем пользователям (по умолчанию только для админов)
@GromNaN
GromNaN / detect-utf8.php
Created December 1, 2011 22:54
How to detect UTF-8 string in PHP
<?php
function isUtf8($string)
{
return preg_match('%(?:'
. '[\xC2-\xDF][\x80-\xBF]' // non-overlong 2-byte
. '|\xE0[\xA0-\xBF][\x80-\xBF]' // excluding overlongs
. '|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}' // straight 3-byte
. '|\xED[\x80-\x9F][\x80-\xBF]' // excluding surrogates
. '|\xF0[\x90-\xBF][\x80-\xBF]{2}' // planes 1-3
@pongo
pongo / .htaccess
Last active March 5, 2020 07:49
serves a .webp image instead of jpg/png
<IfModule mod_rewrite.c>
RewriteEngine On
# serves a .webp image instead of jpg/png
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} ^(.+)\.(jpe?g|png)$
RewriteCond %1\.webp -f
RewriteRule ^(.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1]
</IfModule>
@jdewit
jdewit / unuconvd_template
Last active March 21, 2021 03:38
unoconv daemon
### BEGIN INIT INFO
# Provides: unoconvd
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: unoconvd Converting documents to PDF by unoconv
### END INIT INFO
#!/bin/sh
case "$1" in
@gunnarlium
gunnarlium / guzzle-retry.php
Created December 17, 2015 16:23
Example of how to create a retry subscriber for Guzzle 6
<?php
use GuzzleHttp\Client;
use GuzzleHttp\Exception\ConnectException;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Handler\CurlHandler;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Psr7\Request as Psr7Request;
use GuzzleHttp\Psr7\Response as Psr7Response;
use Psr\Log\LoggerInterface;
const MAX_RETRIES = 2;
@bob-lee
bob-lee / polyfill-ie11-nodelist-foreach.js
Created November 24, 2017 18:41
Polyfill for IE11 missing NodeList.forEach
if ('NodeList' in window && !NodeList.prototype.forEach) {
console.info('polyfill for IE11');
NodeList.prototype.forEach = function (callback, thisArg) {
thisArg = thisArg || window;
for (var i = 0; i < this.length; i++) {
callback.call(thisArg, this[i], i, this);
}
};
}
@Thinkscape
Thinkscape / EffectiveUrlMiddleware.php
Last active October 4, 2022 18:30
getEffectiveUrl() replacement for Guzzle 6.*
<?php
namespace Thinkscape\Guzzle;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
class EffectiveUrlMiddleware
{
/**
* @var Callable
@wpscholar
wpscholar / array-insert-after.php
Created November 7, 2015 13:04
Insert a value or key/value pair after a specific key in an array. If key doesn't exist, value is appended to the end of the array.
<?php
/**
* Insert a value or key/value pair after a specific key in an array. If key doesn't exist, value is appended
* to the end of the array.
*
* @param array $array
* @param string $key
* @param array $new
*
@samcrosoft
samcrosoft / random_dates.php
Created September 13, 2013 13:09
A PHP Method to generate random dates between two dates specificed with a format
<?php
/**
* Method to generate random date between two dates
* @param $sStartDate
* @param $sEndDate
* @param string $sFormat
* @return bool|string
*/
function randomDate($sStartDate, $sEndDate, $sFormat = 'Y-m-d H:i:s')
{