Переделать столбец в UNIQUE

17.04.2013 sql ,

alter table b_iblock_element_prop_s80 modify column PROPERTY_444 varchar(255) not null;
ALTER TABLE b_iblock_element_prop_s80 ADD UNIQUE (PROPERTY_444);

отменить

ALTER TABLE b_iblock_element_prop_s80 DROP INDEX PROPERTY_444;
alter table b_iblock_element_prop_s80 modify column PROPERTY_444 text;

Скачивание файл

15.04.2013 php, php скрипты

// выводим в браузер
if (file_exists($fName)) {
  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename="'.basename($fName).'"');
  header('Content-Transfer-Encoding: binary');
  header('Expires: 0');
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  header('Pragma: public');
  header('Content-Length: ' . filesize($fName));
  ob_clean();
  flush();
  readfile($fName);
  exit;
}

Установка APC на Debian 6

12.04.2013 Debian 6

apt-get install -y php-apc

/etc/php5/cli/conf.d/apc.ini

extension=apc.so
apc.cache_by_default = On
apc.coredump_unmap = Off
apc.enable_cli = Off
apc.enabled = On
apc.file_update_protection = 2
apc.filters = ""
apc.gc_ttl = 3600
apc.include_once_override = Off
apc.max_file_size = 8M
apc.mmap_file_mask = ""
apc.num_files_hint = 1000
apc.report_autofilter = Off
apc.rfc1867 = Off
apc.rfc1867_freq = 0
apc.rfc1867_name = "APC_UPLOAD_PROGRESS"
apc.rfc1867_prefix = "upload_"
apc.shm_segments = 1
apc.shm_size = 150
apc.slam_defense = 0
apc.stat = On
apc.stat_ctime = Off
apc.ttl = 1
apc.user_entries_hint = 4096
apc.user_ttl = 1
apc.write_lock = On

Компонент вывода служб доставок

09.04.2013 Компоненты

$arResult["DELIVERY"] = $APPLICATION->IncludeComponent("pro:h.delivery.getlist", "", 
							array(
								'arOrder'			=> array("SORT" => "ASC"),	// Массив, в соответствии с которым сортируются результирующие записи
								'arFilter'			=> $arFiltr,				// Массив, в соответствии с которым фильтруются записи.
								'arGroupBy'			=> false,					// Массив полей, по которым группируются записи.
								'arNavStartParams'	=> false,					// Массив параметров выборки
								'arSelectFields'	=> array('*'),				// Массив полей записей, которые будут возвращены
								'CACHE_TIME'		=> 3600,					// Время кеша
								'CACHE_PATH'		=> false,					// Путь кеша (default pro:h.delivery.getlist)
								'CACHE'				=> 'Y',						// Кешировать Y или N нет
							),	false
						);

скачать

Предыдущий и следующий элемент в детальном просмотре элемента

08.04.2013 Bitrix, php скрипты

<?
//в result_modifier.php элемента 

$arOrder = array("timestamp_x" => "desc"); // упорядочиваем как и в разделе.
$arSelect = Array("ID", "NAME","DETAIL_PAGE_URL");
$arFilter = Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList($arOrder, $arFilter, false, array("nPageSize" => "1","nElementID" => $arResult["ID"]), $arSelect);
//"nPageSize" - количество элементов на странице при постраничной навигации 
//"nElementID" - ID элемента который будет выбран вместе со своими соседями. Количество соседей определяется параметром nPageSize.
while($ob = $res->GetNext())
{
  $arFields[] = $ob;
}

$arResult["RIGHT_ARROW"]["LINK"] = str_replace("#ELEMENT_ID#",$arFields["2"]["ID"],$arFields["2"]["DETAIL_PAGE_URL"]);
$arResult["RIGHT_ARROW"]["NAME"] = $arFields["2"]["NAME"];

$arResult["LEFT_ARROW"]["LINK"] = str_replace("#ELEMENT_ID#",$arFields["0"]["ID"],$arFields["0"]["DETAIL_PAGE_URL"]);
$arResult["LEFT_ARROW"]["NAME"] = $arFields["0"]["NAME"];
?>

Удаление папки с файлами в PHP

06.04.2013 php, php скрипты

<?
$folder = 'upload1';
$dir = $_SERVER['DOCUMENT_ROOT']."/".$folder;
function rmDir($dir) {
	if ($elemDir = glob($dir."/*")) {		
	   foreach($elemDir as $elem) {
		 is_dir($elem) ? rmDir($elem) : unlink($elem);
	   }
	}
	rmDir($dir);
}

rmDir($dir);
?>

Отложенные функции

04.04.2013 Bitrix, php скрипты , ,

В шаблоне компонента

<?$this->SetViewTarget("some_block");?>
	<div class="some_text_block">
		<?foreach ($arSome as $some) echo $some."<br/>"?>
	</div>
<?$this->EndViewTarget();?>

В шаблоне страниц

<?=$APPLICATION->ShowViewContent('some_block');?>

Плагин с подсказками на фото

03.04.2013 jQuery плагины

http://codecanyon.net/item/jquery-hotspot-plugin-with-slideshow/full_screen_preview/4416686?ref=jqueryrain

http://www.jqueryrain.com/?ZhXaOTZm

Создание символических ссылок PHP symlink()

01.04.2013 Bitrix, php, php скрипты No comments , ,

<?
$path = '/home/sait/www';
$folder = 'include';
if(symlink($path."/".$folder,$_SERVER['DOCUMENT_ROOT']."/".$folder)){
	echo "<font color=green>Символические ссылка удачно созданы</font>";
}else{
	$strError = 'Не удалось создать ссылку на папку '.$folder.', обратитесь к администратору сервера';
}
?>

Много сайтовость Bitrix, создание гипер ссылок

27.03.2013 Bitrix, php скрипты No comments ,

<html>
<head><title>Создание ссылок на папки bitrix и upload</title></head>
<body>
<?
error_reporting(E_ALL & ~E_NOTICE);
@ini_set("display_errors",1);

if ($_POST['path'])
   $path = rtrim($_POST['path'],"/\\");
else
   $path = '../site2/www';

if ($_POST['create'])
{
   if (preg_match("#^/#",$path))
      $full_path = $path;
   else
      $full_path = realpath($_SERVER['DOCUMENT_ROOT'].'/'.$path);

   if (file_exists($_SERVER['DOCUMENT_ROOT']."/bitrix"))
      $strError = "В текущей папке уже существует папка bitrix";
   elseif (is_dir($full_path))
   {
      if (is_dir($full_path."/bitrix"))
      {
         if (symlink($path."/bitrix",$_SERVER['DOCUMENT_ROOT']."/bitrix"))
         {
            if(symlink($path."/upload",$_SERVER['DOCUMENT_ROOT']."/upload"))
               echo "<font color=green>Символические ссылки удачно созданы</font>";
            else
               $strError = 'Не удалось создать ссылку на папку upload, обратитесь к администратору сервера';
         }
         else
            $strError = 'Не удалось создать ссылку на папку bitrix, обратитесь к администратору сервера';
            
      }
      else
         $strError = 'Указанный путь не содержит папку bitrix';
   }
   else
      $strError = 'Неверно указан путь или ошибка прав доступа';
   
   if ($strError)
      echo '<font color=red>'.$strError.'</font><br>Исходный путь: '.$full_path;
}
?>
<form method=post>
Путь к папке, содержащей папки bitrix и upload: <input name=path value="<?=htmlspecialchars($path)?>"><br>
<input type=submit value='Создать' name=create>
</form>