LINUX.ORG.RU

Сообщения Berdin

 

Angular and website search

 , ,

Всем привет. Когда-то я уже поднимал немного похожую тему. Есть выдача определенных статей, и справа имеем фильтр, поиск - как хотите так и называйте, там есть разные selects, checkboxes, в котором фильтрация должна быть к примеру по автору, рубрике и еще ряду критериев. Реализация должна быть асинхронной, то есть где-то выбрали что-то другое и весь фильтр отработал по новой. Концептуально пока в планах создать один объект, на нужные поля повесить модели которые являются свойствами этого объекта, и его изменения смотреть watchCollection ну а на back-end смотреть что пришло и формировать нужный sql запрос. Есть ли у кого идеи как лучше это сделать или есть статьи на похожие примеры и объяснения как это делать?

Berdin
()

Symfony and sessions

 , ,

Уважаемые знатоки symfony и php. Поправьте меня пожалуйста, а то по мне кажется допускаю ошибку в логике приложения. Есть функция login, вернее вот кусок из неё что создает сессию

$session = new Session();
$session->start();
$session->set('user', 'тут id юзера после всех удачных проверок');

Для нормальной работы cookie с названием PHPSESSID в config.yml дописал -

framework:
    session:
        cookie_lifetime: 43200
        gc_maxlifetime: 43200

Есть некая функция check - которая проверяет может ли пользователь заходить на конкретный url,

$session = new Session();
$session->start();
$id = $session->get('user');
if(isset($id)){
            $user = $model->getUserInfo($id);
            $response->setContent(json_encode($user));
        }
Тут смотрю есть ли переменная сессии user ну и вытягиваю id и по id возвращаю необходимую инфу с базы. И еще есть функция logout:
$session = new Session();
        $session->start();
        $id  = $session->get('user');
        $session->clear();
        $session->invalidate();
        $response->headers->clearCookie('PHPSESSID');

Это лишь части кода, но можете сказать правильно ли я реализую вообщем это механизм или где стоит добавить лишние проверки или где что убрать?

Berdin
()

Erlang

 , ,

Ребята вот почитав пару статей о нем интересно стало как много людей пишут на нем и что вообще пишут? Как на нем идет вообще коммерческая разработка?

Berdin
()

Symfony gmail smtp

 

Всем привет. Есть приложение на symfony 2.5 в нем для теста отправки email использую вариант gmail smtp - все работает, все прекрасно, но при развертывании всего этого на vps отправка email отказывается работать. В файле логов хоста нету ошибок, в папке app/logs тоже нету никаких ошибок, сам хостер в лице digital ocean говорит что у них нету ограничений никаких. Да и среда работы приложения одинакова LAMP без каких либо доп настроек для отправки email.

Berdin
()

Apache host configuration

 ,

Господа разработчики и админы. Есть хост на Apache который смотрит в папку допустим public и в этой папке html файлы и папки css, js и так далее. Вот хост настроен так что смотрит в папку public и так как в ней есть файл index.html то при переходе по url попадаем на индексовую страницу, но при переходу по ссылке http://my.loc/js я вижу все файлы папки js . Подскажите , пожалуйста, что вписать в настройки хоста чтобы не попадать в папки js и css или вообще в этом хосте читать только index.html файл, так как приложения у меня на angular и по роутам само подтягивает нужные шаблоны, а точкой входа как раз и есть index.html.

Berdin
()

Angular application and google + sign in

 , , ,

Всем привет. При регистрации потребовалась привязка google plus, вернее подтянуть данные о пользователе для дальнейшей регистрации, все бы ничего если бы просто пример вставленный в обычную html страницу работает, а вот все в точности в angular приложении валиться, хотя делаю все исключительно по документации, кто сталкивался с такой привязкой? кто может дать ссылку на толковый пример как это сделать так как обычный подход тут не прошел и нужно то ли кастомные директивы писать то ли еще что-то другое выдумывать.

Berdin
()

Heroku

 ,

Всем привет. Читал и наслышан о том что многие используют этот сервис , может кто на пальцах объяснить в чем суть и плюсы этого сервиса, чем он будет полезен и так далее.

Berdin
()

JQuery и функция live

 , ,

Всем привет. Скинули мне готовую верстку и там всплывающим окном реализована форма с помощью плагина boxer . Вот надо эту форму мне обработать, но в чем проблема там этот плагин как-то меняет и добавляет элементы DOM после загрузки страницы, сначала пробовал классической выборкой полей - возвращаются пустые строки в итоге, пусть даже если поля заполнены. Вычитал про метод live на кнопку Отправить в форме привязал его, только правда не live а on так как live убрали с новых версий библиотеки. Вот смог повесить и заставляю срабатывать обработки для события click на кнопке формы, но при попытке получить значения полей все так же получаю пустые строки, как это можно правильно реализовать?

Berdin
()

Django forms and textarea

 , ,

Ребята очень давно не писал на django, а когда писал то использовал его не на полную катушку. Есть форма в html , для неё обработчик начал писать:

class ContactForm(forms.Form):
    name = forms.CharField(max_length=255)
    email = forms.EmailField(max_length=255)
    phone = forms.CharField(max_length=255)
    text = forms.Textarea()
    file = forms.FileInput()

далее сама view:

def get_form(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            phone = form.cleaned_data['phone']
            text = form.cleaned_data['text']
            print name
            print email
            print phone
            print(text)
            return HttpResponseRedirect('/success')
        else:
            return HttpResponseRedirect('/')

и получаю в итоге ошибку:

KeyError at /form/

'text'
Хотя значение для textarea приходит, это видно в debug режиме который и выдает эту ошибку, не пойму почему тогда код выкидывает ошибку, плюс еще с загрузкой файла придется заморочиться. Код просто в режиме разработки еще, но почему-то проблемы только с textarea.

Berdin
()

Symfony send email

 , ,

Пишу отправку писем с symfony, все настроил нормально отправляет email, решил отправлять по шаблону, и вот с чем столкнулся:

$mailer = $this->get('mailer');
        $message = $mailer->createMessage()
            ->setSubject('Test mail from symfony')
            ->setFrom("sender@gmail.com")
            ->setTo("recipient@gmail.com")
            ->setBody(
                $this->renderView('Emails/test.html.twig')
            );

        $mailer->send($message);
И вот получаю такой вот еррор
Template name "Emails/test.html.twig" is not valid (format is "bundle:section:template.format.engine").

в config.yml все в этом плане тоже нормально

templating:
        engines: ['twig','php']
        #assets_version: SomeVersionScheme

Да и права доступа в норме на директории Сам шаблон лежит в директории моего Bundle а именно Resources/views/Emails/test.html.twig Можете подсказать как это все дело заставить работать?

Berdin
()

Django and MySQL

 , ,

Всем привет. Разворачиваю django на MacOS , установил сам django из под оси, у меня есть vagrant на нём работает стек LAMP, дабы не заморачиваться с установкой MySQL на мак, решил подключиться к базе что на виртуалке этой висит, но в чем суть при команде python manage.py migrate начала вызвать ошибку, ну я через pip поставил python-mysql, но все так же не работает команда. Код конфига такой:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'testDB',
        'USER': 'root',
        'PASSWORD': 'mypass',
        'HOST': '192.168.33.10',
        'PORT':''
    }
}
И консоль выдает эту ошибку:
    __import__(name)
  File "/Library/Python/2.7/site-packages/django/db/backends/mysql/base.py", line 18, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
Хотя модуль ставил, не подскажите как это правильно все сделать?

Berdin
()

Less/More directive Angular

 , ,

Всем привет. Возникла задача на проекте для ряда разных блоков информации сделать отображение контента less/more я поискал немного в интернете нашел на stack описание как это делать, но кто-то стыкался уже с готовыми решениями или может дать совет как быстрее написать такую директиву?

Berdin
()

Symfony and CORS

 , ,

Всем привет. Вопрос вот такого плана. Есть API которое пишется на Symfony 2.5 и там в файле .htaccess в папке web вот такой вот конфиг:

<IfModule mod_headers.c>
    Header always set Access-Control-Allow-Origin: "http://project.loc"
    Header always set Access-Control-Allow-Methods "OPTIONS, POST, GET, PUT, DELETE"
    Header always set Access-Control-Allow-Headers "origin, x-requested-with, content-type"
    Header always set Access-Control-Allow-Credentials "true"
</IfModule>


И вот есть у меня приложение на angular которое общается с этой  API и уже наработан механизм отправки cookie с приложения на API, для чего и прописаны эти конфиги, но у меня также с этой API общается другое приложение, но ему сейчас выбивает ошибку 
Origin http://admin.loc is not allowed by Access-Control-Allow-Origin.

Что вполне понятно из-за строки

Header always set Access-Control-Allow-Origin: "http://project.loc"
но поставить
Header always set Access-Control-Allow-Origin: "*"
Я не могу, так последняя строка конфига не допускает этого и валиться первое приложение, вернее его запросы к API, можете подсказать как правильно поправить конфиг чтобы оба приложения работали нормально.

Berdin
()

Авторизация в AngularJS приложении

 , , ,

Я уже поднимал этот вопрос тут. Но есть еще пару моментов над которыми я еще ломаю голову, в плане правильной реализации. Еще раз опишу структуру приложения. Есть отдельно api и отдельно front-end где за все отвечает полностью angular, то есть за формирование routes и т.д. С сервером он общается для запроса того или иного набора данных. Вот нужно написать авторизацию для этой связки. Естественно есть страницы которые может видеть одна группа пользователей, а другая нет, ну и на оборот. Для routes использую ngRoute. Естественно с коробки не существует в angular проверки прав пользователей и это надо писать самому. Перечитал ряд статей и реализовал посредством cookie,но есть одно но. Теперь хочу написать механизм который будет при каждом изменении роута смотреть какие группы пользователей могут его видеть и отдавать или нет нужную страницу. Есть мысль написать это на back-end в виде функции check которая будет проверять можно ли юзеру смотреть страницу или нет, и уже отдавать какой-то ответ, но если это делать при каждом изменении страницы, то я думаю это будет лишняя нагрузка на сервер, плюс в то же время надо для каждого авторизованного пользователя в правом верхнем углу отображать его логин и еще ряд информации , можно и как-то реализовать сервис который для каждого пользователя в rootScope будет создать объект user, к примеру, и давать ему определенные свойства и для каждого пользователя это будет свой объект, просто это поможет избежать лишних запросов на back-end и в механизме проверять объект с rootScope что будет явно быстрее и не будет создавать такую нагрузку на сервер. Но я пока не вижу возможности реализации уникального объекта user для каждого пользователя, ведь это не сессии в конце концов которые можно создавать на стороне сервера и они дают уникальность для каждого клиента. Можете скажем так оценить направление идеи или может подсказать что-то более рациональные ну и поправить меня где нужно?

Berdin
()

Проблема с cookie

 , ,

Всем привет. Поднимал я тут уже ранее вопрос о то как с помощью cookie делать авторизацию в приложении где angular висит отдельно от сервера на котором api и общается с api . Начал реализацию этого механизма посредством cookie и вот столкнулся с проблемой такой, со страницы логина отправляю логин и пароль, на стороне сервера делаю необходимые проверки и в случае когда все проверки проходят делаю вот что

$response->headers->setCookie(new Cookie('user', 'TestCookie'));

На стороне ангулара в инспекторе смотрю что потом приходит с сервера

Access-Control-Allow-Headers:origin, x-requested-with, content-type
Access-Control-Allow-Methods:OPTIONS, POST, GET, PUT, DELETE
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Connection:Keep-Alive
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Wed, 07 Jan 2015 10:33:53 GMT
Keep-Alive:timeout=5, max=99
Server:Apache/2.4.7 (Ubuntu)
Set-Cookie:user=TestCookie; path=/; httponly
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Debug-Token:253bbd
X-Debug-Token-Link:/app_dev.php/_profiler/253bbd
X-Powered-By:PHP/5.5.9-1ubuntu4.5

Вроде все нормально и сервер присвоил cookie, но далее переходя на другую страницу с которой отправляется запрос на ту же api я смотрю в инспекторе что cookie не дописываются к запросу, в инспекторе смотрю на request

GET /app_dev.php/category HTTP/1.1
Host: api.loc
Connection: keep-alive
Accept: application/json, text/plain, */*
Origin: http://project.loc
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
Referer: http://project.loc/add
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,ru;q=0.6,uk;q=0.4

И как видно что у запроса не приписаны cookie но они должны там быть. Так как это запрос к серверу с того же ангуларовского приложения после присвоения cookie. Не может ли быть виной эта строка кода в приложении ?

.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
]);

Просто не знаю в какую сторону копать в поисках причины.

Berdin
()

AngularJS атворизация в приложении

 , ,

Пишу приложение где за работу с темплейтами полностью отвечает angular, и общение с сервером ведет посредством API, вот нужно писать авторизацию пользователей, почитав пару источников начитался о ряде разных методов , один запомнился более всего - посредством access token-строки , но может у общества есть советы как сделать это проще, все ровно сессии нужно хранить на стороне сервера, хотя есть еще html5 web storage,в принципе мне нужна стандартная авторизация и уже отдача тех или иных страниц пользователям которые прошли процедуру авторизации, и запрет просмотра этих страниц тем кто не авторизован.

Berdin
()

Нужна помощь с регулярным выражением

 ,

Ребята помогите, пожалуйста, набросать регулярное выражение такого плана: допустим есть строка вида 'ang' нужно чтобы нашло из списка слов что есть для проверки в совпадение попали слова ang, Angular, anGular, ну и так далее - тут вопрос в регистро зависимости строки, строка 'ang' может быть произвольной.

Berdin
()

Apache host config for file downloading

 , ,

Всем привет. Вообщем стоит задача реализовать ссылки на загрузку файлов с сервера, для загрузки создал отдельный хост, версия apache 2.4,

DocumentRoot /home/uploaded/

        <Directory "/home/uploaded/">
                Options FollowSymLinks Indexes
                Require all granted
                AllowOverride All
        </Directory>
Захожу на хост ну мне естественно показывает директорию и при нажатии на файл , если это к примеру изображение, его открывает браузер в новой вкладке, а хотелось бы чтобы при нажатии на файл его скачивало с хоста, не подскажите какую команду в конфигурацию добавить чтобы это работало на скачивание при нажатии на файл?

Berdin
()

SQL query

 , ,

Всем привет. Есть одна задача которую хотелось бы реализовать чисто sql запросом, но я почему-то столкнулся с проблемой в реализации. Есть таблица категорий - в ней поля id, name, есть таблица юзеров , и есть таблица подписок - ну там понятно id, category_id, user_id - думаю понятно в таблице храниться инфо какой пользователь на какие категории подписался. И вот есть задача в представлении в общей выдаче под каждым юзером выдать в отдельных блоках названия категорий на которые он подписан, не знаю как правильно с запросе вытянуть для каждого юзера в одну строку через запятую, к примеру, названия всех категорий на которые он подписан. Не хочется на стороне сервера потом идти в цикле и делать доп. выборку для каждого юзера, хотелось бы это сделать посредством sql. Может кто привести правильный пример запроса для моего случая?

Berdin
()

Angular and routeProvider

 , ,

Ребята банальная штука, но почему-то ломает мне мозг пол дня. Не могу засечь где допустил ошибку, все дела как обычно, добавлял страницу для закрытия поста, имея такой коняги

$routeProvider.when('/', {
        templateUrl: 'Posts.html',
        controller: 'postCtrl'
    }).when('/close/:postId', {
        templateUrl: 'closePost.html',
        controller: 'closePostCtrl'
    }).otherwise({
        redirectTo: '/'
    });
    $locationProvider.html5Mode(true);
ну и контроллер пока пуст , так чисто для проверки его работоспособности
postApp.controller('closePostCtrl', ['$scope', function($scope){

    console.log("test");
}]);

А ссылки в основном шаблоне на страницу close формируются след. образом

<a href="/close/{{post.id}}">Close</a>
post как результат ng-repeat И вот в чем проблема, все ведь делаю правильно, но при нажатии по ссылке кидает на ту что надо страницу но на ней только серый background - стили подтягиваются походу, но когда я делаю page reload на ней ней же, мне в консоль выкатывает кучу ошибок плана
[Error] SyntaxError: Unexpected token '<'
И главное что с файлами все нормально, когда в routeProvider вместо close/:postId пишу просто close и меняю ссылки в шаблонах то все работает и мне нормально отдает страницу, вот и не пойму где ошибку допустил, может кто заметит что не так сделал, да подскажет.

Berdin
()

RSS подписка на новые темы