getPath( 'front_html' )); require_once( $mainframe->getPath( 'class' ) ); require_once("$mosConfig_absolute_path/includes/irbis_api/lib/jwrapper.php"); $basepath="$mosConfig_absolute_path/components/com_bexhibition"; DEFINE('COVERS_PATH',"$mosConfig_absolute_path/images/covers"); DEFINE('COVERS_URL_PATH',"$mosConfig_live_site/images/covers"); DEFINE('COMPONENT_URL_PATH',"$mosConfig_live_site/components/com_bexhibition"); DEFINE('IMAGE_X',320+100); DEFINE('IMAGE_Y',584); DEFINE('THUMB_X',104); DEFINE('THUMB_Y',146); /* Параметры: название выставки, базы данных, запрос, формат заголовка, максимальное количество выводимых документов необходимость вывода гиперссылок -- оглавления, */ $task = mosGetParam( $_REQUEST, 'task', '' ); // $header_tags=<< H; $mainframe->addCustomHeadTag($header_tags); if (empty($params['bases'])) mosErrorAlert('Необходимо заполнить поле "Базы-источники записей" в параметрах компонента!'); //$script_url="$mosConfig_live_site/index.php?com_passreq&Itemid=".$Itemid; //http://localhost/Joomla/index.php?option=com_passreq&Itemid=1492 switch( $task ) { case 'upload': upload(); break; //Показ списка default: bo_list(); break; } function upload(){ global $gid,$params; if ($gid<2) { show::message('Недопустимый уровень доступа! Повторите авторизацию!'); return; } if (!@$_REQUEST['base']){ show::message('Нет данных. Повторите операцию загрузки.'); return; } $irb=new jwrapper('utf'); try{ $uf=new irb_upload($_FILES['image'],$irb,$_REQUEST['base'],$_REQUEST['mfn'],$_REQUEST['code'],$params['url_prefix'],0); $uf->check('jpeg|gif|bmp|jpg|png'); $uf->convert_and_move_cover_image(); $uf->wite_to_irbis('cover'); /*header( 'Cache-Control: no-store, no-cache, must-revalidate' ); header( 'Cache-Control: post-check=0, pre-check=0', false ); header( 'Pragma: no-cache' ); */ bo_list(false); }catch (Exception $e){ show::message($e->getMessage().'('.$e->getCode().')'); } } function bo_list($cache=true){ global $basepath,$params,$mosConfig_absolute_path; $irb=new jwrapper(); $pft=file_get_contents($basepath.'/output_format.pft'); $rep_array['header_format']=($params['header_format']) ? $params['header_format'] : '\'-\''; $rep_array['format']=$params['output_format'] ? "&uf('6".$params['output_format']."')" : file_get_contents($basepath.'/fullwebr_be.pft'); $rep_array['ed_reference']=file_get_contents("$mosConfig_absolute_path/!irbis/Common_PFT/ed_reference.pft"); $pft=u::parse_pft($pft,$rep_array); $pft=u::clean_pft_comments($pft); /* @var $irb iserver64 */ $res=$irb->search_list($params['bases'],$params['req'],'',$pft,$params['max_portion'],1,($cache ? $params['expired'] : 0)); if (!$res){ show::message('Литература по запросу не найдена.'); return; } if ($res<0 ){ show::message('Ошибка при работе с интерфейсом к БД: '.$irb->get_last_error_message().'('.$res.')'); return; } $res=str_replace('','',$res); $res=str_replace('&','&',$res); $doc = new DOMDocument(); $doc->loadXML(" \n $res \n "); $records=$doc->getElementsByTagName('record'); for($d=0;$d<$records->length;$d++){ $record=$records->item($d); $sortkey=$record->getElementsByTagName('sortkey')->item(0)->nodeValue; $titles=$record->getElementsByTagName('title'); for($i=0;$i<$titles->length;$i++){ $keys[]=u::utf_win($titles->item($i)->nodeValue.' ***'.$sortkey.'***'.$d); } $bo_records[$d]=new stdClass(); $bo_records[$d]->mfn=$record->getElementsByTagName('mfn')->item(0)->nodeValue; $bo_records[$d]->code=u::utf_win($record->getElementsByTagName('code')->item(0)->nodeValue); $bo_records[$d]->bo=del_links(u::utf_win($record->getElementsByTagName('bo')->item(0)->nodeValue)); $bo_records[$d]->referings=u::utf_win($record->getElementsByTagName('referings')->item(0)->nodeValue); $bo_records[$d]->cover_url=$record->getElementsByTagName('cover_url')->item(0)->nodeValue; $bo_records[$d]->base=$record->getElementsByTagName('base')->item(0)->nodeValue; } if (empty($keys)){ show::message('Ошибка в формате или некорректные данные в записи. Не удаётся интерпретировать XML. '); return; } $list_struct_array=u::list_struct_keys($keys,$bo_records); show::bo_list(strtoupper($params['exhibition_title']),$list_struct_array); //print_r($list_struct_array); } function del_links($res){ return preg_replace(array('{<--}','{-->}','{]*>|}xsi'),'',$res); } ?>