Разработка сайтов на WordPress и фреймворке Yii2

Здесь вы можете заказать полный пакет услуг по разработке сайта. Начиная от написания ТЗ до программирования на PHP, JavaScript и верстке.

Как установить параметры по умолчанию для виджета в Yii2

Фреймворк yii2

Для того что бы установить параметры по умолчанию для виджета в Yii2, нужно использовать ф-л внедрения зависимостей (dependency injection).

Пример с DatePicker:

Yii::$container -> set('yii\jui\DatePicker', [
	'language' => 'en-US',
]);

Первым параметром в set у нас идет класс, а вторым - нужные параметры для установки. Таким образом, мы можем изначально настроить наш виджет должным образом.

Свои Grid колонки в фреймворке Yii2

Фреймворк yii2

Продолжаю пополнять свой багаж знаний в Yii2.
О своих колонках в Grid слышал конечно же, но на практике не использовал. Но когда дубляж кода дошел до 5ти штук в разных местах. Вот и задумался, а почему бы и не попробовать? И казалось довольно не плохо и удобно. А главное гибко!

Ниже приведен полный листинг кода примера колонки наследуемой от DataColumn:

namespace backend\grid;

use Yii;
use yii\helpers\Html;
use yii\grid\DataColumn;

class ActiveColumn extends DataColumn
{
	public $headerOptions = [
		'style' => 'width: 80px;'
	];
	
	public $contentOptions = [
		'class' => 'text-center'
	];
	
	public $attribute = 'is_active';
	
    /**
     * @inheritdoc
     */
    protected function renderDataCellContent($a)
    {
		if($a['is_active'] == 1)
		{
			return Html::a('<span class="glyphicon glyphicon-ok-circle"></span>', [
					'active', 'id' => $a['id'], 'is_active' => 0], [
					'title' => Yii::t('app', 'Unactivate this'),
					'data-pjax' => '0',
				]
			);
		}
		return Html::a('<span class="glyphicon glyphicon-lock"></span>', [
				'active', 'id' => $a['id'], 'is_active' => 1], [
				'title' => Yii::t('app', 'Activate this'),
				'data-pjax' => '0',
			]
		);
    }
}

Читать далее...

Как в PHP узнать завтрашнюю или вчерашнюю дату в формате timestamp?

Программирование на PHP

Для того, что бы узнать вчерашнюю или завтрашнюю дату в формате timestamp (PHP), нужно использовать стандартную функцию PHP "strtotime".

К примеру, отобразим время текущей даты на момент 00:00:00 (ноль часов, ноль минут, ноль секунд):

$t = strtotime('00:00:00');
echo 'Timestamp: '.$t;
echo 'Datetime: '.date('Y-m-d H:i:s',$t);

Читать далее...

Работа с CRON в CMS WordPress

CMS WordPress

В данной короткой заметке, я приведу небольшой пример работы с кроном, в таком популярном движке как WordPress.
Для регулярно повторяющейся задачи (т.е. код который нужно будет выполнять регулярно), можно использовать следующую заготовку кода:

add_filter('cron_schedules', function ( $schedules ) {
	$schedules['10sec'] = array(
		'interval' => 10,
		'display'  => __('Every 10 sec'),
	);
	return $schedules;
});

add_action('init', function(){
	if(!wp_next_scheduled('post_event_cron_action'))
	{
		wp_schedule_event( time(), '10sec', 'post_event_cron_action');
	}
});

add_action('post_event_cron_action', function () {
	echo 'Mail sent';
	mail('test@example.com', 'Test subject', 'Test body');
});

Читать далее...

Как в WordPress получить свой тип записей отфильтровав по нужной таксономии

CMS WordPress

Для того что бы в ВордПресс получить свой тип записей отфильтрованных по кастомной таксономии (или существующей), воспользуйтесь следущим снипеттом:

$Posts = get_posts(array(
	'post_type' => 'my-post-type',
	'order' => 'ASC',
	'tax_query' => array(
	array(
			'taxonomy' => 'my-taxonomy',
			'field' => 'slug',
			'terms' => 'event'
		)
	),
	'meta_query' => array(
		'AND',
		array(
			'type' => 'NUMERIC',
			'key' => 'event_date',
			'compare' => '<', 'value' => time()
		),
		array(
			'type' => 'NUMERIC',
			'key' => 'is_archive',
			'compare' => '==',
			'value' => 0
		)
	)
));

Читать далее...