Как скрыть элементы управления SharePoint 2013 с помощью мастер страницы
Для кастомизации интефейса SharePoint 2013 очень часто необходимо скрыть стандартные блоки HTML разметки и элементы управления. На картинке ниже выделены и подписаны IDшники самых востребованных блоков.
Их можно изменять различными способами – правка master page, CSS или JavaScript. В этой заметке покажу – как скрыть элементы управления SharePoint 2013 с помощью мастер страницы.
[SharePoint] Service Unavailable — HTTP Error 503
Перенес севрер SharePoint 2013 на новое хранилище, сервер запустился, службы стартанули, но веб приложения недоступны — Service Unavailable HTTP Error 503.
Глянул в консоль IIS — все сайты запусщены. Оказалось, что не запущены пулы приложений.
Консоль IIS – Application Pools, запустил все пулы кроме SharePoint Web Service Root. Теперь все работает.
Как изменить кодировку файла в Visual Studio 2013
По умолчанию в Visual Studio 2013 выставлена кодировка Windows 1251, если нужно ее изменить, то открываем меню File –> Advanced Save Options…
В открывшемся окне есть список кодировок, из которого выбираем нужный, например – Unicode (UTF-8 with signature) – Codepage 65001.
[SharePoint] Ошибка при попытке открыть Общие параметры веб-приложения
Попытка открыть Общие параметры одного из веб-приложение SharePoint 2013 заканчивается ошибкой, причем у других веб-приложений такой проблемы нет.
Текст ошибки – Обновления в настоящее время запрещены для запросов GET. Чтобы включить обновления для запросов GET, задайте на SPWeb свойство 'AllowUnsafeUpdates'. (Updates are currently disallowed on GET requests. To allow updates on a GET, set the 'AllowUnsafeUpdates' property on SPWeb.)
Обойти это ограничение можно следующим образом:
1. Запускаем SharePoint 2013 Management powershell (Командная консоль SharePoint 2013)
2. Вводим следующие команды:
$w = get-spwebapplication <a href="http://site.contoso.com">http://site.contoso.com</a> $w.HttpThrottleSettings $w.Update()
Возвращаемся в Центр администрирования SharePoint и открываем Общие параметры веб-приложения.
Ошибка загрузки PyV8 при установке Emmet в Sublime Text 3
При попытке установить плагин Emmet на Sublime Text 3 вылезла ошибка – Error while loading PyV8 binary: exit code 1. Try to manually install PyV8 from https://github.com/emmetio/pyv8-binaries.
Воспользовался советом, начал ставить этот пакет вручную. Перешел по ссылке, скачал архив с PyV8 для Windows 7 x64 — pyv8-win64-p3.zip. Распаковал содержимое архива в каталог C:\Users\user\AppData\Roaming\Sublime Text 3\Installed Packages\PyV8\pyv8-win64-p3.
Перезапустил Sublime Text. Ошибка исчезла, проблема решена! Но появилась другая…
При загрузке Sublime Text 3 в консоле появилась ошибка — emmet.pyv8loader: Unable to download packages list. URL error Tunnel connection failed: 407 Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. ) downloading https://api.github.com/repos/emmetio/pyv8-binaries/contents.
Саблайм установлен на компьютере, который выходит в интернет через proxy server. Как настроить Package Control через прокси я уже рассказывал. Но, видимо, emmet.pyv8loader – не уммет рабоать через прокси. Я нашел только одно решение, кроме простого — не обращать внимание на ошибку, можно отключить запрос обновления в настройках. Для этого открываем Preferences -> Package Settings -> Emmet -> Settings – User, дописываем следующую строку:
{ "disable_pyv8_update": true, }
Сохраняем файл конфигурации и перезапускаем Sublime Text.
Настройка Sublime Text для работы через прокси
Текстовый редактор Sublime Text 3 изначально мощный, но без плагинов все равно не удовлетворяет всем потребностям разработчиков. Плагины устанавливаются через Package Control, который в свою очередь подтягивает дополнения из интернета. Но что делать, если разработчик находится в корпоративной сети за прокси сервером? Да все просто, надо просто прописать прокси в настройках Sublime Text Preferences -> Package Settings -> Package Control -> Settings – User.
В файле конфигурации дописываем 4 параметра:
"http_proxy": "proxy.contoso.com:8080", "https_proxy": "proxy.contoso.com:8080", "proxy_password": "Pa$$w0rd", "proxy_username": "contoso\\username",
Очередность можно не соблюдать, Sublime Text сам все выставит. В результате должно получиться, как на скриншоте (данные надо вбивать свои, конечно же). Домен и имя пользователя надо писать с экранированным обратным слешем – domain\\username!
Перепускаем Sublime Text и ставим пакеты через Package Control. В моем случае все заработало через прокси сервер Microsoft ISA Server 2006.
[PowerShell] Блокировка пользователей в AD с истекшим паролем
Я уже выкладывал скрипт для блокировки компьютеров в AD с Last Logon больше 90 дней, теперь пришло время пользователей. Для блокировки использую PowerShell с командлетами Quest. Скрипт ищет пользователей в определенном контейнере, если у них пароль не менялся более 90 дней назад, то блокирует учетку и делает пометку в поле Notes этой учетки.
$Date = (Get-Date -format d) Get-QADUser -PasswordNotChangedFor 90 -SearchRoot 'contoso.com/Users' | ` Disable-QADUser | ` Set-QADUser -Notes "Disabled - $Date, password expired > 90 days ago" | ` Select name
Для поиска учеток использую параметр – PasswordNotChangedFor со значением 90 дней, этого достаточно, чтобы отсеить отпускников, командировочных и т.д. Если этот скрипт запускать регулярно, то стоит добавить фильтр на уже заблокированные учетки, чтобы каждый раз не перезаписывать поле Notes. Фильтр можно взять из скрипта блокировки компьютеров (ссылка выше).
Как подключить jQuery и SPServices в SharePoint 2013
Подключить библиотеки jQuery и SPServices в SharePoint 2013 можно несколькими способами, но предпочтительно сделать это через мастер страницу, чтобы они были доступны везде.
Скачать последние версии библиотек можно здесь — http://jquery.com/ и https://spservices.codeplex.com/.
Копируем библиотеки в каталог C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\LAYOUTS на сервере SharePoint.
Проверка существования веб-страницы на Node.js
Появилась задача проверить существование веб-страниц на сайте. Адреса страниц имеют следующий вид — http://www.mysite.ru/pages/1, где последний параметр адреса это порядковый номер страницы – от 1 до 999. Для решения задачи решил использовать Node.js:
var http = require('http'); var url = require('url'); function getPageStatus(pageurl) { var options = { host: url.parse(pageurl).host, port: 80, path: url.parse(pageurl).pathname }; http.get(options, function(res) { if(res.statusCode === 200){ console.log(options.path+' - страница есть!'); }else{ console.log(options.path+' - страницы нет!'); } }); }; var pathUser = 'http://www.mysite.ru/pages/'; for(var i=0;i<1000;i++){ getPageStatus(pathUser+i); };
Для протосы скрипт выводит результат в консоль. В данной итерации результат оценивается просто визуально, но можно усовершенстовать скрипт, повесив счетчик, например.
[HTML/CSS] Подчеркивание текста
Столкнулся с особенностью в HTML/CSS. Подчеркивание текста underline в разных браузерах отображается по-разному. Для примера: в браузере Chrome линия подчеркивания толще, чем в Internet Explorer 10. В остальных браузерах я даже не проверял, т.к. и этого достаточно.
Добиться однообразия можно следующим образом – вместо подчеркивания текста text-decoration: underline; использовать нижнюю границу с толщиной border-bottom:1px solid #0054a6;. Тогда во всем браузерах это подчеркивание будет толщиной в один пиксель, либо больше, сколько зазадите.