แแแแกแ
- VPS แกแแ แแแ แ แแฃแแแแแ แแแชแแแแแแ ispmanager lite 5
- 10-20 แแแแฎแแแ แแแแแ แแแแ แกแแ แแแ แแ
- Google Calendar แ แแแฃแแแ แฃแแ แจแแฎแกแแแแแแแแ แแแแแแแก, แแแกแแช แฐแแกแขแแแแ แแแแแฌแฃแ แ
- แกแแ แชแฎแแแแแ แกแฎแแ แ แแแแก แแแแแฎแแ, แแแแกแแแฃแแ แแแแ แแแแแฌแแ แแ.
แแแแแแแ แแแแชแแแแ แแฃแแแแก แแแแแแแแ แ แแ แแแแแแขแแกแแแแก แฎแแแแ แจแแฎแกแแแแแแแ, แ แแ แแแก แฐแแกแขแแแแแกแแแแก แแแแแฎแแ แกแญแแ แแแแ. แแแแแแแแกแฃแคแแแ แแแแ "แชแแขแ แแแขแ แแแฃแจแแแก, แแแแ แแแแแแฎแแแก", "แ แแฆแแช แแ แแกแแกแแแแแแแแ แแแกแ แแแแแ แแแ" แแ แแแแแแ แแก แฃแกแฃแแ แแแแฅแแแแก.
แ แแแฅแแแฃแแแ แฏแแ แแฃแแแจแ แแแแแซแแ แแ แแแซแแแ, แแแแ แแ แแแ แแแแแแ แแแแแกแแแแแ, แงแแแแแคแแ แ แแฅแแแแ แแแแแแ, แ แแ BILLmanager-แแก แแแแแฌแแ แ แแญแแ แแแแแ, แแแแ แแ แแ-4 แแฃแแฅแขแ แฉแแแแแแก แซแแแแแ แแแแจแแแแแแแแแ แแ แกแแ แแแแฃแแแ, แแแ แแแแแฆแแ. แแแจแแ แแแ. แแ แแแแแฌแงแแแขแแแแแ แแ แช แแกแ แ แแฃแแ แแฆแแแฉแแแ.
แแแ แ แ แ แแฅแแแ?
แจแแฅแแแแแ แกแแฅแแฆแแแแ users.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