@@ -31,116 +31,116 @@ |
||
| 31 | 31 | // Request repo_id |
| 32 | 32 | $repoId = Request::getInt('repo_id'); |
| 33 | 33 | switch ($op) { |
| 34 | - case 'list': |
|
| 35 | - default: |
|
| 36 | - // Define Stylesheet |
|
| 37 | - $GLOBALS['xoTheme']->addStylesheet($style, null); |
|
| 38 | - $start = Request::getInt('start', 0); |
|
| 39 | - $limit = Request::getInt('limit', $helper->getConfig('adminpager')); |
|
| 40 | - $templateMain = 'wggithub_admin_repositories.tpl'; |
|
| 41 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('repositories.php')); |
|
| 42 | - $adminObject->addItemButton(_AM_WGGITHUB_ADD_REPOSITORY, 'repositories.php?op=new', 'add'); |
|
| 43 | - $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 44 | - $repositoriesCount = $repositoriesHandler->getCountRepositories(); |
|
| 45 | - $repositoriesAll = $repositoriesHandler->getAllRepositories($start, $limit); |
|
| 46 | - $GLOBALS['xoopsTpl']->assign('repositories_count', $repositoriesCount); |
|
| 47 | - $GLOBALS['xoopsTpl']->assign('wggithub_url', WGGITHUB_URL); |
|
| 48 | - $GLOBALS['xoopsTpl']->assign('wggithub_upload_url', WGGITHUB_UPLOAD_URL); |
|
| 49 | - // Table view repositories |
|
| 50 | - if ($repositoriesCount > 0) { |
|
| 51 | - foreach (\array_keys($repositoriesAll) as $i) { |
|
| 52 | - $repository = $repositoriesAll[$i]->getValuesRepositories(); |
|
| 53 | - $GLOBALS['xoopsTpl']->append('repositories_list', $repository); |
|
| 54 | - unset($repository); |
|
| 55 | - } |
|
| 56 | - // Display Navigation |
|
| 57 | - if ($repositoriesCount > $limit) { |
|
| 58 | - include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; |
|
| 59 | - $pagenav = new \XoopsPageNav($repositoriesCount, $limit, $start, 'start', 'op=list&limit=' . $limit); |
|
| 60 | - $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(4)); |
|
| 61 | - } |
|
| 62 | - } else { |
|
| 63 | - $GLOBALS['xoopsTpl']->assign('error', _AM_WGGITHUB_THEREARENT_REPOSITORIES); |
|
| 64 | - } |
|
| 65 | - break; |
|
| 66 | - case 'new': |
|
| 67 | - $templateMain = 'wggithub_admin_repositories.tpl'; |
|
| 68 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('repositories.php')); |
|
| 69 | - $adminObject->addItemButton(_AM_WGGITHUB_REPOSITORIES_LIST, 'repositories.php', 'list'); |
|
| 70 | - $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 71 | - // Form Create |
|
| 72 | - $repositoriesObj = $repositoriesHandler->create(); |
|
| 73 | - $form = $repositoriesObj->getFormRepositories(); |
|
| 74 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 75 | - break; |
|
| 76 | - case 'save': |
|
| 77 | - // Security Check |
|
| 78 | - if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 79 | - \redirect_header('repositories.php', 3, \implode(',', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 80 | - } |
|
| 81 | - if ($repoId > 0) { |
|
| 82 | - $repositoriesObj = $repositoriesHandler->get($repoId); |
|
| 83 | - } else { |
|
| 84 | - $repositoriesObj = $repositoriesHandler->create(); |
|
| 85 | - } |
|
| 86 | - // Set Vars |
|
| 87 | - $repositoriesObj->setVar('repo_nodeid', Request::getString('repo_nodeid', '')); |
|
| 88 | - $repositoriesObj->setVar('repo_user', Request::getString('repo_user', '')); |
|
| 89 | - $repositoriesObj->setVar('repo_name', Request::getString('repo_name', '')); |
|
| 90 | - $repositoriesObj->setVar('repo_fullname', Request::getString('repo_fullname', '')); |
|
| 91 | - $repositoryCreatedatObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('repo_createdat')); |
|
| 92 | - $repositoriesObj->setVar('repo_createdat', $repositoryCreatedatObj->getTimestamp()); |
|
| 93 | - $repositoryUpdatedatObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('repo_updatedat')); |
|
| 94 | - $repositoriesObj->setVar('repo_updatedat', $repositoryUpdatedatObj->getTimestamp()); |
|
| 95 | - $repositoriesObj->setVar('repo_htmlurl', Request::getString('repo_htmlurl', '')); |
|
| 34 | + case 'list': |
|
| 35 | + default: |
|
| 36 | + // Define Stylesheet |
|
| 37 | + $GLOBALS['xoTheme']->addStylesheet($style, null); |
|
| 38 | + $start = Request::getInt('start', 0); |
|
| 39 | + $limit = Request::getInt('limit', $helper->getConfig('adminpager')); |
|
| 40 | + $templateMain = 'wggithub_admin_repositories.tpl'; |
|
| 41 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('repositories.php')); |
|
| 42 | + $adminObject->addItemButton(_AM_WGGITHUB_ADD_REPOSITORY, 'repositories.php?op=new', 'add'); |
|
| 43 | + $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 44 | + $repositoriesCount = $repositoriesHandler->getCountRepositories(); |
|
| 45 | + $repositoriesAll = $repositoriesHandler->getAllRepositories($start, $limit); |
|
| 46 | + $GLOBALS['xoopsTpl']->assign('repositories_count', $repositoriesCount); |
|
| 47 | + $GLOBALS['xoopsTpl']->assign('wggithub_url', WGGITHUB_URL); |
|
| 48 | + $GLOBALS['xoopsTpl']->assign('wggithub_upload_url', WGGITHUB_UPLOAD_URL); |
|
| 49 | + // Table view repositories |
|
| 50 | + if ($repositoriesCount > 0) { |
|
| 51 | + foreach (\array_keys($repositoriesAll) as $i) { |
|
| 52 | + $repository = $repositoriesAll[$i]->getValuesRepositories(); |
|
| 53 | + $GLOBALS['xoopsTpl']->append('repositories_list', $repository); |
|
| 54 | + unset($repository); |
|
| 55 | + } |
|
| 56 | + // Display Navigation |
|
| 57 | + if ($repositoriesCount > $limit) { |
|
| 58 | + include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; |
|
| 59 | + $pagenav = new \XoopsPageNav($repositoriesCount, $limit, $start, 'start', 'op=list&limit=' . $limit); |
|
| 60 | + $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(4)); |
|
| 61 | + } |
|
| 62 | + } else { |
|
| 63 | + $GLOBALS['xoopsTpl']->assign('error', _AM_WGGITHUB_THEREARENT_REPOSITORIES); |
|
| 64 | + } |
|
| 65 | + break; |
|
| 66 | + case 'new': |
|
| 67 | + $templateMain = 'wggithub_admin_repositories.tpl'; |
|
| 68 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('repositories.php')); |
|
| 69 | + $adminObject->addItemButton(_AM_WGGITHUB_REPOSITORIES_LIST, 'repositories.php', 'list'); |
|
| 70 | + $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 71 | + // Form Create |
|
| 72 | + $repositoriesObj = $repositoriesHandler->create(); |
|
| 73 | + $form = $repositoriesObj->getFormRepositories(); |
|
| 74 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 75 | + break; |
|
| 76 | + case 'save': |
|
| 77 | + // Security Check |
|
| 78 | + if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 79 | + \redirect_header('repositories.php', 3, \implode(',', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 80 | + } |
|
| 81 | + if ($repoId > 0) { |
|
| 82 | + $repositoriesObj = $repositoriesHandler->get($repoId); |
|
| 83 | + } else { |
|
| 84 | + $repositoriesObj = $repositoriesHandler->create(); |
|
| 85 | + } |
|
| 86 | + // Set Vars |
|
| 87 | + $repositoriesObj->setVar('repo_nodeid', Request::getString('repo_nodeid', '')); |
|
| 88 | + $repositoriesObj->setVar('repo_user', Request::getString('repo_user', '')); |
|
| 89 | + $repositoriesObj->setVar('repo_name', Request::getString('repo_name', '')); |
|
| 90 | + $repositoriesObj->setVar('repo_fullname', Request::getString('repo_fullname', '')); |
|
| 91 | + $repositoryCreatedatObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('repo_createdat')); |
|
| 92 | + $repositoriesObj->setVar('repo_createdat', $repositoryCreatedatObj->getTimestamp()); |
|
| 93 | + $repositoryUpdatedatObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('repo_updatedat')); |
|
| 94 | + $repositoriesObj->setVar('repo_updatedat', $repositoryUpdatedatObj->getTimestamp()); |
|
| 95 | + $repositoriesObj->setVar('repo_htmlurl', Request::getString('repo_htmlurl', '')); |
|
| 96 | 96 | $repositoriesObj->setVar('repo_prerelease', Request::getInt('repo_prerelease', 0)); |
| 97 | 97 | $repositoriesObj->setVar('repo_release', Request::getInt('repo_release', 0)); |
| 98 | - $repositoriesObj->setVar('repo_status', Request::getInt('repo_status', 0)); |
|
| 99 | - $repositoryDatecreatedObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('repo_datecreated')); |
|
| 100 | - $repositoriesObj->setVar('repo_datecreated', $repositoryDatecreatedObj->getTimestamp()); |
|
| 101 | - $repositoriesObj->setVar('repo_submitter', Request::getInt('repo_submitter', 0)); |
|
| 102 | - // Insert Data |
|
| 103 | - if ($repositoriesHandler->insert($repositoriesObj)) { |
|
| 104 | - \redirect_header('repositories.php?op=list', 2, _AM_WGGITHUB_FORM_OK); |
|
| 105 | - } |
|
| 106 | - // Get Form |
|
| 107 | - $GLOBALS['xoopsTpl']->assign('error', $repositoriesObj->getHtmlErrors()); |
|
| 108 | - $form = $repositoriesObj->getFormRepositories(); |
|
| 109 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 110 | - break; |
|
| 111 | - case 'edit': |
|
| 112 | - $templateMain = 'wggithub_admin_repositories.tpl'; |
|
| 113 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('repositories.php')); |
|
| 114 | - $adminObject->addItemButton(_AM_WGGITHUB_ADD_REPOSITORY, 'repositories.php?op=new', 'add'); |
|
| 115 | - $adminObject->addItemButton(_AM_WGGITHUB_REPOSITORIES_LIST, 'repositories.php', 'list'); |
|
| 116 | - $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 117 | - // Get Form |
|
| 118 | - $repositoriesObj = $repositoriesHandler->get($repoId); |
|
| 119 | - $form = $repositoriesObj->getFormRepositories(); |
|
| 120 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 121 | - break; |
|
| 122 | - case 'delete': |
|
| 123 | - $templateMain = 'wggithub_admin_repositories.tpl'; |
|
| 124 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('repositories.php')); |
|
| 125 | - $repositoriesObj = $repositoriesHandler->get($repoId); |
|
| 126 | - $repoName = $repositoriesObj->getVar('repo_name'); |
|
| 127 | - if (isset($_REQUEST['ok']) && 1 == $_REQUEST['ok']) { |
|
| 128 | - if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 129 | - \redirect_header('repositories.php', 3, \implode(', ', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 130 | - } |
|
| 131 | - if ($repositoriesHandler->delete($repositoriesObj)) { |
|
| 132 | - \redirect_header('repositories.php', 3, _AM_WGGITHUB_FORM_DELETE_OK); |
|
| 133 | - } else { |
|
| 134 | - $GLOBALS['xoopsTpl']->assign('error', $repositoriesObj->getHtmlErrors()); |
|
| 135 | - } |
|
| 136 | - } else { |
|
| 137 | - $xoopsconfirm = new Common\XoopsConfirm( |
|
| 138 | - ['ok' => 1, 'repo_id' => $repoId, 'op' => 'delete'], |
|
| 139 | - $_SERVER['REQUEST_URI'], |
|
| 140 | - \sprintf(_AM_WGGITHUB_FORM_SURE_DELETE, $repositoriesObj->getVar('repo_name'))); |
|
| 141 | - $form = $xoopsconfirm->getFormXoopsConfirm(); |
|
| 142 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 143 | - } |
|
| 144 | - break; |
|
| 98 | + $repositoriesObj->setVar('repo_status', Request::getInt('repo_status', 0)); |
|
| 99 | + $repositoryDatecreatedObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('repo_datecreated')); |
|
| 100 | + $repositoriesObj->setVar('repo_datecreated', $repositoryDatecreatedObj->getTimestamp()); |
|
| 101 | + $repositoriesObj->setVar('repo_submitter', Request::getInt('repo_submitter', 0)); |
|
| 102 | + // Insert Data |
|
| 103 | + if ($repositoriesHandler->insert($repositoriesObj)) { |
|
| 104 | + \redirect_header('repositories.php?op=list', 2, _AM_WGGITHUB_FORM_OK); |
|
| 105 | + } |
|
| 106 | + // Get Form |
|
| 107 | + $GLOBALS['xoopsTpl']->assign('error', $repositoriesObj->getHtmlErrors()); |
|
| 108 | + $form = $repositoriesObj->getFormRepositories(); |
|
| 109 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 110 | + break; |
|
| 111 | + case 'edit': |
|
| 112 | + $templateMain = 'wggithub_admin_repositories.tpl'; |
|
| 113 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('repositories.php')); |
|
| 114 | + $adminObject->addItemButton(_AM_WGGITHUB_ADD_REPOSITORY, 'repositories.php?op=new', 'add'); |
|
| 115 | + $adminObject->addItemButton(_AM_WGGITHUB_REPOSITORIES_LIST, 'repositories.php', 'list'); |
|
| 116 | + $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 117 | + // Get Form |
|
| 118 | + $repositoriesObj = $repositoriesHandler->get($repoId); |
|
| 119 | + $form = $repositoriesObj->getFormRepositories(); |
|
| 120 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 121 | + break; |
|
| 122 | + case 'delete': |
|
| 123 | + $templateMain = 'wggithub_admin_repositories.tpl'; |
|
| 124 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('repositories.php')); |
|
| 125 | + $repositoriesObj = $repositoriesHandler->get($repoId); |
|
| 126 | + $repoName = $repositoriesObj->getVar('repo_name'); |
|
| 127 | + if (isset($_REQUEST['ok']) && 1 == $_REQUEST['ok']) { |
|
| 128 | + if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 129 | + \redirect_header('repositories.php', 3, \implode(', ', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 130 | + } |
|
| 131 | + if ($repositoriesHandler->delete($repositoriesObj)) { |
|
| 132 | + \redirect_header('repositories.php', 3, _AM_WGGITHUB_FORM_DELETE_OK); |
|
| 133 | + } else { |
|
| 134 | + $GLOBALS['xoopsTpl']->assign('error', $repositoriesObj->getHtmlErrors()); |
|
| 135 | + } |
|
| 136 | + } else { |
|
| 137 | + $xoopsconfirm = new Common\XoopsConfirm( |
|
| 138 | + ['ok' => 1, 'repo_id' => $repoId, 'op' => 'delete'], |
|
| 139 | + $_SERVER['REQUEST_URI'], |
|
| 140 | + \sprintf(_AM_WGGITHUB_FORM_SURE_DELETE, $repositoriesObj->getVar('repo_name'))); |
|
| 141 | + $form = $xoopsconfirm->getFormXoopsConfirm(); |
|
| 142 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 143 | + } |
|
| 144 | + break; |
|
| 145 | 145 | } |
| 146 | 146 | require __DIR__ . '/footer.php'; |
@@ -32,85 +32,85 @@ discard block |
||
| 32 | 32 | */ |
| 33 | 33 | class Repositories extends \XoopsObject |
| 34 | 34 | { |
| 35 | - /** |
|
| 36 | - * Constructor |
|
| 37 | - * |
|
| 38 | - * @param null |
|
| 39 | - */ |
|
| 40 | - public function __construct() |
|
| 41 | - { |
|
| 42 | - $this->initVar('repo_id', XOBJ_DTYPE_INT); |
|
| 43 | - $this->initVar('repo_nodeid', XOBJ_DTYPE_TXTBOX); |
|
| 44 | - $this->initVar('repo_user', XOBJ_DTYPE_TXTBOX); |
|
| 35 | + /** |
|
| 36 | + * Constructor |
|
| 37 | + * |
|
| 38 | + * @param null |
|
| 39 | + */ |
|
| 40 | + public function __construct() |
|
| 41 | + { |
|
| 42 | + $this->initVar('repo_id', XOBJ_DTYPE_INT); |
|
| 43 | + $this->initVar('repo_nodeid', XOBJ_DTYPE_TXTBOX); |
|
| 44 | + $this->initVar('repo_user', XOBJ_DTYPE_TXTBOX); |
|
| 45 | 45 | $this->initVar('repo_name', XOBJ_DTYPE_TXTBOX); |
| 46 | - $this->initVar('repo_fullname', XOBJ_DTYPE_TXTBOX); |
|
| 47 | - $this->initVar('repo_createdat', XOBJ_DTYPE_INT); |
|
| 48 | - $this->initVar('repo_updatedat', XOBJ_DTYPE_INT); |
|
| 49 | - $this->initVar('repo_htmlurl', XOBJ_DTYPE_TXTBOX); |
|
| 46 | + $this->initVar('repo_fullname', XOBJ_DTYPE_TXTBOX); |
|
| 47 | + $this->initVar('repo_createdat', XOBJ_DTYPE_INT); |
|
| 48 | + $this->initVar('repo_updatedat', XOBJ_DTYPE_INT); |
|
| 49 | + $this->initVar('repo_htmlurl', XOBJ_DTYPE_TXTBOX); |
|
| 50 | 50 | $this->initVar('repo_readme', XOBJ_DTYPE_TXTBOX); |
| 51 | 51 | $this->initVar('repo_prerelease', XOBJ_DTYPE_TXTBOX); |
| 52 | 52 | $this->initVar('repo_release', XOBJ_DTYPE_TXTBOX); |
| 53 | - $this->initVar('repo_status', XOBJ_DTYPE_INT); |
|
| 54 | - $this->initVar('repo_datecreated', XOBJ_DTYPE_INT); |
|
| 55 | - $this->initVar('repo_submitter', XOBJ_DTYPE_INT); |
|
| 56 | - } |
|
| 53 | + $this->initVar('repo_status', XOBJ_DTYPE_INT); |
|
| 54 | + $this->initVar('repo_datecreated', XOBJ_DTYPE_INT); |
|
| 55 | + $this->initVar('repo_submitter', XOBJ_DTYPE_INT); |
|
| 56 | + } |
|
| 57 | 57 | |
| 58 | - /** |
|
| 59 | - * @static function &getInstance |
|
| 60 | - * |
|
| 61 | - * @param null |
|
| 62 | - */ |
|
| 63 | - public static function getInstance() |
|
| 64 | - { |
|
| 65 | - static $instance = false; |
|
| 66 | - if (!$instance) { |
|
| 67 | - $instance = new self(); |
|
| 68 | - } |
|
| 69 | - } |
|
| 58 | + /** |
|
| 59 | + * @static function &getInstance |
|
| 60 | + * |
|
| 61 | + * @param null |
|
| 62 | + */ |
|
| 63 | + public static function getInstance() |
|
| 64 | + { |
|
| 65 | + static $instance = false; |
|
| 66 | + if (!$instance) { |
|
| 67 | + $instance = new self(); |
|
| 68 | + } |
|
| 69 | + } |
|
| 70 | 70 | |
| 71 | - /** |
|
| 72 | - * The new inserted $Id |
|
| 73 | - * @return inserted id |
|
| 74 | - */ |
|
| 75 | - public function getNewInsertedIdRepositories() |
|
| 76 | - { |
|
| 77 | - $newInsertedId = $GLOBALS['xoopsDB']->getInsertId(); |
|
| 78 | - return $newInsertedId; |
|
| 79 | - } |
|
| 71 | + /** |
|
| 72 | + * The new inserted $Id |
|
| 73 | + * @return inserted id |
|
| 74 | + */ |
|
| 75 | + public function getNewInsertedIdRepositories() |
|
| 76 | + { |
|
| 77 | + $newInsertedId = $GLOBALS['xoopsDB']->getInsertId(); |
|
| 78 | + return $newInsertedId; |
|
| 79 | + } |
|
| 80 | 80 | |
| 81 | - /** |
|
| 82 | - * @public function getForm |
|
| 83 | - * @param bool $action |
|
| 84 | - * @return \XoopsThemeForm |
|
| 85 | - */ |
|
| 86 | - public function getFormRepositories($action = false) |
|
| 87 | - { |
|
| 88 | - $helper = \XoopsModules\Wggithub\Helper::getInstance(); |
|
| 89 | - if (!$action) { |
|
| 90 | - $action = $_SERVER['REQUEST_URI']; |
|
| 91 | - } |
|
| 92 | - // Title |
|
| 93 | - $title = $this->isNew() ? \sprintf(_AM_WGGITHUB_REPOSITORY_ADD) : \sprintf(_AM_WGGITHUB_REPOSITORY_EDIT); |
|
| 94 | - // Get Theme Form |
|
| 95 | - \xoops_load('XoopsFormLoader'); |
|
| 96 | - $form = new \XoopsThemeForm($title, 'form', $action, 'post', true); |
|
| 97 | - $form->setExtra('enctype="multipart/form-data"'); |
|
| 98 | - // Form Text repoNodeid |
|
| 99 | - $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_NODEID, 'repo_nodeid', 50, 255, $this->getVar('repo_nodeid'))); |
|
| 81 | + /** |
|
| 82 | + * @public function getForm |
|
| 83 | + * @param bool $action |
|
| 84 | + * @return \XoopsThemeForm |
|
| 85 | + */ |
|
| 86 | + public function getFormRepositories($action = false) |
|
| 87 | + { |
|
| 88 | + $helper = \XoopsModules\Wggithub\Helper::getInstance(); |
|
| 89 | + if (!$action) { |
|
| 90 | + $action = $_SERVER['REQUEST_URI']; |
|
| 91 | + } |
|
| 92 | + // Title |
|
| 93 | + $title = $this->isNew() ? \sprintf(_AM_WGGITHUB_REPOSITORY_ADD) : \sprintf(_AM_WGGITHUB_REPOSITORY_EDIT); |
|
| 94 | + // Get Theme Form |
|
| 95 | + \xoops_load('XoopsFormLoader'); |
|
| 96 | + $form = new \XoopsThemeForm($title, 'form', $action, 'post', true); |
|
| 97 | + $form->setExtra('enctype="multipart/form-data"'); |
|
| 98 | + // Form Text repoNodeid |
|
| 99 | + $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_NODEID, 'repo_nodeid', 50, 255, $this->getVar('repo_nodeid'))); |
|
| 100 | 100 | // Form Text repoUser |
| 101 | 101 | $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_USER, 'repo_user', 50, 255, $this->getVar('repo_user')), true); |
| 102 | - // Form Text repoName |
|
| 103 | - $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_NAME, 'repo_name', 50, 255, $this->getVar('repo_name')), true); |
|
| 104 | - // Form Text repoFullname |
|
| 105 | - $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_FULLNAME, 'repo_fullname', 50, 255, $this->getVar('repo_fullname'))); |
|
| 106 | - // Form Text Date Select repoCreatedat |
|
| 107 | - $repoCreatedat = $this->isNew() ?: $this->getVar('repo_createdat'); |
|
| 108 | - $form->addElement(new \XoopsFormTextDateSelect(_AM_WGGITHUB_REPOSITORY_CREATEDAT, 'repo_createdat', '', $repoCreatedat)); |
|
| 109 | - // Form Text Date Select repoUpdatedat |
|
| 110 | - $repoUpdatedat = $this->isNew() ?: $this->getVar('repo_updatedat'); |
|
| 111 | - $form->addElement(new \XoopsFormTextDateSelect(_AM_WGGITHUB_REPOSITORY_UPDATEDAT, 'repo_updatedat', '', $repoUpdatedat)); |
|
| 112 | - // Form Text repoHtmlurl |
|
| 113 | - $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_HTMLURL, 'repo_htmlurl', 50, 255, $this->getVar('repo_htmlurl'))); |
|
| 102 | + // Form Text repoName |
|
| 103 | + $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_NAME, 'repo_name', 50, 255, $this->getVar('repo_name')), true); |
|
| 104 | + // Form Text repoFullname |
|
| 105 | + $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_FULLNAME, 'repo_fullname', 50, 255, $this->getVar('repo_fullname'))); |
|
| 106 | + // Form Text Date Select repoCreatedat |
|
| 107 | + $repoCreatedat = $this->isNew() ?: $this->getVar('repo_createdat'); |
|
| 108 | + $form->addElement(new \XoopsFormTextDateSelect(_AM_WGGITHUB_REPOSITORY_CREATEDAT, 'repo_createdat', '', $repoCreatedat)); |
|
| 109 | + // Form Text Date Select repoUpdatedat |
|
| 110 | + $repoUpdatedat = $this->isNew() ?: $this->getVar('repo_updatedat'); |
|
| 111 | + $form->addElement(new \XoopsFormTextDateSelect(_AM_WGGITHUB_REPOSITORY_UPDATEDAT, 'repo_updatedat', '', $repoUpdatedat)); |
|
| 112 | + // Form Text repoHtmlurl |
|
| 113 | + $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_HTMLURL, 'repo_htmlurl', 50, 255, $this->getVar('repo_htmlurl'))); |
|
| 114 | 114 | // Form Text repoReadme |
| 115 | 115 | $form->addElement(new \XoopsFormText(_AM_WGGITHUB_REPOSITORY_README, 'repo_readme', 50, 255, $this->getVar('repo_readme'))); |
| 116 | 116 | // Form Text repoPrerelease |
@@ -125,72 +125,72 @@ discard block |
||
| 125 | 125 | $repoStatusSelect->addOption(Constants::STATUS_UPDATED, _AM_WGGITHUB_STATUS_UPDATED); |
| 126 | 126 | $form->addElement($repoStatusSelect); |
| 127 | 127 | // Form Text Date Select repoDatecreated |
| 128 | - $repoDatecreated = $this->isNew() ?: $this->getVar('repo_datecreated'); |
|
| 129 | - $form->addElement(new \XoopsFormTextDateSelect(_AM_WGGITHUB_REPOSITORY_DATECREATED, 'repo_datecreated', '', $repoDatecreated)); |
|
| 130 | - // Form Select User repoSubmitter |
|
| 131 | - $form->addElement(new \XoopsFormSelectUser(_AM_WGGITHUB_REPOSITORY_SUBMITTER, 'repo_submitter', false, $this->getVar('repo_submitter'))); |
|
| 132 | - // To Save |
|
| 133 | - $form->addElement(new \XoopsFormHidden('op', 'save')); |
|
| 134 | - $form->addElement(new \XoopsFormButtonTray('', _SUBMIT, 'submit', '', false)); |
|
| 135 | - return $form; |
|
| 136 | - } |
|
| 128 | + $repoDatecreated = $this->isNew() ?: $this->getVar('repo_datecreated'); |
|
| 129 | + $form->addElement(new \XoopsFormTextDateSelect(_AM_WGGITHUB_REPOSITORY_DATECREATED, 'repo_datecreated', '', $repoDatecreated)); |
|
| 130 | + // Form Select User repoSubmitter |
|
| 131 | + $form->addElement(new \XoopsFormSelectUser(_AM_WGGITHUB_REPOSITORY_SUBMITTER, 'repo_submitter', false, $this->getVar('repo_submitter'))); |
|
| 132 | + // To Save |
|
| 133 | + $form->addElement(new \XoopsFormHidden('op', 'save')); |
|
| 134 | + $form->addElement(new \XoopsFormButtonTray('', _SUBMIT, 'submit', '', false)); |
|
| 135 | + return $form; |
|
| 136 | + } |
|
| 137 | 137 | |
| 138 | - /** |
|
| 139 | - * Get Values |
|
| 140 | - * @param null $keys |
|
| 141 | - * @param null $format |
|
| 142 | - * @param null $maxDepth |
|
| 143 | - * @return array |
|
| 144 | - */ |
|
| 145 | - public function getValuesRepositories($keys = null, $format = null, $maxDepth = null) |
|
| 146 | - { |
|
| 147 | - $ret = $this->getValues($keys, $format, $maxDepth); |
|
| 148 | - $ret['id'] = $this->getVar('repo_id'); |
|
| 149 | - $ret['nodeid'] = $this->getVar('repo_nodeid'); |
|
| 138 | + /** |
|
| 139 | + * Get Values |
|
| 140 | + * @param null $keys |
|
| 141 | + * @param null $format |
|
| 142 | + * @param null $maxDepth |
|
| 143 | + * @return array |
|
| 144 | + */ |
|
| 145 | + public function getValuesRepositories($keys = null, $format = null, $maxDepth = null) |
|
| 146 | + { |
|
| 147 | + $ret = $this->getValues($keys, $format, $maxDepth); |
|
| 148 | + $ret['id'] = $this->getVar('repo_id'); |
|
| 149 | + $ret['nodeid'] = $this->getVar('repo_nodeid'); |
|
| 150 | 150 | $ret['user'] = $this->getVar('repo_user'); |
| 151 | - $ret['name'] = $this->getVar('repo_name'); |
|
| 152 | - $ret['fullname'] = $this->getVar('repo_fullname'); |
|
| 153 | - $ret['createdat'] = \formatTimestamp($this->getVar('repo_createdat'), 'm'); |
|
| 154 | - $ret['updatedat'] = \formatTimestamp($this->getVar('repo_updatedat'), 'm'); |
|
| 155 | - $ret['htmlurl'] = $this->getVar('repo_htmlurl'); |
|
| 151 | + $ret['name'] = $this->getVar('repo_name'); |
|
| 152 | + $ret['fullname'] = $this->getVar('repo_fullname'); |
|
| 153 | + $ret['createdat'] = \formatTimestamp($this->getVar('repo_createdat'), 'm'); |
|
| 154 | + $ret['updatedat'] = \formatTimestamp($this->getVar('repo_updatedat'), 'm'); |
|
| 155 | + $ret['htmlurl'] = $this->getVar('repo_htmlurl'); |
|
| 156 | 156 | $ret['readme'] = $this->getVar('repo_readme'); |
| 157 | 157 | $ret['prerelease'] = $this->getVar('repo_prerelease'); |
| 158 | 158 | $ret['release'] = $this->getVar('repo_release'); |
| 159 | - $status = $this->getVar('repo_status'); |
|
| 160 | - $ret['status'] = $status; |
|
| 161 | - switch ($status) { |
|
| 162 | - case Constants::STATUS_NONE: |
|
| 163 | - default: |
|
| 164 | - $status_text = \_AM_WGGITHUB_STATUS_NONE; |
|
| 165 | - break; |
|
| 159 | + $status = $this->getVar('repo_status'); |
|
| 160 | + $ret['status'] = $status; |
|
| 161 | + switch ($status) { |
|
| 162 | + case Constants::STATUS_NONE: |
|
| 163 | + default: |
|
| 164 | + $status_text = \_AM_WGGITHUB_STATUS_NONE; |
|
| 165 | + break; |
|
| 166 | 166 | case Constants::STATUS_NEW: |
| 167 | 167 | $status_text = \_AM_WGGITHUB_STATUS_NEW; |
| 168 | 168 | break; |
| 169 | 169 | case Constants::STATUS_UPTODATE: |
| 170 | - $status_text = \_AM_WGGITHUB_STATUS_UPTODATE; |
|
| 171 | - break; |
|
| 172 | - case Constants::STATUS_UPDATED: |
|
| 173 | - $status_text = \_AM_WGGITHUB_STATUS_UPDATED; |
|
| 174 | - break; |
|
| 175 | - } |
|
| 176 | - $ret['status_text'] = $status_text; |
|
| 177 | - $ret['datecreated'] = \formatTimestamp($this->getVar('repo_datecreated'), 'm'); |
|
| 178 | - $ret['submitter'] = \XoopsUser::getUnameFromId($this->getVar('repo_submitter')); |
|
| 179 | - return $ret; |
|
| 180 | - } |
|
| 170 | + $status_text = \_AM_WGGITHUB_STATUS_UPTODATE; |
|
| 171 | + break; |
|
| 172 | + case Constants::STATUS_UPDATED: |
|
| 173 | + $status_text = \_AM_WGGITHUB_STATUS_UPDATED; |
|
| 174 | + break; |
|
| 175 | + } |
|
| 176 | + $ret['status_text'] = $status_text; |
|
| 177 | + $ret['datecreated'] = \formatTimestamp($this->getVar('repo_datecreated'), 'm'); |
|
| 178 | + $ret['submitter'] = \XoopsUser::getUnameFromId($this->getVar('repo_submitter')); |
|
| 179 | + return $ret; |
|
| 180 | + } |
|
| 181 | 181 | |
| 182 | - /** |
|
| 183 | - * Returns an array representation of the object |
|
| 184 | - * |
|
| 185 | - * @return array |
|
| 186 | - */ |
|
| 187 | - public function toArrayRepositories() |
|
| 188 | - { |
|
| 189 | - $ret = []; |
|
| 190 | - $vars = $this->getVars(); |
|
| 191 | - foreach (\array_keys($vars) as $var) { |
|
| 192 | - $ret[$var] = $this->getVar('"{$var}"'); |
|
| 193 | - } |
|
| 194 | - return $ret; |
|
| 195 | - } |
|
| 182 | + /** |
|
| 183 | + * Returns an array representation of the object |
|
| 184 | + * |
|
| 185 | + * @return array |
|
| 186 | + */ |
|
| 187 | + public function toArrayRepositories() |
|
| 188 | + { |
|
| 189 | + $ret = []; |
|
| 190 | + $vars = $this->getVars(); |
|
| 191 | + foreach (\array_keys($vars) as $var) { |
|
| 192 | + $ret[$var] = $this->getVar('"{$var}"'); |
|
| 193 | + } |
|
| 194 | + return $ret; |
|
| 195 | + } |
|
| 196 | 196 | } |
@@ -31,113 +31,113 @@ |
||
| 31 | 31 | // Request set_id |
| 32 | 32 | $setId = Request::getInt('set_id'); |
| 33 | 33 | switch ($op) { |
| 34 | - case 'list': |
|
| 35 | - default: |
|
| 36 | - // Define Stylesheet |
|
| 37 | - $GLOBALS['xoTheme']->addStylesheet($style, null); |
|
| 38 | - $start = Request::getInt('start', 0); |
|
| 39 | - $limit = Request::getInt('limit', $helper->getConfig('adminpager')); |
|
| 40 | - $templateMain = 'wggithub_admin_settings.tpl'; |
|
| 41 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('settings.php')); |
|
| 42 | - $adminObject->addItemButton(_AM_WGGITHUB_ADD_SETTING, 'settings.php?op=new', 'add'); |
|
| 43 | - $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 44 | - $settingsCount = $settingsHandler->getCountSettings(); |
|
| 45 | - $settingsAll = $settingsHandler->getAllSettings($start, $limit); |
|
| 46 | - $GLOBALS['xoopsTpl']->assign('settings_count', $settingsCount); |
|
| 47 | - $GLOBALS['xoopsTpl']->assign('wggithub_url', WGGITHUB_URL); |
|
| 48 | - $GLOBALS['xoopsTpl']->assign('wggithub_upload_url', WGGITHUB_UPLOAD_URL); |
|
| 49 | - // Table view settings |
|
| 50 | - if ($settingsCount > 0) { |
|
| 51 | - foreach (\array_keys($settingsAll) as $i) { |
|
| 52 | - $setting = $settingsAll[$i]->getValuesSettings(); |
|
| 53 | - $GLOBALS['xoopsTpl']->append('settings_list', $setting); |
|
| 54 | - unset($setting); |
|
| 55 | - } |
|
| 56 | - // Display Navigation |
|
| 57 | - if ($settingsCount > $limit) { |
|
| 58 | - include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; |
|
| 59 | - $pagenav = new \XoopsPageNav($settingsCount, $limit, $start, 'start', 'op=list&limit=' . $limit); |
|
| 60 | - $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(4)); |
|
| 61 | - } |
|
| 62 | - } else { |
|
| 63 | - $GLOBALS['xoopsTpl']->assign('error', _AM_WGGITHUB_THEREARENT_SETTINGS); |
|
| 64 | - } |
|
| 65 | - break; |
|
| 66 | - case 'new': |
|
| 67 | - $templateMain = 'wggithub_admin_settings.tpl'; |
|
| 68 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('settings.php')); |
|
| 69 | - $adminObject->addItemButton(_AM_WGGITHUB_SETTINGS_LIST, 'settings.php', 'list'); |
|
| 70 | - $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 71 | - // Form Create |
|
| 72 | - $settingsObj = $settingsHandler->create(); |
|
| 73 | - $form = $settingsObj->getFormSettings(); |
|
| 74 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 75 | - break; |
|
| 76 | - case 'save': |
|
| 77 | - // Security Check |
|
| 78 | - if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 79 | - \redirect_header('settings.php', 3, \implode(',', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 80 | - } |
|
| 81 | - if ($setId > 0) { |
|
| 82 | - $settingsObj = $settingsHandler->get($setId); |
|
| 83 | - } else { |
|
| 84 | - $settingsObj = $settingsHandler->create(); |
|
| 85 | - } |
|
| 86 | - // Set Vars |
|
| 87 | - $settingsObj->setVar('set_username', Request::getString('set_username', '')); |
|
| 88 | - $settingsObj->setVar('set_token', Request::getString('set_token', '')); |
|
| 89 | - $settingsObj->setVar('set_options', Request::getString('set_options', '')); |
|
| 90 | - $settingsObj->setVar('set_primary', Request::getInt('set_primary', 0)); |
|
| 91 | - $settingDateObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('set_date')); |
|
| 92 | - $settingsObj->setVar('set_date', $settingDateObj->getTimestamp()); |
|
| 93 | - $settingsObj->setVar('set_submitter', Request::getInt('set_submitter', 0)); |
|
| 94 | - // Insert Data |
|
| 95 | - if ($settingsHandler->insert($settingsObj)) { |
|
| 34 | + case 'list': |
|
| 35 | + default: |
|
| 36 | + // Define Stylesheet |
|
| 37 | + $GLOBALS['xoTheme']->addStylesheet($style, null); |
|
| 38 | + $start = Request::getInt('start', 0); |
|
| 39 | + $limit = Request::getInt('limit', $helper->getConfig('adminpager')); |
|
| 40 | + $templateMain = 'wggithub_admin_settings.tpl'; |
|
| 41 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('settings.php')); |
|
| 42 | + $adminObject->addItemButton(_AM_WGGITHUB_ADD_SETTING, 'settings.php?op=new', 'add'); |
|
| 43 | + $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 44 | + $settingsCount = $settingsHandler->getCountSettings(); |
|
| 45 | + $settingsAll = $settingsHandler->getAllSettings($start, $limit); |
|
| 46 | + $GLOBALS['xoopsTpl']->assign('settings_count', $settingsCount); |
|
| 47 | + $GLOBALS['xoopsTpl']->assign('wggithub_url', WGGITHUB_URL); |
|
| 48 | + $GLOBALS['xoopsTpl']->assign('wggithub_upload_url', WGGITHUB_UPLOAD_URL); |
|
| 49 | + // Table view settings |
|
| 50 | + if ($settingsCount > 0) { |
|
| 51 | + foreach (\array_keys($settingsAll) as $i) { |
|
| 52 | + $setting = $settingsAll[$i]->getValuesSettings(); |
|
| 53 | + $GLOBALS['xoopsTpl']->append('settings_list', $setting); |
|
| 54 | + unset($setting); |
|
| 55 | + } |
|
| 56 | + // Display Navigation |
|
| 57 | + if ($settingsCount > $limit) { |
|
| 58 | + include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; |
|
| 59 | + $pagenav = new \XoopsPageNav($settingsCount, $limit, $start, 'start', 'op=list&limit=' . $limit); |
|
| 60 | + $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(4)); |
|
| 61 | + } |
|
| 62 | + } else { |
|
| 63 | + $GLOBALS['xoopsTpl']->assign('error', _AM_WGGITHUB_THEREARENT_SETTINGS); |
|
| 64 | + } |
|
| 65 | + break; |
|
| 66 | + case 'new': |
|
| 67 | + $templateMain = 'wggithub_admin_settings.tpl'; |
|
| 68 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('settings.php')); |
|
| 69 | + $adminObject->addItemButton(_AM_WGGITHUB_SETTINGS_LIST, 'settings.php', 'list'); |
|
| 70 | + $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 71 | + // Form Create |
|
| 72 | + $settingsObj = $settingsHandler->create(); |
|
| 73 | + $form = $settingsObj->getFormSettings(); |
|
| 74 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 75 | + break; |
|
| 76 | + case 'save': |
|
| 77 | + // Security Check |
|
| 78 | + if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 79 | + \redirect_header('settings.php', 3, \implode(',', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 80 | + } |
|
| 81 | + if ($setId > 0) { |
|
| 82 | + $settingsObj = $settingsHandler->get($setId); |
|
| 83 | + } else { |
|
| 84 | + $settingsObj = $settingsHandler->create(); |
|
| 85 | + } |
|
| 86 | + // Set Vars |
|
| 87 | + $settingsObj->setVar('set_username', Request::getString('set_username', '')); |
|
| 88 | + $settingsObj->setVar('set_token', Request::getString('set_token', '')); |
|
| 89 | + $settingsObj->setVar('set_options', Request::getString('set_options', '')); |
|
| 90 | + $settingsObj->setVar('set_primary', Request::getInt('set_primary', 0)); |
|
| 91 | + $settingDateObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('set_date')); |
|
| 92 | + $settingsObj->setVar('set_date', $settingDateObj->getTimestamp()); |
|
| 93 | + $settingsObj->setVar('set_submitter', Request::getInt('set_submitter', 0)); |
|
| 94 | + // Insert Data |
|
| 95 | + if ($settingsHandler->insert($settingsObj)) { |
|
| 96 | 96 | if (Request::getInt('set_primary', 0) > 0) { |
| 97 | 97 | $newSetId = $settingsObj->getNewInsertedIdSettings(); |
| 98 | 98 | $setId = $setId > 0 ? $setId : $newSetId; |
| 99 | 99 | $settingsHandler->setPrimarySetting($setId); |
| 100 | 100 | } |
| 101 | - \redirect_header('settings.php?op=list', 2, _AM_WGGITHUB_FORM_OK); |
|
| 102 | - } |
|
| 103 | - // Get Form |
|
| 104 | - $GLOBALS['xoopsTpl']->assign('error', $settingsObj->getHtmlErrors()); |
|
| 105 | - $form = $settingsObj->getFormSettings(); |
|
| 106 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 107 | - break; |
|
| 108 | - case 'edit': |
|
| 109 | - $templateMain = 'wggithub_admin_settings.tpl'; |
|
| 110 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('settings.php')); |
|
| 111 | - $adminObject->addItemButton(_AM_WGGITHUB_ADD_SETTING, 'settings.php?op=new', 'add'); |
|
| 112 | - $adminObject->addItemButton(_AM_WGGITHUB_SETTINGS_LIST, 'settings.php', 'list'); |
|
| 113 | - $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 114 | - // Get Form |
|
| 115 | - $settingsObj = $settingsHandler->get($setId); |
|
| 116 | - $form = $settingsObj->getFormSettings(); |
|
| 117 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 118 | - break; |
|
| 119 | - case 'delete': |
|
| 120 | - $templateMain = 'wggithub_admin_settings.tpl'; |
|
| 121 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('settings.php')); |
|
| 122 | - $settingsObj = $settingsHandler->get($setId); |
|
| 123 | - $setToken = $settingsObj->getVar('set_token'); |
|
| 124 | - if (isset($_REQUEST['ok']) && 1 == $_REQUEST['ok']) { |
|
| 125 | - if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 126 | - \redirect_header('settings.php', 3, \implode(', ', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 127 | - } |
|
| 128 | - if ($settingsHandler->delete($settingsObj)) { |
|
| 129 | - \redirect_header('settings.php', 3, _AM_WGGITHUB_FORM_DELETE_OK); |
|
| 130 | - } else { |
|
| 131 | - $GLOBALS['xoopsTpl']->assign('error', $settingsObj->getHtmlErrors()); |
|
| 132 | - } |
|
| 133 | - } else { |
|
| 134 | - $xoopsconfirm = new Common\XoopsConfirm( |
|
| 135 | - ['ok' => 1, 'set_id' => $setId, 'op' => 'delete'], |
|
| 136 | - $_SERVER['REQUEST_URI'], |
|
| 137 | - \sprintf(_AM_WGGITHUB_FORM_SURE_DELETE, $settingsObj->getVar('set_token'))); |
|
| 138 | - $form = $xoopsconfirm->getFormXoopsConfirm(); |
|
| 139 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 140 | - } |
|
| 141 | - break; |
|
| 101 | + \redirect_header('settings.php?op=list', 2, _AM_WGGITHUB_FORM_OK); |
|
| 102 | + } |
|
| 103 | + // Get Form |
|
| 104 | + $GLOBALS['xoopsTpl']->assign('error', $settingsObj->getHtmlErrors()); |
|
| 105 | + $form = $settingsObj->getFormSettings(); |
|
| 106 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 107 | + break; |
|
| 108 | + case 'edit': |
|
| 109 | + $templateMain = 'wggithub_admin_settings.tpl'; |
|
| 110 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('settings.php')); |
|
| 111 | + $adminObject->addItemButton(_AM_WGGITHUB_ADD_SETTING, 'settings.php?op=new', 'add'); |
|
| 112 | + $adminObject->addItemButton(_AM_WGGITHUB_SETTINGS_LIST, 'settings.php', 'list'); |
|
| 113 | + $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 114 | + // Get Form |
|
| 115 | + $settingsObj = $settingsHandler->get($setId); |
|
| 116 | + $form = $settingsObj->getFormSettings(); |
|
| 117 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 118 | + break; |
|
| 119 | + case 'delete': |
|
| 120 | + $templateMain = 'wggithub_admin_settings.tpl'; |
|
| 121 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('settings.php')); |
|
| 122 | + $settingsObj = $settingsHandler->get($setId); |
|
| 123 | + $setToken = $settingsObj->getVar('set_token'); |
|
| 124 | + if (isset($_REQUEST['ok']) && 1 == $_REQUEST['ok']) { |
|
| 125 | + if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 126 | + \redirect_header('settings.php', 3, \implode(', ', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 127 | + } |
|
| 128 | + if ($settingsHandler->delete($settingsObj)) { |
|
| 129 | + \redirect_header('settings.php', 3, _AM_WGGITHUB_FORM_DELETE_OK); |
|
| 130 | + } else { |
|
| 131 | + $GLOBALS['xoopsTpl']->assign('error', $settingsObj->getHtmlErrors()); |
|
| 132 | + } |
|
| 133 | + } else { |
|
| 134 | + $xoopsconfirm = new Common\XoopsConfirm( |
|
| 135 | + ['ok' => 1, 'set_id' => $setId, 'op' => 'delete'], |
|
| 136 | + $_SERVER['REQUEST_URI'], |
|
| 137 | + \sprintf(_AM_WGGITHUB_FORM_SURE_DELETE, $settingsObj->getVar('set_token'))); |
|
| 138 | + $form = $xoopsconfirm->getFormXoopsConfirm(); |
|
| 139 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 140 | + } |
|
| 141 | + break; |
|
| 142 | 142 | } |
| 143 | 143 | require __DIR__ . '/footer.php'; |
@@ -31,96 +31,96 @@ |
||
| 31 | 31 | */ |
| 32 | 32 | class SettingsHandler extends \XoopsPersistableObjectHandler |
| 33 | 33 | { |
| 34 | - /** |
|
| 35 | - * Constructor |
|
| 36 | - * |
|
| 37 | - * @param \XoopsDatabase $db |
|
| 38 | - */ |
|
| 39 | - public function __construct(\XoopsDatabase $db) |
|
| 40 | - { |
|
| 41 | - parent::__construct($db, 'wggithub_settings', Settings::class, 'set_id', 'set_token'); |
|
| 42 | - } |
|
| 43 | - |
|
| 44 | - /** |
|
| 45 | - * @param bool $isNew |
|
| 46 | - * |
|
| 47 | - * @return object |
|
| 48 | - */ |
|
| 49 | - public function create($isNew = true) |
|
| 50 | - { |
|
| 51 | - return parent::create($isNew); |
|
| 52 | - } |
|
| 53 | - |
|
| 54 | - /** |
|
| 55 | - * retrieve a field |
|
| 56 | - * |
|
| 57 | - * @param int $i field id |
|
| 58 | - * @param null fields |
|
| 59 | - * @return mixed reference to the {@link Get} object |
|
| 60 | - */ |
|
| 61 | - public function get($i = null, $fields = null) |
|
| 62 | - { |
|
| 63 | - return parent::get($i, $fields); |
|
| 64 | - } |
|
| 65 | - |
|
| 66 | - /** |
|
| 67 | - * get inserted id |
|
| 68 | - * |
|
| 69 | - * @param null |
|
| 70 | - * @return int reference to the {@link Get} object |
|
| 71 | - */ |
|
| 72 | - public function getInsertId() |
|
| 73 | - { |
|
| 74 | - return $this->db->getInsertId(); |
|
| 75 | - } |
|
| 76 | - |
|
| 77 | - /** |
|
| 78 | - * Get Count Settings in the database |
|
| 79 | - * @param int $start |
|
| 80 | - * @param int $limit |
|
| 81 | - * @param string $sort |
|
| 82 | - * @param string $order |
|
| 83 | - * @return int |
|
| 84 | - */ |
|
| 85 | - public function getCountSettings($start = 0, $limit = 0, $sort = 'set_id ASC, set_token', $order = 'ASC') |
|
| 86 | - { |
|
| 87 | - $crCountSettings = new \CriteriaCompo(); |
|
| 88 | - $crCountSettings = $this->getSettingsCriteria($crCountSettings, $start, $limit, $sort, $order); |
|
| 89 | - return $this->getCount($crCountSettings); |
|
| 90 | - } |
|
| 91 | - |
|
| 92 | - /** |
|
| 93 | - * Get All Settings in the database |
|
| 94 | - * @param int $start |
|
| 95 | - * @param int $limit |
|
| 96 | - * @param string $sort |
|
| 97 | - * @param string $order |
|
| 98 | - * @return array |
|
| 99 | - */ |
|
| 100 | - public function getAllSettings($start = 0, $limit = 0, $sort = 'set_id ASC, set_token', $order = 'ASC') |
|
| 101 | - { |
|
| 102 | - $crAllSettings = new \CriteriaCompo(); |
|
| 103 | - $crAllSettings = $this->getSettingsCriteria($crAllSettings, $start, $limit, $sort, $order); |
|
| 104 | - return $this->getAll($crAllSettings); |
|
| 105 | - } |
|
| 106 | - |
|
| 107 | - /** |
|
| 108 | - * Get Criteria Settings |
|
| 109 | - * @param $crSettings |
|
| 110 | - * @param int $start |
|
| 111 | - * @param int $limit |
|
| 112 | - * @param string $sort |
|
| 113 | - * @param string $order |
|
| 114 | - * @return int |
|
| 115 | - */ |
|
| 116 | - private function getSettingsCriteria($crSettings, $start, $limit, $sort, $order) |
|
| 117 | - { |
|
| 118 | - $crSettings->setStart($start); |
|
| 119 | - $crSettings->setLimit($limit); |
|
| 120 | - $crSettings->setSort($sort); |
|
| 121 | - $crSettings->setOrder($order); |
|
| 122 | - return $crSettings; |
|
| 123 | - } |
|
| 34 | + /** |
|
| 35 | + * Constructor |
|
| 36 | + * |
|
| 37 | + * @param \XoopsDatabase $db |
|
| 38 | + */ |
|
| 39 | + public function __construct(\XoopsDatabase $db) |
|
| 40 | + { |
|
| 41 | + parent::__construct($db, 'wggithub_settings', Settings::class, 'set_id', 'set_token'); |
|
| 42 | + } |
|
| 43 | + |
|
| 44 | + /** |
|
| 45 | + * @param bool $isNew |
|
| 46 | + * |
|
| 47 | + * @return object |
|
| 48 | + */ |
|
| 49 | + public function create($isNew = true) |
|
| 50 | + { |
|
| 51 | + return parent::create($isNew); |
|
| 52 | + } |
|
| 53 | + |
|
| 54 | + /** |
|
| 55 | + * retrieve a field |
|
| 56 | + * |
|
| 57 | + * @param int $i field id |
|
| 58 | + * @param null fields |
|
| 59 | + * @return mixed reference to the {@link Get} object |
|
| 60 | + */ |
|
| 61 | + public function get($i = null, $fields = null) |
|
| 62 | + { |
|
| 63 | + return parent::get($i, $fields); |
|
| 64 | + } |
|
| 65 | + |
|
| 66 | + /** |
|
| 67 | + * get inserted id |
|
| 68 | + * |
|
| 69 | + * @param null |
|
| 70 | + * @return int reference to the {@link Get} object |
|
| 71 | + */ |
|
| 72 | + public function getInsertId() |
|
| 73 | + { |
|
| 74 | + return $this->db->getInsertId(); |
|
| 75 | + } |
|
| 76 | + |
|
| 77 | + /** |
|
| 78 | + * Get Count Settings in the database |
|
| 79 | + * @param int $start |
|
| 80 | + * @param int $limit |
|
| 81 | + * @param string $sort |
|
| 82 | + * @param string $order |
|
| 83 | + * @return int |
|
| 84 | + */ |
|
| 85 | + public function getCountSettings($start = 0, $limit = 0, $sort = 'set_id ASC, set_token', $order = 'ASC') |
|
| 86 | + { |
|
| 87 | + $crCountSettings = new \CriteriaCompo(); |
|
| 88 | + $crCountSettings = $this->getSettingsCriteria($crCountSettings, $start, $limit, $sort, $order); |
|
| 89 | + return $this->getCount($crCountSettings); |
|
| 90 | + } |
|
| 91 | + |
|
| 92 | + /** |
|
| 93 | + * Get All Settings in the database |
|
| 94 | + * @param int $start |
|
| 95 | + * @param int $limit |
|
| 96 | + * @param string $sort |
|
| 97 | + * @param string $order |
|
| 98 | + * @return array |
|
| 99 | + */ |
|
| 100 | + public function getAllSettings($start = 0, $limit = 0, $sort = 'set_id ASC, set_token', $order = 'ASC') |
|
| 101 | + { |
|
| 102 | + $crAllSettings = new \CriteriaCompo(); |
|
| 103 | + $crAllSettings = $this->getSettingsCriteria($crAllSettings, $start, $limit, $sort, $order); |
|
| 104 | + return $this->getAll($crAllSettings); |
|
| 105 | + } |
|
| 106 | + |
|
| 107 | + /** |
|
| 108 | + * Get Criteria Settings |
|
| 109 | + * @param $crSettings |
|
| 110 | + * @param int $start |
|
| 111 | + * @param int $limit |
|
| 112 | + * @param string $sort |
|
| 113 | + * @param string $order |
|
| 114 | + * @return int |
|
| 115 | + */ |
|
| 116 | + private function getSettingsCriteria($crSettings, $start, $limit, $sort, $order) |
|
| 117 | + { |
|
| 118 | + $crSettings->setStart($start); |
|
| 119 | + $crSettings->setLimit($limit); |
|
| 120 | + $crSettings->setSort($sort); |
|
| 121 | + $crSettings->setOrder($order); |
|
| 122 | + return $crSettings; |
|
| 123 | + } |
|
| 124 | 124 | |
| 125 | 125 | /** |
| 126 | 126 | * Get Primary Setting |
@@ -27,52 +27,52 @@ |
||
| 27 | 27 | $sysPathIcon32 = $moduleInfo->getInfo('sysicons32'); |
| 28 | 28 | |
| 29 | 29 | $adminmenu[] = [ |
| 30 | - 'title' => _MI_WGGITHUB_ADMENU1, |
|
| 31 | - 'link' => 'admin/index.php', |
|
| 32 | - 'icon' => $sysPathIcon32.'/dashboard.png', |
|
| 30 | + 'title' => _MI_WGGITHUB_ADMENU1, |
|
| 31 | + 'link' => 'admin/index.php', |
|
| 32 | + 'icon' => $sysPathIcon32.'/dashboard.png', |
|
| 33 | 33 | ]; |
| 34 | 34 | $adminmenu[] = [ |
| 35 | - 'title' => _MI_WGGITHUB_ADMENU2, |
|
| 36 | - 'link' => 'admin/settings.php', |
|
| 37 | - 'icon' => 'assets/icons/32/blank.gif', |
|
| 35 | + 'title' => _MI_WGGITHUB_ADMENU2, |
|
| 36 | + 'link' => 'admin/settings.php', |
|
| 37 | + 'icon' => 'assets/icons/32/blank.gif', |
|
| 38 | 38 | ]; |
| 39 | 39 | $adminmenu[] = [ |
| 40 | - 'title' => _MI_WGGITHUB_ADMENU3, |
|
| 41 | - 'link' => 'admin/directories.php', |
|
| 42 | - 'icon' => 'assets/icons/32/blank.gif', |
|
| 40 | + 'title' => _MI_WGGITHUB_ADMENU3, |
|
| 41 | + 'link' => 'admin/directories.php', |
|
| 42 | + 'icon' => 'assets/icons/32/blank.gif', |
|
| 43 | 43 | ]; |
| 44 | 44 | $adminmenu[] = [ |
| 45 | - 'title' => _MI_WGGITHUB_ADMENU4, |
|
| 46 | - 'link' => 'admin/logs.php', |
|
| 47 | - 'icon' => 'assets/icons/32/blank.gif', |
|
| 45 | + 'title' => _MI_WGGITHUB_ADMENU4, |
|
| 46 | + 'link' => 'admin/logs.php', |
|
| 47 | + 'icon' => 'assets/icons/32/blank.gif', |
|
| 48 | 48 | ]; |
| 49 | 49 | $adminmenu[] = [ |
| 50 | - 'title' => _MI_WGGITHUB_ADMENU5, |
|
| 51 | - 'link' => 'admin/repositories.php', |
|
| 52 | - 'icon' => 'assets/icons/32/blank.gif', |
|
| 50 | + 'title' => _MI_WGGITHUB_ADMENU5, |
|
| 51 | + 'link' => 'admin/repositories.php', |
|
| 52 | + 'icon' => 'assets/icons/32/blank.gif', |
|
| 53 | 53 | ]; |
| 54 | 54 | $adminmenu[] = [ |
| 55 | - 'title' => _MI_WGGITHUB_ADMENU6, |
|
| 56 | - 'link' => 'admin/readmes.php', |
|
| 57 | - 'icon' => 'assets/icons/32/addlink.png', |
|
| 55 | + 'title' => _MI_WGGITHUB_ADMENU6, |
|
| 56 | + 'link' => 'admin/readmes.php', |
|
| 57 | + 'icon' => 'assets/icons/32/addlink.png', |
|
| 58 | 58 | ]; |
| 59 | 59 | $adminmenu[] = [ |
| 60 | - 'title' => _MI_WGGITHUB_ADMENU7, |
|
| 61 | - 'link' => 'admin/releases.php', |
|
| 62 | - 'icon' => 'assets/icons/32/blank.gif', |
|
| 60 | + 'title' => _MI_WGGITHUB_ADMENU7, |
|
| 61 | + 'link' => 'admin/releases.php', |
|
| 62 | + 'icon' => 'assets/icons/32/blank.gif', |
|
| 63 | 63 | ]; |
| 64 | 64 | $adminmenu[] = [ |
| 65 | - 'title' => _MI_WGGITHUB_ADMENU8, |
|
| 66 | - 'link' => 'admin/permissions.php', |
|
| 67 | - 'icon' => $sysPathIcon32.'/permissions.png', |
|
| 65 | + 'title' => _MI_WGGITHUB_ADMENU8, |
|
| 66 | + 'link' => 'admin/permissions.php', |
|
| 67 | + 'icon' => $sysPathIcon32.'/permissions.png', |
|
| 68 | 68 | ]; |
| 69 | 69 | $adminmenu[] = [ |
| 70 | - 'title' => _MI_WGGITHUB_ADMENU9, |
|
| 71 | - 'link' => 'admin/feedback.php', |
|
| 72 | - 'icon' => $sysPathIcon32.'/mail_foward.png', |
|
| 70 | + 'title' => _MI_WGGITHUB_ADMENU9, |
|
| 71 | + 'link' => 'admin/feedback.php', |
|
| 72 | + 'icon' => $sysPathIcon32.'/mail_foward.png', |
|
| 73 | 73 | ]; |
| 74 | 74 | $adminmenu[] = [ |
| 75 | - 'title' => _MI_WGGITHUB_ABOUT, |
|
| 76 | - 'link' => 'admin/about.php', |
|
| 77 | - 'icon' => $sysPathIcon32.'/about.png', |
|
| 75 | + 'title' => _MI_WGGITHUB_ABOUT, |
|
| 76 | + 'link' => 'admin/about.php', |
|
| 77 | + 'icon' => $sysPathIcon32.'/about.png', |
|
| 78 | 78 | ]; |
@@ -31,107 +31,107 @@ |
||
| 31 | 31 | // Request log_id |
| 32 | 32 | $logId = Request::getInt('log_id'); |
| 33 | 33 | switch ($op) { |
| 34 | - case 'list': |
|
| 35 | - default: |
|
| 36 | - // Define Stylesheet |
|
| 37 | - $GLOBALS['xoTheme']->addStylesheet($style, null); |
|
| 38 | - $start = Request::getInt('start', 0); |
|
| 39 | - $limit = Request::getInt('limit', $helper->getConfig('adminpager')); |
|
| 40 | - $templateMain = 'wggithub_admin_logs.tpl'; |
|
| 41 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('logs.php')); |
|
| 42 | - $adminObject->addItemButton(_AM_WGGITHUB_ADD_LOG, 'logs.php?op=new', 'add'); |
|
| 43 | - $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 44 | - $logsCount = $logsHandler->getCountLogs(); |
|
| 45 | - $logsAll = $logsHandler->getAllLogs($start, $limit); |
|
| 46 | - $GLOBALS['xoopsTpl']->assign('logs_count', $logsCount); |
|
| 47 | - $GLOBALS['xoopsTpl']->assign('wggithub_url', WGGITHUB_URL); |
|
| 48 | - $GLOBALS['xoopsTpl']->assign('wggithub_upload_url', WGGITHUB_UPLOAD_URL); |
|
| 49 | - // Table view logs |
|
| 50 | - if ($logsCount > 0) { |
|
| 51 | - foreach (\array_keys($logsAll) as $i) { |
|
| 52 | - $log = $logsAll[$i]->getValuesLogs(); |
|
| 53 | - $GLOBALS['xoopsTpl']->append('logs_list', $log); |
|
| 54 | - unset($log); |
|
| 55 | - } |
|
| 56 | - // Display Navigation |
|
| 57 | - if ($logsCount > $limit) { |
|
| 58 | - include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; |
|
| 59 | - $pagenav = new \XoopsPageNav($logsCount, $limit, $start, 'start', 'op=list&limit=' . $limit); |
|
| 60 | - $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(4)); |
|
| 61 | - } |
|
| 62 | - } else { |
|
| 63 | - $GLOBALS['xoopsTpl']->assign('error', _AM_WGGITHUB_THEREARENT_LOGS); |
|
| 64 | - } |
|
| 65 | - break; |
|
| 66 | - case 'new': |
|
| 67 | - $templateMain = 'wggithub_admin_logs.tpl'; |
|
| 68 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('logs.php')); |
|
| 69 | - $adminObject->addItemButton(_AM_WGGITHUB_LOGS_LIST, 'logs.php', 'list'); |
|
| 70 | - $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 71 | - // Form Create |
|
| 72 | - $logsObj = $logsHandler->create(); |
|
| 73 | - $form = $logsObj->getFormLogs(); |
|
| 74 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 75 | - break; |
|
| 76 | - case 'save': |
|
| 77 | - // Security Check |
|
| 78 | - if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 79 | - \redirect_header('logs.php', 3, \implode(',', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 80 | - } |
|
| 81 | - if ($logId > 0) { |
|
| 82 | - $logsObj = $logsHandler->get($logId); |
|
| 83 | - } else { |
|
| 84 | - $logsObj = $logsHandler->create(); |
|
| 85 | - } |
|
| 86 | - // Set Vars |
|
| 34 | + case 'list': |
|
| 35 | + default: |
|
| 36 | + // Define Stylesheet |
|
| 37 | + $GLOBALS['xoTheme']->addStylesheet($style, null); |
|
| 38 | + $start = Request::getInt('start', 0); |
|
| 39 | + $limit = Request::getInt('limit', $helper->getConfig('adminpager')); |
|
| 40 | + $templateMain = 'wggithub_admin_logs.tpl'; |
|
| 41 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('logs.php')); |
|
| 42 | + $adminObject->addItemButton(_AM_WGGITHUB_ADD_LOG, 'logs.php?op=new', 'add'); |
|
| 43 | + $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 44 | + $logsCount = $logsHandler->getCountLogs(); |
|
| 45 | + $logsAll = $logsHandler->getAllLogs($start, $limit); |
|
| 46 | + $GLOBALS['xoopsTpl']->assign('logs_count', $logsCount); |
|
| 47 | + $GLOBALS['xoopsTpl']->assign('wggithub_url', WGGITHUB_URL); |
|
| 48 | + $GLOBALS['xoopsTpl']->assign('wggithub_upload_url', WGGITHUB_UPLOAD_URL); |
|
| 49 | + // Table view logs |
|
| 50 | + if ($logsCount > 0) { |
|
| 51 | + foreach (\array_keys($logsAll) as $i) { |
|
| 52 | + $log = $logsAll[$i]->getValuesLogs(); |
|
| 53 | + $GLOBALS['xoopsTpl']->append('logs_list', $log); |
|
| 54 | + unset($log); |
|
| 55 | + } |
|
| 56 | + // Display Navigation |
|
| 57 | + if ($logsCount > $limit) { |
|
| 58 | + include_once XOOPS_ROOT_PATH . '/class/pagenav.php'; |
|
| 59 | + $pagenav = new \XoopsPageNav($logsCount, $limit, $start, 'start', 'op=list&limit=' . $limit); |
|
| 60 | + $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(4)); |
|
| 61 | + } |
|
| 62 | + } else { |
|
| 63 | + $GLOBALS['xoopsTpl']->assign('error', _AM_WGGITHUB_THEREARENT_LOGS); |
|
| 64 | + } |
|
| 65 | + break; |
|
| 66 | + case 'new': |
|
| 67 | + $templateMain = 'wggithub_admin_logs.tpl'; |
|
| 68 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('logs.php')); |
|
| 69 | + $adminObject->addItemButton(_AM_WGGITHUB_LOGS_LIST, 'logs.php', 'list'); |
|
| 70 | + $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 71 | + // Form Create |
|
| 72 | + $logsObj = $logsHandler->create(); |
|
| 73 | + $form = $logsObj->getFormLogs(); |
|
| 74 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 75 | + break; |
|
| 76 | + case 'save': |
|
| 77 | + // Security Check |
|
| 78 | + if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 79 | + \redirect_header('logs.php', 3, \implode(',', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 80 | + } |
|
| 81 | + if ($logId > 0) { |
|
| 82 | + $logsObj = $logsHandler->get($logId); |
|
| 83 | + } else { |
|
| 84 | + $logsObj = $logsHandler->create(); |
|
| 85 | + } |
|
| 86 | + // Set Vars |
|
| 87 | 87 | $logsObj->setVar('log_type', Request::getInt('log_type', 0)); |
| 88 | - $logsObj->setVar('log_details', Request::getString('log_details', '')); |
|
| 89 | - $logsObj->setVar('log_result', Request::getString('log_result', '')); |
|
| 90 | - $logDatecreatedObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('log_datecreated')); |
|
| 91 | - $logsObj->setVar('log_datecreated', $logDatecreatedObj->getTimestamp()); |
|
| 92 | - $logsObj->setVar('log_submitter', Request::getInt('log_submitter', 0)); |
|
| 93 | - // Insert Data |
|
| 94 | - if ($logsHandler->insert($logsObj)) { |
|
| 95 | - \redirect_header('logs.php?op=list', 2, _AM_WGGITHUB_FORM_OK); |
|
| 96 | - } |
|
| 97 | - // Get Form |
|
| 98 | - $GLOBALS['xoopsTpl']->assign('error', $logsObj->getHtmlErrors()); |
|
| 99 | - $form = $logsObj->getFormLogs(); |
|
| 100 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 101 | - break; |
|
| 102 | - case 'edit': |
|
| 103 | - $templateMain = 'wggithub_admin_logs.tpl'; |
|
| 104 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('logs.php')); |
|
| 105 | - $adminObject->addItemButton(_AM_WGGITHUB_ADD_LOG, 'logs.php?op=new', 'add'); |
|
| 106 | - $adminObject->addItemButton(_AM_WGGITHUB_LOGS_LIST, 'logs.php', 'list'); |
|
| 107 | - $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 108 | - // Get Form |
|
| 109 | - $logsObj = $logsHandler->get($logId); |
|
| 110 | - $form = $logsObj->getFormLogs(); |
|
| 111 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 112 | - break; |
|
| 113 | - case 'delete': |
|
| 114 | - $templateMain = 'wggithub_admin_logs.tpl'; |
|
| 115 | - $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('logs.php')); |
|
| 116 | - $logsObj = $logsHandler->get($logId); |
|
| 117 | - $reqRequest = $logsObj->getVar('log_details'); |
|
| 118 | - if (isset($_REQUEST['ok']) && 1 == $_REQUEST['ok']) { |
|
| 119 | - if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 120 | - \redirect_header('logs.php', 3, \implode(', ', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 121 | - } |
|
| 122 | - if ($logsHandler->delete($logsObj)) { |
|
| 123 | - \redirect_header('logs.php', 3, _AM_WGGITHUB_FORM_DELETE_OK); |
|
| 124 | - } else { |
|
| 125 | - $GLOBALS['xoopsTpl']->assign('error', $logsObj->getHtmlErrors()); |
|
| 126 | - } |
|
| 127 | - } else { |
|
| 128 | - $xoopsconfirm = new Common\XoopsConfirm( |
|
| 129 | - ['ok' => 1, 'log_id' => $logId, 'op' => 'delete'], |
|
| 130 | - $_SERVER['REQUEST_URI'], |
|
| 131 | - \sprintf(_AM_WGGITHUB_FORM_SURE_DELETE, $logsObj->getVar('log_details'))); |
|
| 132 | - $form = $xoopsconfirm->getFormXoopsConfirm(); |
|
| 133 | - $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 134 | - } |
|
| 135 | - break; |
|
| 88 | + $logsObj->setVar('log_details', Request::getString('log_details', '')); |
|
| 89 | + $logsObj->setVar('log_result', Request::getString('log_result', '')); |
|
| 90 | + $logDatecreatedObj = \DateTime::createFromFormat(_SHORTDATESTRING, Request::getString('log_datecreated')); |
|
| 91 | + $logsObj->setVar('log_datecreated', $logDatecreatedObj->getTimestamp()); |
|
| 92 | + $logsObj->setVar('log_submitter', Request::getInt('log_submitter', 0)); |
|
| 93 | + // Insert Data |
|
| 94 | + if ($logsHandler->insert($logsObj)) { |
|
| 95 | + \redirect_header('logs.php?op=list', 2, _AM_WGGITHUB_FORM_OK); |
|
| 96 | + } |
|
| 97 | + // Get Form |
|
| 98 | + $GLOBALS['xoopsTpl']->assign('error', $logsObj->getHtmlErrors()); |
|
| 99 | + $form = $logsObj->getFormLogs(); |
|
| 100 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 101 | + break; |
|
| 102 | + case 'edit': |
|
| 103 | + $templateMain = 'wggithub_admin_logs.tpl'; |
|
| 104 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('logs.php')); |
|
| 105 | + $adminObject->addItemButton(_AM_WGGITHUB_ADD_LOG, 'logs.php?op=new', 'add'); |
|
| 106 | + $adminObject->addItemButton(_AM_WGGITHUB_LOGS_LIST, 'logs.php', 'list'); |
|
| 107 | + $GLOBALS['xoopsTpl']->assign('buttons', $adminObject->displayButton('left')); |
|
| 108 | + // Get Form |
|
| 109 | + $logsObj = $logsHandler->get($logId); |
|
| 110 | + $form = $logsObj->getFormLogs(); |
|
| 111 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 112 | + break; |
|
| 113 | + case 'delete': |
|
| 114 | + $templateMain = 'wggithub_admin_logs.tpl'; |
|
| 115 | + $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('logs.php')); |
|
| 116 | + $logsObj = $logsHandler->get($logId); |
|
| 117 | + $reqRequest = $logsObj->getVar('log_details'); |
|
| 118 | + if (isset($_REQUEST['ok']) && 1 == $_REQUEST['ok']) { |
|
| 119 | + if (!$GLOBALS['xoopsSecurity']->check()) { |
|
| 120 | + \redirect_header('logs.php', 3, \implode(', ', $GLOBALS['xoopsSecurity']->getErrors())); |
|
| 121 | + } |
|
| 122 | + if ($logsHandler->delete($logsObj)) { |
|
| 123 | + \redirect_header('logs.php', 3, _AM_WGGITHUB_FORM_DELETE_OK); |
|
| 124 | + } else { |
|
| 125 | + $GLOBALS['xoopsTpl']->assign('error', $logsObj->getHtmlErrors()); |
|
| 126 | + } |
|
| 127 | + } else { |
|
| 128 | + $xoopsconfirm = new Common\XoopsConfirm( |
|
| 129 | + ['ok' => 1, 'log_id' => $logId, 'op' => 'delete'], |
|
| 130 | + $_SERVER['REQUEST_URI'], |
|
| 131 | + \sprintf(_AM_WGGITHUB_FORM_SURE_DELETE, $logsObj->getVar('log_details'))); |
|
| 132 | + $form = $xoopsconfirm->getFormXoopsConfirm(); |
|
| 133 | + $GLOBALS['xoopsTpl']->assign('form', $form->render()); |
|
| 134 | + } |
|
| 135 | + break; |
|
| 136 | 136 | } |
| 137 | 137 | require __DIR__ . '/footer.php'; |
@@ -25,208 +25,208 @@ discard block |
||
| 25 | 25 | $moduleDirNameUpper = \mb_strtoupper($moduleDirName); |
| 26 | 26 | // ------------------- Informations ------------------- // |
| 27 | 27 | $modversion = [ |
| 28 | - 'name' => _MI_WGGITHUB_NAME, |
|
| 29 | - 'version' => 1.01, |
|
| 30 | - 'description' => _MI_WGGITHUB_DESC, |
|
| 31 | - 'author' => 'Goffy - XOOPS Development Team', |
|
| 32 | - 'author_mail' => '[email protected]', |
|
| 33 | - 'author_website_url' => 'https://wedega.com', |
|
| 34 | - 'author_website_name' => 'XOOPS on Wedega', |
|
| 35 | - 'credits' => 'Goffy - XOOPS Development Team', |
|
| 36 | - 'license' => 'GPL 2.0 or later', |
|
| 37 | - 'license_url' => 'http://www.gnu.org/licenses/gpl-3.0.en.html', |
|
| 38 | - 'help' => 'page=help', |
|
| 39 | - 'release_info' => 'release_info', |
|
| 40 | - 'release_file' => XOOPS_URL . '/modules/wggithub/docs/release_info file', |
|
| 41 | - 'release_date' => '2020/11/21', |
|
| 42 | - 'manual' => 'link to manual file', |
|
| 43 | - 'manual_file' => XOOPS_URL . '/modules/wggithub/docs/install.txt', |
|
| 44 | - 'min_php' => '7.2', |
|
| 45 | - 'min_xoops' => '2.5.10', |
|
| 46 | - 'min_admin' => '1.2', |
|
| 47 | - 'min_db' => ['mysql' => '5.6', 'mysqli' => '5.6'], |
|
| 48 | - 'image' => 'assets/images/logoModule.png', |
|
| 49 | - 'dirname' => \basename(__DIR__), |
|
| 50 | - 'dirmoduleadmin' => 'Frameworks/moduleclasses/moduleadmin', |
|
| 51 | - 'sysicons16' => '../../Frameworks/moduleclasses/icons/16', |
|
| 52 | - 'sysicons32' => '../../Frameworks/moduleclasses/icons/32', |
|
| 53 | - 'modicons16' => 'assets/icons/16', |
|
| 54 | - 'modicons32' => 'assets/icons/32', |
|
| 55 | - 'demo_site_url' => 'https://xoops.org', |
|
| 56 | - 'demo_site_name' => 'XOOPS Demo Site', |
|
| 57 | - 'support_url' => 'https://xoops.org/modules/newbb', |
|
| 58 | - 'support_name' => 'Support Forum', |
|
| 59 | - 'module_website_url' => 'www.xoops.org', |
|
| 60 | - 'module_website_name' => 'XOOPS Project', |
|
| 61 | - 'release' => '2017-12-02', |
|
| 62 | - 'module_status' => 'Beta 1', |
|
| 63 | - 'system_menu' => 1, |
|
| 64 | - 'hasAdmin' => 1, |
|
| 65 | - 'hasMain' => 1, |
|
| 66 | - 'adminindex' => 'admin/index.php', |
|
| 67 | - 'adminmenu' => 'admin/menu.php', |
|
| 68 | - 'onInstall' => 'include/install.php', |
|
| 69 | - 'onUninstall' => 'include/uninstall.php', |
|
| 70 | - 'onUpdate' => 'include/update.php', |
|
| 28 | + 'name' => _MI_WGGITHUB_NAME, |
|
| 29 | + 'version' => 1.01, |
|
| 30 | + 'description' => _MI_WGGITHUB_DESC, |
|
| 31 | + 'author' => 'Goffy - XOOPS Development Team', |
|
| 32 | + 'author_mail' => '[email protected]', |
|
| 33 | + 'author_website_url' => 'https://wedega.com', |
|
| 34 | + 'author_website_name' => 'XOOPS on Wedega', |
|
| 35 | + 'credits' => 'Goffy - XOOPS Development Team', |
|
| 36 | + 'license' => 'GPL 2.0 or later', |
|
| 37 | + 'license_url' => 'http://www.gnu.org/licenses/gpl-3.0.en.html', |
|
| 38 | + 'help' => 'page=help', |
|
| 39 | + 'release_info' => 'release_info', |
|
| 40 | + 'release_file' => XOOPS_URL . '/modules/wggithub/docs/release_info file', |
|
| 41 | + 'release_date' => '2020/11/21', |
|
| 42 | + 'manual' => 'link to manual file', |
|
| 43 | + 'manual_file' => XOOPS_URL . '/modules/wggithub/docs/install.txt', |
|
| 44 | + 'min_php' => '7.2', |
|
| 45 | + 'min_xoops' => '2.5.10', |
|
| 46 | + 'min_admin' => '1.2', |
|
| 47 | + 'min_db' => ['mysql' => '5.6', 'mysqli' => '5.6'], |
|
| 48 | + 'image' => 'assets/images/logoModule.png', |
|
| 49 | + 'dirname' => \basename(__DIR__), |
|
| 50 | + 'dirmoduleadmin' => 'Frameworks/moduleclasses/moduleadmin', |
|
| 51 | + 'sysicons16' => '../../Frameworks/moduleclasses/icons/16', |
|
| 52 | + 'sysicons32' => '../../Frameworks/moduleclasses/icons/32', |
|
| 53 | + 'modicons16' => 'assets/icons/16', |
|
| 54 | + 'modicons32' => 'assets/icons/32', |
|
| 55 | + 'demo_site_url' => 'https://xoops.org', |
|
| 56 | + 'demo_site_name' => 'XOOPS Demo Site', |
|
| 57 | + 'support_url' => 'https://xoops.org/modules/newbb', |
|
| 58 | + 'support_name' => 'Support Forum', |
|
| 59 | + 'module_website_url' => 'www.xoops.org', |
|
| 60 | + 'module_website_name' => 'XOOPS Project', |
|
| 61 | + 'release' => '2017-12-02', |
|
| 62 | + 'module_status' => 'Beta 1', |
|
| 63 | + 'system_menu' => 1, |
|
| 64 | + 'hasAdmin' => 1, |
|
| 65 | + 'hasMain' => 1, |
|
| 66 | + 'adminindex' => 'admin/index.php', |
|
| 67 | + 'adminmenu' => 'admin/menu.php', |
|
| 68 | + 'onInstall' => 'include/install.php', |
|
| 69 | + 'onUninstall' => 'include/uninstall.php', |
|
| 70 | + 'onUpdate' => 'include/update.php', |
|
| 71 | 71 | ]; |
| 72 | 72 | // ------------------- Templates ------------------- // |
| 73 | 73 | $modversion['templates'] = [ |
| 74 | - // Admin templates |
|
| 75 | - ['file' => 'wggithub_admin_about.tpl', 'description' => '', 'type' => 'admin'], |
|
| 76 | - ['file' => 'wggithub_admin_header.tpl', 'description' => '', 'type' => 'admin'], |
|
| 77 | - ['file' => 'wggithub_admin_index.tpl', 'description' => '', 'type' => 'admin'], |
|
| 78 | - ['file' => 'wggithub_admin_settings.tpl', 'description' => '', 'type' => 'admin'], |
|
| 79 | - ['file' => 'wggithub_admin_repositories.tpl', 'description' => '', 'type' => 'admin'], |
|
| 80 | - ['file' => 'wggithub_admin_directories.tpl', 'description' => '', 'type' => 'admin'], |
|
| 81 | - ['file' => 'wggithub_admin_logs.tpl', 'description' => '', 'type' => 'admin'], |
|
| 82 | - ['file' => 'wggithub_admin_readmes.tpl', 'description' => '', 'type' => 'admin'], |
|
| 74 | + // Admin templates |
|
| 75 | + ['file' => 'wggithub_admin_about.tpl', 'description' => '', 'type' => 'admin'], |
|
| 76 | + ['file' => 'wggithub_admin_header.tpl', 'description' => '', 'type' => 'admin'], |
|
| 77 | + ['file' => 'wggithub_admin_index.tpl', 'description' => '', 'type' => 'admin'], |
|
| 78 | + ['file' => 'wggithub_admin_settings.tpl', 'description' => '', 'type' => 'admin'], |
|
| 79 | + ['file' => 'wggithub_admin_repositories.tpl', 'description' => '', 'type' => 'admin'], |
|
| 80 | + ['file' => 'wggithub_admin_directories.tpl', 'description' => '', 'type' => 'admin'], |
|
| 81 | + ['file' => 'wggithub_admin_logs.tpl', 'description' => '', 'type' => 'admin'], |
|
| 82 | + ['file' => 'wggithub_admin_readmes.tpl', 'description' => '', 'type' => 'admin'], |
|
| 83 | 83 | ['file' => 'wggithub_admin_releases.tpl', 'description' => '', 'type' => 'admin'], |
| 84 | - ['file' => 'wggithub_admin_permissions.tpl', 'description' => '', 'type' => 'admin'], |
|
| 85 | - ['file' => 'wggithub_admin_footer.tpl', 'description' => '', 'type' => 'admin'], |
|
| 86 | - // User templates |
|
| 87 | - ['file' => 'wggithub_header.tpl', 'description' => ''], |
|
| 88 | - ['file' => 'wggithub_index.tpl', 'description' => ''], |
|
| 89 | - ['file' => 'wggithub_repositories.tpl', 'description' => ''], |
|
| 90 | - ['file' => 'wggithub_repositories_list.tpl', 'description' => ''], |
|
| 91 | - ['file' => 'wggithub_repositories_item.tpl', 'description' => ''], |
|
| 92 | - ['file' => 'wggithub_directories.tpl', 'description' => ''], |
|
| 93 | - ['file' => 'wggithub_directories_list.tpl', 'description' => ''], |
|
| 94 | - ['file' => 'wggithub_directories_item.tpl', 'description' => ''], |
|
| 95 | - ['file' => 'wggithub_readmes.tpl', 'description' => ''], |
|
| 96 | - ['file' => 'wggithub_readmes_list.tpl', 'description' => ''], |
|
| 97 | - ['file' => 'wggithub_readmes_item.tpl', 'description' => ''], |
|
| 98 | - ['file' => 'wggithub_breadcrumbs.tpl', 'description' => ''], |
|
| 99 | - ['file' => 'wggithub_search.tpl', 'description' => ''], |
|
| 100 | - ['file' => 'wggithub_footer.tpl', 'description' => ''], |
|
| 84 | + ['file' => 'wggithub_admin_permissions.tpl', 'description' => '', 'type' => 'admin'], |
|
| 85 | + ['file' => 'wggithub_admin_footer.tpl', 'description' => '', 'type' => 'admin'], |
|
| 86 | + // User templates |
|
| 87 | + ['file' => 'wggithub_header.tpl', 'description' => ''], |
|
| 88 | + ['file' => 'wggithub_index.tpl', 'description' => ''], |
|
| 89 | + ['file' => 'wggithub_repositories.tpl', 'description' => ''], |
|
| 90 | + ['file' => 'wggithub_repositories_list.tpl', 'description' => ''], |
|
| 91 | + ['file' => 'wggithub_repositories_item.tpl', 'description' => ''], |
|
| 92 | + ['file' => 'wggithub_directories.tpl', 'description' => ''], |
|
| 93 | + ['file' => 'wggithub_directories_list.tpl', 'description' => ''], |
|
| 94 | + ['file' => 'wggithub_directories_item.tpl', 'description' => ''], |
|
| 95 | + ['file' => 'wggithub_readmes.tpl', 'description' => ''], |
|
| 96 | + ['file' => 'wggithub_readmes_list.tpl', 'description' => ''], |
|
| 97 | + ['file' => 'wggithub_readmes_item.tpl', 'description' => ''], |
|
| 98 | + ['file' => 'wggithub_breadcrumbs.tpl', 'description' => ''], |
|
| 99 | + ['file' => 'wggithub_search.tpl', 'description' => ''], |
|
| 100 | + ['file' => 'wggithub_footer.tpl', 'description' => ''], |
|
| 101 | 101 | ]; |
| 102 | 102 | // ------------------- Mysql ------------------- // |
| 103 | 103 | $modversion['sqlfile']['mysql'] = 'sql/mysql.sql'; |
| 104 | 104 | // Tables |
| 105 | 105 | $modversion['tables'] = [ |
| 106 | - 'wggithub_settings', |
|
| 107 | - 'wggithub_repositories', |
|
| 108 | - 'wggithub_directories', |
|
| 109 | - 'wggithub_logs', |
|
| 110 | - 'wggithub_readmes', |
|
| 106 | + 'wggithub_settings', |
|
| 107 | + 'wggithub_repositories', |
|
| 108 | + 'wggithub_directories', |
|
| 109 | + 'wggithub_logs', |
|
| 110 | + 'wggithub_readmes', |
|
| 111 | 111 | 'wggithub_releases', |
| 112 | 112 | ]; |
| 113 | 113 | // ------------------- Search ------------------- // |
| 114 | 114 | $modversion['hasSearch'] = 1; |
| 115 | 115 | $modversion['search'] = [ |
| 116 | - 'file' => 'include/search.inc.php', |
|
| 117 | - 'func' => 'wggithub_search', |
|
| 116 | + 'file' => 'include/search.inc.php', |
|
| 117 | + 'func' => 'wggithub_search', |
|
| 118 | 118 | ]; |
| 119 | 119 | // ------------------- Blocks ------------------- // |
| 120 | 120 | // Repositories last |
| 121 | 121 | $modversion['blocks'][] = [ |
| 122 | - 'file' => 'repositories.php', |
|
| 123 | - 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_LAST, |
|
| 124 | - 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_LAST_DESC, |
|
| 125 | - 'show_func' => 'b_wggithub_repositories_show', |
|
| 126 | - 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 127 | - 'template' => 'wggithub_block_repositories.tpl', |
|
| 128 | - 'options' => 'last|5|25|0', |
|
| 122 | + 'file' => 'repositories.php', |
|
| 123 | + 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_LAST, |
|
| 124 | + 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_LAST_DESC, |
|
| 125 | + 'show_func' => 'b_wggithub_repositories_show', |
|
| 126 | + 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 127 | + 'template' => 'wggithub_block_repositories.tpl', |
|
| 128 | + 'options' => 'last|5|25|0', |
|
| 129 | 129 | ]; |
| 130 | 130 | // Repositories new |
| 131 | 131 | $modversion['blocks'][] = [ |
| 132 | - 'file' => 'repositories.php', |
|
| 133 | - 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_NEW, |
|
| 134 | - 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_NEW_DESC, |
|
| 135 | - 'show_func' => 'b_wggithub_repositories_show', |
|
| 136 | - 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 137 | - 'template' => 'wggithub_block_repositories.tpl', |
|
| 138 | - 'options' => 'new|5|25|0', |
|
| 132 | + 'file' => 'repositories.php', |
|
| 133 | + 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_NEW, |
|
| 134 | + 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_NEW_DESC, |
|
| 135 | + 'show_func' => 'b_wggithub_repositories_show', |
|
| 136 | + 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 137 | + 'template' => 'wggithub_block_repositories.tpl', |
|
| 138 | + 'options' => 'new|5|25|0', |
|
| 139 | 139 | ]; |
| 140 | 140 | // Repositories hits |
| 141 | 141 | $modversion['blocks'][] = [ |
| 142 | - 'file' => 'repositories.php', |
|
| 143 | - 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_HITS, |
|
| 144 | - 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_HITS_DESC, |
|
| 145 | - 'show_func' => 'b_wggithub_repositories_show', |
|
| 146 | - 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 147 | - 'template' => 'wggithub_block_repositories.tpl', |
|
| 148 | - 'options' => 'hits|5|25|0', |
|
| 142 | + 'file' => 'repositories.php', |
|
| 143 | + 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_HITS, |
|
| 144 | + 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_HITS_DESC, |
|
| 145 | + 'show_func' => 'b_wggithub_repositories_show', |
|
| 146 | + 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 147 | + 'template' => 'wggithub_block_repositories.tpl', |
|
| 148 | + 'options' => 'hits|5|25|0', |
|
| 149 | 149 | ]; |
| 150 | 150 | // Repositories top |
| 151 | 151 | $modversion['blocks'][] = [ |
| 152 | - 'file' => 'repositories.php', |
|
| 153 | - 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_TOP, |
|
| 154 | - 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_TOP_DESC, |
|
| 155 | - 'show_func' => 'b_wggithub_repositories_show', |
|
| 156 | - 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 157 | - 'template' => 'wggithub_block_repositories.tpl', |
|
| 158 | - 'options' => 'top|5|25|0', |
|
| 152 | + 'file' => 'repositories.php', |
|
| 153 | + 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_TOP, |
|
| 154 | + 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_TOP_DESC, |
|
| 155 | + 'show_func' => 'b_wggithub_repositories_show', |
|
| 156 | + 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 157 | + 'template' => 'wggithub_block_repositories.tpl', |
|
| 158 | + 'options' => 'top|5|25|0', |
|
| 159 | 159 | ]; |
| 160 | 160 | // Repositories random |
| 161 | 161 | $modversion['blocks'][] = [ |
| 162 | - 'file' => 'repositories.php', |
|
| 163 | - 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_RANDOM, |
|
| 164 | - 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_RANDOM_DESC, |
|
| 165 | - 'show_func' => 'b_wggithub_repositories_show', |
|
| 166 | - 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 167 | - 'template' => 'wggithub_block_repositories.tpl', |
|
| 168 | - 'options' => 'random|5|25|0', |
|
| 162 | + 'file' => 'repositories.php', |
|
| 163 | + 'name' => _MI_WGGITHUB_REPOSITORIES_BLOCK_RANDOM, |
|
| 164 | + 'description' => _MI_WGGITHUB_REPOSITORIES_BLOCK_RANDOM_DESC, |
|
| 165 | + 'show_func' => 'b_wggithub_repositories_show', |
|
| 166 | + 'edit_func' => 'b_wggithub_repositories_edit', |
|
| 167 | + 'template' => 'wggithub_block_repositories.tpl', |
|
| 168 | + 'options' => 'random|5|25|0', |
|
| 169 | 169 | ]; |
| 170 | 170 | // ------------------- Config ------------------- // |
| 171 | 171 | // Editor Admin |
| 172 | 172 | \xoops_load('xoopseditorhandler'); |
| 173 | 173 | $editorHandler = XoopsEditorHandler::getInstance(); |
| 174 | 174 | $modversion['config'][] = [ |
| 175 | - 'name' => 'editor_admin', |
|
| 176 | - 'title' => '_MI_WGGITHUB_EDITOR_ADMIN', |
|
| 177 | - 'description' => '_MI_WGGITHUB_EDITOR_ADMIN_DESC', |
|
| 178 | - 'formtype' => 'select', |
|
| 179 | - 'valuetype' => 'text', |
|
| 180 | - 'default' => 'dhtml', |
|
| 181 | - 'options' => array_flip($editorHandler->getList()), |
|
| 175 | + 'name' => 'editor_admin', |
|
| 176 | + 'title' => '_MI_WGGITHUB_EDITOR_ADMIN', |
|
| 177 | + 'description' => '_MI_WGGITHUB_EDITOR_ADMIN_DESC', |
|
| 178 | + 'formtype' => 'select', |
|
| 179 | + 'valuetype' => 'text', |
|
| 180 | + 'default' => 'dhtml', |
|
| 181 | + 'options' => array_flip($editorHandler->getList()), |
|
| 182 | 182 | ]; |
| 183 | 183 | // Editor User |
| 184 | 184 | \xoops_load('xoopseditorhandler'); |
| 185 | 185 | $editorHandler = XoopsEditorHandler::getInstance(); |
| 186 | 186 | $modversion['config'][] = [ |
| 187 | - 'name' => 'editor_user', |
|
| 188 | - 'title' => '_MI_WGGITHUB_EDITOR_USER', |
|
| 189 | - 'description' => '_MI_WGGITHUB_EDITOR_USER_DESC', |
|
| 190 | - 'formtype' => 'select', |
|
| 191 | - 'valuetype' => 'text', |
|
| 192 | - 'default' => 'dhtml', |
|
| 193 | - 'options' => array_flip($editorHandler->getList()), |
|
| 187 | + 'name' => 'editor_user', |
|
| 188 | + 'title' => '_MI_WGGITHUB_EDITOR_USER', |
|
| 189 | + 'description' => '_MI_WGGITHUB_EDITOR_USER_DESC', |
|
| 190 | + 'formtype' => 'select', |
|
| 191 | + 'valuetype' => 'text', |
|
| 192 | + 'default' => 'dhtml', |
|
| 193 | + 'options' => array_flip($editorHandler->getList()), |
|
| 194 | 194 | ]; |
| 195 | 195 | // Editor : max characters admin area |
| 196 | 196 | $modversion['config'][] = [ |
| 197 | - 'name' => 'editor_maxchar', |
|
| 198 | - 'title' => '_MI_WGGITHUB_EDITOR_MAXCHAR', |
|
| 199 | - 'description' => '_MI_WGGITHUB_EDITOR_MAXCHAR_DESC', |
|
| 200 | - 'formtype' => 'textbox', |
|
| 201 | - 'valuetype' => 'int', |
|
| 202 | - 'default' => 50, |
|
| 197 | + 'name' => 'editor_maxchar', |
|
| 198 | + 'title' => '_MI_WGGITHUB_EDITOR_MAXCHAR', |
|
| 199 | + 'description' => '_MI_WGGITHUB_EDITOR_MAXCHAR_DESC', |
|
| 200 | + 'formtype' => 'textbox', |
|
| 201 | + 'valuetype' => 'int', |
|
| 202 | + 'default' => 50, |
|
| 203 | 203 | ]; |
| 204 | 204 | // Get groups |
| 205 | 205 | $memberHandler = \xoops_getHandler('member'); |
| 206 | 206 | $xoopsGroups = $memberHandler->getGroupList(); |
| 207 | 207 | $groups = []; |
| 208 | 208 | foreach ($xoopsGroups as $key => $group) { |
| 209 | - $groups[$group] = $key; |
|
| 209 | + $groups[$group] = $key; |
|
| 210 | 210 | } |
| 211 | 211 | // General access groups |
| 212 | 212 | $modversion['config'][] = [ |
| 213 | - 'name' => 'groups', |
|
| 214 | - 'title' => '_MI_WGGITHUB_GROUPS', |
|
| 215 | - 'description' => '_MI_WGGITHUB_GROUPS_DESC', |
|
| 216 | - 'formtype' => 'select_multi', |
|
| 217 | - 'valuetype' => 'array', |
|
| 218 | - 'default' => $groups, |
|
| 219 | - 'options' => $groups, |
|
| 213 | + 'name' => 'groups', |
|
| 214 | + 'title' => '_MI_WGGITHUB_GROUPS', |
|
| 215 | + 'description' => '_MI_WGGITHUB_GROUPS_DESC', |
|
| 216 | + 'formtype' => 'select_multi', |
|
| 217 | + 'valuetype' => 'array', |
|
| 218 | + 'default' => $groups, |
|
| 219 | + 'options' => $groups, |
|
| 220 | 220 | ]; |
| 221 | 221 | // Upload groups |
| 222 | 222 | $modversion['config'][] = [ |
| 223 | - 'name' => 'upload_groups', |
|
| 224 | - 'title' => '_MI_WGGITHUB_UPLOAD_GROUPS', |
|
| 225 | - 'description' => '_MI_WGGITHUB_UPLOAD_GROUPS_DESC', |
|
| 226 | - 'formtype' => 'select_multi', |
|
| 227 | - 'valuetype' => 'array', |
|
| 228 | - 'default' => $groups, |
|
| 229 | - 'options' => $groups, |
|
| 223 | + 'name' => 'upload_groups', |
|
| 224 | + 'title' => '_MI_WGGITHUB_UPLOAD_GROUPS', |
|
| 225 | + 'description' => '_MI_WGGITHUB_UPLOAD_GROUPS_DESC', |
|
| 226 | + 'formtype' => 'select_multi', |
|
| 227 | + 'valuetype' => 'array', |
|
| 228 | + 'default' => $groups, |
|
| 229 | + 'options' => $groups, |
|
| 230 | 230 | ]; |
| 231 | 231 | // Get Admin groups |
| 232 | 232 | $crGroups = new \CriteriaCompo(); |
@@ -235,118 +235,118 @@ discard block |
||
| 235 | 235 | $adminXoopsGroups = $memberHandler->getGroupList($crGroups); |
| 236 | 236 | $adminGroups = []; |
| 237 | 237 | foreach ($adminXoopsGroups as $key => $adminGroup) { |
| 238 | - $adminGroups[$adminGroup] = $key; |
|
| 238 | + $adminGroups[$adminGroup] = $key; |
|
| 239 | 239 | } |
| 240 | 240 | $modversion['config'][] = [ |
| 241 | - 'name' => 'admin_groups', |
|
| 242 | - 'title' => '_MI_WGGITHUB_ADMIN_GROUPS', |
|
| 243 | - 'description' => '_MI_WGGITHUB_ADMIN_GROUPS_DESC', |
|
| 244 | - 'formtype' => 'select_multi', |
|
| 245 | - 'valuetype' => 'array', |
|
| 246 | - 'default' => $adminGroups, |
|
| 247 | - 'options' => $adminGroups, |
|
| 241 | + 'name' => 'admin_groups', |
|
| 242 | + 'title' => '_MI_WGGITHUB_ADMIN_GROUPS', |
|
| 243 | + 'description' => '_MI_WGGITHUB_ADMIN_GROUPS_DESC', |
|
| 244 | + 'formtype' => 'select_multi', |
|
| 245 | + 'valuetype' => 'array', |
|
| 246 | + 'default' => $adminGroups, |
|
| 247 | + 'options' => $adminGroups, |
|
| 248 | 248 | ]; |
| 249 | 249 | unset($crGroups); |
| 250 | 250 | // Keywords |
| 251 | 251 | $modversion['config'][] = [ |
| 252 | - 'name' => 'keywords', |
|
| 253 | - 'title' => '_MI_WGGITHUB_KEYWORDS', |
|
| 254 | - 'description' => '_MI_WGGITHUB_KEYWORDS_DESC', |
|
| 255 | - 'formtype' => 'textbox', |
|
| 256 | - 'valuetype' => 'text', |
|
| 257 | - 'default' => 'wggithub, settings, repositories, directories, requests, readmes', |
|
| 252 | + 'name' => 'keywords', |
|
| 253 | + 'title' => '_MI_WGGITHUB_KEYWORDS', |
|
| 254 | + 'description' => '_MI_WGGITHUB_KEYWORDS_DESC', |
|
| 255 | + 'formtype' => 'textbox', |
|
| 256 | + 'valuetype' => 'text', |
|
| 257 | + 'default' => 'wggithub, settings, repositories, directories, requests, readmes', |
|
| 258 | 258 | ]; |
| 259 | 259 | // Admin pager |
| 260 | 260 | $modversion['config'][] = [ |
| 261 | - 'name' => 'adminpager', |
|
| 262 | - 'title' => '_MI_WGGITHUB_ADMIN_PAGER', |
|
| 263 | - 'description' => '_MI_WGGITHUB_ADMIN_PAGER_DESC', |
|
| 264 | - 'formtype' => 'textbox', |
|
| 265 | - 'valuetype' => 'int', |
|
| 266 | - 'default' => 25, |
|
| 261 | + 'name' => 'adminpager', |
|
| 262 | + 'title' => '_MI_WGGITHUB_ADMIN_PAGER', |
|
| 263 | + 'description' => '_MI_WGGITHUB_ADMIN_PAGER_DESC', |
|
| 264 | + 'formtype' => 'textbox', |
|
| 265 | + 'valuetype' => 'int', |
|
| 266 | + 'default' => 25, |
|
| 267 | 267 | ]; |
| 268 | 268 | // User pager |
| 269 | 269 | $modversion['config'][] = [ |
| 270 | - 'name' => 'userpager', |
|
| 271 | - 'title' => '_MI_WGGITHUB_USER_PAGER', |
|
| 272 | - 'description' => '_MI_WGGITHUB_USER_PAGER_DESC', |
|
| 273 | - 'formtype' => 'textbox', |
|
| 274 | - 'valuetype' => 'int', |
|
| 275 | - 'default' => 25, |
|
| 270 | + 'name' => 'userpager', |
|
| 271 | + 'title' => '_MI_WGGITHUB_USER_PAGER', |
|
| 272 | + 'description' => '_MI_WGGITHUB_USER_PAGER_DESC', |
|
| 273 | + 'formtype' => 'textbox', |
|
| 274 | + 'valuetype' => 'int', |
|
| 275 | + 'default' => 25, |
|
| 276 | 276 | ]; |
| 277 | 277 | // Number column |
| 278 | 278 | $modversion['config'][] = [ |
| 279 | - 'name' => 'numb_col', |
|
| 280 | - 'title' => '_MI_WGGITHUB_NUMB_COL', |
|
| 281 | - 'description' => '_MI_WGGITHUB_NUMB_COL_DESC', |
|
| 282 | - 'formtype' => 'select', |
|
| 283 | - 'valuetype' => 'int', |
|
| 284 | - 'default' => 1, |
|
| 285 | - 'options' => [1 => '1', 2 => '2', 3 => '3', 4 => '4'], |
|
| 279 | + 'name' => 'numb_col', |
|
| 280 | + 'title' => '_MI_WGGITHUB_NUMB_COL', |
|
| 281 | + 'description' => '_MI_WGGITHUB_NUMB_COL_DESC', |
|
| 282 | + 'formtype' => 'select', |
|
| 283 | + 'valuetype' => 'int', |
|
| 284 | + 'default' => 1, |
|
| 285 | + 'options' => [1 => '1', 2 => '2', 3 => '3', 4 => '4'], |
|
| 286 | 286 | ]; |
| 287 | 287 | // Divide by |
| 288 | 288 | $modversion['config'][] = [ |
| 289 | - 'name' => 'divideby', |
|
| 290 | - 'title' => '_MI_WGGITHUB_DIVIDEBY', |
|
| 291 | - 'description' => '_MI_WGGITHUB_DIVIDEBY_DESC', |
|
| 292 | - 'formtype' => 'select', |
|
| 293 | - 'valuetype' => 'int', |
|
| 294 | - 'default' => 1, |
|
| 295 | - 'options' => [1 => '1', 2 => '2', 3 => '3', 4 => '4'], |
|
| 289 | + 'name' => 'divideby', |
|
| 290 | + 'title' => '_MI_WGGITHUB_DIVIDEBY', |
|
| 291 | + 'description' => '_MI_WGGITHUB_DIVIDEBY_DESC', |
|
| 292 | + 'formtype' => 'select', |
|
| 293 | + 'valuetype' => 'int', |
|
| 294 | + 'default' => 1, |
|
| 295 | + 'options' => [1 => '1', 2 => '2', 3 => '3', 4 => '4'], |
|
| 296 | 296 | ]; |
| 297 | 297 | // Table type |
| 298 | 298 | $modversion['config'][] = [ |
| 299 | - 'name' => 'table_type', |
|
| 300 | - 'title' => '_MI_WGGITHUB_TABLE_TYPE', |
|
| 301 | - 'description' => '_MI_WGGITHUB_DIVIDEBY_DESC', |
|
| 302 | - 'formtype' => 'select', |
|
| 303 | - 'valuetype' => 'int', |
|
| 304 | - 'default' => 'bordered', |
|
| 305 | - 'options' => ['bordered' => 'bordered', 'striped' => 'striped', 'hover' => 'hover', 'condensed' => 'condensed'], |
|
| 299 | + 'name' => 'table_type', |
|
| 300 | + 'title' => '_MI_WGGITHUB_TABLE_TYPE', |
|
| 301 | + 'description' => '_MI_WGGITHUB_DIVIDEBY_DESC', |
|
| 302 | + 'formtype' => 'select', |
|
| 303 | + 'valuetype' => 'int', |
|
| 304 | + 'default' => 'bordered', |
|
| 305 | + 'options' => ['bordered' => 'bordered', 'striped' => 'striped', 'hover' => 'hover', 'condensed' => 'condensed'], |
|
| 306 | 306 | ]; |
| 307 | 307 | // Panel by |
| 308 | 308 | $modversion['config'][] = [ |
| 309 | - 'name' => 'panel_type', |
|
| 310 | - 'title' => '_MI_WGGITHUB_PANEL_TYPE', |
|
| 311 | - 'description' => '_MI_WGGITHUB_PANEL_TYPE_DESC', |
|
| 312 | - 'formtype' => 'select', |
|
| 313 | - 'valuetype' => 'text', |
|
| 314 | - 'default' => 'default', |
|
| 315 | - 'options' => ['default' => 'default', 'primary' => 'primary', 'success' => 'success', 'info' => 'info', 'warning' => 'warning', 'danger' => 'danger'], |
|
| 309 | + 'name' => 'panel_type', |
|
| 310 | + 'title' => '_MI_WGGITHUB_PANEL_TYPE', |
|
| 311 | + 'description' => '_MI_WGGITHUB_PANEL_TYPE_DESC', |
|
| 312 | + 'formtype' => 'select', |
|
| 313 | + 'valuetype' => 'text', |
|
| 314 | + 'default' => 'default', |
|
| 315 | + 'options' => ['default' => 'default', 'primary' => 'primary', 'success' => 'success', 'info' => 'info', 'warning' => 'warning', 'danger' => 'danger'], |
|
| 316 | 316 | ]; |
| 317 | 317 | // Advertise |
| 318 | 318 | $modversion['config'][] = [ |
| 319 | - 'name' => 'advertise', |
|
| 320 | - 'title' => '_MI_WGGITHUB_ADVERTISE', |
|
| 321 | - 'description' => '_MI_WGGITHUB_ADVERTISE_DESC', |
|
| 322 | - 'formtype' => 'textarea', |
|
| 323 | - 'valuetype' => 'text', |
|
| 324 | - 'default' => '', |
|
| 319 | + 'name' => 'advertise', |
|
| 320 | + 'title' => '_MI_WGGITHUB_ADVERTISE', |
|
| 321 | + 'description' => '_MI_WGGITHUB_ADVERTISE_DESC', |
|
| 322 | + 'formtype' => 'textarea', |
|
| 323 | + 'valuetype' => 'text', |
|
| 324 | + 'default' => '', |
|
| 325 | 325 | ]; |
| 326 | 326 | // Bookmarks |
| 327 | 327 | $modversion['config'][] = [ |
| 328 | - 'name' => 'bookmarks', |
|
| 329 | - 'title' => '_MI_WGGITHUB_BOOKMARKS', |
|
| 330 | - 'description' => '_MI_WGGITHUB_BOOKMARKS_DESC', |
|
| 331 | - 'formtype' => 'yesno', |
|
| 332 | - 'valuetype' => 'int', |
|
| 333 | - 'default' => 0, |
|
| 328 | + 'name' => 'bookmarks', |
|
| 329 | + 'title' => '_MI_WGGITHUB_BOOKMARKS', |
|
| 330 | + 'description' => '_MI_WGGITHUB_BOOKMARKS_DESC', |
|
| 331 | + 'formtype' => 'yesno', |
|
| 332 | + 'valuetype' => 'int', |
|
| 333 | + 'default' => 0, |
|
| 334 | 334 | ]; |
| 335 | 335 | // Make Sample button visible? |
| 336 | 336 | $modversion['config'][] = [ |
| 337 | - 'name' => 'displaySampleButton', |
|
| 338 | - 'title' => 'CO_' . $moduleDirNameUpper . '_' . 'SHOW_SAMPLE_BUTTON', |
|
| 339 | - 'description' => 'CO_' . $moduleDirNameUpper . '_' . 'SHOW_SAMPLE_BUTTON_DESC', |
|
| 340 | - 'formtype' => 'yesno', |
|
| 341 | - 'valuetype' => 'int', |
|
| 342 | - 'default' => 1, |
|
| 337 | + 'name' => 'displaySampleButton', |
|
| 338 | + 'title' => 'CO_' . $moduleDirNameUpper . '_' . 'SHOW_SAMPLE_BUTTON', |
|
| 339 | + 'description' => 'CO_' . $moduleDirNameUpper . '_' . 'SHOW_SAMPLE_BUTTON_DESC', |
|
| 340 | + 'formtype' => 'yesno', |
|
| 341 | + 'valuetype' => 'int', |
|
| 342 | + 'default' => 1, |
|
| 343 | 343 | ]; |
| 344 | 344 | // Maintained by |
| 345 | 345 | $modversion['config'][] = [ |
| 346 | - 'name' => 'maintainedby', |
|
| 347 | - 'title' => '_MI_WGGITHUB_MAINTAINEDBY', |
|
| 348 | - 'description' => '_MI_WGGITHUB_MAINTAINEDBY_DESC', |
|
| 349 | - 'formtype' => 'textbox', |
|
| 350 | - 'valuetype' => 'text', |
|
| 351 | - 'default' => 'https://xoops.org/modules/newbb', |
|
| 346 | + 'name' => 'maintainedby', |
|
| 347 | + 'title' => '_MI_WGGITHUB_MAINTAINEDBY', |
|
| 348 | + 'description' => '_MI_WGGITHUB_MAINTAINEDBY_DESC', |
|
| 349 | + 'formtype' => 'textbox', |
|
| 350 | + 'valuetype' => 'text', |
|
| 351 | + 'default' => 'https://xoops.org/modules/newbb', |
|
| 352 | 352 | ]; |
@@ -12,147 +12,147 @@ |
||
| 12 | 12 | */ |
| 13 | 13 | class Paginator extends Sanity implements \Iterator |
| 14 | 14 | { |
| 15 | - /** @var Api */ |
|
| 16 | - private $api; |
|
| 17 | - |
|
| 18 | - /** @var Http\Request */ |
|
| 19 | - private $firstRequest; |
|
| 20 | - |
|
| 21 | - /** @var Http\Request|NULL */ |
|
| 22 | - private $request; |
|
| 23 | - |
|
| 24 | - /** @var Http\Response|NULL */ |
|
| 25 | - private $response; |
|
| 26 | - |
|
| 27 | - /** @var int */ |
|
| 28 | - private $limit; |
|
| 29 | - |
|
| 30 | - /** @var int */ |
|
| 31 | - private $counter = 0; |
|
| 32 | - |
|
| 33 | - |
|
| 34 | - public function __construct(Api $api, Http\Request $request) |
|
| 35 | - { |
|
| 36 | - $this->api = $api; |
|
| 37 | - $this->firstRequest = clone $request; |
|
| 38 | - } |
|
| 39 | - |
|
| 40 | - |
|
| 41 | - /** |
|
| 42 | - * Limits maximum steps of iteration. |
|
| 43 | - * |
|
| 44 | - * @param int|NULL |
|
| 45 | - * @return self |
|
| 46 | - */ |
|
| 47 | - public function limit($limit) |
|
| 48 | - { |
|
| 49 | - $this->limit = $limit === NULL |
|
| 50 | - ? NULL |
|
| 51 | - : (int) $limit; |
|
| 52 | - |
|
| 53 | - return $this; |
|
| 54 | - } |
|
| 55 | - |
|
| 56 | - |
|
| 57 | - /** |
|
| 58 | - * @return void |
|
| 59 | - */ |
|
| 60 | - public function rewind() |
|
| 61 | - { |
|
| 62 | - $this->request = $this->firstRequest; |
|
| 63 | - $this->response = NULL; |
|
| 64 | - $this->counter = 0; |
|
| 65 | - } |
|
| 66 | - |
|
| 67 | - |
|
| 68 | - /** |
|
| 69 | - * @return bool |
|
| 70 | - */ |
|
| 71 | - public function valid() |
|
| 72 | - { |
|
| 73 | - return $this->request !== NULL && ($this->limit === NULL || $this->counter < $this->limit); |
|
| 74 | - } |
|
| 75 | - |
|
| 76 | - |
|
| 77 | - /** |
|
| 78 | - * @return Http\Response |
|
| 79 | - */ |
|
| 80 | - public function current() |
|
| 81 | - { |
|
| 82 | - $this->load(); |
|
| 83 | - return $this->response; |
|
| 84 | - } |
|
| 85 | - |
|
| 86 | - |
|
| 87 | - /** |
|
| 88 | - * @return int |
|
| 89 | - */ |
|
| 90 | - public function key() |
|
| 91 | - { |
|
| 92 | - return static::parsePage($this->request->getUrl()); |
|
| 93 | - } |
|
| 94 | - |
|
| 95 | - |
|
| 96 | - /** |
|
| 97 | - * @return void |
|
| 98 | - */ |
|
| 99 | - public function next() |
|
| 100 | - { |
|
| 101 | - $this->load(); |
|
| 102 | - |
|
| 103 | - if ($url = static::parseLink($this->response->getHeader('Link'), 'next')) { |
|
| 104 | - $this->request = new Http\Request( |
|
| 105 | - $this->request->getMethod(), |
|
| 106 | - $url, |
|
| 107 | - $this->request->getHeaders(), |
|
| 108 | - $this->request->getContent() |
|
| 109 | - ); |
|
| 110 | - } else { |
|
| 111 | - $this->request = NULL; |
|
| 112 | - } |
|
| 113 | - |
|
| 114 | - $this->response = NULL; |
|
| 115 | - $this->counter++; |
|
| 116 | - } |
|
| 117 | - |
|
| 118 | - |
|
| 119 | - private function load() |
|
| 120 | - { |
|
| 121 | - if ($this->response === NULL) { |
|
| 122 | - $this->response = $this->api->request($this->request); |
|
| 123 | - } |
|
| 124 | - } |
|
| 125 | - |
|
| 126 | - |
|
| 127 | - /** |
|
| 128 | - * @param string |
|
| 129 | - * @return int |
|
| 130 | - */ |
|
| 131 | - public static function parsePage($url) |
|
| 132 | - { |
|
| 133 | - list (, $parametersStr) = explode('?', $url, 2) + ['', '']; |
|
| 134 | - parse_str($parametersStr, $parameters); |
|
| 135 | - |
|
| 136 | - return isset($parameters['page']) |
|
| 137 | - ? max(1, (int) $parameters['page']) |
|
| 138 | - : 1; |
|
| 139 | - } |
|
| 140 | - |
|
| 141 | - |
|
| 142 | - /** |
|
| 143 | - * @see https://developer.github.com/guides/traversing-with-pagination/#navigating-through-the-pages |
|
| 144 | - * |
|
| 145 | - * @param string |
|
| 146 | - * @param string |
|
| 147 | - * @return string|NULL |
|
| 148 | - */ |
|
| 149 | - public static function parseLink($link, $rel) |
|
| 150 | - { |
|
| 151 | - if (!preg_match('(<([^>]+)>;\s*rel="' . preg_quote($rel) . '")', $link, $match)) { |
|
| 152 | - return NULL; |
|
| 153 | - } |
|
| 154 | - |
|
| 155 | - return $match[1]; |
|
| 156 | - } |
|
| 15 | + /** @var Api */ |
|
| 16 | + private $api; |
|
| 17 | + |
|
| 18 | + /** @var Http\Request */ |
|
| 19 | + private $firstRequest; |
|
| 20 | + |
|
| 21 | + /** @var Http\Request|NULL */ |
|
| 22 | + private $request; |
|
| 23 | + |
|
| 24 | + /** @var Http\Response|NULL */ |
|
| 25 | + private $response; |
|
| 26 | + |
|
| 27 | + /** @var int */ |
|
| 28 | + private $limit; |
|
| 29 | + |
|
| 30 | + /** @var int */ |
|
| 31 | + private $counter = 0; |
|
| 32 | + |
|
| 33 | + |
|
| 34 | + public function __construct(Api $api, Http\Request $request) |
|
| 35 | + { |
|
| 36 | + $this->api = $api; |
|
| 37 | + $this->firstRequest = clone $request; |
|
| 38 | + } |
|
| 39 | + |
|
| 40 | + |
|
| 41 | + /** |
|
| 42 | + * Limits maximum steps of iteration. |
|
| 43 | + * |
|
| 44 | + * @param int|NULL |
|
| 45 | + * @return self |
|
| 46 | + */ |
|
| 47 | + public function limit($limit) |
|
| 48 | + { |
|
| 49 | + $this->limit = $limit === NULL |
|
| 50 | + ? NULL |
|
| 51 | + : (int) $limit; |
|
| 52 | + |
|
| 53 | + return $this; |
|
| 54 | + } |
|
| 55 | + |
|
| 56 | + |
|
| 57 | + /** |
|
| 58 | + * @return void |
|
| 59 | + */ |
|
| 60 | + public function rewind() |
|
| 61 | + { |
|
| 62 | + $this->request = $this->firstRequest; |
|
| 63 | + $this->response = NULL; |
|
| 64 | + $this->counter = 0; |
|
| 65 | + } |
|
| 66 | + |
|
| 67 | + |
|
| 68 | + /** |
|
| 69 | + * @return bool |
|
| 70 | + */ |
|
| 71 | + public function valid() |
|
| 72 | + { |
|
| 73 | + return $this->request !== NULL && ($this->limit === NULL || $this->counter < $this->limit); |
|
| 74 | + } |
|
| 75 | + |
|
| 76 | + |
|
| 77 | + /** |
|
| 78 | + * @return Http\Response |
|
| 79 | + */ |
|
| 80 | + public function current() |
|
| 81 | + { |
|
| 82 | + $this->load(); |
|
| 83 | + return $this->response; |
|
| 84 | + } |
|
| 85 | + |
|
| 86 | + |
|
| 87 | + /** |
|
| 88 | + * @return int |
|
| 89 | + */ |
|
| 90 | + public function key() |
|
| 91 | + { |
|
| 92 | + return static::parsePage($this->request->getUrl()); |
|
| 93 | + } |
|
| 94 | + |
|
| 95 | + |
|
| 96 | + /** |
|
| 97 | + * @return void |
|
| 98 | + */ |
|
| 99 | + public function next() |
|
| 100 | + { |
|
| 101 | + $this->load(); |
|
| 102 | + |
|
| 103 | + if ($url = static::parseLink($this->response->getHeader('Link'), 'next')) { |
|
| 104 | + $this->request = new Http\Request( |
|
| 105 | + $this->request->getMethod(), |
|
| 106 | + $url, |
|
| 107 | + $this->request->getHeaders(), |
|
| 108 | + $this->request->getContent() |
|
| 109 | + ); |
|
| 110 | + } else { |
|
| 111 | + $this->request = NULL; |
|
| 112 | + } |
|
| 113 | + |
|
| 114 | + $this->response = NULL; |
|
| 115 | + $this->counter++; |
|
| 116 | + } |
|
| 117 | + |
|
| 118 | + |
|
| 119 | + private function load() |
|
| 120 | + { |
|
| 121 | + if ($this->response === NULL) { |
|
| 122 | + $this->response = $this->api->request($this->request); |
|
| 123 | + } |
|
| 124 | + } |
|
| 125 | + |
|
| 126 | + |
|
| 127 | + /** |
|
| 128 | + * @param string |
|
| 129 | + * @return int |
|
| 130 | + */ |
|
| 131 | + public static function parsePage($url) |
|
| 132 | + { |
|
| 133 | + list (, $parametersStr) = explode('?', $url, 2) + ['', '']; |
|
| 134 | + parse_str($parametersStr, $parameters); |
|
| 135 | + |
|
| 136 | + return isset($parameters['page']) |
|
| 137 | + ? max(1, (int) $parameters['page']) |
|
| 138 | + : 1; |
|
| 139 | + } |
|
| 140 | + |
|
| 141 | + |
|
| 142 | + /** |
|
| 143 | + * @see https://developer.github.com/guides/traversing-with-pagination/#navigating-through-the-pages |
|
| 144 | + * |
|
| 145 | + * @param string |
|
| 146 | + * @param string |
|
| 147 | + * @return string|NULL |
|
| 148 | + */ |
|
| 149 | + public static function parseLink($link, $rel) |
|
| 150 | + { |
|
| 151 | + if (!preg_match('(<([^>]+)>;\s*rel="' . preg_quote($rel) . '")', $link, $match)) { |
|
| 152 | + return NULL; |
|
| 153 | + } |
|
| 154 | + |
|
| 155 | + return $match[1]; |
|
| 156 | + } |
|
| 157 | 157 | |
| 158 | 158 | } |
@@ -8,21 +8,21 @@ |
||
| 8 | 8 | */ |
| 9 | 9 | abstract class Sanity |
| 10 | 10 | { |
| 11 | - /** |
|
| 12 | - * @throws LogicException |
|
| 13 | - */ |
|
| 14 | - public function & __get($name) |
|
| 15 | - { |
|
| 16 | - throw new LogicException('Cannot read an undeclared property ' . get_class($this) . "::\$$name."); |
|
| 17 | - } |
|
| 11 | + /** |
|
| 12 | + * @throws LogicException |
|
| 13 | + */ |
|
| 14 | + public function & __get($name) |
|
| 15 | + { |
|
| 16 | + throw new LogicException('Cannot read an undeclared property ' . get_class($this) . "::\$$name."); |
|
| 17 | + } |
|
| 18 | 18 | |
| 19 | 19 | |
| 20 | - /** |
|
| 21 | - * @throws LogicException |
|
| 22 | - */ |
|
| 23 | - public function __set($name, $value) |
|
| 24 | - { |
|
| 25 | - throw new LogicException('Cannot write to an undeclared property ' . get_class($this) . "::\$$name."); |
|
| 26 | - } |
|
| 20 | + /** |
|
| 21 | + * @throws LogicException |
|
| 22 | + */ |
|
| 23 | + public function __set($name, $value) |
|
| 24 | + { |
|
| 25 | + throw new LogicException('Cannot write to an undeclared property ' . get_class($this) . "::\$$name."); |
|
| 26 | + } |
|
| 27 | 27 | |
| 28 | 28 | } |