OJS 3.0 is out now (Hoooray!). But OJS 2.4.6 is still there and some crazy people like me are upgrading to it. So, I’m glad to share with you our new OJS 2.4.6 custom installation. Here’s the link: http://www.relacionesinternacionales.info/ojs/index.html
This work is simply amazing! Maybe the best theme I’ve seen done in years, and open source on top of it all. Many, many thanks for sharing this. I’m going to really look forward to looking at this further.
Thanks for this, @andymp – such impressive work – both in the coding and design, but also in the sharing. Thanks for being part of our community and making our software look SO GOOD and demonstrating how to make it work with a modern tool set.
What everyone else said – that looks fantastic and thanks for being such a good FOSS citizen. We’re well aware of how much work this represents.
Have you considered structuring your git repo as a fork of the PKP repo? That would make it easier to look at the differences you’ve introduced (and might help with fork management in the bargain). Let me know if I can help at all with this.
Regards,
Alec Smecher
Public Knowledge Project Team
Looks great @andymp. When you do start working towards 3.0, feel free to reach out. The two big things which will help to know is that (almost) all the frontend templates you need are in their own directory and you can do all of your overrides from a theme plugin. Happy to help orient you.
Thank you all! As I said, this wouldn’t have been possible without your help, so I’m really really happy you liked it!
Regarding forking our git repo to the PKP repo, @asmecher I’ll be glad to do it. It’s a good opportunity to learn a bit more because I’m a complete GitHub newbie. I’ll try this weekend and let you know if I get lost.
And @NateWr, thanks for the tips! Sharing knowledge, best way to improve… Open source rules.
Great, @andymp. I’ve gone through the code to see what you’re doing – now that it’s in as a fork of OJS and pkp-lib, I can easily compare the versions through the Github interface and make comments etc:
I see that some of what you’re doing is site-specific, which is exactly what you set out to do, so no surprises there. I hope that OJS 3.0’s theme plugin support will allow you to do much of that as a theme plugin so you won’t have to modify the core code anymore.
I think you’ll find that managing your code with github gives you a much easier way to upgrade when it comes time to re-apply your changes to a newer release (e.g. OJS 2.4.6-1, which will be released shortly). You’ll need to do a git rebase to apply your changes to the new tag, and that should be it.
I can’t recall whether OJS 2.4.6-1 will have a JQuery/JQueryUI update included – @beghelli can probably remind me. This should make it easier to work with modern Javascript.
I see what you’re doing with the overrides template directory and it does have advantages, but one disadvantage is that it won’t allow you to easily maintain templates when you have to upgrade. Your override copies can’t be compared against the stock OJS templates (via git, anyway) so you’ll have to figure out a way to manually manage updating them. (There’s a good role for these, and we’ve talked about how to mitigate the risk of version incompatibilities, and IIRC we decided to better break up templates into smaller pieces and to document what promises we make about compatibility between versions. IIRC this mirrors what other major apps have done.) I’d suggest not including override copies unless you need to change their behavior from the default.
@NateWr will probably also have some useful comments.
Very good stuff, @andymp, and thanks again for being such a good FOSS citizen!
Regards,
Alec Smecher
Public Knowledge Project Team
I don’t have any extra comments, simply because I’m not that familiar with OJS 2.x. I’ve only been working with the 3.0b code base. Looks like you’ve done a ton of work there!
Now create a new folder named “override” where your OJS is installed on your server. Create at least another folder inside this one and name it “templates” (or you can replicate the structure of this folder that’s on GitHub).
Inside this new override > templates folder you can now copy any folder from the original OJS templates folder and do your changes. No need to copy all files from the folder, just the ones you want. And please remind Alec’s remark about upgrades and mantaining templates changes.
This are the basics steps. So go ahead with these and tell me if how it goes.
Hola Felipe,
La versión de tu OJS debe ser la 2.4.6 y lee bien lo que dice Alec sobre el problema que supone al pasar a futuras versiones de OJS. No repito la cita porque ya está arriba en inglés.
La manera de proceder, para mí, sería:
Copia el archivo que te señalo de lib > pkp > classes > template > PKPTemplateManager.inc.php y reemplazalo con el que tienes en tu servidor (en la misma ruta).
Crea una carpeta llamada “override” en donde tengas instalado el OJS en tu servidor. Crea dentro de ésta otra nueva que se llame “templates”. También puedes replicar la estructura de esta carpeta que está en Github.
Dentro de esta nueva carpeta override > templates puedes copiar cualquier carpeta que esté en la carpeta “templates” original del OJS y hacer las modificaciones que quieras a los archivos. No es necesario que copies todos los archivos de cada carpeta, solo los que quieras cambiar.
Si quieres añadir librerías de CSS/JS como Bootstrap puedes usar el plugin que te he enlazado en el punto 4 en inglés.
Gracias, no sabía que la comunidad tenía soporte en español Aplicaré esto en ésta tarde y le cuento cómo me va. Muchas gracias por la guía y por el excelente trabajo que hiciste con ésta modificación. De verdad se agradece todo los materiales que me brindas.
he aplicado la guía que me has dejado para seguir, lastimosamente me encuentro con éste error…
Warning: require_once(lib/pkp/classes/template/PKPTemplateManager.inc.php): failed to open stream: No such file or directory in D:\Xampp\htdocs\ojs-2.4.6\lib\pkp\includes\functions.inc.php on line 32`
Fatal error: require_once(): Failed opening required 'lib/pkp/classes/template/PKPTemplateManager.inc.php' (include_path='.;D:\Xampp\htdocs\ojs-2.4.6/classes;D:\Xampp\htdocs\ojs-2.4.6/pages;D:\Xampp\htdocs\ojs-2.4.6/lib/pkp;D:\Xampp\htdocs\ojs-2.4.6/lib/pkp/classes;D:\Xampp\htdocs\ojs-2.4.6/lib/pkp/pages;D:\Xampp\htdocs\ojs-2.4.6/lib/pkp/lib/adodb;D:\Xampp\htdocs\ojs-2.4.6/lib/pkp/lib/phputf8;D:\Xampp\htdocs\ojs-2.4.6/lib/pkp/lib/pqp/classes;D:\Xampp\htdocs\ojs-2.4.6/lib/pkp/lib/smarty;.;D:\Xampp\php\PEAR') in D:\Xampp\htdocs\ojs-2.4.6\lib\pkp\includes\functions.inc.php on line 32
¿Alguna idea de cómo solucionarlo? De antemano muchas gracias por su atención.
Acabo de instalar en local (con Wamp, no con Xampp, pero da igual) un OJS 2.4.6 limpio. He copiado el archivo PKPTemplateManager.inc.php que te mencionaba y no me da ningún error (incluso con display_errors = on ).
Algunas cosas que se me ocurren:
No lo había mencionado pero primero tienes que instalar el OJS y después, cuando todo funciona, sobreescribir el archivo que te digo (PKPTemplateManager.inc.php). No sé si lo habrás hecho así.
Asegurate que que realmente existe este archivo en tu ordenador. La ruta debería hasta él debería ser (por lo que pone en el mensaje de error):
D:/Xampp/htdocs/2.4.6/lib/pkp/classes/template/PKPTemplateManager.inc.php.
Verifica que existe y que tiene contenido. Por el mensaje de error parece este problema, pero no estoy seguro.
Espero que te sea de ayuda. Aparte de esto, solo soy otro miembro de la comunidad, así que no es que haya soporte en español, simplemente ayudo un poco al igual que otros me ayudaron a mí . Te digo esto porque a lo mejor en inglés hay más personas que pueden echar una mano.
¡Ánimo con ello y gracias a tí por probar, continuar y modificar el trabajo que hice!
PS: @asmecher, should we translate this? Should we change to english? Is any “official” language in the forum? I didn’t find anything about this in the FAQs/Guidelines or the CoC.
Dale, aplicaré las cosas que me dices y te contaré lo que ocurre. De todas maneras te vuelvo a dar las gracias por la cordialidad con la que me atiende. En serio muchas gracias.
Además de esto tengo otra pregunta, si tomo yo las carpetas que aparecen en el fork que hizo ¿hay algún problema? Me refiero a que si lo coloco en la carpeta overwrite > template ¿Puede generar algún tipo de error?
@andymp
hello thank you very much for sharing this with the world
am from Algeria and i use Ojs 2.4.6 when i saw your modification i really liked it and i wanted to test it
so i did follow the instruction but i get this error from my Php_logs
Hi @andymp
Thank you for the replay
i did change that line but i get a fatal error
( ! ) FATAL ERROR: CALL TO A MEMBER FUNCTION GETLOCALIZEDTITLE() ON A NON-OBJECT IN C:\WAMP\WWW\OCS\CACHE\T_COMPILE\B6AD22E917817DF2E48560F17594975DF1DFBAC1^%%36^36E^36E89D0E%%HEADER.TPL.PHP ON LINE 227
so i opned the file with the problem i think it’s on this line 227