• Как правильно описать запрет на индексацию страниц?

    @pcdesign
    Эдак под такое правило:
    Disallow: /catalog/*/*/*$

    Может попасть и нормальная страница, типа /catalog/razdel/podrazdel/tovar

    Имеет смысл добавить к url с календарем какой-нибудь префикс, типа
    /calendar/catalog/{year}/{month}/{day}
    Или в конец добавить. Смотря что проще.

    И спокойно блочить:
    Disallow: /calendar/
    Ответ написан
    Комментировать
  • Объясните человеческим языком, что такое веб-фреймворк на языке php?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смогу ли я на фреймворке писать свои модули для моей CMS

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

    Наверняка не в одном фреймворке нет функции анализа собственного контента по принципу поисковых роботов.

    Фреймворк - это каркас для построения приложений. Он не решает бизнес задачи, вместо этого - технические.

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

    Может помешать только в случае, если принципы принятые в фреймворке противоречат принципам в вашем проекте. Это возможно только если вы явно выбрали не тот фреймворк. Например: для работы с БД у вас во всю используется Doctrine2, вы выбираете фреймворк yii2 и частично переходите на его ActiveRecord - это приведет к большим проблемам.

    Смогу ли я совершенствовать любой модуль фреймворка (например добавление комментариев) под свои нужны не мешая его обновлению.

    Да, форкаете фреймворк, публикуете форк в композере и пишите там все что хотите. При обновлении фреймворка - вливаете изменения в свой форк.

    Или придется ли мне все переписывать с выходом новой версии, как это приходится делать на CMS типа DLE.

    Если у вас зависимость в композере только с последней версией фреймворка - сами себе злобный буратино)). Указывайте фиксированную и обновляйтесь по собственному желанию, либо вовсе не обновляйтесь.

    На сколько я буду зависеть от выхода новых версий?

    Зависимость от новых версий фреймворка - полностью на вас. Как напишите так и будете зависеть))

    Например, я хочу сейчас скачать и дальше уже делать с ним что угодно не боясь, как в предыдущем вопросе, что найдут какую-то уязвимость и снова придется его обновлять и переписывать все свои коды в сотнях файлах php.

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

    Можно ли будет постепенно, не нарушая работу сайта, перенести собственные CMS на фреймворк учитывая то, что в них десятки модулей, собственные админ панели и т.д.

    Да

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

    Можете, форкаете фреймворк и публикуете его в composer. Правда подобная ситуация возможна для фреймворков крайне редко и скорее сигнализирует о том, что вы выбрали хреновый фреймворк.
    Ответ написан
    Комментировать
  • PHP Simple HTML DOM Parser как найти текст?

    muhammad_97
    @muhammad_97
    PHP-разработчик
    https://github.com/imangazaliev/didom - ваш код должен работать:

    use DiDom\Document;
    ...
    $document = new Document($html);
    $elements = $documents->xpath('//*[text()="foo"]');
    
    var_dump($elements);
    Ответ написан
    4 комментария
  • Стоит ли создавать интернет-магазин для портфолио на чистом PHP?

    Stalker_RED
    @Stalker_RED
    С точки зрения фриланса, лучше взять готовый известный продукт, типа opencart. Может быть пару модулей к нему написать. Во фрилансе большинство заказчиков хочет "быстро, дешево и с хорошей поддержкой". Завтра вы уйдете в другой проект, и кто будет разбираться в вашем коде?

    А при устройстве на работу - работа бывает разная. Большинство хотят чтобы вы знали хотя-бы один крупный фреймворк - типа zend, symfony, yii, lavarel. Знаете один - сможете в приемлемое время разобраться и с другим. А конкретную CMS хотят в основном те, у кого уже есть ряд продуктов на этой CMS.
    Ответ написан
    Комментировать
  • Откуда растут ноги у простоты в использовании Twig?

    prototype_denis
    @prototype_denis
    Symfony
    {#- /views/header.twig -#}
    <div>
        <div class="left">
            {% include "/views/header/left" %}
        </div>
        <div class="right">
            {% include "/views/header/right" %}
        </div>
    </div>
    
    {#- /views/header/left.twig -#}
    <ul>
        <li><a href="#!">Link</a></li>
        <li><a href="#!">Link 2</a></li>
    </ul>
    
    
    {#- /views/header/right.twig -#}
    <p class="text-left">Right</p>
    
    
    {#- /views/base.twig -#}
    <!doctype html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>{% block title %}Hello!{% endblock %}</title>
        </head>
        <body>
            <div class="row">
                <div class="col-md-2">
                    {% include "/views/header.twig" %}
                </div>
                <div class="col-md-10">
                    {% block content %}{% endblock %}
                </div>
            </div>
            <div class="row">
                <div class="col-md-12">
                    {% block footer %}{% endblock %}
                </div>
            </div>
        </body> 
    </html> 
    
    
    {#- /views/ajax.twig -#}
    {% block content %}{% endblock %}
    
    
    
    
    {#- /views/pages/base.twig -#}
    {% extends "/views/base.twig" %}
    {% block title %}
        Welcome.
    {% endblock %}
    {% block content %}{% endblock %}
    {% block footer %} (c) 2015 {% endblock %}
    
    
    
    
    {#- /views/pages/blog/index.twig -#}
    {% extends app.isAjax() ? "/views/pages/ajax.twig" : "/views/pages/base.twig" %}
    {% block title %}
        {{ parent() }} This best blog.
    {% endblock %}
    {% block content %}
        <h1>Header</h1>
        <p>Content text</p>
    {% endblock %}
    {% block footer %}{#- remove parent -#}{% endblock %} 
    
    
    Что тут происходит.
    При рендере /views/pages/blog/index.twig 
    шаблонизатор будет подниматься вверх.
    
    В нём переопределяем footer, дополняем title.
    title  = "??? This best blog."
    footer = ""
    content = "<h1>...."
    
    index (проверка переменной) +-> ajax.twig -> вывод
                                |
                                | or
                                |
                                +-> page/base.twig + 
                                                   |
          +----------------------------------------+
          |      Тут по пути уже к базовому шаблону переопределяем footer и title
          |      title  = "Welcome. This best blog."
          |      footer = ""
          |      content = "<h1>...."
          |
          v                 А тут уже include
          base.twig - - - > header.twig - + - - > left.twig
          |                               + - - > right.twig
          v
        вывод
    
    
    +---------------------------------------+
    | +-----------------------------------+ |
    | |                                   | |
    | | +--------------+ +--------------+ | |
    | | | left         | | right        | | | header
    | | +--------------+ +--------------+ | |
    | |                                   | |
    | +-----------------------------------+ |
    | |                                   | |
    | | +----------------------------+    | | base | ajax
    | | | Welcome. This best blog.   |    | | title
    | | +----------------------------+    | |
    | |                                   | |
    | | +----------------------------+    | |
    | | |  Header                    |    | | content
    | | |  Content text              |    | |
    | | +----------------------------+    | |
    | |                                   | |
    | +-----------------------------------+ |
    +---------------------------------------+


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

    ЗЫ. По умолчанию тут почему-то html подсветка. (бред)
    Ответ написан
    Комментировать
  • Как определить работает ли Flash через javascript?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Скорее всего никак, если только не выставлять флаг из самого флеш-ролика, который нужен.
    Ответ написан
    7 комментариев
  • Как seo-продвинуть сайт без денег?

    XXX
    @XXX
    Решение где-то рядом
    Alexander-K
    • Проведите аудит сайта на предмет косяков (инструменты вебмастеров Вам в этом помогут)
    • Если сайт еще не добавлен в гугл и яндекс вебмастер, то добавьте.
    • Исправьте косяки, sitemap, robots.txt, meta-теги, описания страниц, заголовки, оптимизация содержимого страниц, перелинковка и т.д.
    • Скормите карту сайта поисковикам
      http://google.com/webmasters/sitemaps/ping?sitemap=ссылка на Ваш sitemap
      http://www.bing.com/webmaster/ping.aspx?siteMap=ссылка на Ваш sitemap

      Для того чтобы яндексу карту отправить, придется зайти на страницу вебмастера. И до кучи можете воспользоваться сервисом пинга в 40 поисковиков.
    • Если сайт региональный, то задайте регион.
      В яндекс вебмастере задается в настройках сайта, География сайта → Регион сайта
      В гугловских инструментах вебмастера, Поисковый трафик → Таргетинг по странам и языкам → Страна
    • Составьте семантическое ядро
    • Напишите SEO тексты заточив под ключи по которым будете двигаться
    • Если сайт не статичный, зарегайте его в соц сетях и постите туда новости со ссылками на свой сайт
    • Регайтесь на крупных форумах, с ссылками не закрытыми от индексации и напишите там про Ваш сайт
    • Оставляйте комменты в dofollow-блогах


    "Тупо регится на площадках" и спамить ссылку на Ваш сайт, не зная ключей по которым двигаетесь, бесполезно и вредно.
    Ответ написан
    2 комментария
  • Как избавится от вируса (трояна) с рекламой в браузерах?

    @ClearAirTurbulence
    В таких случая помогает SpyBot Search and Destroy со свежими базами.
    Еще есть хорошая утилита HiJack This.

    Обе бесплатные. В принципе, можно и ручками, но те, кто умеет ручками, не пустят трояна в систему и так.

    Далее:
    1. Переустановка таки надежнее
    2. Антивирус не есть антималварь, хотя именно в таких ситуациях часто он все же помогает, если нормальный. Т.е. надо ставить и регулярно использовать приличную антималварь, при этом:
    - не попавшись на удочку и не поставив "левую""антималварь", которая наоборот )
    - фильтруя рекомендации антималвари, т.к. они часто параноидальны (либо набивают себе цену) и выдают за проблемы то, что ими не является.
    Можно поставить фаерволл, но с ним неудобно, даже когда знаешь, что имеет право лезть в сеть, а что - нет. Но если правильно настроить - будет спокойнее.
    3. Кроме головы ничего не спасет! Больше не нажимайте на большие кнопки DOWNLOAD всякого левого "софта" на подозрительных страницах, особенно, если таких кнопок много. Тут надо думать головой и читать, что к чему относится, смотреть на то, что показывает статусная строка при наведении курсора на ссылку\кнопку, что предлагат скачать (название файля, расширение). Если стрраница выглядит подозрительно - можно поискать в другом месте, обычно их сильно больше одного.
    Ответ написан
    3 комментария
  • Как сделать простой слайдер для сайта на jQuery?

    @IceJOKER
    Web/Android developer
    Как говорится - нафиг изобретать велик)

    Обратите внимание, никакой магии, я просто скопировал заголовок данного топика и усе

    5e9e195e31.jpg
    Ответ написан
    Комментировать
  • Как облегчить код jquery?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Использовать в селекторе не id, а class
    $('.tsN-right').click(function() {
        var cur = $(this)...// здесь написать выбор нужного элемента от кликабельного //
        var next = cur.next('li');
        if (!next.hasClass('text-hide'))
            next=$(this)...;
        cur.addClass('text-hide');           
        next.removeClass('text-hide');
    });
    Ответ написан
    1 комментарий
  • Не понимаю в чём причина. Почему у сайта, футер впивается вниз?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    У вас когда, например, живот болит, тоже доктору свои фото отсылаете?
    Ответ написан
    6 комментариев
  • Какая разница между jquery 1.11.1 и 2.1.1?

    VEG
    @VEG
    В версии 1.11 поддерживают совместимость с IE6-8. В версиях 2.* от поддержки старых IE отказались. По функциям они одинаковые, просто версия 2.* немного легче из-за вырезанного кода.
    Ответ написан
    3 комментария
  • Стоит ли еще раз проверять данные из формы на сервере, если ее уже проверил javascript на клиентской стороне?

    sergoslav_0
    @sergoslav_0
    PHP / Magento / Laravel
    Даже если JS включен, данные, отправляемые из браузера, легко подменить. Обязательно проверяйте!
    Ответ написан
    Комментировать
  • Как передвинуть блок на jquery так, чтобы при многоразовом нажатии он линейно ускорялся?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Отдайте анимацию на css, вот так примерно можно сделать
    codepen.io/iiil/pen/ahIxC

    По идее можно еще поправку на время между кликами делать, тогда рывков не будет. Брать время клика, сравнивать со временем предыдущего клика (начиная со второго) и это время вычитать из времени анимации.
    Ответ написан
    Комментировать
  • Как обходить сайты, блокирующие AdBlock?

    @kaasius
    Если вы не платите за сервис - вы не клиент, вы товар. Так что сносите адблок, сайты не берут c вас денег, за вас платят рекламодатели.
    Ответ написан
    7 комментариев