View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003118 | OXID eShop (all versions) | 1.01. Products (product, categories, manufacturer, promotions etc.) | public | 2011-08-09 10:28 | 2012-12-07 14:15 |
Reporter | Moehlis | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | Past development | ||||
Fixed in Version | 4.5.2 revision 38481 | ||||
Summary | 0003118: inactive manufacturer accessable | ||||
Description | when deactivating manufacturers, they are accessable by directlink | ||||
Steps To Reproduce | setup standard 4.5.1 goto start page click on a manufacturer deactivate this manufacturer reload the manufacturers listpage nothing will happen because in this case the active flag is ignored | ||||
Additional Information | tested in 4.5.1 and 4.4.5 possible fix in core/oxmanufacturer.php: public function getSqlActiveSnippet( $blForceCoreTable = null ) { $sTable = $this->getViewName( $blForceCoreTable ); $sQ = " $sTable.oxactive = 1 "; return "( $sQ ) "; } | ||||
Tags | Manufacturer | ||||
Theme | Both | ||||
Browser | All | ||||
PHP Version | any | ||||
Database Version | any | ||||
|
better solution would be fixing the check in oxbase::getsqlactivesnippet() // has 'active' field ? if ( isset( $this->_aFieldNames['oxactive'] ) ) { $sQ = " $sTable.oxactive = 1 "; } this check fails on the oxmanufacturer |
|
ok...fix doesnt work in 4.4.5 |
|
i could not figure out what happens in 4.4.5, so i just created this hotfix for our project, might be helpfull for others: /** * adds active check to manufacturer * https://bugs.oxid-esales.com/view.php?id=3118 */ class FcBugFixManufacturerList extends FcBugFixManufacturerList_parent { /** * hotfix. just checking oxactive check after manufacturer was already loaded because checking within oxmanufacturer doesnt work * and results in just loading another manufacturer, what is currently unexplainable */ public function getActManufacturer() { parent::getActManufacturer(); if ( $this->_oActManufacturer->oxmanufacturers__oxactive->value != 1 ) { $this->_oActManufacturer = null; error_404_handler(); } return $this->_oActManufacturer; } } |
|
added in manufacturerlist view $oManufacturer->getIsVisible() in getarticlelist() |