Skip to content

Instantly share code, notes, and snippets.

View cgi-caesar's full-sized avatar

Andrey Yerokhin cgi-caesar

View GitHub Profile
@cgi-caesar
cgi-caesar / site.php
Last active October 13, 2020 12:08
aMember (site.php): Add Filter {Active|Expired|All} for invoices on payment history page
<?php
// Add Filter {Active|Expired|All} for invoices on payment history page
Am_Di::getInstance()->blocks->add(
'member/payment-history/top',
new Am_Block_Base(null, 'inv-filter', null, function(Am_View $v) {
$user = $v->di->user;
$ids = $v->di->db->selectCol(<<<CUT
@cgi-caesar
cgi-caesar / site.php
Last active September 9, 2020 10:32
aMember (site.php): Different Menu for member and affiliate
<?php
//replace standard menu with affiliate specific if currently logged in user is affiliate
$di = Am_Di::getInstance();
if ($di->auth->getUserId() && $di->auth->getUser()->is_affiliate) {
$n = new Am_Navigation_User();
$n->addMenuPages('_aff');
$di->setService('navigationUser', $n);
}
@cgi-caesar
cgi-caesar / site.php
Created July 10, 2020 12:00
aMember (site.php): Affiliate autocomplete without full access to affiliate module
<?php
Am_Di::getInstance()->router->addRoute('aff-autocomplete', new Am_Mvc_Router_Route('aff/admin/autocomplete', [
'module' => 'default',
'controller' => 'admin-aff-autocomplete',
'action' => 'index',
]));
class AdminAffAutocompleteController extends Am_Mvc_Controller
{
@cgi-caesar
cgi-caesar / site.php
Created June 30, 2020 10:57
aMember (site.php): Add column with PayPal Email to grid with affiliate payout details
<?php
Am_Di::getInstance()->hook->add('gridAffPayoutDetailInitGrid', function(Am_Event_Grid $e) {
$e->getGrid()->getDataSource()
->leftJoin('?_data', 'd', "d.`table`='user' AND d.`key` = 'aff_paypal_email' AND u.user_id = d.`id`")
->addField('d.value', 'aff_paypal_email');
$e->getGrid()->addFieldBefore('name_f', 'aff_paypal_email', 'PayPal Email');
});
@cgi-caesar
cgi-caesar / site.php
Created June 26, 2020 20:53
aMember (site.php): Add link to ticket action panel for admin interface
<?php
Am_Di::getInstance()->blocks->add('helpdesk/ticket/top', new Am_Block_Base(null, 'helpdesk-action-link', null, function(Am_View $v) {
if ($v->strategy instanceof Am_Helpdesk_Strategy_Admin) {
/** @var HelpdeskTicket $ticket */
$ticket = $v->ticket;
/** @var User $user */
$user = $ticket->getUser();
@cgi-caesar
cgi-caesar / widget-foobar.php
Created June 18, 2020 18:15
Widget Example Plugin
<?php
/**
* @title Widget Foo Bar
* @path application/default/plugins/misc/widget-foobar.php
*/
class Am_Plugin_WidgetFoobar extends Am_Plugin
{
const PLUGIN_STATUS = self::STATUS_BETA;
@cgi-caesar
cgi-caesar / site.php
Created May 28, 2020 12:27
aMember (site.php): Add images for video within Active Resources widget
<?php
$di = Am_Di::getInstance();
if ($di->auth->getUser()
&& ($videos = $di->resourceAccessTable->getAllowedResources($di->auth->getUser(), ResourceAccess::VIDEO))
) {
$di->view->headStyle()
->appendStyle("#member-main-resources li {display: block;}");
@cgi-caesar
cgi-caesar / price-table.html
Created May 20, 2020 22:33
CSS/Javascript to turn product select to Price table
<style type="text/css">#row-product_id_page-0-0 .am-element-title {
float: none;
width:auto;
text-align:center;
padding: 1em;
}
#row-product_id_page-0-0 .am-element {
padding: 1em;
margin:0;
display: grid;
@cgi-caesar
cgi-caesar / softsalefile-to-license.php
Last active May 21, 2020 15:14
Soft File to License Scheme Plugin
<?php
/**
* @title Soft File to License Scheme
* @path application/default/plugins/misc/softsalefile-to-license.php
*/
class Am_Plugin_SoftsalefileToLicense extends Am_Plugin
{
const PLUGIN_STATUS = self::STATUS_PRODUCTION;
@cgi-caesar
cgi-caesar / site.php
Created March 27, 2020 10:36
aMember (site.php): Active state for custom links within user menu
<?php
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function(Am_Event $e) {
$menu = $e->getMenu();
[$config, $items] = Am_Navigation_User::getNavigation();
$url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
foreach ($config as $item) {