 |
Frequently Asked Questions v2
|
Browse: How-To Tutorials
0. Alerts/Mailman Integration
1. How to show integers but not show 0?
2. How to display archive (expired items)?
3. How do I create a Reader Mamagement logout function?
4. How do I set up Htaccess permissions sync with Reader Management?
5. two level menu view
6. How to create a simple email alert module
7. MultiLingual eXtension for ActionApps / How to setup ActionApps for multilingual web sites
8. How do I automatically feed only select items to other slices?
9. How do I update my APC-AA installation to the latest version?
10. How can I manipulate images (e.g. create thumbnails)
From Mitra (mitra[at]earth.path.net):
I am using alerts/mailman integration, - its one of the most painful AA admin procedures, basically you have to create an alert that goes to a mailman group. Here are the steps (note that I've SIMPLIFIED it, removing sub-steps).
This presumes you have:
- A Reader Management slice created
- Mailman installed, and documented elsewhere how to add lists
- Cron working and running the AA cron function for Alerts
-
In the slice you want to send mail from:
- Create a Alerts View - (known elsewhere as a Selection)
-
Create Alerts Slice and change settings as follows
- Create a new Alert Template - Cut and paste from Generic Alerts in a separate window
- Make sure to set the "From" address to something that can be responded to (a human, not a list)
- Settings -> Alert, set to the new template
- Selections, add Alerts View created above
- Reader Management -> set to your Reader Management slice (see note) and "Add or Refresh" (make note of field names for below)
- Send Emails -> send a test message to yourself, it should come immediately (check in your spam folder, it often gets filtered as such), note this won't look like it does through mailman
- Go to mailman, create a mailing list - set yourself (a human) as the owner, set to moderate new subscribers
-
Go to your Reader Management slice (see note)
- Can be useful to Edit item manager to ad a column for this alert (using the field names like alerts1....agxav)
- Add the address of the new mailing list as a reader, mark it as confirmed, subscribe it to the Alert just created
- Look for the Alerts welcome mail, which can take time (depending on Cron)
-
Now try and add an item to your slice,
- Wait for the mail to turn up at the mailing list moderator address,
- Follow the link into mailman and set the user filter to allow mail from this address to go straight through.
Note that in practice you can only have ONE functioning reader management slice in an entire AA installation since it has email unique - apparently there are historical reasons for this, but it is unclear if there are current reasons.
This is essentially an admin nightmare, do anything even slightly wrong and the mail won't go through, and its very hard to debug.
I believe this could and should be dramatically simplified, we don't have the development resources to build our own mailing list manager in competition to all mailman's functions, better would be to allow an Alerts View to send mail direct to a mailing address - typically the email address of the mailman list.
In this example, we are trying to only show alias for page numbers
(_#NM_PAGES) when it is greater than zero.
The field input has Validate: Number, so it generates a zero when
left blank. To not show the alias and label when zero,
use:
{switch({_#NM_PAGES})^0:: _#NM_PAGES pages }
This switch will show nothing when the number starts with 0, otherwise it
will show e.g. "15 pages". Since number validation removes preceeding zeros e.g.
0020, this should always work.
Expired items are normaly not visible on the public website.
However is it usefull to sometimes show expired items such as for
archives.
There are two easy steps to show expired items in a view:
- Make sure display of expired items is permitted
by setting ALLOW_DISPLAY_EXPIRED_ITEMS constant to true in
config.php3
- Define a condition where 'expiry_date.....' is specified. You can use a
condition fields in a view design or a search condition
or a condition in an URL or SSi
using cmd[]-c or cmd[]-d see parameters to view.php3
Example of condition fields in a view design:
set Condition 1 'expirary date' < 9999999999999
(this
is a unix date in far far far future - you'll be dead :^)
Example of view.php3 parameter:
.../view.php3?vid=23&cmd[23]=d-expiry_date.....-e:>-1.1.1998
If you realy think you need a logout, you have to create a
special directory
and Logout page under the restricted area of your
website. I've set up a little
example here http://marek.greennet.org.uk/protect/
http://marek.greennet.org.uk/protect/">http://marek.greennet.org.uk/protect/>
type
jason:jason and you get in. Than you can click on logout ant it will
take you to the logout page. The trick is that the page is under the same
realm,
so in fact you relogin as user "logout" with
password "logout"
http://logout:logout@marek.greennet.org.uk/protect/logout/logout.html
http://logout:logout@marek.greennet.org.uk/protect/logout/logout.html">http://logout:logout@marek.greennet.org.uk/protect/logout/logout.html>
The
.htaccess file for the /protect/logout area looks like
this
AuthType Basic
AuthName
"Authenticate yourself"
AuthUserFile
/home/httpd/htdocs/marek.gn.apc.org/protect/logout/.htpw
Require user
logout
The
/home/httpd/htdocs/marek.gn.apc.org/protect/logout/.htpw contains only
user logout (the file was created using htpasswd), and only this user is
allowed
here.
Htaccess is updated by AuthMySQL module on the Apache
server. The access is granted directly from AA (from auth_group and auth_user
tables)
You need to:
1) Install mod_auth_mysql (
http://modauthmysql.sourceforge.net/)
(This module is standard part of RedHat Linux distribution (rpm
mod_auth_mysql). Be carefull, because there are at least two different modules
with the same name but with different httpd.conf options and features. We need
the described one and not the one described by Ram:
http://actionapps.org/faq/detail.shtml?x=1673 !!!)
2) Then you need set auth_group...... field in Reader managment slice as
described here:
http://actionapps.org/apc-aa/doc/reader.html#d0e236
3) Set the apache to accept MySQL authentication - something like modifying
httpd.conf file:
<Directory /data/www/htdocs/actionapps.org>
AllowOverride AuthConfig FileInfo Options Limit
# Authentication
AuthMySQLHost localhost
AuthMySQLUser aa_db_user
AuthMySQLPassword aa_db_password
AuthMySQLDB aa_db
AuthMySQLUserTable auth_user
AuthMySQLGroupTable auth_group
AuthMySQLNameField username
AuthMySQLPasswordField passwd
AuthMySQLGroupField groups
AuthMySQLNoPasswd off
AuthMySQLCryptedPasswords On
</Directory>
4) Protect the directory by .htaccess file or by similar lines in httpd.conf
file:
AuthType Basic
AuthName "ActionApps Ariel Members Area"
<Limit GET>
require group ariel_members
</Limit>
or
AuthType Basic
AuthName "ActionApps Ariel Parnters Area"
<Limit GET>
require group ariel_partners
</Limit>
5) Done.
This example uses 1 view, 3 categories, and 2 levels of constants. The
catgories are not important but maybe you like to use them so I left them in
there.
The view below manages a two level side bar menu. It highlights the branch
you are in and the (sub)item you have selected. Example can be seen here http://pi.gn.apc.org
The constants are used as the menu entries. You have to use hierarchical
constants and define the constants like this:
Level 0: Name Value
Terrorism Terrorism
Policy Policy ...
Level 1: Name Value
Politics of Terrorism Terrorism::Politics of Terrorism Defining
Terrorism and Emergencies Terrorism::Terrorism and Emergencies
IGOs and Laundering Policy Policy::IGOs and Laundering Policy
...
Now create a new constants view Paste the text
below into Odd Rows. Set the Group by to "Value Select"
the hierarchical constant group created above View 342 is the listing view I use
to display items from my slice.
The slice has 3 categories. This menu only manages the selection of the first
category (category........) which is set to use the constant group created
above. Further it's first confition is set to LIKE (name of category........).
You will have to replace 342 in the text below with your listing view. You can
leave away most of the {country}-stuff. To work this just needs {theme} and
{_parent_}.
TODO: use better names for the aliases. 'theme' and 'country' might be
substrings in the constants. That would cause havoc! All left to do now is to
create your style sheet. Have fun!
----------SNIP SNIP----------
{switch({_#LEVEL##_})0:<br>
{switch({theme}).*theme.*:
<div class="constView_ContentThemes_ListEntry">
:{_#NAME###_}.*:
<div class="constView_ContentThemes_ListEntry_Hl">
:<div class="constView_ContentThemes_ListEntry{switch({_parent_}){_#NAME###_}.*:_Hl}">
}
<a href="/index.shtml?cmd[342][]=c-1-{_#NAME###_}&als[theme]={_#NAME###_}&conds[1][category........]={_#NAME###_}{switch({_#VALUE##_}){theme}.*:&als[_parent_]={theme}}{switch({country}).*country.*::&cmd[342][]=c-3-{country}&als[country]={country}&conds[3][category.......2]={country}}" class="constView_ContentThemes_ListEntry_link">_#NAME###_</a>
</div>
:1:<!--{theme}--_#VALUE##_--_#NAME###_-->
{switch({_parent_}).*_parent_.*:
{switch({theme}).*theme.*::
{switch({_#VALUE##_}){theme}.*:<div class="constView_ContentThemes_SubListEntry{switch({theme}){_#NAME###_}.*:_Hl}"><a href="/index.shtml?cmd[342][]=c-1-{_#NAME###_}&als[theme]={_#NAME###_}&conds[1][category........]={_#NAME###_}&als[_parent_]={theme}{switch({country}).*country.*::&cmd[342][]=c-3-{country}&als[country]={country}&conds[3][category.......2]={country}}" class="constView_ContentThemes_SubListEntry_link">{_#NAME###_}</a></div>}
}
:{switch({theme}).*theme.*::
{switch({_#VALUE##_}){_parent_}.*:<div class="constView_ContentThemes_SubListEntry{switch({theme}){_#NAME###_}.*:_Hl}"><a href="/index.shtml?cmd[342][]=c-1-{_#NAME###_}&als[theme]={_#NAME###_}&conds[1][category........]={_#NAME###_}&als[_parent_]={_parent_}{switch({country}).*country.*::&cmd[342][]=c-3-{country}&als[country]={country}&conds[3][category.......2]={country}}" class="constView_ContentThemes_SubListEntry_link">{_#NAME###_}</a></div>}
}
}
}
----------SNIP SNIP----------
This a tutorial for creating a simple alert module and subscription form,
similar to the Sandbox subscription demo at http://actionapps.org/reader_mngmt/sandbox_subscribe.shtml.
The alert is for all new items in a slice and the subscription require s only
email address and sending frequency inputs, no password or selection of slices
in this version. Subscribers
can update their alert settings (e.g. change email address, modify frequency,
and unsubscribe) by clicking on a unique link at the bottom of each alert they
recieve.
The tutorial assumes you are already comfrotable creating and administrating
slices and designing views in ActionApps.
Step 1: Create a Reader Management Slice
First you must have a Reader Management slice to store subscriber information.
If you already hace a Reader slice, then you can skip this step, but keep in
mind the Reader slice used in this example is called "My Readers".
- AA > New Slice: Create a new slice from the “Reader Management
Minimal” template with the name “My Readers”
- Set “Allow
anonymous posting” to “Active”
- Set “Allow anonymous
editing” to “Authorized by a
password field”
You now have a Readers slice called "My Readers" that will store each alert
subscriber as one item. It also possible to add more fields to store additional
data about your subscribers, but that's another tutorial (coming soon).
Next we need to select what items subscribers can be alerted to.
Step 2: Create a Selection of Items to be “Alerted”
An alert modules requires selections from slices. A selection is
a condition on an alerts view of a slice. It's a bit confusing but will make
more sense once we go through the complete alert module production process.
In this case, we have selected to alert users about new items from the important
slice called “My
Slice”.
In My Slice, create a new view, type “Alerts Selection
Set”. Set field vaules as:
Alerts
Selection Set: “My Slice alert views”
Group by selections (ignore
for now)
Alerts Selection 1 Description: “All My Slice Items”
conds[]
(ignore for now)
Alerts Selection 2 Description and conds[] (ignore for now)
Fulltext URL:
(URL of fulltext view use for _#HDLN_URL)
Fill the rest of the fields as a simple listing
view, probably similar to your index view.
Click Update
You now have an alerts selection called “All My Slice Items”.
Once you are more comfortable with alerts, you can add more selections that
use conds[] to allow users to filter in only certain types of items, but that's
another tutorial (coming soon).
Step 3: Create an Alerts Module
Next step is to create an alerts module that will send your newly created
alert selection.
- AA > Create New > Alert, settings:
- name*: “My Alerts Module”
- form URL*: this will be the
public SHTML file with an anonymous form for readers to edit their subscription e.g.
http://mysite.com/myalerts/update.shtml (see Step 4
below).
- update (you can go back and edit more later)
- Selections > Insert “All
My Slice Items” from the menu
(notice there are also shortcut links at the bottom for quick
access to the slices
with alerts and editing the alert views).
- Click on Reader management, Synchronization with Reader Management Slice,
change to “My
Readers“ (the page will refresh)
- Click on 'Add or refresh fields' at the bottom. A message “2 field(s)
added” appears.
Your alert module now contains alert selection "All My Slice Items" and
My Readers slice contains two new input fields: “How Often” and “Selections”.
You can goto the My Readers fields admin page to see these new fields.
If they don't show up, go back to alert module > Reader Management and
click
on ‘Add or refresh fields’.
More selections can be added later. Everytime you add a section
you will need to go back to your alert module > Reader
management and click
on ‘Add or refresh fields’.
You can now test your alert module by subcribing yourself using: My Readers
> Add
New Item: input your email address, check "email confirmed", set "How Often"
to "instant" and check "Selections: All My Slice Items"
Then go to My Slice and add a new item. You should shortly there after receive
an emal from the alert module announcing the new addition. You will notice
the alert module messages use ECN related text by default. You can customize
your welcome and alert messages at any time (see Step 5). But first let's
set-up some public subscription forms...
Step 4: Create a Subscribe Form (and Related Pages)
To allow users to subscribe to your alerts, you will need to create a form
using ‘Anonymous Form Wizard’. You should also have an OK page that
tells users to check their inbox for an email confirmation and a another
page with an anonymous form for updating subscription settings. Thus
you
will
need
to create three files, e.g.:
http://mysite.com/myalerts/subscribe.shtml - Invitation
to subscribe using
anonymous form.
http://mysite.com/myalerts/subscribe_ok.shtml - A notice
telling users to "Check
your inbox for an email confirmation".
http://mysite.com/myalerts/update.shtml - A subscrition settings
update page using anonymous form, accessed only from a link within alert messages
generated using _#COLLFORM alias (set in Alerts Admin - Settings: form URL.
To create the required anonymous form for the subscribe.shtml and update.shtml
pages...
- Within My Readers > Slice Admin > fields: check Required for 'Email' and
uncheck Required and Show for 'Password'.
- Slice Admin > Anonymous Form
Wizard
- Fill the 'OK page' with URL to subscribe_ok.shtml and
'Error page' with URL to subscribe.shtml
- Uncheck all fields
except ' Email', 'How often' and 'Selections'. Click on 'Show form'.
- Copy the form HTML and paste into the file subscribe.shtml.
Add some preable text and upload to the URL you specified.
- Upload subscribe_ok.shtml to specified URL.
- Paste the same form HTML in to update.shtml. In the <form>
change the value of the two hidden fileds "err_url" and "ok_url" to the update.shtml
URL. Upload.
You should now have a page for users to subscribe to the alert (e.g. origianl
sandbox alert subscribe form) that when submitted correctly leads to the OK
page saying "Check your
inbox for
an
email confirmation". In the confirmation/welcome email there should be
link with unique ID pointing to the the update.shtml URL.
When visited, this page will confirm the email address and allow thye user
to modify
their subscription settings, inluding change their setting to "not subscribed".
You should test this subscritpion process, including updating subscription
settings. Add some new items to My Slice and check that subscribers
receive them as expeceted.
Make Forms Pretty
You may also want to simplify the anonymous form by hiding the selection check
box and possibly the "how often" select box. To hide the selection checkbox,
just change the input type from "checkbox" to "hidden", and remove the
surrounding text. To hide the "how often" select box you need to create a hidden
input with
the name and one value pulled from the "how often" select box. The final
cleaned up form could look like the sandbox
alert subscribe form.
You may also want to similarily modify the update, see sandbox
alert update form.
Step 5: Customize Your Alert Messages
If you haven't already, you will want to customize the alert welcome message
(sent once upon subscription for email confirmation) and the alert message
template.
Alert Welcome Message
Like any important text, you should probably use a word processor to write
and check spelling of the message to sent. You can use HTML or plain text.
You will want to include:
- A clear subject line e.g. "Organization X - alerts subscription confirmation"
- Where the message is coming from and why
- A clear request to confirm the subscription by going to _#COLLFORM (alias
for update.shtml)
- An explanation of what the alert is for and what kind of content
- Details about your organization.
- Contact details for any technical problems.
To update the test, go to you Alert Module > Settings and click
edit icon beside welcome email select box. Both the subject and body processes
aliases and {} commands.
Alert Message Template
The alert message template is edited the same as Welcome Message, except that
_#FILTERS_ will be replace by the views of the new selections. You will want
to include:
- A clear subject line e.g. "Organization X - My Slice Alert"
- Where the message is coming from and why
- "_#FILTERS_" where the selection views of new items will be inserted.
- Details about your organization.
- Contact details for any technical problems.
- A reminder that subscription settings can be updated by going to _#COLLFORM
The views of selections can accessed through My Alerts Module > Selections
> click on selection name. It is probably best to put the introduction to each
slice's
items within
the top HTML for each slices Alerts Selection Set view. This is more important
when there are multiple selection options within an alert module.
Tips
Filtering readers who are not yet confirmed
Change the design of the Item
Manager in Slice Admin to show the alias _#MAILCONF. This alias shows “yes” or “no”.
But it is created by the f_c function and the values in the database are 0
or 1. Thus give “0” and not “no” into the Search box.
Filtering readers receiving a selection: Add the Alerts Selections to Item
Manager. Create an alias using the function f_h with the parameter , (comma).
You will see the selection IDs prefixed by f. Now you understand why you should
enter something like “f45” into the Search box.
Customize Result Messages
To customize result messages, (i.e.. confirmation, error or update messages
at the top right of anonymous forms) use show_results.php3: Copy the script
from doc/script/show_result.php3 to the
same location where
you
created
myalerts.shtml.
When creating anon form: Fill the URL of yours show_result.php3 and check the
box “Use a PHP script ...”
MLX - MultiLingual eXtension for APC-ActionApps
Submitted by mimo on Fri, 07/10/2009 - 18:01
MLX adds content translation and interface translation features to ActionApps. All of this is now part of ActionApps core and these pages are here mainly for documentation and historic reasons.
(or mimo's language extension)
(C) Michael Moritz mimo/at/restoel.net
MLX Screenshots
Changelog
- 05/11/2004 MLXGet Text Documentation
- for changelog see
APC AA CVS on SourceForge
- 05/10/2004 -- changed the way ids get stored, optimised sql queries and since MLX is now in APC-AA CVS removed the installation stuff from this page, to upgrade without CVS have a look at MLX installation -- the hard way
- 04/10/2004 -- now moved into
APC AA CVS on SourceForge
- 03/10/2004 -- apc-aa-mlx-0.2: support for simple slice.php3 calls; better admin integration (using MLX tabs)
- 29/09/2004 -- first buggy release: basic admin interface functions
Step-by-Step Example of setting up a slice for MLX
- Create a new slice based on News Template and call it MLX Control Slice.
- Delete all deleteable fields from this slice.
- Add two new fields. Call one EN, the other one FR and choose type MLX Control for them.
- Unshow all other fields apart from these two. Have a look at MLX Screenshots to see what this should look like.
- Create a new slice. This one will hold the actual content (Content Slice). It can be any kind of slice.
- In Slice Settings select the MLX Control Slice you created before. Again, MLX Screenshots are your friend.
- Check that the slice contains a lang_code....... field.
- Add a field for the MLX information. It must be of type MLX Control. It doesnt have to be visible, so in most cases you want to hide it from the user by unticking Show.
- Done! You are ready to use the multilingual content slice.
Using MLX
MLX adds a little menu to the Add Item / Edit Item pages. This contains something like:
Add German | Edit English (view) | Edit Dari | etc.
Clicking on Add DE takes you to the Add Item page. This is prefilled with the contents of the original item. Once you have translated this content press the Insert button. MLX takes care of storing the information that keeps the original version of the article and the German translation together.
MLX and slice.php3 -- Displaying content using MLX on a web site
From version 0.2 MLX does actually do something do the output as well. This is configurable depending on what situation you are in. Here are three scenarios:
- You have a multilingual site. Some articles are translated, others only exist in the original language. If a vistor to your site chooses a language into which only some articles are translated you want to display the untranslated ones nevertheless (an example of this is the
ESF2004 website). In this case you would use slice.php3 like this: add mlx=FR to the URL if the user selected French as his/her language. E.g. index.shtml?mlx=FR&listlen=10. MLX takes care of showing translations or original items for you. It will display an alternarive article (in this example a non-French one) if it exists one. If more than one other translation exists MLX uses the order in which the languages are defined in the MLX Control Slice. So the step-by-step example above would first look for an English version. But you (or the user may chose to) can even override this behaviour: The same way you pass the user's language choice to slice.php3 you can aslo set the order in which alternatives are used. With two languages this doesnt make sense, but given you had a third translation, let's say in German, you could pass the order like this: index.shtml?mlx=FR-DE-FR This would make MLX first look for a French version of the item, then a German one, and then a French one and display the first one found.
- You only want to display articles in the language the user has chosen. Use this syntax for your calls to slice.php3: index.shtml?mlx=FR-ONLY (This is similiar to using a condition)
- You want to display all articles including other language versions. Syntax: index.shtml?mlx=ALL. (This ignores MLX information)
MLX and view.php3
MLX supports views as well. Use set[vid]=mlx-(lang code)-(lang code 1)-..-(mode)
The _#MLX_LANG Alias
When using language defaulting this is helpful. It allows to print the current desired or default language in a view. This is hopefully helpful for creating language menus, displaying messages like "currently there isnt a translation for this article, so the original version is displayed". Have a look at the demo in MLX Screenshots for how this works.
FAQ
- Q: How do I MLX-alise a slice?
A: Follow the steps in the Step-by-Step example but skip creating the Content Slice (step 5). Make sure you set the MLX Control Slice as the MLX: Language Control Slice in the slice you want to MLX-alise and that you have a field of type lang_code....... in it. To MLX-alise an item you need to edit it in the Item Manager. This means you click on the headline and the press the Update button. Click on the headline again and MLX is ready.
Bugs & Limitations & TODOS
- Maybe add to fulltext view also in slice.php3
- Testing, testing, testing
Credits
- Huge thanks to Marek Tichy for discussing this and helping implementing it as I did not know anything about Action Apps? code when I started
(was on http://mimo.gn.apc.org/mlx)
Through Value field on
the Mapping page you can specify not only a new value, but also
any AA expression, which is
unaliased - example:
<a href="{source_href.....}">{source..........}</a>
In the Value field you can specify, which items should be
fed and which not. It is done by modifying the value of the ‘Status Code’ of the
receiving slice, according to field in the feeding slice.
Status codes are:
1=active, 2=Holding, 3=Trash, 4=Do not fed)
An example set-up:
1) Set Feeding, as usual ('Slice
Admin' -> 'Inner Node Feeds') (see feeding FAQ)
2) Go to 'Slice Admin' ->
'Mapping' and select the your source slice
3) fill something like:
{switch({category.......1})Enviro:1:4} for 'Status Code' and set FROM to '--
Value --'
After this all items from the source
slice with category 'Enviro' will be fed into Active ('Status Code' value=1).
Other will not be fed ('Status Code' value=4).
This FAQ assumes you did the original installation from CVS (see Installation of ActionApps Doc )
First, check that you really want to update. There is usually a stable release and a developer release. The instructions below will update to the latest release from CVS - which is what most of the people discussing things on the apc-aa-general mailing list are using. This might not be as stable as a release you may be running.
Back-up Your Files and DB
The CVS will write over your current config file, usually located in /apc-aa/includes/config.php3. The key values you will need to re-enter after updating and may not be able to remember are: AA_ID, DB_HOST, DB_NAME, DB_USER, DB_PASSWORD. Without these correct values, AA will not work.
You should also back-up all your apc-aa files, encase the update fails and you need revert back.
Once you have done your back-ups, login to shell on you account and cd to the apc-aa directory and run
cvs -n update
This will display the changes and potential conflict - look for lines starting "C" these are conflicts that need a developer to figure out. You'll have to ask this list if you get one of these.
NOTE: It is common to get 'timed out' type errors from the CVS, which is hosted at SourceForge.net. Just keep trying every few minutes
If it all looks good, run
CVS update -dPAC
This will:
-d Build directories, like checkout does.
(if there is new directory in the repository, then it is
created)
-P Prune empty directories.
-A Reset any sticky tags/date/kopts.
(allways load HEAD branch of the CVS)
-C Overwrite locally modified files with clean repository copies.
(For more options try "cvs --help update")
You should then compare the version number at the top of /apc-aa/includes/config.php3 to see if it is newer then your backed up config.php3 file. If not, you can simplly upload your backed-up version over the new one. If the new config file is different, you will need to manually write in your settings, based on the backed-up version.
Access http://yourhost/apc-aa/sql_update.php3, this will update the database to the latest version. The script always refreshes the database structure to the newest version - no matter if you allready have the newest structure.
The script makes a backup of the tables, but there is not yet a documented way to restore the old version, and note that re-running the script overwrites the last copy of the backup.
In Slice admin interface form for configuring fields there is an input box
for parameters of insert function. For field with insert function "File = uploaded
file",
you can set these parameters:
type of file : maximum image width : maximum
image height : secondary image fields delimited with ## separator
Example:
if you insert parameters:
image/*:450:600:image.....1##image......2
function will do these actions after submitting the item/article:
- check whether the file to be uploaded has proper type (image) and upload
only such files (this works for any file upload fields, for example you can
specify limit to application/msword or application/*)
- check if picture is bigger than maximum dimensions set in field parameters.
If yes, image will be resampled to maximum dimension (aspect ratio maintained).
- if there are set any "other fields" (in this example
"image.......1" and "image.......2"), function will also
fill-in these fields with url to the same picture. If there are maximum
dimensions set in parameters of these field(s), function will resize
image accordingly.
Limits of the function:
- image functions work only if there is GD library installed (GD is standard part of PHP since PHP version 4.3.0)
- Image resampling functions work only with GD supported types (JPG, PNG, WBMP - not GIF - GIF will be supported since July 7th, 2004, when LZW patent expires world-wide)
- secondary image fields must be in the input form after source field
- filling of secondary image fields is not recursive (secondary image fields
can not be defined in a chain)
- there is no error reporting
This FAQ interface was developed
by Jason at Commons.ca
 |
APC
ActionApps is a free software content management system initiated by
the Association for Progressive Communications (APC)
APC - Internet and ICTs for social justice and development |