/** * Register hooks. * * @since 1.0.0 */ public static function register_hooks() { // Don't do anything if not in the backend if (!is_backend()) { return; } self::add_action('admin_head', 'setup_help_tabs', 10, 0); }
public function testIsBackend() { // arrange $env = 'backend-production'; // act $result = is_backend($env); // assert $this->assertEquals(true, $result); }
/** * Register hooks. * * @since 1.0.0 */ public static function register_hooks() { // Don't do anything if not in the backend if (!is_backend()) { return; } // Settings & Pages self::add_action('admin_menu', 'add_menu_pages'); self::add_action('admin_init', 'register_settings'); }
static function renderUpdateFormBackend(SiteUser $user = null, $action = '') { // set default action value if ($action != '') { $action = uri($action); } // get vars from form submission $username = isset($_POST['username']) ? strip_tags($_POST['username']) : (isset($user) ? $user->getUsername() : ''); $email = isset($_POST['email']) ? strip_tags($_POST['email']) : (isset($user) ? $user->getEmail() : ''); $password = ''; $password_confirm = ''; $active = isset($_POST['active']) ? strip_tags($_POST['active']) : (isset($user) ? $user->getActive() : false); $mandatory_label = ' <span style="color: rgb(185,2,0); font-weight: bold;">*</span>'; $roles_form_markup = '<div id="form-field-roles"><label>Roles</label><ul class="checkbox">'; foreach (SiteRole::findAll() as $role) { $roles_form_markup .= '<li><label><input type="checkbox" name="roles[' . $role->getid() . ']" value=1 ' . (isset($_POST['roles']) ? isset($_POST['roles'][$role->getId()]) ? 'checked="checked"' : '' : ($user && $user->hasRole($role->getName()) ? 'checked="checked"' : '')) . ' />' . $role->getName() . '</label></li>'; } $roles_form_markup .= '</ul></div>'; $rtn = ' <form action="' . $action . '" method="POST" id="adduser" enctype="multipart/form-data"> <div class="form-group" id="form-field-username"> <label for="username">' . i18n(array('en' => 'Username', 'zh' => '用户名')) . $mandatory_label . ' <small style="font-weight: normal;"><i>(' . i18n(array('en' => 'alphabetical letters, number or underscore', 'zh' => '英文字母,数字或下划线')) . ')</i></small></label> <input type="text" class="form-control" id="username" name="username" value="' . $username . '" required placeholder="" /> </div> <div class="form-group" id="form-field-email" > <label for="email">' . i18n(array('en' => 'Email', 'zh' => '电子邮箱')) . $mandatory_label . '</label> <input type="email" class="form-control" id="email" name="email" value="' . $email . '" required /> </div> <div class="form-group" id="form-field-password"> <label for="password">' . i18n(array('en' => 'Password', 'zh' => '密码')) . $mandatory_label . ' <small style="font-weight: normal;"><i>(' . i18n(array('en' => 'at least 6 letters', 'zh' => '至少6位')) . ')</i></small></label> <input type="password" class="form-control" id="password" name="password" value="' . $password . '" required /> </div> <div class="form-group" id="form-field-password_confirm"> <label for="password_confirm">' . i18n(array('en' => 'Password again', 'zh' => '再次确认密码')) . $mandatory_label . '</label> <input type="password" class="form-control" id="password_confirm" name="password_confirm" value="' . $password_confirm . '" required /> </div> ' . (class_exists('SiteProfile') ? SiteProfile::renderUpdateForm($user) : '') . ' <div class="checkbox" id="form-field-active"> <label> <input type="checkbox" id="active" name="active" value="1" ' . ($active == false ? '' : 'checked="checked"') . '> ' . i18n(array('en' => 'Active?', 'zh' => '有效用户')) . ' </label> </div> <input type="hidden" value=1 name="noemailnotification" /> ' . (is_backend() ? $roles_form_markup : '') . ' <div class="form-group" id="form-field-notice"><small><i> ' . $mandatory_label . i18n(array('en' => ' indicates mandatory fields', 'zh' => ' 标记为必填项')) . ' </i></small></div> <button type="submit" name="submit" class="btn btn-primary">' . (is_null($user) ? i18n(array('en' => 'Add new user', 'zh' => '添加新用户')) : i18n(array('en' => 'Update user', 'zh' => '更新用户'))) . '</button> </form> '; return $rtn; }
/** * Register hooks. * * @since 1.0.0 */ public static function register_hooks() { // Don't do anything if not in the backend if (!is_backend()) { return; } // Setup stuff self::add_action('plugins_loaded', 'load_textdomain', 10, 0); // Plugin information self::add_action('in_plugin_update_message-' . plugin_basename(SLUG_PLUGIN_FILE), 'update_notice'); // Script/Style Enqueues self::add_action('admin_enqueue_scripts', 'enqueue_assets'); }
/** * Register hooks. * * @since 1.0.0 */ public static function register_hooks() { // Don't do anything if not in the backend if (!is_backend()) { return; } // After-setup stuff self::add_action('plugins_loaded', 'load_textdomain'); // Settings registration self::add_action('admin_init', 'register_settings', 10, 0); // Interface additions self::add_filter('display_post_states', 'add_index_state', 10, 2); self::add_action('edit_form_after_title', 'add_index_notice', 10, 1); }
/** * Register hooks. * * @since 1.0.0 * * @uses Registry::get() to retrieve enabled post types. */ public static function register_hooks() { // Don't do anything if not in the backend if (is_backend()) { return; } // Request handling self::add_action('parse_request', 'handle_request', 10, 1); // Title/link rewriting self::add_filter('wp_title_parts', 'rewrite_title_parts', 10, 1); self::add_filter('post_type_archive_link', 'rewrite_archive_link', 10, 2); // Admin bar additions self::add_action('admin_bar_menu', 'add_edit_button', 85, 1); }
static function bootstrap() { // include libs $whichend = is_backend() ? 'backend' : 'frontend'; // jquery-ui if (!Asset::checkAssetAdded('jquery-ui', 'js', $whichend)) { $js = "<script src='" . uri('libraries/jquery-ui/jquery-ui.min.js', false) . "'></script>"; Asset::addDynamicAsset('jquery-ui', 'js', $whichend, $js); } if (!Asset::checkAssetAdded('jquery-ui', 'css', $whichend)) { $js = "<link rel=\"stylesheet\" href=\"" . uri('libraries/jquery-ui/jquery-ui.theme.min.css', false) . "\">"; $js .= "\n<link rel=\"stylesheet\" href=\"" . uri('libraries/jquery-ui/jquery-ui.structure.min.css', false) . "\">"; Asset::addDynamicAsset('jquery-ui', 'css', $whichend, $js); } }
/** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $e * * @return \Illuminate\Http\Response */ public function render($request, \Exception $e) { if ($request->ajax() && !$request->pjax() || $request->wantsJson()) { return $this->sendResponseForApiException($e); } if (is_backend()) { if ($e instanceof ModelNotFoundException) { return $this->sendResponseForModelNotFound($e); } if ($e instanceof ValidationException) { return $this->sendResponseForValidationError($request, $e); } return $this->renderControllerException($e); } return parent::render($request, $e); }
<?php // register admin $user = User::getInstance(); if (is_backend() && $user->isLogin()) { Backend::registerSideNav(' <li> <a href="#"><i class="fa fa-folder-open"></i> ' . i18n(array('en' => 'Project', 'zh' => '项目')) . '<span class="fa arrow"></span></a> <ul class="nav nav-second-level collapse"> <li><a href="' . uri('admin/project/list') . '">' . i18n(array('en' => 'List', 'zh' => '列表')) . '</a></li> <li><a href="' . uri('admin/project/create') . '">' . i18n(array('en' => 'Create', 'zh' => '创建')) . '</a></li> </ul> </li> '); }
</div> </div> </div> <div class='hr-line-dashed'></div> <?php // include jquery-ui library if not if (is_frontend()) { $already_included_at_frontend = Asset::checkAssetAdded('jquery-ui', 'js', 'frontend') || Asset::checkAssetAdded('jquery_ui', 'js', 'frontend'); if (!$already_included_at_frontend) { echo "\n" . '<script type="text/javascript" src="' . uri('modules/core/assets/jquery-ui-1.11.4.custom/jquery-ui.min.js') . '"></script>' . "\n"; echo "\n" . '<script type="text/javascript">loadCSS("' . uri('modules/core/assets/jquery-ui-1.11.4.custom/jquery-ui.min.css') . '")</script>' . "\n"; Asset::addDynamicAsset('jquery_ui', 'js', 'frontend', '<script type="text/javascript" src="' . uri('modules/core/assets/jquery-ui-1.11.4.custom/jquery-ui.min.js') . '"></script>'); } } else { if (is_backend()) { $already_included_at_backend = Asset::checkAssetAdded('jquery-ui', 'js', 'backend') || Asset::checkAssetAdded('jquery_ui', 'js', 'backend'); if (!$already_included_at_backend) { echo "\n" . '<script type="text/javascript" src="' . uri('modules/core/assets/jquery-ui-1.11.4.custom/jquery-ui.min.js') . '"></script>' . "\n"; echo "\n" . '<script type="text/javascript">loadCSS("' . uri('modules/core/assets/jquery-ui-1.11.4.custom/jquery-ui.min.css') . '")</script>' . "\n"; Asset::addDynamicAsset('jquery_ui', 'js', 'backend', '<script type="text/javascript" src="' . uri('modules/core/assets/jquery-ui-1.11.4.custom/jquery-ui.min.js') . '"></script>'); } } } ?> <script type='text/javascript'> $('#69Wf0 .datepicker').datepicker({ dateFormat: '@' ,altField: "#69Wf0 .altFormat", altFormat: "yy-mm-dd" ,changeMonth: 1
function is_frontend() { return !is_backend(); }
static function bootstrap($name) { // include libs $whichend = is_backend() ? 'backend' : 'frontend'; // jquery-ui if (!Asset::checkAssetAdded('jquery-ui', 'js', $whichend)) { $js = "<script src='" . uri('libraries/jquery-ui/jquery-ui.min.js', false) . "'></script>"; Asset::addDynamicAsset('jquery-ui', 'js', $whichend, $js); } if (!Asset::checkAssetAdded('jquery-ui', 'css', $whichend)) { $js = "<link rel=\"stylesheet\" href=\"" . uri('libraries/jquery-ui/jquery-ui.theme.min.css', false) . "\">\n"; $js .= " <link rel=\"stylesheet\" href=\"" . uri('libraries/jquery-ui/jquery-ui.structure.min.css', false) . "\">"; Asset::addDynamicAsset('jquery-ui', 'css', $whichend, $js); } // plupload if (!Asset::checkAssetAdded('plupload', 'js', $whichend)) { $js = "<script type='text/javascript' src='" . uri('libraries/plupload/js/plupload.full.min.js', false) . "'></script>"; Asset::addDynamicAsset('plupload', 'js', $whichend, $js); } // plupload queue js if (!Asset::checkAssetAdded('plupload_queue', 'js', $whichend)) { $js = "<script type='text/javascript' src='" . uri('libraries/plupload/js/jquery.plupload.queue/jquery.plupload.queue.min.js', false) . "'></script>"; Asset::addDynamicAsset('plupload_queue', 'js', $whichend, $js); } // plupload queue css if (!Asset::checkAssetAdded('plupload_queue', 'css', $whichend)) { $css = "<link type='text/css' rel='stylesheet' href='" . uri('libraries/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css') . "' media='screen' />"; Asset::addDynamicAsset('plupload_queue', 'css', $whichend, $css); } // plupload language js if (!Asset::checkAssetAdded('plupload_i18n', 'js', $whichend)) { $js = "<script type='text/javascript' src='" . uri('libraries/plupload') . "/js/i18n/" . (get_language() == 'zh' ? 'zh_CN' : 'en') . ".js'></script>"; Asset::addDynamicAsset('plupload_i18n', 'js', $whichend, $js); } // plupload markup css if (!Asset::checkAssetAdded('plupload_markup', 'css', $whichend)) { $css = '<!-- plupload markup style --> <style> .file-container {height:auto;border:none;box-shadow:none;list-style:none;} .file-container:after {content:" ";display:table;clear:both;*zoom: 1;} .uploaded-file {margin-bottom:5px;margin-right:5px;float:left;padding:2px;border:1px solid #DDD;width:85px;height:110px;background-color:#FFF;} .uploaded-file a {display:block;width:80px;height:80px;overflow:hidden;color:#666;text-align:center;line-height:80px;} .uploaded-file button {display:block;width:80px;height:20px;text-align:center;margin-top:3px;} </style>'; Asset::addDynamicAsset('plupload_markup', 'css', $whichend, $css); } // plupload markup js if (!Asset::checkAssetAdded('plupload_markup', 'js', $whichend)) { $js = '<!-- js functions for plupload file widget --> <script type="text/javascript"> function textareaToFilelist(textarea, max_file_number) { // build the list textarea.hide(); var formGroup = textarea.parents(\'.form-group\').first(); var content = jQuery.trim(textarea.val());; var files = content.split("\\n"); // remove and rebuild file container $(\'.file-container\', formGroup).remove(); var container = $(\'<ul class="form-control file-container"></ul>\'); for (i in files) { var file = files[i]; if (file == \'\') { break; } // get file name var tokens = file.split(\'/\'); var fileName = tokens[tokens.length-1]; var cell = \'\'; tokens = fileName.split(\'.\'); var extension = tokens[tokens.length-1]; var extension_icon = \'\'; switch (extension.toLowerCase()) { case \'doc\': case \'docx\': extension_icon = \'word\'; break; case \'pdf\': extension_icon = \'pdf\'; break; case \'txt\': extension_icon = \'text\'; break; case \'csv\': case \'xls\': extension_icon = \'excel\'; break; case \'zip\': case \'rar\': extension_icon = \'archive\'; break; case \'mp3\': extension_icon = \'audio\'; break; case \'mp4\': case \'flv\': extension_icon = \'video\'; break; } extension_icon = \'<i class="fa fa-file-\'+extension_icon+\'-o"></i>\'; if (tokens[tokens.length-1].match(/(jpg|jpeg|png|gif)/i)) { cell = \'<a style="background:#EEE url(\'+"/"+site.settings.subroot+(site.settings.subroot == "" ? "" : "/")+file+\') center no-repeat;background-size:contain" target=_blank href="\'+"/"+site.settings.subroot+(site.settings.subroot == "" ? "" : "/")+file+\'"></a>\'; } else { cell = \'<a style="background:#EEE;font-size:45px;" target=_blank href="\'+"/"+site.settings.subroot+(site.settings.subroot == "" ? "" : "/")+file+\'">\'+extension_icon+\'</a>\'; } // build file item var regx = \'/\'+extension+\'/gi\'; // regx to replace extension container.append( $(\'<li id="\'+tokens[0]+\'_uploaded" class="uploaded-file">\'+cell+\'<button data-furi="\'+file+\'" class="delete btn btn-xs btn-danger"><i class="fa fa-trash"></i></button></li>\') ); } textarea.after(container); // add addMore button if not exist if ($(\'.addMore\', formGroup).length == 0) { container.after( $(\'<div class="form-control" style="border:none;box-shadow:none;"><button style="display:none;" class="addMore btn btn-sm btn-primary"><i class="fa fa-plus"></i> ' . i18n(array("en" => "Add new file", "zh" => "添加新文件")) . '</button></div>\') ); $(\'.addMore\', formGroup).on(\'click\', function(){ $(this).fadeOut(function(){ $(\'.uploader\', formGroup).fadeIn(); }); return false; }); } container.sortable({ update: function(event, ui){ filelistToTextarea(container, max_file_number); } }); container.disableSelection(); checkMaxItemReached(max_file_number, textarea, $(\'.addMore\', formGroup), $(\'.uploader\', formGroup)); } function filelistToTextarea(filelist, max_file_number) { var content = ""; $(\'.delete\', filelist).each(function(){ content += $(this).data(\'furi\') + "\\n"; }); content = jQuery.trim(content); var formGroup = filelist.parents(\'.form-group\').first(); var textarea = $(\'textarea\', formGroup); textarea.val(content); checkMaxItemReached(max_file_number, textarea, $(\'.addMore\', formGroup), $(\'.uploader\', formGroup)); } function checkMaxItemReached(max, textarea, addButton, uploader) { var content = jQuery.trim(textarea.val());; var files = content.split("\\n"); if (max > files.length || (files.length == 1 && files[0] == "")) { addButton.show(); uploader.hide(); } else { addButton.fadeOut(function(){ uploader.fadeOut(); }); } } </script> <!-- END OF js functions for plupload file widget -->'; Asset::addDynamicAsset('plupload_markup', 'js', $whichend, $js); } }
<?php // define global const define('UID_BACKEND_LOGIN_FORM', 'Backend Login Form'); define('FILE_DIR', WEBROOT . DS . 'files'); if (!is_dir(FILE_DIR)) { mkdir(FILE_DIR); } if (!is_writable(FILE_DIR)) { die('File directory needs to be writable'); } define('CACHE_DIR', FILE_DIR . DS . 'cache'); if (!is_dir(CACHE_DIR)) { mkdir(CACHE_DIR); } if (!is_writable(CACHE_DIR)) { die('Cache directory needs to be writable'); } // register maintenance admin page $user = User::getInstance(); if (!is_cli() && $user->isLogin() && is_backend()) { // register admin Backend::registerSideNav(' <li> <a href="' . uri('admin/maintenance') . '"><i class="fa fa-wrench"></i> ' . i18n(array('en' => 'Maintenance', 'zh' => '系统维护')) . '</a> </li> '); }
static function renderCreateFormFrontend(MySiteUser $user = null, $action = '') { // set default action value if ($action != '') { $action = uri($action); } // get vars from form submission $username = isset($_POST['username']) ? strip_tags($_POST['username']) : (isset($user) ? $user->getUsername() : ''); $email = isset($_POST['email']) ? strip_tags($_POST['email']) : (isset($user) ? $user->getEmail() : ''); $password = ''; $password_confirm = ''; if ($user && $user->getId() == MySiteUser::getCurrentUser()->getId()) { // when updating self profile, we don't include 'active' $active_field = ''; } else { $active = isset($_POST['active']) ? strip_tags($_POST['active']) : (isset($user) ? $user->getActive() . "" : false); $active_field = ' <div class="form-group" id="form-field-active"> <label class="col-sm-2 control-label" for="active">' . i18n(array('en' => 'Active', 'zh' => '是否在职')) . '</label> <div class="col-sm-10"> <select class="form-control" name="active" id="active"> <option value="1" ' . ($active && $active == "1" ? 'selected=selected' : '') . '>在职</option> <option value="0" ' . ($active && $active == "0" ? 'selected=selected' : '') . '>离职</option> </select> </div> </div> <div class="hr-line-dashed"></div>'; } $mandatory_label = ' <span style="color: rgb(185,2,0); font-weight: bold;">*</span>'; $roles_form_markup = '<div id="form-field-roles"><label class="col-sm-2 control-label">Roles</label><div class="col-sm-10"><ul class="checkbox">'; foreach (SiteRole::findAll() as $role) { $roles_form_markup .= '<li><label><input type="checkbox" name="roles[' . $role->getid() . ']" value=1 ' . (isset($_POST['roles']) ? isset($_POST['roles'][$role->getId()]) ? 'checked="checked"' : '' : ($user && $user->hasRole($role->getName()) ? 'checked="checked"' : '')) . ' />' . $role->getName() . '</label></li>'; } $roles_form_markup .= '</ul></div></div>'; $rtn = ' <form class="form-horizontal" action="' . $action . '" method="POST" enctype="multipart/form-data"> <div class="form-group" id="form-field-email" > <label class="col-sm-2 control-label" for="email">' . i18n(array('en' => 'Email', 'zh' => '电子邮箱')) . $mandatory_label . '</label> <div class="col-sm-10"> <input type="email" class="form-control" id="email" name="email" value="' . $email . '" required /> </div> </div> <div class="hr-line-dashed"></div> <div class="form-group" id="form-field-password"> <label class="col-sm-2 control-label" for="password">' . i18n(array('en' => 'Password', 'zh' => '密码')) . $mandatory_label . ' </label> <div class="col-sm-10"> <input type="password" class="form-control" id="password" name="password" value="' . $password . '" required /> <span class="help-block m-b-none"><small>(' . i18n(array('en' => 'at least 6 letters', 'zh' => '至少6位')) . ')</small></span> </div> </div> <div class="form-group" id="form-field-password_confirm"> <label class="col-sm-2 control-label" for="password_confirm">' . i18n(array('en' => 'Password again', 'zh' => '再次确认密码')) . $mandatory_label . '</label> <div class="col-sm-10"> <input type="password" class="form-control" id="password_confirm" name="password_confirm" value="' . $password_confirm . '" required /> </div> </div> <div class="hr-line-dashed"></div> ' . (class_exists('SiteProfile') ? SiteProfile::renderUpdateForm($user) : '') . ' <div class="hr-line-dashed"></div> ' . $active_field . ' <input type="hidden" value=1 name="noemailnotification" /> ' . (is_backend() ? $roles_form_markup : '') . ' <div class="form-group" id="form-field-notice"> <div class="col-sm-10 col-sm-push-2"> <small><i> ' . $mandatory_label . i18n(array('en' => ' indicates mandatory fields', 'zh' => ' 标记为必填项')) . ' </i></small> </div> </div> <div class="col-sm-10 col-sm-push-2"> <button type="submit" name="submit" class="btn btn-primary">' . (is_null($user) ? i18n(array('en' => 'Add new user', 'zh' => '添加新用户')) : i18n(array('en' => 'Update user', 'zh' => '更新用户'))) . '</button> </div> </form> '; return $rtn; }