Как изменить размеры картинок которые загружаюстя и урезаются?
Как изменить размеры картинок которые загружаюстя и урезаются?
Вот находимся мы с разделе товаров и видим список твоаров, а там картинки слишком маленькие, как мне сделать так чтобы картинки загружались с размером 150х150 пискелей?
Сообщений: 1782 Баллов: 257 Регистрация: 04.05.2007
02.05.2011 17:00:26
У каждого товара есть две картинки: детальная и для анонса. Размеры этих картинок задаются в настройках инфоблока, и для их изменения есть несколько вариантов:
1. настроить инфоблок на другой размер картинок (старые придется перезалить)
2. использовать готовое решение, например, resizer (найдите через поиск, я его не продаю). Это позволяет использовать несколько размеров картинок путем создания нужного из детальной.
3. написать свою перерезалку. Аналогично п. 2
ITConstruct . Разработка сайтов в Москве и Новосибирске. Внедрение корпоративных порталов. Техническая поддержка
Постоянный посетитель
Сообщений: 183 Баллов: 32 Регистрация: 21.07.2008
02.05.2011 17:14:43
не получается настроить инфоблок чтобы картинка в переменной: $arElement[«PREVIEW_IMG»] содержалась нужных мне размеров, только размеры на странице просмотра товара настраиваются.
Еше проблема в том, что туда где список товаров попадает картинка из «Подробно», а картинки из «Анонс» вообще нигде нет. И вот в этой переменной и хранится картинка из «Подробно» — $arElement[«PREVIEW_IMG»]
Первый вопрос тот же, как сделать чтобы в списке товаров выводились картинки с нужными мне размерами?
Второй вопрос как сделать чтобы в компоненте списка товаров в переменной $arElement[«PREVIEW_IMG»] находились данные от картинки Анонса а не картинки Детально?
Заранее благодарю за помощь.
Битрикс малый бизнес 10.0
Сообщений: 987 Баллов: 87 Регистрация: 05.03.2009
02.05.2011 17:15:02
Подробнее про пункты:
1. Рабочий стол -> Контент -> Информ. блоки -> Типы информ. блоков -> Ваш инфоблок
Смотрим «Поля», нужном ставим Уменьшать если большая и размеры
while ($arElement = $res->GetNext()) < $image = CFile::GetFileArray($arElement['PHOTO']); if (!empty($image)) < // Пропорциональное уменьшение аватарки $tmpImage = CFile::ResizeImageGet($image, array("width" =>150, "height" => 150), BX_RESIZE_IMAGE_PROPORTIONAL, false); $image['src'] = $tmpImage['src']; > else < // Картинка, если аватарки нет $image['src'] = '/noimage150.png'; >print ''; >
З.Ы. Если вам нужны именно квадратные изображения, используйте еще clip: rect(Y1, X1, Y2, X2)
Постоянный посетитель
Сообщений: 183 Баллов: 32 Регистрация: 21.07.2008
02.05.2011 17:20:28
Ведь если я изменю файл модуля то при обновлении системы все вернется назад. или другого выхода нет?
Сообщений: 987 Баллов: 87 Регистрация: 05.03.2009
02.05.2011 17:20:44
| Цитата |
|---|
| Связь пишет: Второй вопрос как сделать чтобы в компоненте списка товаров в переменной $arElement[«PREVIEW_IMG»] находились данные от картинки Анонса а не картинки Детально? |
В шаблоне компонента выведите $arElement (пример: print_r($arElement)
И посмотрите там картинку анонса.
Сообщений: 987 Баллов: 87 Регистрация: 05.03.2009
02.05.2011 17:22:05
| Цитата |
|---|
| Связь пишет: Ведь если я изменю файл модуля то при обновлении системы все вернется назад. или другого выхода нет? |
Вы не будуте изменять компонент или модуль, вы будете редактировать шаблон компонента — это другое.
В шаблоне компонента делайте любые модификации. Никакого вреда системе этим не нанесете.
Постоянный посетитель
Сообщений: 183 Баллов: 32 Регистрация: 21.07.2008
02.05.2011 17:29:43
спасибо, во всем разобрался.
Постоянный посетитель
Сообщений: 133 Баллов: 22 Регистрация: 28.08.2011
30.09.2011 09:47:04
Подскажите пожалуйста: битрикс уменьшил фото используя BX_RESIZE_IMAGE_EXACT.
Фото получились обрезанные и не пропорциональные.Как обрезать их заново используя BX_RESIZE_IMAGE_PROPORTIONAL ?
Заглянувший
Сообщений: 6 Регистрация: 24.11.2011
Краснов Кирилл
29.12.2011 17:43:35
Объясните, пожалуйста. В настройках инфоблока стоит урезать если больше 110×110. Пытаюсь вывести каталог товара с фильтром, а в PREVIEW_IMAGE картинка оригинального или детального размера. Хотя в анонсе на товар картинка корректна.
Страницы: 1
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507

© 2001-2023 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности
Права доступа к файлам и папкам в Linux
![]()

Поговорив о пользователях и группах, самое время вспомнить про права доступа, которые для них настраиваются. Общая схема прав одинакова и для файлов, и для папок. Вы уже видели, как система отображает права доступа, в выводе команды ls -l , которая показывает содержимое директории: Первые 10 символов содержат информацию о правах к файлу или каталогу.
rw- права пользователя-владельца
r— права пользователей группы-владельца
r— права всех остальных пользователей
Далее идёт имя пользователя-владельца и группы -владельца.
root файл принадлежит пользователю root
root файл принадлежит группе root
Исходя из этого, иерархия доступа на уровне пользователей разбивается следующим образом: права пользователя-владельца, права участников группы-владельца и права всех остальных. Соответственно, для каждой категории указывается, какие операции с файлом ей доступны: чтение (r), запись (w) или выполнение (x) — для исполняемых файлов. Для директорий параметры те же, но обозначают немного другое: просмотр директории (r), создание папок / файлов (w) внутри директории, переход в директорию (x). Каждый из этих уровней доступа можно выразить в восьмеричной системе с помощью числового значения: 4 (r), 2 (w), 1 (x). Вот так мы и получаем общую схему прав:
| a — любые пользователи | ||||||||
| u — права пользователя | g — права группы | o — права всех остальных | ||||||
| r | w | x | r | w | x | r | w | x |
| 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
Для отображения уровня прав помимо формата rwxrwxrwx используется упомянутый восьмеричный формат. Для этого достаточно сложить все уровни прав по категориям:
rwxrwxrwx = (4+2+1), (4+2+1), (4+2+1) = 777
- Смена владельца файла или директории
- Смена прав доступа к файлу или директории
- Изменение атрибутов файлов
Смена владельца файла или директории
Для смены владельца доступны два инструмента. Первый — chown , позволяет изменить пользователя и группу файла или папки:
chown [новый пользователь]:[новая группа] [файл или папка]
Если не указывать группу, изменится только пользователь-владелец. Если не указывать пользователя ( :[новая группа] ), изменится только группа-владелец.
При изменении прав на директории можно использовать параметр -R . Он рекурсивно изменит владельца всех вложенных директорий и файлов. Представим, что нам нужно предоставить права на папку new-user для одноимённого пользователя и его группы. Команда для этого будет выглядеть так:
chown -R new-user:new-group /home/users/new-user
Второй инструмент — chgrp . В отличие от первого, меняет только группу-владельца:
chgrp [группа] [файл или папка]
Как и chown, может работать рекурсивно с помощью ключа -R .
Смена владельца файла или директории
Для работы непосредственно с правами используется команда chmod :
chmod [настройки прав] [файл или папка]
При работе с директориями опция -R позволит изменить права на все вложенные файлы и папки.
Настройки прав в chmod можно определять двумя способами:

-
Указав категорию ( u — пользователь-владелец, g — группа-владелец, o — другие пользователи, a — все пользователи), модификатор ( + , — , = ) и, соответственно, нужные права ( r , w , x ). Например, представим, что у нас есть файл example.txt с максимальным уровнем прав для всех категорий пользователей: Допустим, мы не хотим, чтобы кто-то в принципе мог запускать этот файл на выполнение. В таком случае нам нужно убрать параметр «x» из прав всех категорий пользователей сразу. Это можно сделать так:
chmod a-x example.txt

Представим, что потом мы решили вернуть владельцу права на запуск файла. То есть нам нужно добавить параметр «x» в категорию пользователя-владельца:
chmod u+x example.txt

Если вдруг мы захотим изменить весь набор параметров для отдельной категории разом, это будет выглядеть следующим образом:
chmod u=rwx example.txt
chmod 777 example.txt
В примере мы назначили максимальный уровень доступа всем категориям пользователей. Соответственно, для изменения уровня прав отдельной категории пользователей нужно изменить только это числовое значение. Например, запретим исполнение файла для всех пользователей:
chmod 666 example.txt
А потом вернём, но только пользователю-владельцу:
chmod 766 example.txt
Бывает, что нам нужно изменить права только на все папки или только на все файлы в определённой директории. Часто с этим можно столкнуться при настройке прав на файлы сайтов. Вот вам пара однострочников на этот случай:
-
Смена прав на 755 для всех папок внутри /var/www/sites/example.com :
find /var/www/sites/example.com/ -type d -exec chmod 755 <> \;
find /var/www/sites/example.com/ -type f -exec chmod 644 <> \;
Изменение атрибутов файлов
Помимо прав доступа и владельца каждый файл может иметь ряд атрибутов, определяемых на уровне файловой системы. Атрибуты показывают, какие операции могут или не могут проводиться с файлом в принципе, независимо от того, кто им владеет.
Посмотреть атрибуты файлов в текущей директории можно с помощью команды lsattr . Если запустить её без аргументов, она выведет атрибуты всех файлов в текущей директории. Если указать путь к файлу или папке, она перечислит свойства указанного файла или списка файлов в указанной папке соответственно:
lsattr example.txt

Первые 20 символов в строке предназначены для отображения атрибутов файла.
Список атрибутов может отличаться в зависимости от файловой системы. Вот список основных:
«godmode» — файл становится неуязвим для любых изменений. Его нельзя удалить, переименовать, изменить содержимое, создать символьную ссылку на него.
в файл с таким атрибутом можно только добавлять новые данные. Старое содержимое изменить или удалить не получится. Это пригодится для защиты от вредоносных вставок или замен в файлах, куда постоянно записываются данные — например, в логах. Доступ к изменению старого содержимого по умолчанию есть только у суперпользователя root .
активирует безвозвратное удаление файла. В том смысле, что после удаления файл нельзя будет восстановить с носителя — при удалении все использовавшиеся для хранения файла блоки на диске перезаписываются нулями.
активирует «обратимое» удаление файлов. Это значит, что при удалении файла с этим атрибутом его содержимое можно восстановить.
сжатый файл. Все данные, записываемые в файл, автоматически сжимаются, а данные, извлекаемые из файла — возвращаются в исходное состояние.
настраивает для файла исключение при использовании утилиты dump . То есть файл не будет включен в архив при создании резервной копии этим способом.
показывает, что файл в качестве указателей использует экстенты.
в журналируемых файловых системах ( ext3 , ext4 ) указывает на то, что при сохранении файла он сначала будет записан в журнал ФС, и только потом — на диск.
указывает, что при работе с файлом система не будет обновлять информацию о времени доступа к нему.
атрибут для директорий. Указывает, что все изменения в папке синхронно записываются на диск, минуя кэш.
указывает, что все изменения в файле с этим атрибутом записываются синхронно на диск, минуя кэш.
Изменить атрибуты файла позволяет команда chattr :
chattr [модификатор][изменяемые атрибуты] [целевой файл или папка]
То есть, если нам нужно защитить какой-то важный файл от посягательств, можно использовать такую команду:
chattr +i example.txt

Проверяем — посягательства не работают.
Если же нам нужно вернуть файл в нормальное состояние, нужно выполнить обратную операцию:
chattr -i example.txt
Для просмотра более подробной информации о файловых атрибутах, их ограничениях и правилах применения используйте команду:
Фото в личном профиле
Для того, чтобы ваши коллеги узнавали вас в лицо, персонализируйте свой профиль. Добавьте аватар на личной странице и тогда вас не спутают с другими сотрудниками.

Как добавить аватар с диска
Если у вас уже есть готовая фотография, добавьте ее с компьютера. Для этого перейдите в личный профиль и наведите мышкой на область аватара. Нажмите Загрузить фото, выберите и загрузите нужное изображение с диска.

Для аватарки вашего профиля подойдут форматы изображений .jpg .png и .gif. Если изображение не сохраняется в профиле, попробуйте сначала удалить прошлое фото, а затем загрузить новое.
Выровняйте загруженное фото, перетащив его мышкой с зажатой левой кнопкой. В правой верхней части аватара есть ползунок, с помощью которого вы также можете изменить размер изображения. Не забудьте сохранить изменения.

Как создать аватар с помощью веб-камеры?
Если вы не хотите долго искать подходящую фотографию для аватара, сделайте моментальное фото с помощью веб-камеры вашего компьютера. Нажмите Сделать фото в области аватара вашего профиля.

Сделайте фото, нажав кнопку с фотоаппаратом.

При необходимости вы сможете повторить попытку, для этого нажмите Попробовать снова. Выровняйте и измените размер изображения. Сохраните изменения.

Такими же способами вы можете сменить уже существующий аватар.
Для того, чтобы удалить фотографию из профиля, нажмите на крестик в правом верхнем углу аватара.

Также рекомендуем почитать:
Уменьшаем картинки в MORE_PHOTO при добавлении
Очень удобно дополнительные картинки товара загружать в множественное свойство с типом «файл» — MORE_PHOTO.
Но есть одно неудобство — нельзя штатными средствами настроить автоматический ресайз этих фотографий при добавлении. Так, клиент может грузить на сайт фотки с разрешением 4000х3000 пикселей, и дисковое пространство будет неоправданно забиваться.
Чтобы уменьшить фотки — можно использовать такой обработчик:
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("MyResizeClass", "OnAfterIBlockElement")); AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("MyResizeClass", "OnAfterIBlockElement")); class MyResizeClass < function OnAfterIBlockElement(&$arFields) < global $APPLICATION, $USER; $PROPERTY_CODE = "MORE_PHOTO"; // код свойства $imageMaxWidth = 1024; // Максимальная ширина уменьшенной картинки $imageMaxHeight = 768; // Максимальная высота уменьшенной картинки // Находим свойство $dbRes = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $arFields["ID"], "sort", "asc", array("CODE" =>$PROPERTY_CODE)); while ($arMorePhoto = $dbRes->GetNext(true, false)) < if ($arMorePhoto["PROPERTY_TYPE"] == "F" // файл && $arMorePhoto["MULTIPLE"] == "Y" // множественное ) < // находим подробные сведения о файле $arFile = CFile::GetFileArray($arMorePhoto["VALUE"]); // проверяем, что файл является картинкой if (!CFile::IsImage($arFile["FILE_NAME"])) continue; // Если размер больше допустимого if ($arFile["WIDTH"] >$imageMaxWidth || $arFile["HEIGHT"] > $imageMaxHeight) < // Временная картинка $tmpFilePath = $_SERVER['DOCUMENT_ROOT']."/upload/tmp/".$arFile["FILE_NAME"]; // Уменьшаем картинку $resizeRez = CFile::ResizeImageFile( // уменьшение картинки для превью $source = $_SERVER['DOCUMENT_ROOT'].$arFile["SRC"], $dest = $tmpFilePath, array( 'width' =>$imageMaxWidth, 'height' => $imageMaxHeight ), $resizeType = BX_RESIZE_IMAGE_PROPORTIONAL, // метод ресайза $waterMark = array(), // водяной знак (пустой) $jpgQuality = 95 // качество уменьшенной картинки в процентах ); // Записываем изменение в свойство if ($resizeRez) < $arNewFile = CFile::MakeFileArray($tmpFilePath); CIBlockElement::SetPropertyValueCode($arFields["ID"], $PROPERTY_CODE, array($arMorePhoto["PROPERTY_VALUE_ID"] =>array( "VALUE" => $arNewFile, "DESCRIPTION"=> $arMorePhoto["DESCRIPTION"] )) ); // Удалим временный файл unlink($tmpFilePath); > > > > > >
Данный скрипт можно применить как на новом сайте, так и на уже существующем (например, если у товара уже были загружены большие фотки, то если зайти на страницу редактирования этого товара и нажать «сохранить» то фотки автоматом уменьшатся). При этом старый файл с диска удалится (перезапишется на новый).
Кроме того, данный способ сохраняет свойство description если оно было задано у картинок.
