เจฆเจฟเฉฑเจคเจพ เจเจฟเจ:
- เจธเจฅเจพเจ เจฒเจพเจเจธเฉฐเจธ ispmanager เจฒเจพเจเจ 5 เจตเจพเจฒเจพ VPS เจธเจฐเจตเจฐ
- เจชเฉเจฐเจคเฉ เจธเจฐเจตเจฐ 10-20 เจเจชเจญเฉเจเจคเจพ
- เจเฉเจเจฒ เจเฉเจฒเฉฐเจกเจฐ เจเจนเจจเจพเจ เจฒเจ เจจเจฟเจฏเจฎเจค เจฐเฉเจฎเจพเจเจเจกเจฐ เจฆเฉ เจจเจพเจฒ เจเจฟเจจเฉเจนเจพเจ เจฆเฉ เจนเฉเจธเจเจฟเฉฐเจ เจเจคเจฎ เจนเฉ เจเจ เจนเฉ
- เจเจฟเจธเฉ เจนเฉเจฐ เจเฉเจเจผ เจฒเจ เจญเฉเจเจคเจพเจจ เจเจฐเจจเจพ เจธเจผเจฐเจฎเจจเจพเจ เจนเฉ, เจเจพเจธ เจเจฐเจเฉ เจเจพเจนเจเฉ เจฆเฉ เจจเจพเจฒเฅค
เจเฉเจเจพ เจเจพเจนเจ เจจเฉเฉฐ เจเฉเจเจฒ เจเฉเจฒเฉฐเจกเจฐ เจ
เจคเฉ เจฎเฉเจจเฉเจ
เจฒ เจฐเฉเจฎเจพเจเจเจกเจฐ เจคเฉเจ เจเฉเจเจเจพเจฐเจพ เจชเจพเจเจฃเจพ เจนเฉ เจเฉ เจเจธเจจเฉเฉฐ เจนเฉเจธเจเจฟเฉฐเจ เจฒเจ เจญเฉเจเจคเจพเจจ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ. เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ โเจเจธเจจเฉเฉฐ เจฅเฉเฉเจพ เจนเฉเจฐ เจเฉฐเจฎ เจเจฐเจจ เจฆเจฟเจ, เจเจน เจเจฒเจฆเฉ เจนเฉ เจญเฉเจเจคเจพเจจ เจเจฐเฉเจเจพโ, โเจเจธ เจจเฉเฉฐ เจฌเฉฐเจฆ เจเจฐเจจเจพ เจเจฟเจธเฉ เจคเจฐเฉเจนเจพเจ เจ
เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉโ เจคเฉเจ เจฎเฉเจเจค เจนเฉเจตเฉ, เจ
เจคเฉ เจเจธ เจจเฉเฉฐ เจเฉฑเจ เจฌเฉเจฐเจนเจฟเจฎ เจฎเจธเจผเฉเจจ เจจเฉเฉฐ เจธเฉเจเจช เจฆเจฟเจเฅค
เจฌเฉเจธเจผเฉฑเจ, เจฎเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉเจเจฒ เจเฉเจคเฉ เจ
เจคเฉ เจเฉเจ เจเฉเจคเฉ, เจชเจฐ เจเฉเจ เจนเฉฑเจฒ เจจเจนเฉเจ เจฒเฉฑเจญเจฟเจ, เจเจน เจธเจญ เจเจธ เจคเฉฑเจฅ 'เจคเฉ เจเจฌเจพเจฒเจฟเจ เจเจฟเจ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ BILLmanager เจฆเฉ เจเจพเจนเจเฉ เจฒเฉเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ, เจชเจฐ เจฌเจฟเฉฐเจฆเฉ เจจเฉฐเจฌเจฐ 4 เจฎเฉเจฐเฉ เจฒเจ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจ
เจคเฉ เจเฉฐเจญเฉเจฐ เจนเฉ, เจฎเฉเจจเฉเฉฐ เจจเจนเฉเจ เจฎเจฟเจฒเฉเจเจพ เจเจธ เจคเฉเจ เจเฉเจเจเจพเจฐเจพ เจ
เจคเฉ เจเจน เจซเฉเจธเจฒเจพ เจเฉฐเจจเจพ เจฎเฉเจธเจผเจเจฒ เจจเจนเฉเจ เจจเจฟเจเจฒเจฟเจ.
เจคเจพเจ เจ เจธเฉเจ เจเฉ เจเจฐเฉเจ?
/usr/local/mgr5/etc/sql/ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ, เจเฉฑเจ เจซเฉเจฒเจกเจฐ user.addon เจฌเจฃเจพเจ, เจฆเฉ เจเจพเจฒเฉ เจซเจพเจเจฒเจพเจ:
- เจญเฉเจเจคเจพเจจ_เจคเจฐเฉเจ
- uwemail
เจเจน เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจฌเจฃเจพเจเจฃ เจฒเจ เจชเฉเจจเจฒ เจจเฉเฉฐ เจนเฉเจเจฎ เจฆเฉเจตเฉเจเจพ
/usr/local/mgr5/etc/ispmgr.db
เจเจชเจญเฉเจเจคเจพ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจฆเฉ เจ
เจจเฉเจธเจพเจฐเฉ เจเฉเจคเจฐ เจนเจจ เจเจฟเฉฑเจฅเฉ เจเจกเจฎเจฟเจจ เจชเฉเจจเจฒ เจฆเฉ เจฎเฉเฉฑเจฒ เจฒเจฟเจเฉ เจเจพเจฃเจเฉเฅค
เจธเจฎเฉฑเจเจฐเฉ เจฆเฉ เจจเจพเจฒ /usr/local/mgr5/etc/xml เจซเฉเจฒเจกเจฐ เจตเจฟเฉฑเจ ispmgr_mod_pay_data.xml เจจเจพเจฎ เจฆเฉ เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจพเจเฅค
<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<metadata name="user.edit">
<form>
<page name="main">
<field name="pay_date">
<input type="text" name="pay_date"/>
</field>
<field name="uwemail">
<input type="text" name="uwemail"/>
</field>
</page>
</form>
</metadata>
<lang name="ru">
<messages name="user.edit">
<msg name="pay_date" sqlname="pay_date">ะะฟะปะฐัะตะฝะพ ะดะพ</msg>
<msg name="uwemail" sqlname="uwemail">ะะพะปัะทะพะฒะฐัะตะปััะบะธะน email</msg>
</messages>
</lang>
<lang name="en">
<messages name="user.edit">
<msg name="pay_date" sqlname="pay_date">Paid before</msg>
<msg name="uwemail" sqlname="uwemail">User email</msg>
</messages>
</lang>
</mgrdata>
เจเจน เจชเฉเจจเจฒ เจจเฉเฉฐ เจเฉฑเจ เจจเจฟเจฏเจฎ เจฆเจฟเฉฐเจฆเจพ เจนเฉ เจคเจพเจ เจเฉ เจธเจพเจกเฉ เจเฉเจคเจฐ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจธเฉฐเจชเจพเจฆเจจ เจซเจพเจฐเจฎ เจตเจฟเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจนเฉเจฃเฅค
เจชเฉเจจเจฒ เจจเฉเฉฐ เจฐเฉเจฌเฉเจ เจเจฐเฉ:
/usr/local/mgr5/sbin/mgrctl -m ispmgr exit
เจธเจพเจจเฉเฉฐ เจฎเจฟเจฒเจฆเจพ เจนเฉ:
เจเฉเจคเจฐเจพเจ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจฒเจฟเจเจฆเฉ เจนเจพเจ เจเจฟ เจนเฉเจธเจเจฟเฉฐเจ เจจเฉเฉฐ เจเจฟเจธ เจฆเจฟเจจ เจคเฉฑเจ เจเฉฐเจฎ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ, เจ
เจคเฉ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจเจฟเจนเฉเฉ เจเจฎเฉเจฒ, เจเจฟเฉฑเจฅเฉ เจฐเฉเจฎเจพเจเจเจกเจฐ เจญเฉเจเจฃเฉ เจนเจจ เจเจฟ เจนเฉเจธเจเจฟเฉฐเจ เจเจฒเจฆเฉ เจนเฉ เจเจคเจฎ เจนเฉ เจเจพเจตเฉเจเฉเฅค
เจนเฉเจฃ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจฏเจพเจฆ เจฆเจฟเจตเจพเจเจเฉ เจเจฟ เจนเฉเจธเจเจฟเฉฐเจ เจเฉเจ เจ เฉฐเจคเจฐเจพเจฒเจพเจ 'เจคเฉ เจเจคเจฎ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจกเจฎเจฟเจจ เจจเฉเฉฐ เจธเฉเจเจฟเจค เจเจฐเฉ เจเจฟ เจนเฉเจธเจเจฟเฉฐเจ เจเจคเจฎ เจนเฉ เจฐเจนเฉ เจนเฉเฅค เจเจชเจญเฉเจเจคเจพ เจ เจคเฉ เจชเฉเจฐเจธเจผเจพเจธเจ เจจเฉเฉฐ เจธเฉเจเจฟเจค เจเจฐเฉ เจเจฟ เจเจชเจญเฉเจเจคเจพ เจ เจฏเฉเจ เจนเฉเฅค
เจฎเฉเจจเฉเฉฐ เจเจธ 'เจคเฉ php เจชเจธเฉฐเจฆ เจนเฉ เจ เจคเฉ เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจฒเจฟเจเฉ.
<?php
$adminemail = "[email protected]"; // email ะฐะดะผะธะฝะฐ
$day_send_message = [30,7,5,3,1]; // ะทะฐ ัะบะพะปัะบะพ ะดะฝะตะน ะธ ั ะบะฐะบะพะน ะฟะตัะตะพะดะธัะฝะพัััั ะฑัะดะตั ะฝะฐะฟะพะผะธะฝะฐัั ะฟะพะปัะทะพะฒะฐัะตะปั ััะพ ั
ะพััะธะฝะณ ะทะฐะบะฐะฝัะธะฒะฐะตััั
$db = new SQLite3('/usr/local/mgr5/etc/ispmgr.db');
$results = $db->query('SELECT * FROM users WHERE active == "on" AND pay_date IS NOT NULL');
while ($user = $results->fetchArray()) {
$days_left=floor( ( strtotime($user['pay_date']) - time() ) / (60 * 60 * 24));
if(in_array($days_left, $day_send_message)){
if($user['uwemail'] != ""){
mail($user['uwemail'], 'ISPMANAGER ะทะฐะบะฐะฝัะธะฒะฐะตััั ั
ะพััะธะฝะณ ัะตัะตะท '.$days_left.' ะดะฝะตะนั', "ะขะตะบัั ะดะปั ะฟะพะปัะทะพะฒะฐัะตะปั ะพ ัะพะผ ััะพ ะพััะฐะปะพัั ััะพะปัะบะพ ัะพ ะดะฝะตะน");
}
}
if( $days_left == 3 ) {
mail($adminemail, 'ISPMANAGER USER '.$user['name'], $user['name'] . " ะะฐะบะพะฝัะธััั ั
ะพััะธะฝะณ ัะตัะตะท ".$days_left." ะดะฝั");
}
if($days_left <= 0){
mail($adminemail, 'ISPMANAGER USER '.$user['name'].' DISABLED', $user['name'].' ะัะบะปััะตะฝ');
exec("/usr/local/mgr5/sbin/mgrctl -m ispmgr user.suspend elid=".$user["name"]);
if( $user['uwemail'] != "" ) {
mail($user['uwemail'], 'ISPMANAGER ั
ะพััะธะฝะณ ะพัะบะปััะตะฝ', 'ะขะตะบัั ะดะปั ะฟะพะปัะทะพะฒะฐัะตะปั ััะพ ั
ะพััะธะฝะณ ะทะฐะบะพะฝัะธะปัั');
}
}
// ะฟัะธ ะถะตะปะฐะฝะธะธ ะผะพะถะฝะพ ะตัะต ะฝะฐะฟะธัะฐัั ะฝะตะฑะพะปััะพะน IF ััะพ ะฑั ะดะฐะฝะฝัะต ัะดะฐะปัะปะธัั ัะตัะตะท ะฝะตะบะพัะพัะพะต ะฒัะตะผั, ะฝะพ ะผะฝะต ััะพ ะฝะต ะฝัะถะฝะพ
}
เจ เจธเฉเจ เจเจธ เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจเจฟเจคเฉ เจตเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเจธ เจจเฉเฉฐ เจเฉ เจตเฉ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ เจเจพเจฒ เจเจฐเจฆเฉ เจนเจพเจ, เจ เจคเฉ เจเจธเจจเฉเฉฐ เจฆเจฟเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจตเจพเจฐ เจเจพเจฒ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจเฉเจฐเฉเจจ เจเจพเจธเจ เจเฉเฉเจฆเฉ เจนเจพเจเฅค เจธเจญ เจคเจฟเจเจฐ เจนเฉเฅค
เจนเฉเจฃ เจฎเฉเจฐเฉ เจเจผเจฎเฉเจฐ เจธเจพเจซเจผ เจนเฉ, เจเจพเจก เจธเฉฐเจคเฉเจธเจผเจ เจนเฉ, เจ เจคเฉ เจฎเฉเจ เจเฉเจ เจตเจพเจงเฉ เจเจฐเจเจพ เจจเจนเฉเจ เจฒเจฟเจ เจนเฉเฅค
เจเฉ เจตเฉ เจฌเจเจฟเจ เจนเฉ เจเจน เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจจเฉเฉฐ เจญเจฐเจจเจพ เจนเฉ เจเจฟเจธ เจคเจพเจฐเฉเจ เจจเฉเฉฐ เจนเฉเจธเจเจฟเฉฐเจ เจฒเจ เจญเฉเจเจคเจพเจจ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจ เจคเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฆเฉ เจเจฎเฉเจฒ เจเจฟเฉฑเจฅเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจฐเฉเจฎเจพเจเจเจกเจฐ เจญเฉเจเจฃเฉ เจนเจจเฅค
เจเฉเจธเจผ เจนเฉ เจเฉ เจเจน เจเจฟเจธเฉ เจฆเฉ เจฎเจฆเจฆ เจเจฐเจฆเจพ เจนเฉ.
เจธเจฐเฉเจค: www.habr.com