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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    tinyMCE, CKeditor, оба требуют отдельного файл менеджера, но умеют его использовать через плагин. KCfinder для CKeditor вроде бесплатный, есть какой-то за деньги, более навороченный. Можно и вот такой использовать, весьма удобный.
    Ответ написан
    Комментировать
  • Как используя js/jq загрузить в input file файлы не за 1 раз, а за несколько?

    ThunderCat
    @ThunderCat Автор вопроса, куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Итак, вариант решения который в итоге подошел по таким параметрам:
    1) Файлы можно загружать в несколько этапов, то есть добавил, удалил, еще добавил и тд.
    2) Превью файлов хранится в браузере, никакой загрузки до субмита основной формы на сервер не происходит, дабы предотвратить мертвые загрузки - когда люди закрывают форму недозаполнив, но подгрузив файлы.
    3) Файлы грузятся на сервер по субмиту формы с кучей полей и линкуются с объектом.

    Реализация:
    1) так как все писать руками было лень было дернуто с гитхаба половинчатое решение, и "после сборки обработано напильником" (кому интересно - пишите - положу куда-то или форкну ветку). Что умеет сие творение "из коробки": подгружать файлики картинок и делать превью с кнопкой удаления. Все файлы пишутся в отдельный массив, который в конце по нажатию кнопки(опционально сразу при подгрузке с винта) аяксом отправляет на сервер файлы, генерировать кастомный евент по завершении загрузки. Что-то еще, но прочие фишки не понадобились.
    2) В результате обточки было добавлено несколько свойств - максимальное количество файлов, максимальный размер файла, максимальный размер всего набора и токен. Теперь оно умеет ругаться на превышения лимитов и отправлять не только файлы, добавленные в массив, но и ключ-токен.
    3) На основную форму был повешен листенер онсубмит, который проверял переменную filesSended, по умолчанию установленную в false, и при фалс делал превентдефаулт форме, аяксом слал файлы и токен на серв, по завершении загрузки срабатывал листенер на евент загрузки, который выставлял filesSended в тру, и снова субмитил основную форму, уже без превентдефаулт. Все выглядит как простая отправка формы с перезагрузкой.
    4) На сервере файлы принимаются, в базу пишем пути и токен, после чего срабатывает обработчик формы и на сервер приходят остальные данные и дубль токена из хидден инпута. Из них строится объект, айдишник и токен передается в объект картинки, методу ->relinkImages($id,$token); Метод тащит все картинки с заданным токеном, меняет поле связи на нужный айди, обнуляет токен и сохраняет запись. Все!
    5) В качестве паранойи в сессию пишутся все токены выданные пользователю и при загрузке картинок и данных наличие пришедшего постом токена проверяется в сессии.

    Отдельное спасибо Stalker_RED и Сергей delphinpro за умные мысли, советы и отличное знание темы, сам в жс "плаваю".

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

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    смотрите в сторону файлового апи в жс - FileReader(), вам подойдет readAsDataURL(). Как вариант на инпут файл вешается ончейндж, и из файллиста все пихается в валуе какого-то хидден инпута. Все, на стороне сервера готовый бэйз64 стринг.
    Ответ написан
  • Чем отличается ajax-запрос post от get?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    смотрите логи, 500 ошибка обычно выводится когда вывод ошибок перенаправлен в лог и возник фатал ерор. Или задайте для выполнения скрипта ерор репортинг е_алл, и дисплэй еррорс 1.
    Ответ написан
    Комментировать
  • Должен ли контроллер знать о существовании других моделей?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    После получения массива объектов пост
    а на самом деле почему-то массив массивов. Что мешало, раз пошла такая пьянка, получить таки объекты, и в них уже положить массив объектов комментов?
    Есть такая штука - коллекция, например вот так примерно работает:
    $posts = new Collection(new Post()); // передаем пустой объект нужного типа
    $posts->createCollectionByOwner($ownerId); // инициализируем - грузим коллекцию по параметру
    $posts->appendComments(); // грузим комменты
    $posts->appendImages(); // подгружаем картинки
    $this->view->posts = $posts; //отдаем коллекцию в вид
    echo $this->view->renderView(); // рендерим

    и все, внутри все пишется 1 раз, работает для любого типа объекта.
    Ответ написан
  • Как закрыть pop up автоматически через n секунд?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    $("#success-message").hidefadeOut(2000);
    Ответ написан
  • Как быстро проверить сериализованные данные?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    if(unserialize($string)===false) echo 'облом';
    правда будет еще нотис сформирован, но тут уж се ля ви.
    UPD: косяк может произойти при передаче false, вернется false, хотя это верное значение сериализации.
    Ответ написан
    Комментировать
  • Как спрятать все элементы с определённым классом?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    1) Hidde???
    2) зачем такие мучения? дайте кнопке id="hideButton", уберите инлайн onclick="a()" - это плохой стиль, подключите JQ и:
    $('#hideButton').on('click', function(){
        $('.name').hide();
    })
    Ответ написан
    2 комментария
  • AJAX не работает. В чем причина?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    -1) кто такой input type="login"???? text знаю, password знаю, login шо за зверь?
    0) проверить, подключен ли JQ
    1) биндить евент по загрузке, и правильнее использовать on, то есть:
    $(document).ready(function () {
        $('#login_r').on('keyup', function(){
            console.log('пошел процесс!');
            ...
            console.log(msg);
        })
    }

    2) Использовать console.log(), сначала в самом начале функции обработчика жс, чтобы убедиться что бинд вообще работает, далее, если все работает, выводить ключевые переменные на точках ветвления/изменения параметров. В конце вывести что пришло аяксом.
    3) как и советовали, для начала и для отладки, уберите все и оставьте только вывод.
    4) mysql_* функции являются устаревшими, используйте PDO(рекомендуется) или mysqli_*.

    UPD:
    Теперь выводит alert('error');. То есть пропускает весь цикл до последнего else.

    Для начала замените алерт на вывод в консоль, далее - выводите не бесполезный error, а данные которые пришли, нахрена вам этот еггор? По уму, оперировать надо цифрой а не буквой, то есть отдавать 0 или 1.
    Ответ написан
  • Как реализовать выборку частями?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    limit $offset, 10000
    Ответ написан
    Комментировать
  • Корректный адрес до изображения?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    для верного отображения контента используйте путь от корня сайта, если не прописаны особые директивы, корень сайта в пути обозначается косой правой чертой "/",
    соответственно путь '/img/some.jpg' = 'www.domen.tld/img/some.jpg'
    Ответ написан
    Комментировать
  • Нужно сделать 150 кружков которых надо расположить по полукругу, а после написать код так чтобы при наведении курсора на каждый кружок появляла инфо?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    гуглить:
    1) формула полуокружности с заданным радиусом или синуса(и с коэффициентом например умножать)
    2) кружочки - див с позишн абсолют и бордер радиусом соответствующего размера.
    3) инфо - стандартный title думаю подойдет
    Ответ написан
    1 комментарий
  • По какой причине не грузит сайт на хостинге?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    На хостинге выключен вывод ошибок в браузер, соответственно ошибки есть, но в браузер они не выводятся.
    1) логи.
    2) на этапе настройки ерор репортинг включить (E_ALL), вывод ошибок включить. Можно просто в индексе первыми строчками прописать
    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);

    3) На локальном сервере тоже не мешает включить отображение варнингов и ошибок, если не включено. Это помогает избежать многих проблем при переносе на хостинг.
    Ответ написан
    1 комментарий
  • Как подключть css к подключаемому файлу php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    а контент подключается из другой папки и документов очень много и я хотел бы для них прописать свою таблицу
    для каждого свою? И куда они подключаются, в индекс?
    Ответ написан
  • Как и где хранить накопившиеся файлы?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    гуглодрайв, доступ настраивается по аккаунту, по ссылке, по типу(ридонли/фулл). Что надо очень засекюрить - в архив под паролем. Есть возможность расшириться за приемлемые деньги. +Синхронизация с папкой на компе.
    Ответ написан
    Комментировать
  • Как использовать блокчейн технологии в своих проектах?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Использовать нужно с умом, например на главной пишете "блог написан с использованием блокчейн". И делаете переменную в базе blockchain, чтобы все по честному. Все, вы используете блокчейн, рвете трафик на волне хайпа, жизнь прекрасна, вы восхитительны.
    Ответ написан
    2 комментария
  • В каком формате хранить значения данных от html "select multiple"?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    свойства хранить отдельно, читать про связи один ко многим и многие ко многим.
    Ответ написан
    Комментировать
  • Как правильно сделать билингвальный (мультиязыч.) сайт без CMS?

    ThunderCat
    @ThunderCat Куратор тега CSS
    {PHP, MySql, HTML, JS, CSS} developer
    Правильный путь: делаем роутинг с языковым параметром, site/ru и site/en например, (по уму пишете небольшой модуль "языки", хранящий настройки языка в базе). Это помогает поисковикам понять на каком языке конкретная версия сайта, с куками и сессиями будет бардак в индексации, язык надо четко прописывать в урл.
    По роуту подгружаете языковой файл с используемыми на сайте В ДИЗАЙНЕ фразами. Контент(статьи, товары и тд) пишете в базе с ключом языка и группы, группа - это один товар на нескольких языках, по идентификатору языка уже делаете выборку для вывода.
    Плюшки и фенечки по вкусу(например переводы фраз тоже в базу засунуть).
    Ответ написан
    Комментировать