本文整理汇总了PHP中MG::translitIt方法的典型用法代码示例。如果您正苦于以下问题:PHP MG::translitIt方法的具体用法?PHP MG::translitIt怎么用?PHP MG::translitIt使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MG
的用法示例。
在下文中一共展示了MG::translitIt方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addNews
/**
* Добавляет новость в базу данных.
*
* @param array $array массив с данными о новости.
* @return bool|int в случае успеха возвращает id добавленной новости.
*/
public function addNews($array)
{
unset($array['id']);
$result = array();
$array['url'] = empty($array['url']) ? MG::translitIt($array['title']) : $array['url'];
if (strlen($array['url']) > 60) {
$array['url'] = substr($array['url'], 0, 60);
}
// Исключает дублирование.
$dublicatUrl = false;
$tempArray = $this->getNewsByUrl($array['url']);
if (!empty($tempArray)) {
$dublicatUrl = true;
}
if (DB::buildQuery('INSERT INTO `mpl_news` SET add_date=now(), ', $array)) {
$id = DB::insertId();
// Если url дублируется, то дописываем к нему id новости.
if ($dublicatUrl) {
$this->updateNews(array('id' => $id, 'url' => $array['url'] . '_' . $id));
}
$array['id'] = $id;
$result = $array;
}
return $result;
}
示例2: parseCategoryPath
/**
* Парсит путь категории возвращает набор категорий.
* @param type $path - список категорий через /
*/
public function parseCategoryPath($path)
{
$i = 1;
$categories = array();
if (!$path) {
return $categories;
}
$parent = $path;
$parentTranslit = MG::translitIt($parent, 1);
$parentTranslit = URL::prepareUrl($parentTranslit);
$categories[$parent]['title'] = URL::parsePageUrl($parent);
$categories[$parent]['url'] = URL::parsePageUrl($parentTranslit);
$categories[$parent]['parent_url'] = URL::parseParentUrl($parentTranslit);
$categories[$parent]['parent'] = 0;
while ($parent != '/') {
$parent = URL::parseParentUrl($parent);
$parentTranslit = MG::translitIt($parent, 1);
$parentTranslit = URL::prepareUrl($parentTranslit);
if ($parent != '/') {
$categories[$parent]['title'] = URL::parsePageUrl($parent);
$categories[$parent]['url'] = URL::parsePageUrl($parentTranslit);
$categories[$parent]['parent_url'] = URL::parseParentUrl($parentTranslit);
$categories[$parent]['parent_url'] = $categories[$parent]['parent_url'] != '/' ? $categories[$parent]['parent_url'] : '';
$categories[$parent]['parent'] = 0;
}
}
$categories = array_reverse($categories);
return $categories;
}
示例3: addProduct
/**
* Добавляет товар в базу данных.
* @param array $array массив с данными о товаре.
* @return bool|int в случае успеха возвращает id добавленного товара.
*/
public function addProduct($array, $clone = false)
{
if (empty($array['title'])) {
return false;
}
$userProperty = $array['userProperty'];
$variants = !empty($array['variants']) ? $array['variants'] : array();
// варианты товара
unset($array['userProperty']);
unset($array['variants']);
unset($array['id']);
$result = array();
$array['url'] = empty($array['url']) ? MG::translitIt($array['title']) : $array['url'];
$maskField = array('title', 'meta_title', 'meta_keywords', 'meta_desc', 'image_title', 'image_alt');
foreach ($array as $k => $v) {
if (in_array($k, $maskField)) {
$v = htmlspecialchars_decode($v);
$array[$k] = htmlspecialchars($v);
}
}
if (!empty($array['url'])) {
$array['url'] = URL::prepareUrl($array['url']);
}
// Исключает дублирование.
$dublicatUrl = false;
$tempArray = $this->getProductByUrl($array['url']);
if (!empty($tempArray)) {
$dublicatUrl = true;
}
if (DB::buildQuery('INSERT INTO `' . PREFIX . 'product` SET ', $array)) {
$id = DB::insertId();
// Если url дублируется, то дописываем к нему id продукта.
if ($dublicatUrl) {
$this->updateProduct(array('id' => $id, 'url' => $array['url'] . '_' . $id, 'sort' => $id));
} else {
$this->updateProduct(array('id' => $id, 'url' => $array['url'], 'sort' => $id));
}
$array['id'] = $id;
$array['userProperty'] = $userProperty;
$userProp = array();
if ($clone) {
if (!empty($userProperty)) {
foreach ($userProperty as $property) {
$userProp[$property['property_id']] = $property['value'];
if (!empty($property['product_margin'])) {
$userProp["margin_" . $property['property_id']] = $property['product_margin'];
}
}
$userProperty = $userProp;
}
}
if (!empty($userProperty)) {
$this->saveUserProperty($userProperty, $id);
}
// Обновляем и добавляем варианты продукта.
$this->saveVariants($variants, $id);
$variants = $this->getVariants($id);
foreach ($variants as $variant) {
$array['variants'][] = $variant;
}
$tempProd = $this->getProduct($id);
$array['category_url'] = $tempProd['category_url'];
$array['product_url'] = $tempProd['product_url'];
$result = $array;
}
$this->updatePriceCourse($currencyShopIso, array($result['id']));
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例4: newCategory
/**
* Создание новой категории.
* @param $category - категория.
*/
function newCategory($category)
{
$url = URL::prepareUrl(MG::translitIt($category['name'], 1));
$parent_url = MG::get('category')->getParentUrl($category['parent_id']);
$parent = URL::prepareUrl(MG::translitIt($category['parentname'], 1));
$data = array('title' => $category['name'], 'url' => str_replace(array('/', '\\'), '-', $url), 'parent' => $category['parent_id'], 'html_content' => $category['description'], 'meta_title' => $category['name'], 'meta_keywords' => $category['name'], 'meta_desc' => MG::textMore($category['description'], 157), 'invisible' => 0, 'parent_url' => $parent_url, '1c_id' => $category['1c_id']);
$res = DB::query('SELECT *
FROM `' . PREFIX . 'category`
WHERE `1c_id`=' . DB::quote($category['1c_id']));
if ($row = DB::fetchAssoc($res)) {
DB::query('
UPDATE `' . PREFIX . 'category`
SET ' . DB::buildPartQuery($data) . '
WHERE `1c_id`=' . DB::quote($category['1c_id']));
return $row['id'];
} else {
$data = MG::get('category')->addCategory($data);
return $data['id'];
}
return 0;
}
示例5: uploadImage
/**
* Загружает картинку от пользователей с публичной части сайта на сервер
* @param string $subDir - имя каталога куда будет загружено изображение
* @return boolean
*/
public function uploadImage($subDir = '')
{
$validFormats = array('jpeg', 'jpg', 'png', 'gif');
if (isset($_POST) && 'POST' == $_SERVER['REQUEST_METHOD']) {
if (!empty($_FILES['upload'])) {
$imageinfo = getimagesize($_FILES['upload']['tmp_name']);
$file_array = $_FILES['upload'];
} elseif (!empty($_FILES['logo'])) {
$imageinfo = getimagesize($_FILES['logo']['tmp_name']);
$file_array = $_FILES['logo'];
}
$name = $file_array['name'];
$size = $file_array['size'];
$type = $file_array['type'];
if (strlen($name)) {
$fullName = explode('.', $name);
$ext = array_pop($fullName);
$name = implode('.', $fullName);
// проверка соответствмя расширения с разрешенными,
if (in_array(strtolower($ext), $validFormats)) {
// проверка типа файла и на количество типов
if (strpos($type, 'image') !== false) {
if ($imageinfo['mime'] == 'image/gif' || $imageinfo['mime'] == 'image/jpeg' || $imageinfo['mime'] == 'image/jpg' || $imageinfo['mime'] == 'image/png') {
if (substr_count($type, '/') <= 1) {
// проверка на установелнный размер файла и переименование латинским написанием
if ($size < 1024 * 2 * 1024 && !empty($file_array['tmp_name'])) {
//$file_array['tmp_name'] будет пустым если размер загруженного файла превышает размер установленный параметром upload_max_filesize в php.ini
$name = str_replace(" ", "-", $name);
$name = MG::translitIt($name);
$actualImageName = $name . "." . $ext;
if (file_exists('uploads/' . $subDir . $name . "." . $ext)) {
$actualImageName = $name . time() . "." . $ext;
}
$tmp = $file_array['tmp_name'];
// пересохранение с помощью GD
if ($this->resavingImageFromPublic($actualImageName, $tmp, $dirUpload = 'uploads/' . $subDir)) {
return SITE . '/' . $dirUpload . $actualImageName;
}
}
}
}
}
}
}
}
return false;
}
示例6: upload
/**
* Save uploaded files
*
* @param array
* @return array
* @author Dmitry (dio) Levashov
**/
protected function upload($args)
{
$target = $args['target'];
$volume = $this->volume($target);
$files = isset($args['FILES']['upload']) && is_array($args['FILES']['upload']) ? $args['FILES']['upload'] : array();
$result = array('added' => array(), 'header' => empty($args['html']) ? false : 'Content-Type: text/html; charset=utf-8');
$paths = $args['upload_path'] ? $args['upload_path'] : array();
if (!$volume) {
return array('error' => $this->error(self::ERROR_UPLOAD, self::ERROR_TRGDIR_NOT_FOUND, '#' . $target), 'header' => $header);
}
$non_uploads = array();
if (empty($files)) {
if (isset($args['upload']) && is_array($args['upload'])) {
foreach ($args['upload'] as $i => $url) {
// check is data:
if (substr($url, 0, 5) === 'data:') {
list($data, $args['name'][$i]) = $this->parse_data_scheme($url, $volume->getMimeTable());
} else {
$data = $this->get_remote_contents($url);
}
if ($data) {
$_name = isset($args['name'][$i]) ? $args['name'][$i] : preg_replace('~^.*?([^/#?]+)(?:\\?.*)?(?:#.*)?$~', '$1', rawurldecode($url));
if ($_name) {
$_ext = '';
if (preg_match('/(\\.[a-z0-9]{1,7})$/', $_name, $_match)) {
$_ext = $_match[1];
}
$tmpfname = DIRECTORY_SEPARATOR . 'ELF_FATCH_' . md5($url . microtime()) . $_ext;
$tmpPath = sys_get_temp_dir();
if (!@touch($tmpPath . $tmpfname)) {
if ($tmpPath = $volume->getTempPath()) {
$tmpfname = $tmpPath . $tmpfname;
} else {
$tmpfname = '';
}
} else {
$tmpfname = $tmpPath . $tmpfname;
}
if ($tmpfname) {
if (file_put_contents($tmpfname, $data)) {
$non_uploads[$tmpfname] = true;
$files['tmp_name'][$i] = $tmpfname;
$files['name'][$i] = preg_replace('/[\\/\\?*:|"<>]/', '_', $_name);
$files['error'][$i] = 0;
} else {
@unlink($tmpfname);
}
}
}
}
}
}
if (empty($files)) {
return array('error' => $this->error(self::ERROR_UPLOAD, self::ERROR_UPLOAD_NO_FILES), 'header' => $header);
}
}
foreach ($files['name'] as $i => $name) {
$name = MG::translitIt($name);
if (($error = $files['error'][$i]) > 0) {
$result['warning'] = $this->error(self::ERROR_UPLOAD_FILE, $name, $error == UPLOAD_ERR_INI_SIZE || $error == UPLOAD_ERR_FORM_SIZE ? self::ERROR_UPLOAD_FILE_SIZE : self::ERROR_UPLOAD_TRANSFER);
$this->uploadDebug = 'Upload error code: ' . $error;
break;
}
$tmpname = $files['tmp_name'][$i];
$path = $paths && !empty($paths[$i]) ? $paths[$i] : '';
// do hook function 'upload.presave'
if (!empty($this->listeners['upload.presave'])) {
foreach ($this->listeners['upload.presave'] as $handler) {
call_user_func_array($handler, array(&$path, &$name, $tmpname, $this, $volume));
}
}
if (($fp = fopen($tmpname, 'rb')) == false) {
$result['warning'] = $this->error(self::ERROR_UPLOAD_FILE, $name, self::ERROR_UPLOAD_TRANSFER);
$this->uploadDebug = 'Upload error: unable open tmp file';
if (!is_uploaded_file($tmpname)) {
if (@unlink($tmpname)) {
unset($non_uploads[$tmpfname]);
}
continue;
}
break;
}
if ($path) {
$_target = $volume->getUploadTaget($target, $path, $result);
} else {
$_target = $target;
}
if (!$_target || ($file = $volume->upload($fp, $_target, $name, $tmpname)) === false) {
$result['warning'] = $this->error(self::ERROR_UPLOAD_FILE, $name, $volume->error());
fclose($fp);
if (!is_uploaded_file($tmpname)) {
if (@unlink($tmpname)) {
unset($non_uploads[$tmpfname]);
//.........这里部分代码省略.........