WackoWiki: AlexanderNickolsky/ДополненияВики ...

Home Page | Изменения | Новые Комменты | Пользователи | Каталог | Регистрация | Вход:  Пароль:  

Я не хочу делать ветку разработки, поскольку считаю что команда разработчиков WackoWiki does the excellent job и не стоит уходить далеко от их разработки.
Тем не менее, я постараюсь класть сюда дополнения, которые у меня появляются в процессе эксплуатации.


Backup / Restore


Сделал пока Backup в виде отдельной страницы на PHP. Сливает всю базу страниц непосредственно в указанный каталог на сервере, пакуя в gz. Кластеры сливаются в виде подкаталогов.

Нет проблем сделать заливку обратно, если только кто-то из знающих Wiki Internals скажет, какие заклинания надо сказать, чтобы имея текст страницы и ее название, залить это в базу.

<?php
        
// add page (revisions)
        
$body_r = $this->SavePage($tag, $body);

        
// now we render it internally so we can write the updated link table.
        
$this->ClearLinkTable();
        
$this->StartLinkTracking();
        
$dummy = $this->Format($body_r, "post_wacko"); //for R3.5 or older use post_links instead
        
$this->StopLinkTracking();
        
$this->WriteLinkTable();
        
$this->ClearLinkTable();
?>

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


YuriMakarov Возможно лучше было бы в XML (+gz если нужно) сливать. Разница не велика (только теги расставить), а универсальности сильно прибавится.
AlexanderNickolsky Мне в общем-то пофигу, куда сливать. Можно настройку сделать. Главное – потом залить, вот в чем проблема.

Cluster syntax removal


Что это и для чего – можно прочесть здесь. Длинная дискуссия, закончившаяся ничем.
Небольшое дополнение убирает ! / и прочие символы кластерной адресации из отображаемого текста.
В файл post_links.php или post_wacko.php добавляем такой текст:

if($text == $url)
    {
        $text = preg_replace("/^(\/.+\/)+/","",$text);
        $text = preg_replace("/^\!\//","",$text);
        $text=preg_replace("/^\.\.\//","",$text);
        $text=preg_replace("/^\//","",$text);
    }


после заклинания

if ($url)
     {
          $url = str_replace(" ", "", $url);
          $text=trim(preg_replace("/\xA4\xA4|__|\[\[|\(\(/","",$text));

(оно немного отличается в разных версиях, но найти его можно.)


В результате если ссылку поставить в скобки [[ или ((, то исчезает обозначение принадлежности страницы к кластеру. То есть вместо !/ПодСтраница отображается ПодСтраница, [[/СинтаксисФорматирования/Кластеры/ПодСтраница]] отображается как ПодСтраница


RomanIvanov: Теперь это делается гораздо проще. Шаблоны ссылок в вашем распоряжении.


 
Файлов нет. [Показать файлы/форму]
Один комментарий. [Показать комментарии/форму]
Donate
Время работы: 1.332 s
Использовано памяти: 2.764 Mb