Рубрика «Программирование»

Редактор текста и html — TinyMCE

TinyMCE — бесплатный javascript HTML редактор, легко внедрить в сайт, имеет кучу плагинов и гибко настраивается. Заходим на официальный сайт и скачиваем редактор. Для новостей я настроил редактор таким образом tinymce.init({ selector: «textarea», plugin_preview_width: 550, plugin_preview_height: 600, plugins: [ «advlist textcolor nonbreaking link image media emoticons directionality visualchars visualblocks table template pagebreak fullscreen code preview» ], …

Реализуем шаблон publisher/subscriber

В данной заметке представлен шаблон publisher/subscriber, особенность данной реализации которой является то, что сами подписчики могут быть издателями и иметь своих собственных подписчиков. Получается сообщение будет отправлено рекурсивно по всем подписчикам. Такая реализация по сути является шиной данных, при которой все получатели и издатели распределены в разных хранилищах(в самих подписчиках), что избавляет шину данных от …

Реализуем менеджер картинок в редакторе tinymce

На официальном сайте tinymce предлагают подключить файловый менеджер MoxieManager. Но этот менеджер вовсе не бесплатный. Реализуем свой менеджер для картинок. Покажем кнопку «обзор». Для этого при инициализации плагина tinymce передадим такие настройки: setup : function(ed) { file_browser_callback_types: ‘image’, // файловый менеджер будет работать только для картинок file_browser_callback : function(field_name, url, type, win){ var filebrowser = «/Images/ImageManagerSearch?type=» + …

Реализация паттерна PRG в asp.net mvc

PRG —  post redirect get. Все POST параметры записываются в сессию, и делается редирект на GET. После чего параметры запроса восстанавливают из сессии. Это удобно когда имеются два метода один метод GET который представляет форму, а второй метод POST который сохраняет эти данные . И в случае ошибки делается редирект на форму с уже заполненными неправильными данными. …

Разрешим put и delete запросы (asp.net mvc)

При запуске приложения на боевом сервере возникает ошибка 405 Method Not Allowed using ASP.NET Web API. Исправим ее: Добавим такие строчки в web.config <system.webServer> <validation validateIntegratedModeConfiguration=»false» /> <modules runAllManagedModulesForAllRequests=»true»> <remove name=»WebDAVModule» /> </modules> <handlers> <remove name=»WebDAV» /> <remove name=»ExtensionlessUrlHandler-Integrated-4.0″ /> <add name=»ExtensionlessUrlHandler-Integrated-4.0″ path=»*.» verb=»GET,HEAD,POST,DEBUG,PUT» type=»System.Web.Handlers.TransferRequestHandler» resourceType=»Unspecified» requireAccess=»Script» preCondition=»integratedMode,runtimeVersionv4.0″ /> </handlers> </system.webServer>

Разрешим кросс-доменные запросы (asp.net mvc)

Для того чтобы разрешить кросс-доменные запросы нужно установить заголовок Access-Control-Allow-Origin. Установим заголовок Access-Control-Allow-Origin в web.config <configuration> <system.webServer> <httpProtocol> <customHeaders> <add name=»Access-Control-Allow-Origin» value=»*» /> <add name=»Access-Control-Allow-Headers» value=»Origin, X-Requested-With, Content-Type, Accept» /> </customHeaders> </httpProtocol> </system.webServer> </configuration> Или можно создать атрибут для mvc контроллеров public class AllowCrossSiteJsonAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.RequestContext.HttpContext.Response.AddHeader(«Access-Control-Allow-Origin», «*»); …

Разрешим читать статические файлы с определенным разрешением (asp.net)

Разрешим читать json файлы. Добавим в web.config следующие строчки: <system.webServer> <staticContent> <remove fileExtension=».json»/> <mimeMap fileExtension=».json» mimeType=»application/json» /> </staticContent> </system.webServer> Ссылки: http://stackoverflow.com/questions/22951046/404-not-found-when-i-look-for-json-file-in-asp-net-mvc-app http://www.iis.net/configreference/system.webserver/staticcontent/mimemap

Расширяем shadowbox

Shadowbox нужен для просмотра галереи фотографий и видео во всплывающем окне. Добавим некоторые возможности в этот плагин. Очищаем данные из кэша  для определенной галереи. Создаем метод clearGallery: Shadowbox.clearGallery = function (gallery) { var self = this; // Найдем все элементы галереи и удалим их for (var i in self.cache) { if (self.cache[i].gallery === gallery) { self.removeCache(self.cache[i].link); …

Работаем с xml в c#

Используем класс XmlDocument для работы с xml документом Создаем xml документ из строки var xml = @»<Products xmlns:ons=’http://othernamespace’> <Product Id=’1′>1</Product> <ons:Product ons:Id=’2′>2</ons:Product> </Products>»; var doc = new XmlDocument(); doc.LoadXml(xml); Создаем xml документ из файла XmlDocument doc = new XmlDocument(); doc.Load(@»c:\path.xml»); Создаем xml документ с помощью методов XmlDocument doc = new XmlDocument(); // создаем корневой элемент XmlNode …

Работаем с потоками (c#, .net)

Прочитаем все сразу из потока string content; using(StreamReader reader = new StreamReader(stream)) { content = reader.ReadToEnd(); } Прочитаем построчно из потока List<string> content = new List<string>(); using (StreamReader reader = new StreamReader(stream)) { while (!reader.EndOfStream) content.Add(reader.ReadLine()); } // или content.Clear(); using (StreamReader reader = new StreamReader(stream)) { string line; while ((line = reader.ReadLine()) != null) …