Skip to content

Instantly share code, notes, and snippets.

@nklatt
nklatt / mountsshfs
Last active August 29, 2015 14:11 — forked from pete-otaqui/mountsshfs
mountsshfs with addition of MOUNT_AS variable
#!/bin/sh
## http://ubuntuforums.org/showthread.php?t=430312
## The script will attempt to mount any fstab entry with an option
## "...,comment=$SELECTED_STRING,..."
## Use this to select specific sshfs mounts rather than all of them.
SELECTED_STRING="sshfs"
## mount as user, default = "root"
MOUNT_AS="root"
@nklatt
nklatt / myApp.js
Last active August 29, 2015 14:18
Extending Angular number inputs to validate for step attribute
angular
.module('myApp', [])
.directive("step", function() {
return {
restrict: "A",
require: "ngModel",
link: function(scope, element, attributes, ngModelCtrl) {
ngModelCtrl.$validators.step = function(modelValue, viewValue) {
var isValid = true; // assumed innocent until proven guilty
if ( ! ngModelCtrl.$isEmpty(modelValue) ) { // empty is okay
@nklatt
nklatt / dbTablesLoop.php
Created November 17, 2015 15:42
Loop over all tables in a database.
use Illuminate\Database\Capsule\Manager as DB;
$capsule->addConnection(array(
'host' => 'localhost',
'database' => 'information_schema',
'username' => 'usr',
'password' => 'pwd',
'collation' => 'utf8_general_ci',
'charset' => 'utf8',
'driver' => 'mysql',
@nklatt
nklatt / add_column.php
Created May 12, 2016 17:11
Ensure a column exists in a MySQL table using concrete5, though that is secondary
<?php defined('C5_EXECUTE') or die(_('Access Denied.'));
function addColumnToTable($table, $column, $type = 'tinyint(1) not null default 0') {
$db = Loader::db();
$qResult = $db->Execute('show columns from `'.$table.'` like "'.$column.'"');
$columnAlreadyExists = false;
foreach ($qResult as $row) {
if (is_array($row) && !empty($row['Field']) && $row['Field'] === $column) {
$columnAlreadyExists = true;
}
}
@nklatt
nklatt / create_attributes.php
Last active May 14, 2020 07:45
Programmatically add new product attribute with options to a Magento 2 store and add to Default attribute group
<?php
defined('STDIN') or die(_("Access Denied. CLI Only"));
// execute from the command line: php <path to magento root>/cli/create_attributes.php
require __DIR__.'/../app/bootstrap.php'; // assuming this file is in /cli under the root magento dir
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
$installer = $bootstrap->getObjectManager()->create('Magento\Catalog\Setup\CategorySetup');
$objectManager = $bootstrap->getObjectManager();
@nklatt
nklatt / concrete5_adjust_file_permissions.php
Last active September 10, 2022 08:10
For Concrete5 v8, how to programmatically set file permissions so that they are only accessible by a single user plus a single group of users and are stored outside of the webroot.
use Concrete\Core\Entity\File\File;
use Concrete\Core\File\Set\Set as FileSet;
use Concrete\Core\File\StorageLocation\StorageLocationFactory as FileStorageLocationFactory;
use Concrete\Core\Permission\Access\Entity\GroupEntity as GroupPermissionAccessEntity;
use Concrete\Core\Permission\Access\Entity\UserEntity as UserPermissionAccessEntity;
use Concrete\Core\Support\Facade\Application;
use Concrete\Core\User\Group\Group as UserGroup;
use PermissionKey;
use UserInfo;
@nklatt
nklatt / 0 intro.txt
Last active July 1, 2023 15:13
Import Google Maps polygons into MySQL
We have a client that ships from multiple warehouses using zones to determine
pricing. They maintain the zones in a Goole Maps document. We are creating a
front end that clients can enter their address and we'll show them what their
shipping options are. We will have the client export their zones as a KML
file and we'll import it into a MySQL database and use ST_Contains to find
the shipping zone(s) customers are in. (They can only be in one zone for any
given warehouse but may be within range of multiple warehouses.)
One thing to point out is there is confusion about the order of latitude and
longitude. Mathematically, it is naturally ordered "longitude, latitude" but
@nklatt
nklatt / iterate_paged_product_collection.php
Last active January 18, 2021 22:43
How to iterate through pages of products in Magento 2 using a Product CollectionFactory.
<?php
namespace Company\Module\Console\Command;
// How to iterate through pages of products in Magento 2 (specifically tested with version 2.3.5-p2) using a
// Product CollectionFactory. This specific example is for a console command that maintains that products that
// meet a certain set of criteria are in the Clearance category. It also happens to show how to include stock
// quantity information with the products.
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\ProgressBar;
@nklatt
nklatt / 0 README
Last active July 7, 2021 18:34
Magento 2 CLI product attribute value checker
I needed a way to check the value of a product attribute so whipped up this
little command line interface tool to do it. It accepts a SKU and a product
attribute code and outputs the value of that attribute for that product.
@nklatt
nklatt / html_responses.php
Created April 6, 2022 19:21
Basic post handler as a HTTP response code example.
<?php
$status = 500; // if we don't change this then the problem is this code
$result = array();
if (empty($_FILES['file']['tmp_name'])) {
$status = 400;
$result['message'] = 'No file found.';
} else if (empty($_FILES['file']['name'])) {
$status = 400;
$result['message'] = 'No file name found.';