• Bundle для категоризации любой вложенности для Symfony2?

    svscorp
    @svscorp Автор вопроса
    Кстати, собственно реализация решения… вдруг пригодиться:

    1) Создаем Entity:

    <?php
    // src/Acme/DemoBundle/Entity/Category.php
    namespace Acme\DemoBundle\Entity;
    
    use Gedmo\Mapping\Annotation as Gedmo;
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * @Gedmo\Tree(type="nested")
     * @ORM\Table(name="categories")
     * use repository for handy tree functions
     * @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
     */
    class Category
    {
        /**
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue
         */
        private $id;
    
        /**
         * @Gedmo\Translatable
         * @ORM\Column(name="title", type="string", length=64)
         */
        private $title;
    
        /**
         * @Gedmo\TreeLeft
         * @ORM\Column(name="lft", type="integer")
         */
        private $lft;
    
        /**
         * @Gedmo\TreeLevel
         * @ORM\Column(name="lvl", type="integer")
         */
        private $lvl;
    
        /**
         * @Gedmo\TreeRight
         * @ORM\Column(name="rgt", type="integer")
         */
        private $rgt;
    
        /**
         * @Gedmo\TreeRoot
         * @ORM\Column(name="root", type="integer", nullable=true)
         */
        private $root;
    
        /**
         * @Gedmo\TreeParent
         * @ORM\ManyToOne(targetEntity="Category", inversedBy="children")
         * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE")
         */
        private $parent;
    
        /**
         * @ORM\OneToMany(targetEntity="Category", mappedBy="parent")
         * @ORM\OrderBy({"lft" = "ASC"})
         */
        private $children;
    
        /**
         *
    
         * @Gedmo\Translatable
    
         * @Gedmo\Slug(fields={"title"})
    
         * @ORM\Column(name="slug", type="string", length=128)
    
         */
    
        private $slug;
    
        public function getId()
        {
            return $this->id;
        }
    
        public function getSlug()
    
        {
    
            return $this->slug;
    
        }
    
        public function setTitle($title)
        {
            $this->title = $title;
        }
    
        public function getTitle()
        {
            return $this->title;
        }
    
        public function setParent(Category $parent = null)
        {
            $this->parent = $parent;
        }
    
        public function getParent()
        {
            return $this->parent;
        }
    }
    


    2. В контроллере реализуем добавление категорий:

                use Acme\DemoBundle\Entity\Category as CategoryEntity;
    
                // ... your code before
                $em = $this->getDoctrine()->getManager();
                $cat1= new CategoryEntity();
                $cat1->setTitle('Фрукты');
                
                $subcat = new CategoryEntity();
                $subcat->setTitle('Экзотические');
                $subcat->setParent($cat1);
         
                $cat2 = new CategoryEntity();
                $cat2->setTitle('Овощи');
    
                $em->persist($cat1);
                $em->persist($cat2);
                $em->persist($subcat);
                $em->flush();
         
    


    Вы получите меню вида:
    — Фрукты
    — — Экзотические
    — Овощи

    3) Получаем список категорий (в виде массива):

    // ...
    $categoryEntity = $this->em->getRepository('Acme\DemoBundle\Entity\Category');
    $categories = $categoryEntity->childrenHierarchy();
    // ...
    


    Успехов!
    Ответ написан
    1 комментарий
  • Куда пропал SkypeKit for Linux?

    Elufimov
    @Elufimov
    Всё лежит в SkypeKit for Embedded и включает библиотеки для .net, java, c++ и python.
    Последнюю версию можно взять тут :)
    Ответ написан
    4 комментария
  • Где взять актуальную статистику по используемым ОС?

    SowingSadness
    @SowingSadness
    web-разработчик
    Весь мир ориентируется на 2 статистики:
    gs.statcounter.com/
    www.netmarketshare.com/report.aspx?qprid=11&qpcustomb=0

    Всякий бред про w3schools не слушайте
    Ответ написан
    1 комментарий
  • Сканеры штрих-кодов и PHP

    @hom9k
    Если сканер по компорту подключается, то написать сервис на сях и повесить на какой-нибудь порт. Соответственно, из пхп общаться со сканером через этот сервис.
    алгоритм такой:
    1) открывается страница — посылаем команду на включение сканера
    2) аяксом обращаемся за последним считанным штрихкодом и выводим его.
    3) по завершению — выключаем сканер.
    Ответ написан
    Комментировать
  • Сканеры штрих-кодов и PHP

    @lesha_penguin
    Сканеры штрих-кода (из тех, с которыми мне довелось работать) обычно работают в двух вариантах:
    1) Эмуляция клавиатуры (те, кто подключаются через PS/2 или работают как USB HID)
    2) Эмуляция COM-порта (те, которые соответственно втыкаются в компорт либо являются USB Serial Device)

    Взаимодействие с первыми аналогично клавиатуре. В чем их плюс — возможность работы даже с тем софтом который не знает что такое «сканнер штрих-кода». Для программы это будет выглядеть полностью аналогично как если бы оператор набрал на клавиатуре артикул товара. (то есть полностью прозрачно для программ)
    Соответственно, сериальные устройства для тех программ, которые знают что такое сканнер штрих-кода и умеют с ним работать.

    Соответственно, вопрос. Вам для каких нужд? Если Вы хотите минимальными затратами организовать «рабочее место оператора» с взаимодействием через веб — то вариант с USB HID — это ваш вариант. Вы просто с помощью PHP рисуете форму, с полем, куда JS-ом выставляете фокус. Оператор «пикнув» сканнером штрихкода просто введет туда цифры. (И незабываем, какой еще ОГРОМНЫЙ плюс возникает, если штрихкод потерт и нечитается — оператор просто набивает артикул на клавиатуре в это поле.)

    Вариант с Serial-подключением имеет плюсы лишь когда вы организуете выделенное узкозаточенное рабочее место.
    Ответ написан
    Комментировать
  • Домашний Медиа-сервер?

    twdragon
    @twdragon
    Qt/C++ разработчик, ученый, TeX-программист
    Думаю, Windows не следует считать достаточно устойчивой средой для такого применения. Большинство решений, вроде описанного тут использует возможности различных сборок Linux. Для Windows я бы использовал какое-нибудь устройство дистанционного управления совместно с веб-интерфейсом uTorrent. Плюс можно попробовать собрать полноценный локальный сервер с использованием Apache и скриптов, но эта работа довольно сложная.
    Ответ написан
    Комментировать
  • 1С8 -> php сайт?

    eternals
    @eternals
    1. Реально. Но лучше выгружать из 1С на сайт.
    2. Формат базы данных лучше не трогать по целому ряду соображений.
    3. Да, реально. Например, в 1С-Битрикс выгружается из «1С: Управление торговлей». Можно воспользоваться этим механизмом.
    4. Как тупой, но простой вариант: 1С умеет выгружать данные в xml в директорию периодически. Можно оттуда читать.
    Ответ написан
    Комментировать
  • Аналог Дропбокса с внешним хранилищем файлов?

    @Cancel
    Я для таких целей поставил mercurial, однако это довольно сложная штука, зато мощная.
    Ответ написан
    Комментировать