Статьи про web

Авторизация под чужим логином, а также восстановление пароля администратора в 1С-Битрикс

В обоих случаях создадим в корне сайта(или в другом месте) скрипт, к примеру access_user.php.

Восстановление пароля для администратора:

<?
  require($_SERVER['DOCUMENT_ROOT']."/bitrix/header.php");
  echo $USER->Update(1,array("PASSWORD"=>'Bitrix*123456'));
  echo $USER->LAST_ERROR;
  require($_SERVER['DOCUMENT_ROOT']."/bitrix/footer.php");
?>

Сбросит и установит пароль для пользователя с ID = 1 на "Bitrix*123456".

Авторизация под чужим логином

<?
  require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
  global $USER;
  $USER->Authorize(1); // указываем ID пользователя
  LocalRedirect("/bitrix/admin/");
?>

В данном случае авторизация под пользователем с id = 1.

Не запускаются собрания/планерки в корпоративном портале.

Если у вас не могут запускать(начинать) собрания сотрудники, руководители или любой другой пользователя кроме администраторов. Значит проблема в правах доступа к ajax скрипту, который запускает собрание.

 

Название данного файла: ajax_meeting.php

Расположение файла: /bitrix/tools/ajax_meeting.php

 

Как настроить права:

  •  Администрирование -> контент -> Структура сайта -> Файлы и папки -> bitrix -> tools.
  • Находим ajax_meeting.php
  • Щелкаем по кнопке действия (3 линии), выбираем "Права на доступ продукта"
  • Даем доступ всем кому нужно.

 

Аналогичные проблемы могут быть и с другими скриптами.

 

Ошибки при отправке системных почтовых сообщений

Если при проверки сайта инструментом "Проверка сайта", возникает ошибка "Есть ошибки при отправке системных почтовых сообщений, число неотправленных сообщений".

Способы решения данной проблемы:

  1. Закомментить строку define("BX_CRONTAB_SUPPORT", true); или удалить ее.
    Данную строку могут добавлять некоторые плагины.
  2. Так же, возможно не включены шаблоны в "Настройки продукта -> почтовые шаблоны"

Примечание:

После решения проблемы, все не отправленные письма будут разосланы.

Функция транслита слов на PHP и JavaScript

Функция транслита русских слов на PHP:

<?php
function translit_filesname($string){
$converter = array(
 'а' => 'a', 'б' => 'b', 'в' => 'v',
 'г' => 'g', 'д' => 'd', 'е' => 'e',
 'ё' => 'e', 'ж' => 'zh', 'з' => 'z',
 'и' => 'i', 'й' => 'y', 'к' => 'k',
 'л' => 'l', 'м' => 'm', 'н' => 'n',
 'о' => 'o', 'п' => 'p', 'р' => 'r',
 'с' => 's', 'т' => 't', 'у' => 'u',
 'ф' => 'f', 'х' => 'h', 'ц' => 'c',
 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch',
 'ь' => "", 'ы' => 'y', 'ъ' => "",
 'э' => 'e', 'ю' => 'yu', 'я' => 'ya',
 ',' => '_', ' ' => '_', ':' => '_',
 
 'А' => 'A', 'Б' => 'B', 'В' => 'V',
 'Г' => 'G', 'Д' => 'D', 'Е' => 'E',
 'Ё' => 'E', 'Ж' => 'Zh', 'З' => 'Z',
 'И' => 'I', 'Й' => 'Y', 'К' => 'K',
 'Л' => 'L', 'М' => 'M', 'Н' => 'N',
 'О' => 'O', 'П' => 'P', 'Р' => 'R',
 'С' => 'S', 'Т' => 'T', 'У' => 'U',
 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
 'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sch',
 'Ь' => "", 'Ы' => 'Y', 'Ъ' => "",
 'Э' => 'E', 'Ю' => 'Yu', 'Я' => 'Ya',
 );
 return strtr($string, $converter);
}
?>

 

Функция транслита русских слов на JavaScript:

<script type="text/javascript">
function translite(str){
var arr={'а':'a', 'б':'b', 'в':'v', 'г':'g', 'д':'d', 'е':'e', 'ж':'g', 'з':'z', 'и':'i', 'й':'y', 'к':'k', 'л':'l', 'м':'m', 'н':'n', 'о':'o', 'п':'p', 'р':'r', 'с':'s', 'т':'t', 'у':'u', 'ф':'f', 'ы':'i', 'э':'e', 'А':'A', 'Б':'B', 'В':'V', 'Г':'G', 'Д':'D', 'Е':'E', 'Ж':'G', 'З':'Z', 'И':'I', 'Й':'Y', 'К':'K', 'Л':'L', 'М':'M', 'Н':'N', 'О':'O', 'П':'P', 'Р':'R', 'С':'S', 'Т':'T', 'У':'U', 'Ф':'F', 'Ы':'I', 'Э':'E', 'ё':'yo', 'х':'h', 'ц':'ts', 'ч':'ch', 'ш':'sh', 'щ':'shch', 'ъ':'', 'ь':'', 'ю':'yu', 'я':'ya', 'Ё':'YO', 'Х':'H', 'Ц':'TS', 'Ч':'CH', 'Ш':'SH', 'Щ':'SHCH', 'Ъ':'', 'Ь':'',
'Ю':'YU', 'Я':'YA'};
var replacer=function(a){return arr[a]||a};
return str.replace(/[А-яёЁ]/g,replacer)
}
</script>

Увеличение быстродействия Bitrix.

1. Отключение сбора статистики для отчета "Пути по сайту".

С целью снижения нагрузки на систему можно снять флажок с поля Собирать данные для отчета "Пути по сайту".

Расположение настройки:

Настройки > Настройки продукта > Настройки модулей > Веб-аналитика > Закладка "Настройка данных"

2. Уменьшение времени хранения статистики, для ненужных отчетов.

Большой период времени хранения приведет к увеличению размера базы данных статистики.

Расположение настройки:

Настройки > Настройки продукта > Настройки модулей > Веб-аналитика > Закладка "Время хранения"

3. Очистить статистику (если не важна) и оптимизировать ее

Расположение:

Настройки > Настройки продукта > Настройки модулей > Веб-аналитика > 

> Закладка "Очистка статистики"
> Закладка "Оптимизация таблиц"

1C Bitrix. Устранение ошибки “Service Temporarily Unavailable”

Данная ошибка может возникнуть, если сделать много запросов к порталу(сайту) за короткое время.

Текст ошибки:
Service Temporarily Unavailable 
You have made too many requests per second.

Данную ошибку создает Битрикс, а конкретно "Контроль активности". Просто в его настройках указаннослишком маленькое число хитов посетителя за определенное время.

Для устранения заходим по следующему пути: "Рабочий стол->Настройки->Проактивная защита->Контроль активности".

Здесь можно уменьшить поле "Блокировать на время", увеличить "если в течение" и "сделано более".

Также можете изменить шаблон ошибки, что бы в следующий раз знать причину.

Десктопное приложение Bitrix24 и NTLM авторизация.

Если вы используете NTLM авторизацию, то возможно десктопное приложение не будет работать (проверенно и подтверждено тех. поддержкой Битрикса).

Но, решить проблему можно следующим образом:

В браузере Internet Explorer заходим в меню "Сервис", далее выбераем "Свойства обозревателя", на вкладке "безопастность" выбрать зону "местная интросеть" и нажать кнопку "Узлы".

В открывшемся окне поставить галочку у параметра "Автоматически определять принадлежность к интросети", после чего нажать кнопку "Дополнительно". В открывшемся окне необходимо убрать галочку у параметра "Для всех узлов этой зоны требуется проверка серверов (https://)", после чего ввести в графе "Добавить в зону следующий узел" адреса портала:

http://portal.local (и нажать добавить), где http://portal.local адрес портала

После этого закрыть все окна нажав на кнопки "Ок".

Дальше  просто запускаете и авторизуетесь.

 

Как сделать горизонтальную визуальную структуру компании в Bitrix

Если вложенность (иерархия) содержит более 3-х уровней, то визуальная структура станет вертикальной. Если вы хотите вернуть горизонтальный вид, то придется внести следующие изменения:

1. меняем в "\bitrix\components\bitrix\intranet.structure.visual\templates\.default\template.php"

$q = $arResult['__SKIP_ROOT'] != 'Y' ? 2 : 1;

на

$q = $arResult['__SKIP_ROOT'] != 'Y' ? 3 : 2;

и в \bitrix\components\bitrix\intranet.structure.visual\component.php

$arParams['MAX_DEPTH'] = 4;

Результат: горизонтальная структура для 3-х уровневой иерархии.

Скачиваем файл, а не открываем его через php.

Скачивание текущего файла

указываем до вывода текста на сайте.

 <?php header("Content-Type: application/force-download"); ?>

Скачивание определенного файла

Пригодится когда нужно скачать файл перейдя по ссылки. К примеру xml файл.

Предположим есть ссылка передающая get параметр id.

Файл обрабатывающий файл будет выглядеть примерно так:

 header("Content-Disposition: attachment; filename=".$_GET['id'].".xml");
 readfile("price/".$_GET['id'].".xml");

$_GET['id'] - имя файла;
.xml - расширение файла;
price/ - папка с фалами;

Интересные штучки для браузера на javascript

Не секрет что в закладки браузера заносить javascript. Здесь я буду выкладывать интересные, а также полезные решения.

Добавление открытого сайта в Google Reader;
Запуск карты кликов от Яндекс Метрики;
Изменение текста на открытой странице произвольного сайте;

Загрузка файлов на ftp сервер из cmd

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

1. Создадим первый файл "export.bat"

Содержимое:

@echo %time% 
ftp -i -n -s:ftp.txt
pause

Описание:

Первая стока: @echo %time%  выводит текущее время.

ftp -i -n -s:ftp.txt - подключение к ftp с описанием команд в файле ftp.txt. Файл лежит кстати там же, где и export.bat.

Ну и pause - требует нажатия кнопки, для закрытия окна.

 

2. Создадим еще один файл "ftp.txt"

Содержимое:

open pegas.hosting.ru
USER login password
binary
cd /site.ru/public_html
mput D:/webdata/*.xml
cd import_files
mput d:\webdata\import_files\*
BY

Описание:

Первая стока: указываем адрес сервера, у меня это pegas.hosting.ru.

Вторая строка: укажем логин и пароль.

binary - передаваться файлы будут в бинарном виде.

cd /site.ru/public_html откроем папку на сервере

Теперь я перемещу все файлы из D:/webdata/ с разрешением xml в открытую папку: mput D:/webdata/*.xml.

Откроем следующую папку на сервере: cd import_files.

И переместим все файлы из папки d:\webdata\import_files\

mput d:\webdata\import_files\*

Форма обратной связи на PHP для WordPress.

Данная форма обратной связи использует php.
Небольшое описание:
Содержит 3 поля: Тема, обратный email и сообщение.
Обязательное для заполнения: поле сообщение
Против спама используется простая проверка на спам (Нужно ввести нужные цифры).
К сообщению добавляется ip, host посетителя

Система комментирования HyperComments (Гиперкомментарии)

HyperComments система комментирования позволяющая комментировать отдельное слово или фрагмент текста, в отличие от традиционных систем комментирования. Нужно просто выделить фрагмент текста и нажать на кнопку “Комментировать”, появится окно для ввода текста комментария. Также можно просматривать конкретные комментарии, что очень удобно.

Условные комментарии в HTML для работы с IE

Условные комментарии в IE появились c версии 5. Данные комментарии позволяют использовать специфику для конкретного браузера, к примеру добавляя специальные стили или скрипты для конкретной версии браузера.

Предположим у вас сайт плохо отображается в IE меньше 8 версии, тогда с помощью данных комментариев можно вывести сообщение посетителю о обновлении браузера.

<!--[if lte IE 7]>
  Ваш браузер устарел, пожалуйста обновите его.
<![endif]-->

Структура условных комментариев:

<!--[if IE]>
  содержимое, вставляемое при срабатывании условия
<![endif]-->

Список возможных условий:

Конкретная версия:

<!--[if IE 6]>
  Ваш браузер IE 6!
<![endif]-->

Все версии браузера IE:

<!--[if IE]>
  Ваш браузер IE :) 
<![endif]-->

Все кроме одной версии:

<!--[if !IE 6]>
  Ваш браузер не IE 6!
<![endif]-->

Для браузеров с версией больше или равно:

<!--[if gte IE 6]>
  Ваш браузер IE 6!
<![endif]-->

Для браузеров с версией больше:

<!--[if gt IE 6]>
  Ваш браузер IE 6!
<![endif]-->

Для браузеров с версией меньше или равно:

<!--[if lte IE 6]>
  Ваш браузер IE 6!
<![endif]-->

Для браузеров с версией меньше:

<!--[if lt IE 6]>
  Ваш браузер IE 6!
<![endif]-->

Примеры:

Подключение стилей при IE 6:

<!--[if IE 6]>
  <style type="text/css">
  div.popup {
    display: none;
  }
  </style>
<![endif]-->

Подключение скрипта при версии IE меньше или равно 7:

<!--[if lte IE 7]>
  <script type="text/javascript" src="/js/ie.js"></script>
<![endif]-->

Вывод сообщения о устаревшем браузере:

<!--[if lte IE 8]>
  Ваш браузер устарел, пожалуйста <b>обновите</b> его.
<![endif]-->

Перенаправление на другую страницу (Redirect) в PHP, JavaScript и HTML

Пример перенаправлений в PHP, JavaScript и HTML с задержками и без.
header(‘Refresh: 10; URL=http://newcoder.ru/cat/web/’);
location.replace(“http://newcoder.ru/cat/web/”);
< meta http-equiv="refresh" content="10; url=http://newcoder.ru/cat/web/" >

Видео о Web