Skip to content

Instantly share code, notes, and snippets.

piotrpog

Block or report user

Report or block piotrpog

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
@piotrpog
piotrpog / pagination_ellipsis.twig
Last active Jun 24, 2019
Pagination template component for Craft CMS. Excessive links are replaced by elipsis. More info: http://craftsnippets.com/articles/ellipsis-pagination-component-for-craft-cms
View pagination_ellipsis.twig
{# v3 #}
{# http://craftsnippets.com/articles/ellipsis-pagination-component-for-craft-cms #}
{# requires pageInfo variable #}
{# settings #}
{% set neighbours = 1 %}
{# symbols #}
{% set prev = '❮' %}
{% set next = '❯' %}
@piotrpog
piotrpog / emailLinks.twig
Created Apr 25, 2019
Twig macro converting email addresses in text into links secured from spambots. More info: http://craftsnippets.com/articles/converting-email-addresses-into-links-using-twig-macro
View emailLinks.twig
@piotrpog
piotrpog / breadcrumb_seomatic.twig
Last active Apr 14, 2019
Breadcrumb template component for Craft CMS based on Seomatic plugin. More info on http://craftsnippets.com/articles/breadcrumb-created-from-url-for-craft-cms
View breadcrumb_seomatic.twig
{% v1 %}
% set breadcrumbLinks = seomatic.jsonLd.get('breadcrumbList').itemListElement %}
{% if breadcrumbLinks|length > 1 %}
<nav class="breadcrumb" aria-label="{{'breadcrumbs'|t}}">
<ul>
{% for link in breadcrumbLinks %}
<li class="{{loop.last ? 'is-active'}}" {{loop.last ? 'aria-current="page"'}}>
<a href="{{ link.item['@id'] }}">
<span itemprop="name">{{ link.item['name'] }}</span>
View breadcrumb.twig
{# v3 #}
{# http://craftsnippets.com/articles/breadcrumb-created-from-url-for-craft-cms #}
{# settings #}
{% set nonElementLinks = false %}
{# populate breadcrumbLinks array if no array of links was provided #}
{% if breadcrumbLinks is not defined %}
{% set breadcrumbLinks = [] %}
{# home #}
View element-api.php
<?php
use craft\elements\Entry;
return [
'endpoints' => [
'search.json' => function() {
// settings
$section_handle = 'articles';
$phrase = Craft::$app->request->getParam('query');
View feed.rss
{% spaceless %}
{# settings #}
{% set title = siteName %}
{% set channelDescription = 'description' %}
{% set descriptionHandle = 'intro' %}
{% set items = craft.entries.section('articles').limit(50) %}
{# feed #}
{% if craft.app.request.segments|last == _self %}
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
View app.php
<?php
return [
'components' => [
'mailer' => function() {
$settings = \craft\helpers\App::mailSettings();
$settings->transportType = \craft\mail\transportadapters\Smtp::class;
$settings->transportSettings = [
'useAuthentication' => true,
'host' => getenv('SMTP_HOST'),
'port' => getenv('SMTP_PORT'),
@piotrpog
piotrpog / quick_edit.twig
Last active Jul 6, 2019
Quick edit link component for Craft CMS. More info on http://craftsnippets.com/articles/quick-edit
View quick_edit.twig
{# v3 #}
{% if currentUser and currentUser.can('accessCp') and not craft.app.request.isLivePreview %}
{% set element = element|default(craft.app.urlManager.matchedElement) %}
{% if element and element.isEditable %}
{% set editLink = element.getCpEditUrl() %}
{% set editText = 'edit'|t %}
{% else %}
{% set editLink = cpUrl() %}
{% set editText = 'control panel'|t %}
{% endif %}
@piotrpog
piotrpog / Craft CMS - URL macro
Last active Mar 4, 2019
This macro fetches routes into Twig template. More info on http://craftsnippets.com/articles/url-macro
View Craft CMS - URL macro
{# v2 #}
{% macro url(routeName, tokens) %}
{% spaceless %}
{% set keyword = 'name' %}
{% set routeString = null %}
{% for route, routeSettings in craft.app.routes.getConfigFileRoutes %}
{% if routeSettings[keyword] is defined and routeSettings[keyword] == routeName %}
{% set routeString = route %}
{% endif %}
View gist:a7e56ea2713ea5d0fab451c3e282ecfd
var gulp = require('gulp');
var concat = require('gulp-concat');
var sourcemaps = require('gulp-sourcemaps');
var sass = require('gulp-sass');
var browserSync = require('browser-sync').create();
const notifier = require('node-notifier');
gulp.task('dev', ['sass:development', 'watch:development', 'browser-sync']);
gulp.task('default', ['dev']);
You can’t perform that action at this time.