public function testCrazy4() { $this->assertEquals(explode(',', 'Ілліч,Ілліча,Іллічу,Ілліча,Іллічем,Іллічу,Іллічу'), $this->object->q('Ілліч')); }
<?php header('Content-type: text/html; charset=utf-8'); require '../Library/NCL.NameCase.ru.php'; $nc = new NCLNameCaseRu(); /** * В цепочках может вызыватся любое количество методов */ echo $nc->fullReset()->setFirstName("Андрей")->setFatherName("Николаевич")->getFormatted(NCL::$RODITLN, "N F") . "\n"; /** * Заканчиваются методы вызовом метода getFormatted(), который возвращает искомую строку */ print_r($nc->fullReset()->setFullName("Афросинин", "Павел", "Илларионович")->getFormatted(null, "N F S")); /** * Начинаются все цепочки с вызова метода fullReset(); */ echo $nc->fullReset()->setSecondName("Романчук")->setGender(NCL::$MAN)->getFormatted(NCL::$DATELN);
public function testGenDetect2021() { $this->object->setSecondName('Яшина'); $this->assertEquals('2-Яшина', $this->object->genderAutoDetect() . '-Яшина'); }
public function testSplDetect2021() { $this->assertEquals('S-Яшина', trim($this->object->getFullNameFormat('Яшина')) . '-Яшина'); }
function neworder($core, $data, $file = false) { $sid = (int) $data['site']; $spc = (int) $data['from']; $fid = (int) $data['flow']; $oid = (int) $data['offer']; $tgt = (int) $data['target']; $iptext = $data['ip']; $ip = ip2int($iptext); $name = $data['name'] ? $core->text->line($data['name']) : 'Без Воображения'; $ind = (int) $data['index']; $area = $core->text->line($data['area']); $city = $core->text->line($data['city']); $street = $core->text->line($data['street']); $addr = $core->text->line($data['addr']); if ($addr == 'Уточнить по телефону') { $addr = ''; } if ($addr == 'Адрес узнать по телефону') { $addr = ''; } $comm = $core->text->line($data['comm']); $phone = (string) trim(preg_replace('#[^0-9]+#i', '', $data['phone'])); $pres = $data['present'] > 0 ? (int) $data['present'] : 0; $cnt = $data['count'] > 0 ? (int) $data['count'] : 1; $more = $data['more'] > 0 ? (int) $data['more'] : 0; $dsc = $data['discount'] > 0 && $data['discount'] < 100 ? (int) $data['discount'] : 0; $cntr = $data['country'] ? strtolower(substr($core->text->link($data['country']), 0, 2)) : false; $dlvr = $data['delivery'] > 0 ? (int) $data['delivery'] : 1; $exti = (int) $data['exti']; $extu = $exti ? preg_replace('#[^0-9A-Za-z\\_\\-\\.]+#i', '', $data['extu']) : 0; $exts = $exti ? preg_replace('#[^0-9A-Za-z\\_\\-\\.]+#i', '', $data['exts']) : 0; $utmi = (int) $data['utmi']; $utmc = (int) $data['utmc']; $utms = (int) $data['utms']; $items = is_array($data['items']) ? serialize($data['items']) : ''; $meta = $data['meta'] ? addslashes(serialize(unserialize(stripslashes($data['meta'])))) : ''; $addr1 = $core->text->line($data['addr1']); $addr2 = $core->text->line($data['addr2']); $addr3 = $core->text->line($data['addr3']); if ($addr1) { $addr .= ', ' . $addr1; } if ($addr2) { $addr .= ', ' . $addr2; } if ($addr3) { $addr .= ', ' . $addr3; } if (!($oid && ($offer = $core->wmsale->get('offer', $oid)))) { return 'offer'; } $site = $sid ? $core->wmsale->get('site', $sid) : false; $flow = $fid ? $core->wmsale->get('flow', $fid) : false; $ext = $exti ? $core->wmsale->get('ext', $exti) : false; $status = $data['status'] ? (int) $data['status'] : 1; if ($status == 1) { $status = $offer['offer_payment'] == 1 ? 0 : 1; } $userid = $flow ? $flow['user_id'] : ($ext ? $ext['user_id'] : false); if ($userid && $core->user->get($userid, 'user_ban')) { return 'security'; } if ($phone) { // Name and address $name = mb_ucwords($name); if (!$ind) { if (preg_match('#^([0-9]+)#i', $addr, $ind)) { $ind = $ind[1]; $ad = preg_split('#[\\s,\\.]+#i', $addr, 2); $addr = trim($ad[1], ' ,'); } else { $ind = ''; } } // Price, presents and discounts if ($data['items']) { $price = $cnt = 0; $vars = $core->wmsale->get('vars', $offer['offer_id']); foreach ($vars as &$v) { if ($data['items'][$v['var_id']]) { $cnt += $data['items'][$v['var_id']]; $price += $data['items'][$v['var_id']] * $v['var_price']; } } unset($v, $vars); } else { $price = $cnt * $offer['offer_price']; } if ($dsc) { $price = ceil($price * ((100 - $dsc) / 100)); } if ($pres) { $price += $core->lang['presentp'][$pres]; } if ($more) { $price += $more; } if ($offer['offer_delivery']) { $price += $core->lang['deliverp'][$dlvr]; } else { $dlvr = 0; } // GeoIP data $geoipdata = geoip($core, $iptext); if ($geoipdata) { $geoip = array('geoip_country' => $geoipdata['country'], 'geoip_city' => $geoipdata['city'], 'geoip_region' => $geoipdata['region'], 'geoip_district' => $geoipdata['district'], 'geoip_lat' => $geoipdata['lat'], 'geoip_lng' => $geoipdata['lng']); if (!$cntr) { $cntr = $geoip['geoip_country']; } if (!$addr && !$city) { $city = $geoip['geoip_city']; } if (!$addr && !$area) { $area = $geoip['geoip_region']; } } else { $geoip = false; } // Check IP and phone if ($phone[0] == '9' && strlen($phone) == 10) { $phone = '7' . $phone; } if (substr($phone, 0, 2) == '89') { $phone = '79' . substr($phone, 2); } if (substr($phone, 0, 2) == '99') { $phone = '79' . substr($phone, 2); } $pok = substr($phone, 0, 2) == '79' ? 1 : 0; // Check for bans $phs = $core->db->field("SELECT `status` FROM " . DB_BAN_PH . " WHERE `phone` = '{$phone}' LIMIT 1"); $ips = $core->db->field("SELECT `status` FROM " . DB_BAN_IP . " WHERE `ip` = '{$ip}' LIMIT 1"); if ($phs || $ips) { return 'ban'; } // Guess gender automatically $nc = new NCLNameCaseRu(); $gender = $nc->genderDetect($name) != NCL::$MAN ? 2 : 1; unset($nc); // Script based company guess $comp = 0; if ($offer['offer_script']) { $scr = explode("\n", $offer['offer_script']); foreach ($scr as $sc) { // Prepare script line to process $sc = trim($sc); if (!$sc) { continue; } // Get company for the script line if (preg_match('/#([0-9]+)/si', $sc, $ms)) { $cms = $ms[1]; } else { continue; } // Get type and ID to match if (preg_match('#([a-z]+)\\:([0-9]+)#si', $sc, $ms)) { $iid = $ms[2]; $iit = $ms[1]; if (!($iid && $iit)) { continue; } } else { continue; } // Match if it matches switch ($iit) { case 'user': if ($flow['user_id'] == $iid) { $comp = $cms; } break; case 'flow': if ($fid == $iid) { $comp = $cms; } break; case 'site': if ($sid == $iid) { $comp = $cms; } break; case 'space': if ($spc == $iid) { $comp = $cms; } break; case 'ext': if ($exti == $iid) { $comp = $cms; } break; case 'country': if ($cntr == $iid) { $comp = $cms; } break; } if ($comp) { break; } // If script worked OK } unset($sc, $scr); } if (!$comp) { if ($offer['offer_mr'] && !$site['site_comp']) { $ct = $core->db->field("SELECT comp_id FROM " . DB_ORDER . " WHERE order_time > '" . (time() - 604800) . "' AND ( order_phone = '{$phone}' OR order_ip = '{$ip}' ) ORDER BY order_id DESC LIMIT 1"); $mrt = unserialize($offer['offer_mrt']); if (!($ct && in_array($ct, $mrt))) { if ($mrt && ($ct = wrand($mrt))) { $comp = $ct; } else { $comp = $site['comp_id']; } } else { $comp = $ct; } } else { $comp = $site['comp_id']; } } $data = array('offer_id' => $oid, 'comp_id' => $comp, 'wm_id' => $userid, 'flow_id' => $fid, 'site_id' => $sid, 'space_id' => $spc, 'target_id' => $tgt, 'utm_id' => $utmi, 'utm_src' => $utms, 'utm_cn' => $utmc, 'ext_id' => $exti, 'ext_uid' => $extu, 'ext_src' => $exts, 'order_time' => time(), 'order_ip' => $ip, 'order_country' => $cntr, 'order_name' => $name, 'order_gender' => $gender, 'order_phone' => $phone, 'order_phone_ok' => $pok, 'order_index' => $ind, 'order_area' => $area, 'order_city' => $city, 'order_street' => $street, 'order_addr' => $addr, 'order_items' => $items, 'order_meta' => $meta, 'order_count' => $cnt, 'order_present' => $pres, 'order_discount' => $dsc, 'order_delivery' => $dlvr, 'order_more' => $more, 'order_price' => $price, 'order_comment' => $comm, 'order_status' => $status, 'order_webstat' => $status); if ($geoip) { $data += $geoip; } if ($core->db->add(DB_ORDER, $data)) { $id = $core->db->lastid(); if ($file) { if (is_uploaded_file($file['tmp_name'])) { $dot = strrpos($file['name'], '.'); $ext = strtolower(substr($file['name'], $dot + 1)); $name = $id . '-' . substr($core->text->link(substr($file['name'], 0, $dot)), 0, 90) . '.' . $ext; $goodext = array('jpg', 'jpeg', 'gif', 'png', 'zip', 'rar', 'rar5', '7z', 'cdr', 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx'); if (in_array($ext, $goodext)) { move_uploaded_file($file['tmp_name'], sprintf(FILENAME, $name)); $core->db->edit(DB_ORDER, array('order_file' => $name), "order_id = '{$id}'"); } } } if ($exti && ($url = $core->wmsale->get('ext', $exti, 'url_new'))) { if (preg_match_all('#\\{eval:\\[(.*?)\\]\\}#si', $url, $ems)) { foreach ($ems[0] as $k => $v) { $url = str_replace($v, eval($ems[1][$k]), $url); } } $url = str_replace('{id}', $id, $url); $url = str_replace('{uid}', $extu, $url); $url = str_replace('{src}', $exts, $url); $url = str_replace('{time}', time(), $url); $url = str_replace('{price}', $price, $url); $url = str_replace('{count}', $cnt, $url); foreach ($offer as $k => $v) { $url = str_replace("{offer:{$k}}", $v, $url); } $odata = $offer['offer_pars'] ? unserialize($offer['offer_pars']) : false; if ($odata) { foreach ($odata as $k => $v) { $url = str_replace("{data:{$k}}", $v, $url); } } curl($url); } // PostBack processing if ($userid && ($pbu = $core->wmsale->get('flow', $flw, 'flow_pbu'))) { $pbd = array('id' => $id, 'offer' => $oid, 'flow' => $flw, 'target' => $tgt, 'site' => $sid, 'space' => $spc, 'count' => $cnt, 'price' => $price, 'status' => ${$status}); foreach ($pbd as $pbk => $pbv) { $pbu = str_replace('{' . $pbk . '}', $pbv, $pbu); } curl($pbu, $pbd); } return (int) $id; } else { return 'db'; } } else { return 'data'; } }
<?php header('Content-type: text/html; charset=utf-8'); require '../Library/NCL.NameCase.ru.php'; $nc = new NCLNameCaseRu(); /** * Указываем падеж русской константой */ echo $nc->q('Андрей Николаевич', NCL::$RODITLN) . "\n"; /** * Указываем падеж украинской константой */ echo $nc->q('Андрей Николаевич', NCL::$UaRodovyi) . "\n"; /** * Явно не указываем пол */ print_r($nc->q('Иващук')); /** * Указываем мужской пол */ print_r($nc->q('Иващук', null, NCL::$MAN));
<?php header('Content-type: text/html; charset=utf-8'); /** * Подключаем необходимый язык */ require '../Library/NCL.NameCase.ru.php'; /** * Создаем обьект класса. * Теперь библиотека готова к работе */ $nc = new NCLNameCaseRu(); /** * Производим склонения и выводим результат на экран */ print_r($nc->q("Андрей Николаевич")); /** * Подключаем другой язык */ require '../Library/NCL.NameCase.ua.php'; /** * Создаем объект класса. * Теперь библиотека готова к работе */ $nc = new NCLNameCaseUa(); /** * Производим склонения и выводим результат на экран */ print_r($nc->q("Андрій Миколайович"));
public function testGenDetect397() { $this->object->setFirstName('Ярослава'); $this->assertEquals('2-Ярослава', $this->object->genderAutoDetect() . '-Ярослава'); }
<?php header('Content-type: text/html; charset=utf-8'); require '../Library/NCL.NameCase.ru.php'; $nc = new NCLNameCaseRu(); $people = array("Андрей Николаевич", 'Ирина', 'Ефиопский Аркадий Василевич', 'Мария Николаевна', 'Розумовский Илья'); /** * Выбираем случайного человека из списка */ $person = $people[rand(0, count($people) - 1)]; /** * Определяем пол человека */ $gender = $nc->genderDetect($person); /** * Выводим приветствие */ echo "Мы хотим предложить " . $nc->q($person, NCL::$DATELN) . " наши новые товары из категорий:\n <ul>"; /** * В зависимости от пола предлагаем разные товары */ if ($gender == NCL::$MAN) { echo "<li>Рыбалка и охота</li>\n <li>Электроника</li>\n <li>Инструменты для дома</li>"; } else { echo "<li>Книги о кулинарии</li>\n <li>Косметика</li>\n <li>Дом и семья</li>"; } echo "</ul>";
public function testCrazy723() { $this->assertEquals(explode(',', 'Яшина,Яшиної,Яшиній,Яшину,Яшиною,Яшиній,Яшино'), $this->object->q('Яшина')); }
public function testNameWoman984() { $this->object->setFirstName('Констанция'); $this->object->setGender(2); $this->assertEquals(explode(',', 'Констанция,Констанции,Констанции,Констанцию,Констанцией,Констанции'), $this->object->getFirstNameCase()); }
public function testFatherMan1006() { $this->object->setFatherName('Филиппович'); $this->object->setGender(1); $this->assertEquals(explode(',', 'Филиппович,Филипповича,Филипповичу,Филипповича,Филипповичем,Филипповиче'), $this->object->getFatherNameCase()); }
public function testFatherWoman2() { $this->object->setFatherName('Яківна'); $this->object->setGender(2); $this->assertEquals(explode(',', 'Яківна,Яківни,Яківні,Яківну,Яківною,Яківні,Яківно'), $this->object->getFatherNameCase()); }
<?php header('Content-type: text/html; charset=utf-8'); require '../Library/NCL.NameCase.ru.php'; $nc = new NCLNameCaseRu(); echo $nc->q("АНДРЕЙ НИКОЛАЕВИЧ", NCL::$RODITLN) . "\n"; echo $nc->q("королёв Никита ПЕТРОВИЧ", NCL::$RODITLN) . "\n"; echo $nc->q("ПороСЁнОК ПёТР", NCL::$RODITLN) . "\n";
public function testSplDetect836() { $this->assertEquals('N-Яснослава', trim($this->object->getFullNameFormat('Яснослава')) . '-Яснослава'); }
<?php header('Content-type: text/html; charset=utf-8'); require '../Library/NCL.NameCase.ru.php'; $nc = new NCLNameCaseRu(); /** * Пол можно не указывать */ echo $nc->qFatherName("Николаевич", NCL::$DATELN) . "\n"; /** * Если не указать падеж, получим массив со всеми падежами. */ print_r($nc->qFirstName("Андрей")); /** * В ситувациях, когда не возможно определить пол, его полезно указать. */ echo $nc->qSecondName("Касюк", NCL::$DATELN, NCL::$MAN) . "\n";
public function testNameMan508() { $this->object->setFirstName('Яснолик'); $this->object->setGender(1); $this->assertEquals(explode(',', 'Яснолик,Яснолика,Ясноликові,Яснолика,Ясноликом,Ясноликові,Ясноличе'), $this->object->getFirstNameCase()); }
<?php header('Content-type: text/html; charset=utf-8'); require '../Library/NCL.NameCase.ru.php'; $nc = new NCLNameCaseRu(); $name = "Ефиопский Аркадий Василевич"; /** * Склоняем слово любыми методами */ $nc->q($name); /** * Получаем массив объектов типа NCLNameCaseWord */ $words = $nc->getWordsArray(); foreach ($words as $word) { /** * Выводим тип каждого слова на экран */ echo $word->getNamePart() . ' ' . $word->getNameCase(NCL::$TVORITELN) . "\n"; } /** * Получаем: * S Ефиопским * N Аркадием * F Василевичем */
public function testNameMan1006() { $this->object->setFirstName('Остап'); $this->object->setGender(1); $this->assertEquals(explode(',', 'Остап,Остапа,Остапу,Остапа,Остапом,Остапе'), $this->object->getFirstNameCase()); }
<?php header('Content-type: text/html; charset=utf-8'); require '../Library/NCL.NameCase.ru.php'; $nc = new NCLNameCaseRu(); $people = array("Андрей Николаевич", 'Ирина', 'Ефиопский Аркадий Василевич', 'Мария Николаевна', 'Розумовский Илья'); foreach ($people as $person) { /** * Для каждого человека выводим формат ФИО */ echo $nc->getFullNameFormat($person) . ' - ' . $person . "\n"; } /** * Результат выполнения: * N F - Андрей Николаевич * N - Ирина * S N F - Ефиопский Аркадий Василевич * N F - Мария Николаевна * S N - Розумовский Илья */
public function test13() { $this->assertEquals('комментария', $this->object->qFirstName('комментарий', NCLNameCaseRu::$RODITLN, NCLNameCaseRu::$MAN)); }
public function testCrazy740() { $this->assertEquals(explode(',', 'Яшин,Яшина,Яшинові,Яшина,Яшином,Яшинові,Яшине'), $this->object->q('Яшин')); }
public function testFatherMan4() { $this->object->setFatherName('Ілліч'); $this->object->setGender(1); $this->assertEquals(explode(',', 'Ілліч,Ілліча,Іллічу,Ілліча,Іллічем,Іллічу,Іллічу'), $this->object->getFatherNameCase()); }
public function testWomanSirname984() { $this->object->setSecondName('Яшина'); $this->object->setGender(2); $this->assertEquals(explode(',', 'Яшина,Яшиной,Яшиной,Яшину,Яшиной,Яшиной'), $this->object->getSecondNameCase()); }
<?php header('Content-type: text/html; charset=utf-8'); require '../Library/NCL.NameCase.ru.php'; $nc = new NCLNameCaseRu(); /** * Можно не указывать пол и формат */ echo $nc->qFullName("Иванов", "Фёдор", "Ильич", null, NCL::$TVORITELN) . "\n"; //Ивановым Фёдором Ильичом /** * В формате не обязательно использовать все слова */ echo $nc->qFullName("Иванов", "Фёдор", "Ильич", NCL::$MAN, NCL::$TVORITELN, "N F") . "\n"; //Фёдором Ильичом /** * Можно указать формат и не указывать пол человека */ echo $nc->qFullName("Иванов", "Фёдор", "Ильич", null, NCL::$TVORITELN, "S N") . "\n"; //Ивановым Фёдором /** * Можно указать все параметры */ echo $nc->qFullName("Иванов", "Фёдор", "Ильич", NCL::$MAN, NCL::$TVORITELN, "S N F") . "\n"; //Ивановым Фёдором Ильичом /** * В строке-формате могут присутствовать любые символы */ echo $nc->qFullName("Иванов", "Фёдор", "Ильич", NCL::$MAN, NCL::$TVORITELN, "Фамилия: S, Имя: N, Отчество: F") . "\n"; //Фамилия: Ивановым, Имя: Фёдором, Отчество: Ильичом
public function testCrazy508() { $this->assertEquals(explode(',', 'Яснолик,Яснолика,Ясноликові,Яснолика,Ясноликом,Ясноликові,Ясноличе'), $this->object->q('Яснолик')); }
public function testSplDetect7() { $this->assertEquals('F-Яківна', trim($this->object->getFullNameFormat('Яківна')) . '-Яківна'); }
public function testFatherWoman984() { $this->object->setFatherName('Львовна'); $this->object->setGender(2); $this->assertEquals(explode(',', 'Львовна,Львовны,Львовне,Львовну,Львовной,Львовне'), $this->object->getFatherNameCase()); }
public function testGenDetect1602() { $this->object->setFirstName('Златоуста'); $this->object->setSecondName('Яшина'); $this->assertEquals('2-Златоуста Яшина', $this->object->genderAutoDetect() . '-Златоуста Яшина'); }
public function testNameWoman327() { $this->object->setFirstName('Яснослава'); $this->object->setGender(2); $this->assertEquals(explode(',', 'Яснослава,Яснослави,Яснославі,Яснославу,Яснославою,Яснославі,Яснославо'), $this->object->getFirstNameCase()); }