function showGenerateurl() { $thisRequest = fvRequest::getInstance(); $transliterator = new Translit(); $url = $transliterator->Transliterate($thisRequest->getRequestParameter("name")); $this->__assign('url', $url); return $this->__display('generateurl.tpl'); }
/** * Filter value * * @param string $string * @return string */ public function filter($string) { $string = preg_replace('#[^0-9a-z]+#i', '-', parent::filter($string)); $string = strtolower($string); $string = trim($string, '-'); return $string; }
/** * Подготовка СЕО ссылки * @param string $url * @param string $wordName * @param obj $class * @param int $id * @return string */ public static function prepairUrl($url, $wordName = null, $class = false, $id = false) { //Если сслыка пустая if ($url == '') { //Обрезаем часть слова $url = cText::wordTrim($wordName, 30); } //И превращаем в ссылку $url = Translit::asURLSegment($url); $criteria = new CDbCriteria(); $criteria->compare('url', $url, true); if ($id) { $criteria->addCondition("id != " . $id . ""); } if ($class !== false) { $model = new $class(); $data = $model->find($criteria); $baseURl = $url; $i = 1; if ($data !== null) { do { $url = $baseURl . $i; $criteria->compare('url', $url, true); $data = $model->find($criteria); $i++; } while ($data !== null); } } return $url; }
static function slugifyPreserveWords($str, $maxLen) { $str = Translit::translit($str); if (strlen($str) >= $maxLen) { $words = explode('-', $str); //print_r ($words); do { $len = 0; $useWords = sizeof($words); $ok = true; foreach ($words as $p => $word) { // print "\n".$word; $len += mb_strlen($word) + 1; // print ' '.$len; if ($len > $maxLen) { $useWords = $p; // print '--'.$useWords; break; } } if ($useWords > 1 && strlen($words[$useWords - 1]) < 2) { unset($words[$useWords - 1]); $words = array_values($words); $ok = false; } } while (!$ok); // print "\n".$str.' - use words '.$useWords.', len='; $str = $useWords > 0 ? implode('-', array_slice($words, 0, $useWords)) : substr($str, 0, $maxLen); // print "\n".$str.'('.strlen($str).')'; // exit(); } return $str; }
public function setData(Data $data) { parent::setData($data); if ($fPropName = $this->getData()->getFieldByName('prop_name')) { $name = Translit::transliterate($fPropName->getRowData(0), '_'); $fPropName->setData(preg_replace("/[^A-Za-z0-9_\\.]/", '', $name), true); } }
public function index() { set_time_limit(6000); if (!isset($this->request->query['brand']) or !$this->request->query['brand']) { echo 'Укажите производителя'; exit; } $id = $this->CarType->field('CarType.id', array('CarType.slug' => Translit::convert($this->request->query['brand'], true))); if (!$id) { echo 'Производитель не найден'; exit; } try { $this->ZzapParser->saveSubsections($id); echo 'all info saved succesfully'; exit; } catch (Exception $e) { echo 'Error: ' . $e->getMessage(); exit; } }
private function saveSections($parsedSections, $brandId) { $modelList = $this->getModelsListForBrand($brandId); foreach ($parsedSections as $modelName => $sectionList) { $modelName = trim($modelName); $modelName = str_replace(' ', '', $modelName); $catId = array_search(Translit::convert($modelName, true), $modelList); if (!$catId) { $data['CarSubtype'] = array('object_type' => 'CarSubtype', 'title' => $modelName, 'slug' => Translit::convert($modelName, true), 'cat_id' => $brandId); $this->CarSubtype->saveAll($data); $catId = $this->CarSubtype->id; } $existSubsection = $this->getExistSubsections($catId); foreach ($sectionList as $section) { $section = trim($section); $sectionId = array_search(Translit::convert($section, true), $existSubsection); if (!$sectionId) { $saveData['CarSubsection'] = array('object_type' => 'CarSubsection', 'cat_id' => $catId, 'title' => $section, 'slug' => Translit::convert($section, true)); $this->CarSubsection->saveAll($saveData); } } } }
//заносим в переменную путь до аватара. $delfull = $path_to_90_directory . $filename; unlink($delfull); //удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру. } else { //в случае несоответствия формата, выдаем соответствующее сообщение exit("Only <strong>JPG,GIF or PNG</strong> is suitable!"); } //конец процесса загрузки и присвоения переменной $avatar адреса загруженной авы } if (!empty($_FILES['gallery'])) { $file_ary = rearrange($_FILES['gallery']); $folder = str_replace(' ', '_', $title); $folder = str_replace(':', '', $folder); $folder = str_replace('!', '', $folder); $folder = Translit::str2url($folder); if (!is_dir("../images/galleries/{$folder}")) { mkdir("../images/galleries/{$folder}"); } $path_to_gallery = "../images/galleries/{$folder}/"; $pics = ""; foreach ($file_ary as $file) { if (preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/', $file['name'])) { $filename = $file['name']; $source = $file['tmp_name']; $target = $path_to_gallery . $filename; move_uploaded_file($source, $target); if (preg_match('/[.](GIF)|(gif)$/', $filename)) { $im = imagecreatefromgif($path_to_gallery . $filename); //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия }
public function filter($value) { return parent::url($value); }
?> <?php echo $form->hiddenField($transaction, 'guid'); ?> <?php } ?> <?php if ($config->EMULATION === 'false') { ?> <?php echo CHtml::hiddenField('LMI_PAYMENT_AMOUNT', number_format($transaction->amount, 2)); ?> <?php echo CHtml::hiddenField('LMI_PAYMENT_DESC', CHtml::encode(Translit::Encode($transaction->spec->title))); ?> <?php echo CHtml::hiddenField('LMI_PAYMENT_NO', $transaction->id); ?> <?php echo CHtml::hiddenField('LMI_PAYEE_PURSE', $PAYEE_PURSE); ?> <?php if (!empty($config->sim_mode)) { echo CHtml::hiddenField('LMI_SIM_MODE', $config->sim_mode); ?> <?php } ?> <?php
$ent_hyphenminus = isset($_REQUEST['ent_hyphenminus']) ? $_REQUEST['ent_hyphenminus'] : ''; $safe_numbers = isset($_REQUEST['safe_numbers']) ? $_REQUEST['safe_numbers'] : ''; $safe_latin_chars = isset($_REQUEST['safe_latin_chars']) ? $_REQUEST['safe_latin_chars'] : ''; $p = ''; $p1 = ''; $p3 = ''; $p4 = ''; $p5 = ''; if (!empty($source)) { $p1 = $source; if (!isset($Encrypt) || empty($Encrypt)) { $Encrypt = new Encrypt(); } $p1 = $Encrypt->fix_filename_str($p1); if (!isset($Translit) || empty($Translit)) { $Translit = new Translit(); } $p1 = $Translit->Transliterate($p1); $p1 = $Encrypt->unix_filename($p1); $p = $source; if (!isset($Entities) || empty($Entities)) { $Entities = new Entities(); } $p = $Entities->ipa_text_to_dec_ents($p); /* this replacement should be done before any other conversion to numeric entities */ //$p = $Entities->text_digits_to_dec_ents($p); $p = $Entities->text_symbs_to_dec_ents($p); $p = $Entities->named_symbs_to_dec_ents($p); //$p = $Entities->latin_text_chars_to_dec_ents($p); $p = $Entities->acc_text_to_dec_ents($p);
function translitIt($str) { $str = Translit::transliterate($str); $str = Translit::asURLSegment($str); return $str; }
/** * @param mixed $title * @param mixed $pattern * @return string */ public function _get_title_src($title, $pattern = '') { $pattern = empty($pattern) ? "[^a-zA-Z0-9-]+" : $pattern; $title = strtolower(\Translit::Encode($title)); $title = preg_replace("#" . $pattern . "#us", '', $title); preg_match_all("#(\\d+-\\d+)+#us", $title, $matches); if (!empty($matches)) { foreach ($matches[0] as $match) { $title = str_replace($match, str_replace('-', '&', $match), $title); } } return md5(str_replace('&', '-', str_replace('-', '', $title))); }
public static function UrlTranslit($string){ $string = preg_replace("/[_\s\.,?!\[\](){}]+/", "-", $string); $string = preg_replace("/-{2,}/", "--", $string); $string = preg_replace("/_-+_/", "--", $string); $string = preg_replace("/[_\-]+$/", "", $string); $string = Translit::Transliterate($string); $string = strtolower($string); $string = preg_replace("/j{2,}/", "j", $string); $string = preg_replace("/[^0-9a-z_\-]+/", "", $string); return $string; }
public function translify($inString) { return str_replace(self::$_RU_ALPHABET, self::$_EN_ALPHABET, $inString); } /** * Detranslify * @param string $inString Input string * @return string Detransliterated string */ public function detranslify($inString) { $dirtyResult = str_replace(self::$_EN_ALPHABET, self::$_RU_ALPHABET, $inString); return preg_replace(self::$_CORRECTION_PATTERN, self::$_CORRECTION_REPLACEMENT, $dirtyResult); } /** * Prepare string for slug (i.e. URL or file/dir name) * @param string $inString Input string * @return string Slug-string */ public function slugify($inString) { //convert & to "and" $inString = preg_replace('/(?:&)|&/u', ' and ', $inString); //replace spaces $inString = preg_replace('/[—−-\\s\\t]+/u', '-', $inString); $translitString = strtolower($this->translify($inString)); return preg_replace('/[^a-z0-9_-]+/i', '', $translitString); } } Translit::StaticConstructor();
public function update3() { App::uses('Translit', 'Article.Vendor'); // $this->PHTranslit = new PHTranslitHelper($this->view); $conditions = array('object_type' => 'Product'); $page = 1; $limit = 10; $order = 'SiteArticle.id'; while ($articles = $this->SiteArticle->find('all', compact('conditions', 'page', 'limit', 'order'))) { $page++; foreach ($articles as $article) { $data = $article['SiteArticle']; $data['page_id'] = Translit::convert($data['title_rus'] . '-' . $data['detail_num'], true); $this->SiteArticle->save(array('id' => $data['id'], 'page_id' => $data['page_id'])); } } }
public function fieldsSave() { $fields = array(); foreach ($_POST['Category']['fields'] as $fn => $fd) { if (preg_match('#fn_[0-9]+#is', $fn)) { $fields[Translit::latin($fd['name'])] = $fd; } else { $fields[$fn] = $fd; } } $this->fields = json_encode($fields); }