Bulgarian Virtual Library for Moodle / BEST

Bulgarian Virtual Library for Moodle / BEST

от Daniel Denev -
Number of replies: 0

Bulgarian Virtual Library copyright (c) 2003 by Daniel Denev
============================================================

До потребителите [To Users]

o Bulgarian Virtual Library е модул от BEST[Напълно съвместима с Moodle].
Модулът е с отворен код. При подходящо цитиране, всеки
желаещ може да прави промени в кода като за това е длъжен
да извести разработчикът на този софтуер.

o Ако това е нова инсталация, трябва да преименувате
  файла config.dist.php (dist=дистрибуция) намиращ се в
  директорията "bulgarian_virtual_library" на config.php.
  Създайте линк от подходящ интерфейсен файл намиращ се
  в поддиректорията на интерфейса до файла
  "interface.php" намиращ се в главната директория на
  Българската виртуална библиотека, след това насочете
  вашия web-браузър към файла install.php намиращ се
  също там. След като приключите с инсталацията
  изтрийте последния (install.php).

o На този етап инсталацията е автоматична само при използване
  на MySQL.
  Трябва да инсталирате таблиците от базата данни. Това
  се прави наръка за всяко едно нещо, при това на ръка.
  За последното се извинявам! Проверете представките
  пред всяка една таблица, да не се окаже, че са различни
  от общоприетите за вашата инсталация! SQL Заявките са във
  скрипт намиращ се във вашата db поддиректория.
  Това е нещо което можете да използвате за ориентир.

o Редактирайте файла със стиловите схеми, така, че библиотеката
  да изглежда като част от вашата BEST платформа.

o Това в кой раздел сте оказва влияние на това което се
  показва когато прелиствате и претърсвате документите.
  Ако потребител притежава Раздел, само и единствено той,
  (самият притежател или администратора на BEST) може да
  създава или да редактира документи в този раздел.
  Автоматичното създаване на хипервръзки се осъществява дори
  през различните раздели.

o Една заключена страница от библиотеката не е
  възможно да бъде редактирана от друг потребител, освен от
  нейният създател и притежател или от администратора.

o Редактирането на страници се извършва от потребители с три
  типа роли: автор (притежател на страницата), редактол или
  администраторът.

o Единствено страницата с блоговете позволява авторът да добавя
  рецензии по документа. Страницата с блоговете позволява единствено
  това. Всички останали потребители могат да добавят рецензии
  за публикуваното, но на базата на коментара даден от самия автор
  Първоначално коментарите не се показват вградени, и първоначално
  дават един вид на web-лог.

o "Старите" (предходни) версии на една редактирана многократно
  страница могат да бъдат преглеждани от всеки потребител.
  Такива "стари страници" могат да бъдат възстановявани само от
  администратора.

o Единствено администратора има права да изтрива неща и да борави
  с отделните раздели.

o При промени в кода известете за това Даниел Денев на daniel_i_denev@abv.bg

Към разработчиците (To Developers)

============================================================

o Във файловете с кода за табовете е зададена стойност 2

o Външна програма която ще комуникира с модула на виртуалната
  библиотека, ще може да го прави съвсем свободно както
  за тази и версия, така и за бъдещите, сомо с някой малки
  изключения, като например:

  o Без имена на класове започваще с LIBRARY_
  o Без имена на константи започващи с LIBRARY_
  o Без имена на функции започващи с library_
  o Без имена на променливи започващи с $library_
    други, без изброените по-горе (защото са запазени)дефинирани за
    взаимодействие (т.е. $library_wwwroot, $library_root,
    $library_extra, $library_interface).
  o Без аргументи в стринговете за заявки като например (частите от url-ли
    след знакът за препращате ? които се извикват в $_GET) започващи с l_
  o Без елементи в web-формулярите, като (които участват в $_POST или в
    $_FILES) започващи с l_
  o Без сесийна променлива $_SESSION['library'].
  o Без JavaScript - функции започващи с library_

o Аргументите за заявки използващи се за промяна на визуалния изглед, или за промяна
  на поведението на виртуалната библиотека приемат следните стойности (някой от тях съм задал
  като подразбиращи се, но те подлежат на промяна):

  o l_fmt = full, framed или plain
    presentation config.php
  o l_int = име на интерфейсен файл както си е в root (без директория,
    без разширение, без път) заменя се от присвоеното в $library_interface
  o l_nom = nomenus заменя опцията зададена в config.php
  o l_noc = nocomments заменя опцията зададена в config.php

o Ако желаете да работи груповата опция _all_ за форматиране на документа от библиотеката
  , то тогава включете кода от JavaScript-та script.js в хедъра на HTML
  страницата(т.е. "spoilers").

o От проведените експерименти се достигна до извода, че
  виртуалната библиотека генерира изходен поток от валиден
  XML, НО старите версии на XML не се парсират коректно
  ако искате да импортирате.
  Не е невъзможно, НО трябва предварително да се преформатира точно
  както си го форматира виртуалната библиотека.

o По-наблюдателните програмисти, ще видят, че този код поддържа два
  допълнителни формата (типа)-- html и php
  -- добавете си този интерфейсен плъг-ин (plugins/$type.php) за показване
  (library_print_$type_node()) и изтриване
  (library_delete_$type_node()) дори типовете на възлите,
  но няма възможност за създаване на нови типове възли.
  Ако има някакво друго по-елегантно предложение за решение на въпроса
  с потребителския интерфейс, ще се радвам да го чуя?
  Хвърлете и един поглед на файла example.php в директорията plugins.

o Ето и един примерен код за комуникиране с директорията на библиотеката:

 function librarytext_to_html ($wwwroot,$text,$id=0,$linkonly=1) {

  global $librarylinker;

  if(!isset($librarylinker)) {
   include_once("library/config.php");
   include_once("library/interface.php");
   include_once("library/linktext.php");
   $librarylinker = new LIBRARY_LINKER(new LIBRARY_INTERFACE($wwwroot,'library/'));
   // забележете, че:  тук обектът LIBRARY ще си работи също толкова добре както и LIBRARY_INTERFACE
   
  }
  $librarylinker->link_text($text,$id,$linkonly);
  return $text;
 }

 function librarydocument ($wwwroot,$lid='',$name='') {

  global $library;

  if(!isset($library)) {
   include_once("library/config.php");
   include_once("library/interface.php");
   include_once("library/library.php");
   $library = new LIBRARY($wwwroot,"library/");
  }
  $library->node = $library->load_node($lid,$name);
  if($library->op == "selectname") { // more than one match
   $library->list_matching_nodes($name);
  }
  else if(isset($library->node['id'])) {
   $library->print_node($library->node);
  }
 }

 function librarylistdocuments ($wwwroot,
                 $limit=0,
                 $content='',
                 $name='',
                 $author='',
                 $andor='and',
                 $sectionid=0,
                 $summary=0) {

  global $library;

  if(!isset($library)) {
   include_once("library/config.php");
   include_once("library/interface.php");
   include_once("library/library.php");
   $library = new LIBRARY($wwwroot,"library/");
  }
  if($limit == 0) $limit = (($summary == 0) ? $library->listlimit : $library->recentlist);
  $library->llist($limit,$content,$name,$author,$andor,$sectionid,$summary);
 }

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = == = =

Към администраторите [To Administrators]


o При създаването на библиотечен ресурс:
  o Използвайте тип на ресурса Web страница.
  o Ако страницата се казва "Страница" , то за директен достъп до документа
    използвайте адреси от типа:
    "http://моят хост/best/bulgarian_virtual_library/
    ?l_name=Страница&l_fmt=framed"
  o За да попаднете направо в библиотеката използвайте адрес от типа:
    "http://моят хост/best/bulgarian_virtual_library/?l_fmt=framed"

o Създаването на линк към пълната библиотека:
  o Използвайте адрес от типа:
    "http://моят хост/best/bulgarian_virtual_library/"

o За създаването на линк към отделен раздел от виртуалната библиотека
  използвайте адрес от типа:
  o Твърде дълъг е според мен:
    "http://моят хост/best/bulgarian_virtual_library/?l_op=setnamespace&l_namespace=3"

o Настоящата софтуерна разработка се явява под-прект (модул) на проекта за изграждане на
  образователната мрежа BEST със споделени ресурси между образователните институции
  в България! Не е сигурно, но българската електронна книжнина би могло да се запази
  развива и осъвременява именно с такъв гъвкъв и съвместим (XML)инструмент!
  Дай Боже! Амин!

o Превод:  Скриптовете намиращи се в директорията lang трябва да се преведат на Английски език
  и да се съхранят в UTF-8 формат.

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

До специалистите по поддръжката [To Deployer]

Кратко ръководство за инсталиране и интегриране в BEST and Moodle Compatible
----------------------------------------------------------------------------------------------------

Инсталацията все още не е добре тествана,
все пак се препоръчва следната процедура:

The Installation reqires the following steps:

1) Поставете директорията "bulgarian_virtual_library" в кореновата директория на BEST
т.е. мястото до което Web сървъра има достъп.

2) Прочете инструкцията по инсталацията от файла "README.best".

3) Редактирайте конфигурационния файлна BEST config.php, като в него добавите следният ред:

   $CFG->librarypath = "bulgarian_virtual_library"; // Спрямо кореновата директория на BEST

                     ("`-''-/").___..--''"`-._
                     `6_ 6  )   `-.  (     ).`-.__.`)
                     (_Y_.)'  ._   )  `._ `. ``-..-'
                    _..`--'_..-_/ /--'_.' ,'
                   ((('   (((-(((''  ((((
                        Daniel Denev

Daniel Denev (Даниел Денев)
Bulgaria, 5000 Veliko Tarnovo
58V Nikola Gabrovski blv.
cell 00359 88 369651
tel 00359 619 23355
daniel.i.denev@gmail.com
daniel_i_denev@abv.bg
http://sourceforge.net/projects/freeknowledge

http://88.87.24.147

books and library management systems , university library , books , readings , records