Специальные методы
Даннная группа методов предназначена для проведения разовых операций с данными без взаимодействия с другими свойствами и методами классов. Большая часть таких функций - статические и расположены в классе Service.
- cutText($text, $length[, $end]) - обрезка текста до нужного количества символов с сохранением последнего слова. В необязательно параметре можно передать строковое значение, которое будет добавлено к обрезанному тексту если, исходный текст длиннее значения $length
- randomString($length) - возвращает случайную строку на латинице в нижнем регистре
- strongRandomString($length) - возвращает случайную строку на латинице с символами в верхнем и нижнем регистрах
- addFileRoot($path) - добавляет корень файловой системы к файлу, $path должен начинаться от корня проекта, без начального "/" (обычно "userfiles/models/...")
- removeFileRoot($path) - убирает корень файловой системы, оставляя путь до файла от корня проекта без начального "/"
- getExtension($file) - возвращает расширение файла (без точки)
- removeExtension($file) - возвращает значение пути файла без расширения
- setFullHttpPath($path) - добавляет к ссылке текущий домен из файла config/setup.php
- translateFileName($file_name) - переводит в транслит на латинице название файла
- addRootPath($path) - добавляет к ссылке корень сайта
- removeRootPath($path) - убирает у ссылки корень сайта
Примеры использования методов класса Service.
echo Service :: cutText($text, 200, "..."); echo Service :: randomString(7); echo Service :: setFullHttpPath("news/25/");
Добавление водяного знака на изображение
Для наложения водяного знака на изображение необходимо в начале подготовить файл (желательно полупрозрачный в png формате). Файл можно разместить в папке "media/images/". Далее при создании уменьшенной копии изображения необходимо передать параметры как на примерах ниже. Изначально водяной знак устанавливается по центру, при этом его можно двигать при помощи следующих параметров:
- "watermark-margin-top" - отступ от верхнего края
- "watermark-margin-right" - отступ от правого края
- "watermark-margin-bottom" - отступ от нижнего края
- "watermark-margin-left" - отступ от левого края
Внимание! Если для изображений ранее уже создавались уменьшенные копии (после вызова методов cropImage или resizeImage), то их необходимо удалить, и тогда новые изображения будут иметь водной знак.
//Добавление водяного знака на уменьшенную копию изображения внутри класса модели $image_params = array("watermark" => "media/images/watermark.png"); $image = $this -> cropImage($this -> getFirstImage($row['images']), 250, 250, $image_params); //Добавление водяного знака со смещением $image_params = array("watermark" => "media/images/watermark.png", "watermark-margin-right" => 10, "watermark-margin-top" => 10); $image = $this -> resizeImage($this -> getFirstImage($row['images']), 250, 250, $image_params); //Добавление водяного знака с центровкой $image_params = array("watermark" => "media/images/watermark.png", "watermark-center-position" => true); $image = $this -> cropImage($this -> getFirstImage($row['images']), 170, 170, $image_params); //Добавление водяного знака на первое изображение галереи для лайтбокса if($product -> images) { $image = $product -> getFirstImage("images"); $image_params = array("watermark" => "media/images/watermark.png", "only-source" => true, "watermark-margin-left" => 5, "watermark-margin-bottom" => 5); $image_source = $mv -> products -> resizeImage($image, 1200, 1200, $image_params); unset($image_params["only-source"]); $image_params["alt-text"] = $product -> name; echo "<a class="fancybox" rel="group" href="".$image_source."">"; echo $mv -> products -> resizeImage($image, 340, 280, $image_params); echo "</a>"; }
Предыдущий раздел
Отправка email