Новый класс для автоматизации платежей
Новый класс для автоматизации платежей
Хотите делать пополнения аккаунтов в одноклассниках, киви, яндекс.деньгах, world of tanks, вконтакте и других платежных системах?
Вы можете автоматизировать процесс пополнения аккаунтов при помощи разработанного мной класса пополнения платежных систем — AllPayer.
AllPayer это PHP класс, который имеет всего один метод:
public pay($amount,$wallet,$nameOfPaymentSystem)
Вам достаточно указать сумму, аккаунт в системе и тип платежа.
Загрузка файлов через модель — Yii
Загрузка файлов через модель — Yii
Yii предоставляет очень удобную систему для валидации и загрузки различных типов файлов на сервер.
Для того, чтобы начать загружать и сохранять файлы в модели нужно:
1) создать поле
public $imageFile="";
в классе модели
2) создать новое правило валидации:
array('imageFile', 'file', 'types'=>'jpg, gif, png' , 'allowEmpty'=>true),
Всё стандартно, сначала название поля, потом тип валидации, потом дополнительные параметры. У нас это тип загружаемого файла. Последнее свойство делает загрузку файла необязательной.
YiiMailer шаблон отсылки сообщений
YiiMailer шаблон отсылки сообщений
Самое удобное расширение для yii по отправке сообщений. Сам YiiMailer можете поставить через Composer.
Пример:
$mail = new YiiMailer();
$mail->setFrom(Yii::app()->params['supportEmail'], 'Компания');
$mail->setTo($model->email);
$mail->setSubject('Наша тема');
$mail->setAttachment($PDFFile);
$mail->setBody($message);
$mail->send();
Гибкая система работы с платёжными системами
Гибкая система работы с платёжными системами
Закончил большую работу по объединению всех популярных платёжных систем в семейство классов интерфейса iWallet:
interface IWallet
{
public function CreateProcessing($Amount, $OrderID, $Description); // генерация кода для оплаты в мерчанте
public function CheckPayment($Amount, $Wallet, $OrderID); // проверка оплаты
public function SendMoney($ClientWallet, $ClientAmount, $Description);// перевод средств
public function ShowBalance(); // показ баланса кошелька
Кастомизация пагинатора (Pager) в Yii
Кастомизация пагинатора (Pager) в Yii
Очень часто встаёт необходимость заменить классический пагинатор в Yii на свой. Переписывать все CSS стили можно преопределив класс pager, также first hidden, previous hidden, page selected, page, next,last.
В коде виджета zii нужно (если это требуется) прописать свои параметры пагинатора:
'pager' => array(
'firstPageLabel'=>'<<',
'prevPageLabel'=>'<',
'nextPageLabel'=>'>',
'lastPageLabel'=>>>',
'maxButtonCount'=>'10',
'header'=>'',
'cssFile'=>false,
),
Шаблоны статических методов для модели в Yii
Шаблоны статических методов для модели в Yii
Очень часто нужны примеры методов для работы с моделями в yii.
Привожу частые шаблоны:
public static function getById($id)
{
$data= MODEL::model()->findByPk($id);
return $data;
}
public static function getSomethnigBySomeId($id)
{
$criteria=new CDbCriteria;
$criteria->order = 'sorted ASC';
$criteria->condition='cat_id=:id';
$criteria->params=array(':cat_id'=>$id);
$datas=MODEL::model()->findAll($criteria);
return $datas;
}
public static function getByAttr($attr)
{
$data= MODEL::model()->findByAttributes(array('attr' => $attr));
return $data;
}
Leave a Comment
CGrid view Yii — шпаргалка
CGrid view Yii — шпаргалка
Шпаргалка для вывода данных из дата провайдера в CGridView.
1. Сам провайдер данных:
// выводим рефералов пользователя
$partnersProvider = new CActiveDataProvider('User', array(
'criteria' => array(
'condition' => 'partner_id=' . $user->id ,
'with' => array(),
),
'pagination' => array(
'pageSize' => 5,
),
));
2. CGridView:
$this->widget('zii.widgets.grid.CGridView', array(
'itemsCssClass' => 'b-setting_history',
'htmlOptions'=>array(),
'summaryText'=>'', // чтобы не показывать summary
'dataProvider' => $partnersProvider,
'columns' => array(
array(
'name' => 'Date',
'type' => 'raw',
'value' => '$data->reg_date',
'cssClassExpression' => '',
'htmlOptions'=>array(),
'headerHtmlOptions'=>array(),
),
array(
'name' => 'User',
'type' => 'raw',
'value' => '$data->login',
'cssClassExpression' => '',
'htmlOptions'=>array(),
'headerHtmlOptions'=>array(),
)
),
));
Шпаргалка будет добавляться полезными свойствами, которые можно применить к провайдеру данных и виджету.
HTML->PDF API облачное решение
HTML->PDF API облачное решение
Встретил очень удобный сервис автогенерации PDF документов из HTML.
Не требует никаких установок на сервер и библиотек (ну кроме обертки над API).
Конечно есть минус — не более 100 документов в месяц (остальное платное).
Сам сервис: https://pdfcrowd.com
Очень простое API для создания документов:
require 'pdfcrowd.php'; try { // create an API client instance $client = new Pdfcrowd("Sassoft", "ВАШ ТОКЕН"); // convert a web page and store the generated PDF into a $pdf variable $pdf = $client->convertURI('НАШ URL html документа'); // set HTTP response headers header("Content-Type: application/pdf"); header("Cache-Control: max-age=0"); header("Accept-Ranges: none"); header("Content-Disposition: attachment; filename=\"google_com.pdf\""); // send the generated PDF echo $pdf; } catch(PdfcrowdException $why) { echo "Pdfcrowd Error: " . $why; } После этого ПДФ будет сохранён моментально. Также можно просто сохранить на сервер: $pdf_from_html = $client->convertHtml($html, fopen($fileName, 'wb'));
Leave a Comment
Скрипт работы с кредитной биржей Webmoney по API
Скрипт работы с кредитной биржей Webmoney по API
Не так давно Webmoney представили API для автоматизации выдачи займов через кредитную биржу http://credit.webmoney.ru
Данное АПИ позволяет провести в первую очередь выборку заёмщиков — кредитный скоринг, напрямую через биржу. Ранее приходилось работать в обход и парсить данные.
Тем самым я обновил систему кредитного скоринга. Отныне при помощи скрипта можно не только автоматически найти подходящие заявки для кредитора, но и сразу же выдать займ.
Логирование операций в базу — Yii
Логирование операций в базу — Yii
Очень удобное расширение для логирования операций в базу данных.
Для этого нам потребуется скачать расширение
Затем прописать в config где секция ‘class’=>’CLogRouter’:
array(
‘class’=>’ext.LogDb’,
‘autoCreateLogTable’=>true,
‘connectionID’=>’db’,
‘enabled’=>true,
‘levels’=>’error,warning,info’,
),
Этого достаточно для записи всех необходимых событий в базу данных и последующего просмотра.
Если вам нужно изменить поля или добавить дополнительные данные для отображения, то это всё можно сделать в расширении в функции CreateTable или ProcessLogs класса LogDB