Projects

  • WooCommerce Domain Names

    This plugin is designed for domain names resellers. Currently, it only provides the sale part, actual registration has to be done manually.

  • woocommerce-bookings-sync-unpaid

    Include unpaid bookings in Google Calendar synchronization, to ensure bookings waiting for payments are already blocked in external calendars.

    Useful if your policy is to set an option for booking requests, or if you collect payments later.

    This is a simple implementation, as documented on https://woocommerce.com/document/google-calendar-integration/#section-7

  • WallOli

    WallOli is a cross-platform tool designed to display a grid of videos across one or multiple screens. Leveraging VLC for video playback, this application ensures smooth and synchronized video presentations.

  • w4os – OpenSimulator Web Interface

    Ready to use WordPress interface for OpenSimulator. Provides user registration, default avatar model choice, login info, statistics and a web assets server for grids or standalone simulators.

    Full installation instructions: (https://gudulelapointe.github.io/w4os/INSTALLATION.html)

    See Features and Roadmap sections for current and upcoming functionalties.

  • Sprout Invoices

    Create estimates and invoices within your WordPress site. Accept invoice payments from multiple payment processors.

    Our mission at Sprout Invoices is to build a suite of apps to help small businesses and freelancers work more efficiently by reducing those tedious tasks we have to perform to get paid.

    Sprout Invoice Features

    Make sure to checkout the Sprout Invoices features page for more detailed information. As well as the full featured demo.

    The short list…

    • Time tracking (coming soon)
    • Recurring payments (coming soon)
    • Payment terms (coming soon)

    Please note that this feature list is incomplete, since it’s long enough.

    Download the most advanced Estimates and Invoicing plugin!

    A fully featured upgrade and add-on marketplace are available.

    Flexibility built in

    While Sprout Invoices automates many of the tasks to improve workflow the power comes from customization.

    Custom Estimate and Invoice Templates Estimates can be fully customized via a new theme template. If you’re familiar with customizing a WordPress theme templates than you can create a custom estimate.

    Notification Editing Notifications can be plain-text or HTML. Editing the entire content of a notification is simple with shortcodes that add dynamic content.

    Plenty of Payment Methods Accept credit cards via Paypal Pro or send them to Paypal for invoice payments. P.O. and checks options are also provided.

    Hundreds of Hooks Over two hundred filters and actions allow you to hook into Sprout Invoices and alter whatever you’d like.

    The Sprout Invoices Process

    Sprout Invoices helps streamline the complex workflow of accepting estimates and getting invoices paid.

    Requests

    Receiving estimate requests on your site is simplified with Sprout Invoices. Use the customizable default form or integrate with an existing form built a favorite form builder plugin, e.g. Gravity Forms or Ninja Forms.

    Estimating

    Estimates are automatically created based on estimate request submissions from your site. Review, update, and send the estimate to your new client without having to depend on communicating via email first.

    Invoicing

    Invoices are automatically generated from accepted estimates speeding up the process of getting paid. Sprout Invoices understands deposit payments and doesn’t have the same hoops other invoice services require.

    Installation

    1. Upload plugin folder to the /wp-content/plugins/ directory
    2. Activate the plugin through the ‘Plugins’ menu in WordPress

    Frequently Asked Questions

    Please visit Sprout Invoices.

    Support

    More info coming soon.

  • Ranger

    Ranger is a formatter for date and time ranges, based (somewhat loosely) on Adam Shaw’s formatRange algorithm in fullCalendar.

    Some Examples

    
    <?php
    use OpenPsaRangerRanger;

    $ranger = new Ranger(‘en’); echo $ranger->format(‘2013-10-05’, ‘2013-10-20’); // Oct 5–20, 2013 echo $ranger->format(‘2013-10-05’, ‘2013-11-20’); // Oct 5 – Nov 20, 2013

    $ranger = new Ranger(‘en_GB’); echo $ranger->format(‘2013-10-05’, ‘2013-10-20’); // 5–20 Oct 2013 echo $ranger->format(‘2013-10-05’, ‘2013-11-20’); // 5 Oct – 20 Nov 2013

    $ranger = new Ranger(‘de’); echo $ranger->format(‘2013-10-05’, ‘2013-10-20’); // 05.–20.10.2013 echo $ranger->format(‘2013-10-05’, ‘2013-11-20’); // 05.10.–20.11.2013

    Usage

    To use Ranger in any other locale than "en", you will need to have the php-intl extension installed.

    Instantiate ranger with the name of your locale as the parameter. You can also pass null to use the ini.default_locale setting. Afterwards, you can call format() with two date parameters. Accepted types are

    • DateTime objects
      • strings (any format that DateTime can read)
      • Unix timestamps
      • null (which means current date).

    Output Customization

    
    <?php
    use OpenPsaRangerRanger;
    use IntlDateFormatter;

    $ranger = new Ranger(‘en’); $ranger ->setRangeSeparator(‘ and ‘) ->setDateTimeSeparator(‘, between ‘) ->setDateType(IntlDateFormatter::LONG) ->setTimeType(IntlDateFormatter::SHORT);

    echo $ranger->format(‘2013-10-05 10:00:01’, ‘2013-10-05 13:30:00’); // October 5, 2013, between 10:00 AM and 1:30 PM

  • Project Donations for WooCommerce

    Collect donations for different projects with a WooCommerce product.

    If you are like me, you work on several projects and would like to simply collect donations for them, without bothering creating and configuring a product for each project.

    This plugin is mostly intended to be easy to set up. It is mostly usefull if you want to get donations and need or already use WooCommerce platform.

  • PHP Library for Project Version Management

    Version Stable License

    This library provides tasks for automating versioning of your PHP projects.

    It allows you to increment the version based on different levels (major, minor, patch, dev, beta, rc), and update version references in various files such as PHP files, README.md, package.json, and readme.txt.

    Installation

    Run the following command in your project directory:

    composer require --dev magicoli/php-bump-library

    And add the following script to your composer.json file:

     "scripts": {
        "bump-version": "robo --load-from=vendor/magicoli/php-bump-library/RoboFile.php bump:version"
      }

    Usage

    composer bump-version [level]

    Replace [level] with the desired level of version increment, such as major, minor, patch, rc, beta, or dev. If you ommit it, the default level is patch.

    Alternatively, you can run the script directly with the following command:

    robo bump:version
    # or
    robo --load-from=path/to/RoboFile.php bump:version

    Make sure to adjust RoboFile.php to the actual path of the file in your project.

    About Versioning

    Semantic Versioning follows a specific order of version increments:

    Development stages (M.m.p-stage):

    • Dev: development versions that are not yet stable or released.
    • Beta: pre-release versions that are closer to the stable release but may still have minor issues.
    • RC: release candidates, which are close to the final release but may require additional testing.

    Releases (M.m.p):

    • Patch: backward-compatible bug fixes.
    • Minor: added functionality, still backward-compatible manner.
    • Major: big bada boom.

    Note that dev, beta, and rc versions are considered inferior to the normal versions and are typically used in pre-release stages or development cycles: 1.0-dev < 1.0-beta < 1.0-rc < 1.0.

    For example, if your version is 1.0.0 and you bump it on the dev level, new version will be 1.0.1-dev (note the pach increment). If you bump the dev to beta, it will keep its main version and become 1.0.1-beta. And if you bump 1.0.1-beta without arguments, the new version will be 1.0.1.

    License

    This library is licensed under the AGPL-v3 License.

  • These tools are deprecated

    And they are likely to bug on recent OpenSim installations. Please have a look at opensim-debian instead

    Authors: Olivier van Helden, Gudule Lapointe (Speculoos.net) http://www.speculoos.net/opensim-toolbox Reditribution, modification and use are authorized, provided that this disclaimer, the authors name and Speculoos web address stay in the redistributed code

    Linux OpenSim-Toolbox

    Linux OpenSim Toolbox, a set of useful tools to manage OpenSim servers on Linux, FreeBSD and MacOS.

    Should work as is on most *nix based systems, including

    • Linux (tested on Debian Squeeze, Ubuntu 10.04 and 11.10)
    • FreeBSD (tested on 8.2)
    • MacOS (tested on 10.7)

    INSTALLATION

    Tools must be installed on the system hosting the authentication server. They need access to the mysql database and some need access to log files or config files They can be put anywhere in your filesystem tree, we suggest keeping the directory structure and put it in /opt/opensim

    After installing, you must copy etc/opensim-toolbox.example to one of these locations: /etc/opensim-toolbox ~/etc/opensim-toolbox [opensim-toolbox bin parent directory]/etc/opensim-toolbox

    Preference files will be loaded in this order

    INCLUDED FILES

    etc/opensim-cacheusers.example copy this file to etc/opensim-cacheusers and adjust according to your installation

    bin/opensim-cacheusers Parse log file to fetch new hypergrid user connection data and update mysql cacheusers table. These data are needed to calculate visit statistics (particularly, hg active "last month" users)

    bin/helpfunctions A set of functions and variable initialisation used in other tools. Useless to run it directly, it is called from other scripts

  • OpenSimulator REST PHP library and command-line client

    Version 1.0.5 Stable 1.0.5 Requires PHP 5.7 License AGPLv3

    This library allows to communicate with Robust or OpenSimulator instance with rest console enabled.

    It can be used inside a PHP project, or as a command-line client for OpenSimulator grids.

    Available commands can be found here: http://opensimulator.org/wiki/Server_Commands

    Prerequisites

    Remote connection must be enabled in your Robust .ini file.

    Do not leave default values!. You should never need to type username and password manually, so you can safely generate long random strings.

    You must choose a specific port, not already used by another service. It is good practice to limit access to this port to authorized IP addresses only in your firewall settings.

    [Network]
      ConsoleUser = arandomgeneratedstring
      ConsolePass = anotherrandomgeneratedstring
      ConsolePort = 8009
      ; choose a port not already used by another service

    Command-line client

    Download the executable from this repository, make sure opensim-rest-cli is executable and move it to /usr/local/bin/.

    chmod +x /path/to/opensim-rest-cli
    sudo mv /path/to/opensim-rest-cli /usr/local/bin/opensim-rest-cli

    You can run commands like

    opensim-rest-cli /path/to/Robust.ini show info
    opensim-rest-cli /path/to/Robust.ini show regions

    If you save the credentials in ~/.opensim-rest-cli.ini, you can skip the Robust.ini argument.

    opensim-rest-cli show info
    opensim-rest-cli show regions

    PHP class

    Download class-rest.php file in your project or install with composer. Do not keep opensim-rest-cli or opensim-rest-cli.php inside a public website.

    composer require --dev https://github.com/magicoli/opensim-rest-php
    cp magicoli/opensim-rest-php/class-rest.php lib/

    In your project PHP:

    
    require(dirname(__FILE__) . '/lib/class-rest.php');

    $session = opensim_rest_session( array( ‘uri’ => "yourgrid.org:8009", ‘ConsoleUser’ => ‘yourConsoleUsername’, ‘ConsolePass’ => ‘yourConolePassword’, ) );

    if ( is_opensim_rest_error($session) ) { error_log( "OpenSim_Rest error: " . $session->getMessage() ); } else { $responseLines = $session->sendCommand($command); }

    Return value: an array containing the line(s) of response or a PHP Error