Сообщения

Сообщения за 2013

Битрикс: выборка новостей по категориям.

Небольшой скрипт позволяющий выбирать новости одной или нескольких разделов в инфоблоке. $category_id_list - здесь будем хранить список айдишников выбраненных разделов. $category_check - переменная для проверки выбраны ли какие либо разделы Здесь проверяем выбраны какие либо конкретные разделы если да - то создаем фильтр для новостей, если нет то помечаем что выбраны все разделы. <ul class="sortable_list"> <li <?   $category_id_list = array ( ) ; $category_check = ( ! isset ( $_REQUEST [ "category" ] ) ) || ( $_REQUEST [ "category" ] == '' ) ; if ( ! $category_check ) { $category_id_list = preg_split ( '/,/' , $_REQUEST [ "category" ] ) ; $GLOBALS [ 'news_filter' ] = array ( 'ACTIVE' => 'Y' , 'SECTION_ID' => $category_id_list ) ; } else { echo "class='active'" ; }   ?> > <a href="?ca

Google chrome размытое изображение

Изображение
Если изображение в google chrome размытое, будто бы не соответствует вашему разрешению экрана можно попробовать исправить это следующими действиями: 1. Клик правой клавишей мышки на рабочем столе. Выбираем последнюю строчку "Персонализация". 2. Далее в колонке слева "Экран". 3. И ставим галочку "Я хочу выбрать один масштаб для всех дисплеев" Недавно проблема возобновилась и решить её старым способом не вышло, так то прилагаю новое решение: 1. Кликаем правой кнопкой на ярлыке Google Chrome, и открываем свойства: 2. Открываем вторую вкладку, в поле "Объект" в конец строчки вводим следующие параметры: /high-dpi-support=1 /force-device-scale-factor=1   : 3. Жмем "ОК" и перезапускаем Chrome.

Symfony2 many-to-many form

Изображение
Недавно попалась задача: есть звенья и задачи - необходимо создавать наряды в котором каждому звену будут накидываться задачи. Каждый наряд хранит звено и осуществляется связь многие ко многим  между нарядами и задачами, так как они могут быть использованы ещё раз. Реализация конечно кривоватая но довольно таки простая в осуществлении. Создадим экшен для нашей формы: <?php public function newlsAction ( Request $request ) { $em = $this -> getDoctrine() -> getManager(); $link_list = $em -> getRepository( 'EnsClientsdbBundle:Link' ) -> findAll(); $service_list = $em -> getRepository( 'EnsClientsdbBundle:Service' ) -> findAll(); return $this -> render( 'EnsClientsdbBundle:TourOfDuty:newls.html.twig' , array ( 'link_list' => $link_list , 'service_list' => $service_list , )); } ?> получаем списки звеньев и список услуг(они же задачи). Далее вьюве

Виджет для symfony. Выборка нескольких элементов из списка.

Изображение
Для работы понадобилось написать виджет, я встречал видео с таким виджетом(который мне необходим) - но автор не выложил его кода(или я не нашёл) - по этому написал свой. И покажу как это сделал - для того чтоб вы меня поправили если я в чём то не прав или можно было сделать проще - или же сами чему то научились бы. Приступим.  Для начала суть: необходима выборка из списка нескольких элементов, по умолчанию symfony генерирует форму с sfWidgetFormPropelChoice он довольно не удобен, по этому его лучше заменить на sfWidgetFormPropelChoice. Однако заказчику он не нравился и был его явный минус - если список большой то выводить все его элементы на страницу - не приемлемо. Так что добавим строку с автодополнением. Так же надо учесть что в выпадающий список не должны попадать уже добавленные категории. А чтоб минимизировать его место на основной форме - вынесем его в отдельное окно  Так как я уже сделал его то чтоб удобнее было понять о чём идёт речь вот скришоты: По клику &quo

Парсинг сайта на haskell

Опишу пример парсинга сайта(хоть примеров и много), но я постараюсь на основе этой задачи указать ещё несколько "полезностей". Во первых нам нужно получить страничку которую будем парсить, для этого воспользуемся библиотекой Network.HTTP.Conduit она нам позволит использовать прокси сервер с авторизацией, подключаем библиотеки: module GetPage where import Network . HTTP . Conduit import Network import Data . Maybe ( ) import qualified Data . ByteString . Lazy . UTF8 as UTF8 import qualified Data . ByteString . Char8 as C8 Далее следует добавление авторизации и самого прокси: applyAuthorities :: Maybe ( String , String ) -> Request a -> Request a applyAuthorities auths request' = case auths of Just ( user , pass ) -> applyBasicAuth ( C8 . pack user ) ( C8 . pack pass ) request' Nothing -> request'   applyProxy :: Maybe ( String , Int ) -> Request a -> Request a applyProxy proxy' req