• Лучший форум на PHP?

    @strelnikovstanislav
    21 год, front-end разработчик из Санкт-Петербурга
    phpBB хорошая альтернатива любого платного скрипта, вместе с XenForo для полноценного форума нужно докупать некоторые плюшки за не самые маленькие деньги
    Ответ написан
    Комментировать
  • Правильное написание?

    Stalker_RED
    @Stalker_RED
    Да, вы правы, лучше выносить шаблоны в отдельные файлы. Также можете ознакомиться с популярными шаблонизаторами, такими как twig, blade, smarty, и так далее. Даже если вы не станете ими пользоваться, посмотрите хотя-бы краткий обзор их возможностей и принципов работы - почерпнете идеи.
    Ответ написан
    Комментировать
  • Один компьютер забирает всю скорость интернета?

    GavriKos
    @GavriKos
    Проблема в роутере. У него слабый проц, и он просто не успевает прожевывать все запросы, начинает греться и страдать вот такой вот фигней.
    Ответ написан
    5 комментариев
  • Один компьютер забирает всю скорость интернета?

    VELIK505
    @VELIK505
    Руководитель департамента profitcentr.com
    Роутер не нищинский не пробывали использовать?
    Keenetic GIGA III например
    Ответ написан
    2 комментария
  • Как корректно установишь решение в CMS bitrix?

    @neatek
    Ответ прост - не используйте это глупое решение, которое было жутко пропиарено, ведь оно работает на глупых костылях и бревнах об которые спотыкаются нормальные программисты, и все остальные используют его чисто для того чтобы сказать "я использую битрикс", хотя на самом деле всё очень печально. Программисты на битрикс - не программисты, а "конструкторы" из кучи модулей которые готовые лежат в папочках, с ужасным кодом. С путями в ссылках вообще жуткая проблема, нужно создавать кучу новых файлов чтобы что-то работало, в общем я вылил всё что думаю об этой системе.

    Насчет вашей проблемы, мой вам совет, если нету никаких интеграций с 1С Битрикс, наймите нормального программиста который напишет сайт на другой системе, например WordPress (wordpress.org/), намного лучше, быстрее и красивше.

    И потом, /newsite как там оказался шаблон? Или файлы? Возможно именно в этой папке newsite и лежит ваш index.php файл? В битрикс всё завязано на файлах, поэтому и дохнут очень быстро физ. диски хостеров.

    И надо задавать вопрос не "Что нужно сделать чтобы новое решение поставилось как основное, в основную папку?", а "Кто может помочь с ...", потому что Битрикс - это место всевозможных возможностей. И "на глаз" сказать в чём проблема - нереально.

    ps. Мною было сделано 1 - проект на Bitrix. Хватило. (большой портал).
    Ответ написан
    2 комментария
  • Как подтвердить AJAX-удаление?

    EreminD
    @EreminD
    Кое-что умею
    Самое простое
    1. Убрать onclick
    2 Изменить обработчик
    $('span.delete').click(function() {
            let isConfirmed = confirm('Точно удалить?')
            if (isConfirmed) {
                ajax({
                    url: 'https://delete.url',
                    data: {
                        'val'
                    },
                    ok: function(d) {
                        message('Запись успешно удалена');
                    }
                });
            });
    }
    Ответ написан
  • Годный ли обработчик формы?

    GeneMoss
    @GeneMoss
    void
    Не делайте такие длинные методы. Не копипасте. Отделяйте построение запроса от данных. И не надо все делать static.

    public static function saveStaff($options) 
    {
        if (self::isValidStaff($options)) {
            $staffFields = self::getFilledStaffFileds($options);
            $qb = new QueryBuilder( Db::getConnection() );
            $qb->where('id = 1')->update('staff', $staffFields);
        }
    }
    
    public static function getFilledStaffFileds($options)
    {
        $staff = [];
        if ($options['director_surname']) {
            $staff['surname'] = $options['director_surname'];
        }
        if ($options['director_surname']) {
            $staff['name'] = $options['director_name'];
        }
        if ($options['director_surname']) {
            $staff['ot4'] = $options['director_ot4'];
        }
        if ($options['director_surname']) {
            $staff['oklad'] = $options['director_oklad'];
        }
        if ($options['director_surname']) {
            $staff['date_start'] = $options['director_date_start'];
        }
    
        return $staff;
    }
    
    function static function isValidStaff($options)
    {
      return isset($options['surname']) 
        || isset($options['name'])
        || isset($options['ot4']) 
        || isset($options['oklad'])
        || isset($options['date_start']);
    }


    И использовать какой-нибудь построитель запросов, типа такого:
    class QueryBuilder {
        protected $db;
        protected $where = '';
        
        public function __construct($db) {
            $this->db = $db;
        }
        
        public function where($where)
        {
            $this->where = trim($where);
            return $this;
        }
        
        public function update($table, $params)
        {
            $values = [];
            foreach ($params as $key => $value) {
                $values[] = "`{$key}` = :{$key}";
            }
            
            $sql = 'UPDATE `' . $table . '` SET ' . join(', ', $values);
            if ($this->where) {
                $sql .= ' WHERE ' . $this->where;
            }
    
            $result = $this->db->prepare($sql);
            foreach ($params as $key => $value) {
                $result->bindParam(':' . $key, $value, PDO::PARAM_STR);
            }
            return $result->execute();
        }
    }

    P. S. Лучше пользоваться готовыми компонентами.
    P. P. S. Наверняка есть опечатки, набирал без IDE.
    Ответ написан
    Комментировать
  • Почему возникает ошибка в синтаксисе?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    $a=4;
    $b=10;
    $z= $a*$b;
    
    if ($a && $b > -1) { 
        echo $a-$b;
    }
    elseif ($a && $b < 0) {
        echo $a * $b;
    }    
    elseif ($z < -1) {
        echo $a+$b;
    }

    20170726-054354.png
    Ответ написан
    Комментировать
  • Стоит ли учить Jquery в нынешнее время?

    ShadowOfCasper
    @ShadowOfCasper
    Middle User Interface Web Developer
    Стоит. Каждой задаче свой инструмент. Если ангуляр и реакт вошли в моду, это не значит, что способы упрощённой манипуляции домом из неё вышли. Если тебе кто-то говорит, что jQuery - костыль для людей, не умеющих нативно перебирать ноды или писать xmlhttprequest - скажи им, что компьютер - это костыль для людей, не умеющих жить без гугла и социалок. jQuery всегда будет популярен. Он упрощает простые обмены данных, классов в пределах DOM, умеет работать с ajax и значительно упрощает синтаксис.
    Ответ написан
    3 комментария
  • Какой ноутбук выбрать для разработки?

    kumaxim
    @kumaxim
    Web-программист
    Собираешь системник, который поставишь у себя дома. Главное на что надо обратить внимание - количество ядер/потоков ЦП(желательно 4/8) и объем оперативной памяти(у меня 12 ГБ = 8 + 4). Хороший монитор + клавиатура, мышь и гарнитура по вкусу.

    Брать ноут для разработки... Вы, батенька, мазохит, наверное.
    Если стоит задача что-то где-то кому-то на выезде показать или поработать пару дней не дома, когда берите любой ноут, который Вам чисто внешне нравится и с него подключайтесь удаленно к своему домашнему системнику. Покупать ноутбук как основной рабочий инструмент лично я считаю нецелесообразным.

    Также, пожалуй, затрону тему с SSD.
    В ПК три вида памяти: ЦП + ОЗУ + ПЗУ. Самая быстра - регистры ЦП, вторая по скорости - ОЗУ, третья - жесткий диск.
    Первые две связаны через северный мост, третья работает с южным. Я лично знаю два способа как можно реально ускорить систему: воткнуть SSD или увеличить объем ОЗУ.

    Если если с первым все понятно - у тебя жесткий диск более шустрый и за счет этого все начинает работать быстрее, то во втором случае, если у тебя в системнике стоит 64 ГБ ОЗУ, например, ты можешь сделать пару разделов tmpfs и при загрузке копировать туда с HDD свои основные рабочие файлы. В этом случае система загружается дольше, но при работе прирост производительности чувствуется достаточно не слабый, даже в сравнении с SSD.
    Ответ написан
    Комментировать
  • Почему после использования тэга, сайт показывается криво?

    @architawr
    "Ok, Google" и все твои проблемы решены
    Этот тег указывает браузеру, что у сайта есть "мобильная версия". Без этого тега показывается полная версия сайта. Если у Вас что-то вылезло - нужно смотреть в код. А картинки вылезают за экран из-за свойства :
    max-width: 500px
    Нужно выставить
    max-width: 100%
    Ответ написан
    3 комментария
  • Где найти хороший слайдер с фокусом на главное изображение?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    Ответ написан
    Комментировать
  • Где найти хороший слайдер с фокусом на главное изображение?

    kenwheeler.github.io/slick
    См. пример с center mode
    Ответ написан
    Комментировать
  • Как вытащить посты где 'лайки > 10' (лайки в другом таблице, посты в другом)?

    SimBioT19
    @SimBioT19
    {{ user.about }}
    Вы подошли к этому вопросу не с той стороны.
    Вам нужно иметь счётчик лайков в таблице post и прибавлять к нему 1, когда пользователь ставит лайк.
    Тогда и посты с лайками > N будет получить легче легкого.
    Ответ написан
    7 комментариев
  • Как привести Битрикс до нормального состояния?

    Можете попробывать использовать любимые технологии для отображения страницы, а сам битрикс использовать только как панель администрирования.

    Пример для Laravel+WordPress https://github.com/corcel/corcel , автор написал модели, билдеры и связи.

    То есть вы должны будете тоже самое сделать, но уже для битрикса, что бы использовать препочитаемые технологии.
    Ответ написан
    Комментировать
  • Как через API Facebook опубликовать запись на стене группы?

    @vista1x
    1) Для начала создаешь приложение. Сделать это можно тут https://developers.facebook.com
    Важные моменты: в настройках необходимо указать email и активировать приложение (раздел app review)
    2) Нужно получить ключ для работы с апи. Идешь сюда https://developers.facebook.com/tools/explorer, в правом верхнем углу жмешь Get Token -> Get Page Access Token, даешь разрешения на запрос прав доступа. Жмешь снова Get Token и выбираешь свою группу, потом жмешь Request publish_pages и снова соглашаешься. Тут мы получили временный ключ. Нужно обменять его на постоянный (ну как постоянный.. действовать он будет 60 дней, далее - нужно будет снова получать).
    Выполняешь такой запрос (в этом же приложении)
    oauth/access_token?grant_type=fb_exchange_token&client_id=[ID_ПРИЛОЖЕНИЯ]&client_secret=[КЛЮЧ_ПРИЛОЖЕНИЯ]&fb_exchange_token=[ТОКЕН]

    То, что в квадратных скобках, естественно, подставляешь своё. Токен берешь из поля "маркер доступа". Выполняешь запрос, в ответе будет твой токен. Ура.

    Теперь то, что касается программирования:
    1) Берешь Facebook SDK https://github.com/facebook/facebook-php-sdk-v4/ (ставить конечно лучше через композер, но если не имеешь представления "что это и как с этим работать", то просто скачиваешь и инклудишь себе автозагрузчик, должно работать.
    2) Сам постинг.
    $app_id = ''; // ид приложения. берешь в настройках приложения (или копируешь с адресной строки)
    $app_secret = ''; // ключ приложения. берешь в настройках приложения
    $access_token = ''; // токен, который мы получили
    $page_id = ''; // id группы
    
    $fb = new Facebook\Facebook(array(
        'app_id' => $app_id,
        'app_secret' => $app_secret,
        'default_graph_version' => 'v2.2',
    ));
    $fb->setDefaultAccessToken($access_token);
    
    // а тут мы непосредственно постим запись на стену. 
    // в этом примере запись представляет собой картинку + текст
    $data = [
        'message' => 'Текст',
        'source' => $fb->fileToUpload('/полный/путь/к/картинке'),
    ];
    $batch = [
        'photo' => $fb->request('POST', "/{$page_id}/photos", $data),
    ];
    $responses = $fb->sendBatchRequest($batch);


    Если пост не уходит, смотришь переменную $responses - в ней есть ответ сервера.
    Ну и документацию не стоит обходить стороной https://developers.facebook.com/docs/php/gettingst... Тут, кстати, описана установка SDK поподробнее
    Ответ написан
    6 комментариев
  • Работа с изображением в php и js, как передать изображение от сервера без "браузерного" скачивания?

    Rou1997
    @Rou1997
    <img src="get_image.php"/>
    Здесь get_image.php "эмулирует" файл с изображением, может читать из файла на сервере и возвращать в ответ.
    Ответ написан
    Комментировать
  • Где можно найти такую галерею?

    zooks
    @zooks
    Frontend
    kenwheeler.github.io/slick Раздел Multiple Items.
    Ответ написан
    Комментировать
  • Чтобы загрузить через php картинку в папку, у папки обязательно должно быть 777 права?

    Finesse
    @Finesse
    Достаточно прав на запись пользователю, от имени которого работает веб-сервер.
    Ответ написан
    Комментировать