• Подключение простейшего php скрипта в битрикс, как?

    Вы будете это подключать в каждом файле до require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); ?

    Ну это же не путь.
    Добавьте эту проверку хотя бы в init.php. А лучше в какой-то файл, который уже просто подключайте в init.php*

    Это то что касается подключения именно в битрикс.

    Что касается самой библы - сначала оладьте свое решение на пустом обычном файле без битрикс. Потом уже к битрикс подключайте. А то у вас явно не работает SxGeo, а вопрос вроде как про битрикс.

    Я не буду говорить что само такое решение плохое - и вы зарежете очень много пользователей из тех стран из которых их надо пропустить - надеюсь вы и сами прекрасно понимаете и желание отпилить ногу полностью осознано, но я все же хочу сказать что подключать на каждом хите эту библу - дорогое удовольствие. Поставьте лучше куку, после того как пропустили пользователя один раз и всем пользователям с этой кукой уже не выполняйте проверку. Можно признак в сессии хранить в принципе.
    ----------------------------------
    * - я имею ввиду /local/php_interface/init.php
    Ответ написан
  • Можно ли удалять инфоблок по XML_ID?

    Получить ID элемента по XML_ID и удалять/обновлять по ID.
    Если все сделано правильно это должна быть достаточно дешевая операция.
    Ответ написан
    1 комментарий
  • Кому попадалась или может у кого есть в свободном доступе годная выгрузка csv для импорта каталога под Битрикс?

    Берясь за написания импорта я обычно стараюсь думать не о том как побыстрее обновить побольше товаров, а о том, как побольше товаров не обновлять.
    Первая и самая простая оптимизация добавить к свойствам товаров еще одно - HASH и писать туда md5 от сереилазованного массива которым вы хотите обновить товар. Дальше, при следующем обновлении вы перед Update будете вычислять от сериалазованного массива которым хотите обновить товар, этот Hash и обновлять товар только если он не совпадает с сохраненным хэшем и записывать этот новый хэш.
    Такая схема очень удобна в случае если источник не умеет отдавать только изменившиеся товары или товар состоит из нескольких элементов ИБ (Товар+Торговое предложени+Элемент свойств). Кроме того помним что цена тоже хранится отдельной сущностью и для нее можно провернуть тот же трюк. Вычислить md5 прямо сильно быстрее чем сделать запись.

    Кроме того следите за тем чтобы вашем кастомном импорте не было ничего кроме записи в update внутри цикла. А то всякое видеть приходилось.

    Вообще записать 1000 товаров за минуту в базу, без картинок - это полная ерунда. Должно хватить любой производительности, если конечно не выяснится что у вас не 100 ТП к каждому товару.

    И да - убедитесь, что и товары и ТП и все ИБ в которые вы пишите во время импорта хранят свойства в отдельных таблицах, а не в общей.
    Ответ написан
    3 комментария
  • Как сделать поиск основного содержания на сайте?

    body победит.
    Взять две группы страниц:
    Группа А - целевая страница загруженная много раз.
    Группа Б - страницы на том же уровне вложенности. Лучше добавить сюда каждую страницу 2-3 раза.
    Теперь возьмем целевую страницу и удалим из нее все элементы отличающиеся хоть от одной страницы из группы А. Так мы отбросим рекламу, всякие колонки новостей подгружаеющиеся постоянно разными и т.д.
    Следующим шагом удалим со страницы все элементы которые совпадают с элементами на любой странице Б.

    Оставшиеся и есть основное содержание, в общем смысле. Еще могут оставаться скажем списки рекомендуемых товаров к данному, или списки похожих новостей или статей по этой тематике. Так как они будут отличаться от таких же на страницах группы Б скорее всего, и не будут изменяться при перезгагрузках страницы и соответственно не будут отсеяны сравнением с А. Ну тут можно попробовать удалять регулярные структуры, и если такой подход удаляет меньшую часть контента (это нужно чтобы не почистить теги p из статьи например) соглашаться на такую очистку. Еще можно учесть что такие регулярные структуры будут иметь много вложенных тегов, в отличии от регулярных структур контента.

    Как-то так я бы делал.
    Ответ написан
    Комментировать
  • У меня одного накрылась синхронизация в Опере?

    Попробуй beta версию. Мне кажется что в beta самая стабильная синхронизация, а в developer - самая нестабильная (хотя сейчас работает), а так вообще периодически ломается везде. Не помню такого чтобы работала без перебоев продолжительное время.
    Ответ написан
  • Какие есть годные материалы и статьи для знакомства с битриксом для фронтенд-разработчика? Или что вы можете подсказать в самом начале пути о битрике?

    Для фронтенда - ничего. Битрикс это бэкенд. Да у него есть своя js библа, но ее мало кто реально использует. На практике битрикс это бэкенд, и вам ничего не нужно о нем знать. Бэкенд который надо учитывать при верстке - плохой бэкенд и это не про Битрикс.
    Просто делайте хорошую верстку - она натягивается на любой бэкенд.
    Вообще у меня есть вот такой список: https://github.com/Suntechnic/web_manuals/blob/mas...
    Ответ написан
    Комментировать
  • Как сделать рейтинг на основе просмотров статьи?

    Какой-то специальной формулы нет.

    Но если немного подумать то вырисовывается 2 варианта и все зависит от того для чего вам рейтинг.

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

    2 Если вам нужно определять НАСКОЛЬКО одна статья круче другой, то вам придется определится как это связано с просмотрами, потому что в 2 раза больше просмотров может не означать что статья в 2 раза круче. Тут скорее всего подойдет какая-то степенная функция - подбирайте не свой вкус, но как правило квадратный корень обычно наилучшее решение. Таким образом статья будет в 2 раза круче если набрала в 4 раза больше просмотров.

    3 (да он тоже входит в эти два варианта) Если вы собираетесь использовать рейтинг для показа статей на главной например вам придется очень хорошо продумать способ показа. Дело в том что пусть у вас показываются статьи случайно, если у них одинаковый рейтинг, по одной на главной и всего две статьи. После того как третий человек кликнет по статье и они набирут суммарно 3 просмотра, у одной из них рейтинг станет в 2 раза выше и на главной начнет показываться только она, в итоге она начнет набирать просмотры и ее рейтинг взлетит до небес, а отображать он будет не качество статьи, а работу генератора случайных чисел.
    Поэтому здесь нужно придумать способ показа. Хорошая идея выводить статьи с высоким рейтингом + несколько случайных статей. А сам рейтинг лучше взять степенной как в варианте 2. Интуитивно кажется хорошей идеей выводить на главной N случайно выбранных статей + kN с высоким рейтингом статей где k == степени корня.

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

    Suntechnic
    @Suntechnic Автор вопроса
    if ($arObject['PROPERTY_PHOTO_DESCRIPTION'][$k] != $desc) CIBlockElement::SetPropertyValueCode(
                        $arObject['ID'],
                        'PHOTO',
                        Array($arObject['PROPERTY_PHOTO_PROPERTY_VALUE_ID'][$k] => Array("DESCRIPTION"=>$desc))
                    );
    Ответ написан
    Комментировать
  • Как лучше организовать календарь?

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

    По факту - лучше никак. Буквально. Если я правильно понял вопрос, то вы хотите спросить о том, как на уровне данных представить даты календаря - ответ - никак. Генерируйте календарь (даты) прямо в шаблоне компонента, а события (которые как я понимаю будут элементами ИБ) просто ставьте дату в поле даты времени. При клике на число применяйте фильтр по дате к ИБ событий и всех делов.
    Ответ написан
    Комментировать
  • Как разделить диск в kali linux?

    Не правильный вопрос - правильный вопрос - А зачем? Что и для чего вы хотите разделить?
    Ответ написан
    Комментировать
  • Как на битриксе сделать древовидное меню, с раскрытыми подразделами на активном пункте?

    1 Уберите теги jquery, битрикс и javascript - не вводите людей в заблуждение - все это не имеет отношение к вопросу.
    2 Я же писал уже вам - просто сверстайте его так.
    3 Если вы хотите прямо эту верстку подкорректировать, то:

    Уберите js вообще полностью. Вообще соотрите все что в файле.
    строки
    <li<?if($arItem["CHILD_SELECTED"] !== true):?> class="menu-close"<?endif?>>
            <div class="folder" onClick="OpenMenuNode(this)"></div>

    замените на следующие:
    <li<?if($arItem["SELECTED"] != "Y"):?> class="menu-close"<?endif?>>
    Ответ написан
    Комментировать
  • Как сделать меню (на битриксе) с подразделами, которые отображаются только когда находишься в разделе?

    Вопрос слишком общий. Конкретизируйте что не получается.
    Если так же обще отвечать, то такое меню реализуюется на базе стандартного компонента в стандартном шаблоне. Вам нужно просто сделать чтобы подменю активногом пунтка отображались, например зада в css dispaly: none; для блоков подменю и display: block; для блока подменю родитель которого имеет класс который вы назначаете активному пункту меню.
    Кажется такая верстка есть в одном из стандартных шаблонов меню - посмотрите стандартные шаблоны. Хотя возможно я ошибаюсь и уже нет.
    Ответ написан
  • Где в Битриксе отображается сниппет описания для яндекса?

    Как уже дважды правильно, но неявно заметили это скорее всего содержимое метатега description.
    1 Убедитесь что это так, посмотрев исходный код вашей сгенерированной страницы. Чем там равен description? Тому что в яндексе? Тогда нужно искать где этот тег пихается в description
    1.1 Ищем это место - для начала смотрим в header.php - может он напрямую там записан в head. Дальше смотрим саму страницу - там может быть уже приведенная Antony Tkachenko конструкция устанавливающая description. Если нет смотрим еще footer.php - могут устанавливать дискрипшен и там. Если и там нет - проверяем все инклюды в хедер, страницу и футер. Можно например удалить содержимое страницы и снова посмотреть сгенерированный код - пропал дискрипшен или изменился - что-то устанавливает его внутри страницы, нет - значит за ее пределами.

    2 Возможно дискрипшен уже изменен, а яндекс так по старой памяти выводит. Тогда этот текст вы нигде на сайте уже не найдете :)
    Ответ написан
    Комментировать
  • Как объединить 2 массива?

    Никаких. Потому что у вас по сути два подхода - неглядя все перенумеровать (splice) или проверить на дубликаты (merge). Можно конечно как вы верно заметили еще в цикле самому, но вряд ли ваша реализация окажется быстрее нативной.
    Если и искать решение, то в другой плоскости - возможно не стоит объединять огромные массивы?
    Например не допускать чтобы образовывалось два, а пихать данные заранее в один. Или работать раздельно с двумя.
    Ответ написан
    Комментировать
  • Как определить, кто запустил скрипт, с какого компа?

    В эксесс логе сервера посмотреть.
    А что за "данный" скрипт?
    Ответ написан
  • Как в Bitrix убрать дописку к Title?

    Вы убрали название сайта, а не дописку к title.
    Если тайтл у вас выводится стандартными компонентами, то его вид настраивается как правило в настройках инфоблока на вкладке SEO или же в настройках самого компонента.
    Если нет - у вас какая-то кастомизация и без программиста не обойтись.
    Ответ написан
    Комментировать
  • Как люди делают полный дамп сайта?

    Заходят на сайт через админку и делают дамп. Либо подключаются к серверу по ssh и тоже делают дамп.

    Как закрыть уязвимости:
    Смените пароль с 123456 на какой-нибудь менее предсказуемый (Нет, qwerty тоже не подходит).
    Удалить на сервере FTP.
    Не подключайтесь к серверу по SSH из под Windows.
    Удалите все сомнительные плагины с сайта.
    Регулярно обновляйте CMS, устанавливая все последние одновления.
    Если сайт самописный - удалите его и замените на CMS.
    Если сайт на сервере к которому есть доступ из Интернета - отключите сеть.
    Если сервер работает - обесточьте его.
    Выньте устройства хранения данных из вашего сервера и положите его в микроволновку. Включите программу разморозки на 2 минуты.
    Сожгите микроволновку.
    Если вы помните содержимое сайта по памяти [УДАЛЕНО РОСКОМНАДЗОРОМ]
    Ответ написан
    Комментировать
  • Можно ли ссылки сделать безопаснее?

    Вы по религиозным соображениям не хотите использовать magnet-url и хотите чтобы мы помогли вам их переизобрести?
    Ответ написан
    Комментировать
  • Как скрыть не нужные пункты меню Битрикс КП?

    Правильно поместить в последний параметр код вызов которого вернет true если пункт надо отображать. Лучше если этом будет вызов функции. Это для статических пунктов.
    Например !$USER->IsAuthorized() чтобы показывать пункт меню только неавторизованным пользователям.
    Т.е. так к примеру:
    global $USER; 
    $aMenuLinks = Array(
    	Array(
    		'Выход', 
    		'/auth/?logout=yes', 
    		Array(), 
    		Array(), 
    	        '$USER->IsAuthorized()' 
    	),
            Array(
    		'Вход', 
    		'/auth/', 
    		Array(), 
    		Array(), 
    	        '!$USER->IsAuthorized()' 
    	),
    );

    Ну а если меню формируется динамически то можно и в .top.menu_ext.php формировать массив $aMenuLinks - там уже что угодно можно делать. Только кэшу уделите особое внимание.
    Ответ написан
    2 комментария
  • Как исправить такую ошибку, не заходя в админку Битрикса?

    Вы же можете редактировать файлы - авторизуйтесь без пароля.
    Создайте файл с подключенным прологом и $USER->Authorize(1); или какой там id у вашего админа и входите в админку.
    Ответ написан
    Комментировать