Difference between revisions of "MePrintsInstall"
(→Apply MePrints patch) |
(→Getting Started) |
||
Line 49: | Line 49: | ||
==Getting Started== | ==Getting Started== | ||
− | To | + | To activate MePrints, you will need to make some changes to your repository setup. |
===cfg/cfg.d/plugins.pl=== | ===cfg/cfg.d/plugins.pl=== |
Revision as of 09:08, 29 September 2009
For an overview of MePrints features, see MePrintsOverview.
Installation (EPrints 3.1+)
Download the latest release to your local repository directory (eg. /opt/eprints3/archives/ARCHIVEID/).
Extract files:
tar xzvf meprints_xx.tgz
Install bin scripts
Edit the bin/generate_meprints file and check the include path on the first line. For example if you have installed EPrints in /var/lib/eprints3 change the line from:
#!/usr/bin/perl -w -I/opt/eprints3/perl_lib
to:
#!/usr/bin/perl -w -I/var/lib/eprints3/perl_lib
Install cgi scripts
Link the MePrints cgi scripts into the EPrints cgi directory:
ln -s /opt/eprints3/archives/ARCHIVEID/cgi/meprints/ /opt/eprints3/cgi/ ln -s /opt/eprints3/archives/ARCHIVEID/cgi/users/meprints/ /opt/eprints3/cgi/users/
Update database
Add the new MePrints user fields (defined in cfg/cfg.d/z_meprints.pl) to your repository database:
cd /opt/eprints3/ bin/epadmin update_database_structure ARCHIVEID --verbose
Apply MePrints patch
Apply the MePrints patch file:
cd /opt/eprints3 patch -R -p0 < archives/ARCHIVE_ID/meprints_1.0.patch
This patch changes two core EPrints modules:
- DataSet.pm - add a new dataset called public_profile_users which is the set of all users who have opted to make their public profile page visible.
- Update/Views.pm - allow view pages to be generated for any dataset (MePrints adds views over the public_profile_users dataset)
Getting Started
To activate MePrints, you will need to make some changes to your repository setup.
cfg/cfg.d/plugins.pl
To use the MePrints homepage instead instead of the default EPrints page, add the following lines to your cfg/cfg.d/plugins.pl configuration file:
$c->{plugins}->{"Screen::User::View"}->{appears}->{key_tools} = undef; $c->{plugin_alias_map}->{"Screen::User::View"} = "Screen::User::Homepage";
cfg/cfg.d/user_fields_automatic.pl
To update the MePrints profile page automatically when a user changes his or her profile information, add the following lines to your cfg/cfg.d/user_fields_automatic.pl configuration file:
$c->{user_fields_automatic} = sub { my $user = @_; ... if( defined $user->{changed} ) { $user->remove_static(); } };
cfg/apachevhost.conf
One addition need to be made to this file for MePrints. This is to allow you to have URLs of the form http://example.com/profile/username or http://example.com/profile/userid link straight to user profiles.
All you need to do for this is add the following to your cfg/apachevhost.conf file:
<Location "/profile"> SetHandler perl-script PerlResponseHandler EPrints::Plugin::MePrints::MePrintsHandler </Location>
cfg/cfg.d/urls.pl
Change the rewrite_exceptions array so that it includes the /profile path. It should look like this:
$c->{rewrite_exceptions} = [ '/cgi/', '/archive/', '/profile/' ];
Save the file and exit.
cfg/workflows/user/default.xml
To allow users to choose whether their profile is public or private add the following lines to your cfg/workflows/user/default.xml file:
<stage name="default"> ... <component type="Field::Multi"> <title><epc:phrase ref="user_section_personal" /></title> ... </component> <component type="Field::Multi"> <title><epc:phrase ref="user_section_meprints" /></title> <field ref="profile_visibility" required="yes"/> <field ref="jobtitle"/> <field ref="expertise"/> <field ref="biography"/> <field ref="qualifications"/> </component>
cfg/citations/user/default.xml
To replace the default EPrints user citation with the MePrints thumbnail citation:
cp cfg/citations/user/default_with_thumbnail.xml cfg/citations/user/default.xml
Note: if you have already made changes to the default citation, you will want to examine both files and merge the MePrints changes into default.xml
Testing
After applying all the changes above, restart Apache to activate MePrints.
Homepage
Log into your repository and should see your MePrints Homepage.
Update profile
Click the Modify Profile button and add some information to the new MePrints fields (Job Title, Expertise, Biography, Qualifications).Set your Profile Visibility to Public. Click the Save button to return to your Homepage where the information you entered should now be displayed.
Upload photo
Click the Profile Picture button, choose a file and click Upload. You will be returned to your Homepage where your picture will now be displayed.
MePrints Widgets
By default your homepage displays several widgets (see user_homepage_defaults setting in cfg/cfg.d/z_meprints.pl). Try adding and removing widgets using the widget controls at the bottom of the screen. You can also rearrange widgets by dragging them up/down or between columns. To reset to the default widget layout click the Reset button in the widget control bar.
Public Profile
Enter the following URL to view your public profile page:
http://myrepository.com/profile/USERNAME
where USERNAME is your EPrints username. The layout of the MePrints widgets on your profile page is controlled by the user_profile_defaults setting in cfg/cfg.d/z_meprints.pl.
TODO
Change profile information, check profile page gets updated.
MePrints Views
Run:
bin/generate_views ARCHIVEID --generate menus
Check http://my.repository.org/view/ - you should see 2 extra views. You may want to link these into your template.
MePrints search
Go to:
http://myrepository.com/cgi/meprints/search
TODO
MePrints for admins
Hide Profile
BUGS
- change phrase "Homepage" to "MePrints Homepage" !WONT DO!
Fixed in 1.0-rc1-7:
There are a few missing phrases - ["Plugin/Screen/User/UploadPicture:resetpic_success" not defined] ["Plugin/Screen/User/UploadPicture:upload_failure" not defined]The user functions are now in a toolbar but they also have their own widget. The widget should probably be removed.EPrints::Plugin::MePrints::MePrintsHandler does not check if $repository is defined (line 19)EPrints::Plugin::MePrints::Layout::get_widgets should "my @ids = $self->{session}->plugin_list( type => 'MePrints' );" (line 205) to make it work on EP 3.2!
Fixed in 1.0-rc1-6:
bin/generate_meprints should have -I/opt/eprints3/perl_lib by default instead of seb's local install path... Oops.the search writes the number of results in the errorlog: to remove. (It looks like: "1 users found.")
Fixed in 1.0-rc1-5:
QuickLinks widget should use render_action_list_bar to display available actions below the user details/picture (links currently have BAD URLs)when an admin searches for a user account, they see their OWN homepage, not the user's (use $processor->{user} not $session->current_userthe widget control bar (add/remove/reset) should only be available if $processor->{user} = $session->current_user
add "user_section_meprints" phrase -> "MePrints"phrase "Plugin/Screen/User/UploadPicture:upload_success missingcgi/meprints/profile - return() line 9?wrong URL in citations/user/default_with_thumbnail.xmlmissing phrase "Plugin/Screen/Public/MePrintsSearch:title"searching using cgi/meprints/search gives Internal Server Errorbin/generate_views ARCHIVEID - This yields an unblessed reference error after installing everything. (The message is; Can't call method "is_browsable" on unblessed reference at /usr/share/eprints3/perl_lib/EPrints/Update/Views.pm line 1041.)
Troubleshooting
1.0-rc1-XX
- When dragging and dropping Widgets around, MePrints shows database errors in the error log. Although everything seems to be working:
DBD::mysql::st execute failed: Duplicate entry '1-0' for key 1 at /opt/eprints3/perl_lib/EPrints/Database.pm line 1192. at /opt/eprints3/perl_lib/EPrints/Database.pm line 1192 EPrints::Database::insert('EPrints::Database::mysql=HASH(0x2b593e11ebd0)', 'user_items_fields', 'ARRAY(0x2b593bd00510)', 'ARRAY(0x2b593e8e2930)', 'ARRAY(0x2b593e9dbfc0)', 'ARRAY(0x2b593e9c8220)') called at /opt/eprints3/perl_lib/EPrints/Database.pm line 1526 ETC
This is a known problem: I do not know how to fix up since this happens "once in a while". Maybe a concurrent DB access.
- bin/generate_views ARCHIVEID --generate menus - On EPrints 3.1.3 this yields Use of uninitialized value $id in hash element at /usr/share/eprints3/perl_lib/EPrints/Database.pm line 2979. and doesn't add the appropriate links to the top of the screen.
Note: the above was reported on TRAC and will be fixed in EPrints 3.1.4: http://trac.eprints.org/trac/ticket/3537