예제 #1
0
 function showGenerateurl()
 {
     $thisRequest = fvRequest::getInstance();
     $transliterator = new Translit();
     $url = $transliterator->Transliterate($thisRequest->getRequestParameter("name"));
     $this->__assign('url', $url);
     return $this->__display('generateurl.tpl');
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /**
  * Подготовка СЕО ссылки
  * @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;
 }
예제 #4
0
 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;
 }
예제 #5
0
 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);
     }
 }
예제 #6
0
 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;
     }
 }
예제 #7
0
파일: ZzapParser.php 프로젝트: Mirocow/gpz
 private function saveSections($parsedSections, $brandId)
 {
     $modelList = $this->getModelsListForBrand($brandId);
     foreach ($parsedSections as $modelName => $sectionList) {
         $modelName = trim($modelName);
         $modelName = str_replace('&nbsp;', '', $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);
             }
         }
     }
 }
예제 #8
0
        //заносим в переменную путь до аватара.
        $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, то создаем    изображение в этом же формате. Необходимо для последующего сжатия
            }
예제 #9
0
 public function filter($value)
 {
     return parent::url($value);
 }
예제 #10
0
파일: pay.php 프로젝트: hikaram/utitheme
    ?>
                            <?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 
예제 #11
0
$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);
예제 #12
0
 function translitIt($str)
 {
     $str = Translit::transliterate($str);
     $str = Translit::asURLSegment($str);
     return $str;
 }
예제 #13
0
 /**
  * @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)));
 }
예제 #14
0
파일: func.php 프로젝트: ASDAFF/bitrix-2
 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;
 }
예제 #15
0
    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('/(?:&amp;)|&/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();
예제 #16
0
 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']));
         }
     }
 }
예제 #17
0
파일: Category.php 프로젝트: kosenka/yboard
 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);
 }