3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php // обеспечение включение файла включен в родительский файл defined('_VALID_MOS') or die('Direct Access to this location is not allowed.'); // обеспечение пользователя доступом к этой функции if (!($acl->acl_check('administration', 'edit', 'users', $my->usertype, 'components', 'all') || $acl->acl_check('administration', 'edit', 'users', $my->usertype, 'components', 'com_dailymessage'))) { mosRedirect('index2.php', _NOT_AUTH); } require_once($mainframe->getPath('admin_html')); mosCommonHTML::loadOverlib(); HTML_catalog::Stylesheet(); global $database; function ExchangeItems($itemtype, $idname, $itemid,$itemid1) { global $database, $mainframe; $database->setQuery("SELECT prio FROM #__".$itemtype." WHERE ".$idname." = ".$itemid); $result = $database->loadObjectList(); $prio = $result[0]->prio; $database->setQuery("SELECT prio FROM #__".$itemtype." WHERE ".$idname." = ".$itemid1); $result = $database->loadObjectList(); $prio1 = $result[0]->prio; $database->doSQL("UPDATE #__".$itemtype." SET prio=".$prio1." WHERE ".$idname." =".$itemid); $database->doSQL("UPDATE #__".$itemtype." SET prio=".$prio." WHERE ".$idname." =".$itemid1); } function ISNULL($var) { if (empty($var)) return 0; else return $var; } function DelTree($id) { global $database; $database->setQuery ('SELECT * from #__catalog where parentid='.$id); $result=$database->loadObjectList(); if (sizeof($result)) foreach ($result as $row) DelTree($row->id); $database->setQuery('SELECT * from #__items where sectionid='.$id); $result=$database->loadObjectList(); if (sizeof($result)) foreach ($result as $row) { $database->doSQL('DELETE from #__itemdetails where itemid = '.$row->itemid); $database->doSQL('DELETE from #__items where itemid='.$row->itemid); } $database->doSQL('DELETE from #__catalog where id='.$id); } switch($act) { case 'managecatalog': { switch ($task) { case 'move': ExchangeItems($itemtype,$idname,$itemid,$itemid1); break; case 'delete': switch ($itemtype) { case 'catalog': DelTree($itemid); break; case 'item': $database->doSQL('DELETE from #__itemdetails where itemid = '.$itemid); $database->doSQL('DELETE from #__items where itemid='.$itemid); break; case 'itemdetail': $database->doSQL('DELETE from #__itemdetails where id='.$itemdetailsid); mosRedirect('index2.php?option='.$option.'&act='.$act.'&itemid='.$itemid.'&parentid='.$parentid.'&task=edit&itemtype=item'); break; } break; case 'edit': switch ($itemtype) { case 'item': switch ($task2) { case 'move': ExchangeItems('itemdetails','id',$moveid,$moveid1); break; default: break; } HTML_catalog::DrawPath($parentid); $database->setQuery("SELECT #__items.itemid as itemid, #__itemdetails.id as itemdetailsid, naim, img, foto, drawing, shema, description, article, pricefor, code, size, color, price1, price2, price3, price4, price5 from #__items left join #__itemdetails on #__items.itemid=#__itemdetails.itemid where #__items.itemid=".$itemid." ORDER by #__itemdetails.prio"); $result=$database->loadObjectList(); HTML_catalog::ShowItemEditForm($result, 'edit'); break; case 'catalog': HTML_catalog::DrawPath($parentid); $database->setQuery("SELECT * from #__catalog where id=".$catalogid); $result=$database->loadObjectList(); HTML_catalog::ShowCatalogEditForm($result, 'edit'); break; } break; case 'new': switch ($itemtype) { case 'catalog': HTML_catalog::DrawPath($parentid); HTML_catalog::ShowCatalogEditForm(null, 'new'); break; case 'item': HTML_catalog::DrawPath($parentid); HTML_catalog::ShowItemEditForm(null, 'new'); break; case 'itemdetail': $database->setQuery('SELECT * from #__items where itemid='.$itemid); $result=$database->loadObjectList(); $itemname=$result[0]->naim; HTML_catalog::DrawPath($parentid,'','/<a href="index2.php?option=com_catalog&act=managecatalog&task=edit&itemtype=item&parentid='.$parentid.'&itemid='.$itemid.'">'.$itemname.'</a>'); HTML_catalog::ShowItemdetailEditForm('new'); break; } break; case 'save': switch ($itemtype) { case 'item': $vars = get_defined_vars(); $deleteimg = 'Не использовать изображение'; $itemimgfile =''; if ((isset($HTTP_POST_FILES['itemimg']['name']))&&(!empty($HTTP_POST_FILES['itemimg']['name']))) { copy($HTTP_POST_FILES['itemimg']['tmp_name'],"./../UserFiles/Image/catalog/".basename($HTTP_POST_FILES['itemimg']['name'])); $itemimgfile = "./UserFiles/Image/catalog/".basename($HTTP_POST_FILES['itemimg']['name']); } else if ($selectimg != $deleteimg) $itemimgfile = "./UserFiles/Image/catalog/".$selectimg; $itemfotofile=''; if ((isset($HTTP_POST_FILES['itemfoto']['name']))&&(!empty($HTTP_POST_FILES['itemfoto']['name']))) { copy($HTTP_POST_FILES['itemfoto']['tmp_name'],"./../UserFiles/Image/catalog/".basename($HTTP_POST_FILES['itemfoto']['name'])); $itemfotofile = "./UserFiles/Image/catalog/".basename($HTTP_POST_FILES['itemfoto']['name']); } else if ($selectfoto != $deleteimg) $itemfotofile = "./UserFiles/Image/catalog/".$selectfoto; $itemdrawingfile =''; if ((isset($HTTP_POST_FILES['itemdrawing']['name']))&&(!empty($HTTP_POST_FILES['itemdrawing']['name']))) { copy($HTTP_POST_FILES['itemdrawing']['tmp_name'],"./../UserFiles/Image/catalog/".basename($HTTP_POST_FILES['itemdrawing']['name'])); $itemdrawingfile = "./UserFiles/Image/catalog/".basename($HTTP_POST_FILES['itemdrawing']['name']); } else if ($selectdrawing != $deleteimg) $itemdrawingfile = "./UserFiles/Image/catalog/".$selectdrawing; $itemshemafile=''; if ((isset($HTTP_POST_FILES['itemshema']['name']))&&(!empty($HTTP_POST_FILES['itemshema']['name']))) { copy($HTTP_POST_FILES['itemshema']['tmp_name'],"./../UserFiles/Image/catalog/".basename($HTTP_POST_FILES['itemshema']['name'])); $itemshemafile = "./UserFiles/Image/catalog/".basename($HTTP_POST_FILES['itemshema']['name']); } else if ($selectshema != $deleteimg) $itemshemafile = "./UserFiles/Image/catalog/".$selectshema; switch ($savetype) { case 'new': $database->setQuery('SELECT MAX(itemid)+1 as itemid from #__items'); $result=$database->loadObjectList(); $itemid=$result[0]->itemid; $database->setQuery('SELECT MAX(prio)+1 as prio from #__items'); $result=$database->loadObjectList(); $prio=$result[0]->prio; $sqlquery='INSERT into #__items (itemid, prio, sectionid, naim, img, foto, drawing, shema, description, article, pricefor) VALUES ('. $itemid.','.$prio.','.$parentid.',"'.addslashes($itemname).'","'.addslashes($itemimgfile).'","'.addslashes($itemfotofile).'","'. addslashes($itemdrawingfile).'","'.addslashes($itemshemafile).'","'.addslashes($itemdescript).'","'.addslashes($itemarticle).'","'.addslashes($itempricefor).'")'; $database->doSQL($sqlquery); echo 'Элемент успешно добавлен'; break; case 'edit': if ($itemdetailscount) for ($i=0; $i<$itemdetailscount; $i++) $database->doSQL('UPDATE #__itemdetails SET code='.ISNULL($vars['itemcode'.$i]).', size="'.addslashes($vars['itemsize'.$i]).'", color="'.addslashes($vars['itemcolor'.$i]).'", price1='.str_replace(',','.',ISNULL($vars['itemprice1'.$i])).', price2='.str_replace(',','.',ISNULL($vars['itemprice2'.$i])).', price3='.str_replace(',','.',ISNULL($vars['itemprice3'.$i])).', price4='.str_replace(',','.',ISNULL($vars['itemprice4'.$i]))./*', price5='.str_replace(',','.',ISNULL($vars['itemprice5'.$i])).*/' WHERE id = '.$vars['itemdetailsid'.$i]); $sqlquery = 'UPDATE #__items SET naim="'.addslashes($itemname).'", description="'.addslashes($itemdescript).'", article="'.addslashes($itemarticle). '", pricefor="'.addslashes($itempricefor).'", img="'.$itemimgfile.'", foto="'.$itemfotofile.'", drawing="'.$itemdrawingfile.'", shema="'.$itemshemafile.'" WHERE itemid='.$itemid; $database->doSQL($sqlquery); echo 'Элемент успешно обновлен<br>'; break; } break; case 'catalog': //if (empty($deleteimg)) $deleteimg = 'Не использовать изображение'; $catalogimgfile=''; if ((isset($HTTP_POST_FILES['catalogimg']['name']))&&(!empty($HTTP_POST_FILES['catalogimg']['name']))) { copy($HTTP_POST_FILES['catalogimg']['tmp_name'],"./../UserFiles/Image/catalog/".basename($HTTP_POST_FILES['catalogimg']['name'])); $catalogimgfile = "./UserFiles/Image/catalog/".basename($HTTP_POST_FILES['catalogimg']['name']); } else if ($selectimg != $deleteimg) $catalogimgfile = "./UserFiles/Image/catalog/".$selectimg; switch ($savetype) { case 'new': $database->setQuery('SELECT MAX(id)+1 as id from #__catalog'); $result=$database->loadObjectList(); $catalogid=$result[0]->id; $database->setQuery('SELECT MAX(prio)+1 as prio from #__catalog'); $result=$database->loadObjectList(); $prio=$result[0]->prio; $sqlquery='INSERT into #__catalog (id, prio, siteid, parentid, caption, img, article, article1, checked_out, checked_out_time, published) VALUES ('. $catalogid.','.$prio.',"",'.$parentid.',"'.addslashes($catalogcaption).'","'.addslashes($catalogimgfile).'","'.addslashes($catalogarticle).'","'. addslashes($catalogarticle1).'", 0, "00000000", '.(int)(!empty($catalogpublished)).')'; $database->doSQL($sqlquery); echo 'Элемент успешно добавлен'; break; case 'edit': $sqlquery = 'UPDATE #__catalog SET caption="'.addslashes($catalogcaption).'", article="'.addslashes($catalogarticle). '", article1="'.addslashes($catalogarticle1).'", published='.(int)(!empty($catalogpublished)).', img="'.$catalogimgfile.'" WHERE id='.$catalogid; $database->doSQL($sqlquery); echo 'Элемент успешно обновлен<br>'; break; } break; case 'itemdetail': $database->setQuery('SELECT * from #__itemdetails where code='.$itemcode); $result=$database->loadObjectList(); if (!sizeof($result)) { $database->setQuery('SELECT MAX(prio) as maxprio from #__itemdetails where itemid='.$itemid); $maxprio=$database->loadObjectList(); $maxprio=$maxprio[0]->maxprio+1; $database->doSQL('INSERT into #__itemdetails (itemid, prio, code, size, color, price1, price2, price3, price4) VALUES ('.$itemid.', '.$maxprio.', '.ISNULL($itemcode).', "'.addslashes($itemsize).'", "'.addslashes($itemcolor).'", '.str_replace(',','.',ISNULL($itemprice1)).', '.str_replace(',','.',ISNULL($itemprice2)).', '.str_replace(',','.',ISNULL($itemprice3)).', '.str_replace(',','.',ISNULL($itemprice4))./*', '.str_replace(',','.',ISNULL($itemprice5)).*/')'); } else { $saveerror = '&saveerror=1'; } mosRedirect('index2.php?option='.$option.'&act='.$act.'&itemid='.$itemid.'&parentid='.$parentid.'&task=edit&itemtype=item'.$saveerror); break; } break; default: break; } if (($task == 'edit')||($task == 'new')||(($task=='new')&&($itemtype=='itemdetail'))) exit; if (!isset($parentid)) $parentid=0; HTML_catalog::DrawPath($parentid); $database->setQuery("SELECT * FROM #__catalog WHERE parentid=".$parentid." order by prio"); $catalog = $database->loadObjectList(); $database->setQuery("SELECT * FROM #__items WHERE sectionid=".$parentid." order by prio"); $items = $database->loadObjectList(); HTML_catalog::ShowList($catalog, $items, $parentid); break; } case 'updateprice': switch ($task) { case 'update': { if(isset($HTTP_POST_FILES['filename']['name'])) { echo "<h3>Uploading: ".$HTTP_POST_FILES['filename']['name']."</h3><br>"; $handle=fopen($HTTP_POST_FILES['filename']['tmp_name'],"r"); if ($handle) { if (!feof($handle)) $buffer = fgets($handle); while (!feof($handle)&&!stristr(iconv("WINDOWS-1251","UTF-8",$buffer),'Код')) { $buffer = fgets($handle); } if(!stristr(iconv("WINDOWS-1251","UTF-8",$buffer),'Код')) { echo "<h3>Incorrect file<h3>"; exit; } else { $columns=explode("\t",$buffer); $i=0; foreach ($columns as $column) { $column=iconv("WINDOWS-1251","UTF-8",$column); if ($column=="Розница") $price1=$i; if ($column=="Опт1") $price2=$i; if ($column=="Опт2") $price3=$i; if ($column=="Опт3") $price4=$i; if ($column=="Код") $code=$i; $i++; } } echo $database->doSQL("DROP TABLE IF EXISTS #__import"); echo $database->doSQL("CREATE TABLE IF NOT EXISTS #__import ( `code` bigint(20) unsigned NOT NULL, `price1` float NOT NULL default '0', `price2` float NOT NULL default '0', `price3` float NOT NULL default '0', `price4` float NOT NULL default '0', KEY `code` (`code`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"); $buffer = fgets($handle); while (!feof($handle)) { $buffer = fgets($handle); $row = explode("\t",$buffer); if (array_key_exists(9,$row)) { $out=array("'"," руб."); $row[$price1] = str_replace($out,"",$row[$price1]); $row[$price2] = str_replace($out,"",$row[$price2]); $row[$price3] = str_replace($out,"",$row[$price3]); $row[$price4] = str_replace($out,"",$row[$price4]); $sql = "INSERT INTO #__import (`code`, `price1`, `price2`, `price3`, `price4`) VALUES ('$row[$code]', '$row[$price1]', '$row[$price2]', '$row[$price3]', '$row[$price4]');"; $result = $database->doSQL($sql); } } fclose($handle); } echo "<h3>Import completed</h3><br />"; $database->doSQL("UPDATE #__itemdetails SET `price1` = 0, `price2` = 0, `price3` = 0, `price4` = 0"); echo '<h3>Old prices was nulled</h3><br>'; $sql=""; $database->setQuery('select * from #__itemdetails'); $rows = $database->loadObjectList(); foreach ($rows as $row) { $database->setQuery("select * from #__import where code=$row->code"); $rows1=$database->loadObjectList(); if (!sizeof($rows1)) $errors.=$row->code.', '; else { $database->doSQL("UPDATE #__itemdetails SET `price1` = '".$rows1[0]->price1."', `price2` = '".$rows1[0]->price2."', `price3` = '".$rows1[0]->price3."', `price4` = '".$rows1[0]->price4."' WHERE `code` = ".$row->code); $completed.=$row->code.', '; } } echo '<div align=left><b>The following goods were updated:</b> '.substr($completed,0,strlen($completed)-2).'</div>'; if (isset($errors)) echo '<br><br><div align=left><b><font color=red>The following goods were not found:</b></font> '.substr($errors,0,strlen($errors)-2).'</div>'; exit; } } default: HTML_catalog::ShowUploadPriceForm(); break; } break; } ?>
Output for 5.3.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
Direct Access to this location is not allowed.