public static function handleAjaxCall($page, $func, $table, $idField, $useLike)
 {
     global $REX;
     if (isset($REX['USER']) && rex_request('page') == $page) {
         self::$ajaxFunctionName = $func;
         if (rex_request('func') == self::$ajaxFunctionName) {
             // update prio in db
             self::updatePrio(rex_request('order'), $table, $idField, $useLike);
             // update init file to reflect changes
             rex_website_manager::updateInitFile();
             // stop executing rest of redaxo stuff
             exit;
         }
     }
 }
    // icon column
    $thIcon = '<a class="rex-i-element rex-i-generic-add" href="' . $list->getUrl(array('func' => 'add')) . '"><span class="rex-i-element-text">' . $I18N->msg('website_manager_website_add_website') . '</span></a>';
    $tdIcon = '<span class="rex-i-element rex-i-generic"><span class="rex-i-element-text">###name###</span></span>';
    $list->addColumn($thIcon, $tdIcon, 0, array('<th class="rex-icon">###VALUE###</th>', '<td class="rex-icon">###VALUE###</td>'));
    $list->setColumnParams($thIcon, array('func' => 'edit', 'website_id' => '###id###'));
    // functions column spans 2 data-columns
    $funcs = $I18N->msg('website_manager_website_functions');
    $list->addColumn($funcs, $I18N->msg('website_manager_website_edit'), -1, array('<th colspan="2">###VALUE###</th>', '<td>###VALUE###</td>'));
    $list->setColumnParams($funcs, array('func' => 'edit', 'website_id' => $website_id, 'website_id' => '###id###'));
    $delete = 'deleteCol';
    $list->addColumn($delete, $I18N->msg('website_manager_website_delete'), -1, array('', '<td>###VALUE###</td>'));
    $list->setColumnParams($delete, array('website_id' => '###id###', 'func' => 'delete'));
    $list->addLinkAttribute($delete, 'onclick', 'alert(\'' . $I18N->msg('website_manager_website_delete_editmode') . '\'); return false;');
    $list->show();
    // prio switch
    rex_website_manager_prio_switch::printSwitch(array($I18N->msg('website_manager_prio_mode'), $I18N->msg('website_manager_prio_mode_on'), $I18N->msg('website_manager_prio_mode_off')), false);
} elseif ($func == 'add' || $func == 'edit' && $website_id > 0) {
    if ($func == 'edit') {
        $formLabel = $I18N->msg('website_manager_website_website_edit');
        $defaultId = null;
    } elseif ($func == 'add') {
        $formLabel = $I18N->msg('website_manager_website_website_add');
        $defaultId = '1';
    }
    $form = rex_form::factory('rex_website', $formLabel, 'id=' . $website_id);
    $form->addErrorMessage(REX_FORM_ERROR_VIOLATE_UNIQUE_KEY, $I18N->msg('website_manager_website_id_exists'));
    // color
    $field =& $form->addTextField('color');
    $field->setLabel($I18N->msg('website_manager_website_color'));
    $field->setAttribute('id', 'color-picker');
    $field->setAttribute('style', 'visibility: hidden; height: 20px;');
 public static function initPrioSwitch()
 {
     global $REX;
     // include main class
     if (!class_exists('rex_prio_switch')) {
         include $REX['INCLUDE_PATH'] . '/addons/website_manager/classes/class.rex_prio_switch.inc.php';
     }
     // include extended class for use in this addon
     include $REX['INCLUDE_PATH'] . '/addons/website_manager/classes/class.rex_website_manager_prio_switch.inc.php';
     // for ajax call: update prio in db if necessary
     rex_website_manager_prio_switch::handleAjaxCall('website_manager', 'update_websites_prio', 'rex_website', 'id', false);
 }