Filter not clearing manually in CGridView Yii

Problem: after ajax update CGridView we can’t clearing filter manually.
In start our CGridView is viewing like this:

$this->widget(
	'booster.widgets.TbGridView',
	array(
		'type' => 'bordered hover',
		'dataProvider' => $contacts->smartSearch(),
		'filter' => $contacts,
		'ajaxUpdate' => true,
		'id' => 'contacts-grid',
		'columns' => array(
			....
		)
	)
);

I’m usually using TbGridView, but we have not difference between it and CGridView.
So, we forget option ajaxUrl which solve the problem of formation GET request and will remove garbage from the query string to the server.

$this->widget(
	'booster.widgets.TbGridView',
	array(
		'type' => 'bordered hover',
		'dataProvider' => $contacts->smartSearch(),
		'ajaxUrl' => array('/contacts/index'), // <<<<<<<< THIS
		'filter' => $contacts,
		'ajaxUpdate' => true,
		'id' => 'contacts-grid',
		'columns' => array(
			....
		)
	)
);

Adding utm_source to url in custom text with php

So, we have a text in which there are links and you need to add an additional parameter of each link in the processing.
This function can help you:

function utm_source($content, $source, $campaign = false){
	$regexp = '/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i';
	$additional_url = 'utm_source=' . $source;
	if($campaign){
		$additional_url .= '&utm_campaign=' . $campaign;
	}
	$callback = function($matches) use ($additional_url){
		$url = $matches[1];
		$url = parse_url($url);
		if(isset($url['query'])){
			return $matches[1] . '&' . $additional_url;
		}else{
			return $matches[1] . '?' . $additional_url;
		}
	};
	$result = preg_replace_callback($regexp, $callback, $content);
	return $result;
}

Select view from mssql in php

Пришлось немного поковыряться с MSSQL. В ходе работы наткнулся на странную особенность: из среды Microsoft SQL Server Management Studio все выборки идут отлично, а в случае использования где-либо еще за пределами этой среды натыкаюсь на то ли баги, то ли…
В общем, для того, чтобы сделать select из view в mssql необходимо перед select’ом выполнить следующий запрос:

$sql = 'SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_WARNINGS ON
SET ANSI_PADDING ON
SET ARITHABORT ON';

Yii::app()->mssql->createCommand($sql)->queryAll();

После этого select можно делать стандартным методом:

$sql = 'SELECT * FROM View_Region_client;';

$distributor_link = Yii::app()->mssql->createCommand($sql)->queryAll();

Иначе, в случае не использования, можем наткнуться на ошибки типа:

 SQLSTATE[HY000]: General error: 208 General SQL Server error: Check messages from the SQL Server [208] (severity 16) [(null)]. The SQL statement executed was: SELECT * FROM DHWRiver.dbo.View_Region_client;

А вообще – не используйте, дети, mssql. От лукавого это все.

Еще одно ненужное руководство по Python: Строковые переменные

На Python можно писать почти все: от мини-скриптов для администрирования до графических редакторов, от веб-сайтов до игр. И везде требуется работа со строками. Здесь будет рассказано, какие виды строк есть в питоне, какие функции есть для управления ими.

Continue reading “Еще одно ненужное руководство по Python: Строковые переменные”

Еще одно ненужное руководство по Python: Списки, кортежи, словари

Список, кортеж и словарь – три основных структуры данных, которые позволяют работать с наборами данных. Список является аналогом массива в других языках, кортеж можно назвать неизменяемым массивом, а словарь похож на хеш-таблицу.

Continue reading “Еще одно ненужное руководство по Python: Списки, кортежи, словари”

Еще одно ненужное руководство по Python: Введение.

Данная статья рассчитана на тех, кто ничего не знает о Python или же только слышал о нем, но не видел.

Python — это современный интерпретируемый язык программирования с динамической типизацией. Наиболее похожими на него языками являются PHP, Perl и Ruby.

Вообще, обо всех возможностях, достоинствах и недостатках языка написано на википедии, но статья в википедии больше похожа на шпаргалку, где в одну кучу собраны и перемешаны все фичи языка. Учиться по ней, наверное, муторно. Ну и мне надо утолить свое желание написать что-нибудь.

Будем считать, что вы уже знаете какой-либо язык программирования и знаете что такое переменная, функция, массив, объект и т.п. Подчеркну, что я не собираюсь устраивать холивары о том, какой язык лучше и для каких целей (по крайней мере сейчас). Я просто буду писать о возможностях этого языка.

Хватит пустой болтовни, давайте сразу к делу.

Continue reading “Еще одно ненужное руководство по Python: Введение.”

Обработка ответа от MySQL в Perl и Template Toolkit

Буду периодически писать о Perl и Template Toolkit. Информации в интернете чуть более, чем достаточно, а я буду собирать то, что нужно мне здесь.

При работе с БД получая данные с помощью fetchall_hashref($key) шаблоны надо парсить так:

Получаем ответ от БД

$res->fetchall_hashref($key_field);

, где $key_field ключ, который будет использоваться для дальнейшей обработки.
Подробнее про функцию тут.

После в шаблоне организуем foreach:

                [% FOREACH variable IN variables.pairs %]
                    [% variable.value.field %]<br />
                [% END %]

, где variables – хэш, .pairs – обработчик Template Toolkit, который присвоит variable ключи и значения без потерь. После этого к любому полю в строке можно будет получить доступ указав variable.value.field, заменив .field на название своего поля в таблице.
Подробнее про pairs тут.

PHPmailer – отправка писем через SMTP

Сегодня пришло первое письмо в Helper:

Name:  zeleboba
Email:   zelebb@gmail.com
Сайт:   http://www.knigoobzor.ru
Ваша проблема:	Проблема с сайтом knigoobzor.ru. Сейчас там дделываю возможность оставлять комменты к статьям. Хочу сделать возможность подписки и уведомления меня(админа) о том, что кто-то новый коммент оставил. Проблема состоит в том, что на хостинге сайта запрещено использование mail();. Можно ли реализовать отправку через smtp, например Яндекса? Намекни как. Или где почитать про это. Знаю, что есть плагины для wordpress, которые это делают, значит и для обычного сайта можно.

Данный класс предназначен для отправки почты с помощью php, если по каким-то причинам, от вас не зависящим, вы не можете использовать функцию mail(). Если же вы можете использовать mail() (возможность должа быть включена на сервере в конфигурации php), то можно лучше использовать её. Здесь же можно посмотреть на синтаксис команды mail: линк.

Мы будем использовать библиотеку PHPMailer (официальный сайт).
Continue reading “PHPmailer – отправка писем через SMTP”