{"id":20208344,"url":"https://github.com/cubiclesoft/admin-pack","last_synced_at":"2026-03-10T06:31:12.427Z","repository":{"id":4232781,"uuid":"5356145","full_name":"cubiclesoft/admin-pack","owner":"cubiclesoft","description":"A PHP toolkit designed specifically for programmers to quickly create a nice-looking, custom-built, secure administrative web interface.  MIT or LGPL.","archived":false,"fork":false,"pushed_at":"2022-10-20T14:54:09.000Z","size":303,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-19T20:59:30.881Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cubiclesoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-08-09T13:48:30.000Z","updated_at":"2024-08-12T19:21:21.000Z","dependencies_parsed_at":"2023-01-11T16:35:21.484Z","dependency_job_id":null,"html_url":"https://github.com/cubiclesoft/admin-pack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cubiclesoft/admin-pack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubiclesoft%2Fadmin-pack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubiclesoft%2Fadmin-pack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubiclesoft%2Fadmin-pack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubiclesoft%2Fadmin-pack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cubiclesoft","download_url":"https://codeload.github.com/cubiclesoft/admin-pack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubiclesoft%2Fadmin-pack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T05:35:11.041Z","updated_at":"2026-03-10T06:31:12.256Z","avatar_url":"https://github.com/cubiclesoft.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Admin Pack\n==========\n\nA PHP toolkit designed specifically for programmers to quickly create a nice-looking, custom-built, secure administrative web interface.  Choose from a MIT or LGPL license.  Proven to cut development time by at least 50% over traditional frameworks and template engines.  But it isn't a CMS nor a framework or a template engine.  Admin Pack is very different.  Give it a go to power your next PHP-based administrative backend.\n\nBe sure to check out [Admin Pack with Extras](https://github.com/cubiclesoft/admin-pack-with-extras).  It is Admin Pack plus some extra options with Javascript components (e.g. a convenient visual date picker widget) in a slightly beefier package.\n\n[![Donate](https://cubiclesoft.com/res/donate-shield.png)](https://cubiclesoft.com/donate/) [![Discord](https://img.shields.io/discord/777282089980526602?label=chat\u0026logo=discord)](https://cubiclesoft.com/product-support/github/)\n\nFeatures\n--------\n\n* Quick-n-dirty custom administrative interface builder.  [Live demo](https://barebonescms.com/demos/admin_pack/admin.php)\n* The default templates look nice enough.  Gets the job done.\n* Integrated CSRF/XSRF defenses.\n* Supports custom logos/favicon.\n* Very lightweight (~180KB).\n* Has a liberal open source license.  MIT or LGPL, your choice.\n* Designed for relatively painless integration into your project.\n* Sits on GitHub for all of that pull request and issue tracker goodness to easily submit changes and ideas respectively.\n\nGetting Started\n---------------\n\nDownload or clone the latest software release.  Transfer the files to a web server.  Open up `admin.php` in your favorite text editor.  Find this code:\n\n```php\n\t// $bb_randpage is used in combination with a user token to prevent hackers from sending malicious URLs.\n\t// [Put random content into the string.  Try www.random.org.]\n\t// https://www.random.org/integers/?num=100\u0026min=0\u0026max=255\u0026col=10\u0026base=16\u0026format=plain\u0026rnd=new\n\t$bb_randpage = \"[Random content goes here]\";\n\t$bb_rootname = \"Tool Name\";\n\n\t// [Put your login management, permissions to access this page, and any obvious initialization logic here.]\n\t// [If you want, you can make any error messages look nice using the BB_GeneratePage() call.]\n\t// [$bb_usertoken should be a string that uniquely identifies the user without directly identifying them.  For example, a session ID.]\n\t$bb_usertoken = \"\";\n\n\n\tBB_ProcessPageToken(\"action\");\n```\n\nAnd integrate a login system.  If you do not have a login system, try CubicleSoft [Single Sign-On Server/Client](https://github.com/cubiclesoft/sso-server).\n\nThere are three global variables that need to be defined:\n\n* $bb_randpage - Set to a randomly generated string of characters.  The more random, the better.\n* $bb_rootname - A string containing the global name of the tool and is also used as part of the title of each page.\n* $bb_usertoken - A string containing a secret session ID that uniquely identifies the user without directly identifying them.\n\nExample:\n\n```php\n\t// Force SSL.\n\tif (!BB_IsSSLRequest())\n\t{\n\t\theader(\"Location: \" . BB_GetFullRequestURLBase(\"https\"));\n\t\texit();\n\t}\n\n\t// $bb_randpage is used in combination with a user token to prevent hackers from sending malicious URLs.\n\t$bb_randpage = \"33f724f3724f2679614855896571bc8c9406355f\";\n\t$bb_rootname = \"RSS Feed Manager\";\n\n\trequire_once \"../login/required.php\";\n\tif (!$user-\u003eadmin)\n\t{\n\t\techo \"You must be an admin.\";\n\n\t\texit();\n\t}\n\n\t$bb_usertoken = $user-\u003esecretid;\n\n\tBB_ProcessPageToken(\"action\");\n```\n\nExample [SSO Server/Client](https://github.com/cubiclesoft/sso-server) integration:\n\n```php\n\t// Force SSL.\n\tif (!BB_IsSSLRequest())\n\t{\n\t\theader(\"Location: \" . BB_GetFullRequestURLBase(\"https\"));\n\t\texit();\n\t}\n\n\t// $bb_randpage is used in combination with a user token to prevent hackers from sending malicious URLs.\n\t$bb_randpage = \"33f724f3724f2679614855896571bc8c9406355f\";\n\t$bb_rootname = \"RSS Feed Manager\";\n\n\trequire_once \"client/config.php\";\n\trequire_once SSO_CLIENT_ROOT_PATH . \"/index.php\";\n\n\t$sso_client = new SSO_Client;\n\t$sso_client-\u003eInit(array(\"sso_impersonate\", \"sso_remote_id\"));\n\n\t$extra = array();\n\tif (isset($_REQUEST[\"sso_impersonate\"]) \u0026\u0026 is_string($_REQUEST[\"sso_impersonate\"]))  $extra[\"sso_impersonate\"] = $_REQUEST[\"sso_impersonate\"];\n\tif (!$sso_client-\u003eLoggedIn())  $sso_client-\u003eLogin(\"\", \"You must login to use this system.\", $extra);\n\n\t// Send the browser cookies.\n\t$sso_client-\u003eSaveUserInfo();\n\n\t// Test permissions for the user.\n\tif (!$sso_client-\u003eIsSiteAdmin() \u0026\u0026 !SSO_HasTag(\"rss_manager\"))  SSO_Login(\"\", \"insufficient_permissions\");\n\n\t// Get the internal token for use with XSRF defenses.\n\t$bb_usertoken = $sso_client-\u003eGetSecretToken();\n\n\tBB_ProcessPageToken(\"action\");\n```\n\nNext, set up the menu of options.  The default menu is the one found in the demo.\n\nFinally, start writing code for each admin interface action.  The source code found in '[admin.php](https://github.com/cubiclesoft/admin-pack/blob/master/admin.php)' demonstrates many common patterns that can simply be copied, pasted, and adjusted for each action.\n\nUnder the Hood\n--------------\n\nAdmin Pack uses [FlexForms](https://github.com/cubiclesoft/php-flexforms), which makes it easy to extend Admin Pack with custom functionality (see `support/view_print_layout.php`).  For example, [FlexForms Modules](https://github.com/cubiclesoft/php-flexforms-modules) contains several official extensions (e.g. charts, HTML editor, character/word counter).\n\nAdmin Pack has its origins in [Barebones CMS](http://barebonescms.com/), which is where the \"bb_\" prefixes come from.  Admin Pack is its own product.\n\nMore Information\n----------------\n\n* [Page Basics](https://github.com/cubiclesoft/php-flexforms/blob/master/docs/page_basics.md) - Convenient global functions included with Admin Pack.\n* [Creating Flexible Relational Databases](http://cubicspot.blogspot.com/2012/05/creating-flexible-relational-database.html) - Alternative approach to relational database design that works well with Admin Pack.\n* [CSDB Data Access Layer](https://github.com/cubiclesoft/csdb) - A set of classes for cross-database SQL.\n* [FlexForms Modules](https://github.com/cubiclesoft/php-flexforms-modules) - Additional functionality for Admin Pack.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubiclesoft%2Fadmin-pack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcubiclesoft%2Fadmin-pack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubiclesoft%2Fadmin-pack/lists"}