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
Система бронирования для softeksim.co.uk
Система бронирования для softeksim.co.uk
Система позволяет купить билет и забронировать время для аттракциона самолёта в Лондоне и Бирмингеме.
Аттракционом владеет компания Softek Sim, адрес: http://www.softeksim.co.uk
1. Существует гибкая система тарифов для билетов, которые можно купить:

2. Выбираем нужный нам билет, вводим свои данные:

Реляционные связи Active Record Yii — в трёх словах
Реляционные связи Active Record Yii — в трёх словах
Что нужно запомнить?
Есть три основных типа связей в реляционных базах данных:
-
Один ко многим [BELONGS_TO / HAS_MANY].
Как пример:
Есть пользователь в таблице user(A), и есть таблица заказов orders(B). Соответственно записи заказов B принадлежат одному пользователю в таблице А. Заказы относятся к пользователю(BELONGS TO).
Также если рассмотреть что у пользователя А есть много заказов В то для пользователя такая связь называется HAS_MANY (пользователь имеет много заказов). -
Один к одному [HAS_ONE].
Одна запись может иметь в связях только одну запись в другой таблице. -
Многие ко многим [MANY_MANY].
У одной записи может быть много категорий, а у категорий может быть много записей.
Записать связи нужно в вашем active record классе модели: