PermHelper = $this->Application->recallObject('PermissionsHelper'); } function ItemIcon($params) { $object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); $grids = $this->Application->getUnitOption($this->Prefix,'Grids'); $icons =& $grids[ $params['grid'] ]['Icons']; $status_fields = $this->Application->getUnitOption($this->Prefix,'StatusField'); if (!$status_fields) return $icons['default']; $value = $object->GetDBField($status_fields[0]); // sets base status icon if ($value == STATUS_ACTIVE) { if( $object->GetDBField('IsPop') ) $value = 'POP'; if( $object->GetDBField('IsHot') ) $value = 'HOT'; if( $object->GetDBField('IsNew') ) $value = 'NEW'; if( $object->GetDBField('EditorsPick') ) $value = 'PICK'; } return isset($icons[$value]) ? $icons[$value] : $icons['default']; } /** * Allows to create valid mod-rewrite compatible link to module item * * @param Array $params * @param string $id_prefix * @return string */ function ItemLink($params, $id_prefix) { $params = array_merge($params, Array('pass' => 'm,'.$this->Prefix) ); $item_id = isset($params[$id_prefix.'_id']) && $params[$id_prefix.'_id']; if (!$item_id) { $item_id = $this->Application->GetVar($this->getPrefixSpecial().'_id'); if (!$item_id) { $item_id = $this->Application->GetVar($this->Prefix.'_id'); } } $params[$this->Prefix.'_id'] = $item_id; $object =& $this->getObject($params); $params['m_cat_id'] = $object->GetDBField('CategoryId'); $params['pass_category'] = 1; return $this->Application->ProcessParsedTag('m', 't', $params); } /** * Returns path where exported category items should be saved * * @param Array $params */ function ExportPath($params) { $ret = EXPORT_PATH.'/'; if( getArrayValue($params, 'as_url') ) { $ret = str_replace( FULL_PATH.'/', $this->Application->BaseURL(), $ret); } $export_options = unserialize($this->Application->RecallVar($this->getPrefixSpecial().'_options')); $ret .= $export_options['ExportFilename'].'.'.($export_options['ExportFormat'] == 1 ? 'csv' : 'xml'); return $ret; } function CategoryPath($params) { if (!isset($params['cat_id'])) { $params['cat_id'] = $this->Application->RecallVar($params['session_var'], 0); } return $this->Application->ProcessParsedTag('c', 'CategoryPath', $params); } function BuildListSpecial($params) { if ($this->Special != '') return $this->Special; if ( isset($params['parent_cat_id']) ) { $parent_cat_id = $params['parent_cat_id']; } else { $parent_cat_id = $this->Application->GetVar('c_id'); if (!$parent_cat_id) { $parent_cat_id = $this->Application->GetVar('m_cat_id'); } } $recursive = isset($params['recursive']); $types = $this->SelectParam($params, 'types'); $except = $this->SelectParam($params, 'except'); if ($types.$except.$recursive == '') { return parent::BuildListSpecial($params); } $special = crc32($parent_cat_id.$types.$except.$recursive); return $special; } function ExportStatus($params) { $export_object =& $this->Application->recallObject('CatItemExportHelper'); $event = new kEvent($this->getPrefixSpecial().':OnDummy'); $action_method = 'perform'.ucfirst($this->Special); $field_values = $export_object->$action_method($event); // finish code is done from JS now if ($field_values['start_from'] == $field_values['total_records']) { if ($this->Special == 'import') { $this->Application->StoreVar('PermCache_UpdateRequired', 1); $this->Application->Redirect('categories/cache_updater', Array('m_opener' => 'r', 'pass' => 'm', 'continue' => 1, 'no_amp' => 1)); } elseif ($this->Special == 'export') { $template = $this->Application->getUnitOption($this->Prefix, 'ModuleFolder').'/'.$this->Special.'_finish'; $this->Application->Redirect($template, Array('pass' => 'all')); } } $export_options = $export_object->loadOptions($event); return $export_options['start_from'] * 100 / $export_options['total_records']; } function CatalogItemCount($params) { $object =& $this->GetList($params); if (!$object->Counted) { $object->CountRecs(); } return $object->NoFilterCount != $object->RecordsCount ? $object->RecordsCount.' / '.$object->NoFilterCount : $object->RecordsCount; } function ListReviews($params) { $prefix = $this->Prefix.'-rev'; $review_tag_processor =& $this->Application->recallObject($prefix.'.item_TagProcessor'); return $review_tag_processor->PrintList($params); } function ReviewCount($params) { $review_tag_processor =& $this->Application->recallObject('rev.item_TagProcessor'); return $review_tag_processor->TotalRecords($params); } function InitCatalogTab($params) { $tab_params['mode'] = $this->Application->GetVar('tm'); // single/multi selection possible $tab_params['special'] = $this->Application->GetVar('ts'); // use special for this tab $tab_params['dependant'] = $this->Application->GetVar('td'); // is grid dependant on categories grid // set default params (same as in catalog) if ($tab_params['mode'] === false) $tab_params['mode'] = 'multi'; if ($tab_params['special'] === false) $tab_params['special'] = ''; if ($tab_params['dependant'] === false) $tab_params['dependant'] = 'yes'; // pass params to block with tab content $params['name'] = $params['render_as']; $params['prefix'] = trim($this->Prefix.'.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); $params['cat_prefix'] = trim('c.'.($tab_params['special'] ? $tab_params['special'] : $this->Special), '.'); $params['tab_mode'] = $tab_params['mode']; $params['tab_dependant'] = $tab_params['dependant']; $params['show_category'] = $tab_params['special'] == 'showall' ? 1 : 0; // this is advanced view -> show category name return $this->Application->ParseBlock($params, 1); } /** * Show CachedNavbar of current item primary category * * @param Array $params * @return string */ function CategoryName($params) { // show category cachednavbar of $object =& $this->getObject($params); $category_id = isset($params['cat_id']) ? $params['cat_id'] : $object->GetDBField('CategoryId'); $category_path = $this->Application->getCache('category_paths', $category_id); if ($category_path === false) { // not chached if ($category_id > 0) { $category_path = trim($this->CategoryName( Array('cat_id' => 0) ).' > '.str_replace('&|&', ' > ', $object->GetDBField('CachedNavbar')), ' > '); } else { $category_path = $this->Application->Phrase( $this->Application->ConfigValue('Root_Name') ); } $this->Application->setCache('category_paths', $category_id, $category_path); } return $category_path; } /** * Allows to determine if original value should be shown * * @param Array $params * @return bool */ function DisplayOriginal($params) { // original id found & greather then zero + show original $display_original = isset($params['display_original']) && $params['display_original']; $object =& $this->getObject($params); $perm_value = $this->PermHelper->ModifyCheckPermission($object->GetDBField('CreatedById'), $object->GetDBField('CategoryId'), $this->Prefix); return $display_original && ($perm_value == 1) && $this->Application->GetVar($this->Prefix.'.original_id'); } } ?>