Skip to content

Instantly share code, notes, and snippets.

GDmac GDmac

  • Netherlands
Block or report user

Report or block GDmac

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@GDmac
GDmac / upload_example.php
Created Apr 1, 2019
composing objects and make methods and objects testable
View upload_example.php
<?php
require_once __DIR__ . '/../vendor/autoload.php';
$uploadHandler = new \Acme\FileUpload\UploadHandler();
$uploadHandler
->setFormFieldName('upload')
->setTargetDirectory(__DIR__ . '/../uploads')
->addValidator(new JpegFileTypeValidator())
->addValidator(new maxFileSizeValidator(4096))
@GDmac
GDmac / rollyourown.php
Created Mar 27, 2019 — forked from mathiasverraes/rollyourown.php
We don't need no DIC libs / we don't need no deps control
View rollyourown.php
<?php
// Context: I'm trying to argue that DI (and DIC) are great, and DIC libs suck.
// Happy to be proven wrong!
final class Router {
private $dependencies;
public function __construct (Dependencies $dependencies) {
$this->dependencies = $dependencies;
// You might say that this is Service Locator, but it's not. This router is toplevel,
// and toplevel must have access to dependencies. After that it can all just bubble nicely using proper DI.
@GDmac
GDmac / pi.debug_override.php
Created Jun 22, 2014
Debug Override plugin, disable ExpressionEngine template debugging from a template
View pi.debug_override.php
<?php
$plugin_info = array(
'pi_name' => 'debug_override',
'pi_version' =>'1.0',
'pi_author' =>'GDmac',
'pi_author_url' => '',
'pi_description' => '',
'pi_usage' => '{exp:debug_override override="all|ajax"} default is override on ajax calls',
);
@GDmac
GDmac / hello.php
Created May 25, 2014
Simple request
View hello.php
<?php
$req = parse_url($_SERVER['REQUEST_URI']);
// querystring
isset($req['query']) ? parse_str($req['query'], $req['query_arr']) : $req['query_arr'] = array();
// route
$req['route'] = substr($_SERVER['PHP_SELF'], strlen($_SERVER['SCRIPT_NAME']));
@GDmac
GDmac / Readme.md
Last active Aug 29, 2015
Protected Pages Bolt.cm extension
View Readme.md

ProtectedPages extension

Make sections of your site (template) accessible to members only.

Quick Setup

Create a template with a loginform and the processform tag. The form should at least provide username, password and action. e.g.:

@GDmac
GDmac / rfc.md
Last active Aug 29, 2015
Mobile sharing buttons (app or website)
View rfc.md

Sharing on the mobile platform

Many smartphone users (probably most) use dedicated apps for their social sharing. However, when clicking on a share button on websites, the user is redirected to the website instead of to the app for twitter and facebook. This document tries to offer an alternative route for sharing on mobile.

User story and technique

  1. When a user clicks the share button for the first time
    ask if he/she wants to use an app or to go to the website.
    Use local storage (jstorage) or cookies to store user preferences.
  2. When the user wants to use the app, use a small script to verify
View pi.example_plugin.php
<?php
$plugin_info = array(
'pi_name' => 'example_plugin',
'pi_version' => '0.1',
'pi_author' => 'John Doe',
'pi_author_url' => '',
'pi_description' => '',
'pi_usage' => '',
);
View pi.admin_edit_link.php
@GDmac
GDmac / database_DB_driver.php
Last active Dec 29, 2015
Codeigniter profiler, where are the queries coming from ?
View database_DB_driver.php
<?php
// from http://php.net/manual/en/function.debug-backtrace.php#111255
// adapted for codeigniter
// database/DB_driver.php method query()
//...
// Save the query for debugging
if ($this->save_queries == TRUE)
{
$this->queries[] = $sql . "\n# ".get_caller_info();
@GDmac
GDmac / EE_ftp.php
Last active Dec 29, 2015 — forked from davist11/Ftp.php
Call with $this->EE->load->library('my_ftp'); It will load CI_ftp and replace $this->EE->ftp with your ftp class
View EE_ftp.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once(BASEPATH . 'libraries/Ftp.php');
class EE_FTP extends CI_FTP {
var $timeout = 90;
/**
* FTP Connect
You can’t perform that action at this time.