Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 1265

Přidáno uživatelem Ondřej Fibich před asi 13 roky(ů)

Novinky:

- prepsan modul SMS, zmeny:
-- arcitektonicky prepsano na navrhovy vzor tovarna pro jednoduche pridavani novych ovladacu a obecny pristup k ovladacum
-- opravena brana klikniavolej.cz
-- optimalizace odesilani SMS schedulerem
-- dynamicky formular pro nastaveni SMS bran dle aktualnich dostupnych ovladacu
-- odstranen ovladac pro nejlevnejsisms.cz

Opravy:

- oprava chyby v Selectoru menici nechtene jazyk pri odeslani
- oprava chybejicich ikon u zobrazeni zarizeni

Zobrazit rozdíly:

freenetis/branches/testing/application/i18n/cs_CZ/texts.php
'cannot parse fio listing header!' => 'Nelze parsovat hlavičku Fio výpisu!',
'cannot save form' => 'Nemohu uložit formulář',
'cannot save gps, this address point has already gps coordinates' => 'Nemohu uložit GPS, adresní bod má již přiřazeny GPS souřadnice',
'cannot sent message to reciever' => 'Nelze odeslat zprávu příjemci',
'cash' => 'Pokladna',
'cash flow' => 'Peněžní tok',
'cash drawn' => 'Výběry hotovosti',
......
'channel' => 'Kanál',
'channel %s' => '%s. kanál',
'channel width' => 'Šířka kanálu',
'chars' => 'Znaků',
'check again' => 'Znovu zkontrolovat',
'choose date' => 'Vyberte datum',
'choose language' => 'Vyberte jazyk',
......
'driver' => 'Ovladač',
'driver state' => 'Stav ovladače',
'duration' => 'Trvání',
'during sending an error appear' => 'Při odesílání zprávy se vyskytla chyba',
'due date' => 'Datum splatnosti',
'duplex' => 'Duplexní',
'economy' => 'Ekonomika',
......
'error - it is not possible to remove engineer' => 'Chyba - nelze odebrat technika zařízení.',
'error - not enough money on origin account' => 'Chyba - nedostatek peněz na zdrojovém účtě.',
'error - payment notice credit boundary has not been set' => 'Chyba - hranice kreditu pro upozornění na placení nebyla nastavena.',
'error - sms not enabled' => 'Chaby - SMS nejsou povoleny',
'error - some fees have not been recounted' => 'Chyba - některé členské příspěvky nebyly přepočítány.',
'error - some fees have not been deducted' => 'Chyba - některé členské příspěvky nebyly strženy.',
'error - voip not enabled' => 'Chyba - VoIP není povoleno',
......
'grouped works' => 'Shluklé práce',
'groups of users' => 'Skupiny uživatelů',
'growth of members' => 'Růst členů',
'have left' => 'Zbývá',
'hello' => 'Dobrý den',
'help' => 'Nápověda',
'help register' => 'Registr nápovědy',
......
'i can\'t write the htaccess file' => 'Nemůžu zapisovat do souboru <code>.htaccess</code>.',
'id' => 'ID',
'id of member' => 'ID člena',
'param id with same value was used for another message before' => 'Byl použit parametr id s hodnotou, která již byla použita pro jinou zprávu',
'if for any reason this automatic config file creation doesn\'t work, don\'t worry' => 'Jestliže z nějakého důvodu toto automatické vytvoření konfiguračního souboru nebude fungovat, nezoufejte.',
'if you want to run more than one freenetis in a single database' => 'pokud chcete provozovat více než jednu FreeNetIS instalaci v jedné databázi',
'if you want to run multiple freenetis installations in a single database, change this' => 'Jestliže chcete provozovat několik FreeNetIS instalací v jedné databázi, změňte toto.',
......
'key has been successfully added' => 'Klíč byl úspěšně přidán.',
'key has been successfully deleted' => 'Klíč byl úspěšně smazán.',
'key has been successfully updated' => 'Klíč byl úspěšně aktualizován.',
'lack of credit' => 'Nedostatek kreditu',
'language' => 'Jazyk',
'last changed author' => 'Autor poslední úpravy',
'last changed date' => 'Datum poslední úpravy',
......
'message has been successfully updated' => 'Zpráva byla úspěšně upravena.',
'message is already active' => 'Zpráva je již aktivní',
'message is active, cannot be deleted' => 'Zpráva je aktivní, nemůže být smazána',
'message is too long' => 'Zpráva je příliš dlouhá',
'message will be splited to' => 'Zpráva bude rozdělena na',
'message name' => 'Název zprávy',
'messages' => 'Zprávy',
'messages for redirection' => 'Zprávy pro přesměrování',
......
'phone invoices of user' => 'Telefonní faktury uživatele',
'phones' => 'Telefony',
'phones in invoice' => 'Telefonní čísla ve faktuře',
'php curl modul not installed' => 'PHP CURL modul není nainstalován',
'platform' => 'Platforma',
'please contact administrator' => 'Prosím kontaktujte administrátora.',
'please choose carefully your number' => 'Prosím vybírejte číslo opatrně!',
......
'smokeping record has been successfully deleted' => 'Záznam smokepingu byl úspěšně smazán',
'smokeping record has been successfully updated' => 'Záznam smokepingu byl úspěšně aktualizován',
'sms message list' => 'Seznam SMS zpráv',
'sms message recieved' => 'SMS zpráva přijata',
'sms message send' => 'SMS zpráva odeslána',
'sms messages' => 'SMS zprávy',
'sms message has been successfully added' => 'SMS zpráva byla úspěšně pridána.',
'sms message has been successfully added' => 'SMS zpráva byla úspěšně přidána.',
'sms settings' => 'SMS nastavení',
'some phones wasn\'t founded' => 'Některé telefony nebyly nalezeny',
'someone from the ip address %s, probably you, requested to change your password' => 'někdo, patrně Vy, žádal z IP %s o změnu vašeho hesla',
......
'tertiary dns' => 'Terciární DNS.',
'test mode' => 'Testovací mód',
'testing driver' => 'Test ovladače',
'text of message is too long' => 'Text zprávy je příliš dlouhý',
'text to parse' => 'Text k parsování',
'text for self cancel anchor' => 'Text pro odkaz na samozrušení přesměrování',
'thank you for your error report' => 'Děkujeme Vám za hlášení chyby',
......
'types count' => 'Počet typů',
'unconfirmed works' => 'Nepotvrzené práce',
'unidentified transfers' => 'Neidentifikované platby',
'unknown error' => 'Neznámá chyba',
'unknown device' => 'Neznámé zařízení',
'unknown device text' => 'Text pro neznámé zařízení',
'unknown ip address' => 'Neznámá IP adresa',
......
'works of report' => 'Práce ve výkazu',
'write email' => 'Napsat e-mail',
'write new message' => 'Napsat novou zprávu',
'written is' => 'Napsáno je',
'wrong or missing arguments' => 'Chybné, nebo chybějící argumenty',
'wrong call length' => 'Chybné trvání hovoru',
'wrong email' => 'Chybný e-mail',
'wrong input' => 'Chybný vstup',
......
'wrong period' => 'Špatné období',
'wrong phone number' => 'Špatné telefonní číslo',
'wrong date format' => 'Chybný formát dat',
'wrong gateway connection informations' => 'Chybné informace k připojení k bráně',
'wrong phone number or identification of user' => 'Nesprávné telefonní číslo nebo identifikace odesílatele',
'wrong phone number of reciever' => 'Nesprávné telefonní číslo příjemce',
'year' => 'Rok',
'yearly' => 'ročně',
'yes' => 'ano',
freenetis/branches/testing/application/vendors/unit_tester/unit_testing_config.xml
<input></input>
</values>
</method>
<method name="show_all" autogenerate="on">
<attributes>
<attribute name="limit_results" default_value="100" />
<attribute name="order_by" default_value="id" />
<attribute name="order_by_direction" default_value="desc" />
<attribute name="page_word" default_value="" />
<attribute name="page" default_value="1" />
</attributes>
<values>
<input></input>
<input>
<param value="100" />
</input>
<input>
<param value="100" />
<param value="id" />
</input>
<input>
<param value="100" />
<param value="id" />
<param value="desc" />
</input>
<input>
<param value="100" />
<param value="id" />
<param value="desc" />
<param value="" />
</input>
<input>
<param value="100" />
<param value="id" />
<param value="desc" />
<param value="" />
<param value="1" />
</input>
</values>
</method>
<method name="show_unread" autogenerate="on">
<attributes>
<attribute name="limit_results" default_value="100" />
<attribute name="order_by" default_value="id" />
<attribute name="order_by_direction" default_value="desc" />
<attribute name="page_word" default_value="" />
<attribute name="page" default_value="1" />
</attributes>
<values>
<input></input>
<input>
<param value="100" />
</input>
<input>
<param value="100" />
<param value="id" />
</input>
<input>
<param value="100" />
<param value="id" />
<param value="desc" />
</input>
<input>
<param value="100" />
<param value="id" />
<param value="desc" />
<param value="" />
</input>
<input>
<param value="100" />
<param value="id" />
<param value="desc" />
<param value="" />
<param value="1" />
</input>
</values>
</method>
<method name="show" autogenerate="on">
<attributes>
<attribute name="sms_id" default_value="" />
......
</input>
</values>
</method>
<method name="generate_subnet_address_book" autogenerate="on">
<attributes>
<attribute name="subnet_id" default_value="" />
</attributes>
<values>
<input></input>
<input>
<param value="" />
</input>
</values>
</method>
<method name="callback_valid_phone" autogenerate="off">
<attributes>
<attribute name="input" default_value=""/>
</attributes>
<values>
</values>
</method>
</controller>
<controller name="stats">
<method name="index" autogenerate="on">
......
</values>
</method>
</model>
<model name="sms_message"></model>
<model name="sms_message">
<method name="count_of_unread_messages" autogenerate="on">
<attributes></attributes>
<values>
<input></input>
</values>
</method>
</model>
<model name="street">
<method name="get_street" autogenerate="off">
<attributes>
freenetis/branches/testing/application/models/user.php
* @package Model
*
* @property Member_Model $member
* @property ORM_Iterator $jobs
* @property ORM_Iterator $devices
* @property ORM_Iterator $logs
* @property ORM_Iterator $phone_invoices_user
* @property ORM_Iterator $sms_messages
* @property ORM_Iterator $private_phone_contacts
* @property ORM_Iterator $users_keys
* @property ORM_Iterator $device_admin
* @property ORM_Iterator $contacts
* @property ORM_Iterator $clouds
*/
class User_Model extends ORM
{
......
public static $user = 2;
protected $belongs_to = array('member');
protected $has_many = array
(
'jobs', 'devices', 'logs', 'phone_invoices_users',
'jobs', 'devices', 'logs', 'phone_invoices_users', 'sms_messages',
'users' => 'private_phone_contacts', 'users_keys', 'device_admins'
);
protected $has_and_belongs_to_many = array('users_contacts' => 'contacts', 'clouds');
protected $has_and_belongs_to_many = array
(
'users_contacts' => 'contacts', 'clouds'
);
const ASSOCIATION = 1;
public static $arr_sql = array
freenetis/branches/testing/application/models/sms_message.php
<?php defined('SYSPATH') or die('No direct script access.');
/*
* This file is part of open source system FreeNetIS
* and it is release under GPLv3 licence.
* and it is released under GPLv3 licence.
*
* More info about licence can be found:
* http://www.gnu.org/licenses/gpl-3.0.html
......
/**
* @package Model
* @property integer $user_id
* @property User_Model $user
* @property integer $sms_message_id
* @property Sms_message_Model $sms_message
* @property datetime $stamp
* @property datetime $send_date
* @property string $text
* @property string $sender
* @property string $receiver
* @property integer $driver
* @property integer $type
* @property integer $state
* @property string $message
*/
class Sms_message_Model extends ORM
{
public function get_all_records($limit_from = 0, $limit_results = 50, $order_by = 'id',
//// type conctansts
const RECEIVED = 0;
const SENT = 1;
//// state conctansts
// constants for recieved SMS
const RECEIVED_UNREAD = 0;
const RECEIVED_READ = 1;
// constants for sended SMS
const SENT_OK = 0;
const SENT_UNSENT = 1;
const SENT_FAILED = 2;
protected $belongs_to = array('user', 'sms_message_id' => 'sms_message');
/**
* Gets all SMS messages
*
* @param integer $limit_from
* @param integer $limit_results
* @param string $order_by
* @param string $order_by_direction
* @param array $filter_values
* @return ORM_Iterator
*/
public function get_all_records(
$limit_from = 0, $limit_results = 50, $order_by = 'id',
$order_by_direction = 'asc', $filter_values = array())
{
// order by check
......
$order_by = 'id';
}
// order by direction check
$order_by_direction = strtolower($order_by_direction);
if ($order_by_direction != 'desc')
if (strtolower($order_by_direction) != 'desc')
{
$order_by_direction = 'asc';
}
......
");
}
public function get_unread_messages($limit_from = 0, $limit_results = 50,
$order_by = 'id', $order_by_direction = 'asc', $filter_values = array())
/**
* Gets all unread SMS messages
*
* @param integer $limit_from
* @param integer $limit_results
* @param string $order_by
* @param string $order_by_direction
* @param array $filter_values
* @return ORM_Iterator
*/
public function get_unread_messages(
$limit_from = 0, $limit_results = 50,
$order_by = 'id', $order_by_direction = 'asc',
$filter_values = array())
{
// order by check
if (!$this->has_column($order_by))
......
$order_by = 'id';
}
// order by direction check
$order_by_direction = strtolower($order_by_direction);
if ($order_by_direction != 'desc')
if (strtolower($order_by_direction) != 'desc')
{
$order_by_direction = 'asc';
}
......
return $this->db->query("
SELECT *
FROM sms_messages
WHERE type=? AND state=?
WHERE type = ? AND state = ?
ORDER BY $order_by $order_by_direction
LIMIT ".intval($limit_from).", ".intval($limit_results)."
", Sms_Controller::$RECEIVED, Sms_Controller::$RECEIVED_UNREAD);
", array
(
Sms_message_Model::RECEIVED,
Sms_message_Model::RECEIVED_UNREAD
));
}
/**
* Gets count of all unread messages
*
* @return integer
*/
public function count_of_unread_messages()
{
return $this->db->query("
SELECT COUNT(*) AS count
FROM sms_messages
WHERE type = ? AND state = ?
", array
(
Sms_message_Model::RECEIVED,
Sms_message_Model::RECEIVED_UNREAD
))->current()->count;
}
}
freenetis/branches/testing/application/controllers/scheduler.php
/**
* Function sends SMS messages from db queue.
*
* @author Roman Sevcik
* @author Ondrej Fibich, Roman Sevcik
*/
private function send_quened_sms()
{
$model_sms_message = new Sms_message_Model();
$unsent_messages = $model_sms_message->where(
'type = ' . Sms_Controller::$SENT .
' AND state = ' . Sms_Controller::$SENT_UNSENT .
' AND send_date < CURRENT_TIMESTAMP'
)->limit(50)->find_all();
// gets unsended SMS
$unsent_messages = ORM::factory('sms_message')->where(array
(
'type' => Sms_message_Model::SENT,
'state' => Sms_message_Model::SENT_UNSENT
))->where('send_date < CURRENT_TIMESTAMP')->limit(10)->find_all();
// no SMS unsended => bye bye!
if (!count($unsent_messages))
{
return;
}
$sms_drivers = array();
if (count($unsent_messages) > 0)
foreach ($unsent_messages as $message)
// send all SMS
foreach ($unsent_messages as $m)
{
// init driver if not initialized before
if (!array_key_exists($m->driver, $sms_drivers))
{
switch ($message->driver)
$sms = Sms::factory($m->driver);
// wrong driver
if (!$sms)
{
case Sms::$KLIKNIAVOLEJ:
$m->state = Sms_message_Model::SENT_FAILED;
$m->message = __('Unknown driver');
$m->save();
continue;
}
$user = $this->settings->get('sms_user' . Sms::$KLIKNIAVOLEJ);
$password = $this->settings->get('sms_password' . Sms::$KLIKNIAVOLEJ);
$test_mode = $this->settings->get('sms_test_mode' . Sms::$KLIKNIAVOLEJ) - 1;
// gets variables from config
$user = Settings::get('sms_user' . $m->driver);
$password = Settings::get('sms_password' . $m->driver);
$hostname = Settings::get('sms_hostname' . $m->driver);
$test_mode = (Settings::get('sms_test_mode' . $m->driver) == 1);
$sms = new Sms_Klikniavolej();
$sms->user($user);
$sms->password($password);
$sms->sender($message->sender);
$sms->recipient($message->receiver);
if ($test_mode == Sms_Klikniavolej::$TEST_MODE_YES)
$sms->test(Sms_Klikniavolej::$TEST_MODE_YES);
$sms->text(htmlspecialchars_decode($message->text));
if ($sms->send())
{
$message->state = Sms_Controller::$SENT_OK;
$message->message = $sms->get_status();
}
else
{
$message->state = Sms_Controller::$SENT_FAILED;
$message->message = $sms->get_error();
}
$message->save();
break;
case Sms::$NEJLEVNEJSISMS:
// sets config vars to driver
$sms->set_hostname($hostname);
$sms->set_user($user);
$sms->set_password($password);
$sms->set_test($test_mode);
// save driver
$sms_drivers[$m->driver] = $sms;
}
// prepare message
$text = htmlspecialchars_decode($m->text);
// sends SMS
if ($sms_drivers[$m->driver]->send($m->sender, $m->receiver, $text))
{
$m->state = Sms_message_Model::SENT_OK;
$m->message = $sms_drivers[$m->driver]->get_status();
}
else
{
$m->state = Sms_message_Model::SENT_FAILED;
$m->message = $sms_drivers[$m->driver]->get_error();
}
$user = $this->settings->get('sms_user' . Sms::$NEJLEVNEJSISMS);
$password = $this->settings->get('sms_password' . Sms::$NEJLEVNEJSISMS);
$sms = new Sms_Nejlevnejsisms();
$sms->user($user);
$sms->password($password);
$sms->recipient($message->receiver);
$sms->text(htmlspecialchars_decode($message->text));
if ($sms->send())
{
$message->state = Sms_Controller::$SENT_OK;
$message->message = $sms->get_status();
}
else
{
$message->state = Sms_Controller::$SENT_FAILED;
$message->message = $sms->get_error();
}
$message->save();
case Sms::$SOUNDWINV100:
$user = $this->settings->get('sms_user' . Sms::$SOUNDWINV100);
$password = $this->settings->get('sms_password' . Sms::$SOUNDWINV100);
$hostname = $this->settings->get('sms_hostname' . Sms::$SOUNDWINV100);
$sms = new Sms_Soudvinv100();
$sms->user($user);
$sms->password($password);
$sms->hostname($hostname);
$sms->recipient('00' . $message->receiver);
$sms->text(htmlspecialchars_decode($message->text));
if ($sms->send())
{
$message->state = Sms_Controller::$SENT_OK;
$message->message = $sms->get_status();
}
else
{
$message->state = Sms_Controller::$SENT_FAILED;
$message->message = $sms->get_error();
}
$message->save();
break;
case Sms::$INACTIVE:
default:
$message->state = Sms_Controller::$SENT_FAILED;
$message->message = 'Neznámý ovladač';
$message->save();
}
}
// save message
$m->save();
}
}
/**
* Function receive SMS messages from GSM gw.
*
* @author Roman Sevcik
* @author Ondrej Fibich, Roman Sevcik
*/
private function receive_sms()
{
if ($this->settings->get('sms_driver_state' . Sms::$SOUNDWINV100) == Sms::$DRIVER_ACTIVE)
$active_drivers = Sms::get_active_drivers();
// for each active driver
foreach ($active_drivers as $key => $driver)
{
$user = $this->settings->get('sms_user' . Sms::$SOUNDWINV100);
$password = $this->settings->get('sms_password' . Sms::$SOUNDWINV100);
$hostname = $this->settings->get('sms_hostname' . Sms::$SOUNDWINV100);
$sms = new Sms_Soudvinv100();
$sms->user($user);
$sms->password($password);
$sms->hostname($hostname);
// create driver
$sms = Sms::factory($key);
if (!$sms)
{
continue;
}
// sets vars to driver
$sms->set_hostname(Settings::get('sms_hostname' . $key));
$sms->set_user(Settings::get('sms_user' . $key));
$sms->set_password(Settings::get('sms_password' . $key));
// receive
if ($sms->receive())
{
// get messages
$messages = $sms->get_messages();
//print '<pre>';
//print_r ($messages);
//print '</pre>';
for ($i = 0; $i < count($messages); $i++)
foreach ($messages as $message)
{
if (strtolower($messages[$i]->text) === 'klima')
$recipient = Settings::get('sms_sim_card_number' . $key);
if ($recipient == null || $recipient == '')
{
print 'Sending answer to ' . $messages[$i]->sender;
$sms = new Sms_Soudvinv100();
$sms->user($user);
$sms->password($password);
$sms->hostname($hostname);
$sms->recipient('00' . $messages[$i]->sender);
$sms->text(htmlspecialchars_decode('Klima je nejlepsi, Klima je super, Klima je nej...! S pozdravem FreeNetIS'));
$sms->send();
$recipient = Settings::get('sms_sender_number');
}
elseif (strtolower($messages[$i]->text) === 'freenetis stav')
{
print 'Sending answer to ' . $messages[$i]->sender;
$sms = new Sms_Soudvinv100();
$sms->user($user);
$sms->password($password);
$sms->hostname($hostname);
$sms->recipient('00' . $messages[$i]->sender);
$sms->text(htmlspecialchars_decode('Vas aktualni kredit je 1240 CZK. S pozdravem FreeNetIS'));
$sms->send();
}
else
{
$recipient = $this->settings->get('sms_sim_card_number' . Sms::$SOUNDWINV100);
if ($recipient == null || $recipient == '')
$recipient = $this->settings->get('sms_sender_number');
$sms = new Sms_message_Model();
$sms->user_id = 1;
$sms->stamp = $messages[$i]->date;
$sms->send_date = $messages[$i]->date;
$sms->text = htmlspecialchars($messages[$i]->text);
$sms->sender = $messages[$i]->sender;
$sms->receiver = $recipient;
$sms->driver = Sms::$SOUNDWINV100;
$sms->type = Sms_Controller::$RECEIVED;
$sms->state = Sms_Controller::$RECEIVED_UNREAD;
$sms->save();
}
// save message to database
$sms_model = new Sms_message_Model();
$sms_model->user_id = NULL;
$sms_model->stamp = $message->date;
$sms_model->send_date = $message->date;
$sms_model->text = htmlspecialchars($message->text);
$sms_model->sender = $message->sender;
$sms_model->receiver = $recipient;
$sms_model->driver = $key;
$sms_model->type = Sms_message_Model::RECEIVED;
$sms_model->state = Sms_message_Model::RECEIVED_UNREAD;
$sms_model->save();
}
}
}
freenetis/branches/testing/application/controllers/settings.php
}
}
$data[__('DB schema revision')] = $this->settings->get('db_schema_version');
$data[__('DB schema revision')] = Settings::get('db_schema_version');
ob_start();
phpinfo();
$html = ob_get_contents();
......
$this->form->input('title')
->label(__('Page title') . ':')
->rules('length[3,40]|required')
->value($this->settings->get('title'));
->value(Settings::get('title'));
$countries = ORM::factory('country')->select_list('id', 'country_name');
......
->label(__('Country') . ':')
->rules('required')
->options($countries)
->selected($this->settings->get('default_country'));
->selected(Settings::get('default_country'));
// currency
$this->form->input('currency')
->label(__('Currency') . ':')
->rules('length[3,40]|required')
->value($this->settings->get('currency'));
->value(Settings::get('currency'));
// self-registration
$this->form->radio('self_registration')
->label(__('Self-registration') . ':')
->options($arr_bool)
->default($this->settings->get('self_registration'));
->default(Settings::get('self_registration'));
// forgotten password
$this->form->radio('forgotten_password')
->label(__('Forgotten password') . ':')
->options($arr_bool)
->default($this->settings->get('forgotten_password'));
->default(Settings::get('forgotten_password'));
$this->form->group('')
->label(__('E-mail settings'));
......
$this->form->input('email_default_email')
->label(__('Default e-mail') . ':')
->rules('length[3,100]|valid_email')
->value($this->settings->get('email_default_email'));
->value(Settings::get('email_default_email'));
$this->form->group('')
->label(__('URL settings'));
......
$this->form->radio('clean_urls')
->label(__('Clean URLs') . ':')
->options($arr_bool)
->default(!$this->settings->get('index_page'))
->default(!Settings::get('index_page'))
->help(__('URL addresses without index.php.'));
foreach ($htaccessFile as $line_num => $line)
......
'native' => __('Native'),
'smtp' => __('SMTP'),
'sendmail' => __('Sendmail')
))->selected($this->settings->get('email_driver'));
))->selected(Settings::get('email_driver'));
$this->form->input('email_hostname')
->label(__('Hostname') . ':')
->value($this->settings->get('email_hostname'))
->value(Settings::get('email_hostname'))
->help(__('For SMTP settings only.'));
$this->form->input('email_port')
->label(__('Port') . ':')
->rules('valid_numeric')
->value($this->settings->get('email_port'))
->value(Settings::get('email_port'))
->help(__('For SMTP settings only.'));
$this->form->input('email_username')
->label(__('User name') . ':')
->value($this->settings->get('email_username'))
->value(Settings::get('email_username'))
->help(__('For SMTP settings only.'));
$this->form->input('email_password')
->label(__('Password') . ':')
->value($this->settings->get('email_username'))
->value(Settings::get('email_username'))
->help(__('For SMTP settings only.'));
$this->form->submit('Save');
......
$this->form->dropdown('default_work_approval_template')
->label(__('Default approval template') . ':')
->options($arr_approval_templates)
->selected($this->settings->get('default_work_approval_template'))
->selected(Settings::get('default_work_approval_template'))
->rules('required');
$this->form->group('')
......
$this->form->dropdown('default_work_report_approval_template')
->label(__('Default approval template') . ':')
->options($arr_approval_templates)
->selected($this->settings->get('default_work_report_approval_template'))
->selected(Settings::get('default_work_report_approval_template'))
->rules('required');
$this->form->group('')
......
$this->form->dropdown('default_request_approval_template')
->label(__('Default approval template') . ':')
->options($arr_approval_templates)
->selected($this->settings->get('default_request_approval_template'))
->selected(Settings::get('default_request_approval_template'))
->rules('required');
$this->form->submit('Save');
......
$this->form->input('voip_number_interval')
->label(__('Number interval') . ':')
->rules('length[19,19]|required')
->value(addslashes($this->settings->get('voip_number_interval')))
->value(addslashes(Settings::get('voip_number_interval')))
->callback(array($this, 'valid_voip_number_interval'));
$this->form->input('voip_number_exclude')
->label(__('Exclude numbers') . ':')
->rules('length[9,100]')
->value(addslashes($this->settings->get('voip_number_exclude')))
->value(addslashes(Settings::get('voip_number_exclude')))
->callback(array($this, 'valid_voip_number_exclude'));
$this->form->input('voip_sip_server')
->label(__('SIP server') . ':')
->rules('length[1,30]|required')
->value(addslashes($this->settings->get('voip_sip_server')));
->value(addslashes(Settings::get('voip_sip_server')));
$this->form->group('')
->label(__('Asterisk manager settings'));
......
$this->form->input('voip_asterisk_hostname')
->label(__('Hostname') . ':')
->rules('length[1,50]')
->value($this->settings->get('voip_asterisk_hostname'));
->value(Settings::get('voip_asterisk_hostname'));
$this->form->input('voip_asterisk_user')
->label(__('User') . ':')
->rules('length[1,50]')
->value($this->settings->get('voip_asterisk_user'));
->value(Settings::get('voip_asterisk_user'));
$this->form->input('voip_asterisk_pass')
->label(__('Password') . ':')
->rules('length[1,50]')
->value($this->settings->get('voip_asterisk_pass'));
->value(Settings::get('voip_asterisk_pass'));
$this->form->group('')
......
(
Billing::INACTIVE => __('Inactive'),
Billing::NFX_LBILLING => "lBilling - NFX"
))->selected($this->settings->get('voip_billing_driver'));
))->selected(Settings::get('voip_billing_driver'));
$this->form->input('voip_billing_partner')
->label(__('Partner') . ':')
->rules('length[1,50]')
->value($this->settings->get('voip_billing_partner'));
->value(Settings::get('voip_billing_partner'));
$this->form->input('voip_billing_password')
->label(__('Password') . ':')
->rules('length[1,50]')
->value($this->settings->get('voip_billing_password'));
->value(Settings::get('voip_billing_password'));
$this->form->group('')
......
$this->form->input('voip_tariff_fixed')
->label(__('Fixed line number') . ':')
->rules('valid_numeric')
->value($this->settings->get('voip_tariff_fixed'));
->value(Settings::get('voip_tariff_fixed'));
$this->form->input('voip_tariff_cellphone')
->label(__('Cellphone number') . ':')
->rules('valid_numeric')
->value($this->settings->get('voip_tariff_cellphone'));
->value(Settings::get('voip_tariff_cellphone'));
$this->form->input('voip_tariff_voip')
->label(__('VoIP number') . ':')
->rules('valid_numeric')
->value($this->settings->get('voip_tariff_voip'));
->value(Settings::get('voip_tariff_voip'));
$this->form->submit('Save');
......
if (!empty($message))
$view->content->message = $message;
$hostname = $this->settings->get('voip_asterisk_hostname');
$user = $this->settings->get('voip_asterisk_user');
$pass = $this->settings->get('voip_asterisk_pass');
$hostname = Settings::get('voip_asterisk_hostname');
$user = Settings::get('voip_asterisk_user');
$pass = Settings::get('voip_asterisk_pass');
$additional_info = null;
......
*/
public function sms()
{
// access control
if (!$this->acl_check_edit(get_class($this), 'system'))
{
Controller::error(ACCESS);
$drivers = Sms::get_drivers();
}
foreach ($drivers as $key => $driver)
// enabled SMS?
if (!Sms::enabled())
{
$drivers[$key] = Sms::get_driver_name($key);
$view = new View('main');
$view->title = __('Settings') . ' - ' . __('SMS');
$view->content = new View('settings');
$view->content->current = 'sms';
$view->content->content = new View('sms/not_enabled');
$view->content->headline = __('Error - SMS not enabled');
$view->render(TRUE);
exit;
}
$drivers = Sms::get_active_drivers();
// creating of new forge
$this->form = new Forge('settings/sms');
......
$this->form->input('sms_sender_number')
->label(__('Number of the sender') . ':')
->rules('length[12,12]|required|valid_phone')
->value($this->settings->get('sms_sender_number'));
->value(Settings::get('sms_sender_number'));
$this->form->dropdown('sms_driver')
->label(__('Default driver') . ':')
->rules('required')
->options($drivers)
->selected($this->settings->get('sms_driver'));
->selected(Settings::get('sms_driver'));
$this->form->input('sms_permit_extensions')
->label(__('Permit extensions') . ':')
->rules('required')
->value($this->settings->get('sms_permit_extensions'));
->value(Settings::get('sms_permit_extensions'));
$this->form->group('')
->label(Sms::get_driver_name(Sms::$KLIKNIAVOLEJ) . ' - ' .
__('Settings'));
/* Forms for all drivers */
$this->form->dropdown('sms_driver_state' . Sms::$KLIKNIAVOLEJ)
->label(__('Driver state') . ':')
->options(array
(
Sms::$DRIVER_INACTIVE => __('Inactive'),
Sms::$DRIVER_ACTIVE => __('Active')
))->selected($this->settings->get('sms_driver_state' . Sms::$KLIKNIAVOLEJ));
$aditional_info = '';
$drivers = Sms::get_drivers();
$this->form->input('sms_user' . Sms::$KLIKNIAVOLEJ)
->label(__('User') . ':')
->rules('length[1,50]')
->value($this->settings->get('sms_user' . Sms::$KLIKNIAVOLEJ));
foreach ($drivers as $driver)
{
$key = $driver['id'];
$this->form->input('sms_password' . Sms::$KLIKNIAVOLEJ)
->label(__('Password') . ':')
->rules('length[1,50]')
->value($this->settings->get('sms_password' . Sms::$KLIKNIAVOLEJ));
$this->form->dropdown('sms_test_mode' . Sms::$KLIKNIAVOLEJ)
->label(__('Test mode') . ':')
->options(array
(
Sms_Klikniavolej::$TEST_MODE_YES + 1 => __('Yes'),
Sms_Klikniavolej::$TEST_MODE_NO + 1 => __('No')
))->selected($this->settings->get('sms_test_mode' . Sms::$KLIKNIAVOLEJ));
/* Build form */
$this->form->group(Sms::get_driver_name($key));
$this->form->group('')
->label(Sms::get_driver_name(Sms::$NEJLEVNEJSISMS) . ' - ' .
__('Settings'));
$this->form->dropdown('sms_driver_state' . $key)
->label(__('Driver state') . ':')
->options(array
(
Sms::DRIVER_INACTIVE => __('Inactive'),
Sms::DRIVER_ACTIVE => __('Active')
))->selected(Settings::get('sms_driver_state' . $key));
$this->form->dropdown('sms_driver_state' . Sms::$NEJLEVNEJSISMS)
->label(__('Driver state') . ':')
->options(array
(
Sms::$DRIVER_INACTIVE => __('Inactive'),
Sms::$DRIVER_ACTIVE => __('Active')
))->selected($this->settings->get('sms_driver_state' . Sms::$NEJLEVNEJSISMS));
$this->form->input('sms_user' . Sms::$NEJLEVNEJSISMS)
->label(__('User') . ':')
->rules('length[1,50]')
->value($this->settings->get('sms_user' . Sms::$NEJLEVNEJSISMS));
$this->form->input('sms_password' . Sms::$NEJLEVNEJSISMS)
->label(__('Password') . ':')
->rules('length[1,50]')
->value($this->settings->get('sms_password' . Sms::$NEJLEVNEJSISMS));
// hostname not defined by config driver array?
if (!array_key_exists('hostname', $driver))
{
$this->form->input('sms_hostname' . $key)
->label(__('Hostname') . ':')
->rules('length[1,50]')
->value(Settings::get('sms_hostname' . $key));
}
$this->form->group('')
->label(Sms::get_driver_name(Sms::$SOUNDWINV100) . ' - ' .
__('Settings'));
$this->form->dropdown('sms_driver_state' . Sms::$SOUNDWINV100)
->label(__('Driver state') . ':')
->options(array
(
Sms::$DRIVER_INACTIVE => __('Inactive'),
Sms::$DRIVER_ACTIVE => __('Active')
))->selected($this->settings->get('sms_driver_state' . Sms::$SOUNDWINV100));
$this->form->input('sms_sim_card_number' . Sms::$SOUNDWINV100)
->label(__('Phone number of the SIM card') . ':')
->rules('length[12,12]|valid_phone')
->value($this->settings->get('sms_sim_card_number' . Sms::$SOUNDWINV100));
$this->form->input('sms_user' . Sms::$SOUNDWINV100)
->label(__('User') . ':')
->rules('length[1,50]')
->value($this->settings->get('sms_user' . Sms::$SOUNDWINV100));
$this->form->input('sms_password' . Sms::$SOUNDWINV100)
->label(__('Password') . ':')
->rules('length[1,50]')
->value($this->settings->get('sms_password' . Sms::$SOUNDWINV100));
$this->form->input('sms_hostname' . Sms::$SOUNDWINV100)
->label(__('Hostname') . ':')
->rules('length[1,50]')
->value($this->settings->get('sms_hostname' . Sms::$SOUNDWINV100));
$this->form->input('sms_user' . $key)
->label(__('User') . ':')
->rules('length[1,50]')
->value(Settings::get('sms_user' . $key));
$this->form->input('sms_password' . $key)
->label(__('Password') . ':')
->rules('length[1,50]')
->value(Settings::get('sms_password' . $key));
// test mode on?
if ($driver['test_mode_enabled'])
{
$this->form->dropdown('sms_test_mode' . $key)
->label(__('Test mode') . ':')
->options(array
(
1 => __('Yes'),
0 => __('No')
))->selected(Settings::get('sms_test_mode' . $key));
}
/* Testing of gates */
if (Settings::get('sms_driver_state' . $key) == Sms::DRIVER_ACTIVE)
{
// variables
$hostname = Settings::get('sms_hostname' . $key);
$aditional_info .= __('Testing driver') . ' : '
. Sms::get_driver_name($key)
. '......<span style="color:';
// sms
$sms = Sms::factory($key);
// loaded?
if (!$sms)
{
$aditional_info .= 'red">' . __('Load failed') . '</span><br />';
continue;
}
// sets vars to class
$sms->set_hostname(Settings::get('sms_hostname' . $key));
$sms->set_user(Settings::get('sms_user' . $key));
$sms->set_password(Settings::get('sms_password' . $key));
$sms->set_test(Settings::get('sms_test_mode' . $key) == 1);
if ($sms->test_conn())
{
$aditional_info .= 'green">OK</span><br />';
}
else
{
$aditional_info .= 'red">' . __('Failed') . '</span><br />';
}
}
}
$this->form->submit('Save');
special::required_forge_style($this->form, ' *', 'required');
......
// check if variable exists
if ($config_model->check_exist_variable($name))
// update of variable
{
$issaved = $issaved && $config_model->update_variable($name, $value);
}
else
// insert new variable
{
$issaved = $issaved && $config_model->insert_variable($name, $value);
}
}
if ($issaved)
......
$view->content->content = $this->form->html();
$view->content->headline = __('SMS');
$view->content->link_back = $this->links;
if (!empty($message))
$view->content->message = $message;
$aditional_info = null;
if ($this->settings->get('sms_driver_state' . Sms::$KLIKNIAVOLEJ) == Sms::$DRIVER_ACTIVE)
{
$sms = new Sms_Klikniavolej();
$sms->user($this->settings->get('sms_user' . Sms::$KLIKNIAVOLEJ));
$sms->password($this->settings->get('sms_password' . Sms::$KLIKNIAVOLEJ));
if ($sms->test_conn())
{
$aditional_info[] = __('Testing driver')
. ' : ' . Sms::get_driver_name(Sms::$KLIKNIAVOLEJ)
. '......<span style="color:green">OK</span>';
}
else
{
$aditional_info[] = __('Testing driver')
. ' : ' . Sms::get_driver_name(Sms::$KLIKNIAVOLEJ)
. '......<span style="color:red">'
. __('Failed') . '</span>';
}
}
if ($this->settings->get('sms_driver_state' . Sms::$SOUNDWINV100) == Sms::$DRIVER_ACTIVE)
{
$sms = new Sms_Soudvinv100();
$sms->user($this->settings->get('sms_user' . Sms::$SOUNDWINV100));
$sms->password($this->settings->get('sms_password' . Sms::$SOUNDWINV100));
$sms->hostname($this->settings->get('sms_hostname' . Sms::$SOUNDWINV100));
if ($sms->test_conn())
{
$aditional_info[] = __('Testing driver')
. ' : ' . Sms::get_driver_name(Sms::$SOUNDWINV100)
. '......<span style="color:green">OK</span>';
}
else
{
$aditional_info[] = __('Testing driver')
. ' : ' . Sms::get_driver_name(Sms::$SOUNDWINV100)
. '......<span style="color:red">'
. __('Failed') . '</span>';
}
}
$view->content->aditional_info = $aditional_info;
$view->content->additional_info = $aditional_info;
$view->render(TRUE);
}
......
->label(__('Interval of update') . ': ' .
help::hint('ulogd_update_interval'))
->rules('required|valid_numeric')
->value($this->settings->get('ulogd_update_interval'));
->value(Settings::get('ulogd_update_interval'));
$this->form->group('')
->label(__('Active members') . ' ' .
......
->label(__('Base') . ': ' .
help::hint('ulogd_active_count'))
->rules('required|valid_ulogd_active_count')
->value($this->settings->get('ulogd_active_count'));
->value(Settings::get('ulogd_active_count'));
$this->form->dropdown('ulogd_active_type')
->label(__('Type of traffic') . ': ' .
......
'total' => __('both') . ' ('
. __('upload') . ' + '
. __('download') . ')'
))->selected($this->settings->get('ulogd_active_type'));
))->selected(Settings::get('ulogd_active_type'));
$this->form->input('ulogd_active_min')
->label(__('Minimum of traffic') . ': ' .
......
);
$this->form->action_logs_active->disabled('disabled');
}
else if ($this->settings->get('action_logs_active') == 1)
else if (Settings::get('action_logs_active') == 1)
{
$this->form->action_logs_active->checked('checked');
}
......
$this->form->ulogd_enabled->disabled('disabled');
}
else if ($this->settings->get('ulogd_enabled') == 1)
else if (Settings::get('ulogd_enabled') == 1)
{
$this->form->ulogd_enabled->checked('checked');
}
......
->label(__('Info') . ':')
->rows(5)
->cols(100)
->value($this->settings->get('registration_info'));
->value(Settings::get('registration_info'));
$this->form->html_textarea('registration_license')
->label(__('License') . ':')
->rows(5)
->cols(100)
->value($this->settings->get('registration_license'));
->value(Settings::get('registration_license'));
$this->form->submit('Save');
freenetis/branches/testing/application/controllers/sms.php
/**
* SMS controller.
*
* @author Lubomir Buben, Roman Sevcik
* @author Lubomir Buben, Roman Sevcik, Ondrej Fibich
*
* @TODO correct functionality not confirmed - candidate for removal? (jsvitak)
* @TODO access rights missing (dzolo)
*/
class Sms_Controller extends Controller{
class Sms_Controller extends Controller
{
/**
* Contruct checks if SMS are enabled
*/
public function __construct()
{
parent::__construct();
if (!Sms::enabled())
{
$view = new View('main');
$view->title = __('SMS Messages');
$view->content = new View('sms/not_enabled');
$view->content->headline = __('Error - SMS not enabled');
$view->render(TRUE);
exit;
}
}
static public $RECEIVED = 0;
static public $SENT = 1;
static public $RECEIVED_UNREAD = 0;
static public $RECEIVED_READ = 1;
static public $SENT_OK = 0;
static public $SENT_UNSENT = 1;
static public $SENT_FAILED = 2;
/**
* Redirects to show all
*/
public function index()
{
url::redirect(url_lang::base().'sms/show_all');
url::redirect('sms/show_all');
}
/**
* This function show all messages in database
*
* @author Roman Sevcik
* @param <type> $limit_results
* @param <type> $order_by
* @param <type> $order_by_direction
* @param <type> $page_word
* @param <type> $page
* @param integer $limit_results
* @param string $order_by
* @param string $order_by_direction
* @param mixed $page_word
* @param string $page
*/
public function show_all($limit_results = 100, $order_by = 'id', $order_by_direction = 'desc', $page_word = null, $page = 1)
public function show_all(
$limit_results = 100, $order_by = 'id',
$order_by_direction = 'desc', $page_word = null, $page = 1)
{
// get new selector
if (is_numeric($this->input->get('record_per_page')))
$limit_results = (int) $this->input->get('record_per_page');
{
$limit_results = (int) $this->input->get('record_per_page');
}
// parameters control
$allowed_order_type = array('id', 'name', 'user_id');
$allowed_order_type = array('id', 'name', 'user_id', 'send_date', 'type');
if (!in_array(strtolower($order_by), $allowed_order_type))
$order_by = 'user_id';
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc')
$order_by_direction = 'asc';
{
$order_by = 'user_id';
}
if (strtolower($order_by_direction) != 'asc')
{
$order_by_direction = 'desc';
}
$model_sms_message = new Sms_message_Model();
$total_sms_message = $model_sms_message->count_all();
if (($sql_offset = ($page - 1) * $limit_results) > $total_sms_message)
$sql_offset = 0;
{
$sql_offset = 0;
}
$all_sms_message = $model_sms_message->get_all_records($sql_offset, (int)$limit_results, $order_by, $order_by_direction);
$all_sms_message = $model_sms_message->get_all_records(
$sql_offset, $limit_results,
$order_by, $order_by_direction
);
$headline = url_lang::lang('texts.SMS message list');
$grid = new Grid(url_lang::base().'sms', $headline, array(
'use_paginator' => true,
'use_selector' => true,
'current' => $limit_results, //current selected 'records_per_page' value
'selector_increace' => 100, // increace
'selector_min' => 100, // minimum where selector start
'selector_max_multiplier' => 10,
'base_url' => Config::get('lang').'/sms/show_all/'.$limit_results.'/'.$order_by.'/'.$order_by_direction,
'uri_segment' => 'page', // pass a string as uri_segment to trigger former 'label' functionality
'total_items' => $total_sms_message, // use db count query here of course
'items_per_page' => $limit_results, // it may be handy to set defaults for stuff like this in config/pagination.php
'style' => 'classic',
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'limit_results' => $limit_results
$headline = __('SMS message list');
$grid = new Grid('sms', $headline, array
(
'use_paginator' => true,
'use_selector' => true,
'current' => $limit_results,
'selector_increace' => 100,
'selector_min' => 100,
'selector_max_multiplier' => 10,
'base_url' => Config::get('lang').'/sms/show_all/'
. $limit_results.'/'.$order_by.'/'.$order_by_direction,
'uri_segment' => 'page',
'total_items' => $total_sms_message,
'items_per_page' => $limit_results,
'style' => 'classic',
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'limit_results' => $limit_results
));
$drivers = Sms::get_drivers();
foreach ($drivers as $key => $driver)
{
if ($this->settings->get('sms_driver_state'.$key) == Sms::$DRIVER_ACTIVE)
$drivers[$key] = Sms::get_driver_name($key);
else
unset($drivers[$key]);
}
$grid->add_new_button('sms/show_unread', __('Show unread messages'));
$grid->add_new_button(url_lang::base().'sms/show_unread', url_lang::lang('texts.Show unread messages'));
if (count($drivers) != 0)
$grid->add_new_button(url_lang::base().'sms/send', url_lang::lang('texts.Send message'));
$grid->order_field('id')->label(url_lang::lang('texts.id'));//->callback('VoIP_Controller::name');
$grid->order_field('send_date')->label(url_lang::lang('texts.Send date'));//->callback('VoIP_Controller::locked');
$grid->order_field('text')->label(url_lang::lang('texts.Text'));//->callback('VoIP_Controller::user_name');
$grid->order_callback_field('type')->label(url_lang::lang('texts.Type'))->callback('Sms_Controller::type');
$grid->callback_field('state')->label(url_lang::lang('texts.State'))->callback('Sms_Controller::state');
$grid->action_field('id') ->label(url_lang::lang('texts.Message'))->url(url_lang::base().'sms/show')->action(url_lang::lang('texts.Show'));
if (Sms::has_active_driver())
{
$grid->add_new_button('sms/send', __('Send message'));
}
$grid->order_field('id');
$grid->order_callback_field('send_date')
->callback('callback::datetime');
$grid->order_callback_field('text')
->callback('callback::limited_text');
$grid->order_callback_field('type')
->callback(array($this, 'type'))
->class('center');
$grid->callback_field('state')
->callback(array($this, 'state'));
$grid->grouped_action_field()
->add_action()
->icon_action('show')
->url('sms/show');
$grid->datasource($all_sms_message);
$view = new View('main');
$view->title = $headline;
$view->content = $grid;
$view->breadcrumbs = __('SMS messages');
$view->render(TRUE);
}
... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.

Také k dispozici: Unified diff