Тема: Нововведения на форуме
Т.к. планирую тут писать статьи, то для себя решил сделать так, чтобы было максимально удобно. Поэтому пришлось разбираться как работает этот форум и как к нему писать extensions. Короче решил сделать, так, как мне бы хотелось.
Мне нравиться на рутрекере, что вход и поиск на верху и в самом видом месте, решил сделать также. Чтобы открыл, вписал имя и поиск был под рукой всегда.
На форуме homemediaserver.ru понравилось в при поиске выделение искомых слов - тоже тут так замутил.
Для возможности форматирования текста в статьях подумал, что было бы неплохо сделать поддержку Markdown. И сделал таки новый bbcode [ markdown].
Захотел, чтобы была подсветка синтаксиса, да такая, которая бы мне нравилась. А значит, чтобы мог подсвечивать разные языки. Сделал на основе Prism. А ещё, захотел чтобы форум сам определял, что за язык в блоке кода и выбирал подсветку автоматически и показывал, что за язык.
Просто вставляем блок кода
function CreateFolder(aParentFolder: THmsScriptMediaItem; const aFolderPath,
aFolderType, aFolderID, aFolderLink: string): THmsScriptMediaItem;
begin
Result := aParentFolder.AddFolder(aFolderPath);
if Result <> nil then begin
Result[mpiYoutubeItemType] := aFolderType;
Result[mpiYoutubeItemID] := aFolderID;
Result[mpiYoutubeItemLink] := aFolderLink;
end
end;
// ----------------------------------------------------------------------------
THmsScriptMediaItem ErrorItem(string sMsg) {
THmsScriptMediaItem Item = HmsCreateMediaItem('InfoError'+IntToStr(gnItemsAdded), FolderItem.ItemID);
Item[mpiTitle ] = sMsg;
Item[mpiThumbnail ] = 'http://wonky.lostcut.net/icons/symbol-error.png';
Item[mpiTimeLength] = '00:00:10.000';
Item[mpiCreateDate] = VarToStr(IncTime(gTimeStart,0,-gnItemsAdded,0,0));
gnItemsAdded++;
return Item;
}
Он сам должен определить язык и соответствующе подсвечивать синтаксис.
В блоке кода в тегах [ markdown] [ /markdown] можно указывать какой язык используется.
```php
function toGiveTheFile($filename, $contType='video/mp4', $give=true) {
$file = ($filename);
header("Content-Type: ".$contType);
header("Accept-Ranges: bytes");
header("Content-Length: ".filesize($file));
if ($give) {
header("Content-Disposition: attachment; filename=".$file);
}
readfile($file);
die();
```
Единственный тег, который будет обрабатываться в блоке [ markdown]- это [ spoiler]
Также фанат простого дизайна.
Так что, если заметите где-то, что что-то не так работает на форуме, косяки или ошибки - прошу, сообщайте.
Да, и теперь ссылки будут открываться при нажатии на них в новом окне.
Короче, делал, что хотел.