txmodxoops /
tdmcreate
This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include, or for example
via PHP's auto-loading mechanism.
| 1 | <?php |
||||||||
| 2 | |||||||||
| 3 | namespace XoopsModules\Tdmcreate\Files\Language; |
||||||||
| 4 | |||||||||
| 5 | use XoopsModules\Tdmcreate; |
||||||||
| 6 | use XoopsModules\Tdmcreate\Files; |
||||||||
| 7 | |||||||||
| 8 | /* |
||||||||
| 9 | You may not change or alter any portion of this comment or credits |
||||||||
| 10 | of supporting developers from this source code or any supporting source code |
||||||||
| 11 | which is considered copyrighted (c) material of the original comment or credit authors. |
||||||||
| 12 | |||||||||
| 13 | This program is distributed in the hope that it will be useful, |
||||||||
| 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||||
| 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
||||||||
| 16 | */ |
||||||||
| 17 | /** |
||||||||
| 18 | * tdmcreate module. |
||||||||
| 19 | * |
||||||||
| 20 | * @copyright XOOPS Project (https://xoops.org) |
||||||||
| 21 | * @license GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) |
||||||||
| 22 | * |
||||||||
| 23 | * @since 2.5.0 |
||||||||
| 24 | * |
||||||||
| 25 | * @author Txmod Xoops http://www.txmodxoops.org |
||||||||
| 26 | * |
||||||||
| 27 | */ |
||||||||
| 28 | |||||||||
| 29 | /** |
||||||||
| 30 | * Class LanguageAdmin. |
||||||||
| 31 | */ |
||||||||
| 32 | class LanguageAdmin extends Files\CreateFile |
||||||||
| 33 | { |
||||||||
| 34 | /** |
||||||||
| 35 | * @var mixed |
||||||||
| 36 | */ |
||||||||
| 37 | private $defines = null; |
||||||||
| 38 | |||||||||
| 39 | |||||||||
| 40 | /** |
||||||||
| 41 | * @public function constructor |
||||||||
| 42 | * @param null |
||||||||
| 43 | */ |
||||||||
| 44 | public function __construct() |
||||||||
| 45 | { |
||||||||
| 46 | parent::__construct(); |
||||||||
| 47 | $this->defines = LanguageDefines::getInstance(); |
||||||||
| 48 | } |
||||||||
| 49 | |||||||||
| 50 | /** |
||||||||
| 51 | * @static function getInstance |
||||||||
| 52 | * @param null |
||||||||
| 53 | * @return LanguageAdmin |
||||||||
| 54 | */ |
||||||||
| 55 | public static function getInstance() |
||||||||
| 56 | { |
||||||||
| 57 | static $instance = false; |
||||||||
| 58 | if (!$instance) { |
||||||||
| 59 | $instance = new self(); |
||||||||
| 60 | } |
||||||||
| 61 | |||||||||
| 62 | return $instance; |
||||||||
| 63 | } |
||||||||
| 64 | |||||||||
| 65 | /** |
||||||||
| 66 | * @public function write |
||||||||
| 67 | * @param string $module |
||||||||
| 68 | * @param $table |
||||||||
| 69 | * @param string $tables |
||||||||
| 70 | * @param string $filename |
||||||||
| 71 | */ |
||||||||
| 72 | public function write($module, $table, $tables, $filename) |
||||||||
| 73 | { |
||||||||
| 74 | $this->setModule($module); |
||||||||
| 75 | $this->setTable($table); |
||||||||
| 76 | $this->setTables($tables); |
||||||||
| 77 | $this->setFileName($filename); |
||||||||
| 78 | } |
||||||||
| 79 | |||||||||
| 80 | /** |
||||||||
| 81 | * @public function getLanguageAdminIndex |
||||||||
| 82 | * @param string $language |
||||||||
| 83 | * @param string $tables |
||||||||
| 84 | * @return string |
||||||||
| 85 | */ |
||||||||
| 86 | public function getLanguageAdminIndex($language, $tables) |
||||||||
| 87 | { |
||||||||
| 88 | $pc = Tdmcreate\Files\CreatePhpCode::getInstance(); |
||||||||
| 89 | $ret = $this->defines->getBlankLine(); |
||||||||
| 90 | $ret .= $pc->getPhpCodeIncludeDir("'common.php'",'', true, true, 'include'); |
||||||||
| 91 | $ret .= $this->defines->getBlankLine(); |
||||||||
| 92 | $ret .= $this->defines->getAboveHeadDefines('Admin Index'); |
||||||||
| 93 | $ret .= $this->defines->getDefine($language, 'STATISTICS', 'Statistics'); |
||||||||
| 94 | $ret .= $this->defines->getAboveDefines('There are'); |
||||||||
| 95 | foreach (array_keys($tables) as $t) { |
||||||||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||||||||
| 96 | $tableName = $tables[$t]->getVar('table_name'); |
||||||||
| 97 | $stuTableName = mb_strtoupper($tableName); |
||||||||
| 98 | $stlTableName = mb_strtolower($tableName); |
||||||||
| 99 | $ret .= $this->defines->getDefine($language, "THEREARE_{$stuTableName}", "There are <span class='bold'>%s</span> {$stlTableName} in the database", true); |
||||||||
| 100 | } |
||||||||
| 101 | |||||||||
| 102 | return $ret; |
||||||||
| 103 | } |
||||||||
| 104 | |||||||||
| 105 | /** |
||||||||
| 106 | * @public function getLanguageAdminPages |
||||||||
| 107 | * @param string $language |
||||||||
| 108 | * @param string $tables |
||||||||
| 109 | * @return string |
||||||||
| 110 | */ |
||||||||
| 111 | public function getLanguageAdminPages($language, $tables) |
||||||||
| 112 | { |
||||||||
| 113 | $ret = $this->defines->getAboveHeadDefines('Admin Files'); |
||||||||
| 114 | $ret .= $this->defines->getAboveDefines('There aren\'t'); |
||||||||
| 115 | foreach (array_keys($tables) as $t) { |
||||||||
|
0 ignored issues
–
show
$tables of type string is incompatible with the type array expected by parameter $input of array_keys().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||||
| 116 | $tableName = $tables[$t]->getVar('table_name'); |
||||||||
| 117 | $stuTableName = mb_strtoupper($tableName); |
||||||||
| 118 | $stlTableName = mb_strtolower($tableName); |
||||||||
| 119 | $ret .= $this->defines->getDefine($language, "THEREARENT_{$stuTableName}", "There aren't {$stlTableName}", true); |
||||||||
| 120 | } |
||||||||
| 121 | $ret .= $this->defines->getAboveDefines('Save/Delete'); |
||||||||
| 122 | $ret .= $this->defines->getDefine($language, 'FORM_OK', 'Successfully saved'); |
||||||||
| 123 | $ret .= $this->defines->getDefine($language, 'FORM_DELETE_OK', 'Successfully deleted'); |
||||||||
| 124 | $ret .= $this->defines->getDefine($language, 'FORM_SURE_DELETE', "Are you sure to delete: <b><span style='color : Red;'>%s </span></b>", true); |
||||||||
| 125 | $ret .= $this->defines->getDefine($language, 'FORM_SURE_RENEW', "Are you sure to update: <b><span style='color : Red;'>%s </span></b>", true); |
||||||||
| 126 | $ret .= $this->defines->getAboveDefines('Buttons'); |
||||||||
| 127 | |||||||||
| 128 | foreach (array_keys($tables) as $t) { |
||||||||
| 129 | $tableSoleName = $tables[$t]->getVar('table_solename'); |
||||||||
| 130 | $stuTableSoleName = mb_strtoupper($tableSoleName); |
||||||||
| 131 | $ucfTableSoleName = ucfirst($tableSoleName); |
||||||||
| 132 | $ret .= $this->defines->getDefine($language, "ADD_{$stuTableSoleName}", "Add New {$ucfTableSoleName}"); |
||||||||
| 133 | } |
||||||||
| 134 | $ret .= $this->defines->getAboveDefines('Lists'); |
||||||||
| 135 | |||||||||
| 136 | foreach (array_keys($tables) as $t) { |
||||||||
| 137 | $tableName = $tables[$t]->getVar('table_name'); |
||||||||
| 138 | $stuTableName = mb_strtoupper($tableName); |
||||||||
| 139 | $ucfTableName = ucfirst($tableName); |
||||||||
| 140 | $ret .= $this->defines->getDefine($language, "{$stuTableName}_LIST", "List of {$ucfTableName}"); |
||||||||
| 141 | } |
||||||||
| 142 | |||||||||
| 143 | return $ret; |
||||||||
| 144 | } |
||||||||
| 145 | |||||||||
| 146 | /** |
||||||||
| 147 | * @public function getLanguageAdminClass |
||||||||
| 148 | * @param string $language |
||||||||
| 149 | * @param string $tables |
||||||||
| 150 | * @return string |
||||||||
| 151 | */ |
||||||||
| 152 | public function getLanguageAdminClass($language, $tables) |
||||||||
| 153 | { |
||||||||
| 154 | $ret = $this->defines->getAboveHeadDefines('Admin Classes'); |
||||||||
| 155 | |||||||||
| 156 | foreach (array_keys($tables) as $t) { |
||||||||
|
0 ignored issues
–
show
$tables of type string is incompatible with the type array expected by parameter $input of array_keys().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||||
| 157 | $tableId = $tables[$t]->getVar('table_id'); |
||||||||
| 158 | $tableMid = $tables[$t]->getVar('table_mid'); |
||||||||
| 159 | $tableSoleName = $tables[$t]->getVar('table_solename'); |
||||||||
| 160 | $ucfTableSoleName = ucfirst($tableSoleName); |
||||||||
| 161 | |||||||||
| 162 | $fields = $this->getTableFields($tableMid, $tableId); |
||||||||
| 163 | $fieldInForm = 0; |
||||||||
| 164 | |||||||||
| 165 | foreach (array_keys($fields) as $f) { |
||||||||
| 166 | if ($fieldInForm < $fields[$f]->getVar('field_inform')) { |
||||||||
| 167 | $fieldInForm = $fields[$f]->getVar('field_inform'); |
||||||||
| 168 | } |
||||||||
| 169 | } |
||||||||
| 170 | if (1 == $fieldInForm) { |
||||||||
| 171 | $ret .= $this->defines->getAboveDefines("{$ucfTableSoleName} add/edit"); |
||||||||
| 172 | $ret .= $this->defines->getDefine($language, "{$tableSoleName}_ADD", "Add {$ucfTableSoleName}"); |
||||||||
| 173 | $ret .= $this->defines->getDefine($language, "{$tableSoleName}_EDIT", "Edit {$ucfTableSoleName}"); |
||||||||
| 174 | } |
||||||||
| 175 | $ret .= $this->defines->getAboveDefines("Elements of {$ucfTableSoleName}"); |
||||||||
| 176 | |||||||||
| 177 | $fieldStatus = 0; |
||||||||
| 178 | $fieldSampleListValue = 0; |
||||||||
| 179 | foreach (array_keys($fields) as $f) { |
||||||||
| 180 | $fieldName = $fields[$f]->getVar('field_name'); |
||||||||
| 181 | $fieldElement = $fields[$f]->getVar('field_element'); |
||||||||
| 182 | |||||||||
| 183 | $rpFieldName = $this->getRightString($fieldName); |
||||||||
| 184 | if ($fieldElement > 16) { |
||||||||
| 185 | $fieldElements = Tdmcreate\Helper::getInstance()->getHandler('fieldelements')->get($fieldElement); |
||||||||
| 186 | $fieldElementName = $fieldElements->getVar('fieldelement_name'); |
||||||||
| 187 | $fieldNameDesc = mb_substr($fieldElementName, mb_strrpos($fieldElementName, ':'), mb_strlen($fieldElementName)); |
||||||||
|
0 ignored issues
–
show
It seems like
$fieldElementName can also be of type array and array; however, parameter $str of mb_substr() does only seem to accept string, maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
It seems like
$fieldElementName can also be of type array and array; however, parameter $str of mb_strlen() does only seem to accept string, maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
It seems like
$fieldElementName can also be of type array and array; however, parameter $haystack of mb_strrpos() does only seem to accept string, maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||||||
| 188 | $fieldNameDesc = str_replace(': ', '', $fieldNameDesc); |
||||||||
| 189 | } else { |
||||||||
| 190 | $fieldNameDesc = false !== mb_strpos($rpFieldName, '_') ? str_replace('_', ' ', ucfirst($rpFieldName)) : ucfirst($rpFieldName); |
||||||||
| 191 | } |
||||||||
| 192 | |||||||||
| 193 | $ret .= $this->defines->getDefine($language, $tableSoleName . '_' . $rpFieldName, $fieldNameDesc); |
||||||||
| 194 | |||||||||
| 195 | switch ($fieldElement) { |
||||||||
| 196 | case 10: |
||||||||
| 197 | $ret .= $this->defines->getDefine($language, $tableSoleName . '_' . $rpFieldName . '_UPLOADS', "{$fieldNameDesc} in frameworks images: %s"); |
||||||||
| 198 | break; |
||||||||
| 199 | case 12: |
||||||||
| 200 | $ret .= $this->defines->getDefine($language, $tableSoleName . '_' . $rpFieldName . '_UPLOADS', "{$fieldNameDesc} in uploads"); |
||||||||
| 201 | break; |
||||||||
| 202 | case 11: |
||||||||
| 203 | case 13: |
||||||||
| 204 | case 14: |
||||||||
| 205 | $ret .= $this->defines->getDefine($language, $tableSoleName . '_' . $rpFieldName . '_UPLOADS', "{$fieldNameDesc} in %s :"); |
||||||||
| 206 | break; |
||||||||
| 207 | case 16: |
||||||||
| 208 | $fieldStatus++; |
||||||||
| 209 | break; |
||||||||
| 210 | case 20: |
||||||||
| 211 | case 22: |
||||||||
| 212 | $fieldSampleListValue++; |
||||||||
| 213 | break; |
||||||||
| 214 | } |
||||||||
| 215 | if (16 === (int)$fieldElement) { |
||||||||
| 216 | $fieldStatus++; |
||||||||
| 217 | } |
||||||||
| 218 | if (20 === (int)$fieldElement || 20 === (int)$fieldElement) { |
||||||||
| 219 | $fieldSampleListValue++; |
||||||||
| 220 | } |
||||||||
| 221 | } |
||||||||
| 222 | } |
||||||||
| 223 | $ret .= $this->defines->getAboveDefines('General'); |
||||||||
| 224 | $ret .= $this->defines->getDefine($language, 'FORM_UPLOAD', 'Upload file'); |
||||||||
| 225 | $ret .= $this->defines->getDefine($language, 'FORM_UPLOAD_NEW', 'Upload new file: '); |
||||||||
| 226 | $ret .= $this->defines->getDefine($language, 'FORM_UPLOAD_SIZE', 'Max file size: '); |
||||||||
| 227 | $ret .= $this->defines->getDefine($language, 'FORM_UPLOAD_SIZE_MB', 'MB'); |
||||||||
| 228 | $ret .= $this->defines->getDefine($language, 'FORM_UPLOAD_IMG_WIDTH', 'Max image width: '); |
||||||||
| 229 | $ret .= $this->defines->getDefine($language, 'FORM_UPLOAD_IMG_HEIGHT', 'Max image height: '); |
||||||||
| 230 | $ret .= $this->defines->getDefine($language, 'FORM_IMAGE_PATH', 'Files in %s :'); |
||||||||
| 231 | $ret .= $this->defines->getDefine($language, 'FORM_ACTION', 'Action'); |
||||||||
| 232 | $ret .= $this->defines->getDefine($language, 'FORM_EDIT', 'Modification'); |
||||||||
| 233 | $ret .= $this->defines->getDefine($language, 'FORM_DELETE', 'Clear'); |
||||||||
| 234 | |||||||||
| 235 | if ($fieldStatus > 0) { |
||||||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||||
| 236 | $ret .= $this->defines->getAboveDefines('Status'); |
||||||||
| 237 | $ret .= $this->defines->getDefine($language, 'STATUS_NONE', 'No status'); |
||||||||
| 238 | $ret .= $this->defines->getDefine($language, 'STATUS_OFFLINE', 'Offline'); |
||||||||
| 239 | $ret .= $this->defines->getDefine($language, 'STATUS_SUBMITTED', 'Submitted'); |
||||||||
| 240 | $ret .= $this->defines->getDefine($language, 'STATUS_APPROVED', 'Approved'); |
||||||||
| 241 | } |
||||||||
| 242 | if ($fieldSampleListValue > 0) { |
||||||||
|
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||||||||
| 243 | $ret .= $this->defines->getAboveDefines('Sample List Values'); |
||||||||
| 244 | $ret .= $this->defines->getDefine($language, 'LIST_1', 'Sample List Value 1'); |
||||||||
| 245 | $ret .= $this->defines->getDefine($language, 'LIST_2', 'Sample List Value 2'); |
||||||||
| 246 | $ret .= $this->defines->getDefine($language, 'LIST_3', 'Sample List Value 3'); |
||||||||
| 247 | } |
||||||||
| 248 | |||||||||
| 249 | return $ret; |
||||||||
| 250 | } |
||||||||
| 251 | |||||||||
| 252 | /** |
||||||||
| 253 | * @public function getLanguageAdminPermissions |
||||||||
| 254 | * @param string $language |
||||||||
| 255 | * @return string |
||||||||
| 256 | */ |
||||||||
| 257 | public function getLanguageAdminPermissions($language) |
||||||||
| 258 | { |
||||||||
| 259 | $ret = $this->defines->getAboveHeadDefines('Admin Permissions'); |
||||||||
| 260 | $ret .= $this->defines->getAboveDefines('Permissions'); |
||||||||
| 261 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_GLOBAL', 'Permissions global'); |
||||||||
| 262 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_GLOBAL_DESC', 'Permissions global to check type of.'); |
||||||||
| 263 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_GLOBAL_4', 'Permissions global to approve'); |
||||||||
| 264 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_GLOBAL_8', 'Permissions global to submit'); |
||||||||
| 265 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_GLOBAL_16', 'Permissions global to view'); |
||||||||
| 266 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_APPROVE', 'Permissions to approve'); |
||||||||
| 267 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_APPROVE_DESC', 'Permissions to approve'); |
||||||||
| 268 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_SUBMIT', 'Permissions to submit'); |
||||||||
| 269 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_SUBMIT_DESC', 'Permissions to submit'); |
||||||||
| 270 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_VIEW', 'Permissions to view'); |
||||||||
| 271 | $ret .= $this->defines->getDefine($language, 'PERMISSIONS_VIEW_DESC', 'Permissions to view'); |
||||||||
| 272 | $ret .= $this->defines->getDefine($language, 'NO_PERMISSIONS_SET', 'No permission set'); |
||||||||
| 273 | |||||||||
| 274 | return $ret; |
||||||||
| 275 | } |
||||||||
| 276 | |||||||||
| 277 | /** |
||||||||
| 278 | * @public function getLanguageAdminFoot |
||||||||
| 279 | * @param string $language |
||||||||
| 280 | * @return string |
||||||||
| 281 | */ |
||||||||
| 282 | public function getLanguageAdminFoot($language) |
||||||||
| 283 | { |
||||||||
| 284 | $ret = $this->defines->getAboveHeadDefines('Admin Others'); |
||||||||
| 285 | $ret .= $this->defines->getDefine($language, 'MAINTAINEDBY', ' is maintained by '); |
||||||||
| 286 | $ret .= $this->defines->getBelowDefines('End'); |
||||||||
| 287 | $ret .= $this->defines->getBlankLine(); |
||||||||
| 288 | |||||||||
| 289 | return $ret; |
||||||||
| 290 | } |
||||||||
| 291 | |||||||||
| 292 | /** |
||||||||
| 293 | * @public function render |
||||||||
| 294 | * @param null |
||||||||
| 295 | * @return bool|string |
||||||||
| 296 | */ |
||||||||
| 297 | public function render() |
||||||||
| 298 | { |
||||||||
| 299 | $module = $this->getModule(); |
||||||||
| 300 | $tables = $this->getTableTables($module->getVar('mod_id')); |
||||||||
| 301 | $tablePermissions = []; |
||||||||
| 302 | foreach (array_keys($tables) as $t) { |
||||||||
| 303 | $tablePermissions[] = $tables[$t]->getVar('table_permissions'); |
||||||||
| 304 | } |
||||||||
| 305 | $tables = $this->getTables(); |
||||||||
| 306 | $filename = $this->getFileName(); |
||||||||
| 307 | $moduleDirname = $module->getVar('mod_dirname'); |
||||||||
| 308 | $language = $this->getLanguage($moduleDirname, 'AM'); |
||||||||
| 309 | $content = $this->getHeaderFilesComments($module); |
||||||||
| 310 | if (is_array($tables)) { |
||||||||
| 311 | $content .= $this->getLanguageAdminIndex($language, $tables); |
||||||||
| 312 | $content .= $this->getLanguageAdminPages($language, $tables); |
||||||||
| 313 | $content .= $this->getLanguageAdminClass($language, $tables); |
||||||||
| 314 | } |
||||||||
| 315 | if (in_array(1, $tablePermissions)) { |
||||||||
| 316 | $content .= $this->getLanguageAdminPermissions($language); |
||||||||
| 317 | } |
||||||||
| 318 | $content .= $this->getLanguageAdminFoot($language); |
||||||||
| 319 | |||||||||
| 320 | $this->create($moduleDirname, 'language/' . $GLOBALS['xoopsConfig']['language'], $filename, $content, _AM_TDMCREATE_FILE_CREATED, _AM_TDMCREATE_FILE_NOTCREATED); |
||||||||
| 321 | |||||||||
| 322 | return $this->renderFile(); |
||||||||
| 323 | } |
||||||||
| 324 | } |
||||||||
| 325 |