<div dir="ltr">That's an awesome plugin! The answer is that there are no official hooks into the OPAC for plugins, but that hasn't stopped anyone yet ; )<div><br></div><div>If you take a look at the Ebsco EDS plugin, or my own Cover Flow plugin, you'll see we accomplish opac side functionality with additional Javascript. Mine is probably easier to grok: <a href="https://github.com/bywatersolutions/koha-plugin-coverflow">https://github.com/bywatersolutions/koha-plugin-coverflow</a></div><div><br></div><div>Check out the install instructions and the module file. What I do is take the parameters set up in the plugin an autogenerate some javascript which is then placed in the OpacUserJS syspref by the plugin itself. If you need to access external scripts ( like mine does ) you'll need to add aliases to the apache config manually.</div><div><br></div><div>Hope this helps!</div><div>Kyle</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><a href="https://secure2.convio.net/cffh/site/Donation2?df_id=1395&FR_ID=4715&PROXY_ID=2706639&PROXY_TYPE=20&1395.donation=form1&s_src=CHORUS&s_subsrc=CHAADOEB" target="_blank"><img src="http://widgets.ch-or.us/badge/convio/cff/4715/2706639"></a><br></div><div><br></div><div><a href="http://www.kylehall.info" target="_blank">http://www.kylehall.info</a><br>ByWater Solutions ( <a href="http://bywatersolutions.com" target="_blank">http://bywatersolutions.com</a> )<br>Meadville Public Library ( <a href="http://www.meadvillelibrary.org" target="_blank">http://www.meadvillelibrary.org</a> )<br>Crawford County Federated Library System ( <a href="http://www.ccfls.org" target="_blank">http://www.ccfls.org</a> )<br></div></div></div></div></div></div>
<br><div class="gmail_quote">On Tue, Oct 11, 2016 at 11:23 AM, SUZUKI Arthur <span dir="ltr"><<a href="mailto:arthur.suzuki@univ-lyon3.fr" target="_blank">arthur.suzuki@univ-lyon3.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <p>Hello,</p>
    <p>I've just seen there is some chat about plugins.<br>
    </p>
    <p>I wanted to add to Opac-details a list of "patron who issued this
      book also issued *** " doing such the Amazon/Ebay way of
      advertising resources.</p>
    <p>I've experimented a little with the Plugin functionnality, I
      tried to write a "Recommendation" plugin based on old issue
      analysis.</p>
    <p>The code is here :
      <a class="m_6975941284795120197moz-txt-link-freetext" href="https://github.com/Liliputech/KohaReadSuggestion" target="_blank">https://github.com/Liliputech/<wbr>KohaReadSuggestion</a><br>
    </p>
    <p>It kind of works, however I stumbled on a little problem.</p>
    It seems not possible to run a plugin publicly (like public
    reports), one has to be connected to execute a plugin, right? Do you
    see any mean to overcome this limitation?<br>
    <br>
    Thanks a lot in advance for your answers<br>
    <br>
    Best regards and happy HackFest!<br>
    <br>
    Arthur<div><div class="h5"><br>
    <br>
    <div class="m_6975941284795120197moz-cite-prefix">Le 08/10/2016 à 14:25, Kyle Hall a
      écrit :<br>
    </div>
    <blockquote type="cite">
      
      <p dir="ltr">Thanks for the overview Jonathan! I know I for one
        have the react discussion as a top priority for the jacket.</p>
      <p dir="ltr">Kyle</p>
      <p dir="ltr">Sent from my phone. Please excuse my brevity.</p>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Oct 8, 2016 2:20 PM, "Jonathan
          Druart" <<a href="mailto:jonathan.druart@bugs.koha-community.org" target="_blank">jonathan.druart@bugs.koha-<wbr>community.org</a>>
          wrote:<br type="attribution">
          <blockquote class="m_6975941284795120197quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello
            librarians and developers,<br>
            <br>
            I send a "What's on in Koha devel" email to koha-devel list
            each<br>
            month. But this one is a bit special as I will focus on the
            different<br>
            subjects you may heard of if you attend the hackfest in
            Marseille next<br>
            week.<br>
            It can be helpful for both librarians and developers!<br>
            <br>
            A lot of things are going on in the Koha ecosystem so it
            might be hard<br>
            to follow all the discussions or to jump into one.<br>
            <br>
            So my attempted goal here is to compile the topics currently
            "à la<br>
            mode" for Koha developers.<br>
            In this email I will go a bit more into details than usual,
            to let you<br>
            the opportunity to better understand the themes and to ask
            questions<br>
            next week if you want to know more. I hope it will help you
            to choose<br>
            the subject you want to be involved in during the hackfest.<br>
            <br>
            = Sandboxes =<br>
            <br>
            Sandboxes have been developed with the aim to help people
            without any<br>
            technical skills to test patches submitted on the Koha
            bugtracker.<br>
            You will find all the information you want on the dedicated
            wiki page<br>
            <a href="https://wiki.koha-community.org/wiki/Sandboxes" rel="noreferrer" target="_blank">https://wiki.koha-community.or<wbr>g/wiki/Sandboxes</a><br>
            <br>
            = Refactoring =<br>
            During the last 3 (more?) years we have integrated
            DBIx::Class (a Perl<br>
            ORM, Object-Relationnal Mapping) into Koha, for several
            (sometimes<br>
            disputed) reasons.<br>
            To take advantage of it, we are using it as much as possible
            through a<br>
            home-made object module called Koha::Object.<br>
            For the last year, a lot of legacy code has been rewritten
            and moved<br>
            out of the C4 namespace to the new Koha namespace. For
            instance<br>
            Koha::Virtualshelves replaced C4::VirtualShelves::Page (bug
            14544),<br>
            Koha::Libraries replaces C4::Branch (bug 15293).<br>
            At the moment, the job focusses on moving the legacy
            authorised values<br>
            from the C4::Koha module to Koha::AuthorisedValues (bug
            15799) and the<br>
            patrons/borrowers/users/member<wbr>s code from C4::Members
            to Koha::Patrons<br>
            (bug 16846).<br>
            For an overview of this refactoring work, please have a look
            at bug<br>
            15449 and its scary dependency graph:<br>
            <a href="https://bugs.koha-community.org/bugzilla3/showdependencygraph.cgi?id=15449" rel="noreferrer" target="_blank">https://bugs.koha-community.or<wbr>g/bugzilla3/showdependencygrap<wbr>h.cgi?id=15449</a><br>
            <br>
            Another refactoring work is about moving the
            biblioitems.marcxml<br>
            content out of the biblioitems table. The idea is to create
            another<br>
            table (biblio_metadata) to add the ability to store a record
            in<br>
            different formats. The direct and major addition of this
            move would be<br>
            to bring performance speed. See the comment 1 of bug 17196
            for more<br>
            information.<br>
            <br>
            = Speed improvements =<br>
            <br>
            During the last 2 releases, we have made a lot of speed
            improvements.<br>
            That has been achieve with the consolidation and the
            stabilisation of<br>
            our caching system and plack integration.<br>
            If you are running a recent version of Koha (3.22, 16.05 or
            later) you<br>
            should set them up correctly to fully enjoy the improvement.
            To be<br>
            fair I must say that we have had to concentrate our efforts
            on these<br>
            points because of our previous technical decisions (mainly
            related to<br>
            DBIx::Class).<br>
            Two main playgrounds: Plack and Memcached, that I will
            explain now.<br>
            <br>
            == Plack ==<br>
            I bet you already have heard of Plack, because Koha
            developers have<br>
            been talking about it for ages.<br>
            Basically it is just an interface between the web server
            (Apache,<br>
            starman, etc.) and the perl application (Koha).<br>
            When a user hits the a Koha url, a lot of files (Perl
            modules) are<br>
            compiled. In CGI mode, this compilation step is done for
            every<br>
            request. Using Plack they are compiled only once. The code
            will be put<br>
            in RAM and other requests won't need to process all the
            modules again.<br>
            It is an advantage since we are using DBIx::Class more and
            more and<br>
            its schema is heavy to load. With Plack it is only loaded
            once.<br>
            Koha is now considered as stable under Plack for the last
            versions of<br>
            Koha, so you must use it.<br>
            To know about known bugs, you can follow bug 7172 which
            gather Plack<br>
            related known bugs together. At this time there is only one
            patch not<br>
            yet pushed, bug 17392 (ping QAer!).<br>
            <br>
            Note that a timeout issue seems related to Plack and is not
            yet resolved, see:<br>
            Bug 16714 - Unexpected logout with "IP address change" (with<br>
            SessionRestrictionByIP set)<br>
            <br>
            == Caching system ==<br>
            The way we are caching "stuffs" in Koha has really been
            improved<br>
            recently and will continue to!<br>
            Important steps have been done in this area.<br>
            We are using Memcached - a memory caching system - to store
            big bunch<br>
            of data that we do not want to recalculate or retrieve from
            the<br>
            database everytime.<br>
            For instance:<br>
             - the sysprefs. A lot of them are retrieved from the
            database for each request<br>
             - the biblio frameworks<br>
             - the holidays<br>
             - ... a lot of other things could/will be cached!<br>
            <br>
            A big step has been done when we decided to introduce a
            2-level<br>
            caching mechanism (bug 16044): we have now a in-memory L1
            cache (flush<br>
            at every request) and a L2 cache (Memcached).<br>
            To understand how this mechanisms are useful, imagine a
            simple<br>
            scenario: launch a search which will return 20 results.<br>
            For each result we need to know the MARC bibliographic
            framework of<br>
            the record. Say they are all using the default
            frameworkcode. Without<br>
            any caching mechanism, we retrieved from the database the
            whole<br>
            structure, 20 times, once per result.<br>
            With our new caching mechanism, the information for the
            default MARC<br>
            bibliographic framework will be retrieved on the first
            request, then<br>
            put in both L1 and L2 cache. The 19 other results will
            retrieve it<br>
            from the L1 cache.<br>
            If the same or another user does a search, the framework
            info will be<br>
            retrieved from the L2 cache for the first result, and the L1
            cache<br>
            will be populated. The other results will retrieve it from
            the L1<br>
            cache.<br>
            Not sure this is clear, but catch me if you need more
            details :)<br>
            <br>
            All of that to say that if you are a developer, there are 3
            other bugs<br>
            with ideas to improve again the caching mechanism. They are
            all of<br>
            them in discussion:<br>
            Bug 16140 - Only clear L1 cache when needed<br>
            Bug 16079 - Retrieving system preferences from database via
            DBIx is<br>
            not fast enough<br>
            Bug 15341 - Performance - Retrieve all sysprefs at once<br>
            <br>
            One which would be nice to have is:<br>
            Bug 17261 - Add memcached configuration info to <a href="http://about.pl" rel="noreferrer" target="_blank">about.pl</a><br>
            It will permit to display the memcached configuration in the
            about page.<br>
            <br>
            <br>
            = MySQL 5.7 compatibility =<br>
            If you are interested in using Koha with MySQL 5.7 (the
            default<br>
            version for the last Ubuntu 16.04), you should take a look
            at bug<br>
            17258 and its dependencies.<br>
            Koha is not ready at all for the new default sql_mode
            configuration of<br>
            this version of MySQL (STRICT_TRANS_TABLES).<br>
            <br>
            = Security issues =<br>
            A lot of security issues (CSRF and XSS) have been fixed for
            the last 4<br>
            months, and almost all of these fixes have been backported
            to stable<br>
            releases.<br>
            They are all reported under the 2 following omnibus:<br>
            Bug 17096 - [OMNIBUS] CSRF protections<br>
            Bug 14568 - [OMNIBUS] XSS in Staff Client<br>
            Only one known bug is waiting to be QAed (but 17365).<br>
            <br>
            = Elastic search =<br>
            There are no big new features pushed since the first big
            push.<br>
            But a few bug fixes and enhancement are waiting to be QAed.
            You can<br>
            find them on the dependency graph of bug 12478.<br>
            Note that there are 2 known bugs, without patches:<br>
            <br>
            Bug 16660 - Elasticsearch broken if OpacSuppression is
            activated<br>
            Bug 17373 - Elasticsearch - Authority mappings are not
            defined for UNIMARC<br>
            Are there some UNIMARC users around? :)<br>
            <br>
            = RESTful API =<br>
            Tons of patches have been submitted on bugzilla, but only
            few got<br>
            attention from signoffers.<br>
            If you are interested in testing of them, search for "rest
            api".<br>
            <br>
            = ReactJS =<br>
            React is a JS library aimed to easier DOM manipulations.<br>
            This topic is a recurrent one and developers involved in
            this<br>
            discussion will be present at the hackfest.<br>
            They should organise a discussion to reach a consensus once
            and for<br>
            all. If accepted, it would be good to define guidelines and
            write<br>
            complete examples.<br>
            <br>
            = Koha plugin system =<br>
            It seems that people are curious about our plugin system.<br>
            It would be good to revive the discussion on new and more
            powerful<br>
            plugin system.<br>
            See the discussion on the koha-devel list at<br>
            <a href="http://lists.koha-community.org/pipermail/koha-devel/2016-May/042673.html" rel="noreferrer" target="_blank">http://lists.koha-community.or<wbr>g/pipermail/koha-devel/2016-Ma<wbr>y/042673.html</a><br>
            <br>
            = Transactions & exceptions =<br>
            It would be good to see some developers organise a
            brainstorming<br>
            session on the different topics that Tomas raised on his
            email to<br>
            koha-devel a few weeks ago.<br>
            <a href="http://lists.koha-community.org/pipermail/koha-devel/2016-September/043032.html" rel="noreferrer" target="_blank">http://lists.koha-community.or<wbr>g/pipermail/koha-devel/2016-Se<wbr>ptember/043032.html</a><br>
            <br>
            = Mana =<br>
            Paul presented us Mana<br>
            (<a href="https://lists.katipo.co.nz/pipermail/koha/2016-July/045739.html" rel="noreferrer" target="_blank">https://lists.katipo.co.nz/pi<wbr>permail/koha/2016-July/045739.<wbr>html</a>)
            at<br>
            the beginning of July.<br>
            Morgan finished her internship and will be there are the
            hackfest to<br>
            show us what she developed.<br>
            Testers and QAers would certainly be welcomed to test and
            review this feature.<br>
            <br>
            = Hea =<br>
            Hea is a website (<a href="http://hea.koha-community.org" rel="noreferrer" target="_blank">http://hea.koha-community.org</a><wbr>)
            collecting usage<br>
            statistics from different Koha installations around the
            world.<br>
            This feature is not enabled by default but is very useful
            for<br>
            developers and other people loving statistics (so librarians
            isn't<br>
            it?).<br>
            If it is not done yet, you should enable this feature to
            join the 496<br>
            libraries already registered!<br>
            One enhancement is developed and waiting for testers:<br>
            14608 - HEA : add possibility of sharing usage statistics in<br>
            Administration page and Web installer<br>
            <br>
            Hope to see you ready to fix, translate, test or QA patches
            (and drink<br>
            beers when everything is done) this week!<br>
            <br>
            Cheers,<br>
            Jonathan<br>
            ______________________________<wbr>_________________<br>
            Koha-devel mailing list<br>
            <a href="mailto:Koha-devel@lists.koha-community.org" target="_blank">Koha-devel@lists.koha-communit<wbr>y.org</a><br>
            <a href="http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel" rel="noreferrer" target="_blank">http://lists.koha-community.or<wbr>g/cgi-bin/mailman/listinfo/koh<wbr>a-devel</a><br>
            website : <a href="http://www.koha-community.org/" rel="noreferrer" target="_blank">http://www.koha-community.org/</a><br>
            git : <a href="http://git.koha-community.org/" rel="noreferrer" target="_blank">http://git.koha-community.org/</a><br>
            bugs : <a href="http://bugs.koha-community.org/" rel="noreferrer" target="_blank">http://bugs.koha-community.org<wbr>/</a></blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="m_6975941284795120197mimeAttachmentHeader"></fieldset>
      <br>
      <pre>______________________________<wbr>_________________
Koha-devel mailing list
<a class="m_6975941284795120197moz-txt-link-abbreviated" href="mailto:Koha-devel@lists.koha-community.org" target="_blank">Koha-devel@lists.koha-<wbr>community.org</a>
<a class="m_6975941284795120197moz-txt-link-freetext" href="http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel" target="_blank">http://lists.koha-community.<wbr>org/cgi-bin/mailman/listinfo/<wbr>koha-devel</a>
website : <a class="m_6975941284795120197moz-txt-link-freetext" href="http://www.koha-community.org/" target="_blank">http://www.koha-community.org/</a>
git : <a class="m_6975941284795120197moz-txt-link-freetext" href="http://git.koha-community.org/" target="_blank">http://git.koha-community.org/</a>
bugs : <a class="m_6975941284795120197moz-txt-link-freetext" href="http://bugs.koha-community.org/" target="_blank">http://bugs.koha-community.<wbr>org/</a></pre>
    </blockquote>
    <br>
    </div></div><span class="HOEnZb"><font color="#888888"><pre class="m_6975941284795120197moz-signature" cols="72">-- 
Arthur SUZUKI
Service informatique des bibliothèques
BIBLIOTHÈQUES UNIVERSITAIRES
Université Jean Moulin Lyon 3
6 Cours Albert Thomas - B.P. 8242 – 69355 Lyon Cedex 08
ligne directe : <a href="tel:%2B33%20%280%294%2078%2078%2079%2016" value="+33478787916" target="_blank">+33 (0)4 78 78 79 16</a> | <a class="m_6975941284795120197moz-txt-link-freetext" href="http://bu.univ-lyon3.fr" target="_blank">http://bu.univ-lyon3.fr</a>
L'Université Jean Moulin est membre fondateur de l'Université de Lyon</pre>
  </font></span></div>

</blockquote></div><br></div>