private static function getPrefixCookieName() { try { $ua = new Zend_Http_UserAgent(); return $ua->getDevice()->getType() . $ua->getDevice()->getBrowser(); } catch (Exception $e) { return 'unknowdevice'; } }
/** * Рисуем элемент * * @param string $name Имя HTML-элемента * @param mixed $value Значение элемента * @param array $params Массив параметров * @param array $attribs Массив атрибутов HTML-элемента * @return string */ public function mediaFile($name, $value = null, array $params = array(), $attribs = null) { $translate = $params['translate']; unset($params['translate']); $jquery_handler = ZendX_JQuery_View_Helper_JQuery::getJQueryHandler(); /** * Переделываем свойство mediatype в data-mediatype (для совместимости с JQuery.data()) */ if (!isset($params['mediatype'])) { $params['mediatype'] = 'image'; } $params['data-mediatype'] = $params['mediatype']; unset($params['mediatype']); /** * Имя элемента типа File делаем просто рандомным, на форме обрабатываться будет поле hidden */ $params['id'] = uniqid(); /** * Значение может быть массивом MediaInfo или числом mediaid * Если значение не является массивом, то приводим его к массиву MediaInfo */ if (!is_array($value) && $value > 0) { require_once 'Phorm/Media.php'; $Media = new Phorm_Media(); if ($MediaInfo = $Media->getMediaInfo($value)) { $value = $MediaInfo; } } /** * Добавляем базовый JS */ //$this->jquery->addJavascriptFile($this->view->BaseUrl().'/ui/phorm/phorm.js'); $this->jquery->addJavascriptFile($this->view->BaseUrl() . '/ui/js/jquery.livequery.min.js'); $this->jquery->addJavascriptFile($this->view->BaseUrl() . '/ui/blueimp/js/jquery.fileupload.js'); /** @todo мб перенести в phorm.js поскольку подпорка под IE требует переопределения Phorm_Controller_Module_Control_Media::uploadAction */ $forceIframeTransport = false; $agent = new Zend_Http_UserAgent(); $device = $agent->getDevice(); if (strtolower($device->getBrowser()) == 'internet explorer' && $device->getBrowserVersion() <= 8) { $this->jquery->addJavascriptFile($this->view->BaseUrl() . '/ui/blueimp/js/jquery.iframe-transport.js'); $forceIframeTransport = true; } $url = isset($params['url']) ? ', url: "' . $params['url'] . '"' : ''; $js = sprintf('var %s; %s("#%s").livequery(function(){%s = %s(this).phormMediaUploader(%s)});', 'var_' . $params['id'], $jquery_handler, $params['id'], 'var_' . $params['id'], $jquery_handler, '{type:"' . $params['data-mediatype'] . '", forceIframeTransport: ' . (int) $forceIframeTransport . $url . '}'); $js = sprintf('%s("%s").livequery(function(){%s(this).phormMediaUploader(%s).setValue($(this).data("mediainfo"))});', $jquery_handler, '[data-mediatype]', $jquery_handler, '{type:"' . $params['data-mediatype'] . '", forceIframeTransport: ' . (int) $forceIframeTransport . $url . '}'); $this->jquery->addOnLoad($js); /** * Устанавливаем пришедшие значения */ if (!empty($value)) { $params['data-mediainfo'] = Zend_Json::encode($value); //$js = sprintf('%s.setValue(%s)','var_' . $params['id'],Zend_Json::encode($value)); //$this->jquery->addOnLoad($js); } /** * Возвращаем поле выбора файла и hidden в котором хранится mediaid */ return $this->view->formFile($params['id'], $params) . $this->view->formHidden($name); }
public function indexAction() { $request = $this->getRequest(); $form = new Application_Form_Index(); $sort = new Application_Form_Sort(); $messages = new Application_Model_DbTable_Message(); $users = new Application_Model_DbTable_User(); if ($request->isPost()) { if (isset($request->getPost()['submit2'])) { $yandex = new Application_Model_YandexReferat(); $message['name'] = 'Иван'; $message['email'] = '*****@*****.**'; $message['title'] = $yandex->yandex_referat()['title']; $message['text'] = $yandex->yandex_referat()['body']; $user = $users->getUser(NULL, $message['email']); if (empty($user)) { $userAgent = new Zend_Http_UserAgent(); $user_id = $users->addUser($message['name'], $message['email'], $userAgent->getDevice()->getUserAgent()); } else { $user_id = $user['user_id']; } $messages->addMessage($user_id, $message['title'], $message['text']); $this->_helper->redirector('index'); } else { if ($form->isValid($request->getPost())) { $messages = new Application_Model_DbTable_Message(); $users = new Application_Model_DbTable_User(); $message = $form->getValues(); $user = $users->getUser(NULL, $message['email']); if (empty($user)) { $userAgent = new Zend_Http_UserAgent(); $user_id = $users->addUser($message['name'], $message['email'], $userAgent->getDevice()->getUserAgent()); } else { $user_id = $user['user_id']; } $messages->addMessage($user_id, $message['title'], $message['text']); $this->_helper->redirector('index'); } } } $this->view->form = $form; $this->view->sort = $sort; if (isset($request->getQuery()['sort'])) { $sortable = $request->getQuery(); $sort->populate(array('sortby' => $sortable['sortby'], 'orderby' => $sortable['orderby'])); } else { $sortable['sortby'] = 'message_id'; $sortable['orderby'] = 'ASC'; } $page_messages = $messages->getMessages($sortable); $paginator = Zend_Paginator::factory($page_messages); $page = $this->_getParam('page', 1); $paginator->setCurrentPageNumber($page); $paginator->setItemCountPerPage(5); $this->view->messages = $paginator; }
/** * @group ZF-10595 */ public function testAGroupDefinedAndSerialized() { $config = $this->config; $userAgent = new Zend_Http_UserAgent($config); $device = $userAgent->getDevice(); $userAgent = unserialize(serialize($userAgent)); $device = $userAgent->getDevice(); $groups = $device->getAllGroups(); }
<?php $exampleUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586'; $userAgent = new \Zend_Http_UserAgent(); $userAgent->setUserAgent($exampleUserAgent); $device = @$userAgent->getDevice(); echo $device->getBrowser(); exit;