Задать вопрос
  • Как заставить классы реализовать один и тот же метод от родительского класса?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    А родителя абстрактным сделать тоже нельзя?

    К примеру:

    abstract class Parent
    {
        abstract public function getName()
        {
            return "Родитель";
        }
    }
    
    class Child1 extends Parent
    {
        public function getName()
        {
            return "Дочерний 1";
        }
    }
    
    class Child2 extends Parent
    {
        public function getName()
        {
            return "Дочерний 2";
        }
    }
    Ответ написан
  • Регулярные выражения для создания хештегов в PHP?

    @heartdevil
    плыву как воздушный шарик
    $Post_Text = preg_replace('/(?:^|\s)#([\S]+)/gim', "<a href=\"http://site.ru/posts&search=\\1\">#\\1</a>", $Post_Text);
    $Post_Text = preg_replace('/(?:^|\s)@([\S]+)/gim', "<a href=\"http://site.ru/\\1\">@\\1</a>", $Post_Text);
    Ответ написан
  • Как правильно использовать AJAX?

    @heartdevil
    плыву как воздушный шарик
    Смотрите в сторону таких библиотек как knockout.js, angular.js и другие. Вопрос, конечно, про аякс, но используя такие библиотеки вы принципиально будете создавать, грубо говоря, "почти правильный" фронтенд, если ознакомитесь со схожими с вашим случаем примерами.
    Ответ написан
    Комментировать
  • Почему при авто заполнении из объекта возвращается данные [object obgect]?

    @heartdevil
    плыву как воздушный шарик
    А зачем вы такую неудобную структуру данных используете?

    1) У вас в объявлении структуры ошибка. Нет закрывающей квадратной скобки.
    2) Даже если структура будет валидная, Она будет содержать всего один объект data. А автокомплит принимает массив данных. То есть нужно сразу подсовывать ему массив.
    3) Внутри data у вас опят же всего один элемент allfilms. Вам, грубо говоря, нужно вот так подсунуть сорс для автокомплита -- projects[0].data.allfilms. Не гарантирую, что сработает. Просто предположение.
    4) Вы везде в актокомплите вот так обращаетесь к источнику -- item.data.allBrand. У вас же нет allBrand нигде. Или я чего-то не понял. Я вижу только allfilms.
    5)У каждого объекта item или ul в анонимных методах автокомплита имеются свойства типа label и value. Вот есл вы все правильно сделаете, то в item.label, либо в ul.label у вас должно быть название фильма.
    Ответ написан
    Комментировать
  • Как организировать сортировку в sql без учета артикля 'this'?

    @heartdevil
    плыву как воздушный шарик
    А записей много? Может проще скриптом проапдейтить таблицу, добавив поле 'с тайтлом без артикля', вырезая всякие 'this, the', а потом уже сортировать как хотите по этому полю.
    Ответ написан
    Комментировать
  • Почему нету произвольного меню?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    А то, что вы выделили -- это не виджет меню? Кликните по нему. Он развернется и его можно будет добавить в область для виджетов в сайдбаре. Либо просто перетащите туда. А вообще его нужно создать сначала в разделе Меню, если не ошибаюсь.
    Ответ написан
  • Как составить регулярное выражение для поиска пути?

    @heartdevil
    плыву как воздушный шарик
    Привет одной регуляркой не додумался как это можно сделать.
    Но вот такой алгоритм пришел в голову.

    Вот пример общего вида регулярки

    <\w+>\s<\w+>\s?text\s?<\/\w+>\s<\/\w+>

    1) Запускаете по тексту регулярку вида
    /(<(\w+)>\s?подставить текст сюда\s?<\/\w+>)/gim
    Он должен вернуть искомый текст с самыми вложенным тегом.
    2) Далее, берете найденный текст с тегами и подставляете в вот такое выражение
    /(<\w+>\s<raw>text</raw>\s<\/\w+>)/gim
    Эта регулярка вернет строку с тегами предпоследней вложенности.
    3)Повторяете вложение в цикле, пока не дойдете до тега body.

    Искать по строке, думаю, не проблема.

    Теговый путь будет в обратном направлении.
    Ответ написан
  • Как лучше создать форму "график работы" и таблицу в БД к ней?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    У вас же City и DAY - это справочники в бд? Это для уточнения спросил)

    А вообще сериализация должна пройти. В city будет подставлен id города, в day будет id дня Проверить ведь не сложно.
    Ответ написан
  • Как определить переменную?

    @heartdevil
    плыву как воздушный шарик
    Вы вот это где выводите?

    <?php echo $entry_child; ?>
    
    
    <?php if ($child_visible) { ?>
    
    <?php echo $text_yes; ?>
    <?php } else { ?>
    
    <?php echo $text_yes; ?>
    <?php } ?>
    
    
    <?php if (!$child_visible) { ?>
    
    <?php echo $text_no; ?>
    <?php } else { ?>
    
    <?php echo $text_no; ?>
    <?php } ?>


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

    Вот этот код объявления переменной и хранение в data должен быть раньше, чем любой вызов.
    if (isset($this->request->post['child_visible'])) {
    $data['child_visible'] = $this->request->post['child_visible'];
    } elseif (!empty($module_info)) {
    $data['child_visible'] = $module_info['child_visible'];
    } else {
    $data['child_visible'] = "1";
    }
    Ответ написан
    Комментировать
  • Как убрать на уровне вордпресс slug при создании post_type?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Зайдите в админку вордпресса. В сеттингс, далее в Permalinks. Там в поле Category Base выставите алиас, которые желаете. Если не получится, то поколдуйте с другими настройками в этой секции
    Ответ написан
  • Как правильно сотавить mysql запрос?

    @heartdevil
    плыву как воздушный шарик
    Привет.
    Если приведете описания таблиц, то можно попробовать более точно составить запрос.

    Сложные запросы нужно составлять по частям. Давайте сначала объединим все приведенные вами таблицы.

    Посмотрите пример. Он пока условный.

    SELECT * FROM ankets AS a
    INNER JOIN anket_group AS ag ON a.id = aq.aId
    INNER JOIN ankets_users AS au ON a.id = au.aId
    INNER JOIN users as u ON au.uId = u.id

    Примерно так должно выглядеть объединение. Я могу ошибаться. Доработайте его и выложите настоящий запрос.

    Далее нужно сделать вот такой фильтр:

    Добавлять фильры нужно тоже по частям. Сразу всю логику проследить сложно. К тому же не понятно определение "имеют доступ". Как это выражается в таблицах?
    Сначала напишите фильтр 1) и протестируйте только его, потом 2) и т.д. до 4.
    1) которые отправлены к группе "3" или "5"
    2) потом подумать над добавлением этого: и определить пользователей которые имеют группу "3" или "5"
    3) далее добавить следующий фильтр: и имеют доступ к этой анкете
    - которые отправлены к группе "3" или "5"

    4) ну и наконец последний фильтр: но не назначены к пользователям с группой "3" или "5"

    UPDATE:

    SELECT u.`group`, u.`id`, a.*
    FROM `ankets` a
    INNER JOIN anket_group ag ON ag.anketa = a.id AND ag.`status` = '1'
    INNER JOIN `anket_user` au ON au.`anketa` = a.`id`
    INNER JOIN `users` u ON u.`id` = au.`user`
    WHERE (ag.`group` = 3 OR ag.`group` = 5) AND ((u.`group` = 3 OR u.`group` = 5) OR NOT (u.`group` = 3 OR u.`group` = 5))
    Ответ написан
  • Не форматируется текст при выводе через the_content(), кде копать?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Покажите кусок кода, как вы вы используете the_content()
    Ответ написан
    Комментировать
  • Не работает фильтр wordpress?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Вы проблему декомпозируйте. Сразу так сложно понять, где и что не пашет. Возможно, что баги есть в нескольких местах, вы просто их не видите.
    1)Начните отлаживать начиная с клиентской части. Протестируйте свои js функции. Отправляют ли они данные на сервер.
    2)Если данные приходят в обработчик, протестируйте query_posts. Нужно тестировать на возвращение правильного набора данных.
    3)Если query_posts возвращает правильные данные, тогда тестируйте логику вывода данных.
    Ответ написан
    Комментировать
  • Как в INSERT - выражении в MS SQL избежать вставки дублирующихся значений в составной Primary Key?

    @heartdevil
    плыву как воздушный шарик
    Привет.
    Надыбал три способа:

    1) Попробуйте установить параметр IGNORE_DUP_KEY

    2) В MSSQL есть оператор MERGE

    Вот пример использования:
    merge into [dbo].[table]
    using [dbo].[Stage_Table] on Stage_Table.pk = table.pk
    when not matched then insert (val1) values (1234);


    3) Использовать NOT EXISTS

    Вот пример использования:
    INSERT INTO my_table
    SELECT 1, 'foo', 3
    WHERE NOT EXISTS (
      SELECT 1 from my_table WHERE foo_col = 'foo'
    );


    А как вы данные вставляете в таблицу? У вас есть еще одна таблица? Или какой-то файл, который вы в цикле пробегаете и затем вставляете записи в таблицу?
    Ответ написан
    4 комментария
  • Почему не работает SQL запрос без...?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Все дело в том, что вы объединяете одним условием таблицы Users и Category, а вторым запросом фильтруете запись только по category относительно пользователя.

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

    То есть будет примерно так.

    /*
    exec usp_Category_Select '2'
    */
    ALTER Procedure [dbo].[usp_Category_Select](
           @UserID int	          
           ) as
    SELECT Category.CategoryID, Category.Category, Category.UserID
    FROM [Category] 
    WHERE Category.UserID = @UserID


    Если вам нужен запрос пересечения двух таблиц, то лучше использовать INNER JOIN, чтобы у вас все было наглядно и не запутанно.

    /*
    exec usp_Category_Select '2'
    */
    ALTER Procedure [dbo].[usp_Category_Select](
           @UserID int	          
           ) as
    SELECT [Category].CategoryID, [Category].Category, [Category].UserID, [User].UserID
    FROM [User]
    INNER JOIN [Category] ON [User].UserID = [Category].UserID /* Это условие пересечения двух таблиц */
    WHERE [Category].UserID = @UserID  /* Это условие фильтрации по полю UserID */
    Ответ написан
    8 комментариев
  • Стоит ли сейчас изучать JQuery?

    @heartdevil
    плыву как воздушный шарик
    Это он зря так говорит. А аргументы он приводит в свою пользу?

    Если хотите разбираться в чужом коде, то учить обязательно. Если вы будете абсолютно все писать сами с нуля (типа менюшки, слайдеры, lightbox-ы, валидацию форм, другой кастомный клиентский функционал) и никогда не обращаться к сторонним плагинам и библиотекам и никогда не подсматривать или работать с чужим кодом, то -- да. Можете забить на jquery.

    Я вам больше скажу). Вам кроме jquery надо будет еще кучу других библиотек для различных целей изучить)). Так что привыкайте.
    Ответ написан
    2 комментария
  • Почему не получается добавить заголовки Access-Control-Allow-Origin?

    @heartdevil
    плыву как воздушный шарик
    А вы вот так добавляете?

    header('Access-Control-Allow-Origin: *');
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
    Ответ написан
  • Возможно ли изучать Алгоритмы и структуры данных без знаний языков программирования?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Я вам так скажу, вот это, конечно, крутой список

    1. Алгоритмы и структуры данных, графы.
    2. ООП.
    3. Паттерны
    4. Проектирование
    5. Реляционные БД
    6. Методология разработки ПО
    7. Тестирование

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

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

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Доступ к элементу по id -- это самый быстрый доступ. Если есть возможность использовать id, то всегда используйте.

    onclick как атрибут для html элемента действительно уходит в прошлое, но onclick/click как событие никто еще не отменял.

    Если вы работаете с чистым javascript, то вам в любом случае придется подписываться на это событие.

    К примеру, вот так:

    var el = document.getElementById("id");
    el.addEventListener("click", modifyText, false);


    Если вы используете jquery, то смысла использовать чистый javascript мало, так как есть более абстрактные методы типа

    click() - Bind an event handler to the "click" JavaScript event, or trigger that event on an element. This method is a shortcut for .on( "click", handler ) in the first two variations, and .trigger( "click" ) in the third. The click event is sent to an element when the mouse pointer is over the element, and the mouse button is pressed and released.

    on() - Attach an event handler function for one or more events to the selected elements

    Из этих двух выбирайте, согласно описанию, тот, который более подходит.

    Если вы используете какую-то другую библиотеку, то используйте методы привязки обработчиков событий из этой библиотеки, если таковые имеются.

    Но на самом деле, все зависит от задачи. Вы задали слишком общий вопрос. В данном случае преимущества одного способа над другим несущественны. Выбирайте любой.
    Ответ написан
    5 комментариев
  • Как добавить вывод количества новых записей Wordpress?

    @heartdevil
    плыву как воздушный шарик
    Попробуйте эту функцию применить: wp_get_recent_posts

    описание
    Ответ написан
    Комментировать