ααΆααααααα±ααα
- αααΆαααΈααα VPS αααααΆαα’αΆααααΆαααααα’α α·αααααααα ispmanager lite 5
- α’αααααααΎααααΆαα 10-20 ααΆαααααα»ααα½ααααΆαααΈααα
- ααααα·αα·α Google ααΆαα½αααΉαααΆαααααΉααααααΆαααααααΆααα’ααααααα’ααααΆααααα αα
- ααΆααΆααΆαα’αΆαααΆαααααα»αααΆαα αααΆααααααΆααα’αααΈαααααααα ααΆαα·αααααΆαα½αααΉαααΆαααΆαα
ααααα
ααΊααΎααααΈαααα
αΆααααααα·αα·α Google αα·αααΆαααααΉαααααααααα’αα·αα·ααααΆααΆααααααΌααααααααΆαααααααΆααααΆααααα ααα αααααααααα½αα’αααααΈ "α’αα»ααααΆαα±ααααΆααααααΎααΆαααααα·α
ααα ααΆααααΉααααααααΆααααΆαααααα" "ααΆαα’αΆαααα’α½ααααα»αααΆααα·αααΆ" α αΎαααααααααΆαα
αααΆαααΈααααααααΆααααααΉαα
ααΆβααΆαβαα·αβααΆαα ααααΌαβαααα»αβααΆα Googled α αΎαβααΆαβαααααβαα ααα»ααααβαα·αβααΆαβααβααΎαβαααααβααααΆαβααΆβαα½α ααΆβααΆαβαα»αβααααααααβαα
βααΉαβααΆαβαα·αβαααβα’αααβααααΌαβααΆαβααΆα BILLmanager ααα»ααααβα
ααα»α
βααΈ 4 ααΊβααααΆααβαα·αβαααααααααβαααααΆααβαααα»α αααα»αβααΉαβαα·αβααα½αβααΆαβααα αααα
αΆααααΆα α αΎαβααΆαβαααααα
βα
α·αααβααΆαβααααβααααΆαβαα
βααΆβαα·αβαα·ααΆαβαααβααα
ααΌα ααααααΎααΎαααααΎα’αααΈ?
αααααΎα folder user.addon αα αααα»ααα /usr/local/mgr5/etc/sql/ α―αααΆααααααΈαα
- ααΆαααα·α αααααααααααΆαα
- uwemail
ααΆααΉααααααΆα±ααααααααααααΎααα
αααα»αααΌαααααΆααα·αααααα
/usr/local/mgr5/etc/ispmgr.db
αα
αααα»αααΆααΆαα’αααααααΎααααΆααααΆαααΆαααΈααααααααΌαααααΆααααααααααΈααααααααααααααααΉαααααΌαααΆααααααα
αααααΎαα―αααΆααα½ααααααααΆ ispmgr_mod_pay_data.xml αα αααα»ααα /usr/local/mgr5/etc/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 ΡΡΠΎ Π±Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΄Π°Π»ΡΠ»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½ΠΎ ΠΌΠ½Π΅ ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ
}
ααΎααααααΆαα»αααααααΈαααααααααααΈαααααα α αΎαα α ααΆααΆαα’αααΈαααααΎαα ααααΆα α αΎααααααααα·α αα ααΆα cron ααΎααααΈα α ααΆαααααααα»ααα½αααααα ααΆααα’αααα½α ααΆααα αΎαα
α₯α‘αΌαααα ααα·ααααααααααααααααα»αααΊα αααΆααα αΎα ααααααααααΊαααα α·ααα α αΎααααα»ααα·αααΆαα αααΆαααααααα’αααΈααα
α’αααΈααααα ααααααααΊααΆαααααααα·αααααααα αααα»αα’αααααααΎααααΆαααα αααααααααΆααααα ααααααΌαααΆαααα αα·αα’ααΈαααααααα’αααααααΎααααΆαααααααααααααααΌαααααΎααΆαααααΉααα ααΆααα’αααααααΎααααΆααα
ααΈαααΆαααααα·αααΎααΆαα½αααααΆααααΆααα
ααααα: www.habr.com