public function createErrors() { $q = new Am_Query($this->getDi()->errorLogTable); $q->setOrder('time', 'desc'); $g = new Am_Grid_ReadOnly('_error', ___('Error/Debug Log'), $q, $this->getRequest(), $this->view); $g->addField(new Am_Grid_Field_Date('time', ___('Time'), true, '', null, '10%')); $g->addField(new Am_Grid_Field_Expandable('url', ___('URL'), true, '', null, '20%')); $g->addField(new Am_Grid_Field('remote_addr', ___('IP'), true, '', null, '10%')); $g->addField(new Am_Grid_Field('error', ___('Message'), true, '', null, '45%')); $f = $g->addField(new Am_Grid_Field_Expandable('trace', ___('Trace'), false, '', null, '15%'))->setGetFunction(array($this, 'escapeTrace')); $f->setEscape(false); $g->setFilter(new Am_Grid_Filter_Text(___('Filter'), array('url' => 'LIKE', 'remote_addr' => 'LIKE', 'referrer' => 'LIKE', 'error' => 'LIKE'))); return $g; }
function browseUsersAction() { $withWrap = (bool) $this->_request->get('_u_wrap'); unset($_GET['_u_wrap']); $ds = $this->searchUi->getActive()->getQuery(); $grid = new Am_Grid_ReadOnly('_u', ___('Selected for E-Mailing'), $ds, $this->_request, $this->view); if ($withWrap) { $grid->isAjax(false); } $grid->setCountPerPage(10); $grid->addField('login', ___('Username'))->setRenderFunction(array($this, 'renderUserUrl')); $grid->addField('name_f', ___('First Name')); $grid->addField('name_l', ___('Last Name')); $grid->addField('email', ___('E-Mail Address')); $grid->run($this->getResponse()); }
public function createAdminLog() { $ds = new Am_Query($this->getDi()->adminLogTable); $ds->setOrder('dattm', 'desc'); $g = new Am_Grid_ReadOnly('_admin', ___('Admin Log'), $ds, $this->getRequest(), $this->view); $g->setPermissionId(Am_Auth_Admin::PERM_LOGS_ADMIN); $g->addField(new Am_Grid_Field_Date('dattm', ___('Date/Time'), true)); $g->addField(new Am_Grid_Field('admin_login', ___('Admin'), true))->addDecorator(new Am_Grid_Field_Decorator_Link(REL_ROOT_URL . "/admin-admins?_admin_a=edit&_admin_id={admin_id}", '_top')); $g->addField(new Am_Grid_Field('ip', ___('IP'), true, '', null, '10%')); $g->addField(new Am_Grid_Field('message', ___('Message'))); $g->addField(new Am_Grid_Field('record', ___('Record')))->setRenderFunction(array($this, 'renderRec')); $g->setFilter(new Am_Grid_Filter_AdminLog()); return $g; }
public function displayeditcategoryAction() { if (!$this->strategy->canEditCategory(null)) { throw new Am_Exception_AccessDenied(); } $ds = new Am_Query($this->getDi()->helpdeskCategoryTable); $grid = new Am_Grid_ReadOnly('_helpdesk_category', ___('Categories'), $ds, $this->getRequest(), $this->view, $this->getDi()); $grid->addField('login', ___('Title'))->setRenderFunction(array($this, 'renderEditCategoryTitle')); $grid->setPermissionId(Bootstrap_Helpdesk::ADMIN_PERM_ID); $grid->isAjax($this->isAjax() && $this->isGridRequest('_helpdesk_category')); echo $grid->run(); }
function payoutDetailAction() { $ds = new Am_Query($this->getDi()->affCommissionTable); $ds->leftJoin('?_invoice', 'i', 'i.invoice_id=t.invoice_id'); $ds->leftJoin('?_user', 'u', 'u.user_id=i.user_id'); $ds->leftJoin('?_product', 'p', 't.product_id=p.product_id'); $ds->addField('u.user_id', 'user_id')->addField('CONCAT(u.login, \' (\',u.name_f, \' \',u.name_l,\') [#\', u.user_id, \'] \')', 'user_name')->addField('u.email', 'user_email')->addField('p.title', 'product_title'); $ds->addWhere('t.aff_id=?', $this->user_id); $ds->addWhere('payout_detail_id=?', $this->getParam('payout_detail_id')); $ds->setOrder('commission_id', 'desc'); $grid = new Am_Grid_ReadOnly('_affcomm', ___('Affiliate Commission'), $ds, $this->_request, $this->view); $grid->setPermissionId(Bootstrap_Aff::ADMIN_PERM_ID); $grid->setCountPerPage(10); $userUrl = new Am_View_Helper_UserUrl(); $grid->addField(new Am_Grid_Field_Date('date', ___('Date')))->setFormatDate(); $grid->addField('user_name', ___('User'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{user_id}'), '_top')); $grid->addField('product_title', ___('Product')); $grid->addField('record_type', ___('Type'))->setRenderFunction(array($this, 'renderType')); $fieldAmount = $grid->addField('amount', ___('Commission'))->setRenderFunction(array($this, 'renderCommAmount')); $grid->addField('tier', ___('Tier'))->setRenderFunction(array($this, 'renderTier')); $grid->addCallback(Am_Grid_ReadOnly::CB_TR_ATTRIBS, array($this, 'commCbGetTrAttribs')); $grid->runWithLayout('admin/user-layout.phtml'); }
public function clickAction() { $ds = new Am_Query($this->getDi()->notificationClickTable); $ds->leftJoin('?_user', 'u', 't.user_id=u.user_id')->addField('COUNT(t.notification_click_id)', 'cnt')->addField('u.*')->addField("CONCAT(u.name_f, ' ', u.name_l)", 'name')->groupBy('user_id', 'u')->addWhere('notification_id=?', $this->getParam('id')); $grid = new Am_Grid_ReadOnly('_n_c', ___('Statistics'), $ds, $this->getRequest(), $this->getView(), $this->getDi()); $userUrl = new Am_View_Helper_UserUrl(); $grid->addField('login', ___('Username'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{user_id}'), '_top')); $grid->addField('name', ___('Name')); $grid->addField('email', ___('E-Mail Address')); $grid->addField('cnt', ___('Clicks'), null, null, null, '1%'); $grid->runWithLayout($this->layout); }
public function setupFields(Am_Grid_ReadOnly $grid) { $fields = array(); //it is special fields and user should not be able to disable or rearrange it $fieldCheckboxes = null; $fieldActions = null; foreach ($grid->getFields() as $field) { if ($field->getFieldName() == '_actions') { $fieldActions = $field; $grid->removeField($field->getFieldName()); continue; } if ($field->getFieldName() == '_checkboxes') { $fieldCheckboxes = $field; $grid->removeField($field->getFieldName()); continue; } $this->addField($field); $fields[] = $field->getFieldName(); $grid->removeField($field->getFieldName()); } $this->defaultFields = $fields; $fields = $this->getSelectedFields(); foreach ($fields as $fieldName) { if (isset($this->fields[$fieldName])) { $grid->addField($this->fields[$fieldName]); } } if ($fieldCheckboxes) { $grid->prependField($fieldCheckboxes); } if ($fieldActions) { $grid->addField($fieldActions); } }
protected function createDetailGrid($date) { // public $textNoRecordsFound = "No rebills today - most possible cron job was not running."; $q = new Am_Query($this->getDi()->ccRebillTable); $q->addWhere('t.rebill_date=?', $date); $q->leftJoin('?_invoice', 'i', 'i.invoice_id=t.invoice_id'); $q->addField('i.public_id', 'public_id'); $q->addField('i.user_id', 'user_id'); $grid = new Am_Grid_ReadOnly('_r_d', ___('Detailed Rebill Report for %s', amDate($date)), $q, $this->_request, $this->view); $grid->setPermissionId('cc'); $grid->addField(new Am_Grid_Field_Date('tm_added', 'Started', true)); $grid->addField(new Am_Grid_Field('invoice_id', 'Invoice#', true, '', array($this, 'renderInvoiceLink'))); $grid->addField(new Am_Grid_Field_Date('rebill_date', 'Date', true))->setFormatDate(); $grid->addField('status', 'Status', true)->setFormatFunction(array('CcRebill', 'getStatusText')); $grid->addField('status_msg', 'Message'); $grid->setCountPerPage(10); return $grid; }
public function keywordsAction() { $ds = new Am_Query($this->getDi()->affKeywordTable); $ds->addField('t.`value`', 'keyword'); $ds->addField('count(clicks.log_id)', 'clicks_count'); $ds->addField('count(distinct leads.user_id)', 'leads_count'); $ds->addField('sum(if(commissions.record_type="commission", 1, 0))', 'sales_count'); $ds->addField('sum(if(commissions.record_type="commission", amount, -amount))', 'sales_amount'); $ds->addWhere('t.aff_id=?', $this->getDi()->auth->getUserId()); $ds->leftJoin('?_aff_click', 'clicks', 't.keyword_id = clicks.keyword_id'); $ds->leftJoin('?_aff_commission', 'commissions', 't.keyword_id = commissions.keyword_id'); $ds->leftJoin('?_aff_lead', 'leads', 't.keyword_id = leads.keyword_id'); $ds->groupBy('keyword_id'); $grid = new Am_Grid_ReadOnly('_aff_keywords', 'Keywords', $ds, $this->getRequest(), $this->getView()); $grid->addField('keyword', ___('Keyword')); $grid->addField('clicks_count', ___('Clicks')); $grid->addField('leads_count', ___('Leads')); $grid->addField('sales_count', ___('Sales')); $grid->addField('sales_amount', ___('Commissions'))->setRenderFunction(function ($record) { return "<td>" . Am_Currency::render($record->sales_amount) . "</td>"; }); $grid->runWithLayout('aff/keywords.phtml'); }
public function keywordsAction() { $uid = $this->getDi()->auth->getUserId(); $db = $this->getDi()->db; $db->query('DROP TEMPORARY TABLE IF EXISTS ?_aff_keywords_tmp'); $db->query("CREATE TEMPORARY TABLE ?_aff_keywords_tmp (\n keyword_id int not null DEFAULT 0,\n keyword varchar(64) not null DEFAULT '',\n clicks_count int not null DEFAULT 0,\n leads_count int not null DEFAULT 0,\n sales_count int not null DEFAULT 0,\n sales_amount int not null DEFAULT 0,\n PRIMARY KEY (`keyword_id`)\n )"); //clicks $db->query("INSERT into ?_aff_keywords_tmp (keyword_id, clicks_count) \n SELECT keyword_id, count(*) from ?_aff_click where keyword_id is not null and aff_id = ? group by keyword_id", $uid); //leads $db->query("INSERT into ?_aff_keywords_tmp (keyword_id, leads_count) \n SELECT keyword_id, cnt from (SELECT keyword_id, count(*) as cnt from ?_aff_lead \n where keyword_id is not null and aff_id = ? group by keyword_id) s\n ON DUPLICATE KEY UPDATE leads_count = s.cnt", $uid); //sales_count $db->query("INSERT into ?_aff_keywords_tmp (keyword_id, sales_count) \n SELECT keyword_id, cnt from (SELECT keyword_id, sum(if(record_type='commission', 1, 0)) as cnt from ?_aff_commission \n where keyword_id is not null and aff_id = ? group by keyword_id) s\n ON DUPLICATE KEY UPDATE sales_count = s.cnt", $uid); //sales_amount $db->query("INSERT into ?_aff_keywords_tmp (keyword_id, sales_amount) \n SELECT keyword_id, cnt from (SELECT keyword_id, sum(if(record_type='commission', amount, -amount)) as cnt from ?_aff_commission \n where keyword_id is not null and aff_id = ? group by keyword_id) s\n ON DUPLICATE KEY UPDATE sales_amount = s.cnt", $uid); //keyword $db->query("UPDATE ?_aff_keywords_tmp t set keyword = (SELECT value from ?_aff_keyword s where s.keyword_id = t.keyword_id)"); $ds = new Am_Query(new Am_Table($db, '?_aff_keywords_tmp', 't')); $grid = new Am_Grid_ReadOnly('_aff_keywords', 'Keywords', $ds, $this->getRequest(), $this->getView()); $grid->addField('keyword', ___('Keyword')); $grid->addField('clicks_count', ___('Clicks')); $grid->addField('leads_count', ___('Leads')); $grid->addField('sales_count', ___('Sales')); $grid->addField('sales_amount', ___('Commissions'))->setRenderFunction(function ($record) { return "<td>" . Am_Currency::render($record->sales_amount) . "</td>"; }); $grid->runWithLayout('aff/keywords.phtml'); }
public function createLeadsGrid() { $ds = new Am_Query($this->getDi()->affLeadTable); $ds->leftJoin('?_user', 'a', 't.aff_id=a.user_id'); $ds->addField('CONCAT(a.login, \' (\', a.name_f, \' \', a.name_l,\') [#\', a.user_id, \']\')', 'aff_name'); $ds->leftJoin('?_aff_banner', 'b', 't.banner_id=b.banner_id'); $ds->addField('b.title', 'banner'); $ds->leftJoin('?_user', 'u', 'u.user_id=t.user_id'); $ds->addField('CONCAT(u.login, \' (\',u.name_f, \' \',u.name_l,\') [#\', u.user_id, \']\')', 'user_name')->addField('u.email', 'user_email'); $grid = new Am_Grid_ReadOnly('_affclicks', ___('Leads'), $ds, $this->_request, $this->view); $grid->setPermissionId(Bootstrap_Aff::ADMIN_PERM_ID); $userUrl = new Am_View_Helper_UserUrl(); $grid->addField('aff_name', ___('Affiliate'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{aff_id}'), '_top')); $grid->addField('user_name', ___('User'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{user_id}'), '_top')); $grid->addField('banner', ___('Banner'))->setRenderFunction(array($this, 'renderBanner')); $grid->addField('time', ___('Date/Time'))->setFormatFunction('amDateTime'); $grid->addField('first_visited', ___('First visited'))->setFormatFunction('amDateTime'); $grid->setFilter(new Am_Grid_Filter_Leads()); return $grid; }
protected function createDetailGrid($date) { // public $textNoRecordsFound = "No rebills today - most possible cron job was not running."; $q = new Am_Query($this->getDi()->ccRebillTable); $q->addWhere('rebill_date=?', $date); $grid = new Am_Grid_ReadOnly('_dd', "Detailed Rebill Report For [{$date}]", $q, $this->_request, $this->view); $grid->setPermissionId('cc'); $grid->addField(new Am_Grid_Field_Date('tm_added', 'Started', true)); $grid->addField('invoice_id', 'Invoice#', true); $grid->addField(new Am_Grid_Field_Date('rebill_date', 'Date', true))->setFormatDate(); $grid->addField('status', 'Status', true)->setFormatFunction(array('CcRebill', 'getStatusText')); $grid->addField('status_msg', 'Message'); return $grid; }
public function createLeadsGrid() { $ds = new Am_Query($this->getDi()->affLeadTable); $ds->leftJoin('?_user', 'a', 't.aff_id=a.user_id'); $ds->addField('CONCAT(a.name_f, \' \', a.name_l)', 'aff_name'); $ds->leftJoin('?_aff_banner', 'b', 't.banner_id=b.banner_id'); $ds->addField('b.title', 'banner'); $ds->leftJoin('?_user', 'u', 'u.user_id=t.user_id'); $ds->addField('CONCAT(u.name_f, \' \',u.name_l)', 'user_name')->addField('u.email', 'user_email'); $grid = new Am_Grid_ReadOnly('_affclicks', ___("Leads"), $ds, $this->_request, $this->view); $grid->setPermissionId('affiliates'); $userUrl = new Am_View_Helper_UserUrl(); $grid->addField('aff_name', ___('Affiliate'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{aff_id}'), '_blank')); $grid->addField('user_name', ___('User'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{user_id}'), '_blank')); $grid->addField('banner', ___('Banner')); $grid->addField('time', ___('Time'))->setFormatFunction('amDateTime'); $grid->addField('first_visited', ___('First visited'))->setFormatFunction('amDateTime'); return $grid; }