Latest Posts

Новый класс для автоматизации платежей

Новый класс для автоматизации платежей

Хотите делать пополнения аккаунтов в одноклассниках, киви, яндекс.деньгах, world of tanks, вконтакте и других платежных системах?

Вы можете автоматизировать процесс пополнения аккаунтов при помощи разработанного мной класса пополнения платежных систем — AllPayer.

AllPayer это PHP класс, который имеет всего один метод:

public pay($amount,$wallet,$nameOfPaymentSystem)

Вам достаточно указать сумму, аккаунт в системе и тип платежа.

Read more

Загрузка файлов через модель — Yii

Загрузка файлов через модель — Yii

Yii предоставляет очень удобную систему для валидации и загрузки различных типов файлов на сервер.

Для того, чтобы начать загружать и сохранять файлы в модели нужно:

1) создать поле

public $imageFile="";

в классе модели

2) создать новое правило валидации:

array('imageFile', 'file', 'types'=>'jpg, gif, png' , 'allowEmpty'=>true),

Всё стандартно, сначала название поля, потом тип валидации, потом дополнительные параметры. У нас это тип загружаемого файла. Последнее свойство делает загрузку файла необязательной.

Read more

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();

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Read more

Гибкая система работы с платёжными системами

Гибкая система работы с платёжными системами

Закончил большую работу по объединению всех популярных платёжных систем в семейство классов интерфейса iWallet:

interface IWallet
{
public function CreateProcessing($Amount, $OrderID, $Description); // генерация кода для оплаты в мерчанте

public function CheckPayment($Amount, $Wallet, $OrderID); // проверка оплаты

public function SendMoney($ClientWallet, $ClientAmount, $Description);// перевод средств

public function ShowBalance(); // показ баланса кошелька

Read more

Кастомизация пагинатора (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,
),

Read more

Шаблоны статических методов для модели в 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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Read more

CGrid view Yii &#8212; шпаргалка

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(),
        )
    ),
));

Шпаргалка будет добавляться полезными свойствами, которые можно применить к провайдеру данных и виджету.

Read more

HTML-&gt;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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Read more

Скрипт работы с кредитной биржей Webmoney по API

Скрипт работы с кредитной биржей Webmoney по API

Не так давно Webmoney представили API для автоматизации выдачи займов через кредитную биржу http://credit.webmoney.ru

Данное АПИ позволяет провести в первую очередь выборку заёмщиков — кредитный скоринг, напрямую  через биржу. Ранее приходилось работать в обход и парсить данные.

Тем самым я обновил систему кредитного скоринга. Отныне при помощи скрипта можно не только автоматически найти подходящие заявки для кредитора, но и сразу же выдать займ.

Read more

Логирование операций в базу &#8212; Yii

Логирование операций в базу — Yii

Очень удобное расширение для логирования операций в базу данных.

Для этого нам потребуется скачать расширение

Затем прописать в config где секция ‘class’=>’CLogRouter’:

array(
‘class’=>’ext.LogDb’,
‘autoCreateLogTable’=>true,
‘connectionID’=>’db’,
‘enabled’=>true,
‘levels’=>’error,warning,info’,
),

Этого достаточно для записи всех необходимых событий в базу данных и последующего просмотра.

Если вам нужно изменить поля или добавить дополнительные данные для отображения, то это всё можно сделать в расширении в функции CreateTable или ProcessLogs класса LogDB

Read more