Software Hosting and Development Services available at PKP Publishing Services
As the developers of Open Journal Systems, Open Conference Systems, Open Harvester Systems, and Open Monograph Press, the PKP team are experts in helping journal managers and conference organizers make the most of their online publishing projects. PKP Publishing Services offers support for:
As a customer of PKP Publishing Services, you will not only receive direct, personalized support from the PKP Development Team, but will be contributing to the ongoing development of the PKP applications. All funds raised by PKP Publishing Services go directly toward enhancing our free, open source software. For more information, please contact us.
OJS development discussion, enhancement requests, third-party patches and plug-ins.
Moderators: jmacgreg, michael, jheckman, barbarah, btbell, bdgregg, asmecher
Forum rules
Developer Resources:Documentation: The
OJS Technical Reference and the OJS
API Reference are both available from the
OJS Documentation page.
Git: You can access our public Git Repository
here. Comprehensive Git usage instructions are available on the
wiki.
Bugzilla: You can access our Bugzilla report tracker
here.
Search: You can use our
Google Custom Search to search across our main website, the support forum, and Bugzilla.
Questions and discussion are welcome, but if you have a workflow or usability question you should probably post to the
OJS Editorial Support and Discussion subforum; if you have a technical support question, try the
OJS Technical Support subforum.
by Szdnez » Sat Sep 18, 2010 3:58 am
Hey,
I wrote my first plugin for OJS and it works quite fine. But still I have some problems with the schema-file. My plugin needs its own table in the database. This table is described in a
schema.xml that is located in the root directory of my plugin:
- Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE schema SYSTEM "../../../dbscripts/xml/dtd/xmlschema.dtd">
<schema version="0.2">
<table name="my_first_plugin_with_table">
<field name="id" type="I8">
<KEY/>
<AUTOINCREMENT/>
</field>
<field name="article_id" type="I8">
<NOTNULL/>
</field>
<field name="infos" type="C2" size="255">
<NOTNULL/>
</field>
<index name="my_first_plugin_with_table_article_id">
<col>article_id</col>
<UNIQUE/>
</index>
</table>
</schema>
My plugin extends
GenericPlugin and overrides
getInstallSchemaFile() like this:
- Code: Select all
function getInstallSchemaFile()
{
return $this->getPluginPath() . '/' . 'schema.xml';
}
In the documentation you can read that now the table should be created automatically in the database. But not in my case. Always when I try to access my plugin I get the error message that the table does not exists. If I create the table by hand everything works fine. Do you have any idea what is the problem? Do I have to do something more? Or I am wrong that the table is created automatically in the database?
Thanks for you help!
-
Szdnez
-
- Posts: 17
- Joined: Tue Oct 20, 2009 12:48 pm
by mcrider » Thu Sep 23, 2010 10:45 am
Hi Szdnez,
The schema file won't be installed automatically unless you use the plugin installation tool (from the manager/plugins page). Otherwise, you can execute
- Code: Select all
php /ojs/tools/dbXMLtoSQL.php -schema execute /path/to/your/schema.xml
Where in the documentation did you see that the table would be created automatically? I'll update it if its in error.
Cheers,
Matt
Matthew Crider
Public Knowledge Project Team
-
mcrider
-
- Posts: 952
- Joined: Mon May 05, 2008 10:29 am
- Location: Vancouver, BC
by Szdnez » Sun Sep 26, 2010 1:00 pm
Thanks for your help. I am not a OJS administrator or something like that, I just wrote a plugin, so I do not know much about the install proces of plugins. I read in the documentationb(
OJS Documentation ->
OJS Userguide ->
HTML):
3. Additional Plugin Functionality wrote:Schema Management: By overriding getInstallSchemaFile() and placing the named schema file in the plugin directory, generic plugins can make use of OJS's schema-management features. This function is called on OJS install or upgrade.
Because of that and the call of
getInstallSchemaFile() on start up of OJS I thought that the table will be created automatically. But it is a little bit more compiclated. I started another thread on a german forum:
http://www.carpet-project.net/forum/ ->
Erzeugen einer Tabelle für ein OJS-PlugIn and it ends up with a bug report:
http://pkp.sfu.ca/bugzilla/show_bug.cgi?id=5943.
-
Szdnez
-
- Posts: 17
- Joined: Tue Oct 20, 2009 12:48 pm
Return to OJS Development
Who is online
Users browsing this forum: No registered users and 2 guests