Skip to content

Instantly share code, notes, and snippets.

💭
😄

Takuro Hishikawa hissy

💭
😄
View GitHub Profile
@hissy
hissy / app.php
Last active Jul 1, 2020
[concrete5] Add express entry details into sitemap.xml
View app.php
<?php
/* @var Concrete\Core\Application\Application $app */
/* @var Concrete\Core\Console\Application $console only set in CLI environment */
/** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $director */
$director = $app->make(\Symfony\Component\EventDispatcher\EventDispatcherInterface::class);
$director->addListener('on_sitemap_xml_ready', static function ($event) use ($app) {
/** @var \Concrete\Core\Page\Sitemap\Event\XmlReadyEvent $event */
$xml = $event->getDocument();
@hissy
hissy / app.php
Created Jul 1, 2020
[concrete5] Add express entry details into sitemap.xml
View app.php
<?php
/* @var Concrete\Core\Application\Application $app */
/* @var Concrete\Core\Console\Application $console only set in CLI environment */
/** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $director */
$director = $app->make(\Symfony\Component\EventDispatcher\EventDispatcherInterface::class);
$director->addListener('on_sitemap_xml_ready', static function ($event) use ($app) {
/** @var \Concrete\Core\Page\Sitemap\Event\XmlReadyEvent $event */
$xml = $event->getDocument();
@hissy
hissy / controller.php
Created Jul 1, 2020
[concrete5] Example: Customize SEO meta tags for express entry detail
View controller.php
<?php
namespace Application\Block\ExpressEntryDetail;
use Concrete\Core\Html\Service\Seo;
use Concrete\Core\Url\SeoCanonical;
class Controller extends \Concrete\Block\ExpressEntryDetail\Controller
{
public function action_view_express_entity($exEntryID = null)
{
@hissy
hissy / generate_list.php
Last active Jun 30, 2020
[concrete5] List of block types
View generate_list.php
| Block Type Handle | Block Type Name |
| ---- | ---- |
<?php
$types = \Concrete\Core\Block\BlockType\BlockTypeList::getInstalledList();
/** @var \Concrete\Core\Entity\Block\BlockType\BlockType $type */
foreach ($types as $type) {
echo sprintf('|%s|%s|', $type->getBlockTypeHandle(), $type->getBlockTypeName());
echo PHP_EOL;
}
@hissy
hissy / clear_empty_workflow_progress.php
Last active Jun 12, 2020
[concrete5 legacy] A job to deletes empty "Compare Versions" alerts.
View clear_empty_workflow_progress.php
<?php
defined('C5_EXECUTE') or die("Access Denied.");
class ClearEmptyWorkflowProgress extends Job
{
public function getJobName()
{
return t("Clear Empty Workflow Progress");
@hissy
hissy / database.php
Created May 18, 2020
#concrete5 set sql_mode from config file
View database.php
<?php
/**
* How to set sql_mode from database.php
* It will help to solve the error like "SQLSTATE[42000]: Syntax error or access violation:
* 1055 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column
* 'concrete5.cv.cvPublishDate' which is not functionally dependent on columns in GROUP BY clause;
* this is incompatible with sql_mode=only_full_group_by"
*/
View empty_trash.php
<?php
use Concrete\Core\Page\Page;
use Concrete\Core\Page\PageList;
use Concrete\Core\Support\Facade\Facade;
$app = Facade::getFacadeApplication();
$app->make('cache/request')->disable();
$app->make('cache/expensive')->disable();
$app->make('cache')->disable();
@hissy
hissy / bulk_clear_page_paths.php
Last active Oct 23, 2019
#concrete5 c5:exec command to bulk clear page paths for all pages
View bulk_clear_page_paths.php
<?php
$list = new \Concrete\Core\Page\PageList();
$list->ignorePermissions();
$pages = $list->getResults();
$count = 0;
/** @var \Concrete\Core\Page\Page $page */
foreach ($pages as $page) {
@hissy
hissy / bulk_change_page_template.php
Last active Oct 1, 2019
#concrete5 c5:exec command to bulk change page type & template
View bulk_change_page_template.php
<?php
/**
* Usage:
* concrete/bin/concrete5 c5:exec bulk_change_page_template.php old_page_template_handle /parent-page-path new_page_template_handle
*/
$filterPageTemplateHandle = $args[0];
$filterPagePath = $args[1];
$changePageTemplateHandle = $args[2];
@hissy
hissy / bulk_change_storage_location.php
Last active Sep 30, 2019
#concrete5 Bulk change storage location for entire file manager
View bulk_change_storage_location.php
<?php
use Concrete\Core\Entity\File\File;
use Concrete\Core\File\FileList;
use Concrete\Core\File\StorageLocation\StorageLocationFactory;
use Concrete\Core\Support\Facade\Facade;
$app = Facade::getFacadeApplication();
/** @var StorageLocationFactory $factory */
$factory = $app->make(StorageLocationFactory::class);
You can’t perform that action at this time.