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 / 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.';
@nklatt
nklatt / MySQL copy rows with tweaks
Created August 29, 2022 21:52
PHP code that generates a MySQL query to copy rows from a table to the same table but with some column values changed.
$table = 'some_table';
$columns = implode(',', array(
'title',
'description',
'etc...',
));
$sql = '
INSERT INTO '.$some_table.' (product_id, '.$columns.')
SELECT "'.$destId.'", '.$columns.'
FROM '.$some_table.' WHERE product_id = "'.$origId->id.'"
@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;