Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 856

Přidáno uživatelem Jiří Sviták před více než 13 roky(ů)

Prace na novem systemu presmerovani. Psani programove napovedy pro nove presmerovani.

Zobrazit rozdíly:

freenetis/branches/redirection/application/i18n/cs_CZ/texts.php
'accounts' => 'Účty',
'action' => 'Akce',
'activate' => 'Aktivovat',
'activate redirection to member' => 'Aktivovat členovi přesměrování',
'activated number has not been changed' => 'Aktivované číslo již nelze změnit',
'activation date' => 'Datum aktivace',
'active' => 'Aktivní',
'active message' => 'Aktivní zpráva',
'active redirection' => 'Aktivní přesměrování',
'active redirections' => 'Aktivní přesměrování',
'actual' => 'Aktuální',
'add' => 'Přidat',
......
'add new work' => 'Přidat novou práci',
'add new work report' => 'Přidat nový pracovní výkaz',
'add private phone number contact' => 'Přidat soukromý telefoní kontakt',
'add redirection to all ip addresses of member' => 'Přidat přesměrování všem IP adresám člena',
'add smokeping menu item' => 'Přidat položku menu smokepingu',
'add smokeping record' => 'Přidat záznam smokepingu',
'add voip account' => 'Přidat VoIP účet',
......
'buy date' => 'Datum koupě',
'cancel' => 'Zrušit',
'called number' => 'Volané číslo',
'cancel whitelist' => 'Zrušit whitelist',
'caller' => 'Volající',
'callcon' => 'Volaný',
'calls' => 'Volání',
......
'deactivation date' => 'Datum deaktivace',
'debtor' => 'Dlužník',
'debtor boundary' => 'Hranice pro dlužníka',
'debtor message' => 'Zpráva pro dlužníky',
'debtor text' => 'Text pro dlužníka',
'debtors' => 'Dlužníci',
'december' => 'Prosinec',
......
'generate reverse dns files' => 'Generovat zpětné soubory DNS',
'generate smokeping configuration file' => 'Generovat konfigurační soubor smokepingu',
'generation of configuration files' => 'Generování konfiguračních souborů',
'good' => 'Dobré',
'good' => 'Dobré',
'gps' => 'GPS souřadnice',
'group' => 'Skupina',
'group selection by same phone number' => 'Sdružovat výběry dle telefoních čísel',
......
'interface type' => 'Typ rozhraní',
'interfaces list' => 'Seznam rozhraní',
'interfaces' => 'Rozhraní',
'interrupted membership message' => 'Zpráva při přerušení členství',
'interval is required' => 'Interval je povinný',
'interval of interruption collides with another interruption of this member' => 'Interval přerušení koliduje s jiným přerušením tohoto člena',
'invalid date' => 'Neplatné datum!',
......
'next step' => 'Další krok',
'nineth-degree certified engineers' => 'Certifikování technici devátého stupně',
'no' => 'ne',
'no redirection' => 'Žádné přesměrování',
'no redirection is possible to set for this ip address' => 'Žádné přesměrování není možné nastavit pro tuto IP adresu.',
'no sms message has been added' => 'Žádná SMS zpráva nebyla přidána.',
'no member fee set!' => 'Členský příspěvek nenastaven!',
'no whitelist' => 'Žádný whitelist',
'no whitelist' => 'Žádná bílá listina',
'nonactive' => 'Neaktivní',
'none' => 'žádný',
'non-member' => 'Nečlen',
......
'outbound' => 'Odchozí',
'owner of account' => 'Vlastník účtu',
'owners of company telephones' => 'Vlastníci firemnch telefonů',
'page after canceling redirection' => 'Stránka po zrušení přesměrování',
'page title' => 'Titulek stránky',
'parse' => 'Parsovat',
'password for voip account' => 'Heslo pro VoIP účet',
......
'percent for majority must be in interval 51 - 100' => 'Procent pro většinu musí být v intervalu 51 - 100.',
'period' => 'Období',
'permanent' => 'Trvalé',
'permanent whitelist' => 'Trvalý whitelist',
'permanent whitelist' => 'Trvalá bílá listina',
'permit extensions' => 'Povolená předčíslí',
'personal comment from administrator' => 'Osobní komentář od administrátora',
'phone' => 'Telefon',
......
'sent message' => 'Odeslaná zpráva',
'september' => 'Září',
'service' => 'Služba',
'set whitelist to member' => 'Nastavit bílou listinu členovi',
'settings' => 'Nastavení',
'settings for configuration files has been successfully updated' => 'Nastavení pro kofigurační soubory bylo úspěšně upraveno',
'setup config' => 'Nastavení konfigurace',
......
'surname' => 'Příjmení',
'system' => 'Systém',
'system administrators' => 'Systémoví administrátoři',
'system message' => 'Systémová zpráva',
'system users' => 'Systémoví uživatelé',
'system variables' => 'Systémové proměnné',
'system variables have been successfully updated' => 'Systémové proměnné byly úspěšně aktualizovány',
......
'template has been successfully updated' => 'Šablona byla úspěšně upravena.',
'template items' => 'Položky šablony',
'template name' => 'Název šablony',
'temporary whitelist' => 'Dočasný whitelist',
'temporary whitelist' => 'Dočasná bílá listina',
'telephone number' => 'Telefonní číslo',
'telephone prefix' => 'Telefonní předčíslí',
'tenth-degree certified engineers' => 'Certifikování technici desátého stupně',
......
'types count' => 'Počet typů',
'unconfirmed works' => 'Nepotvrzené práce',
'unidentified transfers' => 'Neidentifikované platby',
'unknown device' => 'Neznámé zařízení',
'unknown device text' => 'Text pro neznámé zařízení',
'unknown ip address' => 'Neznámá IP adresa',
'unknown device text' => 'Text pro neznámé zařízení',
'unlogged user' => 'Nepřihlášený uživatel',
'unread' => 'Nepřečtená',
'unsent' => 'Neodeslaná',
......
'user acceptation' => 'Potvrzení uživatelem',
'user can disable redirection' => 'Uživatel může zrušit přesměrování',
'user cannot be deleted, he has some dependent items in database' => 'Uživatel nelze smazat, má závislé objekty v databázi.',
'user contacts' => 'Uživatelské kontakty',
'user id' => 'ID uživatele',
'user identification' => 'Identifikace uživatele',
'user has been assigned' => 'Uživatel byl přiřazen',
'user has been successfully added' => 'Uživatel byl úspěšně přidán.',
'user has been successfully deleted' => 'Uživatel byl úspěšně smazán.',
'user has been successfully updated' => 'Uživatel byl úspěšně upraven.',
'users has been warned about invoice' => 'Uživatelé byly upozorněni na fakturu',
'user message' => 'Uživatelská zpráva',
'user name' => 'Uživatelské jméno',
'user_name' => 'Křestní jméno',
'username already exists in database' => 'Uživatelské jméno již v databázi existuje',
'username or password do not match' => 'Uživatelské jméno nebo heslo nesouhlasí',
'username' => 'Login',
'users' => 'Uživatelé',
'user contacts' => 'Uživatelské kontakty',
'users has been warned about invoice' => 'Uživatelé byly upozorněni na fakturu',
'users in group' => 'Uživatelé ve skupině',
'users of regular members' => 'Uživatelé řádných členů',
'users phone invoice has been deleted' => 'Uživazelova telefonní faktura byla smazána',
......
'weak' => 'Slabé',
'website after redirection' => 'Webová stránka po přesměrování',
'weekend' => 'Víkend',
'whitelist' => 'Bílá listina',
'whitelist setting has been successfully set' => 'Bílá listina byla úspěšně nastavena.',
'whole d' => 'Celé z.',
'without change' => 'Beze změny',
'work' => 'Práce',
freenetis/branches/redirection/application/i18n/cs_CZ/help.php
(
'access_to_system' => 'Určuje, zda-li má uživatel možnost přihlásit se do systému Freenetis a zda má možnost využívat služeb Radius serveru napojeného na Freenetis, tedy například VPN, aktivní prvky sítě, volání z VoIP účtu atd.',
'accounting_system' => 'Účetní osnova je hlavní pomocník pro účetního sdružení. Zobrazuje sumu peněz na účtu z pohledu účetní osnovy. Ve výchozím stavu je to částka za celou dobu fungování sdružení, lze ovšem vyfiltrovat převody za zvolené období, např. od data 2009-01-01 do data 2009-12-31.',
'activate_redirection_to_member' => 'Umožňuje ručně aktivovat vybrané přesměrování všem IP adresám člena. Zda si může člen sám přesměrování zrušit nebo ne, je dáno vlastností vybrané zprávy. Ruční rušení přesměrování je možné provádět v tabulce.',
'add_new_bank_transfer' => 'Umožňuje přidat ručně nový bankovní převod, který ma zdrojový i cílový účet. Typicky jde o fakturu nebo členský příspěvek. V běžném provozu využívejte automatický import výpisů. Ruční přidávání je tu pouze z důvodu, že byla potřeba dát do systému staré platby, které již byly jen v textovém formátu a nebylo možné je parsovat.',
'add_new_bank_transfer_without_counteraccount' => 'Umožňuje přidat bankovní převod bez protiúčtu, jde typicky o vklad, úrok bance apod. V běžném provozu využívejte automatický import výpisů. Ruční přidávání je tu pouze z důvodu, že byla potřeba dát do systému staré platby, které již nebylo možné parsovat.',
'add_new_transfer' => 'Zobrazí formulář, který umožňuje hospodáři sdružení přidat libovolný převod mezi dvěma podvojnými účty. Účetní korektnost tohoto zásahu je ovšem v zodpovědnosti účetního.',
......
'credit_subaccounts' => 'Kreditní podúčty jsou jinde ve Freenetisu zmíněny jako kreditní účty, ovšem z pohledu účetního, jde spíše o podúčty. Z pohledu účetního jde stále o jeden účet 221100. Zde jsou ovšem vypsány podúčty, které vyjadřují vnitřní rozdělení peněz na účtu a jde o peníze na účtech jednotlivých členů.',
'current_credit' => 'Aktuální stav vašeho kreditu. Z vašeho účtu je každý měsíc strháván členský příspěvek. V případě, že se blížíte k nule, nebo jste se dostali do mínusu, je třeba kredit dobít zaplacením členského příspěvku.',
'day_book' => 'Účetní deník obsahuje úplně všechny podvojné převody účetního systému Freenetisu.',
'debtor_boundary' => 'Hranice pro dlužníka udává, kdy začnou být přesměrováváni dlužníci kvůli neplacení na příslušnou zprávu. Například pokud je hranice rovna nule, pak je takto přesměrován každý, kdo má záporný kredit. Toto přesměrování si člen nemůže sám zrušit. Je mu zrušeno automaticky, jakmile je jeho kredit opět vyšší než hranice. Toto ale může trvat i týden, než přijde platba a je importován výpis. Pro dočasné povolení přístupu na internet existuje dočasná bílá listina.',
'deduct_entrance_fees' => 'Již bez formuláře po kliknutí a potvrzení se provede nezávisle na čase stržení vstupního příspěvku všech členů, kteří mají nastavenou nějakou výši vstupního příspěvku, případně mají nastavenu splátku. Pak jsou splátky strženy jen do aktuálního data. Tuto operaci je opět dobré provádět jednou měsíčně od 16. dne měsíce. Jednou stržený vstupní příspěvek je při dalším strhávání ignorován.',
'deduct_member_fees' => 'Zobrazí formulář, který nabídne měsíc a rok pro stržení členských příspěvků. Strhávání členských příspěvků není automatizované a je třeba ho provádět jednou měsíčně, nejlépe uprostřed měsíce od 16. dne hospodářem sdružení. Výsledkem bude, že pro daný měsíc všem členům podle jejich tarifu buden stržen členský příspěvek.',
'deduct_device_repayments' => 'Provede stržení splátek zařízení. Jedná se o zařízení, která si člen koupil od sdružení. Pokud ve vašem sdružení neprovádíte prodej zařízení na splátky, patrně tuto možnost nevyužijete.',
......
'other_subaccounts' => 'Ostatní podúčty jsou vlastně již všechny ostatní používané účty ve Freenetisu, které se vnitřně nijak nedělí. Jde například o účet přijatých členských příspěvků nebo pokladny a tak dále. Freenetis pochopitelně nevyužívá celou účetní osnovu ČR, vzhledem k charakteru občanského sdružení.',
'password' => 'Uživatelské heslo musí obsahovat alespoň 8 znaků a musí obsahovat alespoň jedno písmeno nebo číslici.',
'payed_to' => 'Datum, do kdy máte zaplaceny členské příspěvky. Včas před tímto datem byste měli zaplatit členské příspěvky. V případě, že jste s kreditem v mínusu, tak zaplaťte co nejdříve, jinak budete zablokováni.',
'payment_notice_boundary' => 'Hranice po upozornění na placení je taková částka, pro kterou platí, že jakmile bude mít člen nižší stav kreditu než je tato částka, pak mu bude aktivováno příslušné přesměrování. Např. při hranici 300 Kč začne být člen s kreditem 150Kč být informován o tom, že by měl zaplatit. Tuto informaci ovšem může člen zatím sám zrušit.',
'project_subaccounts' => 'Projektový účet 221103 pro účetního představuje jeden účet. Zde jsou ovšem rozepsány všechny projektové podúčty z pohledu Freenetisu. Každý člen má právo vytvořit svůj projekt, který je v souladu se stanovami sdružení, může jít například o nějakou akci nebo školení. Cílem takovéhoto projektového podúčtu je, aby ostatní členové měli možnost zakladateli projektu přispět peníze ze svého kreditního účtu na realizaci projektu.',
'recalculate_account_balances' => 'Primárním zdrojem o stavu financí v systému jsou převody. Zůstatky na účtech byly dříve pokaždé počítány na požádání z převodů. Nyní si každý účet ukládá svůj zůstatek kvůli vyšší rychlosti. Tuto funkci použijete v případě přechodu na verzi systému, která tuto optimalizaci obsahuje.',
'recalculate_fees' => 'Pro primární strhávání členských příspěvků používejte funkci pro globální strhávání členských příspěvků v Účetním deníku. Tuto funkci používejte opatrně a to jen v případě, že máte správně strženy všechny členské příspěvky pro všechny členy od založení sdružení až po současné datum. Pak můžete tomuto členovi přepočítat stržení členských příspěvků v případě, že u něj došlo k nutnosti je přepočítat, např. chybné datum vstupu, vznikla nutnost přidat přerušení členství apod.',
'recalculate_entrance_fees' => 'Pro primární strhávání vstupních příspěvků používejte funkci pro globální strhávání v účetním deníku. Tuto funkci používejte jen v případě, že došlo k nějakému omylu, například, že měl zaplatit vstupní a pak se ukázalo, že nemusel.',
'set_whitelist_to_member' => 'Trvalá bílá listina je seznam takových IP adres, pro které neplatí přesměrování. Jde například o důležitou partnerskou instituci zapojenou do sítě, například městský úřad apod. Všechna systémová přesměrování tedy nemohou ve výchozím stavu obtěžovat počítače s IP adresou na bílé listině. Lze ovšem vytvořit takové zprávy, které budou ignorovat tuto listinu, např. informování o nadcházejícím výpadku. Pro dočasnou bílou listinu platí to samé, ale IP adresy v ní jsou po určeném čase z této listiny mazány. Např. uživatel byl přesměrován kvůli neplacení a chceme mu umožnit krátkodobý přístup na internet do internetového bankovnictví.',
'unidentified_transfers' => 'Neidentifikované platby jsou všechny příchozí bankovní platby, které nebyl náš systém schopen z různých důvodů automaticky rozpoznat. Typicky se jedná o platby s chybným variabilním symbolem. Pokud zde svoji platbu najdete, pak kontaktujte hospodáře sdružení pro její správné přiřazení.',
'variable_symbol' => 'Variabilní symbol slouží k jednoznačnému určení příchozí platby člena.'
);
freenetis/branches/redirection/application/helpers/callback.php
}
/**
* Callback field for correct view of whitelisted option of ip address.
* @author Jiri Svitak
* @param <type> $item
* @param <type> $name
*/
public static function whitelisted_field($item, $name)
{
switch ($item->whitelisted)
{
case Ip_address_Model::$permanent_whitelist:
echo url_lang::lang('texts.Permanent whitelist');
break;
case Ip_address_Model::$temporary_whitelist:
echo url_lang::lang('texts.Temporary whitelist');
break;
default:
echo url_lang::lang('texts.No whitelist');
}
}
/**
* Callback fields prints either translated system message or
* user message for redirection.
* @author Jiri Svitak
* @param <type> $item
* @param <type> $name
*/
public static function message_field($item, $name)
{
// condition suspects, that type 1 corresponds with Message_Model::contact_information
// and 6 coresponds with Message_Model::payment_notice_message
if ($item->type >= 1 && $item->type <= 6)
{
// system messages
echo url_lang::lang('texts.'.$item->message);
}
elseif ($item->type === 0)
{
// user messages
echo $item->message;
}
else
{
// null value means no message
echo url_lang::lang('texts.No redirection');
}
}
/**
* Callback for message type, it distinguishes between system and user redirection messages.
* @author Jiri Svitak
* @param <type> $item
* @param <type> $name
*/
public static function message_type_field($item, $name)
{
if ($item->type == 0)
echo url_lang::lang('texts.User message');
else
echo url_lang::lang('texts.System message');
}
/**
* Field for updating messages. Only three special system messages can be updated.
* Other types of redirection has to be set manually by user.
* @author Jiri Svitak
* @param unknown_type $item
* @param unknown_type $name
*/
static function message_update_field($item, $name)
{
$message = new Message_Model($item->id);
if ($message->type == Message_Model::$interrupted_membership_message ||
$message->type == Message_Model::$debtor_message ||
$message->type == Message_Model::$payment_notice_message
)
{
echo html::anchor(url_lang::base().'messages/update/'.$message->id, url_lang::lang('texts.Update'));
}
else
{
echo '&nbsp;';
}
}
/**
* Field for deleting messages. Only user messages are allowed to be deleted.
* @author Jiri Svitak
* @param unknown_type $item
* @param unknown_type $name
*/
static function message_delete_field($item, $name)
{
$message = new Message_Model($item->id);
if ($message->type == Message_Model::$user_message)
{
echo html::anchor(url_lang::base().'messages/delete/'.$message->id, url_lang::lang('texts.Delete'));
}
else
{
echo '&nbsp';
}
}
/**
* Callback for locked private field in phone invoices
* @author Ondřej Fibich
* @param unknown_type $item
freenetis/branches/redirection/application/models/ip_address.php
}
/**
* Gets counts of IP addresses with no whitelist, permanent whitelist and temporary whitelist.
* @author Jiri Svitak
*/
function get_whitelist_info_of_member($member_id)
{
$ips = self::get_ip_addresses_of_member($member_id);
$info = array();
$info[self::$no_whitelist] = 0;
$info[self::$permanent_whitelist] = 0;
$info[self::$temporary_whitelist] = 0;
foreach ($ips as $ip)
{
if ($ip->whitelisted == self::$permanent_whitelist)
$info[self::$permanent_whitelist]++;
elseif ($ip->whitelisted == self::$temporary_whitelist)
$info[self::$temporary_whitelist]++;
else
$info[self::$no_whitelist]++;
}
return $info;
}
/**
* Gets all ip addresses of device.
* @author Jiri Svitak
* @param $device_id
......
");
}
function get_redirections_of_member($member_id)
/**
* Gets all ip addresses including their redirections. Used in member's profile screen.
* @author Jiri Svitak
* @param <type> $member_id
* @return <type>
*/
function get_ips_and_redirections_of_member($member_id)
{
return $this->db->query("
SELECT ip.id AS ip_address_id, ip.whitelist,
m.id AS message_id, m.name,
SELECT ip.id AS ip_address_id, ip.ip_address, ip.whitelisted,
m.id AS message_id, m.name AS message, m.type,
$member_id AS member_id
FROM ip_addresses ip
JOIN ifaces i ON ip.iface_id = i.id
freenetis/branches/redirection/application/models/message.php
public function get_all_messages($limit_from = 0, $limit_results = 20, $order_by = 'ip_address_id', $order_by_direction = 'DESC', $filter_values = array())
{
return $this->db->query("
SELECT *
SELECT m.id, m.name AS message, m.type
FROM messages m
ORDER BY $order_by $order_by_direction
LIMIT $limit_from, $limit_results
freenetis/branches/redirection/application/controllers/members.php
// active redirections of member, including short statistic of whitelisted IP addresses
$ip_model = new Ip_address_Model();
$info = $ip_model->get_whitelist_info_of_member($member_id);
$whitelist_info = url_lang::lang('texts.IP addresses').': '.url_lang::lang('texts.No whitelist').' ('.$info[Ip_address_Model::$no_whitelist].'), '.
url_lang::lang('texts.Permanent whitelist').' ('.$info[Ip_address_Model::$permanent_whitelist].'), '.url_lang::lang('texts.Temporary whitelist').' ('.$info[Ip_address_Model::$temporary_whitelist].')';
//$mip_model = new Messages_ip_addresses_Model();
//$messages = $mip_model->get_redirections_of_member($member_id);
$ip_addresses = $ip_model->get_redirections_of_member($member_id);
$ip_addresses = $ip_model->get_ips_and_redirections_of_member($member_id);
$redir_grid = new Grid(url_lang::base().'members', null, array(
'use_paginator' => false,
'use_selector' => false
));
if ($this->acl_check_new('Messages_Controller', 'member'))
{
$redir_grid->add_new_button(url_lang::base().'redirect/add_to_member/'.$member_id, url_lang::lang('texts.Add redirection to all ip addresses of member'));
$redir_grid->add_new_button(url_lang::base().'redirect/set_whitelist/'.$member_id.'/'.Ip_address_Model::$no_whitelist, url_lang::lang('texts.Cancel whitelist'));
$redir_grid->add_new_button(url_lang::base().'redirect/set_whitelist/'.$member_id.'/'.Ip_address_Model::$permanent_whitelist, url_lang::lang('texts.Set permanent whitelist'));
$redir_grid->add_new_button(url_lang::base().'redirect/set_whitelist/'.$member_id.'/'.Ip_address_Model::$temporary_whitelist, url_lang::lang('texts.Set temporary whitelist'));
$redir_grid->add_new_button(url_lang::base().'redirect/activate_to_member/'.$member_id, url_lang::lang('texts.Activate redirection to member'), array(), help::hint('activate_redirection_to_member'));
$redir_grid->add_new_button(url_lang::base().'redirect/set_whitelist/'.$member_id, url_lang::lang('texts.Set whitelist to member'), array(), help::hint('set_whitelist_to_member'));
}
$redir_grid->callback_field('ip_address')->label(url_lang::lang('texts.IP address'))->callback('callback::ip_address_field');
$redir_grid->field('whitelist')->label(url_lang::lang('texts.Whitelist'));
$redir_grid->field('name')->label(url_lang::lang('texts.Message'));
$redir_grid->callback_field('whitelisted')->label(url_lang::lang('texts.Whitelist'))->callback('callback::whitelisted_field');
$redir_grid->callback_field('message')->label(url_lang::lang('texts.Active redirection'))->callback('callback::message_field');
if ($this->acl_check_delete('Messages_Controller', 'ip_address'))
$redir_grid->callback_field('redirection')->label(url_lang::lang('texts.Canceling of message for redirection'))->callback("callback::cancel_redirection_of_member");
$redir_grid->datasource($ip_addresses);
// billing
/*
$billing = new Billing();
$has_driver = $billing->has_driver();
$b_account = $billing->get_account($member_id);
......
if ($member_data->member_id != 1)
$voip_grid->add_new_button(url_lang::base().'transfers/add_voip/'.$account->id, url_lang::lang('texts.Recharge VoIP credit'));
}
*/
// view
$view = new View('main');
......
if ($member_id != 1)
$view->content->account = $account;
$view->content->users = $user_grid;
$view->content->voip = $voip_grid;
$view->content->count_voip = count($voip);
$view->content->billing_has_driver = $has_driver;
$view->content->billing_account = $b_account;
$view->content->voip = '';//$voip_grid;
$view->content->count_voip = '';//count($voip);
$view->content->billing_has_driver = '';//$has_driver;
$view->content->billing_account = '';//$b_account;
$view->content->mis = $mi_grid;
$view->content->whitelist_info = $whitelist_info;
$view->content->redir_grid = $redir_grid;
foreach($member_data as $key=>$val)
{
freenetis/branches/redirection/application/controllers/messages.php
$grid->add_new_button(url_lang::base().'redirect/settings', url_lang::lang('texts.Settings'));
$grid->add_new_button(url_lang::base().'messages/add', url_lang::lang('texts.Add new message'));
$grid->order_field('id')->label('ID');
$grid->order_field('name')->label(url_lang::lang('texts.Name'));
$grid->order_callback_field('message')->label(url_lang::lang('texts.Name'))->callback('callback::message_field');
$grid->callback_field('type')->label(url_lang::lang('texts.Type'))->callback('callback::message_type_field');
//if ($this->acl_check_view('Messages_Controller', 'message'))
// $grid->action_field('id') ->label(url_lang::lang('texts.Message'))->url(url_lang::base().'messages/show')->action(url_lang::lang('texts.Show'));
if ($this->acl_check_edit('Messages_Controller', 'message'))
$grid->action_field('id') ->label(url_lang::lang('texts.Message'))->url(url_lang::base().'messages/edit')->action(url_lang::lang('texts.Edit'));
$grid->action_field('id') ->label(url_lang::lang('texts.Edit'))->url(url_lang::base().'messages/edit')->action(url_lang::lang('texts.Edit'));
if ($this->acl_check_edit('Messages_Controller', 'message'))
$grid->callback_field('id')->label(url_lang::lang('texts.Message'))->callback('Messages_Controller::message_update_field');
$grid->callback_field('id')->label(url_lang::lang('texts.Update'))->callback('callback::message_update_field');
if ($this->acl_check_delete('Messages_Controller', 'message'))
$grid->callback_field('id')->label(url_lang::lang('texts.Message'))->callback('Messages_Controller::message_delete_field');
$grid->callback_field('id')->label(url_lang::lang('texts.Delete'))->callback('callback::message_delete_field');
$grid->datasource($messages);
$view = new View('main');
......
$view->render(TRUE);
}
/**
* Field for updating messages. Only three special system messages can be updated.
* Other types of redirection has to be set manually by user.
* @author Jiri Svitak
* @param unknown_type $item
* @param unknown_type $name
*/
static function message_update_field($item, $name)
{
$message = new Message_Model($item->id);
if ($message->type == Message_Model::$interrupted_membership_message ||
$message->type == Message_Model::$debtor_message ||
$message->type == Message_Model::$payment_notice_message
)
{
echo html::anchor(url_lang::base().'messages/update/'.$message->id, url_lang::lang('texts.Update'));
}
else
{
echo '&nbsp;';
}
}
/**
* Field for deleting messages. Only user messages are allowed to be deleted.
* @author Jiri Svitak
* @param unknown_type $item
* @param unknown_type $name
*/
static function message_delete_field($item, $name)
{
$message = new Message_Model($item->id);
if ($message->type == Message_Model::$user_message)
{
echo html::anchor(url_lang::base().'messages/delete/'.$message->id, url_lang::lang('texts.Delete'));
}
else
{
echo '&nbsp';
}
}
/**
* Shows message including properties.
* @author Jiri Svitak
* @param $message_id
* @return unknown_type
*/
function show($message_id = null)
{
if (!isset($message_id))
{
Controller::warning(PARAMETER);
}
$message = new Message_Model($message_id);
if ($message->id == 0)
{
Controller::error(RECORD);
}
/*
$member_id = $device->user->member_id;
if (!$this->acl_check_view(get_class($this),'devices',$member_id))
Controller::error(ACCESS);
*/
//print_r($message);
//echo $message->self_cancel; die();
$headline = url_lang::lang('texts.Message');
$view = new View('main');
$view->title = $headline;
$view->content = '';
$view->content = new View('messages_show');
$view->content->headline = $headline;
$view->content->message = $message;
$view->render(true);
}
/**
* Adds new user message.
* @return unknown_type
*/
......
$form = new Forge(url_lang::base().'messages/edit/'.$message_id, '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->group('')->label(url_lang::lang('texts.Basic information'));
$form->input('name')->label(url_lang::lang('texts.Message name').':')->rules('required|length[3,200]')->value($message->name);
if ($message->type == 0)
{
$form->input('name')->label(url_lang::lang('texts.Message name').':')->rules('required|length[3,200]')->value($message->name);
}
if ($message->type == Message_Model::$user_message ||
$message->type == Message_Model::$interrupted_membership_message ||
$message->type == Message_Model::$debtor_message ||
freenetis/branches/redirection/application/controllers/redirect.php
$this->form->set_attr('class', 'form_class')->set_attr('method', 'post');
$this->form->group('')->label(url_lang::lang('texts.Gateway'));
$this->form->input('gateway')->label(url_lang::lang('texts.Gateway IP address').":")->value($this->settings->get('gateway'));
$this->form->input('payment_notice_boundary')->label(url_lang::lang('texts.Payment notice boundary')." (".$this->settings->get('currency')."):")->value($this->settings->get('payment_notice_boundary'));
$this->form->input('debtor_boundary')->label(url_lang::lang('texts.Debtor boundary')." (".$this->settings->get('currency')."):")->value($this->settings->get('debtor_boundary'));
$this->form->input('payment_notice_boundary')->label(url_lang::lang('texts.Payment notice boundary')." (".$this->settings->get('currency')."):&nbsp;".help::hint('payment_notice_boundary'))->value($this->settings->get('payment_notice_boundary'));
$this->form->input('debtor_boundary')->label(url_lang::lang('texts.Debtor boundary')." (".$this->settings->get('currency')."):&nbsp;".help::hint('debtor_boundary'))->value($this->settings->get('debtor_boundary'));
$this->form->submit('submit')->value(url_lang::lang('texts.Save'));
special::required_forge_style($this->form, ' *', 'required');
// form validate
......
* @param $member_id
* @param $whitelist
*/
function set_whitelist($member_id, $whitelist)
function set_whitelist($member_id)
{
$db = new Database();
$ip_model = new Ip_address_Model();
$ips = $ip_model->get_ip_addresses_of_member($member_id);
foreach($ips as $ip)
// access rights
if (!$this->acl_check_edit('Messages_Controller', 'member'))
Controller::error(ACCESS);
$whitelist_array[Ip_address_Model::$no_whitelist] = url_lang::lang('texts.No whitelist');
$whitelist_array[Ip_address_Model::$permanent_whitelist] = url_lang::lang('texts.Permanent whitelist');
$whitelist_array[Ip_address_Model::$temporary_whitelist] = url_lang::lang('texts.Temporary whitelist');
// form
$form = new Forge(url_lang::base().'redirect/set_whitelist/'.$member_id, '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->dropdown('whitelist')->label(url_lang::lang('texts.Whitelist').':')->options($whitelist_array);
$form->submit('submit')->value(url_lang::lang('texts.Redirect'));
if ($form->validate())
{
$ip = new Ip_address_Model($ip->id);
$ip->whitelisted = $whitelist;
$ip->save();
if (!$this->acl_check_edit('Messages_Controller', 'member'))
Controller::error(ACCESS);
$form_data = $form->as_array();
$ip_model = new Ip_address_Model();
$ips = $ip_model->get_ip_addresses_of_member($member_id);
foreach($ips as $ip)
{
$ip = new Ip_address_Model($ip->id);
$ip->whitelisted = $form_data['whitelist'];
$ip->save();
}
// set flash message
$this->session->set_flash('message', url_lang::lang('texts.Whitelist setting has been successfully set.'));
url::redirect(url_lang::base().'members/show/'.$member_id);
}
// set flash message
$this->session->set_flash('message', url_lang::lang('texts.Whitelist setting has been successfully set.'));
url::redirect(url_lang::base().'members/show/'.$member_id);
else
{
// view
$headline = url_lang::lang('texts.Whitelist');
$view = new View('main');
$view->title = $headline;
$view->content = new View('form');
$view->content->headline = $headline;
$view->content->link_back = html::anchor(url_lang::base().'members/show/'.$member_id, url_lang::lang('texts.Back to the member'));
$view->content->form = $form->html();
$view->render(TRUE);
}
}
freenetis/branches/redirection/application/views/members_show.php
<br class="clear" /><br />
<h2><?php echo url_lang::lang('texts.Information about main user')?></h2>
<h3><?php echo url_lang::lang('texts.Information about main user')?></h3>
<br />
<?php
unset($links);
......
<br class = "clear" />
<br />
<h3><?php echo url_lang::lang('texts.Active redirections')?></h3>
<?php echo $whitelist_info ?>
<br />
<h3><?php echo url_lang::lang('texts.Ip addresses')?></h3>
<?php echo $redir_grid ?>
<br />

Také k dispozici: Unified diff