Compare commits
423 commits
Author | SHA1 | Date | |
---|---|---|---|
|
7508de13fe | ||
|
9d2a0ec8a2 | ||
|
6725b0c4f4 | ||
|
04d6281dd2 | ||
|
f0550e906c | ||
|
805aeeb5cc | ||
|
0c7171750b | ||
|
07e5f40ff5 | ||
|
62a77c234e | ||
|
1e05239532 | ||
|
1f3de38896 | ||
|
224005820d | ||
|
1774bd1b98 | ||
|
e399854ab3 | ||
|
60cf0ea706 | ||
|
fb2fab0b0a | ||
|
62a8711695 | ||
|
35df1642d3 | ||
|
581f78bd28 | ||
|
da7e8085c3 | ||
|
148f0fb3bd | ||
|
1a35863014 | ||
|
46211fa575 | ||
|
2243943b95 | ||
|
bffb69db39 | ||
|
106f59c347 | ||
|
d511ec045c | ||
|
dbc8782bf0 | ||
|
af2b2e0733 | ||
|
77e464f96d | ||
|
58bc5c4bb3 | ||
|
4673305bb0 | ||
|
e02e7dd116 | ||
|
bf59e02fb3 | ||
|
082662136b | ||
|
6ae2808b90 | ||
|
2e1339f54c | ||
|
c9252e031b | ||
|
b35ba1a528 | ||
|
f6b6ec10e4 | ||
|
755341970c | ||
|
e8c4170512 | ||
|
67a24be681 | ||
|
e72172144e | ||
|
2aba68f87f | ||
|
54e693cce7 | ||
|
72d861a208 | ||
|
77f424914a | ||
|
b732912590 | ||
|
959dea59b1 | ||
|
a115700ecb | ||
|
28e57706a3 | ||
|
a5843e23f5 | ||
|
b8454c7854 | ||
|
43780ae7a7 | ||
|
96e3eb2d0c | ||
|
4f393b2c38 | ||
|
11a7f9e041 | ||
|
3212c58a36 | ||
|
d47bbfebec | ||
|
d35cac19c8 | ||
|
72f2f3658f | ||
|
2ee4c4d19f | ||
|
8c71e5ea63 | ||
|
892407ef91 | ||
|
99e8a5ac3a | ||
|
bc3a7c1f46 | ||
|
3697a216ba | ||
|
0e91d9fa99 | ||
|
7f8624b45a | ||
|
e9dbb5f1b5 | ||
|
d500c8ca66 | ||
|
adce4beae1 | ||
|
a862b910f8 | ||
|
50eab11171 | ||
|
9339df2106 | ||
|
71d633e0c0 | ||
|
0d708e46e5 | ||
|
8ca8b7e7a6 | ||
|
b1bbdc7e11 | ||
|
cca8c0b16e | ||
|
825a4500ae | ||
|
116679f9b1 | ||
|
e44b7295ff | ||
|
ab1d7b8f8b | ||
|
16a7725982 | ||
|
f129c6e1d1 | ||
|
0128357e7d | ||
|
31fc95d959 | ||
|
e6ceb20ede | ||
|
7379bc2b67 | ||
|
db543c2d91 | ||
|
b2a3c2c9a7 | ||
|
064f8aaf29 | ||
|
05313aa65c | ||
|
9fdaca377e | ||
|
d8a55fdc32 | ||
|
ebb9683b32 | ||
|
fb5b5409da | ||
|
bcef7e697e | ||
|
cd8265e18f | ||
|
cf41e1fb4b | ||
|
297eee47c9 | ||
|
0c9e3ecba0 | ||
|
3c0301d199 | ||
|
134acbb724 | ||
|
eb9f4c2aa6 | ||
|
a1e51fdc29 | ||
|
598d35cf6f | ||
|
8f2db172ca | ||
|
7f08759357 | ||
|
8dad5f459f | ||
|
5785e131b0 | ||
|
39a8afe97a | ||
|
b0c16eb890 | ||
|
f01906311e | ||
|
ac1ae911bf | ||
|
9f97e8fa00 | ||
|
e08cdbd050 | ||
|
f3ef9a0195 | ||
|
ecea30d268 | ||
|
6e86f22efd | ||
|
a0134e4078 | ||
|
6e5391dc18 | ||
|
f76262ec60 | ||
|
35be8d6461 | ||
|
f92ab95b10 | ||
|
cf6e62318d | ||
|
6c383aca76 | ||
|
43602d8e2e | ||
|
4713ca3a97 | ||
|
2f144d33fa | ||
|
20837a876e | ||
|
c7f1e1d8ad | ||
|
31ab88f829 | ||
|
081bd47dbc | ||
|
28e1d31b8d | ||
|
184e8a6707 | ||
|
feff2330ae | ||
|
ba2855770f | ||
|
e176f9be0e | ||
|
a9a150dc5a | ||
|
f4a0251d79 | ||
|
1859142cc8 | ||
|
de6906cd41 | ||
|
0d28822c67 | ||
|
3cb2a0dcc8 | ||
|
0fc23c6bb8 | ||
|
490cee4b79 | ||
|
f2b72fa384 | ||
|
818fa1b7ac | ||
|
cf859af13f | ||
|
a037d9d8d6 | ||
|
987ff07df5 | ||
|
4e7ee7b911 | ||
|
ed25ad62de | ||
|
03f32606e4 | ||
|
2d7a9cc808 | ||
|
a6c548e250 | ||
|
449dafcb3a | ||
|
b63792ab9b | ||
|
3d9f6cdd8c | ||
|
3114cf8b8f | ||
|
888f7cc29e | ||
|
c09f5311e7 | ||
|
7fea9abe91 | ||
|
58373dddef | ||
|
5815da1e06 | ||
|
610ecd5c5b | ||
|
050db8f9be | ||
|
51820231a8 | ||
|
ee9d88f361 | ||
|
77521012b3 | ||
|
50077fb1d5 | ||
|
cc97025e9d | ||
|
f1fe1ef5f9 | ||
|
8391ad65fe | ||
|
c9f67ef2b5 | ||
|
fbfc7054c6 | ||
|
d5f50f190b | ||
|
cbbf0c3cff | ||
|
a7973d291b | ||
|
ffdbbeac7f | ||
|
d8cf938800 | ||
|
db9464e820 | ||
|
88af10669e | ||
|
a3999f0db1 | ||
|
f6e3de1071 | ||
|
3a6b292312 | ||
|
8f0035ae66 | ||
|
a02463646f | ||
|
bf60b6420c | ||
|
a69ea87332 | ||
|
68731a6fb1 | ||
|
99a27168a1 | ||
|
192c06ea47 | ||
|
26ffbe46a4 | ||
|
aa5f154e0a | ||
|
af15beea55 | ||
|
728877192d | ||
|
3fa1005aee | ||
|
0591eda076 | ||
|
f048a74b08 | ||
|
356151aa45 | ||
|
f51a0b33c9 | ||
|
fe0d5b7547 | ||
|
542920d0f0 | ||
|
0b21183ce1 | ||
|
8a515232cc | ||
|
d7b8a83929 | ||
|
79edf79c1d | ||
|
fb5e9d0cea | ||
|
089b5de495 | ||
|
733c6a8ef4 | ||
|
eef979e776 | ||
|
93420b359e | ||
|
e92dffb503 | ||
|
536968f0b1 | ||
|
77befc55a5 | ||
|
9650c993e8 | ||
|
013e07e18a | ||
|
d105541ffb | ||
|
d2636f6e2f | ||
|
961eb6705f | ||
|
67c086ce3d | ||
|
6a03a71618 | ||
|
535ca5e99f | ||
|
4bcf7528b8 | ||
|
788cdfa261 | ||
|
73b442484e | ||
|
b47e960770 | ||
|
126f4aac29 | ||
|
860ba08367 | ||
|
5f7bea4738 | ||
|
61da95f590 | ||
|
f77b2ef922 | ||
|
d8ae1c736d | ||
|
cdfd2ce66d | ||
|
af6aafe415 | ||
|
ba7902478c | ||
|
ab0b5e5e43 | ||
|
da3bcf2a6a | ||
|
bee32f9145 | ||
|
a86b28c2b3 | ||
|
dcb61f1a96 | ||
|
b0f34d5868 | ||
|
0e7fd29605 | ||
|
ded72989e7 | ||
|
236b97a4d9 | ||
|
551f38b82b | ||
|
46f261f1cd | ||
|
cda768803b | ||
|
4914c69d73 | ||
|
3b819b19aa | ||
|
65109a7c0d | ||
|
821081e6fc | ||
|
347424582f | ||
|
43739f1d43 | ||
|
f575a860be | ||
|
bfc689d21b | ||
|
2f53284ab3 | ||
|
c317abdb2c | ||
|
70eab4be1a | ||
|
b4663f2d4a | ||
|
f9541794e1 | ||
|
5aee5827db | ||
|
a235d244b9 | ||
|
f214fe0ddd | ||
|
9f80bd07c4 | ||
|
ef8010786a | ||
|
9450904d6d | ||
|
7bba167e55 | ||
|
1289d4c933 | ||
|
935941be5a | ||
|
c1af0cdc16 | ||
|
8e9adc7812 | ||
|
674cb7e6b4 | ||
|
8ea132fcc0 | ||
|
25f87ba0c7 | ||
|
faa88d61bd | ||
|
4a28e4dfcd | ||
|
4fa3f949d9 | ||
|
2c6ac64a9d | ||
|
25ca538c0c | ||
|
e05f2b5e61 | ||
|
82eeaa70a0 | ||
|
1860136357 | ||
|
d05af15897 | ||
|
076a50aae6 | ||
|
a4b66ed1e5 | ||
|
89cb1c669f | ||
|
09018a9154 | ||
|
4df8b990a5 | ||
|
eb826cc37d | ||
|
afd653884a | ||
|
d78f83211e | ||
|
a17353b7bb | ||
|
41757b9e1a | ||
|
7a7569eda2 | ||
|
95ec94ea75 | ||
|
a9bd998a07 | ||
|
2d37613246 | ||
|
e581fbe556 | ||
|
4b8ed9c0d4 | ||
|
9f8849b883 | ||
|
10074cb9a4 | ||
|
4f423b9a0a | ||
|
e9c6dda882 | ||
|
f437289452 | ||
|
99c68653b5 | ||
|
e950e97320 | ||
|
6c7b53e0b6 | ||
|
4845a85685 | ||
|
b2d7edfc17 | ||
|
52c568327c | ||
|
6b8e08936c | ||
|
439f78a818 | ||
|
7a264aa7b2 | ||
|
6656dfb06a | ||
|
b83df6be68 | ||
|
55f4efd7a6 | ||
|
773546363e | ||
|
1de69261bb | ||
|
1b94ba922a | ||
|
b23cc71576 | ||
|
64863a781f | ||
|
18c6018b24 | ||
|
5fa07ff968 | ||
|
2bccd339a6 | ||
|
46e324e582 | ||
|
b7bdd22773 | ||
|
b735fef251 | ||
|
20752c742f | ||
|
68aa7b4952 | ||
|
d7fa727afa | ||
|
6394613e9f | ||
|
3a57b93baa | ||
|
5f925e150a | ||
|
ea80c5b895 | ||
|
24d68bed06 | ||
|
d28c348908 | ||
|
b3ad6951e8 | ||
|
c04a906ec4 | ||
|
1661af7f3f | ||
|
7629b2723a | ||
|
5b19405ff2 | ||
|
913e3a8c41 | ||
|
32828aa848 | ||
|
73b5557703 | ||
|
02559d73f8 | ||
|
0ee13a42cf | ||
|
d1ceb94f9d | ||
|
08ac5408ff | ||
|
08b1094b0c | ||
|
7ce7346116 | ||
|
1a1d098bce | ||
|
dbe75d113b | ||
|
5baa3409e5 | ||
|
6067c4ef2b | ||
|
2a6e5d0a43 | ||
|
49952e574c | ||
|
9bbddd0cc4 | ||
|
406b9bfcd9 | ||
|
a59d15b7b6 | ||
|
54fc109f97 | ||
|
2848ca55bb | ||
|
0f6c48d73f | ||
|
a9774635bd | ||
|
47847a2dd4 | ||
|
de5ded6fa2 | ||
|
497203da33 | ||
|
40cab61e1f | ||
|
01022adec3 | ||
|
0b893e238c | ||
|
30144caeb8 | ||
|
3115673888 | ||
|
4664661c50 | ||
|
e49ff390d3 | ||
|
cb00a22449 | ||
|
cf5075e774 | ||
|
663c13f39a | ||
|
cf32601902 | ||
|
bc12301421 | ||
|
3826af3ba4 | ||
|
d73302db9b | ||
|
f4c16c53eb | ||
|
1b90ca1764 | ||
|
f0d6ec33ce | ||
|
50cd8ed523 | ||
|
74bf86ecc5 | ||
|
d40f81502f | ||
|
5488e86ada | ||
|
4dd9061a17 | ||
|
7ab2dd2fac | ||
|
442005ff0a | ||
|
4cc3c656a7 | ||
|
d74b3f26f4 | ||
|
01788faeb5 | ||
|
f010502f12 | ||
|
098df99cb3 | ||
|
59ab72c480 | ||
|
f53bbfe76f | ||
|
49a0af43a3 | ||
|
0cce6721ca | ||
|
500b653333 | ||
|
6d37de58bf | ||
|
02ba44ef08 | ||
|
e5a564b618 | ||
|
128e22b612 | ||
|
0a2e040ae7 | ||
|
d1b62c1d58 | ||
|
b7ed5e6af4 | ||
|
0786ff3b79 | ||
|
640d9ebccc | ||
|
1416cc82c8 | ||
|
082801305d | ||
|
8f720238fc | ||
|
93ddc4f810 | ||
|
2e5bda01e6 | ||
|
2523c42508 | ||
|
ef546e04f3 | ||
|
e5ef8aeb4d | ||
|
00f81e9080 |
653 changed files with 26862 additions and 4431 deletions
about.phpadmin.php
admin
cat_list.phpcat_modify.phpcat_options.phpconfiguration.phpelement_set.phpelement_set_global.phpelement_set_unit.phpextend_for_templates.phphelp.phphistory.php
comments.phpfeed.phpinclude
functions.phpfunctions_metadata.phpfunctions_notification_by_mail.inc.phpfunctions_permalinks.phpfunctions_upgrade.phpfunctions_upload.inc.phplanguages.class.phpplugins.class.phpthemes.class.php
intro.phplanguages_installed.phpnotification_by_mail.phppermalinks.phpphotos_add.phpphotos_add_direct.phppicture_modify.phpplugins_update.phpprofile.phprating.phpsite_manager.phpstats.phpuploadify
themes
thumbnail.phpinclude
category_default.inc.phpcommon.inc.phpconfig_default.inc.phpconstants.php
dblayer
functions.inc.phpfunctions_calendar.inc.phpfunctions_category.inc.phpfunctions_comment.inc.phpfunctions_html.inc.phpfunctions_mail.inc.phpfunctions_metadata.inc.phpfunctions_notification.inc.phpfunctions_search.inc.phpfunctions_session.inc.phpfunctions_tag.inc.phpfunctions_url.inc.phpfunctions_user.inc.phpmenubar.inc.phppicture_comment.inc.phppicture_metadata.inc.phpsection_init.inc.phptemplate.class.phpws_core.inc.phpws_functions.inc.phpinstall
language/ar_SA
|
@ -38,6 +38,8 @@ $title= l10n('About Piwigo');
|
|||
$page['body_id'] = 'theAboutPage';
|
||||
include(PHPWG_ROOT_PATH.'include/page_header.php');
|
||||
|
||||
trigger_action('loc_begin_about');
|
||||
|
||||
$template->set_filename('about', 'about.tpl');
|
||||
|
||||
$template->assign('ABOUT_MESSAGE', load_language('about.html','', array('return'=>true)) );
|
||||
|
|
|
@ -90,6 +90,12 @@ else
|
|||
$page['errors'] = array();
|
||||
$page['infos'] = array();
|
||||
|
||||
if (isset($_SESSION['page_infos']))
|
||||
{
|
||||
$page['infos'] = array_merge($page['infos'], $_SESSION['page_infos']);
|
||||
unset($_SESSION['page_infos']);
|
||||
}
|
||||
|
||||
$link_start = PHPWG_ROOT_PATH.'admin.php?page=';
|
||||
$conf_link = $link_start.'configuration&section=';
|
||||
//----------------------------------------------------- template initialization
|
||||
|
@ -102,6 +108,7 @@ $template->set_filenames(array('admin' => 'admin.tpl'));
|
|||
$template->assign(
|
||||
array(
|
||||
'USERNAME' => $user['username'],
|
||||
'ENABLE_SYNCHRONIZATION' => $conf['enable_synchronization'],
|
||||
'U_SITE_MANAGER'=> $link_start.'site_manager',
|
||||
'U_HISTORY_STAT'=> $link_start.'stats',
|
||||
'U_FAQ'=> $link_start.'help',
|
||||
|
|
|
@ -87,9 +87,15 @@ $navigation.= '</a>';
|
|||
if (isset($_GET['delete']) and is_numeric($_GET['delete']) and !is_adviser())
|
||||
{
|
||||
delete_categories(array($_GET['delete']));
|
||||
array_push($page['infos'], l10n('Virtual category deleted'));
|
||||
$_SESSION['page_infos'] = array(l10n('Virtual category deleted'));
|
||||
update_global_rank();
|
||||
redirect(get_root_url().'admin.php?page=cat_list');
|
||||
|
||||
$redirect_url = get_root_url().'admin.php?page=cat_list';
|
||||
if (isset($_GET['parent_id']))
|
||||
{
|
||||
$redirect_url.= '&parent_id='.$_GET['parent_id'];
|
||||
}
|
||||
redirect($redirect_url);
|
||||
}
|
||||
// request to add a virtual category
|
||||
else if (isset($_POST['submitAdd']))
|
||||
|
|
|
@ -92,8 +92,8 @@ if (isset($_POST['submit']))
|
|||
if (isset($_POST['image_order_subcats']))
|
||||
{
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.' SET image_order='.(isset($image_order) ? 'NULL':"'$image_order'").'
|
||||
WHERE uppercats LIKE "'.$cat_info['uppercats'].',%"';
|
||||
UPDATE '.CATEGORIES_TABLE.' SET image_order='.(isset($image_order) ? 'NULL':'\''.$image_order.'\'').'
|
||||
WHERE uppercats LIKE \''.$cat_info['uppercats'].',%\'';
|
||||
pwg_query($query);
|
||||
}
|
||||
|
||||
|
|
|
@ -162,7 +162,10 @@ $tabsheet = new tabsheet();
|
|||
$opt_link = $link_start.'cat_options&section=';
|
||||
$tabsheet->add('status', l10n('Public / Private'), $opt_link.'status');
|
||||
$tabsheet->add('visible', l10n('Lock'), $opt_link.'visible');
|
||||
$tabsheet->add('upload', l10n('Upload'), $opt_link.'upload');
|
||||
if ($conf['enable_synchronization'])
|
||||
{
|
||||
$tabsheet->add('upload', l10n('Upload'), $opt_link.'upload');
|
||||
}
|
||||
$tabsheet->add('comments', l10n('Comments'), $opt_link.'comments');
|
||||
if ($conf['allow_random_representative'])
|
||||
{
|
||||
|
|
|
@ -114,9 +114,15 @@ if (isset($_POST['submit']) and !is_adviser())
|
|||
{
|
||||
case 'main' :
|
||||
{
|
||||
if ( !url_is_remote($_POST['gallery_url']) )
|
||||
if (empty($_POST['gallery_locked']) and $conf['gallery_locked'])
|
||||
{
|
||||
array_push($page['errors'], l10n('The gallery URL is not valid.'));
|
||||
$tpl_var = & $template->get_template_vars('header_msgs');
|
||||
$msg_key = array_search(l10n('The gallery is locked for maintenance. Please, come back later.'), $tpl_var);
|
||||
unset($tpl_var[$msg_key]);
|
||||
}
|
||||
elseif (!empty($_POST['gallery_locked']) and !$conf['gallery_locked'])
|
||||
{
|
||||
$template->append('header_msgs', l10n('The gallery is locked for maintenance. Please, come back later.'));
|
||||
}
|
||||
foreach( $main_checkboxes as $checkbox)
|
||||
{
|
||||
|
@ -221,7 +227,10 @@ $tabsheet->add('main', l10n('Main'), $conf_link.'main');
|
|||
$tabsheet->add('display', l10n('Display'), $conf_link.'display');
|
||||
$tabsheet->add('history', l10n('History'), $conf_link.'history');
|
||||
$tabsheet->add('comments', l10n('Comments'), $conf_link.'comments');
|
||||
$tabsheet->add('upload', l10n('Upload'), $conf_link.'upload');
|
||||
if ($conf['enable_synchronization'])
|
||||
{
|
||||
$tabsheet->add('upload', l10n('Upload'), $conf_link.'upload');
|
||||
}
|
||||
$tabsheet->add('default', l10n('Guest Settings'), $conf_link.'default');
|
||||
// TabSheet selection
|
||||
$tabsheet->select($page['section']);
|
||||
|
|
|
@ -195,7 +195,8 @@ elseif ('recent'== $_GET['cat'])
|
|||
$page['title'] = l10n('Recent pictures');
|
||||
$query = 'SELECT MAX(date_available) AS date
|
||||
FROM '.IMAGES_TABLE;
|
||||
if ($row = pwg_db_fetch_assoc( pwg_query($query) ) )
|
||||
$row = pwg_db_fetch_assoc(pwg_query($query));
|
||||
if (!empty($row['date']))
|
||||
{
|
||||
$query = 'SELECT id
|
||||
FROM '.IMAGES_TABLE.'
|
||||
|
|
|
@ -449,8 +449,32 @@ if (count($page['cat_elements_id']) > 0)
|
|||
|
||||
$query = '
|
||||
SELECT id,path,tn_ext,file,filesize,level
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE id IN ('.implode(',', $page['cat_elements_id']).')
|
||||
FROM '.IMAGES_TABLE;
|
||||
|
||||
if (is_numeric($_GET['cat']))
|
||||
{
|
||||
$category_info = get_cat_info($_GET['cat']);
|
||||
|
||||
$conf['order_by'] = $conf['order_by_inside_category'];
|
||||
if (!empty($category_info['image_order']))
|
||||
{
|
||||
$conf['order_by'] = ' ORDER BY '.$category_info['image_order'];
|
||||
}
|
||||
|
||||
$query.= '
|
||||
JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id';
|
||||
}
|
||||
|
||||
$query.= '
|
||||
WHERE id IN ('.implode(',', $page['cat_elements_id']).')';
|
||||
|
||||
if (is_numeric($_GET['cat']))
|
||||
{
|
||||
$query.= '
|
||||
AND category_id = '.$_GET['cat'];
|
||||
}
|
||||
|
||||
$query.= '
|
||||
'.$conf['order_by'].'
|
||||
LIMIT '.$page['nb_images'].' OFFSET '.$page['start'].'
|
||||
;';
|
||||
|
|
|
@ -67,7 +67,7 @@ SELECT id, date_creation
|
|||
$data['author'] = $_POST['author-'.$row['id']];
|
||||
$data['level'] = $_POST['level-'.$row['id']];
|
||||
|
||||
foreach (array('name', 'author', 'level') as $field)
|
||||
foreach (array('name', 'level') as $field)
|
||||
{
|
||||
if (!empty($_POST[$field.'-'.$row['id']]))
|
||||
{
|
||||
|
@ -194,8 +194,32 @@ if (count($page['cat_elements_id']) > 0)
|
|||
|
||||
$query = '
|
||||
SELECT id,path,tn_ext,name,date_creation,comment,author,level,file
|
||||
FROM '.IMAGES_TABLE.'
|
||||
WHERE id IN ('.implode(',', $page['cat_elements_id']).')
|
||||
FROM '.IMAGES_TABLE;
|
||||
|
||||
if (is_numeric($_GET['cat']))
|
||||
{
|
||||
$category_info = get_cat_info($_GET['cat']);
|
||||
|
||||
$conf['order_by'] = $conf['order_by_inside_category'];
|
||||
if (!empty($category_info['image_order']))
|
||||
{
|
||||
$conf['order_by'] = ' ORDER BY '.$category_info['image_order'];
|
||||
}
|
||||
|
||||
$query.= '
|
||||
JOIN '.IMAGE_CATEGORY_TABLE.' ON id = image_id';
|
||||
}
|
||||
|
||||
$query.= '
|
||||
WHERE id IN ('.implode(',', $page['cat_elements_id']).')';
|
||||
|
||||
if (is_numeric($_GET['cat']))
|
||||
{
|
||||
$query.= '
|
||||
AND category_id = '.$_GET['cat'];
|
||||
}
|
||||
|
||||
$query.= '
|
||||
'.$conf['order_by'].'
|
||||
LIMIT '.$page['nb_images'].' OFFSET '.$page['start'].'
|
||||
;';
|
||||
|
@ -238,7 +262,7 @@ SELECT
|
|||
PHPWG_ROOT_PATH.'admin.php?page=picture_modify'.
|
||||
'&image_id='.$row['id'],
|
||||
'NAME' => !empty($row['name'])?$row['name']:'',
|
||||
'AUTHOR' => !empty($row['author'])?$row['author']:'',
|
||||
'AUTHOR' => !empty($row['author'])?htmlspecialchars($row['author']):'',
|
||||
'LEVEL' => !empty($row['level'])?$row['level']:'0',
|
||||
'DESCRIPTION' => !empty($row['comment'])?$row['comment']:'',
|
||||
'DATE_CREATION_YEAR' => $year,
|
||||
|
|
|
@ -139,10 +139,10 @@ if (isset($_POST['submit']) and !is_adviser())
|
|||
$conf['extents_for_templates'] = serialize($replacements);
|
||||
$tpl_extension = $replacements;
|
||||
/* ecrire la nouvelle conf */
|
||||
$query = "
|
||||
UPDATE ".CONFIG_TABLE."
|
||||
SET value = '". $conf['extents_for_templates'] ."'
|
||||
WHERE param = 'extents_for_templates';";
|
||||
$query = '
|
||||
UPDATE '.CONFIG_TABLE.'
|
||||
SET value = \''. $conf['extents_for_templates'] .'\'
|
||||
WHERE param = \'extents_for_templates\';';
|
||||
if (pwg_query($query))
|
||||
{
|
||||
array_push($page['infos'],
|
||||
|
|
|
@ -33,31 +33,33 @@ $link = get_root_url().'admin.php?page=help§ion=';
|
|||
$selected = null;
|
||||
$help_section_title = null;
|
||||
|
||||
$tabs = array(
|
||||
array(
|
||||
'code' => 'add_photos',
|
||||
'label' => l10n('Add Photos'),
|
||||
),
|
||||
array(
|
||||
'code' => 'permissions',
|
||||
'label' => l10n('Permissions'),
|
||||
),
|
||||
array(
|
||||
'code' => 'groups',
|
||||
'label' => l10n('Groups'),
|
||||
),
|
||||
array(
|
||||
$tabs = array();
|
||||
$tabs[] = array(
|
||||
'code' => 'add_photos',
|
||||
'label' => l10n('Add Photos'),
|
||||
);
|
||||
$tabs[] = array(
|
||||
'code' => 'permissions',
|
||||
'label' => l10n('Permissions'),
|
||||
);
|
||||
$tabs[] = array(
|
||||
'code' => 'groups',
|
||||
'label' => l10n('Groups'),
|
||||
);
|
||||
if ($conf['enable_synchronization'])
|
||||
{
|
||||
$tabs[] = array(
|
||||
'code' => 'user_upload',
|
||||
'label' => l10n('User Upload'),
|
||||
),
|
||||
array(
|
||||
'code' => 'virtual_links',
|
||||
'label' => l10n('Virtual Links'),
|
||||
),
|
||||
array(
|
||||
'code' => 'misc',
|
||||
'label' => l10n('Miscellaneous'),
|
||||
),
|
||||
);
|
||||
}
|
||||
$tabs[] = array(
|
||||
'code' => 'virtual_links',
|
||||
'label' => l10n('Virtual Links'),
|
||||
);
|
||||
$tabs[] = array(
|
||||
'code' => 'misc',
|
||||
'label' => l10n('Miscellaneous'),
|
||||
);
|
||||
|
||||
if (!isset($_GET['section']))
|
||||
|
|
|
@ -448,12 +448,20 @@ SELECT
|
|||
)
|
||||
);
|
||||
|
||||
$element = array(
|
||||
'id' => $line['image_id'],
|
||||
'file' => $file_of_image[$line['image_id']],
|
||||
'path' => $path_of_image[$line['image_id']],
|
||||
'tn_ext' => $tn_ext_of_image[$line['image_id']],
|
||||
);
|
||||
if (isset($file_of_image[$line['image_id']]))
|
||||
{
|
||||
$element = array(
|
||||
'id' => $line['image_id'],
|
||||
'file' => $file_of_image[$line['image_id']],
|
||||
'path' => $path_of_image[$line['image_id']],
|
||||
'tn_ext' => $tn_ext_of_image[$line['image_id']],
|
||||
);
|
||||
$thumbnail_display = $page['search']['fields']['display_thumbnail'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$thumbnail_display = 'no_display_thumbnail';
|
||||
}
|
||||
|
||||
$image_title = '('.$line['image_id'].')';
|
||||
|
||||
|
@ -468,7 +476,7 @@ SELECT
|
|||
|
||||
$image_string = '';
|
||||
|
||||
switch ($page['search']['fields']['display_thumbnail'])
|
||||
switch ($thumbnail_display)
|
||||
{
|
||||
case 'no_display_thumbnail':
|
||||
{
|
||||
|
|
|
@ -294,7 +294,7 @@ DELETE FROM '.$table.'
|
|||
// destruction of the user
|
||||
$query = '
|
||||
DELETE FROM '.SESSIONS_TABLE.'
|
||||
WHERE data LIKE "pwg_uid|i:'.(int)$user_id.';%"
|
||||
WHERE data LIKE \'pwg_uid|i:'.(int)$user_id.';%\'
|
||||
;';
|
||||
pwg_query($query);
|
||||
|
||||
|
@ -1040,7 +1040,7 @@ SELECT uppercats
|
|||
{
|
||||
// technically, you can't move a category with uppercats 12,125,13,14
|
||||
// into a new parent category with uppercats 12,125,13,14,24
|
||||
if (preg_match('/^'.$category['uppercats'].',/', $new_parent_uppercats))
|
||||
if (preg_match('/^'.$category['uppercats'].'(,|$)/', $new_parent_uppercats))
|
||||
{
|
||||
array_push(
|
||||
$page['errors'],
|
||||
|
@ -1684,7 +1684,7 @@ function cat_admin_access($category_id)
|
|||
* @param global $dest: can be a file ressource or string
|
||||
* @return bool
|
||||
*/
|
||||
function fetchRemote($src, &$dest, $user_agent='Piwigo', $step=0)
|
||||
function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_agent='Piwigo', $step=0)
|
||||
{
|
||||
// Try to retrieve data from local file?
|
||||
if (!url_is_remote($src))
|
||||
|
@ -1704,6 +1704,15 @@ function fetchRemote($src, &$dest, $user_agent='Piwigo', $step=0)
|
|||
// After 3 redirections, return false
|
||||
if ($step > 3) return false;
|
||||
|
||||
// Initialization
|
||||
$method = empty($post_data) ? 'GET' : 'POST';
|
||||
$request = empty($post_data) ? '' : http_build_query($post_data, '', '&');
|
||||
if (!empty($get_data))
|
||||
{
|
||||
$src .= strpos($src, '?') === false ? '?' : '&';
|
||||
$src .= http_build_query($get_data, '', '&');
|
||||
}
|
||||
|
||||
// Initialize $dest
|
||||
is_resource($dest) or $dest = '';
|
||||
|
||||
|
@ -1715,6 +1724,11 @@ function fetchRemote($src, &$dest, $user_agent='Piwigo', $step=0)
|
|||
@curl_setopt($ch, CURLOPT_HEADER, 1);
|
||||
@curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
|
||||
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
if ($method == 'POST')
|
||||
{
|
||||
@curl_setopt($ch, CURLOPT_POST, 1);
|
||||
@curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
|
||||
}
|
||||
$content = @curl_exec($ch);
|
||||
$header_length = @curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
||||
$status = @curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
|
@ -1723,7 +1737,7 @@ function fetchRemote($src, &$dest, $user_agent='Piwigo', $step=0)
|
|||
{
|
||||
if (preg_match('/Location:\s+?(.+)/', substr($content, 0, $header_length), $m))
|
||||
{
|
||||
return fetchRemote($m[1], $dest, $user_agent, $step+1);
|
||||
return fetchRemote($m[1], $dest, array(), array(), $user_agent, $step+1);
|
||||
}
|
||||
$content = substr($content, $header_length);
|
||||
is_resource($dest) ? @fwrite($dest, $content) : $dest = $content;
|
||||
|
@ -1734,7 +1748,18 @@ function fetchRemote($src, &$dest, $user_agent='Piwigo', $step=0)
|
|||
// Try file_get_contents to read remote file
|
||||
if (ini_get('allow_url_fopen'))
|
||||
{
|
||||
$content = @file_get_contents($src);
|
||||
$opts = array(
|
||||
'http' => array(
|
||||
'method' => $method,
|
||||
'user_agent' => $user_agent,
|
||||
)
|
||||
);
|
||||
if ($method == 'POST')
|
||||
{
|
||||
$opts['http']['content'] = $request;
|
||||
}
|
||||
$context = @stream_context_create($opts);
|
||||
$content = @file_get_contents($src, false, $context);
|
||||
if ($content !== false)
|
||||
{
|
||||
is_resource($dest) ? @fwrite($dest, $content) : $dest = $content;
|
||||
|
@ -1753,13 +1778,19 @@ function fetchRemote($src, &$dest, $user_agent='Piwigo', $step=0)
|
|||
return false;
|
||||
}
|
||||
|
||||
fwrite($s,
|
||||
"GET ".$path." HTTP/1.0\r\n"
|
||||
."Host: ".$host."\r\n"
|
||||
."User-Agent: ".$user_agent."\r\n"
|
||||
."Accept: */*\r\n"
|
||||
."\r\n"
|
||||
);
|
||||
$http_request = $method." ".$path." HTTP/1.0\r\n";
|
||||
$http_request .= "Host: ".$host."\r\n";
|
||||
if ($method == 'POST')
|
||||
{
|
||||
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
|
||||
$http_request .= "Content-Length: ".strlen($request)."\r\n";
|
||||
}
|
||||
$http_request .= "User-Agent: ".$user_agent."\r\n";
|
||||
$http_request .= "Accept: */*\r\n";
|
||||
$http_request .= "\r\n";
|
||||
$http_request .= $request;
|
||||
|
||||
fwrite($s, $http_request);
|
||||
|
||||
$i = 0;
|
||||
$in_content = false;
|
||||
|
@ -1792,7 +1823,7 @@ function fetchRemote($src, &$dest, $user_agent='Piwigo', $step=0)
|
|||
if (preg_match('/Location:\s+?(.+)$/',rtrim($line,"\r\n"),$m))
|
||||
{
|
||||
fclose($s);
|
||||
return fetchRemote(trim($m[1]),$dest,$user_agent,$step+1);
|
||||
return fetchRemote(trim($m[1]),$dest,array(),array(),$user_agent,$step+1);
|
||||
}
|
||||
$i++;
|
||||
continue;
|
||||
|
@ -1872,6 +1903,7 @@ function get_newsletter_subscribe_base_url($language) {
|
|||
'pl_PL' => 'pl.piwigo.org',
|
||||
'hu_HU' => 'hu.piwigo.org',
|
||||
'ru_RU' => 'ru.piwigo.org',
|
||||
'nl_NL' => 'nl.piwigo.org',
|
||||
);
|
||||
|
||||
if (isset($domain_of[$language])) {
|
||||
|
|
|
@ -38,7 +38,18 @@ function get_sync_iptc_data($file)
|
|||
{
|
||||
if (preg_match('/(\d{4})(\d{2})(\d{2})/', $value, $matches))
|
||||
{
|
||||
$iptc[$pwg_key] = $matches[1].'-'.$matches[2].'-'.$matches[3];
|
||||
$year = $matches[1];
|
||||
$month = $matches[2];
|
||||
$day = $matches[3];
|
||||
|
||||
if (!checkdate($month, $day, $year))
|
||||
{
|
||||
// we suppose the year is correct
|
||||
$month = 1;
|
||||
$day = 1;
|
||||
}
|
||||
|
||||
$iptc[$pwg_key] = $year.'-'.$month.'-'.$day;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ function quote_check_key_list($check_key_list = array())
|
|||
}
|
||||
|
||||
/*
|
||||
* Execute all main queries to get list of user
|
||||
* Execute all main queries to get list of user
|
||||
*
|
||||
* Type are the type of list 'subscribe', 'send'
|
||||
*
|
||||
|
@ -110,7 +110,7 @@ function get_user_notifications($action, $check_key_list = array(), $enabled_fil
|
|||
$quoted_check_key_list = quote_check_key_list($check_key_list);
|
||||
if (count($quoted_check_key_list) != 0 )
|
||||
{
|
||||
$query_and_check_key = ' and
|
||||
$query_and_check_key = ' and
|
||||
check_key in ('.implode(",", $quoted_check_key_list).') ';
|
||||
}
|
||||
else
|
||||
|
@ -131,7 +131,7 @@ from
|
|||
'.USERS_TABLE.' as U
|
||||
where
|
||||
N.user_id = U.'.$conf['user_fields']['id'];
|
||||
|
||||
|
||||
if ($action == 'send')
|
||||
{
|
||||
// No mail empty and all users enabled
|
||||
|
@ -360,6 +360,8 @@ function do_subscribe_unsubscribe_notification_by_mail($is_admin_request, $is_su
|
|||
{
|
||||
global $conf, $page, $env_nbm, $conf;
|
||||
|
||||
set_make_full_url();
|
||||
|
||||
$check_key_treated = array();
|
||||
$updated_data_count = 0;
|
||||
$error_on_updated_data_count = 0;
|
||||
|
@ -418,7 +420,7 @@ function do_subscribe_unsubscribe_notification_by_mail($is_admin_request, $is_su
|
|||
(
|
||||
$section_action_by => true,
|
||||
'GOTO_GALLERY_TITLE' => $conf['gallery_title'],
|
||||
'GOTO_GALLERY_URL' => $conf['gallery_url'],
|
||||
'GOTO_GALLERY_URL' => get_gallery_home_url(),
|
||||
)
|
||||
);
|
||||
|
||||
|
@ -496,6 +498,8 @@ function do_subscribe_unsubscribe_notification_by_mail($is_admin_request, $is_su
|
|||
$error_on_updated_data_count));
|
||||
}
|
||||
|
||||
unset_make_full_url();
|
||||
|
||||
return $check_key_treated;
|
||||
}
|
||||
|
||||
|
@ -523,4 +527,4 @@ function subscribe_notification_by_mail($is_admin_request, $check_key_list = arr
|
|||
return do_subscribe_unsubscribe_notification_by_mail($is_admin_request, true, $check_key_list);
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
|
@ -28,7 +28,7 @@ function get_cat_id_from_permalink( $permalink )
|
|||
{
|
||||
$query ='
|
||||
SELECT id FROM '.CATEGORIES_TABLE.'
|
||||
WHERE permalink="'.$permalink.'"';
|
||||
WHERE permalink=\''.$permalink.'\'';
|
||||
$ids = array_from_query($query, 'id');
|
||||
if (!empty($ids))
|
||||
{
|
||||
|
@ -47,7 +47,7 @@ function get_cat_id_from_old_permalink($permalink)
|
|||
SELECT c.id
|
||||
FROM '.OLD_PERMALINKS_TABLE.' op INNER JOIN '.CATEGORIES_TABLE.' c
|
||||
ON op.cat_id=c.id
|
||||
WHERE op.permalink="'.$permalink.'"
|
||||
WHERE op.permalink=\''.$permalink.'\'
|
||||
LIMIT 1';
|
||||
$result = pwg_query($query);
|
||||
$cat_id = null;
|
||||
|
@ -69,7 +69,7 @@ function delete_cat_permalink( $cat_id, $save )
|
|||
$query = '
|
||||
SELECT permalink
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE id="'.$cat_id.'"
|
||||
WHERE id=\''.$cat_id.'\'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
if ( pwg_db_num_rows($result) )
|
||||
|
@ -108,7 +108,7 @@ UPDATE '.CATEGORIES_TABLE.'
|
|||
$query = '
|
||||
UPDATE '.OLD_PERMALINKS_TABLE.'
|
||||
SET date_deleted=NOW()
|
||||
WHERE cat_id='.$cat_id.' AND permalink="'.$permalink.'"';
|
||||
WHERE cat_id='.$cat_id.' AND permalink=\''.$permalink.'\'';
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -116,7 +116,7 @@ UPDATE '.OLD_PERMALINKS_TABLE.'
|
|||
INSERT INTO '.OLD_PERMALINKS_TABLE.'
|
||||
(permalink, cat_id, date_deleted)
|
||||
VALUES
|
||||
( "'.$permalink.'",'.$cat_id.',NOW() )';
|
||||
( \''.$permalink.'\','.$cat_id.',NOW() )';
|
||||
}
|
||||
pwg_query( $query );
|
||||
}
|
||||
|
@ -185,13 +185,13 @@ function set_cat_permalink( $cat_id, $permalink, $save )
|
|||
assert( $old_cat_id==$cat_id );
|
||||
$query = '
|
||||
DELETE FROM '.OLD_PERMALINKS_TABLE.'
|
||||
WHERE cat_id='.$old_cat_id.' AND permalink="'.$permalink.'"';
|
||||
WHERE cat_id='.$old_cat_id.' AND permalink=\''.$permalink.'\'';
|
||||
pwg_query($query);
|
||||
}
|
||||
|
||||
$query = '
|
||||
UPDATE '.CATEGORIES_TABLE.'
|
||||
SET permalink="'.$permalink.'"
|
||||
SET permalink=\''.$permalink.'\'
|
||||
WHERE id='.$cat_id;
|
||||
// LIMIT 1';
|
||||
pwg_query($query);
|
||||
|
|
|
@ -86,8 +86,8 @@ function deactivate_non_standard_plugins()
|
|||
$query = '
|
||||
SELECT id
|
||||
FROM '.PREFIX_TABLE.'plugins
|
||||
WHERE state = "active"
|
||||
AND id NOT IN ("' . implode('","', $standard_plugins) . '")
|
||||
WHERE state = \'active\'
|
||||
AND id NOT IN (\'' . implode('\',\'', $standard_plugins) . '\')
|
||||
;';
|
||||
|
||||
$result = pwg_query($query);
|
||||
|
@ -101,8 +101,8 @@ AND id NOT IN ("' . implode('","', $standard_plugins) . '")
|
|||
{
|
||||
$query = '
|
||||
UPDATE '.PREFIX_TABLE.'plugins
|
||||
SET state="inactive"
|
||||
WHERE id IN ("' . implode('","', $plugins) . '")
|
||||
SET state=\'inactive\'
|
||||
WHERE id IN (\'' . implode('\',\'', $plugins) . '\')
|
||||
;';
|
||||
pwg_query($query);
|
||||
|
||||
|
@ -162,7 +162,7 @@ SELECT status
|
|||
$query = '
|
||||
SELECT password, status
|
||||
FROM '.USERS_TABLE.'
|
||||
WHERE username = "'.$username.'"
|
||||
WHERE username = \''.$username.'\'
|
||||
;';
|
||||
}
|
||||
else
|
||||
|
@ -172,7 +172,7 @@ SELECT u.password, ui.status
|
|||
FROM '.USERS_TABLE.' AS u
|
||||
INNER JOIN '.USER_INFOS_TABLE.' AS ui
|
||||
ON u.'.$conf['user_fields']['id'].'=ui.user_id
|
||||
WHERE '.$conf['user_fields']['username'].'="'.$username.'"
|
||||
WHERE '.$conf['user_fields']['username'].'=\''.$username.'\'
|
||||
;';
|
||||
}
|
||||
$row = pwg_db_fetch_assoc(pwg_query($query));
|
||||
|
|
|
@ -26,7 +26,7 @@ function add_uploaded_file($source_filepath, $original_filename=null, $categorie
|
|||
global $conf;
|
||||
|
||||
// current date
|
||||
list($dbnow) = mysql_fetch_row(pwg_query('SELECT NOW();'));
|
||||
list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();'));
|
||||
list($year, $month, $day) = preg_split('/[^\d]/', $dbnow, 4);
|
||||
|
||||
// upload directory hierarchy
|
||||
|
@ -42,7 +42,17 @@ function add_uploaded_file($source_filepath, $original_filename=null, $categorie
|
|||
$date_string = preg_replace('/[^\d]/', '', $dbnow);
|
||||
$random_string = substr($md5sum, 0, 8);
|
||||
$filename_wo_ext = $date_string.'-'.$random_string;
|
||||
$file_path = $upload_dir.'/'.$filename_wo_ext.'.jpg';
|
||||
$file_path = $upload_dir.'/'.$filename_wo_ext.'.';
|
||||
|
||||
list($width, $height, $type) = getimagesize($source_filepath);
|
||||
if (IMAGETYPE_PNG == $type)
|
||||
{
|
||||
$file_path.= 'png';
|
||||
}
|
||||
else
|
||||
{
|
||||
$file_path.= 'jpg';
|
||||
}
|
||||
|
||||
prepare_directory($upload_dir);
|
||||
if (is_uploaded_file($source_filepath))
|
||||
|
@ -93,7 +103,7 @@ function add_uploaded_file($source_filepath, $original_filename=null, $categorie
|
|||
|
||||
// database registration
|
||||
$insert = array(
|
||||
'file' => isset($original_filename) ? $original_filename : basename($file_path),
|
||||
'file' => pwg_db_real_escape_string(isset($original_filename) ? $original_filename : basename($file_path)),
|
||||
'date_available' => $dbnow,
|
||||
'tn_ext' => 'jpg',
|
||||
'path' => preg_replace('#^'.preg_quote(PHPWG_ROOT_PATH).'#', '', $file_path),
|
||||
|
@ -120,7 +130,7 @@ function add_uploaded_file($source_filepath, $original_filename=null, $categorie
|
|||
array($insert)
|
||||
);
|
||||
|
||||
$image_id = mysql_insert_id();
|
||||
$image_id = pwg_db_insert_id(IMAGES_TABLE);
|
||||
|
||||
if (isset($categories) and count($categories) > 0)
|
||||
{
|
||||
|
@ -131,6 +141,10 @@ function add_uploaded_file($source_filepath, $original_filename=null, $categorie
|
|||
}
|
||||
|
||||
// update metadata from the uploaded file (exif/iptc)
|
||||
if ($conf['use_exif'] and !function_exists('read_exif_data'))
|
||||
{
|
||||
$conf['use_exif'] = false;
|
||||
}
|
||||
update_metadata(array($image_id=>$file_path));
|
||||
|
||||
invalidate_user_cache();
|
||||
|
@ -141,6 +155,10 @@ function add_uploaded_file($source_filepath, $original_filename=null, $categorie
|
|||
function prepare_directory($directory)
|
||||
{
|
||||
if (!is_dir($directory)) {
|
||||
if (substr(PHP_OS, 0, 3) == 'WIN')
|
||||
{
|
||||
$directory = str_replace('/', DIRECTORY_SEPARATOR, $directory);
|
||||
}
|
||||
umask(0000);
|
||||
$recursive = true;
|
||||
if (!@mkdir($directory, 0777, $recursive))
|
||||
|
@ -194,11 +212,11 @@ function pwg_image_resize($result, $source_filepath, $destination_filepath, $max
|
|||
$source_image = null;
|
||||
if (in_array($extension, array('jpg', 'jpeg')))
|
||||
{
|
||||
$source_image = @imagecreatefromjpeg($source_filepath);
|
||||
$source_image = imagecreatefromjpeg($source_filepath);
|
||||
}
|
||||
else if ($extension == 'png')
|
||||
{
|
||||
$source_image = @imagecreatefrompng($source_filepath);
|
||||
$source_image = imagecreatefrompng($source_filepath);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -248,7 +266,15 @@ function pwg_image_resize($result, $source_filepath, $destination_filepath, $max
|
|||
$source_height
|
||||
);
|
||||
|
||||
imagejpeg($destination_image, $destination_filepath, $quality);
|
||||
$extension = strtolower(get_extension($destination_filepath));
|
||||
if ($extension == 'png')
|
||||
{
|
||||
imagepng($destination_image, $destination_filepath);
|
||||
}
|
||||
else
|
||||
{
|
||||
imagejpeg($destination_image, $destination_filepath, $quality);
|
||||
}
|
||||
// freeing memory ressources
|
||||
imagedestroy($source_image);
|
||||
imagedestroy($destination_image);
|
||||
|
@ -273,4 +299,82 @@ function is_valid_image_extension($extension)
|
|||
{
|
||||
return in_array(strtolower($extension), array('jpg', 'jpeg', 'png'));
|
||||
}
|
||||
|
||||
function file_upload_error_message($error_code)
|
||||
{
|
||||
switch ($error_code) {
|
||||
case UPLOAD_ERR_INI_SIZE:
|
||||
return sprintf(
|
||||
l10n('The uploaded file exceeds the upload_max_filesize directive in php.ini: %sB'),
|
||||
get_ini_size('upload_max_filesize', false)
|
||||
);
|
||||
case UPLOAD_ERR_FORM_SIZE:
|
||||
return l10n('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form');
|
||||
case UPLOAD_ERR_PARTIAL:
|
||||
return l10n('The uploaded file was only partially uploaded');
|
||||
case UPLOAD_ERR_NO_FILE:
|
||||
return l10n('No file was uploaded');
|
||||
case UPLOAD_ERR_NO_TMP_DIR:
|
||||
return l10n('Missing a temporary folder');
|
||||
case UPLOAD_ERR_CANT_WRITE:
|
||||
return l10n('Failed to write file to disk');
|
||||
case UPLOAD_ERR_EXTENSION:
|
||||
return l10n('File upload stopped by extension');
|
||||
default:
|
||||
return l10n('Unknown upload error');
|
||||
}
|
||||
}
|
||||
|
||||
function get_ini_size($ini_key, $in_bytes=true)
|
||||
{
|
||||
$size = ini_get($ini_key);
|
||||
|
||||
if ($in_bytes)
|
||||
{
|
||||
$size = convert_shortand_notation_to_bytes($size);
|
||||
}
|
||||
|
||||
return $size;
|
||||
}
|
||||
|
||||
function convert_shortand_notation_to_bytes($value)
|
||||
{
|
||||
$suffix = substr($value, -1);
|
||||
$multiply_by = null;
|
||||
|
||||
if ('K' == $suffix)
|
||||
{
|
||||
$multiply_by = 1024;
|
||||
}
|
||||
else if ('M' == $suffix)
|
||||
{
|
||||
$multiply_by = 1024*1024;
|
||||
}
|
||||
else if ('G' == $suffix)
|
||||
{
|
||||
$multiply_by = 1024*1024*1024;
|
||||
}
|
||||
|
||||
if (isset($multiply_by))
|
||||
{
|
||||
$value = substr($value, 0, -1);
|
||||
$value*= $multiply_by;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
function add_upload_error($upload_id, $error_message)
|
||||
{
|
||||
if (!isset($_SESSION['uploads_error']))
|
||||
{
|
||||
$_SESSION['uploads_error'] = array();
|
||||
}
|
||||
if (!isset($_SESSION['uploads_error'][$upload_id]))
|
||||
{
|
||||
$_SESSION['uploads_error'][$upload_id] = array();
|
||||
}
|
||||
|
||||
array_push($_SESSION['uploads_error'][$upload_id], $error_message);
|
||||
}
|
||||
?>
|
|
@ -98,12 +98,12 @@ INSERT INTO '.LANGUAGES_TABLE.'
|
|||
array_push($errors, 'CANNOT DEACTIVATE - LANGUAGE IS DEFAULT LANGUAGE');
|
||||
break;
|
||||
}
|
||||
|
||||
$query = "
|
||||
|
||||
$query = '
|
||||
DELETE
|
||||
FROM ".LANGUAGES_TABLE."
|
||||
WHERE id= '".$language_id."'
|
||||
;";
|
||||
FROM '.LANGUAGES_TABLE.'
|
||||
WHERE id= \''.$language_id.'\'
|
||||
;';
|
||||
pwg_query($query);
|
||||
break;
|
||||
|
||||
|
@ -122,8 +122,8 @@ DELETE
|
|||
// Set default language to user who are using this language
|
||||
$query = '
|
||||
UPDATE '.USER_INFOS_TABLE.'
|
||||
SET language = "'.get_default_language().'"
|
||||
WHERE language = "'.$language_id.'"
|
||||
SET language = \''.get_default_language().'\'
|
||||
WHERE language = \''.$language_id.'\'
|
||||
;';
|
||||
pwg_query($query);
|
||||
|
||||
|
@ -136,8 +136,8 @@ UPDATE '.USER_INFOS_TABLE.'
|
|||
case 'set_default':
|
||||
$query = '
|
||||
UPDATE '.USER_INFOS_TABLE.'
|
||||
SET language = "'.$language_id.'"
|
||||
WHERE user_id = '.$conf['default_user_id'].'
|
||||
SET language = \''.$language_id.'\'
|
||||
WHERE user_id IN ('.$conf['default_user_id'].', '.$conf['guest_id'].')
|
||||
;';
|
||||
pwg_query($query);
|
||||
break;
|
||||
|
@ -147,7 +147,7 @@ UPDATE '.USER_INFOS_TABLE.'
|
|||
|
||||
/**
|
||||
* Get languages defined in the language directory
|
||||
*/
|
||||
*/
|
||||
function get_fs_languages($target_charset = null)
|
||||
{
|
||||
if ( empty($target_charset) )
|
||||
|
@ -165,7 +165,7 @@ UPDATE '.USER_INFOS_TABLE.'
|
|||
{
|
||||
list($language_name) = @file($path.'/iso.txt');
|
||||
|
||||
$languages[$file] = convert_charset($language_name, $target_charset);
|
||||
$languages[$file] = convert_charset($language_name, 'utf-8', $target_charset);
|
||||
}
|
||||
}
|
||||
closedir($dir);
|
||||
|
@ -196,13 +196,16 @@ UPDATE '.USER_INFOS_TABLE.'
|
|||
{
|
||||
global $user;
|
||||
|
||||
$pem_category_id = 8;
|
||||
$get_data = array(
|
||||
'category_id' => 8,
|
||||
'format' => 'php',
|
||||
);
|
||||
|
||||
// Retrieve PEM versions
|
||||
$version = PHPWG_VERSION;
|
||||
$versions_to_check = array();
|
||||
$url = PEM_URL . '/api/get_version_list.php?category_id='.$pem_category_id.'&format=php';
|
||||
if (fetchRemote($url, $result) and $pem_versions = @unserialize($result))
|
||||
$url = PEM_URL . '/api/get_version_list.php';
|
||||
if (fetchRemote($url, $result, $get_data) and $pem_versions = @unserialize($result))
|
||||
{
|
||||
if (!preg_match('/^\d+\.\d+\.\d+/', $version))
|
||||
{
|
||||
|
@ -223,11 +226,15 @@ UPDATE '.USER_INFOS_TABLE.'
|
|||
}
|
||||
|
||||
// Retrieve PEM languages infos
|
||||
$url = PEM_URL . '/api/get_revision_list.php?category_id='.$pem_category_id.'&format=php&last_revision_only=true';
|
||||
$url .= '&version=' . implode(',', $versions_to_check);
|
||||
$url .= '&lang='.$user['language'];
|
||||
$url = PEM_URL . '/api/get_revision_list.php';
|
||||
$get_data = array_merge($get_data, array(
|
||||
'last_revision_only' => 'true',
|
||||
'version' => implode(',', $versions_to_check),
|
||||
'lang' => $user['language'],
|
||||
)
|
||||
);
|
||||
|
||||
if (fetchRemote($url, $result))
|
||||
if (fetchRemote($url, $result, $get_data))
|
||||
{
|
||||
$pem_languages = @unserialize($result);
|
||||
if (!is_array($pem_languages))
|
||||
|
@ -258,10 +265,13 @@ UPDATE '.USER_INFOS_TABLE.'
|
|||
{
|
||||
if ($archive = tempnam( PHPWG_ROOT_PATH.'language', 'zip'))
|
||||
{
|
||||
$url = PEM_URL . '/download.php?rid=' . $revision;
|
||||
$url .= '&origin=piwigo_' . $action;
|
||||
$url = PEM_URL . '/download.php';
|
||||
$get_data = array(
|
||||
'rid' => $revision,
|
||||
'origin' => 'piwigo_'.$action,
|
||||
);
|
||||
|
||||
if ($handle = @fopen($archive, 'wb') and fetchRemote($url, $handle))
|
||||
if ($handle = @fopen($archive, 'wb') and fetchRemote($url, $handle, $get_data))
|
||||
{
|
||||
fclose($handle);
|
||||
include(PHPWG_ROOT_PATH.'admin/include/pclzip.lib.php');
|
||||
|
|
|
@ -290,11 +290,16 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
|
|||
{
|
||||
global $user;
|
||||
|
||||
$get_data = array(
|
||||
'category_id' => 12,
|
||||
'format' => 'php',
|
||||
);
|
||||
|
||||
// Retrieve PEM versions
|
||||
$version = PHPWG_VERSION;
|
||||
$versions_to_check = array();
|
||||
$url = PEM_URL . '/api/get_version_list.php?category_id=12&format=php';
|
||||
if (fetchRemote($url, $result) and $pem_versions = @unserialize($result))
|
||||
$url = PEM_URL . '/api/get_version_list.php';
|
||||
if (fetchRemote($url, $result, $get_data) and $pem_versions = @unserialize($result))
|
||||
{
|
||||
if (!preg_match('/^\d+\.\d+\.\d+/', $version))
|
||||
{
|
||||
|
@ -325,17 +330,27 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
|
|||
}
|
||||
|
||||
// Retrieve PEM plugins infos
|
||||
$url = PEM_URL . '/api/get_revision_list.php?category_id=12&format=php&last_revision_only=true';
|
||||
$url .= '&version=' . implode(',', $versions_to_check);
|
||||
$url .= '&lang=' . substr($user['language'], 0, 2);
|
||||
$url .= '&get_nb_downloads=true';
|
||||
$url = PEM_URL . '/api/get_revision_list.php';
|
||||
$get_data = array_merge($get_data, array(
|
||||
'last_revision_only' => 'true',
|
||||
'version' => implode(',', $versions_to_check),
|
||||
'lang' => substr($user['language'], 0, 2),
|
||||
'get_nb_downloads' => 'true',
|
||||
)
|
||||
);
|
||||
|
||||
if (!empty($plugins_to_check))
|
||||
{
|
||||
$url .= $new ? '&extension_exclude=' : '&extension_include=';
|
||||
$url .= implode(',', $plugins_to_check);
|
||||
if ($new)
|
||||
{
|
||||
$get_data['extension_exclude'] = implode(',', $plugins_to_check);
|
||||
}
|
||||
else
|
||||
{
|
||||
$get_data['extension_include'] = implode(',', $plugins_to_check);
|
||||
}
|
||||
}
|
||||
if (fetchRemote($url, $result))
|
||||
if (fetchRemote($url, $result, $get_data))
|
||||
{
|
||||
$pem_plugins = @unserialize($result);
|
||||
if (!is_array($pem_plugins))
|
||||
|
@ -386,10 +401,13 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
|
|||
{
|
||||
if ($archive = tempnam( PHPWG_PLUGINS_PATH, 'zip'))
|
||||
{
|
||||
$url = PEM_URL . '/download.php?rid=' . $revision;
|
||||
$url .= '&origin=piwigo_' . $action;
|
||||
$url = PEM_URL . '/download.php';
|
||||
$get_data = array(
|
||||
'rid' => $revision,
|
||||
'origin' => 'piwigo_'.$action,
|
||||
);
|
||||
|
||||
if ($handle = @fopen($archive, 'wb') and fetchRemote($url, $handle))
|
||||
if ($handle = @fopen($archive, 'wb') and fetchRemote($url, $handle, $get_data))
|
||||
{
|
||||
fclose($handle);
|
||||
include(PHPWG_ROOT_PATH.'admin/include/pclzip.lib.php');
|
||||
|
@ -524,6 +542,8 @@ DELETE FROM ' . PLUGINS_TABLE . ' WHERE id=\'' . $plugin_id . '\'';
|
|||
*/
|
||||
function plugin_version_compare($a, $b)
|
||||
{
|
||||
if (strtolower($a) == 'auto') return false;
|
||||
|
||||
$pattern = array('/([a-z])/ei', '/\.+/', '/\.\Z|\A\./');
|
||||
$replacement = array( "'.'.intval('\\1', 36).'.'", '.', '');
|
||||
|
||||
|
|
|
@ -151,7 +151,7 @@ INSERT INTO '.THEMES_TABLE.'
|
|||
SELECT
|
||||
id
|
||||
FROM '.THEMES_TABLE.'
|
||||
WHERE id != "'.$theme_id.'"
|
||||
WHERE id != \''.$theme_id.'\'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
if (pwg_db_num_rows($result) == 0)
|
||||
|
@ -175,11 +175,11 @@ SELECT
|
|||
}
|
||||
}
|
||||
|
||||
$query = "
|
||||
$query = '
|
||||
DELETE
|
||||
FROM ".THEMES_TABLE."
|
||||
WHERE id= '".$theme_id."'
|
||||
;";
|
||||
FROM '.THEMES_TABLE.'
|
||||
WHERE id= \''.$theme_id.'\'
|
||||
;';
|
||||
pwg_query($query);
|
||||
break;
|
||||
|
||||
|
@ -270,7 +270,7 @@ DELETE
|
|||
SELECT
|
||||
user_id
|
||||
FROM '.USER_INFOS_TABLE.'
|
||||
WHERE theme = "'.$default_theme.'"
|
||||
WHERE theme = \''.$default_theme.'\'
|
||||
;';
|
||||
$user_ids = array_unique(
|
||||
array_merge(
|
||||
|
@ -284,7 +284,7 @@ SELECT
|
|||
|
||||
$query = '
|
||||
UPDATE '.USER_INFOS_TABLE.'
|
||||
SET theme = "'.$theme_id.'"
|
||||
SET theme = \''.$theme_id.'\'
|
||||
WHERE user_id IN ('.implode(',', $user_ids).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
|
@ -300,7 +300,7 @@ SELECT
|
|||
$clauses = array();
|
||||
if (!empty($id))
|
||||
{
|
||||
$clauses[] = "id = '".$id."'";
|
||||
$clauses[] = 'id = \''.$id.'\'';
|
||||
}
|
||||
if (count($clauses) > 0)
|
||||
{
|
||||
|
@ -447,13 +447,16 @@ SELECT
|
|||
{
|
||||
global $user;
|
||||
|
||||
$pem_category_id = 10;
|
||||
$get_data = array(
|
||||
'category_id' => 10,
|
||||
'format' => 'php',
|
||||
);
|
||||
|
||||
// Retrieve PEM versions
|
||||
$version = PHPWG_VERSION;
|
||||
$versions_to_check = array();
|
||||
$url = PEM_URL . '/api/get_version_list.php?category_id='.$pem_category_id.'&format=php';
|
||||
if (fetchRemote($url, $result) and $pem_versions = @unserialize($result))
|
||||
$url = PEM_URL . '/api/get_version_list.php';
|
||||
if (fetchRemote($url, $result, $get_data) and $pem_versions = @unserialize($result))
|
||||
{
|
||||
if (!preg_match('/^\d+\.\d+\.\d+/', $version))
|
||||
{
|
||||
|
@ -484,17 +487,27 @@ SELECT
|
|||
}
|
||||
|
||||
// Retrieve PEM themes infos
|
||||
$url = PEM_URL . '/api/get_revision_list.php?category_id='.$pem_category_id.'&format=php&last_revision_only=true';
|
||||
$url .= '&version=' . implode(',', $versions_to_check);
|
||||
$url .= '&lang=' . substr($user['language'], 0, 2);
|
||||
$url .= '&get_nb_downloads=true';
|
||||
$url = PEM_URL . '/api/get_revision_list.php';
|
||||
$get_data = array_merge($get_data, array(
|
||||
'last_revision_only' => 'true',
|
||||
'version' => implode(',', $versions_to_check),
|
||||
'lang' => substr($user['language'], 0, 2),
|
||||
'get_nb_downloads' => 'true',
|
||||
)
|
||||
);
|
||||
|
||||
if (!empty($themes_to_check))
|
||||
{
|
||||
$url .= $new ? '&extension_exclude=' : '&extension_include=';
|
||||
$url .= implode(',', $themes_to_check);
|
||||
if ($new)
|
||||
{
|
||||
$get_data['extension_exclude'] = implode(',', $themes_to_check);
|
||||
}
|
||||
else
|
||||
{
|
||||
$get_data['extension_include'] = implode(',', $themes_to_check);
|
||||
}
|
||||
}
|
||||
if (fetchRemote($url, $result))
|
||||
if (fetchRemote($url, $result, $get_data))
|
||||
{
|
||||
$pem_themes = @unserialize($result);
|
||||
if (!is_array($pem_themes))
|
||||
|
@ -546,10 +559,13 @@ SELECT
|
|||
{
|
||||
if ($archive = tempnam( PHPWG_THEMES_PATH, 'zip'))
|
||||
{
|
||||
$url = PEM_URL . '/download.php?rid=' . $revision;
|
||||
$url .= '&origin=piwigo_' . $action;
|
||||
$url = PEM_URL . '/download.php';
|
||||
$get_data = array(
|
||||
'rid' => $revision,
|
||||
'origin' => 'piwigo_'.$action,
|
||||
);
|
||||
|
||||
if ($handle = @fopen($archive, 'wb') and fetchRemote($url, $handle))
|
||||
if ($handle = @fopen($archive, 'wb') and fetchRemote($url, $handle, $get_data))
|
||||
{
|
||||
fclose($handle);
|
||||
include(PHPWG_ROOT_PATH.'admin/include/pclzip.lib.php');
|
||||
|
|
|
@ -11,13 +11,35 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php');
|
|||
check_pwg_token();
|
||||
|
||||
ob_start();
|
||||
echo '$_FILES'."\n";
|
||||
print_r($_FILES);
|
||||
echo '$_POST'."\n";
|
||||
print_r($_POST);
|
||||
echo '$user'."\n";
|
||||
print_r($user);
|
||||
$tmp = ob_get_contents();
|
||||
ob_end_clean();
|
||||
// error_log($tmp, 3, "/tmp/php-".date('YmdHis').'-'.sprintf('%020u', rand()).".log");
|
||||
|
||||
if ($_FILES['Filedata']['error'] !== UPLOAD_ERR_OK)
|
||||
{
|
||||
$error_message = file_upload_error_message($_FILES['Filedata']['error']);
|
||||
|
||||
add_upload_error(
|
||||
$_POST['upload_id'],
|
||||
sprintf(
|
||||
l10n('Error on file "%s" : %s'),
|
||||
$_FILES['Filedata']['name'],
|
||||
$error_message
|
||||
)
|
||||
);
|
||||
|
||||
echo "File Size Error";
|
||||
exit();
|
||||
}
|
||||
|
||||
ob_start();
|
||||
|
||||
$image_id = add_uploaded_file(
|
||||
$_FILES['Filedata']['tmp_name'],
|
||||
$_FILES['Filedata']['name'],
|
||||
|
@ -40,5 +62,12 @@ array_push(
|
|||
$image_id
|
||||
);
|
||||
|
||||
$output = ob_get_contents();
|
||||
ob_end_clean();
|
||||
if (!empty($output))
|
||||
{
|
||||
add_upload_error($_POST['upload_id'], $output);
|
||||
}
|
||||
|
||||
echo "1";
|
||||
?>
|
|
@ -126,7 +126,7 @@ if ($conf['show_newsletter_subscription']) {
|
|||
|
||||
$php_current_timestamp = date("Y-m-d H:i:s");
|
||||
$db_version = pwg_get_db_version();
|
||||
list($db_current_timestamp) = pwg_db_fetch_row(pwg_query('SELECT CURRENT_TIMESTAMP;'));
|
||||
list($db_current_date) = pwg_db_fetch_row(pwg_query('SELECT now();'));
|
||||
|
||||
$query = '
|
||||
SELECT COUNT(*)
|
||||
|
@ -215,7 +215,7 @@ $template->assign(
|
|||
'U_CHECK_UPGRADE' => PHPWG_ROOT_PATH.'admin.php?action=check_upgrade',
|
||||
'U_PHPINFO' => PHPWG_ROOT_PATH.'admin.php?action=phpinfo',
|
||||
'PHP_DATATIME' => $php_current_timestamp,
|
||||
'DB_DATATIME' => $db_current_timestamp,
|
||||
'DB_DATATIME' => $db_current_date,
|
||||
)
|
||||
);
|
||||
|
||||
|
|
|
@ -114,16 +114,16 @@ foreach($missing_language_ids as $language_id)
|
|||
{
|
||||
$query = '
|
||||
UPDATE '.USER_INFOS_TABLE.'
|
||||
SET language = "'.get_default_language().'"
|
||||
WHERE language = "'.$language_id.'"
|
||||
SET language = \''.get_default_language().'\'
|
||||
WHERE language = \''.$language_id.'\'
|
||||
;';
|
||||
pwg_query($query);
|
||||
|
||||
$query = "
|
||||
$query = '
|
||||
DELETE
|
||||
FROM ".LANGUAGES_TABLE."
|
||||
WHERE id= '".$language_id."'
|
||||
;";
|
||||
FROM '.LANGUAGES_TABLE.'
|
||||
WHERE id= \''.$language_id.'\'
|
||||
;';
|
||||
pwg_query($query);
|
||||
}
|
||||
|
||||
|
|
|
@ -381,7 +381,7 @@ function do_action_send_mail_notification($action = 'list_to_send', $check_key_l
|
|||
array
|
||||
(
|
||||
'GOTO_GALLERY_TITLE' => $conf['gallery_title'],
|
||||
'GOTO_GALLERY_URL' => $conf['gallery_url'],
|
||||
'GOTO_GALLERY_URL' => get_gallery_home_url(),
|
||||
'SEND_AS_NAME' => $env_nbm['send_as_name'],
|
||||
)
|
||||
);
|
||||
|
|
|
@ -96,7 +96,7 @@ elseif ( isset($_GET['delete_permanent']) and !is_adviser() )
|
|||
{
|
||||
$query = '
|
||||
DELETE FROM '.OLD_PERMALINKS_TABLE.'
|
||||
WHERE permalink="'.$_GET['delete_permanent'].'"
|
||||
WHERE permalink=\''.$_GET['delete_permanent'].'\'
|
||||
LIMIT 1';
|
||||
$result = pwg_query($query);
|
||||
if (pwg_db_changes($result)==0)
|
||||
|
|
|
@ -152,12 +152,19 @@ $tabs = array(
|
|||
'code' => 'ploader',
|
||||
'label' => l10n('Piwigo Uploader'),
|
||||
),
|
||||
array(
|
||||
'code' => 'ftp',
|
||||
'label' => l10n('FTP + Synchronization'),
|
||||
),
|
||||
);
|
||||
|
||||
if ($conf['enable_synchronization'])
|
||||
{
|
||||
array_push(
|
||||
$tabs,
|
||||
array(
|
||||
'code' => 'ftp',
|
||||
'label' => l10n('FTP + Synchronization'),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$tab_codes = array_map(
|
||||
create_function('$a', 'return $a["code"];'),
|
||||
$tabs
|
||||
|
|
|
@ -62,15 +62,33 @@ DELETE FROM '.CADDIE_TABLE.'
|
|||
// | process form |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
if (isset($_POST['submit_upload']))
|
||||
if (isset($_GET['processed']))
|
||||
{
|
||||
// echo '<pre>POST'."\n"; print_r($_POST); echo '</pre>';
|
||||
// echo '<pre>FILES'."\n"; print_r($_FILES); echo '</pre>';
|
||||
// echo '<pre>SESSION'."\n"; print_r($_SESSION); echo '</pre>';
|
||||
// exit();
|
||||
|
||||
// sometimes, you have submitted the form but you have nothing in $_POST
|
||||
// and $_FILES. This may happen when you have an HTML upload and you
|
||||
// exceeded the post_max_size (but not the upload_max_size)
|
||||
if (!isset($_POST['submit_upload']))
|
||||
{
|
||||
array_push(
|
||||
$page['errors'],
|
||||
sprintf(
|
||||
l10n('The uploaded files exceed the post_max_size directive in php.ini: %sB'),
|
||||
ini_get('post_max_size')
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$category_id = null;
|
||||
if ('existing' == $_POST['category_type'])
|
||||
if (!isset($_POST['category_type']))
|
||||
{
|
||||
// nothing to do, we certainly have the post_max_size issue
|
||||
}
|
||||
elseif ('existing' == $_POST['category_type'])
|
||||
{
|
||||
$category_id = $_POST['category'];
|
||||
}
|
||||
|
@ -193,6 +211,19 @@ if (isset($_POST['submit_upload']))
|
|||
// TODO: if $image_id is not an integer, something went wrong
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error_message = file_upload_error_message($error);
|
||||
|
||||
array_push(
|
||||
$page['errors'],
|
||||
sprintf(
|
||||
l10n('Error on file "%s" : %s'),
|
||||
$_FILES['image_upload']['name'][$idx],
|
||||
$error_message
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$endtime = get_moment();
|
||||
|
@ -204,21 +235,32 @@ if (isset($_POST['submit_upload']))
|
|||
if (isset($_POST['upload_id']))
|
||||
{
|
||||
// we're on a multiple upload, with uploadify and so on
|
||||
$image_ids = $_SESSION['uploads'][ $_POST['upload_id'] ];
|
||||
if (isset($_SESSION['uploads_error'][ $_POST['upload_id'] ]))
|
||||
{
|
||||
foreach ($_SESSION['uploads_error'][ $_POST['upload_id'] ] as $error)
|
||||
{
|
||||
array_push($page['errors'], $error);
|
||||
}
|
||||
}
|
||||
|
||||
associate_images_to_categories(
|
||||
$image_ids,
|
||||
array($category_id)
|
||||
);
|
||||
if (isset($_SESSION['uploads'][ $_POST['upload_id'] ]))
|
||||
{
|
||||
$image_ids = $_SESSION['uploads'][ $_POST['upload_id'] ];
|
||||
|
||||
$query = '
|
||||
associate_images_to_categories(
|
||||
$image_ids,
|
||||
array($category_id)
|
||||
);
|
||||
|
||||
$query = '
|
||||
UPDATE '.IMAGES_TABLE.'
|
||||
SET level = '.$_POST['level'].'
|
||||
WHERE id IN ('.implode(', ', $image_ids).')
|
||||
;';
|
||||
pwg_query($query);
|
||||
pwg_query($query);
|
||||
|
||||
invalidate_user_cache();
|
||||
invalidate_user_cache();
|
||||
}
|
||||
}
|
||||
|
||||
$page['thumbnails'] = array();
|
||||
|
@ -237,7 +279,7 @@ SELECT
|
|||
FROM '.IMAGES_TABLE.'
|
||||
WHERE id = '.$image_id.'
|
||||
;';
|
||||
$image_infos = mysql_fetch_assoc(pwg_query($query));
|
||||
$image_infos = pwg_db_fetch_assoc(pwg_query($query));
|
||||
|
||||
$thumbnail['file'] = $image_infos['file'];
|
||||
|
||||
|
@ -297,7 +339,7 @@ SELECT
|
|||
FROM '.IMAGE_CATEGORY_TABLE.'
|
||||
WHERE category_id = '.$category_id.'
|
||||
;';
|
||||
list($count) = mysql_fetch_row(pwg_query($query));
|
||||
list($count) = pwg_db_fetch_row(pwg_query($query));
|
||||
$category_name = get_cat_display_name_from_id($category_id, 'admin.php?page=cat_modify&cat_id=');
|
||||
|
||||
// information
|
||||
|
@ -325,6 +367,10 @@ $template->assign(
|
|||
array(
|
||||
'F_ADD_ACTION'=> PHOTOS_ADD_BASE_URL,
|
||||
'uploadify_path' => $uploadify_path,
|
||||
'upload_max_filesize' => min(
|
||||
get_ini_size('upload_max_filesize'),
|
||||
get_ini_size('post_max_size')
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
|
@ -345,10 +391,12 @@ $upload_switch = $upload_modes[ ($upload_mode_index + 1) % 2 ];
|
|||
$template->assign(
|
||||
array(
|
||||
'upload_mode' => $upload_mode,
|
||||
'form_action' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_mode.'&processed=1',
|
||||
'switch_url' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_switch,
|
||||
'upload_id' => md5(rand()),
|
||||
'session_id' => session_id(),
|
||||
'pwg_token' => get_pwg_token(),
|
||||
'another_upload_link' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_mode,
|
||||
)
|
||||
);
|
||||
|
||||
|
@ -439,9 +487,10 @@ $template->assign(
|
|||
);
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | setup errors |
|
||||
// | setup errors/warnings |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// Errors
|
||||
$setup_errors = array();
|
||||
|
||||
$error_message = ready_for_upload_message();
|
||||
|
@ -450,12 +499,55 @@ if (!empty($error_message))
|
|||
array_push($setup_errors, $error_message);
|
||||
}
|
||||
|
||||
if (!function_exists('gd_info'))
|
||||
{
|
||||
array_push($setup_errors, l10n('GD library is missing'));
|
||||
}
|
||||
|
||||
$template->assign(
|
||||
array(
|
||||
'setup_errors'=> $setup_errors,
|
||||
array(
|
||||
'setup_errors'=> $setup_errors,
|
||||
)
|
||||
);
|
||||
|
||||
// Warnings
|
||||
if (isset($_GET['hide_warnings']))
|
||||
{
|
||||
$_SESSION['upload_hide_warnings'] = true;
|
||||
}
|
||||
|
||||
if (!isset($_SESSION['upload_hide_warnings']))
|
||||
{
|
||||
$setup_warnings = array();
|
||||
|
||||
if ($conf['use_exif'] and !function_exists('read_exif_data'))
|
||||
{
|
||||
array_push(
|
||||
$setup_warnings,
|
||||
l10n('Exif extension not available, admin should disable exif use')
|
||||
);
|
||||
}
|
||||
|
||||
if (get_ini_size('upload_max_filesize') > get_ini_size('post_max_size'))
|
||||
{
|
||||
array_push(
|
||||
$setup_warnings,
|
||||
sprintf(
|
||||
l10n('In your php.ini file, the upload_max_filesize (%sB) is bigger than post_max_size (%sB), you should change this setting'),
|
||||
get_ini_size('upload_max_filesize', false),
|
||||
get_ini_size('post_max_size', false)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$template->assign(
|
||||
array(
|
||||
'setup_warnings' => $setup_warnings,
|
||||
'hide_warnings_link' => PHOTOS_ADD_BASE_URL.'&upload_mode='.$upload_mode.'&hide_warnings=1'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | sending html code |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
|
|
@ -236,7 +236,11 @@ $template->assign(
|
|||
|
||||
'REGISTRATION_DATE' => format_date($row['date_available']),
|
||||
|
||||
'AUTHOR' => isset($_POST['author']) ? $_POST['author'] : @$row['author'],
|
||||
'AUTHOR' => htmlspecialchars(
|
||||
isset($_POST['author'])
|
||||
? stripslashes($_POST['author'])
|
||||
: @$row['author']
|
||||
),
|
||||
|
||||
'DESCRIPTION' =>
|
||||
htmlspecialchars( isset($_POST['description']) ?
|
||||
|
|
|
@ -66,6 +66,9 @@ if (isset($_GET['plugin']) and isset($_GET['revision']) and !is_adviser())
|
|||
{
|
||||
$plugins->perform_action('activate', $plugin_id);
|
||||
}
|
||||
|
||||
$template->delete_compiled_templates();
|
||||
|
||||
redirect($base_url.'&plugin='.$plugin_id.'&upgradestatus='.$upgrade_status);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,12 @@ if( !defined("PHPWG_ROOT_PATH") ) die ("Hacking attempt!");
|
|||
|
||||
$edit_user = build_user( $_GET['user_id'], false );
|
||||
|
||||
include_once(PHPWG_ROOT_PATH.'profile.php');
|
||||
if (!empty($_POST))
|
||||
{
|
||||
check_pwg_token();
|
||||
}
|
||||
|
||||
include_once(PHPWG_ROOT_PATH.'profile.php');
|
||||
|
||||
$errors = array();
|
||||
if ( !is_adviser() )
|
||||
|
|
|
@ -134,11 +134,9 @@ $available_order_by= array(
|
|||
array(l10n('Average rate'), 'average_rate DESC'),
|
||||
array(l10n('Number of rates'), 'nb_rates DESC'),
|
||||
array(l10n('Sum of rates'), 'sum_rates DESC'),
|
||||
array(l10n('Controversy'), 'std_rates DESC'),
|
||||
array(l10n('File name'), 'file DESC'),
|
||||
array(l10n('Creation date'), 'date_creation DESC'),
|
||||
array(l10n('Post date'), 'date_available DESC'),
|
||||
|
||||
);
|
||||
|
||||
for ($i=0; $i<count($available_order_by); $i++)
|
||||
|
@ -173,7 +171,12 @@ SELECT i.id,
|
|||
FROM '.RATE_TABLE.' AS r
|
||||
LEFT JOIN '.IMAGES_TABLE.' AS i ON r.element_id = i.id
|
||||
WHERE 1 = 1 ' . $page['user_filter'] . '
|
||||
GROUP BY r.element_id
|
||||
GROUP BY i.id,
|
||||
i.path,
|
||||
i.file,
|
||||
i.tn_ext,
|
||||
i.average_rate,
|
||||
r.element_id
|
||||
ORDER BY ' . $available_order_by[$order_by_index][1] .'
|
||||
LIMIT '.$elements_per_page.' OFFSET '.$start.'
|
||||
;';
|
||||
|
@ -252,4 +255,4 @@ ORDER BY date DESC;';
|
|||
// | sending html code |
|
||||
// +-----------------------------------------------------------------------+
|
||||
$template->assign_var_from_handle('ADMIN_CONTENT', 'rating');
|
||||
?>
|
||||
?>
|
|
@ -116,9 +116,11 @@ SELECT COUNT(id) AS count
|
|||
if ( ! isset($_POST['no_check']) )
|
||||
{
|
||||
$clf_url = $url.'create_listing_file.php';
|
||||
$clf_url.= '?action=test';
|
||||
$clf_url.= '&version='.PHPWG_VERSION;
|
||||
if (fetchRemote($clf_url, $result))
|
||||
$get_data = array(
|
||||
'action' => 'test',
|
||||
'version' => PHPWG_VERSION,
|
||||
);
|
||||
if (fetchRemote($clf_url, $result, $get_data))
|
||||
{
|
||||
$lines = explode("\r\n", $result);
|
||||
$first_line = strip_tags($lines[0]);
|
||||
|
|
|
@ -116,14 +116,17 @@ check_status(ACCESS_ADMINISTRATOR);
|
|||
$query = '
|
||||
SELECT
|
||||
date,
|
||||
HOUR(time) AS hour,
|
||||
'.pwg_db_get_hour('time').' AS hour,
|
||||
MAX(id) AS max_id,
|
||||
COUNT(*) AS nb_pages
|
||||
FROM '.HISTORY_TABLE.'
|
||||
WHERE summarized = \'false\'
|
||||
GROUP BY
|
||||
date,
|
||||
hour
|
||||
ORDER BY
|
||||
date ASC,
|
||||
HOUR(time) ASC
|
||||
hour ASC
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
|
||||
|
|
|
@ -139,19 +139,16 @@ a:hover, a:active { color: #d54e21; border-bottom: 1px dotted #d54e21; cursor: p
|
|||
.content .navigationBar {color:#999;}
|
||||
ul.actions, .content form#waiting {text-align:center;}
|
||||
.header_msgs { background:transparent url(images/header_msgs-bg.gif) repeat scroll right top;
|
||||
border:0; color:#ccc; font-size:24px; height:30px; left:0; margin:0; padding:10px 0 0; position:absolute;
|
||||
text-align:center; top:0; width:100%; z-index:99; }
|
||||
border:0; color:#ccc; font-size:24px; height:30px; margin:0; padding:10px 0 0;
|
||||
text-align:center; width:100%; }
|
||||
#content.content div.comment a.illustration{ margin-right: 30px;}
|
||||
/* tabsheets are often used in admin pages => No specific css files */
|
||||
.tabsheet {
|
||||
display: table;
|
||||
margin: 0;
|
||||
padding: 0 0 0 35px;
|
||||
list-style-type:none;
|
||||
list-style-image:none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tabsheet {
|
||||
background-color:#f9f9f9; border:1px solid #f9f9f9; border-bottom:1px solid #aaa; display:table;
|
||||
font-family:verdana,arial,helvetica,sans-serif; font-size:8px;
|
||||
list-style-type:none; list-style-image:none; padding: 0; position:relative; text-decoration:none;
|
||||
top:-2px; white-space:nowrap; margin: 0 0 0 -6px; padding-left:10px;
|
||||
width:100%; }
|
||||
.tabsheet li { background:#f1f1f1; float:left; margin:0 6px 0 0; overflow:hidden; text-align:right; border:1px solid #aaa; border-bottom:none; position:relative; top:11px; -moz-border-radius-topleft:5px; -moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px; -webkit-border-top-right-radius:5px;}
|
||||
.tabsheet a {
|
||||
display:block; font-size:11px; border:0;
|
||||
|
@ -169,18 +166,17 @@ margin-top:4px; padding-bottom:3px; padding-top:3px; top:1px;
|
|||
.tabsheet a span { display:block; font-size:10px; margin-right:2px; padding:0 3px 0 1px; }
|
||||
|
||||
.sort { clear: none; }
|
||||
#214ug { margin-left:248px; font-size:12px; }
|
||||
#debug { margin-left:248px; font-size:12px; }
|
||||
/* menubar is on all admin pages => No specific css file */
|
||||
#menubar {
|
||||
display:inline; float:left; left:0; margin: 10px 0 0 10px; min-height:475px; height:475px; /* should be 477 */
|
||||
display:inline; float:left; left:0; margin: 10px 0 0 10px;
|
||||
padding:0; width:207px; z-index:99; text-align: left; }
|
||||
#menubar ul.scroll { height:163px; overflow-y:auto;
|
||||
#menubar ul.scroll { overflow-y:auto;
|
||||
/* Only IE family supports colored scrollbar */
|
||||
scrollbar-face-color: #ddd; scrollbar-shadow-color: #bbb; scrollbar-highlight-color: #fff;
|
||||
scrollbar-3dlight-color: #d6d6d6; scrollbar-darkshadow-color: #ccc; scrollbar-track-color: #eee;
|
||||
scrollbar-arrow-color: #0cccc; }
|
||||
|
||||
#menubar dd { margin: 0; padding: 0; height:232px; }
|
||||
#menubar dd { margin: 0; padding: 0;}
|
||||
#menubar dl { width: 207px; border:0; margin: 0; padding: 0; display: block; min-height:35px; border:1px solid #ddd; background-color:#f1f1f1; border-left:1px solid #aaa; border-right:1px solid #aaa;}
|
||||
#menubar dl.first {border-top:1px solid #aaa;}
|
||||
#menubar dl.last {border-bottom:1px solid #aaa;}
|
||||
|
@ -193,7 +189,6 @@ position:relative; padding: 5px 1px 4px 5px; font-size: 13px; color: #777; }
|
|||
#menubar li:hover {background-color:#dbe8f3;}
|
||||
#menubar ul { color: #ccc; margin:0; line-height: 25px;
|
||||
list-style-type: none; list-style-position: inside; padding: 0; }
|
||||
|
||||
#adminHome {background-color:#ddd;}
|
||||
#adminHome:hover {background-color:#d0d0d0;}
|
||||
|
||||
|
@ -252,7 +247,6 @@ position:relative; z-index: 50;}
|
|||
display:block; height:85px; left:225px; position:relative; top:-42px; width:313px; z-index:99; padding:0;}
|
||||
.bigbutton input:hover { cursor:pointer; background:transparent url(images/transparent.gif) repeat scroll left top; border:0; padding:0;}
|
||||
/* hacks */
|
||||
html>body #menubar {min-height:477px; height:477px;} /* IE 7 and modern browsers */
|
||||
* html[lang="en"] body .content h2 , *+html[lang="en"] body .content h2 { text-transform:capitalize; } /* IE */
|
||||
*+html .bigtext { left: 70px; }
|
||||
*+html .bigbutton input, * html .bigbutton input { left:0px; position:relative; top:-40px; }
|
||||
|
|
|
@ -607,7 +607,7 @@ ul.holder li.bit-box-focus a.closebutton, ul.holder li.bit-box-focus a.closebutt
|
|||
}
|
||||
|
||||
html, body {height:100%; margin:0; padding:0;}
|
||||
#the_page {min-height:100%; position:relative; padding:0;margin:0;}
|
||||
#the_page {min-height:100%; position:absolute; width:100%; padding:0;margin:0;}
|
||||
#pwgMain {padding:10px;padding-bottom:60px;}
|
||||
|
||||
#footer {
|
||||
|
@ -756,6 +756,7 @@ html, body {height:100%; margin:0; padding:0;}
|
|||
/* Set the width of the menubar for the galery */
|
||||
#menubar {
|
||||
width: 18em;
|
||||
margin: 10px 0 50px 10px !important;
|
||||
}
|
||||
.content {
|
||||
margin-left: 20em; /* = #menubar width + 2em */
|
||||
|
@ -822,14 +823,14 @@ h2:lang(en) { text-transform:capitalize; }
|
|||
/**
|
||||
* Informations box in administration
|
||||
*/
|
||||
.infos, .errors {
|
||||
.infos, .errors, .warnings {
|
||||
text-align: left;
|
||||
margin: 5px;
|
||||
padding: 10px 50px 10px 10px;
|
||||
font-weight:bold;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 5px 5px;
|
||||
padding:5px 70px 0pt 30px;
|
||||
padding:5px 70px 0pt 53px;
|
||||
min-height: 54px;
|
||||
}
|
||||
|
||||
|
@ -845,7 +846,13 @@ h2:lang(en) { text-transform:capitalize; }
|
|||
background-image: url(icon/errors.png);
|
||||
}
|
||||
|
||||
.infos li, .errors li { list-style-type:square; }
|
||||
.warnings {
|
||||
color: #ee8800;
|
||||
background-color:#ffdd99;
|
||||
background-image: url(icon/warnings.png);
|
||||
}
|
||||
|
||||
.infos li, .errors li, .warnings li { list-style-type:square; }
|
||||
.infos .submit {margin-left:30px;}
|
||||
|
||||
.checkActions {text-align:left;padding:0;margin:0;}
|
||||
|
|
4
admin/themes/default/fix-ie7.css
Normal file
4
admin/themes/default/fix-ie7.css
Normal file
|
@ -0,0 +1,4 @@
|
|||
/* fix IE7 footer */
|
||||
#the_page { min-height:100%; position:relative; padding:0; margin:0; }
|
||||
#menubar { margin: 0; }
|
||||
#footer { left: 0; }
|
BIN
admin/themes/default/icon/warnings.png
Normal file
BIN
admin/themes/default/icon/warnings.png
Normal file
Binary file not shown.
After (image error) Size: 2.2 KiB |
|
@ -1,3 +1,7 @@
|
|||
<!--[if lt IE 7]>
|
||||
<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/default/fix-ie5-ie6.css">
|
||||
<![endif]-->
|
||||
|
||||
<!--[if IE 7]>
|
||||
<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/default/fix-ie7.css">
|
||||
<![endif]-->
|
||||
|
|
|
@ -7,6 +7,7 @@ jQuery().ready(function(){ldelim}
|
|||
jQuery('#menubar').accordion({ldelim}
|
||||
header: "dt.rdion",
|
||||
event: "click",
|
||||
autoHeight: false,
|
||||
active: {$ACTIVE_MENU}
|
||||
});
|
||||
});
|
||||
|
@ -19,7 +20,9 @@ jQuery().ready(function(){ldelim}
|
|||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_ADD_PHOTOS}">{'Add'|@translate}</a></li>
|
||||
{if $ENABLE_SYNCHRONIZATION}
|
||||
<li><a href="{$U_WAITING}">{'Waiting'|@translate}</a></li>
|
||||
{/if}
|
||||
<li><a href="{$U_RATING}">{'Rating'|@translate}</a></li>
|
||||
<li><a href="{$U_TAGS}">{'Tags'|@translate}</a></li>
|
||||
<li><a href="{$U_CADDIE}">{'Caddie'|@translate}</a></li>
|
||||
|
@ -68,10 +71,14 @@ jQuery().ready(function(){ldelim}
|
|||
<dt class="rdion"><span>{'Tools'|@translate} </span></dt>
|
||||
<dd>
|
||||
<ul>
|
||||
{if $ENABLE_SYNCHRONIZATION}
|
||||
<li><a href="{$U_CAT_UPDATE}">{'Synchronize'|@translate}</a></li>
|
||||
<li><a href="{$U_SITE_MANAGER}">{'Site manager'|@translate}</a></li>
|
||||
{/if}
|
||||
<li><a href="{$U_HISTORY_STAT}">{'History'|@translate}</a></li>
|
||||
{if $ENABLE_SYNCHRONIZATION}
|
||||
<li><a href="{$U_THUMBNAILS}">{'Thumbnails'|@translate}</a></li>
|
||||
{/if}
|
||||
<li><a href="{$U_MAINTENANCE}">{'Maintenance'|@translate}</a></li>
|
||||
<li><a href="{$U_PENDING_COMMENTS}">{'Pending Comments'|@translate}</a></li>
|
||||
</ul>
|
||||
|
@ -82,7 +89,7 @@ jQuery().ready(function(){ldelim}
|
|||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$U_CONFIG_GENERAL}">{'Options'|@translate}</a></li>
|
||||
<li><a href="{$U_CONFIG_MENUBAR}">{'Menu'|@translate}</a></li>
|
||||
<li><a href="{$U_CONFIG_MENUBAR}">{'Menu Management'|@translate}</a></li>
|
||||
<li><a href="{$U_CONFIG_EXTENTS}">{'Templates'|@translate}</a></li>
|
||||
<li><a href="{$U_CONFIG_LANGUAGES}">{'Languages'|@translate}</a></li>
|
||||
<li><a href="{$U_CONFIG_THEMES}">{'Themes'|@translate}</a></li>
|
||||
|
@ -91,11 +98,11 @@ jQuery().ready(function(){ldelim}
|
|||
</dl>
|
||||
</div> <!-- menubar -->
|
||||
|
||||
{if isset($TABSHEET)}
|
||||
{$TABSHEET}
|
||||
{/if}
|
||||
<div id="content" class="content">
|
||||
|
||||
<div id="content" class="content{if isset($TABSHEET)} with-tabs{/if}">
|
||||
{if isset($TABSHEET)}
|
||||
{$TABSHEET}
|
||||
{/if}
|
||||
{if isset($U_HELP)}
|
||||
<ul class="HelpActions">
|
||||
<li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/help.png" class="button" alt="(?)"></a></li>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
filter_hide: true,
|
||||
firstselected: true,
|
||||
filter_selected: true,
|
||||
maxitems: 10,
|
||||
maxitems: 100,
|
||||
newel: true
|
||||
});
|
||||
});
|
||||
|
@ -85,7 +85,9 @@
|
|||
{if isset($show_delete_form) }
|
||||
<fieldset>
|
||||
<legend>{'Deletions'|@translate}</legend>
|
||||
<p style="font-style:italic">{'Note: Only deletes photos added with pLoader'|@translate}</p>
|
||||
{if $ENABLE_SYNCHRONIZATION}
|
||||
<p style="font-style:italic">{'Note: photo deletion does not apply to photos added by synchronization. For photos added by synchronization, remove them from the filesystem and then perform another synchronization.'|@translate}</p>
|
||||
{/if}
|
||||
<p>
|
||||
{'target'|@translate}
|
||||
<label><input type="radio" name="target_deletion" value="all"> {'all'|@translate}</label>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
filter_hide: true,
|
||||
firstselected: true,
|
||||
filter_selected: true,
|
||||
maxitems: 10,
|
||||
maxitems: 100,
|
||||
newel: true
|
||||
});
|
||||
});
|
||||
|
|
|
@ -61,5 +61,15 @@
|
|||
</script>
|
||||
{/literal}
|
||||
|
||||
{if not $ENABLE_SYNCHRONIZATION}
|
||||
{literal}
|
||||
<script type='text/javascript'>
|
||||
$(document).ready(function() {
|
||||
$("#helpSynchro").hide();
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
{/if}
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -39,6 +39,14 @@
|
|||
|
||||
<div id="the_page">
|
||||
|
||||
{if not empty($header_msgs)}
|
||||
<div class="header_msgs">
|
||||
{foreach from=$header_msgs item=elt}
|
||||
{$elt}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div id="pwgHead">
|
||||
<h1>
|
||||
<a href="{$U_RETURN}" title="{'Visit Gallery'|@translate}">
|
||||
|
@ -58,14 +66,6 @@
|
|||
|
||||
<div style="clear:both;"></div>
|
||||
|
||||
{if not empty($header_msgs)}
|
||||
<div class="header_msgs">
|
||||
{foreach from=$header_msgs item=elt}
|
||||
{$elt}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div id="theHeader">{*$PAGE_BANNER*}</div>
|
||||
|
||||
{if not empty($header_notes)}
|
||||
|
|
|
@ -12,6 +12,10 @@
|
|||
<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/{$theme.id}/theme.css">
|
||||
{/foreach}
|
||||
|
||||
<!--[if IE 7]>
|
||||
<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/default/fix-ie7.css">
|
||||
<![endif]-->
|
||||
|
||||
<script type="text/javascript" src="themes/default/js/jquery.packed.js"></script>
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
|
|
|
@ -16,6 +16,7 @@ jQuery().ready(function(){ldelim}
|
|||
<dt>{'Piwigo version'|@translate}</dt>
|
||||
<dd>
|
||||
<ul>
|
||||
<li><a href="{$PHPWG_URL}" class="externalLink">Piwigo</a> {$PWG_VERSION}</li>
|
||||
<li><a href="{$U_CHECK_UPGRADE}">{'Check for upgrade'|@translate}</a></li>
|
||||
{if isset($SUBSCRIBE_BASE_URL)}
|
||||
<li><a href="{$SUBSCRIBE_BASE_URL}{$EMAIL}" class="externalLink cluetip" title="{'Piwigo Announcements Newsletter'|@translate}|{'Keep in touch with Piwigo project, subscribe to Piwigo Announcement Newsletter. You will receive emails when a new release is available (sometimes including a security bug fix, it\'s important to know and upgrade) and when major events happen to the project. Only a few emails a year.'|@translate|htmlspecialchars|nl2br}">{'Subscribe %s to Piwigo Announcements Newsletter'|@translate|@sprintf:$EMAIL}</a></li>
|
||||
|
@ -59,7 +60,7 @@ jQuery().ready(function(){ldelim}
|
|||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
{if $ENABLE_SYNCHRONIZATION}
|
||||
<form name="QuickSynchro" action="{$U_CAT_UPDATE}" method="post" id="QuickSynchro" style="display: block; text-align:right;">
|
||||
<div>
|
||||
<input type="hidden" name="sync" value="files" checked="checked">
|
||||
|
@ -75,3 +76,4 @@ jQuery().ready(function(){ldelim}
|
|||
<input type="submit" value="" name="submit">
|
||||
</div>
|
||||
</form>
|
||||
{/if}
|
|
@ -15,11 +15,11 @@
|
|||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="{$U_MAINT_HISTORY_DETAIL}" onclick="return confirm('{'Purge history detail'|@translate}');" {$TAG_INPUT_ENABLED}>{'Purge history detail'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_HISTORY_SUMMARY}" onclick="return confirm('{'Purge history summary'|@translate}');" {$TAG_INPUT_ENABLED}>{'Purge history summary'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_HISTORY_DETAIL}" onclick="return confirm('{'Purge history detail'|@translate|@escape:'javascript'}');" {$TAG_INPUT_ENABLED}>{'Purge history detail'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_HISTORY_SUMMARY}" onclick="return confirm('{'Purge history summary'|@translate|@escape:'javascript'}');" {$TAG_INPUT_ENABLED}>{'Purge history summary'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_SESSIONS}" {$TAG_INPUT_ENABLED}>{'Purge sessions'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_FEEDS}" {$TAG_INPUT_ENABLED}>{'Purge never used notification feeds'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_SEARCH}"onclick="return confirm('{'Purge search history'|@translate}');" {$TAG_INPUT_ENABLED}>{'Purge search history'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_SEARCH}"onclick="return confirm('{'Purge search history'|@translate|@escape:'javascript'}');" {$TAG_INPUT_ENABLED}>{'Purge search history'|@translate}</a></li>
|
||||
<li><a href="{$U_MAINT_COMPILED_TEMPLATES}" {$TAG_INPUT_ENABLED}>{'Purge compiled templates'|@translate}</a></li>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
</script>
|
||||
|
||||
<div class="titrePage">
|
||||
<h2>Menubar</h2>
|
||||
<h2>{'Menu Management'|translate}</h2>
|
||||
</div>
|
||||
|
||||
<form id="menuOrdering" action="{$F_ACTION}" method="post">
|
||||
|
|
|
@ -49,6 +49,26 @@ jQuery(document).ready(function(){
|
|||
|
||||
}
|
||||
|
||||
function humanReadableFileSize(bytes) {
|
||||
var byteSize = Math.round(bytes / 1024 * 100) * .01;
|
||||
var suffix = 'KB';
|
||||
|
||||
if (byteSize > 1000) {
|
||||
byteSize = Math.round(byteSize *.001 * 100) * .01;
|
||||
suffix = 'MB';
|
||||
}
|
||||
|
||||
var sizeParts = byteSize.toString().split('.');
|
||||
if (sizeParts.length > 1) {
|
||||
byteSize = sizeParts[0] + '.' + sizeParts[1].substr(0,2);
|
||||
}
|
||||
else {
|
||||
byteSize = sizeParts[0];
|
||||
}
|
||||
|
||||
return byteSize+suffix;
|
||||
}
|
||||
|
||||
if ($("select[name=category] option").length == 0) {
|
||||
$('input[name=category_type][value=existing]').attr('disabled', true);
|
||||
$('input[name=category_type]').attr('checked', false);
|
||||
|
@ -90,6 +110,7 @@ var upload_id = '{$upload_id}';
|
|||
var session_id = '{$session_id}';
|
||||
var pwg_token = '{$pwg_token}';
|
||||
var buttonText = 'Browse';
|
||||
var sizeLimit = {$upload_max_filesize};
|
||||
|
||||
{literal}
|
||||
jQuery("#uploadify").uploadify({
|
||||
|
@ -106,8 +127,9 @@ var buttonText = 'Browse';
|
|||
'displayData' : 'speed',
|
||||
'buttonText' : buttonText,
|
||||
'multi' : true,
|
||||
'fileDesc' : 'Photo files (*.jpg,*.jpeg)',
|
||||
'fileExt' : '*.jpg;*.JPG;*.jpeg;*.JPEG',
|
||||
'fileDesc' : 'Photo files (*.jpg,*.jpeg,*.png)',
|
||||
'fileExt' : '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG',
|
||||
'sizeLimit' : sizeLimit,
|
||||
'onAllComplete' : function(event, data) {
|
||||
if (data.errors) {
|
||||
return false;
|
||||
|
@ -118,18 +140,23 @@ var buttonText = 'Browse';
|
|||
},
|
||||
onError: function (event, queueID ,fileObj, errorObj) {
|
||||
var msg;
|
||||
if (errorObj.status == 404) {
|
||||
alert('Could not find upload script.');
|
||||
msg = 'Could not find upload script.';
|
||||
}
|
||||
else if (errorObj.type === "HTTP") {
|
||||
msg = errorObj.type+": "+errorObj.status;
|
||||
|
||||
if (errorObj.type === "HTTP") {
|
||||
if (errorObj.info === 404) {
|
||||
alert('Could not find upload script.');
|
||||
msg = 'Could not find upload script.';
|
||||
}
|
||||
else {
|
||||
msg = errorObj.type+": "+errorObj.info;
|
||||
}
|
||||
}
|
||||
else if (errorObj.type ==="File Size") {
|
||||
msg = fileObj.name+'<br>'+errorObj.type+' Limit: '+Math.round(errorObj.sizeLimit/1024)+'KB';
|
||||
msg = "File too big";
|
||||
msg = msg + '<br>'+fileObj.name+': '+humanReadableFileSize(fileObj.size);
|
||||
msg = msg + '<br>Limit: '+humanReadableFileSize(sizeLimit);
|
||||
}
|
||||
else {
|
||||
msg = errorObj.type+": "+errorObj.text;
|
||||
msg = errorObj.type+": "+errorObj.info;
|
||||
}
|
||||
|
||||
$.jGrowl(
|
||||
|
@ -216,6 +243,18 @@ var buttonText = 'Browse';
|
|||
</div>
|
||||
{else}
|
||||
|
||||
{if count($setup_warnings) > 0}
|
||||
<div class="warnings">
|
||||
<ul>
|
||||
{foreach from=$setup_warnings item=warning}
|
||||
<li>{$warning}</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<div class="hideButton" style="text-align:center"><a href="{$hide_warnings_link}">{'Hide'|@translate}</a></div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
{if !empty($thumbnails)}
|
||||
<fieldset>
|
||||
<legend>{'Uploaded Photos'|@translate}</legend>
|
||||
|
@ -228,7 +267,7 @@ var buttonText = 'Browse';
|
|||
</div>
|
||||
<p id="batchLink"><a href="{$batch_link}">{$batch_label}</a></p>
|
||||
</fieldset>
|
||||
<p><a href="">{'Add another set of photos'|@translate}</a></p>
|
||||
<p><a href="{$another_upload_link}">{'Add another set of photos'|@translate}</a></p>
|
||||
{else}
|
||||
|
||||
<div id="formErrors" class="errors" style="display:none">
|
||||
|
@ -239,7 +278,7 @@ var buttonText = 'Browse';
|
|||
<div class="hideButton" style="text-align:center"><a href="#" id="hideErrors">{'Hide'|@translate}</a></div>
|
||||
</div>
|
||||
|
||||
<form id="uploadForm" enctype="multipart/form-data" method="post" action="{$F_ACTION}" class="properties">
|
||||
<form id="uploadForm" enctype="multipart/form-data" method="post" action="{$form_action}" class="properties">
|
||||
<fieldset>
|
||||
<legend>{'Drop into category'|@translate}</legend>
|
||||
{if $upload_mode eq 'multiple'}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
filter_hide: true,
|
||||
firstselected: true,
|
||||
filter_selected: true,
|
||||
maxitems: 10,
|
||||
maxitems: 100,
|
||||
newel: true
|
||||
});
|
||||
});
|
||||
|
|
|
@ -103,6 +103,7 @@
|
|||
</fieldset>
|
||||
|
||||
<p class="bottomButtons">
|
||||
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
|
||||
<input class="submit" type="submit" name="validate" value="{'Submit'|@translate}">
|
||||
<input class="submit" type="reset" name="reset" value="{'Reset'|@translate}">
|
||||
</p>
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
</fieldset>
|
||||
|
||||
<fieldset id="syncSimulate">
|
||||
<legend></legend>
|
||||
<legend>{'[Simulation]'|@translate}</legend>
|
||||
<ul><li><label><input type="checkbox" name="simulate" value="1" checked="checked" {$TAG_INPUT_ENABLED}> {'only perform a simulation (no change in database will be made)'|@translate}</label></li></ul>
|
||||
</fieldset>
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
</label>
|
||||
|
||||
<label>
|
||||
{'group'|@translate}
|
||||
{'Group'|@translate}
|
||||
{html_options name=group options=$group_options selected=$group_selected}
|
||||
</label>
|
||||
|
||||
|
|
|
@ -121,24 +121,17 @@ a:hover, a:active { color: #f33; border-bottom: 1px solid #FF3363; cursor: point
|
|||
ul.actions, .content form#waiting {text-align:center;}
|
||||
|
||||
.header_msgs { background:transparent url(images/header_msgs-bg.gif) repeat scroll right top;
|
||||
border:0; color:#333; font-size:24px; height:30px; left:0; margin:0; padding:10px 0 0; position:absolute;
|
||||
text-align:center; top:0; width:100%; z-index:99; }
|
||||
border:0; color:#333; font-size:24px; height:30px; margin:0; padding:10px 0 0;
|
||||
text-align:center; width:100%; }
|
||||
#content.content div.comment a.illustration{ margin-right: 30px;}
|
||||
/* content with tabs */
|
||||
.with-tabs {
|
||||
border-top: 1px solid #ff3363;
|
||||
}
|
||||
/* tabsheets are often used in admin pages => No specific css files */
|
||||
.tabsheet {
|
||||
display: table;
|
||||
margin: 0 0 -15px 0;
|
||||
padding: 0 0 0 20px;
|
||||
list-style-type:none;
|
||||
list-style-image:none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.tabsheet li {
|
||||
background:#222222; float:left; margin:0 6px 0 0; overflow:hidden; text-align:right; border:1px solid #ff3363; border-bottom:none; position:relative; top:11px; -moz-border-radius-topleft:5px; -moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px; -webkit-border-top-right-radius:5px;}
|
||||
background-color:#111111; border:0px none; border-bottom:1px solid #ff3363; display:table;
|
||||
font-family:verdana,arial,helvetica,sans-serif; font-size:8px;
|
||||
list-style-type:none; list-style-image:none; padding: 0; position:relative; text-decoration:none;
|
||||
top:-2px; white-space:nowrap; margin: 0 0 0 -5px; padding-left:10px;
|
||||
width:100%; }
|
||||
.tabsheet li { background:#222222; float:left; margin:0 6px 0 0; overflow:hidden; text-align:right; border:1px solid #ff3363; border-bottom:none; position:relative; top:11px; -moz-border-radius-topleft:5px; -moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px; -webkit-border-top-right-radius:5px;}
|
||||
.tabsheet a {
|
||||
outline:none; color:#666; display:block; font-size:11px; border:0;
|
||||
font-weight:bold; overflow:hidden; padding:6px;
|
||||
|
@ -156,29 +149,29 @@ margin-top:4px; padding-bottom:3px; padding-top:3px; top:1px;
|
|||
/* menubar is on all admin pages => No specific css file */
|
||||
#menubar {
|
||||
background:transparent url(images/menuBoxBottom_new.png) no-repeat scroll left bottom;
|
||||
border:0; display:inline; float:left; left:0; margin: 10px 0 0 10px; min-height:522px; height:522px; /* should be 477 */
|
||||
border:0; display:inline; float:left; left:0; margin: 10px 0 0 10px;
|
||||
padding:0; width:230px; z-index:99; text-align: left; }
|
||||
#menubar ul.scroll { height:163px; overflow-y:auto;
|
||||
#menubar ul.scroll { overflow-y:auto;
|
||||
/* Only IE family supports colored scrollbar */
|
||||
scrollbar-face-color: #222; scrollbar-shadow-color: #444; scrollbar-highlight-color: #000;
|
||||
scrollbar-3dlight-color: #292929; scrollbar-darkshadow-color: #333; scrollbar-track-color: #111;
|
||||
scrollbar-arrow-color: #ff3333; }
|
||||
|
||||
#menubar dd {
|
||||
background: transparent url(images/menubar-detail.png) repeat-y top left;
|
||||
margin: 10px 0 0 0; padding: 0; height:232px; }
|
||||
margin: 0; padding: 0 0 10px 0; }
|
||||
#menubar dl {
|
||||
background:transparent url(images/menuBoxTop_new.png) no-repeat scroll left top;
|
||||
width: 207px; border:0; margin: 0; padding: 0; display: block; min-height:35px; }
|
||||
#menubar dl.first {
|
||||
background:transparent url(images/menubar-top.png) no-repeat scroll left 1px; }
|
||||
#menubar dl.last { padding: 0 0 24px 0;}
|
||||
#menubar dt { margin: 0; display: block; background: none; left:10px; font-weight:bold;
|
||||
position:relative; padding: 5px 1px 4px 5px; top:-10px; font-size: 13px; color: #666; outline:none;}
|
||||
position:relative; padding: 5px 1px 4px 5px; top:-8px; font-size: 13px; color: #666; outline:none;}
|
||||
#menubar dt span { background-color: #111; cursor:pointer; }
|
||||
#menubar li { margin: 0 0 0 6px; }
|
||||
#menubar li.external { list-style-image:url(images/external_inactive.png); padding:10px 0px 0pt 10px; }
|
||||
#menubar li.external:hover { list-style-image:url(images/external_active.png); }
|
||||
#menubar ul { color: #333; margin:0 0 0 9px; line-height: 16px;
|
||||
#menubar ul { color: #333; margin:0 9px 0 9px; line-height: 16px;
|
||||
list-style-type: square; list-style-position: inside; padding: 0; }
|
||||
/* jQuery tooltips */
|
||||
.cluetip-default #cluetip-outer { border-color: #666; color: #666; background-color: #222; }
|
||||
|
@ -239,7 +232,6 @@ position:relative; z-index: 50;}
|
|||
display:block; height:85px; left:225px; position:relative; top:-42px; width:313px; z-index:99; padding:0;}
|
||||
.bigbutton input:hover { cursor:pointer; background:transparent url(images/transparent.gif) repeat scroll left top; border:0; padding:0;}
|
||||
/* hacks */
|
||||
html>body #menubar {min-height:522px; height:522px;} /* IE 7 and modern browsers */
|
||||
* html[lang="en"] body .content h2 , *+html[lang="en"] body .content h2 { text-transform:capitalize; } /* IE */
|
||||
*+html .bigtext { left: 70px; }
|
||||
*+html .bigbutton input, * html .bigbutton input { left:0px; position:relative; top:-40px; }
|
||||
|
|
|
@ -183,7 +183,7 @@ $thumbnalized = array();
|
|||
// what is the directory to search in ?
|
||||
$query = '
|
||||
SELECT galleries_url FROM '.SITES_TABLE.'
|
||||
WHERE galleries_url NOT LIKE "http://%"
|
||||
WHERE galleries_url NOT LIKE \'http://%\'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
while ( $row=pwg_db_fetch_assoc($result) )
|
||||
|
|
56
comments.php
56
comments.php
|
@ -104,8 +104,16 @@ $page['where_clauses'] = array();
|
|||
// which category to filter on ?
|
||||
if (isset($_GET['cat']) and 0 != $_GET['cat'])
|
||||
{
|
||||
check_input_parameter('cat', $_GET, false, PATTERN_ID);
|
||||
|
||||
$category_ids = get_subcat_ids(array($_GET['cat']));
|
||||
if (empty($category_id))
|
||||
{
|
||||
$category_ids = array(-1);
|
||||
}
|
||||
|
||||
$page['where_clauses'][] =
|
||||
'category_id IN ('.implode(',', get_subcat_ids(array($_GET['cat']))).')';
|
||||
'category_id IN ('.implode(',', $category_ids).')';
|
||||
}
|
||||
|
||||
// search a particular author
|
||||
|
@ -359,14 +367,13 @@ $element_ids = array();
|
|||
$category_ids = array();
|
||||
|
||||
$query = '
|
||||
SELECT com.id AS comment_id
|
||||
, com.image_id
|
||||
, ic.category_id
|
||||
, com.author
|
||||
, com.author_id
|
||||
, com.date
|
||||
, com.content
|
||||
, com.validated
|
||||
SELECT com.id AS comment_id,
|
||||
com.image_id,
|
||||
com.author,
|
||||
com.author_id,
|
||||
com.date,
|
||||
com.content,
|
||||
com.validated
|
||||
FROM '.IMAGE_CATEGORY_TABLE.' AS ic
|
||||
INNER JOIN '.COMMENTS_TABLE.' AS com
|
||||
ON ic.image_id = com.image_id
|
||||
|
@ -374,7 +381,13 @@ SELECT com.id AS comment_id
|
|||
ON u.'.$conf['user_fields']['id'].' = com.author_id
|
||||
WHERE '.implode('
|
||||
AND ', $page['where_clauses']).'
|
||||
GROUP BY comment_id
|
||||
GROUP BY comment_id,
|
||||
com.image_id,
|
||||
com.author,
|
||||
com.author_id,
|
||||
com.date,
|
||||
com.content,
|
||||
com.validated
|
||||
ORDER BY '.$page['sort_by'].' '.$page['sort_order'];
|
||||
if ('all' != $page['items_number'])
|
||||
{
|
||||
|
@ -388,7 +401,6 @@ while ($row = pwg_db_fetch_assoc($result))
|
|||
{
|
||||
array_push($comments, $row);
|
||||
array_push($element_ids, $row['image_id']);
|
||||
array_push($category_ids, $row['category_id']);
|
||||
}
|
||||
|
||||
if (count($comments) > 0)
|
||||
|
@ -408,11 +420,23 @@ SELECT id, name, file, path, tn_ext
|
|||
|
||||
// retrieving category informations
|
||||
$query = '
|
||||
SELECT id, name, permalink, uppercats
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE id IN ('.implode(',', $category_ids).')
|
||||
SELECT c.id, name, permalink, uppercats, com.id as comment_id
|
||||
FROM '.CATEGORIES_TABLE.' AS c
|
||||
LEFT JOIN '.IMAGE_CATEGORY_TABLE.' AS ic
|
||||
ON c.id=ic.category_id
|
||||
LEFT JOIN '.COMMENTS_TABLE.' AS com
|
||||
ON ic.image_id=com.image_id
|
||||
'.get_sql_condition_FandF
|
||||
(
|
||||
array
|
||||
(
|
||||
'forbidden_categories' => 'c.id',
|
||||
'visible_categories' => 'c.id'
|
||||
),
|
||||
'WHERE'
|
||||
).'
|
||||
;';
|
||||
$categories = hash_from_query($query, 'id');
|
||||
$categories = hash_from_query($query, 'comment_id');
|
||||
|
||||
foreach ($comments as $comment)
|
||||
{
|
||||
|
@ -431,7 +455,7 @@ SELECT id, name, permalink, uppercats
|
|||
// link to the full size picture
|
||||
$url = make_picture_url(
|
||||
array(
|
||||
'category' => $categories[ $comment['category_id'] ],
|
||||
'category' => $categories[ $comment['comment_id'] ],
|
||||
'image_id' => $comment['image_id'],
|
||||
'image_file' => $elements[$comment['image_id']]['file'],
|
||||
)
|
||||
|
|
16
feed.php
16
feed.php
|
@ -36,11 +36,9 @@ include_once(PHPWG_ROOT_PATH.'include/functions_notification.inc.php');
|
|||
* @param string mysql datetime format
|
||||
* @return int timestamp
|
||||
*/
|
||||
function mysqldt_to_ts($mysqldt)
|
||||
function datetime_to_ts($datetime)
|
||||
{
|
||||
$date = explode_mysqldt($mysqldt);
|
||||
return mktime($date['hour'], $date['minute'], $date['second'],
|
||||
$date['month'], $date['day'], $date['year']);
|
||||
return strtotime($datetime);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -110,7 +108,7 @@ $rss->encoding=get_pwg_charset();
|
|||
$rss->title = $conf['gallery_title'];
|
||||
$rss->title.= ' (as '.stripslashes($user['username']).')';
|
||||
|
||||
$rss->link = $conf['gallery_url'];
|
||||
$rss->link = get_gallery_home_url();
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Feed creation |
|
||||
|
@ -125,7 +123,7 @@ if (!$image_only)
|
|||
{
|
||||
$item = new FeedItem();
|
||||
$item->title = sprintf(l10n('New on %s'), format_date($dbnow) );
|
||||
$item->link = $conf['gallery_url'];
|
||||
$item->link = get_gallery_home_url();
|
||||
|
||||
// content creation
|
||||
$item->description = '<ul>';
|
||||
|
@ -136,7 +134,7 @@ if (!$image_only)
|
|||
$item->description.= '</ul>';
|
||||
$item->descriptionHtmlSyndicated = true;
|
||||
|
||||
$item->date = mysqldt_to_ts($dbnow);
|
||||
$item->date = ts_to_iso8601(datetime_to_ts($dbnow));
|
||||
$item->author = $conf['rss_feed_author'];
|
||||
$item->guid= sprintf('%s', $dbnow);;
|
||||
|
||||
|
@ -154,7 +152,7 @@ UPDATE '.USER_FEED_TABLE.'
|
|||
if ( !empty($feed_id) and empty($news) )
|
||||
{// update the last check from time to time to avoid deletion by maintenance tasks
|
||||
if ( !isset($feed_row['last_check'])
|
||||
or time()-mysqldt_to_ts($feed_row['last_check']) > 30*24*3600 )
|
||||
or time()-datetime_to_ts($feed_row['last_check']) > 30*24*3600 )
|
||||
{
|
||||
$query = '
|
||||
UPDATE '.USER_FEED_TABLE.'
|
||||
|
@ -188,7 +186,7 @@ foreach($dates as $date_detail)
|
|||
|
||||
$item->descriptionHtmlSyndicated = true;
|
||||
|
||||
$item->date = mysqldt_to_ts($date);
|
||||
$item->date = ts_to_iso8601(datetime_to_ts($date));
|
||||
$item->author = $conf['rss_feed_author'];
|
||||
$item->guid= sprintf('%s', 'pics-'.$date);;
|
||||
|
||||
|
|
|
@ -123,6 +123,7 @@ foreach ($pictures as $row)
|
|||
'FILE_SIZE' => $row['filesize'],
|
||||
'FILE_WIDTH' => $row['width'],
|
||||
'FILE_HEIGHT' => $row['height'],
|
||||
'FILE_RATE' => $row['average_rate'],
|
||||
'FILE_METADATE' => $row['date_metadata_update'],
|
||||
'FILE_HAS_HD' => ($row['has_high'] and $user['enabled_high']=='true') ?
|
||||
true:false, /* lack of include/functions_picture.inc.php */
|
||||
|
@ -144,6 +145,8 @@ foreach ($pictures as $row)
|
|||
$name = str_replace('_', ' ', get_filename_wo_extension($row['file']));
|
||||
}
|
||||
|
||||
$name = trigger_event('render_element_description', $name);
|
||||
|
||||
switch ($page['section'])
|
||||
{
|
||||
case 'best_rated' :
|
||||
|
|
|
@ -112,12 +112,16 @@ try
|
|||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
my_error(l10n($e->getMessage(), true));
|
||||
my_error(l10n($e->getMessage()), true);
|
||||
}
|
||||
|
||||
pwg_db_check_charset();
|
||||
|
||||
load_conf_from_db();
|
||||
if ('http://piwigo.org/demo' == $conf['gallery_url'])
|
||||
{
|
||||
conf_update_param('gallery_url', '');
|
||||
}
|
||||
load_plugins();
|
||||
|
||||
include(PHPWG_ROOT_PATH.'include/user.inc.php');
|
||||
|
|
|
@ -328,19 +328,13 @@ $conf['double_password_type_in_admin'] = false;
|
|||
// Define if logins must be case sentitive or not at users registration. ie :
|
||||
// If set true, the login "user" will equal "User" or "USER" or "user",
|
||||
// etc. ... And it will be impossible to use such login variation to create a
|
||||
// new user account.
|
||||
// new user account.
|
||||
$conf['insensitive_case_logon'] = false;
|
||||
|
||||
// how should we check for unicity when adding a photo. Can be 'md5sum' or
|
||||
// 'filename'
|
||||
$conf['uniqueness_mode'] = 'md5sum';
|
||||
|
||||
// home_page : relative url of the homepage. Empty by default.
|
||||
// It points to the index of the gallery.
|
||||
// This parameter is used if home page is not index.php of the gallery.
|
||||
// We suggest avoid the names "index.htm" or "index.html" if you set $conf['php_extension_in_urls'] to false.
|
||||
$conf['home_page'] = '';
|
||||
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | metadata |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
@ -464,6 +458,9 @@ $conf['debug_l10n'] = false;
|
|||
// activate template debugging - a new window will appear
|
||||
$conf['debug_template'] = false;
|
||||
|
||||
// save copies of sent mails into local data dir
|
||||
$conf['debug_mail'] = false;
|
||||
|
||||
// die_on_sql_error: if an SQL query fails, should everything stop?
|
||||
$conf['die_on_sql_error'] = true;
|
||||
|
||||
|
@ -517,6 +514,10 @@ $conf['apache_authentication'] = false;
|
|||
// piwigo_users table.
|
||||
$conf['users_table'] = $prefixeTable.'users';
|
||||
|
||||
// If you decide to use external authentication
|
||||
// change conf below by $conf['external_authentification'] = true;
|
||||
$conf['external_authentification'] = false;
|
||||
|
||||
// Other tables can be changed, if you define associated constants
|
||||
// Example:
|
||||
// define('USER_INFOS_TABLE', 'pwg_main'.'user_infos');
|
||||
|
@ -630,8 +631,9 @@ $conf['full_tag_cloud_items_number'] = 200;
|
|||
// cloud in the menubar. Only the most represented tags will be shown
|
||||
$conf['menubar_tag_cloud_items_number'] = 100;
|
||||
|
||||
// content_tag_cloud_items_number: number of tags to show in the tag
|
||||
// cloud on the content page. Only the most represented tags will be shown
|
||||
// content_tag_cloud_items_number: number of related tags to show in the tag
|
||||
// cloud on the content page, when the current section is not a set of
|
||||
// tags. Only the most represented tags will be shown
|
||||
$conf['content_tag_cloud_items_number'] = 12;
|
||||
|
||||
// tags_levels: number of levels to use for display. Each level is bind to a
|
||||
|
@ -780,4 +782,7 @@ $conf['ploader_download_mac'] = 'http://piwigo.org/ext/download.php?eid=353';
|
|||
|
||||
// pLoader direct download url for linux
|
||||
$conf['ploader_download_linux'] = 'http://piwigo.org/ext/download.php?eid=269';
|
||||
|
||||
// enable the synchronization method for adding photos
|
||||
$conf['enable_synchronization'] = true;
|
||||
?>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
// +-----------------------------------------------------------------------+
|
||||
|
||||
// Default settings
|
||||
define('PHPWG_VERSION', 'Colibri');
|
||||
define('PHPWG_VERSION', '2.1');
|
||||
define('PHPWG_DEFAULT_LANGUAGE', 'en_UK');
|
||||
define('PHPWG_DEFAULT_TEMPLATE', 'Sylvia');
|
||||
|
||||
|
|
|
@ -560,7 +560,6 @@ function boolean_to_string($var)
|
|||
*
|
||||
*/
|
||||
|
||||
|
||||
function pwg_db_get_recent_period_expression($period, $date='CURRENT_DATE')
|
||||
{
|
||||
if ($date!='CURRENT_DATE')
|
||||
|
@ -580,6 +579,16 @@ SELECT '.pwg_db_get_recent_period_expression($period);
|
|||
return $d;
|
||||
}
|
||||
|
||||
function pwg_db_get_flood_period_expression($seconds)
|
||||
{
|
||||
return 'SUBDATE(now(), INTERVAL '.$seconds.' SECOND)';
|
||||
}
|
||||
|
||||
function pwg_db_get_hour($date)
|
||||
{
|
||||
return 'hour('.$date.')';
|
||||
}
|
||||
|
||||
function pwg_db_get_date_YYYYMM($date)
|
||||
{
|
||||
return 'DATE_FORMAT('.$date.', \'%Y%m\')';
|
||||
|
@ -627,6 +636,11 @@ function pwg_db_get_weekday($date)
|
|||
return 'WEEKDAY('.$date.')';
|
||||
}
|
||||
|
||||
function pwg_db_date_to_ts($date)
|
||||
{
|
||||
return 'UNIX_TIMESTAMP('.$date.')';
|
||||
}
|
||||
|
||||
// my_error returns (or send to standard output) the message concerning the
|
||||
// error occured for the last mysql query.
|
||||
function my_error($header, $die)
|
||||
|
|
|
@ -413,9 +413,7 @@ function pwg_db_concat($array)
|
|||
|
||||
function pwg_db_concat_ws($array, $separator)
|
||||
{
|
||||
$glue = sprintf(' || \'%s\' || ', $separator);
|
||||
|
||||
return implode($array, $glue);
|
||||
return implode($array, ' || \''.$separator.'\' || ');
|
||||
}
|
||||
|
||||
function pwg_db_cast_to_text($string)
|
||||
|
@ -467,13 +465,13 @@ function get_boolean( $string )
|
|||
*/
|
||||
function boolean_to_string($var)
|
||||
{
|
||||
if (!empty($var) && ($var == 'true'))
|
||||
if (is_bool($var))
|
||||
{
|
||||
return 'true';
|
||||
return $var ? 'true' : 'false';
|
||||
}
|
||||
else
|
||||
{
|
||||
return 'false';
|
||||
return $var;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -501,6 +499,17 @@ function pwg_db_get_recent_period($period, $date='CURRENT_DATE')
|
|||
return $d;
|
||||
}
|
||||
|
||||
function pwg_db_get_flood_period_expression($seconds)
|
||||
{
|
||||
return 'datetime(\'now\', \'localtime\', \''.-$seconds.' seconds\')';
|
||||
}
|
||||
|
||||
function pwg_db_get_hour($date)
|
||||
{
|
||||
return 'strftime(\'%H\', '.$date.')';
|
||||
}
|
||||
|
||||
|
||||
function pwg_db_get_date_YYYYMM($date)
|
||||
{
|
||||
return 'strftime(\'%Y%m\','.$date.')';
|
||||
|
@ -541,6 +550,11 @@ function pwg_db_get_weekday($date)
|
|||
return 'strftime(\'%w\',date('.$date.',\'-1 DAY\'))';
|
||||
}
|
||||
|
||||
function pwg_db_date_to_ts($date)
|
||||
{
|
||||
return 'UNIX_TIMESTAMP('.$date.')';
|
||||
}
|
||||
|
||||
// my_error returns (or send to standard output) the message concerning the
|
||||
// error occured for the last mysql query.
|
||||
function my_error($header, $die)
|
||||
|
|
|
@ -314,7 +314,7 @@ UPDATE '.$tablename.'
|
|||
pwg_query($query);
|
||||
}
|
||||
} // foreach update
|
||||
} // if mysql_ver or count<X
|
||||
}
|
||||
else
|
||||
{
|
||||
$all_fields = array_merge($dbfields['primary'], $dbfields['update']);
|
||||
|
@ -326,7 +326,7 @@ CREATE TABLE '.$temporary_tablename.'
|
|||
pwg_query($query);
|
||||
mass_inserts($temporary_tablename, $all_fields, $datas);
|
||||
if ( $flags & MASS_UPDATES_SKIP_EMPTY )
|
||||
$func_set = create_function('$s, $t', 'return "$s = IFNULL(t2.$s, '.$tablename.'.$s)";');
|
||||
$func_set = create_function('$s', 'return "$s = NULLIF(t2.$s, '.$tablename.'.$s)";');
|
||||
else
|
||||
$func_set = create_function('$s', 'return "$s = t2.$s";');
|
||||
|
||||
|
@ -343,7 +343,7 @@ FROM '.$temporary_tablename.' AS t2
|
|||
implode(
|
||||
"\n AND ",
|
||||
array_map(
|
||||
create_function('$s, $t', 'return "'.$tablename.'.$s = t2.$s";'),
|
||||
create_function('$s', 'return "'.$tablename.'.$s = t2.$s";'),
|
||||
$dbfields['primary']
|
||||
)
|
||||
);
|
||||
|
@ -449,14 +449,12 @@ WHERE tablename like \''.$prefixeTable.'%\'';
|
|||
|
||||
function pwg_db_concat($array)
|
||||
{
|
||||
$string = implode($array, ',');
|
||||
return 'ARRAY_TO_STRING(ARRAY['.$string.'])';
|
||||
return implode($array, ' || ');
|
||||
}
|
||||
|
||||
function pwg_db_concat_ws($array, $separator)
|
||||
{
|
||||
$string = implode($array, ',');
|
||||
return 'ARRAY_TO_STRING(ARRAY['.$string.'],\''.$separator.'\')';
|
||||
return implode($array, ' || \''.$separator.'\' || ');
|
||||
}
|
||||
|
||||
function pwg_db_cast_to_text($string)
|
||||
|
@ -510,13 +508,17 @@ function get_boolean( $string )
|
|||
*/
|
||||
function boolean_to_string($var)
|
||||
{
|
||||
if (!empty($var) && ($var == 't'))
|
||||
if (is_bool($var))
|
||||
{
|
||||
return 'true';
|
||||
return $var ? 'true' : 'false';
|
||||
}
|
||||
elseif ($var=='t' || $var=='f')
|
||||
{
|
||||
return ($var=='t') ? 'true' : 'false';
|
||||
}
|
||||
else
|
||||
{
|
||||
return 'false';
|
||||
return $var;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -544,6 +546,16 @@ function pwg_db_get_recent_period($period, $date='CURRENT_DATE')
|
|||
return $d;
|
||||
}
|
||||
|
||||
function pwg_db_get_flood_period_expression($seconds)
|
||||
{
|
||||
return 'now() - \''.$seconds.' SECOND\'::interval';
|
||||
}
|
||||
|
||||
function pwg_db_get_hour($date)
|
||||
{
|
||||
return 'EXTRACT(HOUR FROM '.$date.')';
|
||||
}
|
||||
|
||||
function pwg_db_get_date_YYYYMM($date)
|
||||
{
|
||||
return 'TO_CHAR('.$date.', \'YYYYMM\')';
|
||||
|
@ -584,8 +596,13 @@ function pwg_db_get_weekday($date)
|
|||
return 'EXTRACT(ISODOW FROM '.$date.')::INTEGER - 1';
|
||||
}
|
||||
|
||||
function pwg_db_date_to_ts($date)
|
||||
{
|
||||
return 'EXTRACT(EPOCH FROM '.$date.')';
|
||||
}
|
||||
|
||||
// my_error returns (or send to standard output) the message concerning the
|
||||
// error occured for the last mysql query.
|
||||
// error occured for the last pgsql query.
|
||||
function my_error($header, $die)
|
||||
{
|
||||
$error = '[pgsql error]'.pg_last_error()."\n";
|
||||
|
|
|
@ -425,9 +425,7 @@ function pwg_db_concat($array)
|
|||
|
||||
function pwg_db_concat_ws($array, $separator)
|
||||
{
|
||||
$glue = sprintf(' || \'%s\' || ', $separator);
|
||||
|
||||
return implode($array, $glue);
|
||||
return implode($array, ' || \''.$separator.'\' || ');
|
||||
}
|
||||
|
||||
function pwg_db_cast_to_text($string)
|
||||
|
@ -479,13 +477,13 @@ function get_boolean( $string )
|
|||
*/
|
||||
function boolean_to_string($var)
|
||||
{
|
||||
if (!empty($var) && ($var == 'true'))
|
||||
if (is_bool($var))
|
||||
{
|
||||
return 'true';
|
||||
return $var ? 'true' : 'false';
|
||||
}
|
||||
else
|
||||
{
|
||||
return 'false';
|
||||
return $var;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -513,6 +511,16 @@ function pwg_db_get_recent_period($period, $date='CURRENT_DATE')
|
|||
return $d;
|
||||
}
|
||||
|
||||
function pwg_db_get_flood_period_expression($seconds)
|
||||
{
|
||||
return 'datetime(\'now\', \'localtime\', \''.-$seconds.' seconds\')';
|
||||
}
|
||||
|
||||
function pwg_db_get_hour($date)
|
||||
{
|
||||
return 'strftime(\'%H\', '.$date.')';
|
||||
}
|
||||
|
||||
function pwg_db_get_date_YYYYMM($date)
|
||||
{
|
||||
return 'strftime(\'%Y%m\','.$date.')';
|
||||
|
@ -553,6 +561,11 @@ function pwg_db_get_weekday($date)
|
|||
return 'strftime(\'%w\',date('.$date.',\'-1 DAY\'))';
|
||||
}
|
||||
|
||||
function pwg_db_date_to_ts($date)
|
||||
{
|
||||
return 'UNIX_TIMESTAMP('.$date.')';
|
||||
}
|
||||
|
||||
// my_error returns (or send to standard output) the message concerning the
|
||||
// error occured for the last mysql query.
|
||||
function my_error($header, $die)
|
||||
|
|
|
@ -32,18 +32,6 @@ include_once( PHPWG_ROOT_PATH .'include/functions_url.inc.php' );
|
|||
include_once( PHPWG_ROOT_PATH .'include/functions_plugins.inc.php' );
|
||||
|
||||
//----------------------------------------------------------- generic functions
|
||||
function get_extra_fields($order_by_fields)
|
||||
{
|
||||
$fields = str_ireplace(array(' order by ', ' desc', ' asc'),
|
||||
array('', '', ''),
|
||||
$order_by_fields
|
||||
);
|
||||
if (!empty($fields))
|
||||
{
|
||||
$fields = ','.$fields;
|
||||
}
|
||||
return $fields;
|
||||
}
|
||||
|
||||
// The function get_moment returns a float value coresponding to the number
|
||||
// of seconds since the unix epoch (1st January 1970) and the microseconds
|
||||
|
@ -168,6 +156,10 @@ function mkgetdir($dir, $flags=MKGETDIR_DEFAULT)
|
|||
{
|
||||
if ( !is_dir($dir) )
|
||||
{
|
||||
if (substr(PHP_OS, 0, 3) == 'WIN')
|
||||
{
|
||||
$dir = str_replace('/', DIRECTORY_SEPARATOR, $dir);
|
||||
}
|
||||
$umask = umask(0);
|
||||
$mkd = @mkdir($dir, 0755, ($flags&MKGETDIR_RECURSIVE) ? true:false );
|
||||
umask($umask);
|
||||
|
@ -382,7 +374,7 @@ function remove_accents($string)
|
|||
function str2url($str)
|
||||
{
|
||||
$raw = $str;
|
||||
|
||||
|
||||
$str = remove_accents($str);
|
||||
$str = preg_replace('/[^a-z0-9_\s\'\:\/\[\],-]/','',strtolower($str));
|
||||
$str = preg_replace('/[\s\'\:\/\[\],-]+/',' ',trim($str));
|
||||
|
@ -390,7 +382,7 @@ function str2url($str)
|
|||
|
||||
if (empty($res))
|
||||
{
|
||||
$res = $raw;
|
||||
$res = str_replace(' ','_', $raw);
|
||||
}
|
||||
|
||||
return $res;
|
||||
|
@ -579,7 +571,7 @@ function redirect_html( $url , $msg = '', $refresh_time = 0)
|
|||
{
|
||||
global $user, $template, $lang_info, $conf, $lang, $t2, $page, $debug;
|
||||
|
||||
if (!isset($lang_info))
|
||||
if (!isset($lang_info) || !isset($template) )
|
||||
{
|
||||
$user = build_user( $conf['guest_id'], true);
|
||||
load_language('common.lang');
|
||||
|
@ -587,10 +579,10 @@ function redirect_html( $url , $msg = '', $refresh_time = 0)
|
|||
load_language('lang', PHPWG_ROOT_PATH.'local/', array('no_fallback'=>true, 'local'=>true) );
|
||||
$template = new Template(PHPWG_ROOT_PATH.'themes', get_default_theme());
|
||||
}
|
||||
else
|
||||
{
|
||||
$template = new Template(PHPWG_ROOT_PATH.'themes', $user['theme']);
|
||||
}
|
||||
elseif (defined('IN_ADMIN') and IN_ADMIN)
|
||||
{
|
||||
$template = new Template(PHPWG_ROOT_PATH.'themes', get_default_theme());
|
||||
}
|
||||
|
||||
if (empty($msg))
|
||||
{
|
||||
|
@ -1266,18 +1258,18 @@ function load_language($filename, $dirname = '',
|
|||
{
|
||||
if ( is_array($v) )
|
||||
{
|
||||
$func = create_function('$v', 'return convert_charset($v, "'.$target_charset.'");' );
|
||||
$func = create_function('$v', 'return convert_charset($v, "utf-8", "'.$target_charset.'");' );
|
||||
$lang[$k] = array_map($func, $v);
|
||||
}
|
||||
else
|
||||
$lang[$k] = convert_charset($v, $target_charset);
|
||||
$lang[$k] = convert_charset($v, 'utf-8', $target_charset);
|
||||
}
|
||||
}
|
||||
if ( is_array($load_lang_info) )
|
||||
{
|
||||
foreach ($load_lang_info as $k => $v)
|
||||
{
|
||||
$lang_info[$k] = convert_charset($v, $target_charset);
|
||||
$lang_info[$k] = convert_charset($v, 'utf-8', $target_charset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1291,7 +1283,7 @@ function load_language($filename, $dirname = '',
|
|||
else
|
||||
{
|
||||
$content = @file_get_contents($source_file);
|
||||
$content = convert_charset($content, $target_charset);
|
||||
$content = convert_charset($content, 'utf-8', $target_charset);
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
|
@ -1299,27 +1291,30 @@ function load_language($filename, $dirname = '',
|
|||
}
|
||||
|
||||
/**
|
||||
* converts a string from utf-8 character set to another character set
|
||||
* converts a string from a character set to another character set
|
||||
* @param string str the string to be converted
|
||||
* @param string source_charset the character set in which the string is encoded
|
||||
* @param string dest_charset the destination character set
|
||||
*/
|
||||
function convert_charset($str, $dest_charset)
|
||||
function convert_charset($str, $source_charset, $dest_charset)
|
||||
{
|
||||
if ($dest_charset=='utf-8')
|
||||
{
|
||||
if ($source_charset==$dest_charset)
|
||||
return $str;
|
||||
if ($source_charset=='iso-8859-1' and $dest_charset=='utf-8')
|
||||
{
|
||||
return utf8_encode($str);
|
||||
}
|
||||
if ($dest_charset=='iso-8859-1')
|
||||
if ($source_charset=='utf-8' and $dest_charset=='iso-8859-1')
|
||||
{
|
||||
return utf8_decode($str);
|
||||
}
|
||||
if (function_exists('iconv'))
|
||||
{
|
||||
return iconv('utf-8', $dest_charset, $str);
|
||||
return iconv($source_charset, $dest_charset, $str);
|
||||
}
|
||||
if (function_exists('mb_convert_encoding'))
|
||||
{
|
||||
return mb_convert_encoding( $str, $dest_charset, 'utf-8' );
|
||||
return mb_convert_encoding( $str, $dest_charset, $source_charset );
|
||||
}
|
||||
return $str; //???
|
||||
}
|
||||
|
@ -1536,12 +1531,12 @@ function check_input_parameter($param_name, $param_array, $is_array, $pattern)
|
|||
function get_privacy_level_options()
|
||||
{
|
||||
global $conf;
|
||||
|
||||
|
||||
$options = array();
|
||||
foreach (array_reverse($conf['available_permission_levels']) as $level)
|
||||
{
|
||||
$label = null;
|
||||
|
||||
|
||||
if (0 == $level)
|
||||
{
|
||||
$label = l10n('Everybody');
|
||||
|
@ -1566,7 +1561,7 @@ function get_privacy_level_options()
|
|||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$label = implode(', ', $labels);
|
||||
}
|
||||
$options[$level] = $label;
|
||||
|
|
|
@ -258,7 +258,7 @@ WHERE id IN (' . implode(',',$page['items']) .')';
|
|||
|
||||
if ($must_show_list)
|
||||
{
|
||||
$query = 'SELECT DISTINCT id '.get_extra_fields($conf['order_by']);
|
||||
$query = 'SELECT DISTINCT id ';
|
||||
$query .= ','.$calendar->date_field;
|
||||
$query .= $calendar->inner_sql.'
|
||||
'.$calendar->get_date_where();
|
||||
|
|
|
@ -406,7 +406,7 @@ function get_cat_id_from_permalinks( $permalinks, &$idx )
|
|||
foreach($permalinks as $permalink)
|
||||
{
|
||||
if ( !empty($in) ) $in.=', ';
|
||||
$in .= '"'.$permalink.'"';
|
||||
$in .= '\''.$permalink.'\'';
|
||||
}
|
||||
$query ='
|
||||
SELECT cat_id AS id, permalink, 1 AS is_old
|
||||
|
@ -431,7 +431,7 @@ SELECT id, permalink, 0 AS is_old
|
|||
{
|
||||
$query='
|
||||
UPDATE '.OLD_PERMALINKS_TABLE.' SET last_hit=NOW(), hit=hit+1
|
||||
WHERE permalink="'.$permalinks[$i].'" AND cat_id='.$cat_id.'
|
||||
WHERE permalink=\''.$permalinks[$i].'\' AND cat_id='.$cat_id.'
|
||||
LIMIT 1';
|
||||
pwg_query($query);
|
||||
}
|
||||
|
|
|
@ -131,14 +131,16 @@ SELECT COUNT(*) AS user_exists
|
|||
$comment_action='reject';
|
||||
}
|
||||
|
||||
if ($comment_action!='reject' and $conf['anti-flood_time']>0 )
|
||||
if ($comment_action!='reject' and $conf['anti-flood_time']>0 and !is_admin())
|
||||
{ // anti-flood system
|
||||
$reference_date = time() - $conf['anti-flood_time'];
|
||||
$reference_date = pwg_db_get_flood_period_expression($conf['anti-flood_time']);
|
||||
|
||||
$query = '
|
||||
SELECT id FROM '.COMMENTS_TABLE.'
|
||||
WHERE date > FROM_UNIXTIME('.$reference_date.')
|
||||
SELECT count(1) FROM '.COMMENTS_TABLE.'
|
||||
WHERE date > '.$reference_date.'
|
||||
AND author_id = '.$comm['author_id'];
|
||||
if ( pwg_db_num_rows( pwg_query( $query ) ) > 0 )
|
||||
list($counter) = pwg_db_fetch_row(pwg_query($query));
|
||||
if ( $counter > 0 )
|
||||
{
|
||||
array_push( $infos, l10n('Anti-flood system : please wait for a moment before trying to post another comment') );
|
||||
$comment_action='reject';
|
||||
|
@ -156,11 +158,11 @@ SELECT id FROM '.COMMENTS_TABLE.'
|
|||
INSERT INTO '.COMMENTS_TABLE.'
|
||||
(author, author_id, content, date, validated, validation_date, image_id)
|
||||
VALUES (
|
||||
"'.$comm['author'].'",
|
||||
\''.$comm['author'].'\',
|
||||
'.$comm['author_id'].',
|
||||
"'.$comm['content'].'",
|
||||
\''.$comm['content'].'\',
|
||||
NOW(),
|
||||
"'.($comment_action=='validate' ? 'true':'false').'",
|
||||
\''.($comment_action=='validate' ? 'true':'false').'\',
|
||||
'.($comment_action=='validate' ? 'NOW()':'NULL').',
|
||||
'.$comm['image_id'].'
|
||||
)
|
||||
|
@ -257,21 +259,6 @@ function update_user_comment($comment, $post_key)
|
|||
$comment_action='reject';
|
||||
}
|
||||
|
||||
/* ? this is a MySql Error - author_id is not defined
|
||||
if ($comment_action!='reject' and $conf['anti-flood_time']>0 )
|
||||
{ // anti-flood system
|
||||
$reference_date = time() - $conf['anti-flood_time'];
|
||||
$query = '
|
||||
SELECT id FROM '.COMMENTS_TABLE.'
|
||||
WHERE date > FROM_UNIXTIME('.$reference_date.')
|
||||
AND author_id = '.$comm['author_id'];
|
||||
if ( pwg_db_num_rows( pwg_query( $query ) ) > 0 )
|
||||
{
|
||||
//?? array_push( $infos, l10n('Anti-flood system : please wait for a moment before trying to post another comment') );
|
||||
$comment_action='reject';
|
||||
}
|
||||
}
|
||||
*/
|
||||
// perform more spam check
|
||||
$comment_action =
|
||||
trigger_event('user_comment_check',
|
||||
|
@ -367,7 +354,7 @@ function validate_user_comment($comment_id)
|
|||
{
|
||||
$query = '
|
||||
UPDATE '.COMMENTS_TABLE.'
|
||||
SET validated = "true"
|
||||
SET validated = \'true\'
|
||||
, validation_date = NOW()
|
||||
WHERE id = '.$comment_id.'
|
||||
;';
|
||||
|
|
|
@ -294,7 +294,7 @@ function access_denied()
|
|||
{
|
||||
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
|
||||
echo '<div style="text-align:center;">'.l10n('You are not authorized to access the requested page').'<br>';
|
||||
echo '<a href="'.get_root_url().'Identification.php">'.l10n('Identification').'</a> ';
|
||||
echo '<a href="'.get_root_url().'identification.php">'.l10n('Identification').'</a> ';
|
||||
echo '<a href="'.make_index_url().'">'.l10n('Home').'</a></div>';
|
||||
echo str_repeat( ' ', 512); //IE6 doesn't error output if below a size
|
||||
exit();
|
||||
|
|
|
@ -150,38 +150,6 @@ function get_strict_email_list($email_list)
|
|||
return implode(',', $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an completed array template/theme
|
||||
* completed with get_default_theme()
|
||||
*
|
||||
* @params:
|
||||
* - args: incompleted array of template/theme
|
||||
* o template: template to use [default get_default_theme()]
|
||||
* o theme: template to use [default get_default_theme()]
|
||||
*/
|
||||
function get_array_template_theme($args = array())
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$res = array();
|
||||
|
||||
if (empty($args['template']) or empty($args['theme']))
|
||||
{
|
||||
list($res['template'], $res['theme']) = explode('/', get_default_theme());
|
||||
}
|
||||
|
||||
if (!empty($args['template']))
|
||||
{
|
||||
$res['template'] = $args['template'];
|
||||
}
|
||||
|
||||
if (!empty($args['theme']))
|
||||
{
|
||||
$res['theme'] = $args['theme'];
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an new mail template
|
||||
|
@ -641,9 +609,7 @@ function pwg_mail($to, $args = array())
|
|||
'CONTENT_ENCODING' => get_pwg_charset(),
|
||||
|
||||
// Footer
|
||||
'GALLERY_URL' =>
|
||||
isset($page['gallery_url']) ?
|
||||
$page['gallery_url'] : $conf['gallery_url'],
|
||||
'GALLERY_URL' => get_gallery_home_url(),
|
||||
'GALLERY_TITLE' =>
|
||||
isset($page['gallery_title']) ?
|
||||
$page['gallery_title'] : $conf['gallery_title'],
|
||||
|
@ -794,22 +760,23 @@ function move_ccs_rules_to_body($content)
|
|||
$selectors[$select][] = $style;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($selectors as $selector => $style)
|
||||
{
|
||||
if (!preg_match('/^(#|\.|)([A-Za-z0-9_-]*)$/', $selector, $matches))
|
||||
{
|
||||
$unknow_selectors .= $selector.' {'.implode('; ', $style).";}\n";
|
||||
$unknow_selectors .= $selector.' {'.implode(";\n", $style).";}\n";
|
||||
}
|
||||
else switch ($matches[1])
|
||||
{
|
||||
case '#':
|
||||
$content = preg_replace('|id="'.$matches[2].'"|', 'id="'.$matches[2].'" style="'.implode('; ', $style).';"', $content);
|
||||
$content = preg_replace('|id="'.$matches[2].'"|', 'id="'.$matches[2].'" style="'.implode(";\n", $style).";\"\n", $content);
|
||||
break;
|
||||
case '.':
|
||||
$content = preg_replace('|class="'.$matches[2].'"|', 'class="'.$matches[2].'" style="'.implode('; ', $style).';"', $content);
|
||||
$content = preg_replace('|class="'.$matches[2].'"|', 'class="'.$matches[2].'" style="'.implode(";\n", $style).";\"\n", $content);
|
||||
break;
|
||||
default:
|
||||
$content = preg_replace('#<'.$matches[2].'( |>)#', '<'.$matches[2].' style="'.implode('; ', $style).';"$1', $content);
|
||||
$content = preg_replace('#<'.$matches[2].'( |>)#', '<'.$matches[2].' style="'.implode(";\n", $style).";\"\n$1", $content);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -828,13 +795,13 @@ function move_ccs_rules_to_body($content)
|
|||
}
|
||||
|
||||
/*Testing block*/
|
||||
/*function pwg_send_mail_test($result, $to, $subject, $content, $headers, $args)
|
||||
function pwg_send_mail_test($result, $to, $subject, $content, $headers, $args)
|
||||
{
|
||||
global $conf, $user, $lang_info;
|
||||
$dir = $conf['local_data_dir'].'/tmp';
|
||||
if ( mkgetdir( $dir, MKGETDIR_DEFAULT&~MKGETDIR_DIE_ON_ERROR) )
|
||||
{
|
||||
$filename = $dir.'/mail.'.stripslashes($user['username']).'.'.$lang_info['code'].'.'.$args['template'].'.'.$args['theme'];
|
||||
$filename = $dir.'/mail.'.stripslashes($user['username']).'.'.$lang_info['code'].'.'.$args['theme'].'-'.date('YmdHis');
|
||||
if ($args['content_format'] == 'text/plain')
|
||||
{
|
||||
$filename .= '.txt';
|
||||
|
@ -852,7 +819,8 @@ function move_ccs_rules_to_body($content)
|
|||
}
|
||||
return $result;
|
||||
}
|
||||
add_event_handler('send_mail', 'pwg_send_mail_test', EVENT_HANDLER_PRIORITY_NEUTRAL+10, 6);*/
|
||||
if ($conf['debug_mail'])
|
||||
add_event_handler('send_mail', 'pwg_send_mail_test', EVENT_HANDLER_PRIORITY_NEUTRAL+10, 6);
|
||||
|
||||
|
||||
add_event_handler('send_mail', 'pwg_send_mail', EVENT_HANDLER_PRIORITY_NEUTRAL, 5);
|
||||
|
|
|
@ -117,6 +117,7 @@ function get_exif_data($filename, $map)
|
|||
// Read EXIF data
|
||||
if ($exif = @read_exif_data($filename))
|
||||
{
|
||||
$exif = trigger_event('format_exif_data', $exif, $filename );
|
||||
foreach ($map as $key => $field)
|
||||
{
|
||||
if (strpos($field, ';') === false)
|
||||
|
|
|
@ -71,40 +71,78 @@ function custom_notification_query($action, $type, $start, $end)
|
|||
$query = '
|
||||
FROM '.COMMENTS_TABLE.' AS c
|
||||
, '.IMAGE_CATEGORY_TABLE.' AS ic
|
||||
WHERE c.image_id = ic.image_id
|
||||
AND c.validation_date > \''.$start.'\'
|
||||
AND c.validation_date <= \''.$end.'\'
|
||||
'.get_std_sql_where_restrict_filter('AND').'
|
||||
WHERE c.image_id = ic.image_id';
|
||||
if (!empty($start))
|
||||
{
|
||||
$query .= '
|
||||
AND c.validation_date > \''.$start.'\'';
|
||||
}
|
||||
if (!empty($end))
|
||||
{
|
||||
$query .= '
|
||||
AND c.validation_date <= \''.$end.'\'';
|
||||
}
|
||||
$query .= get_std_sql_where_restrict_filter('AND').'
|
||||
;';
|
||||
break;
|
||||
case 'unvalidated_comments':
|
||||
$query = '
|
||||
FROM '.COMMENTS_TABLE.'
|
||||
WHERE date> \''.$start.'\' AND date <= \''.$end.'\'
|
||||
AND validated = \'false\'
|
||||
WHERE 1=1';
|
||||
if (!empty($start))
|
||||
{
|
||||
$query .= ' AND date> \''.$start.'\'';
|
||||
}
|
||||
if (!empty($end))
|
||||
{
|
||||
$query .= ' AND date <= \''.$end.'\'';
|
||||
}
|
||||
$query .= ' AND validated = \'false\'
|
||||
;';
|
||||
break;
|
||||
case 'new_elements':
|
||||
$query = '
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON image_id = id
|
||||
WHERE date_available > \''.$start.'\'
|
||||
AND date_available <= \''.$end.'\'
|
||||
'.get_std_sql_where_restrict_filter('AND', 'id').'
|
||||
WHERE 1=1';
|
||||
if (!empty($start))
|
||||
{
|
||||
$query .= ' AND date_available > \''.$start.'\'';
|
||||
}
|
||||
if (!empty($end))
|
||||
{
|
||||
$query .= ' AND date_available <= \''.$end.'\'';
|
||||
}
|
||||
$query .= get_std_sql_where_restrict_filter('AND', 'id').'
|
||||
;';
|
||||
break;
|
||||
case 'updated_categories':
|
||||
$query = '
|
||||
FROM '.IMAGES_TABLE.' INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON image_id = id
|
||||
WHERE date_available > \''.$start.'\'
|
||||
AND date_available <= \''.$end.'\'
|
||||
'.get_std_sql_where_restrict_filter('AND', 'id').'
|
||||
WHERE 1=1';
|
||||
if (!empty($start))
|
||||
{
|
||||
$query .= ' AND date_available > \''.$start.'\'';
|
||||
}
|
||||
if (!empty($end))
|
||||
{
|
||||
$query .= ' AND date_available <= \''.$end.'\'';
|
||||
}
|
||||
$query .= get_std_sql_where_restrict_filter('AND', 'id').'
|
||||
;';
|
||||
break;
|
||||
case 'new_users':
|
||||
$query = '
|
||||
FROM '.USER_INFOS_TABLE.'
|
||||
WHERE registration_date > \''.$start.'\'
|
||||
AND registration_date <= \''.$end.'\'
|
||||
WHERE 1=1';
|
||||
if (!empty($start))
|
||||
{
|
||||
$query .= ' AND registration_date > \''.$start.'\'';
|
||||
}
|
||||
if (!empty($end))
|
||||
{
|
||||
$query .= ' AND registration_date <= \''.$end.'\'';
|
||||
}
|
||||
$query .= '
|
||||
;';
|
||||
break;
|
||||
case 'waiting_elements':
|
||||
|
@ -438,8 +476,8 @@ function get_recent_post_dates($max_dates, $max_elements, $max_cats)
|
|||
|
||||
$query = '
|
||||
SELECT date_available,
|
||||
COUNT(DISTINCT id) nb_elements,
|
||||
COUNT(DISTINCT category_id) nb_cats
|
||||
COUNT(DISTINCT id) AS nb_elements,
|
||||
COUNT(DISTINCT category_id) AS nb_cats
|
||||
FROM '.IMAGES_TABLE.' i INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id=image_id
|
||||
'.$where_sql.'
|
||||
GROUP BY date_available
|
||||
|
@ -461,7 +499,7 @@ SELECT date_available,
|
|||
SELECT DISTINCT id, path, name, tn_ext, file
|
||||
FROM '.IMAGES_TABLE.' i INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id=image_id
|
||||
'.$where_sql.'
|
||||
AND date_available="'.$dates[$i]['date_available'].'"
|
||||
AND date_available=\''.$dates[$i]['date_available'].'\'
|
||||
AND tn_ext IS NOT NULL
|
||||
ORDER BY '.DB_RANDOM_FUNCTION.'()
|
||||
LIMIT '.$max_elements.'
|
||||
|
@ -477,12 +515,12 @@ SELECT DISTINCT id, path, name, tn_ext, file
|
|||
if ($max_cats>0)
|
||||
{// get some categories ...
|
||||
$query = '
|
||||
SELECT DISTINCT c.uppercats, COUNT(DISTINCT i.id) img_count
|
||||
SELECT DISTINCT c.uppercats, COUNT(DISTINCT i.id) AS img_count
|
||||
FROM '.IMAGES_TABLE.' i INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON i.id=image_id
|
||||
INNER JOIN '.CATEGORIES_TABLE.' c ON c.id=category_id
|
||||
'.$where_sql.'
|
||||
AND date_available="'.$dates[$i]['date_available'].'"
|
||||
GROUP BY category_id
|
||||
AND date_available=\''.$dates[$i]['date_available'].'\'
|
||||
GROUP BY category_id, c.uppercats
|
||||
ORDER BY img_count DESC
|
||||
LIMIT '.$max_cats.'
|
||||
;';
|
||||
|
@ -569,27 +607,6 @@ function get_html_description_recent_post_date($date_detail)
|
|||
return $description;
|
||||
}
|
||||
|
||||
/**
|
||||
* explodes a MySQL datetime format (2005-07-14 23:01:37) in fields "year",
|
||||
* "month", "day", "hour", "minute", "second".
|
||||
*
|
||||
* @param string mysql datetime format
|
||||
* @return array
|
||||
*/
|
||||
function explode_mysqldt($mysqldt)
|
||||
{
|
||||
$date = array();
|
||||
list($date['year'],
|
||||
$date['month'],
|
||||
$date['day'],
|
||||
$date['hour'],
|
||||
$date['minute'],
|
||||
$date['second'])
|
||||
= preg_split('/[-: ]/', $mysqldt);
|
||||
|
||||
return $date;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns title about recently published elements grouped by post date
|
||||
* @param $date_detail: selected date computed by get_recent_post_dates function
|
||||
|
@ -599,12 +616,23 @@ function get_title_recent_post_date($date_detail)
|
|||
global $lang;
|
||||
|
||||
$date = $date_detail['date_available'];
|
||||
$exploded_date = explode_mysqldt($date);
|
||||
$exploded_date = strptime($date, '%Y-%m-%d %H:%M:%S');
|
||||
|
||||
$title = l10n_dec('%d new image', '%d new images', $date_detail['nb_elements']);
|
||||
$title .= ' ('.$lang['month'][(int)$exploded_date['month']].' '.$exploded_date['day'].')';
|
||||
$title .= ' ('.$lang['month'][1+$exploded_date['tm_mon']].' '.$exploded_date['tm_mday'].')';
|
||||
|
||||
return $title;
|
||||
}
|
||||
|
||||
?>
|
||||
if(!function_exists("strptime"))
|
||||
{
|
||||
function strptime($date, $fmt)
|
||||
{
|
||||
if ($fmt != '%Y-%m-%d %H:%M:%S')
|
||||
die('Invalid strptime format '.$fmt);
|
||||
list($y,$m,$d,$H,$M,$S) = preg_split('/[-: ]/', $date);
|
||||
$res = localtime( mktime($H,$M,$S,$m,$d,$y), true );
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -393,7 +393,7 @@ function get_qsearch_like_clause($q, $field, $before='%', $after='%')
|
|||
continue;
|
||||
if ( strlen($tokens[$i])==0)
|
||||
continue;
|
||||
$clauses[] = $field.' LIKE "'.$before.addslashes($tokens[$i]).$after.'"';
|
||||
$clauses[] = $field.' LIKE \''.$before.addslashes($tokens[$i]).$after.'\'';
|
||||
}
|
||||
|
||||
return count($clauses) ? '('.implode(' OR ', $clauses).')' : null;
|
||||
|
@ -434,7 +434,7 @@ function get_quick_search_results($q, $super_order_by, $images_where='')
|
|||
|
||||
|
||||
// Step 1 - first we find matches in #images table ===========================
|
||||
$where_clauses='MATCH(i.name, i.comment) AGAINST( "'.$q.'" IN BOOLEAN MODE)';
|
||||
$where_clauses='MATCH(i.name, i.comment) AGAINST( \''.$q.'\' IN BOOLEAN MODE)';
|
||||
if (!empty($q_like_clause))
|
||||
{
|
||||
$where_clauses .= '
|
||||
|
@ -452,7 +452,7 @@ function get_quick_search_results($q, $super_order_by, $images_where='')
|
|||
);
|
||||
$query = '
|
||||
SELECT i.id,
|
||||
MATCH(i.name, i.comment) AGAINST( "'.$q.'" IN BOOLEAN MODE) AS weight
|
||||
MATCH(i.name, i.comment) AGAINST( \''.$q.'\' IN BOOLEAN MODE) AS weight
|
||||
FROM '.IMAGES_TABLE.' i
|
||||
WHERE '.implode("\n AND ", $where_clauses);
|
||||
|
||||
|
@ -505,7 +505,7 @@ SELECT id, name, permalink, nb_images
|
|||
FROM '.CATEGORIES_TABLE.'
|
||||
INNER JOIN '.USER_CACHE_CATEGORIES_TABLE.' ON id=cat_id
|
||||
WHERE user_id='.$user['id'].'
|
||||
AND MATCH(name, comment) AGAINST( "'.$q.'" IN BOOLEAN MODE)'.
|
||||
AND MATCH(name, comment) AGAINST( \''.$q.'\' IN BOOLEAN MODE)'.
|
||||
get_sql_condition_FandF (
|
||||
array( 'visible_categories' => 'cat_id' ), "\n AND"
|
||||
);
|
||||
|
|
|
@ -175,7 +175,7 @@ function pwg_session_gc()
|
|||
$query = '
|
||||
DELETE
|
||||
FROM '.SESSIONS_TABLE.'
|
||||
WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(expiration) > '
|
||||
WHERE '.pwg_db_date_to_ts('NOW()').' - '.pwg_db_date_to_ts('expiration').' > '
|
||||
.$conf['session_length'].'
|
||||
;';
|
||||
pwg_query($query);
|
||||
|
|
|
@ -36,7 +36,7 @@ function get_available_tags()
|
|||
{
|
||||
// we can find top fatter tags among reachable images
|
||||
$query = '
|
||||
SELECT tag_id, COUNT(DISTINCT(it.image_id)) counter
|
||||
SELECT tag_id, COUNT(DISTINCT(it.image_id)) AS counter
|
||||
FROM '.IMAGE_CATEGORY_TABLE.' ic
|
||||
INNER JOIN '.IMAGE_TAG_TABLE.' it ON ic.image_id=it.image_id'.get_sql_condition_FandF
|
||||
(
|
||||
|
@ -223,7 +223,7 @@ function get_common_tags($items, $max_tags, $excluded_tag_ids=null)
|
|||
return array();
|
||||
}
|
||||
$query = '
|
||||
SELECT t.*, count(*) counter
|
||||
SELECT t.*, count(*) AS counter
|
||||
FROM '.IMAGE_TAG_TABLE.'
|
||||
INNER JOIN '.TAGS_TABLE.' t ON tag_id = id
|
||||
WHERE image_id IN ('.implode(',', $items).')';
|
||||
|
|
|
@ -58,7 +58,7 @@ function get_absolute_root_url($with_scheme=true)
|
|||
$url = '';
|
||||
if ($with_scheme)
|
||||
{
|
||||
if (isset($_SERVER['HTTPS']) &&
|
||||
if (isset($_SERVER['HTTPS']) &&
|
||||
((strtolower($_SERVER['HTTPS']) == 'on') or ($_SERVER['HTTPS'] == 1)))
|
||||
{
|
||||
$url .= 'https://';
|
||||
|
@ -89,7 +89,7 @@ function get_absolute_root_url($with_scheme=true)
|
|||
* @param array params
|
||||
* @return string
|
||||
*/
|
||||
function add_url_params($url, $params)
|
||||
function add_url_params($url, $params, $arg_separator='&' )
|
||||
{
|
||||
if ( !empty($params) )
|
||||
{
|
||||
|
@ -100,11 +100,11 @@ function add_url_params($url, $params)
|
|||
if ($is_first)
|
||||
{
|
||||
$is_first = false;
|
||||
$url .= ( strpos($url, '?')===false ) ? '?' :'&';
|
||||
$url .= ( strpos($url, '?')===false ) ? '?' : $arg_separator;
|
||||
}
|
||||
else
|
||||
{
|
||||
$url .= '&';
|
||||
$url .= $arg_separator;
|
||||
}
|
||||
$url .= $param;
|
||||
if (isset($val))
|
||||
|
@ -727,4 +727,23 @@ function embellish_url($url)
|
|||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the 'home page' of this gallery
|
||||
*/
|
||||
function get_gallery_home_url()
|
||||
{
|
||||
global $conf;
|
||||
if (!empty($conf['gallery_url']))
|
||||
{
|
||||
if (url_is_remote($conf['gallery_url']) or strncmp($conf['gallery_url'], '/', 1)==0)
|
||||
{
|
||||
return $conf['gallery_url'];
|
||||
}
|
||||
return get_root_url().$conf['gallery_url'];
|
||||
}
|
||||
else
|
||||
{
|
||||
return make_index_url();
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -112,6 +112,10 @@ function register_user($login, $password, $mail_address,
|
|||
{
|
||||
array_push($errors, l10n('this login is already used'));
|
||||
}
|
||||
if ($login != strip_tags($login))
|
||||
{
|
||||
array_push($errors, l10n('html tags are not allowed in login'));
|
||||
}
|
||||
$mail_error = validate_mail_address(null, $mail_address);
|
||||
if ('' != $mail_error)
|
||||
{
|
||||
|
@ -267,6 +271,7 @@ function getuserdata($user_id, $use_cache)
|
|||
|
||||
$userdata = array();
|
||||
|
||||
// retrieve basic user data
|
||||
$query = '
|
||||
SELECT ';
|
||||
$is_first = true;
|
||||
|
@ -289,26 +294,44 @@ SELECT ';
|
|||
|
||||
$row = pwg_db_fetch_assoc(pwg_query($query));
|
||||
|
||||
while (true)
|
||||
{
|
||||
$query = '
|
||||
SELECT ui.*, uc.*, t.name AS theme_name
|
||||
// retrieve user info
|
||||
$query = '
|
||||
SELECT
|
||||
ui.*,
|
||||
uc.*,
|
||||
t.name AS theme_name
|
||||
FROM '.USER_INFOS_TABLE.' AS ui
|
||||
LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id
|
||||
LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme
|
||||
WHERE ui.user_id = \''.$user_id.'\'';
|
||||
$result = pwg_query($query);
|
||||
if ($result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
WHERE ui.user_id = '.$user_id.'
|
||||
;';
|
||||
|
||||
$result = pwg_query($query);
|
||||
$user_infos_row = pwg_db_fetch_assoc($result);
|
||||
|
||||
// retrieve additional user data ?
|
||||
if ($conf['external_authentification'])
|
||||
{
|
||||
$query = '
|
||||
SELECT
|
||||
COUNT(1) AS counter,
|
||||
FROM '.USER_INFOS_TABLE.' AS ui
|
||||
LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id
|
||||
LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme
|
||||
WHERE ui.user_id = '.$user_id.'
|
||||
GROUP BY ui.user_id
|
||||
;';
|
||||
if (pwg_db_fetch_row(pwg_query($query))!=1)
|
||||
{
|
||||
create_user_infos($user_id);
|
||||
|
||||
$result = pwg_query($user_info_query);
|
||||
$user_infos_row = pwg_db_fetch_assoc($result);
|
||||
}
|
||||
}
|
||||
|
||||
$row = array_merge($row, pwg_db_fetch_assoc($result));
|
||||
// then merge basic + additional user data
|
||||
$row = array_merge($row, $user_infos_row);
|
||||
|
||||
foreach ($row as $key => $value)
|
||||
{
|
||||
|
@ -659,10 +682,10 @@ function compute_categories_data(&$cats)
|
|||
*/
|
||||
function get_computed_categories($userdata, $filter_days=null)
|
||||
{
|
||||
$query = 'SELECT c.id cat_id, global_rank';
|
||||
$query = 'SELECT c.id AS cat_id, global_rank';
|
||||
// Count by date_available to avoid count null
|
||||
$query .= ',
|
||||
MAX(date_available) date_last, COUNT(date_available) nb_images
|
||||
MAX(date_available) AS date_last, COUNT(date_available) AS nb_images
|
||||
FROM '.CATEGORIES_TABLE.' as c
|
||||
LEFT JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON ic.category_id = c.id
|
||||
LEFT JOIN '.IMAGES_TABLE.' AS i
|
||||
|
@ -796,6 +819,47 @@ function get_default_user_info($convert_str = true)
|
|||
unset($cache['default_user']['user_id']);
|
||||
unset($cache['default_user']['status']);
|
||||
unset($cache['default_user']['registration_date']);
|
||||
|
||||
// theme and language fields may be null in the database (see
|
||||
// bug:1683) This is absolutely not nice to have this code in this
|
||||
// very place, but it avoids a complexe upgrade with an "automatic
|
||||
// fix" in the database => this code should be removed after branch
|
||||
// 2.1 if a migration tasks performs the job the same way
|
||||
if (empty($cache['default_user']['theme']))
|
||||
{
|
||||
mass_updates(
|
||||
USER_INFOS_TABLE,
|
||||
array(
|
||||
'primary' => array('user_id'),
|
||||
'update' => array('theme')
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'user_id' => $conf['default_user_id'],
|
||||
'theme' => PHPWG_DEFAULT_TEMPLATE
|
||||
)
|
||||
)
|
||||
);
|
||||
$cache['default_user']['theme'] = PHPWG_DEFAULT_TEMPLATE;
|
||||
}
|
||||
|
||||
if (empty($cache['default_user']['language']))
|
||||
{
|
||||
mass_updates(
|
||||
USER_INFOS_TABLE,
|
||||
array(
|
||||
'primary' => array('user_id'),
|
||||
'update' => array('language')
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'user_id' => $conf['default_user_id'],
|
||||
'language' => PHPWG_DEFAULT_LANGUAGE
|
||||
)
|
||||
)
|
||||
);
|
||||
$cache['default_user']['language'] = PHPWG_DEFAULT_LANGUAGE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1040,7 +1104,7 @@ function log_user($user_id, $remember_me)
|
|||
if ( session_id()!="" )
|
||||
{ // we regenerate the session for security reasons
|
||||
// see http://www.acros.si/papers/session_fixation.pdf
|
||||
session_regenerate_id();
|
||||
session_regenerate_id(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -41,7 +41,7 @@ function initialize_menu()
|
|||
//--------------------------------------------------------------- external links
|
||||
if ( ($block=$menu->get_block('mbLinks')) and !empty($conf['links']) )
|
||||
{
|
||||
$data = array();
|
||||
$block->data = array();
|
||||
foreach ($conf['links'] as $url => $url_data)
|
||||
{
|
||||
if (!is_array($url_data))
|
||||
|
@ -69,11 +69,13 @@ function initialize_menu()
|
|||
'FEATURES' => (isset($url_data['nw_features']) ? $url_data['nw_features'] : '')
|
||||
);
|
||||
}
|
||||
$data[] = $tpl_var;
|
||||
$block->data[] = $tpl_var;
|
||||
}
|
||||
}
|
||||
$block->template = 'menubar_links.tpl';
|
||||
$block->data = $data;
|
||||
if ( !empty($block->data) )
|
||||
{
|
||||
$block->template = 'menubar_links.tpl';
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------- categories
|
||||
|
@ -143,7 +145,7 @@ function initialize_menu()
|
|||
else
|
||||
{
|
||||
$selection = array_slice( $page['items'], $page['start'], $page['nb_image_page'] );
|
||||
$tags = add_level_to_tags( get_common_tags($selection, 12) );
|
||||
$tags = add_level_to_tags( get_common_tags($selection, $conf['content_tag_cloud_items_number']) );
|
||||
foreach ($tags as $tag)
|
||||
{
|
||||
$block->data[] =
|
||||
|
|
|
@ -46,8 +46,8 @@ if ( $page['show_comments'] and isset( $_POST['content'] ) )
|
|||
}
|
||||
|
||||
$comm = array(
|
||||
'author' => trim( stripslashes(@$_POST['author']) ),
|
||||
'content' => trim( stripslashes($_POST['content']) ),
|
||||
'author' => trim( @$_POST['author'] ),
|
||||
'content' => trim( $_POST['content'] ),
|
||||
'image_id' => $page['image_id'],
|
||||
);
|
||||
|
||||
|
@ -237,7 +237,7 @@ SELECT
|
|||
$content = '';
|
||||
if ('reject'===@$comment_action)
|
||||
{
|
||||
$content = htmlspecialchars($comm['content']);
|
||||
$content = htmlspecialchars( stripslashes($comm['content']) );
|
||||
}
|
||||
$template->assign('comment_add',
|
||||
array(
|
||||
|
|
|
@ -26,6 +26,19 @@
|
|||
*
|
||||
*/
|
||||
|
||||
// $picture['current']['high_url'] may not be set if the user has no access
|
||||
// to the high definition, but we may want to display metadata and read the
|
||||
// high definition is available
|
||||
$high_url = null;
|
||||
if (isset($picture['current']['high_url']))
|
||||
{
|
||||
$high_url = $picture['current']['high_url'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$high_url = get_high_url($picture['current']);
|
||||
}
|
||||
|
||||
include_once(PHPWG_ROOT_PATH.'/include/functions_metadata.inc.php');
|
||||
if (($conf['show_exif']) and (function_exists('read_exif_data')))
|
||||
{
|
||||
|
@ -38,13 +51,11 @@ if (($conf['show_exif']) and (function_exists('read_exif_data')))
|
|||
$exif = get_exif_data($picture['current']['image_path'], $exif_mapping);
|
||||
if (count($exif) == 0 and $picture['current']['has_high'])
|
||||
{
|
||||
$exif = get_exif_data($picture['current']['high_url'], $exif_mapping);
|
||||
$exif = get_exif_data($high_url, $exif_mapping);
|
||||
}
|
||||
|
||||
if (count($exif) > 0)
|
||||
{
|
||||
$exif = trigger_event('format_exif_data', $exif, $picture['current'] );
|
||||
|
||||
$tpl_meta = array(
|
||||
'TITLE' => 'EXIF Metadata',
|
||||
'lines' => array(),
|
||||
|
@ -67,14 +78,14 @@ if (($conf['show_exif']) and (function_exists('read_exif_data')))
|
|||
else
|
||||
{
|
||||
$tokens = explode(';', $field);
|
||||
if (isset($exif[$tokens[0]][$tokens[1]]))
|
||||
if (isset($exif[$field]))
|
||||
{
|
||||
$key = $tokens[1];
|
||||
if (isset($lang['exif_field_'.$tokens[1]]))
|
||||
if (isset($lang['exif_field_'.$key]))
|
||||
{
|
||||
$key = $lang['exif_field_'.$tokens[1]];
|
||||
$key = $lang['exif_field_'.$key];
|
||||
}
|
||||
$tpl_meta['lines'][$key] = $exif[$tokens[0]][$tokens[1]];
|
||||
$tpl_meta['lines'][$key] = $exif[$field];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -87,7 +98,7 @@ if ($conf['show_iptc'])
|
|||
$iptc = get_iptc_data($picture['current']['image_path'], $conf['show_iptc_mapping']);
|
||||
if (count($iptc) == 0 and $picture['current']['has_high'])
|
||||
{
|
||||
$iptc = get_iptc_data($picture['current']['high_url'], $conf['show_iptc_mapping']);
|
||||
$iptc = get_iptc_data($high_url, $conf['show_iptc_mapping']);
|
||||
}
|
||||
|
||||
if (count($iptc) > 0)
|
||||
|
|
|
@ -61,6 +61,10 @@ else
|
|||
$rewritten = $key;
|
||||
break;
|
||||
}
|
||||
|
||||
// the $_GET keys are not protected in include/common.inc.php, only the values
|
||||
$rewritten = pwg_db_real_escape_string($rewritten);
|
||||
|
||||
$page['root_path'] = PHPWG_ROOT_PATH;
|
||||
}
|
||||
|
||||
|
@ -219,8 +223,6 @@ $forbidden = get_sql_condition_FandF(
|
|||
// +-----------------------------------------------------------------------+
|
||||
if ('categories' == $page['section'])
|
||||
{
|
||||
$page['title'] = '<a href="'.get_absolute_root_url().$conf['home_page'].'">'.l10n('Home').'</a>';
|
||||
|
||||
if (isset($page['category']))
|
||||
{
|
||||
$page = array_merge(
|
||||
|
@ -232,11 +234,12 @@ if ('categories' == $page['section'])
|
|||
$page['category']['comment'],
|
||||
'main_page_category_description'
|
||||
),
|
||||
'title' =>
|
||||
$page['title'].$conf['level_separator'].get_cat_display_name($page['category']['upper_names'], '', false),
|
||||
'title' => get_cat_display_name($page['category']['upper_names'], '', false),
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
$page['title'] = ''; // will be set later
|
||||
|
||||
if
|
||||
(
|
||||
|
@ -260,7 +263,7 @@ if ('categories' == $page['section'])
|
|||
SELECT id
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
WHERE
|
||||
uppercats LIKE "'.$page['category']['uppercats'].',%" '
|
||||
uppercats LIKE \''.$page['category']['uppercats'].',%\' '
|
||||
.get_sql_condition_FandF(
|
||||
array
|
||||
(
|
||||
|
@ -290,7 +293,7 @@ SELECT id
|
|||
|
||||
// Main query
|
||||
$query = '
|
||||
SELECT DISTINCT(image_id)'.get_extra_fields($conf['order_by']).'
|
||||
SELECT DISTINCT(image_id)
|
||||
FROM '.IMAGE_CATEGORY_TABLE.'
|
||||
INNER JOIN '.IMAGES_TABLE.' ON id = image_id
|
||||
WHERE
|
||||
|
@ -324,7 +327,7 @@ else
|
|||
if (!empty($items) )
|
||||
{
|
||||
$query = '
|
||||
SELECT DISTINCT image_id'.get_extra_fields($conf['order_by']).'
|
||||
SELECT DISTINCT image_id
|
||||
FROM '.IMAGE_CATEGORY_TABLE.' INNER JOIN '.IMAGES_TABLE.' ON image_id=id
|
||||
WHERE image_id IN ('.implode(',', $items).')
|
||||
'.$forbidden.
|
||||
|
@ -373,8 +376,8 @@ SELECT DISTINCT image_id'.get_extra_fields($conf['order_by']).'
|
|||
$page = array_merge(
|
||||
$page,
|
||||
array(
|
||||
'title' => l10n('Favorites')
|
||||
)
|
||||
'title' => l10n('Favorites')
|
||||
)
|
||||
);
|
||||
|
||||
if (!empty($_GET['action']) && ($_GET['action'] == 'remove_all_from_favorites'))
|
||||
|
@ -441,7 +444,7 @@ SELECT image_id
|
|||
}
|
||||
|
||||
$query = '
|
||||
SELECT DISTINCT(id)'.get_extra_fields($conf['order_by']).'
|
||||
SELECT DISTINCT(id)
|
||||
FROM '.IMAGES_TABLE.'
|
||||
INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id
|
||||
WHERE
|
||||
|
@ -529,7 +532,7 @@ SELECT DISTINCT(id), average_rate
|
|||
else if ($page['section'] == 'list')
|
||||
{
|
||||
$query ='
|
||||
SELECT DISTINCT(id)'.get_extra_fields($conf['order_by']).'
|
||||
SELECT DISTINCT(id)
|
||||
FROM '.IMAGES_TABLE.'
|
||||
INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id = ic.image_id
|
||||
WHERE image_id IN ('.implode(',', $page['list']).')
|
||||
|
@ -558,6 +561,16 @@ if (isset($page['chronology_field']))
|
|||
initialize_calendar();
|
||||
}
|
||||
|
||||
// title update
|
||||
if (isset($page['title']))
|
||||
{
|
||||
if (!empty($page['title']))
|
||||
{
|
||||
$page['title'] = $conf['level_separator'].$page['title'];
|
||||
}
|
||||
$page['title'] = '<a href="'.get_gallery_home_url().'">'.l10n('Home').'</a>'.$page['title'];
|
||||
}
|
||||
|
||||
// add meta robots noindex, nofollow to avoid unnecesary robot crawls
|
||||
$page['meta_robots']=array();
|
||||
if ( isset($page['chronology_field'])
|
||||
|
|
|
@ -135,6 +135,7 @@ class Template {
|
|||
{
|
||||
$tpl_var['local_head'] = realpath($root.'/'.$theme.'/'.$themeconf['local_head'] );
|
||||
}
|
||||
$themeconf['id'] = $theme;
|
||||
$this->smarty->append('themes', $tpl_var);
|
||||
$this->smarty->append('themeconf', $themeconf, true);
|
||||
}
|
||||
|
|
|
@ -371,6 +371,7 @@ Request format: ".@$this->_requestFormat." Response format: ".@$this->_responseF
|
|||
|
||||
@header('Content-Type: '.$contentType.'; charset='.get_pwg_charset());
|
||||
print_r($encodedResponse);
|
||||
trigger_action('sendResponse', $encodedResponse );
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -477,7 +478,7 @@ Request format: ".@$this->_requestFormat." Response format: ".@$this->_responseF
|
|||
|
||||
if ( $method==null )
|
||||
{
|
||||
return new PwgError(WS_ERR_INVALID_METHOD, 'Method name "'.$methodName.'" is not valid');
|
||||
return new PwgError(WS_ERR_INVALID_METHOD, 'Method name is not valid');
|
||||
}
|
||||
|
||||
// parameter check and data coercion !
|
||||
|
@ -576,4 +577,4 @@ Request format: ".@$this->_requestFormat." Response format: ".@$this->_responseF
|
|||
return $res;
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
|
@ -175,7 +175,7 @@ function ws_std_get_image_xml_attributes()
|
|||
function ws_getVersion($params, &$service)
|
||||
{
|
||||
global $conf;
|
||||
if ($conf['show_version'])
|
||||
if ($conf['show_version'] or is_admin() )
|
||||
return PHPWG_VERSION;
|
||||
else
|
||||
return new PwgError(403, 'Forbidden');
|
||||
|
@ -285,7 +285,7 @@ SELECT id, name, permalink, image_order
|
|||
$order_by = empty($order_by) ? $conf['order_by'] : 'ORDER BY '.$order_by;
|
||||
|
||||
$query = '
|
||||
SELECT i.*, GROUP_CONCAT(category_id) cat_ids
|
||||
SELECT i.*, GROUP_CONCAT(category_id) AS cat_ids
|
||||
FROM '.IMAGES_TABLE.' i
|
||||
INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON i.id=image_id
|
||||
WHERE '. implode('
|
||||
|
@ -405,6 +405,7 @@ function ws_categories_getList($params, &$service)
|
|||
|
||||
$query = '
|
||||
SELECT id, name, permalink, uppercats, global_rank,
|
||||
comment,
|
||||
nb_images, count_images AS total_nb_images,
|
||||
date_last, max_date_last, count_categories AS nb_categories
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
|
@ -435,6 +436,14 @@ SELECT id, name, permalink, uppercats, global_rank,
|
|||
)
|
||||
);
|
||||
|
||||
$row['comment'] = strip_tags(
|
||||
trigger_event(
|
||||
'render_category_description',
|
||||
$row['comment'],
|
||||
'ws_categories_getList'
|
||||
)
|
||||
);
|
||||
|
||||
array_push($cats, $row);
|
||||
}
|
||||
usort($cats, 'global_rank_compare');
|
||||
|
@ -482,6 +491,7 @@ SELECT
|
|||
SELECT
|
||||
id,
|
||||
name,
|
||||
comment,
|
||||
uppercats,
|
||||
global_rank
|
||||
FROM '.CATEGORIES_TABLE.'
|
||||
|
@ -500,6 +510,13 @@ SELECT
|
|||
'ws_categories_getAdminList'
|
||||
)
|
||||
);
|
||||
$row['comment'] = strip_tags(
|
||||
trigger_event(
|
||||
'render_category_description',
|
||||
$row['comment'],
|
||||
'ws_categories_getAdminList'
|
||||
)
|
||||
);
|
||||
array_push($cats, $row);
|
||||
}
|
||||
|
||||
|
@ -548,8 +565,8 @@ SELECT DISTINCT image_id
|
|||
}
|
||||
|
||||
$comm = array(
|
||||
'author' => trim( stripslashes($params['author']) ),
|
||||
'content' => trim( stripslashes($params['content']) ),
|
||||
'author' => trim( $params['author'] ),
|
||||
'content' => trim( $params['content'] ),
|
||||
'image_id' => $params['image_id'],
|
||||
);
|
||||
|
||||
|
@ -563,7 +580,7 @@ SELECT DISTINCT image_id
|
|||
{
|
||||
case 'reject':
|
||||
array_push($infos, l10n('Your comment has NOT been registered because it did not pass the validation rules') );
|
||||
return new PwgError(403, implode("\n", $infos) );
|
||||
return new PwgError(403, implode("; ", $infos) );
|
||||
case 'validate':
|
||||
case 'moderate':
|
||||
$ret = array(
|
||||
|
@ -693,7 +710,7 @@ SELECT COUNT(rate) AS count
|
|||
}
|
||||
|
||||
$query = '
|
||||
SELECT COUNT(id) nb_comments
|
||||
SELECT COUNT(id) AS nb_comments
|
||||
FROM '.COMMENTS_TABLE.'
|
||||
WHERE '.$where_comments;
|
||||
list($nb_comments) = array_from_query($query, 'nb_comments');
|
||||
|
@ -1143,7 +1160,7 @@ SELECT
|
|||
FROM '.IMAGES_TABLE.'
|
||||
WHERE id = '.$params['image_id'].'
|
||||
;';
|
||||
list($file_path, $original_sum) = mysql_fetch_row(pwg_query($query));
|
||||
list($file_path, $original_sum) = pwg_db_fetch_row(pwg_query($query));
|
||||
|
||||
// TODO only files added with web API can be updated with web API
|
||||
|
||||
|
@ -1356,10 +1373,11 @@ function ws_session_getStatus($params, &$service)
|
|||
global $user;
|
||||
$res = array();
|
||||
$res['username'] = is_a_guest() ? 'guest' : stripslashes($user['username']);
|
||||
foreach ( array('status', 'template', 'theme', 'language') as $k )
|
||||
foreach ( array('status', 'theme', 'language') as $k )
|
||||
{
|
||||
$res[$k] = $user[$k];
|
||||
}
|
||||
$res['pwg_token'] = get_pwg_token();
|
||||
$res['charset'] = get_pwg_charset();
|
||||
return $res;
|
||||
}
|
||||
|
@ -1454,7 +1472,7 @@ function ws_tags_getImages($params, &$service)
|
|||
else
|
||||
{
|
||||
$query = '
|
||||
SELECT image_id, GROUP_CONCAT(tag_id) tag_ids
|
||||
SELECT image_id, GROUP_CONCAT(tag_id) AS tag_ids
|
||||
FROM '.IMAGE_TAG_TABLE.'
|
||||
WHERE tag_id IN ('.implode(',',$tag_ids).')
|
||||
GROUP BY image_id';
|
||||
|
@ -1712,10 +1730,10 @@ SELECT
|
|||
WHERE id = '.$params['image_id'].'
|
||||
;';
|
||||
$result = pwg_query($query);
|
||||
if (mysql_num_rows($result) == 0) {
|
||||
if (pwg_db_num_rows($result) == 0) {
|
||||
return new PwgError(404, "image_id not found");
|
||||
}
|
||||
list($path) = mysql_fetch_row($result);
|
||||
list($path) = pwg_db_fetch_row($result);
|
||||
|
||||
$ret = array();
|
||||
|
||||
|
@ -1788,6 +1806,8 @@ function ws_images_setInfo($params, &$service)
|
|||
return new PwgError(WS_ERR_INVALID_PARAM, "Invalid image_id");
|
||||
}
|
||||
|
||||
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
|
||||
|
||||
$query='
|
||||
SELECT *
|
||||
FROM '.IMAGES_TABLE.'
|
||||
|
@ -1843,7 +1863,6 @@ SELECT *
|
|||
{
|
||||
$update['id'] = $params['image_id'];
|
||||
|
||||
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
|
||||
mass_updates(
|
||||
IMAGES_TABLE,
|
||||
array(
|
||||
|
@ -1866,8 +1885,6 @@ SELECT *
|
|||
// and now, let's create tag associations
|
||||
if (isset($params['tag_ids']))
|
||||
{
|
||||
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
|
||||
|
||||
$tag_ids = explode(',', $params['tag_ids']);
|
||||
|
||||
if ('replace' == $params['multiple_value_mode'])
|
||||
|
|
|
@ -10,7 +10,7 @@ INSERT INTO piwigo_config (param,value,comment) VALUES ('email_admin_on_comment_
|
|||
INSERT INTO piwigo_config (param,value,comment) VALUES ('email_admin_on_comment_deletion','false','Send an email to the administrators when a comment is deleted');
|
||||
INSERT INTO piwigo_config (param,value,comment) VALUES ('gallery_locked','false','Lock your gallery temporary for non admin users');
|
||||
INSERT INTO piwigo_config (param,value,comment) VALUES ('gallery_title','Piwigo demonstration site','Title at top of each page and for RSS feed');
|
||||
INSERT INTO piwigo_config (param,value,comment) VALUES ('gallery_url','http://piwigo.org/demo','URL given in RSS feed');
|
||||
INSERT INTO piwigo_config (param,value,comment) VALUES ('gallery_url','','Optional alternate homepage for the gallery');
|
||||
INSERT INTO piwigo_config (param,value,comment) VALUES ('rate','true','Rating pictures feature is enabled');
|
||||
INSERT INTO piwigo_config (param,value,comment) VALUES ('rate_anonymous','true','Rating pictures feature is also enabled for visitors');
|
||||
INSERT INTO piwigo_config (param,value,comment) VALUES ('page_banner','<h1>Piwigo demonstration site</h1><p>My photos web site</p>','html displayed on the top each page of your gallery');
|
||||
|
|
|
@ -318,8 +318,8 @@ foreach ($queries as $query)
|
|||
//
|
||||
$params = array(
|
||||
'gallery_url' => array(
|
||||
'http://piwigo.org/demo',
|
||||
'URL given in RSS feed'
|
||||
'',
|
||||
'Optional alternate homepage for the gallery'
|
||||
),
|
||||
'rate' => array(
|
||||
'true',
|
||||
|
|
14
language/ar_SA/about.html
Normal file
14
language/ar_SA/about.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
<p>معرض الصور بدعم من Piwigo</p>
|
||||
|
||||
<p>
|
||||
piwigo برنامج معرض الصور برنامج لشبكة الانترنت ، أنشأه مجموعه من المطورين و المستخدمين ، وجود الإضافات جعلت من Piwigo سهل التخصيص ، كتبريد الحلوه ، برنامج Piwigo برنامج مجاني و مفتوح .</p>
|
||||
|
||||
<p id="linkToPiwigo"><a href="http://piwigo.org">زيارة موقع Piwigo</a></p>
|
||||
|
||||
<p>تم ترجمته الى اللغة العربية حسب ( الترتيب الأبجدي ) بواسطة :
|
||||
|
||||
<ul>
|
||||
<li><a href="http://piwigo.org/forum/profile.php?id=5100">mohammed</a></li>
|
||||
|
||||
</ul>
|
||||
.... جزيل الشكر و الامتنان لك </p>
|
|
@ -69,7 +69,6 @@ $lang['Category elements associated to the following categories: %s'] = 'تنص
|
|||
$lang['Check for upgrade failed for unknown reasons.'] = 'لم يتم التحدث لاسباب غير معروفه.';
|
||||
$lang['Check for upgrade'] = 'التأكد من التحديثات';
|
||||
$lang['Comments for all'] = 'يسمح للجميع بالتعليق دون استثناء و دون طائفية :)';
|
||||
$lang['Controversy'] = 'التعليقات';
|
||||
$lang['Current name'] = 'الاسم الحالي';
|
||||
$lang['Database'] = 'قاعدة البيانات';
|
||||
$lang['Deactivate'] = 'تعطيل';
|
||||
|
@ -165,7 +164,7 @@ $lang['Site manager'] = 'إدارة الموقع';
|
|||
$lang['Status'] = 'الحالة';
|
||||
$lang['Statistics'] = 'الأحصائيات';
|
||||
$lang['Storage category'] = 'مخزن الألبومات';
|
||||
$lang['Sum of rates'] = 'مجموع التييم';
|
||||
$lang['Sum of rates'] = 'مجموع التقييم';
|
||||
$lang['Tag "%s" already exists'] = 'الكلمات "%s" موجودة بالفعل';
|
||||
$lang['Tag "%s" was added'] = 'تم اضافة هذه الكلمة "%s"';
|
||||
$lang['Tag selection'] = 'اختيار الكلمات الدلائلية';
|
||||
|
@ -237,8 +236,6 @@ $lang['group "%s" updated'] = 'المجموعه "%s" تم تحميلها';
|
|||
$lang['group'] = 'المجموعة';
|
||||
$lang['The name of a group must not contain " or \' or be empty.'] = 'لا تستخدم الترقيم "/" و لا تترك اسم المجموع فارغ';
|
||||
$lang['This name is already used by another group.'] = 'هذا الاسم مستخدم من قبل مجموعه أ×خرى.';
|
||||
$lang['Groups'] = 'مجموعات';
|
||||
$lang[''] = '';
|
||||
$lang['High definition'] = 'ابعاد الارتفاع';
|
||||
$lang['jump to category'] = 'اغفز للمجموعة';
|
||||
$lang['jump to image'] = 'اغفز للصورة';
|
||||
|
@ -299,7 +296,6 @@ $lang['Send mail as'] = 'أرسل بريد كـ ';
|
|||
$lang['Send mail to users'] = 'ارسل بريد للمستخدمين';
|
||||
$lang['Send'] = 'أرسل';
|
||||
$lang['Options'] = 'خيارات';
|
||||
$lang['Send'] = 'أرســل';
|
||||
$lang['Subscribed'] = 'مشترك';
|
||||
$lang['Subscribe'] = 'اشتـراك';
|
||||
$lang['Parameters'] = 'البارامترات';
|
||||
|
@ -324,7 +320,6 @@ $lang['Available only with HTML format'] = 'متاح فقط بصيغة HTML';
|
|||
$lang['no write access'] = 'حرية التنفيذ مقيدة';
|
||||
$lang['Permissions'] = 'أذونات';
|
||||
$lang['private'] = 'خاص';
|
||||
$lang['Properties'] = 'خصائص';
|
||||
$lang['public'] = 'العام';
|
||||
$lang['Purge never used notification feeds'] = 'عدم تسهيل استخدام التغذية الراجعه ';
|
||||
$lang['Purge sessions'] = 'تبسط او تسهيل الجلسات';
|
||||
|
@ -360,7 +355,6 @@ $lang['status'] = 'الحالة';
|
|||
$lang['Directory'] = 'الدليل';
|
||||
$lang['sub-categories'] = 'الألبوم الفرعي';
|
||||
$lang['synchronize metadata'] = 'مزامنة البيانات الوصفية';
|
||||
$lang['synchronize'] = 'المزامنة';
|
||||
$lang['target'] = 'الهـدف';
|
||||
$lang['Thumbnail'] = 'المــصغرة';
|
||||
$lang['title'] = 'العنوان';
|
||||
|
@ -432,8 +426,7 @@ $lang['synchronize files structure with database'] = 'مزامنة الملفا
|
|||
$lang['synchronize files metadata with database elements informations'] = 'مزامنة الملعومات التفصيلة مع الصور الموجودة في قاعدة البيانات';
|
||||
$lang['even already synchronized elements'] = 'سبق التزامن مع الصور';
|
||||
$lang['Used metadata'] = 'معومات التفصيلة مُـستخدمة';
|
||||
$lang['The name of directories and files must be composed of letters, numbers, "-", "_" or "."'] = '
|
||||
اسم الأدلة والملفات يجب أن تكون مكونة من الحروف والأرقام ، "--" ، "_" أو "."';
|
||||
$lang['The name of directories and files must be composed of letters, numbers, "-", "_" or "."'] = 'اسم الأدلة والملفات يجب أن تكون مكونة من الحروف والأرقام ، "--" ، "_" أو "."';
|
||||
$lang['wrong filename'] = 'خطأ فادح في اسم الملف';
|
||||
$lang['Upload'] = 'تحميل';
|
||||
$lang['user "%s" added'] = ' تم اضافة المستخدم"%s" بنجاح';
|
||||
|
@ -443,7 +436,6 @@ $lang['user_status_generic'] = 'عام';
|
|||
$lang['user_status_guest'] = 'ضيف محترم';
|
||||
$lang['user_status_normal'] = 'مستخدم';
|
||||
$lang['user_status_webmaster'] = 'مسؤول الموقع';
|
||||
$lang['Users'] = 'مستخدم';
|
||||
$lang['Virtual category'] = 'ألبوم افتراضي';
|
||||
$lang['Waiting'] = 'تحت الانتظار';
|
||||
$lang['default'] = 'افتراضي';
|
||||
|
@ -452,7 +444,6 @@ $lang['Advanced features'] = 'مميزات متقدمة';
|
|||
$lang['Not linked elements'] = 'عناصر غير مربوطة';
|
||||
$lang['Specials'] = 'خــاص';
|
||||
$lang['Files with same name in more than one physical category'] = 'ملفات تحمل نفس الاسم في أكثر من ألبوم ';
|
||||
|
||||
$lang['Overall'] = 'اجماليا';
|
||||
$lang['Year'] = 'سنة';
|
||||
$lang['Month'] = 'شهر';
|
||||
|
@ -460,7 +451,6 @@ $lang['Day'] = 'يوم';
|
|||
$lang['Pages seen'] = 'صفحة مشاهده';
|
||||
$lang['Pictures'] = 'الصور';
|
||||
$lang['Time'] = 'الوقت';
|
||||
$lang['User'] = 'المستخدم';
|
||||
$lang['IP'] = 'IP';
|
||||
$lang['Element'] = 'عنصر';
|
||||
$lang['Section'] = 'القسم';
|
||||
|
@ -468,10 +458,9 @@ $lang['Tags'] = 'كلمات دلائلية';
|
|||
$lang['Save page visits by guests'] = 'حفظ الصفحات المشاهده من قبل الضيوف';
|
||||
$lang['Save page visits by users'] = 'حفظ الصفحة المشاهدة من قبل المستخدمين';
|
||||
$lang['Save page visits by administrators'] = 'حفظ الصفحة المشاهدو من قبل الادارة العامة';
|
||||
$lang['Properties'] = 'الخصائص';
|
||||
$lang['An information email was sent to group "%s"'] = 'معلومات تم ارسالها الي المجموعة "%s';
|
||||
$lang['Send an information email to group members'] = 'أرسل الملعومات الي أعضاء المجموعة';
|
||||
$lang['Group'] = 'Group';
|
||||
$lang['Group'] = 'مجموعه';
|
||||
$lang['[%s] Come to visit the category %s'] = 'ألبوم تم تحديثه [%s]';
|
||||
$lang['Hello,'] = ' السلام عليكم و رحمة الله و بركاته,';
|
||||
$lang['See you soon.'] = 'زيارتك للمعرض تعني لي الكثير ..';
|
||||
|
@ -481,7 +470,6 @@ $lang['none'] = 'لا شيء';
|
|||
$lang['high'] = 'الارتفاع';
|
||||
$lang['other'] = 'آخــر';
|
||||
$lang['Element type'] = 'نوع العنـصر';
|
||||
$lang['User'] = 'مســتخدم';
|
||||
$lang['Image id'] = 'هوية الصورة';
|
||||
$lang['Summary'] = 'ملخص';
|
||||
$lang['%d line filtered'] = '%d خط مـُرشح';
|
||||
|
@ -492,7 +480,6 @@ $lang['Hour'] = 'سـاعـة';
|
|||
$lang['guest'] = 'ضيف';
|
||||
$lang['default values'] = 'قيم أفتراضية';
|
||||
$lang['High filesize'] = 'ارتفاع حجم الملف';
|
||||
// --------- Starting below: New or revised $lang ---- from version 1.7.1
|
||||
$lang['Guest cannot be deleted'] = 'هل انت جاد بطرد الضيف و حذفه (لايمكن ذلك)';
|
||||
$lang['Default user cannot be deleted'] = 'المستخدم الافتراضي لا يمكن حذفه';
|
||||
$lang['Purge history detail'] = 'معالجة تفاصيل السجل';
|
||||
|
@ -523,7 +510,6 @@ $lang['Main "webmaster" user status is incorrect'] = 'الرئيسية حالة
|
|||
$lang['User "%s" created with "%s" like password'] = 'المستخدم "%s" أنشأ مع "%s" مثل كلمة المرور';
|
||||
$lang['Status of user "%s" updated'] = 'تم نحديث حالة المستخدم"%s" ';
|
||||
$lang['add new elements to caddie'] = 'اضف صور جديدة الى السلة';
|
||||
// --------- Starting below: New or revised $lang ---- from Butterfly
|
||||
$lang['No display'] = 'لم يعرض';
|
||||
$lang['Classic display'] = 'عرض عادي';
|
||||
$lang['Hoverbox display'] = 'عرض مربعات عائمة';
|
||||
|
@ -573,7 +559,6 @@ $lang['Please check "plugins" folder and sub-folders permissions (CHMOD).'] = '
|
|||
$lang['Can\'t connect to server.'] = 'يمكن\'لا الاتصال بالخادم.';
|
||||
$lang['Purge compiled templates'] = 'معالجة جميع النماذج';
|
||||
$lang['Caddie is currently empty'] = ' الــسلة خاليــة ';
|
||||
$lang['Upload'] = 'تحميل';
|
||||
$lang['Show upload link every time'] = 'اظهر رابط التحميل في كل وقت';
|
||||
$lang['User access level to upload'] = 'مستوى موصول المستخدمين للتحميل';
|
||||
$lang['ACCESS_0'] = 'حرية الوصول';
|
||||
|
@ -595,18 +580,17 @@ $lang['Last hit'] = 'النقرة الاخيرة';
|
|||
$lang['GD library is missing'] = ' مفقودة GD مكتبة ';
|
||||
$lang['Templates'] = 'النماذج';
|
||||
$lang['Extend for templates'] = 'توسيع النماذج';
|
||||
$lang['Replacement of original templates by customized templates from template-extension subfolder'] =
|
||||
'استبدال النماذج الأصلية من خلال نماذج من قالب مخصص في المجلد الفرعي';
|
||||
$lang['Replacement of original templates by customized templates from template-extension subfolder'] = 'استبدال النماذج الأصلية من خلال نماذج من قالب مخصص في المجلد الفرعي';
|
||||
$lang['Replacers (customized templates)'] = 'تبديل(نماذج مخصصة)';
|
||||
$lang['Original templates'] = 'نماذج اصلية';
|
||||
$lang['Optional URL keyword'] = 'الكلمات الاساسية URL خيارات';
|
||||
$lang['Templates configuration has been recorded.'] = 'تم تسجيل قاولب التشكيل';
|
||||
$lang['All optimizations have been successfully completed.'] = 'تمت عملية التحسينات بنجاح.';
|
||||
$lang['Optimizations have been completed with some errors.'] = 'اكتملت عملية التحسين مع بعض الاخطاء';
|
||||
$lang['Optimizations have been completed with some errors.'] = 'اكتملت عملية التحسين مع';
|
||||
$lang['Modify information'] = 'تعديل المعلومات';
|
||||
$lang['edit category informations'] = 'تحرير ملعومات الالبوم';
|
||||
$lang['nothing'] = 'لا شيء';
|
||||
$lang['overrides existing values with empty ones'] = 'overrides existing values with empty ones';
|
||||
$lang['overrides existing values with empty ones'] = 'استبدل القيم الموجودة بقيم فارغة';
|
||||
$lang['manage image ranks'] = 'إدارة ترتيب الصور';
|
||||
$lang['Manage image ranks'] = 'إدارة ترتيب الصور';
|
||||
$lang['Edit ranks'] = 'تحرير الترتيب';
|
||||
|
@ -616,18 +600,159 @@ $lang['ranks'] = 'الترتيب';
|
|||
$lang['Drag to re-order'] = 'أسحب لتغيير';
|
||||
$lang['Quick Local Synchronization'] = 'فحص سريع للمستجدات';
|
||||
$lang['No photo can be deleted'] = 'لا صور يمكن حذفها';
|
||||
$lang['Note: Only deletes photos added with pLoader'] = 'pLoader ملاحظة :فقط يمكنك حذف الصورالمحملة عن طريق برنامج';
|
||||
$lang['Delete selected photos'] = 'حذف الصورالمختارة';
|
||||
$lang['%d photo was deleted'] = ' صورة محذوفة %d';
|
||||
$lang['%d photos were deleted'] = ' صور محذوفة %d';
|
||||
$lang['Downloads'] = 'تنزيل';
|
||||
$lang['Released on'] = 'Released on تمكين استخدام';
|
||||
$lang['Number of downloads'] = 'عدد التنزيلات';
|
||||
// --------- Starting below: New or revised $lang ---- from Colibri
|
||||
$lang['Piwigo Announcements Newsletter'] = 'اعلانات Piwigo الإخبارية';
|
||||
$lang['Keep in touch with Piwigo project, subscribe to Piwigo Announcement Newsletter. You will receive emails when a new release is available (sometimes including a security bug fix, it\'s important to know and upgrade) and when major events happen to the project. Only a few emails a year.'] = 'البقاء على اتصال مع Piwigo المشروع ، الاشتراك في النشرة Piwigo إعلان. سوف تتلقى رسائل البريد الإلكتروني عندما يتوفر الإصدار الجديد (في بعض الأحيان بما في تثبيت الأمن علة ، / / من المهم معرفة والارتقاء) ، وعندما يحدث الأحداث الرئيسية لهذا المشروع. سوى عدد قليل من الرسائل الإلكترونية في السنة.';
|
||||
$lang['Subscribe %s'] = 'Subscribe %s';
|
||||
$lang['Subscribe %s'] = ' %s اشتراك ';
|
||||
$lang['Subscribe %s to Piwigo Announcements Newsletter'] = 'اشترك %s لـ اعلانات Piwigo الإخبارية';
|
||||
$lang['Purge search history'] = 'معالجة احصائيات البحث';
|
||||
$lang['Hide'] = 'أخفاء';
|
||||
?>
|
||||
$lang['Menu Management'] = 'القائمة الرئيسية';
|
||||
$lang['Processing treatment.'] = 'معالجة العرض';
|
||||
$lang['Please wait...'] = 'لحظات الانتظار أشغلها بالإستغفار ..';
|
||||
$lang['By rank'] = 'حسب المنزلة';
|
||||
$lang['Manual order'] = 'دليل النظام';
|
||||
$lang['Password is missing. Please enter the password.'] = 'لم تكتب كلمة المرور، فضلا ً أكتب كلمة المرور';
|
||||
$lang['Password confirmation is missing. Please confirm the chosen password.'] = 'لم يتم تأكيد كلمة المرور، فضلا ً لا أمر أكد المرور رحم الله والديك';
|
||||
$lang['Password confirmation error.'] = 'خطأ في تأكيد كلمة المرور';
|
||||
$lang['Allow users to edit theirs owns comments'] = 'اسمح للمستخدم بتحريرتعليقه الخاص';
|
||||
$lang['Allow users to delete theirs owns comments'] = 'اسمح للمستخدم بحذف تعليقه الخاص';
|
||||
$lang['Email administrators when a comment is modified'] = 'ابلغ المديرعن تعديل التعليم ';
|
||||
$lang['Email administrators when a comment is deleted'] = 'ابلغ المدير عند حذف تعليق عن طريق البريد';
|
||||
$lang['Cannot delete the old permalink !'] = 'الروابط الدائمة و القديمة لا يمكن حذفها';
|
||||
$lang['Hit'] = 'نقرة';
|
||||
$lang['Tools'] = 'أدوات';
|
||||
$lang['Photos'] = 'الصور';
|
||||
$lang['Themes'] = 'واجهة العرض';
|
||||
$lang['Instructions to use Piwigo'] = 'دليل استخدام Piwigo';
|
||||
$lang['Installed Themes'] = 'تثبيت واجهات العرض';
|
||||
$lang['Add New Theme'] = 'اضف واجهة جديدة';
|
||||
$lang['Forbid this theme to users'] = 'امنع هذه الواجهة عن المستخدمين';
|
||||
$lang['Set as default theme for unregistered and new users'] = 'اجعلها كواجهة افتراضية لغير المسجلين و المستخدمين الجدد';
|
||||
$lang['unknown'] = 'غير معروف';
|
||||
$lang['Upload Photos'] = 'رفع الصور';
|
||||
$lang['Drop into category'] = 'اتركها داخل الالبوم';
|
||||
$lang['+ Add an upload box'] = '+ اضف عن طريق برنامج الرفع';
|
||||
$lang['Create the "%s" directory at the root of your Piwigo installation'] = 'إنشاء "%s" دليل على جذر التثبيت الخاص Piwigo';
|
||||
$lang['Give write access (chmod 777) to "%s" directory at the root of your Piwigo installation'] = 'اعطي تصريح الكتابة (chmod 777) على مجلد "%s" الذي ثبت فيه المعرض ';
|
||||
$lang['existing category'] = 'الالبومات الموجودة';
|
||||
$lang['create a new category'] = 'انشأ ألبوم جديد ';
|
||||
$lang['Category name'] = 'أسم الألبوم';
|
||||
$lang['Category "%s" has been added'] = 'تم اضافته"%s"الألبوم ';
|
||||
$lang['Uploaded Photos'] = 'رفع الصور';
|
||||
$lang['%d photos uploaded'] = 'صور تم رفعها %d';
|
||||
$lang['Privacy level set to "%s"'] = '"%s"اعد مستوى الخصوصية ';
|
||||
$lang['Category "%s" now contains %d photos'] = ' الألبوم "%s" يحوي الآن %d صورة ';
|
||||
$lang['Manage this set of %d photos'] = '%d إدارة اعدادت صور';
|
||||
$lang['Select files'] = 'اختيار الملفات';
|
||||
$lang['JPEG files or ZIP archives with JPEG files inside please.'] = 'ملفات صور JPEG النقطيبة و ملفات مضغوطةZIP فقط';
|
||||
$lang['Everybody'] = 'الجميع';
|
||||
$lang['Who can see these photos?'] = 'من يمكنه رؤية هذه الصور';
|
||||
$lang['Who can see this photo?'] = 'من يمكنه رؤية هذه الصورة؟';
|
||||
$lang['... or switch to the old style form'] = '... أو اظهر الواجهة القديمة ';
|
||||
$lang['... or switch to the multiple files form'] = '... أو التحول إلى شكل ملفات متعددة';
|
||||
$lang['The websize maximum width must be a number between %d and %d'] = '%d و %d الحد الأعلى لعرض صورة الويب يجب أن تكون';
|
||||
$lang['The websize maximum height must be a number between %d and %d'] = '%d و %d الحد الأعلى لطول صورة الويب يجب أن تكون بين ';
|
||||
$lang['The websize image quality must be a number between %d and %d'] = '%d و %d جودة صورة الوب يجب أن تكون بين ';
|
||||
$lang['The thumbnail maximum width must be a number between %d and %d'] = '%d و %d الحد الأعلى لعرض مصغرات الصور يجب أن يكون بين';
|
||||
$lang['The thumbnail maximum height must be a number between %d and %d'] = '%d و %dالحد الأعلى لطول مصغرات الصور يجب ان يكون بين ';
|
||||
$lang['The thumbnail image quality must be a number between %d and %d'] = '%d و %dجودة مصغرات الصور يجب ان تكون بين ';
|
||||
$lang['Settings'] = 'الإعدادت';
|
||||
$lang['Web size photo'] = 'مقاس صورة ويب';
|
||||
$lang['Resize'] = 'تغيير المقاس';
|
||||
$lang['Maximum Width'] = 'الحد الأعلى لعرض الصورة';
|
||||
$lang['pixels'] = 'بكسل ';
|
||||
$lang['Maximum Height'] = 'الحد الاعلى لطول الصورة';
|
||||
$lang['Image Quality'] = 'جودة الصورة';
|
||||
$lang['Save Settings'] = 'حفظ الإعدادات';
|
||||
$lang['Your configuration settings are saved'] = 'تم حفظ الإعدادت ';
|
||||
$lang['Active Themes'] = 'تنشيط الواجهة';
|
||||
$lang['Add write access to the "%s" directory'] = ' "%s" اعطي تصريح الوصول و الكتابة على المجلد ';
|
||||
$lang['Administration Home'] = 'الأدارة الرئيسية';
|
||||
$lang['Change Admin Colors'] = 'تغير الوان لوحة التحكم';
|
||||
$lang['Delete this theme'] = 'أحذف هذه الواجهة';
|
||||
$lang['Directory does not exist'] = 'المجلد غير موجود';
|
||||
$lang['Download,'] = ',تحميل';
|
||||
$lang['FTP + Synchronization'] = 'أف تي بي + التزامن ';
|
||||
$lang['Get Support on Piwigo Forum'] = 'أحصل على الدعم الفني من منتدى Piwigo';
|
||||
$lang['Help Me'] = 'ساعدني';
|
||||
$lang['Impossible to activate this theme, the parent theme is missing: %s'] = ' %s لا يمكن تفعيل هذه الواجهة شيء ما مفقود ';
|
||||
$lang['Impossible to delete this theme. Other themes depends on it: %s'] = ' %sلا يمكن حذف هذه الواجهة لرتباطها بأشياء أخرى : ';
|
||||
$lang['Inactive Themes'] = 'الواجهات المفعلة';
|
||||
$lang['Install on your computer,'] = 'التثبيب على جهاز الكمبيوتر,';
|
||||
$lang['Make this theme available to users'] = 'أجعل هذه الواجهة متاحة للمستخدمين';
|
||||
$lang['Page end'] = 'نهاية الصفحة';
|
||||
$lang['Piwigo Uploader'] = 'برنامج piwigo للتحميل الصور';
|
||||
$lang['Read Piwigo Documentation'] = 'وثائق عن Piwigo';
|
||||
$lang['Start pLoader and add your photos.'] = 'بدء pLoader وإضافة الصور الخاصة بك.';
|
||||
$lang['Switch to clear or dark colors for administration'] = 'تغير لون لوحة التحكم أسود أو ابيض';
|
||||
$lang['Theme has been successfully installed'] = 'تم تثبيت واجهة المعرض بنجاح';
|
||||
$lang['Visit Gallery'] = 'معاينة المعرض';
|
||||
$lang['Visit Piwigo project website'] = 'زيارة الموقع الرئيسي لمشروع Piwigo ';
|
||||
$lang['pLoader stands for <em>Piwigo Uploader</em>. From your computer, pLoader prepares your photos and transfer them to your Piwigo photo gallery.'] = 'pLoader اعتمد على <em>Piwigo Uploader</em>. من الكمبيوتر ، pLoader تستعد صورك وتحويلها الى معرض الصور الخاص بك Piwigo.';
|
||||
$lang['Guest Settings'] = 'اعدادت الضيوف';
|
||||
$lang['Main Page'] = 'صفحة رئيسية';
|
||||
$lang['Photo Page'] = 'صفحة الصورة';
|
||||
$lang['Activate Navigation Bar'] = 'اظهار لوح تبديل و اظهار الصور';
|
||||
$lang['Activate Navigation Thumbnails'] = 'تنشيط امكانية المشاهدة عن طريق المصغرات أسف صفحة الصورة';
|
||||
$lang['Activate icon "%s"'] = 'اظهار ايقونة "%s"';
|
||||
$lang['Activate field "%s"'] = '"%s"تنشيط الحقل ';
|
||||
$lang['Photo Properties'] = 'خصائص الصور';
|
||||
$lang['Allow user customization'] = 'السماح للمستخدم بتغيير خصائص العرض';
|
||||
$lang['Languages'] = 'اللغة';
|
||||
$lang['Installed Languages'] = 'تثبيت لغة';
|
||||
$lang['Add New Language'] = 'اضف لغة جديدة';
|
||||
$lang['Language has been successfully installed'] = 'تم تثبيت اللغة بنجاح';
|
||||
$lang['Select:'] = 'أختيار:';
|
||||
$lang['None'] = 'لا شيء';
|
||||
$lang['Invert'] = 'عكس';
|
||||
$lang['Impossible to deactivate this theme, you need at least one theme.'] = 'لا يمكن حذف الواجهة لانها الأخيرة ، لابد من وجود واجهة واحدة ';
|
||||
$lang['Webmaster status is required.'] = 'تم تغير حالة المدير العالم .';
|
||||
$lang['Bound Theme'] = 'واجهة إلزامية';
|
||||
$lang['Allow rating'] = 'السماح بالتوصويت';
|
||||
$lang['Select at least one comment'] = 'أختر تعليقا واحدا على الأقل';
|
||||
$lang['Active Plugins'] = 'تنشيط الإضافات';
|
||||
$lang['Inactive Plugins'] = 'تعطيل الإضافات';
|
||||
$lang['Missing Plugins'] = 'إضافات مفقودة';
|
||||
$lang['Uninstalled Plugins'] = 'اضافات غير مثبته';
|
||||
$lang['By %s'] = ' %s بواسطة';
|
||||
$lang['Visit plugin site'] = 'زيارة موقع الاضافة';
|
||||
$lang['Active Languages'] = 'تنشيط اللغة';
|
||||
$lang['Delete this language'] = 'اخذف هذه اللغة';
|
||||
$lang['Forbid this language to users'] = 'أمنع هذه اللغة عن المستخدمين';
|
||||
$lang['Impossible to deactivate this language, first set another language as default.'] = 'لا يمكن تعطيل هذه اللغة ، أولا ً قم باختيار لغة أخرى كلغة افتراضية';
|
||||
$lang['Impossible to deactivate this language, you need at least one language.'] = ' لا يمكن تعطيل هذه اللغة ، يجب اختيار لغة واحدة على الأقل';
|
||||
$lang['Inactive Languages'] = 'تعطيل اللغات';
|
||||
$lang['Make this language available to users'] = 'اجعل هذه اللغة متاحة للمستخدمين';
|
||||
$lang['Set as default language for unregistered and new users'] = 'اجعلها كلغة افتراضية لغير المسجلين و المستخدمين الجدد';
|
||||
$lang['Add Photos'] = 'أضف صور';
|
||||
$lang['Download'] = 'تحميل';
|
||||
$lang['The following tag was deleted'] = 'هذه الكلمات الدلائلية حُـذفت';
|
||||
$lang['Miscellaneous'] = 'متفرقات';
|
||||
$lang['User Upload'] = 'مستخدم الرفع';
|
||||
$lang['Virtual Links'] = 'روابط ظاهرة';
|
||||
$lang['There is no other language available.'] = 'ليس هناك لغة أخرى متاحة.';
|
||||
$lang['There is no other plugin available.'] = 'ليس هناك اضافة أخرى متاحة.';
|
||||
$lang['There is no other theme available.'] = 'ليس هناك واجهة عرض أخرى متاحة.';
|
||||
$lang['Add another set of photos'] = 'اضف مجوعة أخرى من الصور';
|
||||
$lang['Order of menubar items has been updated successfully.'] = 'تم تحديث ترتيب العناصر بنجاح';
|
||||
$lang['This theme was not designed to be directly activated'] = 'لم يتم تصميم هذه الواجهة لتفعيلها مباشرة';
|
||||
$lang['Pending Comments'] = 'تعليقات تحت الانتظار';
|
||||
$lang['In your php.ini file, the upload_max_filesize (%sB) is bigger than post_max_size (%sB), you should change this setting'] = 'ملف PHP.ini the upload_max_filesize (%sB) أكبر منpost_max_size (%sB), يتوجب عليك تغير الاعدادت';
|
||||
$lang['Exif extension not available, admin should disable exif use'] = 'خاصية Exif غير متاحة ، ينبغي على المدير تعطيلها';
|
||||
$lang['The uploaded file exceeds the upload_max_filesize directive in php.ini: %sB'] = 'الملف الذي تم تحميله يتجاوز upload_max_filesize مباشرة في php.ini: %sB';
|
||||
$lang['The uploaded files exceed the post_max_size directive in php.ini: %sB'] = 'الملف الذي تم تحميلة يتجاوز post_max_size مباشرة في php.ini: %sB';
|
||||
$lang['The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'] = 'الملف الذي تم تحميلة يتجاور MAX_FILE_SIZE التوجيه الذي تم تحديده في شكل أتش تي أم أل';
|
||||
$lang['The uploaded file was only partially uploaded'] = 'الملف الذي رُفع ، تم رفه جزئيا ً ';
|
||||
$lang['No file was uploaded'] = 'لم يتم رفع الملفات';
|
||||
$lang['Missing a temporary folder'] = 'مجلد الملفات المؤقته مفقود';
|
||||
$lang['Failed to write file to disk'] = 'فشل في كتابة الملف للقرص';
|
||||
$lang['File upload stopped by extension'] = 'تم يقاف رفع الملفات بسبب امتداد الملفات';
|
||||
$lang['Unknown upload error'] = 'خطأ غير معروف في رفع الملفات';
|
||||
$lang['Error on file "%s" : %s'] = ' "%s" : %s خطأ في الملف';
|
||||
?>
|
|
@ -46,7 +46,7 @@ $lang['%d new user'] = '%d مسخدم جديد';
|
|||
$lang['%d new users'] = '%d مستخدمين جدد';
|
||||
$lang['%d waiting element'] = '%d انتظار العنصر';
|
||||
$lang['%d waiting elements'] = '%d انتظار الصور';
|
||||
$lang['About'] = 'لماذا؟؟';
|
||||
$lang['About'] = 'ماذا عن Piwigo ';
|
||||
$lang['All tags'] = 'كل الكلمات الدلائلية';
|
||||
$lang['Any tag'] = 'أي كلمة';
|
||||
$lang['At least one listed rule must be satisfied.'] = 'على الاقل واحده لهذه يجب ان تكو مستوفية.';
|
||||
|
@ -76,7 +76,7 @@ $lang['File name'] = 'أسم الملف';
|
|||
$lang['File'] = 'ملف';
|
||||
$lang['Filesize'] = 'حجم الملف';
|
||||
$lang['Filter and display'] = 'أعرض مع الترشيح';
|
||||
$lang['Filter'] = 'Filter';
|
||||
$lang['Filter'] = 'مُرشح ';
|
||||
$lang['Forgot your password?'] = 'هل نسيت كلمة المرور?';
|
||||
$lang['Go through the gallery as a visitor'] = 'ادخل معرض الصور كأحد الزوار';
|
||||
$lang['Help'] = 'مساعدة';
|
||||
|
@ -96,15 +96,15 @@ $lang['Number of items'] = 'عدد البنود';
|
|||
$lang['Original dimensions'] = 'الابعاد الاصلية';
|
||||
$lang['Password forgotten'] = 'نسيت كلمة المرور';
|
||||
$lang['Password'] = 'كلمة المرور';
|
||||
$lang['Post date'] = 'تاريخ الاصافة';
|
||||
$lang['Post date'] = ' تاريخ الاضافة';
|
||||
$lang['Posted on'] = 'تاريخ اضافة الصورة في المعرض';
|
||||
$lang['Profile'] = 'ملف التعريف';
|
||||
$lang['Quick connect'] = 'تسجيل الدخول';
|
||||
$lang['RSS feed'] = 'RSS feed';
|
||||
$lang['RSS feed'] = 'RSS التغذية الراجعه';
|
||||
$lang['Rate'] = 'قيمة';
|
||||
$lang['Register'] = 'تسجيل';
|
||||
$lang['Registration'] = 'التسجيل';
|
||||
$lang['Related tags'] = 'كلمات لها علاقة';
|
||||
$lang['Related tags'] = 'الكلمات الدلائلية';
|
||||
$lang['Reset'] = 'إعادة';
|
||||
$lang['Retrieve password'] = 'استرجاع كلمة المرور';
|
||||
$lang['Search rules'] = 'قواعد البحث';
|
||||
|
@ -239,7 +239,6 @@ $lang['Unknown identifier'] = 'معرف مجهول';
|
|||
$lang['New password'] = 'كلمة مرور جديدة';
|
||||
$lang['Rate this picture'] = 'قيم هذه الصورة';
|
||||
$lang['Next'] = 'التالي';
|
||||
$lang['Home'] = 'الرئيسية';
|
||||
$lang['no rate'] = 'لم يتم تقيم الصورة';
|
||||
$lang['Elements posted within the last %d day.'] = 'عناصراضيفت في آخر %d يوم.';
|
||||
$lang['Elements posted within the last %d days.'] = 'صور ادخلت في آخر %d الايام.';
|
||||
|
@ -248,7 +247,7 @@ $lang['Recent period must be a positive integer value'] = 'يجب أن تكون
|
|||
/* DEPRECATED USED IN comments.php FOR image_id ? */ $lang['picture'] = 'صورة';
|
||||
$lang['Click on the picture to see it in high definition'] = 'اضغط على الصورة كي ترى الابعاد الحقيقية لها';
|
||||
$lang['Show file metadata'] = 'اظهر الملعومات الفوتوغرافية للصورة';
|
||||
$lang['Powered by'] = 'Powered by';
|
||||
$lang['Powered by'] = 'بدعم من';
|
||||
$lang['Preferences'] = 'التفضيلات';
|
||||
$lang['Previous'] = 'الصورة السابقة';
|
||||
$lang['Random pictures'] = 'صورة عشوائية';
|
||||
|
@ -284,7 +283,6 @@ $lang['Empty query. No criteria has been entered.'] = 'الاسعلام فارغ
|
|||
$lang['Search Options'] = 'خيارات البحث';
|
||||
$lang['Search results'] = 'نتائج البحث ';
|
||||
$lang['Search in subcategories'] = 'بحث في الألبومات الفرعية';
|
||||
$lang['Search'] = 'بحث';
|
||||
$lang['searched words : %s'] = 'نتيجة البحث حسب الكلمات .. : %s';
|
||||
$lang['Contact'] = 'إتصل بـ';
|
||||
$lang['set as category representative'] = 'تحديد فئة الصفة او النموذج';
|
||||
|
@ -309,7 +307,6 @@ $lang['the picture must be to the fileformat jpg, gif or png'] = 'يجب ان ي
|
|||
$lang['the height of the picture must not exceed :'] = 'الحد الاعلى لرتفاع الصورة ';
|
||||
$lang['Optional, but recommended : choose a thumbnail to associate to'] = 'تم تحميل الصورة ،، يمكنك اختيار صورة مصغره لها ( غير مهم )';
|
||||
$lang['the width of the picture must not exceed :'] = 'الحد الاعلى لرتفاع الصورة: ';
|
||||
$lang['Author'] = 'ألاسم الكريم';
|
||||
$lang['can\'t upload the picture on the server'] = 'تستطيع\'t تحميل الصورعلى الخادم';
|
||||
$lang['the username must be given'] = 'اسم المستخدم ضروري';
|
||||
$lang['A picture\'s name already used'] = 'الصورة\'s الاسم موجود مسبقا';
|
||||
|
@ -335,9 +332,7 @@ $lang['Picture name: %s'] = 'اسم الصورة: %s';
|
|||
$lang['Creation date: %s'] = 'التاريخ الاصلي للصورة: %s';
|
||||
$lang['Waiting page: %s'] = 'صفحة تنتظر: %s';
|
||||
$lang['Picture uploaded by %s'] = 'حملت الصورة بواسطة %s';
|
||||
// --------- Starting below: New or revised $lang ---- from version 1.7.1
|
||||
$lang['Bad status for user "guest", using default status. Please notify the webmaster.'] = 'وضغ سيئ للضيف "ضيف", استخدم الحالة الافرتاضية. يرجى ابلاغ المسؤول عن الموقع.';
|
||||
// --------- Starting below: New or revised $lang ---- from Butterfly (2.0)
|
||||
$lang['Administrator, webmaster and special user cannot use this method'] = 'خاصية للادارة فقط لايمكنك استخدامها';
|
||||
$lang['a user use already this mail address'] = 'هذا البريد مسجل لدينامن قبل';
|
||||
$lang['Category results for'] = 'نتيجة البحث في الالبومات عن:';
|
||||
|
@ -349,7 +344,7 @@ $lang['Repeat the slideshow'] = 'اعد عرض الشرائح';
|
|||
$lang['Not repeat the slideshow'] = 'لا تكرر عرض الشرائح';
|
||||
$lang['Reduce diaporama speed'] = 'خفض سرعه توالي العرض';
|
||||
$lang['Accelerate diaporama speed'] = 'تعجيل سرعة العرض';
|
||||
$lang['Submit'] = 'أرســل';
|
||||
$lang['Submit'] = 'أرسل';
|
||||
$lang['Yes'] = 'نعم';
|
||||
$lang['No'] = 'لا';
|
||||
$lang['%d image']=' صورة %d';
|
||||
|
@ -367,4 +362,23 @@ $lang['show tag cloud'] = 'عرض سحابة الكلمات';
|
|||
$lang['cloud'] = 'سحابة';
|
||||
$lang['Are you sure?'] = 'هل انت متأكد?';
|
||||
$lang['delete this comment'] = 'حذف هذا التعليق';
|
||||
?>
|
||||
$lang['Reset to default values'] = 'ارجع للقيم الافتراضية';
|
||||
$lang['delete all images from your favorites'] = 'احذف كل الصور من مفضلتي';
|
||||
$lang['Sent by'] = 'أرسل بواسطة : ';
|
||||
$lang['Cookies are blocked or not supported by your browser. You must enable cookies to connect.'] = 'ملفات الارتباط محضورة في متصفحك أو غير معتمده ،يجب تمكين الكوكيز للتمكن من التسجيل';
|
||||
$lang['Some info about this picture'] = 'معلومات عن هذه الصورة';
|
||||
$lang['Some more (technical) info about this picture'] = 'معلومات أكثر ( تقنية ) عن هذه الصورة';
|
||||
$lang['edit this comment'] = 'عدل هذا التعليق';
|
||||
$lang['Edit a comment'] = 'حرر تعليق';
|
||||
$lang['(!) This comment requires validation'] = '(!) التعليق يحتاج تصريح';
|
||||
$lang['Welcome'] = 'مرحبا بك';
|
||||
$lang['Welcome to your Piwigo photo gallery!'] = ' Piwigo مرحبا بك في معرض الصور الخاص بك';
|
||||
$lang['... or browse your empty gallery'] = '... أومتصفح معرض الصور فارغ';
|
||||
$lang['... or please deactivate this message, I will find my way by myself'] = '... أو يرجى تعطيل هذه الرسالة ، وسوف أجد طريقي بنفسي';
|
||||
$lang['Hello %s, your Piwigo photo gallery is empty!'] = 'مرحبا بك %s، معرض الصور Piwigo فارغ ';
|
||||
$lang['I want to add photos'] = 'أريد أن اضيف صور';
|
||||
$lang['Manage this user comment: %s'] = ' %s حرر تعليق المستخدم :';
|
||||
$lang['This author modified following comment:'] = 'هذا الكاتب عدل في تعليقه : ';
|
||||
$lang['This author removed the comment with id %d'] = 'هذا الكاتب أزال تعليقه : %d';
|
||||
$lang['validate this comment'] = 'السماح بهذا التعليق ';
|
||||
?>
|
142
language/ar_SA/help/cat_modify.html
Normal file
142
language/ar_SA/help/cat_modify.html
Normal file
|
@ -0,0 +1,142 @@
|
|||
<h2>تعديل البوم</h2>
|
||||
|
||||
<h3>المعلومات</h3>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><strong>الاسم</strong>: اعادة تسمية البوم (تغيير وهمي في حالة الالبوم الحقيقي).</li>
|
||||
|
||||
<li><strong>description</strong>: نص قصير يعطي معلومات عامة عن الالبوم,
|
||||
سيعرض هذا النص اسفل صفحة الصور المصغرة</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>تحريك</h3>
|
||||
|
||||
<p>اذا كان هذا الالبوم وهمي يمكنك تحريكه.
|
||||
وهذا يعني تغيير الالبوم الاب.</p>
|
||||
|
||||
<h3>خيارات</h3>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><strong>نوع الوصول</strong>: تنظيم السماح. اذا جعلت البوم وهمي خاص كل الالبومات
|
||||
فيه ستكون خاصة. وعلى العكس اض اذا كانت عامة.</li>
|
||||
|
||||
<li><strong>قفل</strong>: الالبوم وما فيه من البومات فرعية ستغلق للصيانة.</li>
|
||||
|
||||
<li><strong>التعليقات</strong>: المستخدمون المخولون لاضافة التعليقات.</li>
|
||||
|
||||
<li><strong>تخويل الرفع</strong>: السماح لمستخدم برفع الصور وهذا يكون للالبومات الحقيقية
|
||||
وليست الوهمية .</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>يمكنك أيضا إدارة هذه الخيارات على "خصائص"
|
||||
إدارة الشاشة (الشاشات<span class="pwgScreen">الرفع</span>, <span
|
||||
class="pwgScreen">التعلبقات</span>, <span class="pwgScreen">القفل</span>,
|
||||
<span class="pwgScreen">عام/خاص</span>, <span
|
||||
class="pwgScreen">الممثل</span> متاح من <span
|
||||
class="pwgScreen">الادارة »الالبوم »
|
||||
وخصائصها</span>).</p>
|
||||
|
||||
<h3>الترتيب</h3>
|
||||
|
||||
<p>استخدام الصور في الترتيب الافتراضي</p>
|
||||
|
||||
<p>بيان ما إذا كان هذا الترتيب سينطبق أيضا على الالبومات الفرعية.</p>
|
||||
|
||||
<p>عدد الساعات لاستخدامها في معايير الفرز المحددة مع هذا الألبوم.</p>
|
||||
<ul>
|
||||
<li><strong>تاريخ الإنشاء</strong>: وقت اخذ الصور</li>
|
||||
<li><strong>تاريخ النشر</strong>: تاريخ المزامنة</li>
|
||||
<li><strong>معدل التقييم(*)</strong>: يمكن تغيير متوسط التقييم من قبل
|
||||
الزوار</li>
|
||||
<li><strong>الاكثر زيارة (*)</strong>: الزيارة الحالية قد تغير
|
||||
الترتيب</li>
|
||||
<li><strong>اسم الملف</strong>: الاسم المعطى في حقل المعلومات</li>
|
||||
<li><strong>الرقم</strong>: الرقم الداخلي الفئات الأخيرة لديها أعلى
|
||||
رقم من سابقاتها.</li>
|
||||
|
||||
</ul>
|
||||
<p><strong>(*)</strong>تحذير : يجب التأكد من اختبار هذه الأوامر حسب
|
||||
نفسك كما أنها يمكن أن تعطي نتائج غير متوقعة.</p>
|
||||
|
||||
|
||||
<h3>التمثيل</h3>
|
||||
|
||||
<p>ممثل الألبوم هو تصغير يعرض على الصفحة الرئيسية
|
||||
(<span class="pwgScreen">category.php</span>) لتمثيل
|
||||
الألبوم
|
||||
إلا أنه يحتوي على البومات فرعية للصور مباشرة وليس (فقط كجذر
|
||||
ألبوم).</p>
|
||||
صورة ألبوم :</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><span class="pwgScreen">صفحة الصور</span>: واحدة من أزرار الإجراءات
|
||||
تتيح لك تعيين الصورة الحالية ممثلا لعرض الألبوم. يتوفر هذا الزر فقط للمشرفين.</li>
|
||||
|
||||
<li><span class="pwgScreen">تعديل معلومات عن صورة</span>في
|
||||
الإدارة. يمكن الوصول إلى هذه الشاشة من <span
|
||||
class="pwgScreen">picture.php</span> او <span class="pwgScreen">دفعة
|
||||
إدارة</span> in <em>وضع الوحدة</em>. راجع التعليمات من هذه الشاشة ل
|
||||
تفاصيل.</li>
|
||||
|
||||
<li><span class="pwgScreen">الادارة » البومات »
|
||||
وخصائصها,
|
||||
التمثيل</span>. راجع التعليمات من هذه الشاشة للحصول على تفاصيل.</li>
|
||||
|
||||
<li><span class="pwgScreen">تعديل البوم</span> (الشاشة الحالية).</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>اختيار ممثل يعتمد على
|
||||
<code>allow_random_representative</code> اعدادات التكوين (انظر<span
|
||||
class="filename">include/config_default.inc.php</span>).</p>
|
||||
|
||||
<p>في الوضع الافتراضي (<code>allow_random_representative</code> يوضع ل خطأ),
|
||||
يتم تمثيل كل الألبوم يحتوي على عنصر واحد على الأقل من قبل ثابت
|
||||
العنصر. مجموعة مرة واحدة (في خلق ألبوم)، ممثل من التغييرات فقط
|
||||
عندما تسأل الادارة عن ذلك. وإذا كان ممثل من غير المناسب،
|
||||
يمكنك ان تطلب من الممثل واحدة جديدة عشوائية</strong>.</p>
|
||||
|
||||
<p>اذا كان <code>allow_random_representative</code> الاعدادت
|
||||
المكونة
|
||||
وضعت ل صحيحة, التصنيف قد لا يحتوي على ممثل ثابت
|
||||
فقط استخدم <strong>احذف التمثيل</strong> الزر.</p>
|
||||
|
||||
<p>إذا كان الألبوم الفرعي والبومات الصور فارغة لا يمكن أن
|
||||
تكون ممثلة من قبل أي عنصر شكرا ل <span
|
||||
class="pwgScreen">تعديل معلومات عن صورة</span> شاشة. الخيار الوحيد الحالي علىالشاشة
|
||||
هو<strong>حذف الممثل</strong> زر.</p>
|
||||
|
||||
<h3>وصل كل عناصر الالبوم ل البوم جديد</h3>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><strong>اسم الالبوم الوهمي</strong>: اسم الالبوم الجديد للانشاء
|
||||
كل صور التصنيف الحالي ستربط به</li>
|
||||
|
||||
<li><strong>الالبوم الاب</strong>: المكان الذي سيكون به الالبوم الجديد,
|
||||
اتركه فارغا للانشاء في الجذر</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>وصل كل عناصر الالبوم ل البوم موجود</h3>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><strong>البومات</strong>: اختر الالبوم المستهدف</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>ارسل ايميل معلوماتي لمجموعة اشخاص</h3>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><strong>المجموعة</strong>: المجموعة المستقبلة</li>
|
||||
|
||||
<li><strong>محتوى الايميل</strong>: النص للارسال لهم.</li>
|
||||
|
||||
</ul>
|
14
language/ar_SA/help/cat_perm.html
Normal file
14
language/ar_SA/help/cat_perm.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
<h2>تعديل تصاريح الالبوم</h2>
|
||||
|
||||
<p>هذه الشاشة متاحة للألبومات خاصة. هنا يمكنك تحديد
|
||||
أذون للمستخدمين والمجموعات للألبوم.</p>
|
||||
|
||||
<h3>المجموعات</h3>
|
||||
|
||||
<p>يمكنك إازالة أو منح الجماعات وصول الألبوم الحالي. عن طريق تعديل
|
||||
مجموعات التراخيص، وسوف يمنح المستخدمين الذين ينتمون إلى هذه الجماعات حق الوصول او المنع إلى هذا الألبوم.</p>
|
||||
|
||||
<h3>المستخدمون</h3>
|
||||
|
||||
<p>يمكنك منع او اضافة التصاريح للمستخدمون لوحدهم اما المنتمون لمجموعة فيجب اعطائهم
|
||||
استثناء بالمنع او السماح</p>
|
21
language/ar_SA/help/help_add_photos.html
Normal file
21
language/ar_SA/help/help_add_photos.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<p>هناك عدة طرق لإضافة الصور في المعرض</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>الإضافة مباشرة </strong> ابسط و أسهل طريقة لرفع الصور استخدام مستعرض الويب . و ذلك يعتمد على امكانيات المتصفح و خادم الموقع ، للكمية كبيرة من الصور قد تواجه بعض المشاكل لذلك فهناك أساليب أخرى في انتظارك</li>
|
||||
</ul>
|
||||
|
||||
<p class="nextStepLink"><a href="admin.php?page=photos_add§ion=direct">أذهب إلى إضافة الصور مباشرة</a></p>
|
||||
|
||||
<ul>
|
||||
<li><strong>pLoader</strong> برنامج يمكنك تثبيته على سطح المكتبه ، بعدها يمكنك سحب و افلات الصورة في نافذة ploade ثم تضغط على زر <em>"Upload to Piwigo"</em> ثم دع البرنامج يقوم بعمله في رفع الصور لمعرضك. يمكنكأن تجد برامج مشابه مثل <strong>WinToPiwigo</strong> أو <strong>Digikam</strong> تصدير الاضافات إلى piwigo</li>
|
||||
</ul>
|
||||
|
||||
<p class="nextStepLink"><a href="admin.php?page=photos_add§ion=ploader">أذهب إلى pLoader</a></p>
|
||||
|
||||
<div id="helpSynchro">
|
||||
<ul>
|
||||
<li><strong>FTP ناقل الملفات</strong> هي الطريقةالمفضلة و الموصى بها لإضافة أعداد كبيرة من الصور في المعرض بقليل من النقرات ، فقط عليك اتباع التلعيمات الخاص باعداد الصور ،يسمح لك اسلوب بروتوكول نقل الملفات FTP تنظيم صورك على الموقع حسب تصنيفك الخاص ، </li>
|
||||
</ul>
|
||||
|
||||
<p class="nextStepLink"><a href="admin.php?page=photos_add§ion=ftp">FTPأذهب إلى </a></p>
|
||||
</div>
|
7
language/ar_SA/help/help_groups.html
Normal file
7
language/ar_SA/help/help_groups.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
<p>المجموعات هي وسيلة ملائمة لتعيين الأذونات لقائمة المستخدمين.</p>
|
||||
|
||||
<p>لـ إنشاء مجموعة <span class="pwgScreen"> الإدارة » المستخدمين
|
||||
» مجموعات </span> ولمشاهدة الأعضاء المنتسبين لمجموعة <span class="pwgScreen"> الإدارة » المستخدمين »
|
||||
إدارة</span>.</p>
|
||||
|
||||
<p> يمكن للمستخدم ان يكون في أكثر من مجموعة حسب تصنيفك الخاص .للمنع اوتخصيص بعض الصوراوالالبومات يمكنك انشاء مجموعه كـ مجموعة( مثلا ) الاسرة التي تختص بصور لا يراها إلا أعضاء مجموعة الأسرة فقط </p>
|
9
language/ar_SA/help/help_misc.html
Normal file
9
language/ar_SA/help/help_misc.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
<p>بمجرد إنشاء معرض الصور يمكنك اعداد تكوينه للزوار حسب ما يلي :
|
||||
<ul>
|
||||
<li> العرض الافتراضي الذي تفضله، <span class="pwgScreen">الاإدارة » التهيئة » الخيارات </span>جدول <span class="pwgScreen">إعدادت الضيوف، </span></li>
|
||||
<li>الواجهة الافتراضية للمعرض ، <span class="pwgScreen">الادارة » التهيئة » واجهات العرض</span></li>
|
||||
<li> اللغة الافتراضية للمعرض، <span class="pwgScreen">الادارة » التهيئة » اللغة </span></li>
|
||||
</ul>
|
||||
سيتم تطبيق هذه الخيارات الافتراضية للمستخدمين الجدد
|
||||
</p>
|
||||
<p>نرحب بك و بأسئتلك في مجتمع <a href="http://piwigo.org/forum">منتدى Piwigo</a>.</p>
|
59
language/ar_SA/help/help_permissions.html
Normal file
59
language/ar_SA/help/help_permissions.html
Normal file
|
@ -0,0 +1,59 @@
|
|||
<fieldset>
|
||||
<legend>تخصيص الصور </legend>
|
||||
|
||||
<p>
|
||||
لكل صورة <strong>مستوى من الخصوية</strong> .(مغلقه) . كل مستخدم له أيضا ً خمس مستويات من الخصوصية ( مفتاح( . مستويات الخصوصية 5 و هي كما يلي:</p>
|
||||
<ol>
|
||||
<li>لا شيء</li>
|
||||
<li><em>متصلين </em></li>
|
||||
<li><em>الاصدقاء (الذين لديهم مستوى عالي من الوصول للصور)</em></li>
|
||||
<li><em>العائلة (الذين لديهم مستوى أعلى من مستوى الأصدقاء في الوصول)</em></li>
|
||||
<li><em>المدراء (المستوى الأعلى من أي مستوى )</em></li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
المستويات العليا لديها خصوصية أوسع من المستويات الادنى الممنوحة لمستخدم معين ، المستوى العالي يمنح مشاهدة المزيد من الصور.</p>
|
||||
|
||||
<p>مثلا ، إذا كان مستوى الخصوصية لـ صورة "زواج علي " هي لـ <em>"العائلة"</em> إذن : </p>
|
||||
<ul>
|
||||
<li>محمد ( هو "<em>"المدير"</em> " )يستطيع مشاهد الصورة ، لانه مدير يستطيع أن يشاهد كل الصور</li>
|
||||
<li>حسن ( هو أحد أفراد <em>"العائلة"</em> ) يستطيع أن يشاهد هذه الصورة</li>
|
||||
<li>عمر ( هو مجرد <em>"صديق"</em> ) فلن يستطيع أن يشاهد الصورة</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
المشاهد الذي لا يملك تصريح لمشاهدة الصور لفئة معينة فلن يشاهد الصور و لا حتى العنوان او حتى الكلمات الدلائلية </p>
|
||||
|
||||
<p>يمكنك مشاهدة مستوى الخصوية للمستخدمين <span class="pwgScreen">الإدارة » المستخدمين » إدارة</span> </p>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>تخصيص الالبومات</legend>
|
||||
|
||||
<p>
|
||||
إذا كانت مستويات الخصوصية لا تناسب احتياجاتك ، يمكنك أيضا إدارة الخصوصية على الألبومات لمستخدم أو مجموعة. يمكنك إدارة الصورة على صور و الألبومات في نفس الوقت، دون تعارض.</p>
|
||||
|
||||
<p>تخصيص مشاهدة الألبومات . التبديل السريع الى الخصوصية إذا كنت تريد إدارة التخصيص </p>
|
||||
|
||||
<p>يمكنك تعيين البوم خاص من خلال تحريره بمفرده
|
||||
(<span class="pwgScreen">الإدارة » الألبومات » إدارة
|
||||
» تحرير </span>) او عن طريق وضع و اختيار الألبومات في أي خانة الخاص أو العام
|
||||
(<span class="pwgScreen"> الإدارة » الألبومات »
|
||||
الخصائص » ألبوم عام / ألبوم خاص </span>).</p>
|
||||
|
||||
<p>
|
||||
وضعية تخصيص الالبومات ، تستطيع إدارة التخصيص للمجموعات و المستخدمين في ثلاث شاشات :</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><span class="pwgScreen"> الإدارة » المستخدمين » إدارة »
|
||||
إجراء التفضيلات </span> (رابط واحد لكل مستخدم )</li>
|
||||
|
||||
<li><span class="pwgScreen">الإدارة » المستخدمين » المجموعات »
|
||||
الاجراءات لكل مجموعه</span> (رابط لكل مجموعة)</li>
|
||||
|
||||
<li><span class="pwgScreen">الإدارة » الألبومات » إدارة » تحرير الألبوم و إجراء نقل الالبومات </span> (رابط لكل ألبوم)</li>
|
||||
|
||||
</ul>
|
||||
</fieldset>
|
16
language/ar_SA/help/help_user_upload.html
Normal file
16
language/ar_SA/help/help_user_upload.html
Normal file
|
@ -0,0 +1,16 @@
|
|||
<p>يستطيع المستخدم أن يرفع صوره الى المعرض أيضاً</p>
|
||||
|
||||
<ol>
|
||||
|
||||
<li>تخصيص ألبومات لرفع الصور عليها
|
||||
(<span class="pwgScreen">الإدارة » الألبومات » إدارة
|
||||
» تحرير </span> أو <span class="pwgScreen"> إدارة »
|
||||
ألبومات » الخصائص » تحميل </span>). الألبومات الظاهر لا يمكن الرفع عليها.</li>
|
||||
|
||||
<li>منح حق الوصول للكتابة على الدلائل المطابق.</li>
|
||||
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
الصور التي تم رفعها من قبل المستخدمين يتم تصريحها من قبل مدير المعرض في( <span class="pwgScreen">الإدارة » الصور »
|
||||
تحت الانتظار) </span> حتى يمكن ان تظهر في المعرض للزوار و المستخدمين </p>
|
9
language/ar_SA/help/help_virtual_links.html
Normal file
9
language/ar_SA/help/help_virtual_links.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
<p>عرض صورة في ألبوم آخر </p>
|
||||
|
||||
<p>تستطيع ربط صورة واحدة أو أكثر في أكثر من البوم دون ان تتكرر هذه الصورة ودون الحاجة لاعادة تحرير معلوماتها مرة أخرى ،تستطيعع ذلك من خلال ايوقنة ا التحرير الظاهرة في كل صورة اثناء التصفح ( هذه الايقونة مخصصة فقط للمدير ) ـ </p>
|
||||
|
||||
|
||||
<p>لربط الصورة لاي ألبوم من نموذج تحرير الصورة ( يمكن لمدير المعرض الوصول لاي صورة و تحريرها عبر تصفحة المعرض ) ـ</p>
|
||||
|
||||
<p>كذلك يمكنك تصنيف الصور في الالبومات بهذه الطريقة ، لانشاء ألبوم <span class="pwgScreen"> الإدارة » الألبومات »
|
||||
إدارة </span>.</p>
|
74
language/ar_SA/install.lang.php
Normal file
74
language/ar_SA/install.lang.php
Normal file
|
@ -0,0 +1,74 @@
|
|||
<?php
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based picture gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2010 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | This program is free software; you can redistribute it and/or modify |
|
||||
// | it under the terms of the GNU General Public License as published by |
|
||||
// | the Free Software Foundation |
|
||||
// | |
|
||||
// | This program is distributed in the hope that it will be useful, but |
|
||||
// | WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
||||
// | General Public License for more details. |
|
||||
// | |
|
||||
// | You should have received a copy of the GNU General Public License |
|
||||
// | along with this program; if not, write to the Free Software |
|
||||
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
|
||||
// | USA. |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
$lang['Installation'] = 'التثبيت ';
|
||||
$lang['Basic configuration'] = 'التكوينات الأساسية';
|
||||
$lang['Default gallery language'] = 'اللغة الافتراضية للمعرض';
|
||||
$lang['Database configuration'] = 'تكوين قاعدة البيانات';
|
||||
$lang['Admin configuration'] = 'اعدادات المدير';
|
||||
$lang['Start Install'] = 'ابدأ التثبيت';
|
||||
$lang['mail address must be like xxx@yyy.eee (example : jack@altern.org)'] = 'البريد يجب ان يكون على هذه الهيئة xxx@yyy.ee ( مثلاً : Jack@altern.org)';
|
||||
$lang['Webmaster login'] = 'دخول المدير';
|
||||
$lang['It will be shown to the visitors. It is necessary for website administration'] = 'سوف تظهر للزوار ، ضرورية للادارة و لوحة التحكم';
|
||||
$lang['Connection to server succeed, but it was impossible to connect to database'] = 'تم الاتصال بالخادم الموقع ، لكن لم يتم يتم الاتصال بقاعدة البيانات';
|
||||
$lang['Can\'t connect to server'] = 'لا يمكن الاتصال بالخادم';
|
||||
$lang['Database type'] = 'نوع قاعدة البيانات';
|
||||
$lang['The type of database your piwigo data will be store in'] = 'قاعدة بيانات المعرض Piwigo سوف تخزن ';
|
||||
$lang['Host'] = 'المضيف';
|
||||
$lang['localhost, sql.multimania.com, toto.freesurf.fr'] = 'localhost, sql.multimania.com, toto.freesurf.fr';
|
||||
$lang['User'] = 'المستخدم';
|
||||
$lang['user login given by your host provider'] = 'اصرح للمستخدم الدخول بواسطة المضيف الخاص بك';
|
||||
$lang['Password'] = 'كلمة المرور';
|
||||
$lang['user password given by your host provider'] = 'اعطي للمستخدم كلمة المرور بواسطة المضيف الخاص بك';
|
||||
$lang['Database name'] = 'أسم قاعدة البيانات';
|
||||
$lang['also given by your host provider'] = 'ايضا بواسط المضيف الخاص بك ';
|
||||
$lang['Database table prefix'] = 'بداية جداول قاعدة البيانات';
|
||||
$lang['database tables names will be prefixed with it (enables you to manage better your tables)'] = 'الاسماءالمبتدأ في جداول قاعدة البيانات ( تمكنك من أدارة قاعدة البيانات بشكل أفضل)ـ';
|
||||
$lang['enter a login for webmaster'] = 'دخول مدير الموقع';
|
||||
$lang['webmaster login can\'t contain characters \' or "'] = 'دخول المدر لا \ يمكن تتضمن الأحرف \' أو "';
|
||||
$lang['please enter your password again'] = 'فضلا ً أعد كتابة كلمة المرور مرةأخرى';
|
||||
$lang['Webmaster password'] = 'كلمة مرور مدير الموقع';
|
||||
$lang['Keep it confidential, it enables you to access administration panel'] = 'ابقائه سريا، فإنه يتيح لك الوصول إلى لوحة الإدارة';
|
||||
$lang['Password [confirm]'] = 'كلمة المرور [confirm]';
|
||||
$lang['verification'] = 'التحقق';
|
||||
$lang['Need help ? Ask your question on <a href="%s">Piwigo message board</a>.'] = 'هل تحتاج لمساعده؟ يمكنك السؤال <a href="%s">Piwigo لجنة الأسئلة في </a>.';
|
||||
$lang['Webmaster mail address'] = 'بريد مدير الموقع';
|
||||
$lang['Visitors will be able to contact site administrator with this mail'] = ' سيتمكن الزوار لاستخدام هذا البريد إلى الاتصال بالمسؤول عن الموقع';
|
||||
$lang['PHP 5 is required'] = 'مطلوب PHP 5 ';
|
||||
$lang['It appears your webhost is currently running PHP %s.'] = 'PHP %s يبدوا أن المضيف يستخدم حاليا ';
|
||||
$lang['Piwigo may try to switch your configuration to PHP 5 by creating or modifying a .htaccess file.'] = 'قد يحاول تبديل التكوين الخاص بك إلىPHP 5 عن طريق إنشاء أو تعديل ملف htaccess . Piwigo ';
|
||||
$lang['Note you can change your configuration by yourself and restart Piwigo after that.'] = 'ملاحظة يمكنك تغيير التكوين الخاص بك من نفسك وإعادة Piwigo بعد ذلك.';
|
||||
$lang['Try to configure PHP 5'] = 'PHP 5 محاولة تكوين ';
|
||||
$lang['Sorry!'] = 'مـعـذرة !1';
|
||||
$lang['Piwigo was not able to configure PHP 5.'] = ' Piwigo غير قادر على تكوين PHP 5';
|
||||
$lang['You may referer to your hosting provider\'s support and see how you could switch to PHP 5 by yourself.'] = 'تحقق من مزود الاستضافة حول دعمه لـ PHP 5';
|
||||
$lang['Hope to see you back soon.'] = 'نأمل أن نرى عودتك إلى هنا قريبا';
|
||||
$lang['Congratulations, Piwigo installation is completed'] = 'تم بحمد الله تثبيت معرضPiwigo بنجاح ، مبروك ';
|
||||
$lang['An alternate solution is to copy the text in the box above and paste it into the file "local/config/database.inc.php" (Warning : database.inc.php must only contain what is in the textarea, no line return or space character)'] = 'حل آخر هو نسخ النص في المربع أعلاه ولصقه في ملف"local/config/database.inc.php" (تحذير : database.inc.php يجب أن تحتوي فقط ما هو موجود في النص، الخط أو حرف مسافة)';
|
||||
$lang['Creation of config file local/config/database.inc.php failed.'] = 'فشل في إنشاء ملف التكوين local/config/database.inc.php ';
|
||||
$lang['Download the config file'] = 'تحميل ملف التكوين';
|
||||
$lang['You can download the config file and upload it to local/config directory of your installation.'] = 'يمكنك تحميل ملف التكوين وتحميله إلى الدليل المحلي';
|
||||
$lang['SQLite and PostgreSQL are currently in experimental state.'] = 'تحت التجربية حاليا SQLite و PostgreSQL ';
|
||||
$lang['Learn more'] = 'تعلم أكثر';
|
||||
|
||||
?>
|
41
language/ar_SA/upgrade.lang.php
Normal file
41
language/ar_SA/upgrade.lang.php
Normal file
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Piwigo - a PHP based photo gallery |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | Copyright(C) 2008-2011 Piwigo Team http://piwigo.org |
|
||||
// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
|
||||
// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
|
||||
// +-----------------------------------------------------------------------+
|
||||
// | This program is free software; you can redistribute it and/or modify |
|
||||
// | it under the terms of the GNU General Public License as published by |
|
||||
// | the Free Software Foundation |
|
||||
// | |
|
||||
// | This program is distributed in the hope that it will be useful, but |
|
||||
// | WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
||||
// | General Public License for more details. |
|
||||
// | |
|
||||
// | You should have received a copy of the GNU General Public License |
|
||||
// | along with this program; if not, write to the Free Software |
|
||||
// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
|
||||
// | USA. |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
$lang['Upgrade'] = 'تحديث';
|
||||
$lang['This page proposes to upgrade your database corresponding to your old version of Piwigo to the current version. The upgrade assistant thinks you are currently running a <strong>release %s</strong> (or equivalent).'] = 'معالجة التحديث يقترح تحديث قاعدة البيانات القديمة الخاصة بـ Piwigo من الاصدار القديم إلى الاصدار الجديد . مساعد الترقية يتعقد انك جاليا ً تشغل<strong> %s الأصدار </strong> ( أو ما يعادلها ).';
|
||||
$lang['Upgrade from version %s to %s'] = '%s إلى %s التحديث من الأصدار';
|
||||
$lang['Statistics'] = 'إحصاءات';
|
||||
$lang['total upgrade time'] = 'الوقت الذي يحتاجه التحديث';
|
||||
$lang['total SQL time'] = 'الوقت الذي يجتاجه المزو SQL';
|
||||
$lang['SQL queries'] = ' SQLمزود الاستعلامات';
|
||||
$lang['Upgrade informations'] = 'ترقية المعلومات ';
|
||||
$lang['Perform a maintenance check in [Administration>Tools>Maintenance] if you encounter any problem.'] = 'للفحص والتدقيق والصيانى [الإدارة>أدوات>الصيانة] إذا واجهتك أي مشكلة ';
|
||||
$lang['As a precaution, following plugins have been deactivated. You must check for plugins upgrade before reactiving them:'] = 'كأجراء وقائي يجب تعطيل الاضافات ، كما ينبغي التأكد من وجود تحديثات جديدة لهذه الاضافات';
|
||||
$lang['Only administrator can run upgrade: please sign in below.'] = 'فقط يمكن للمسؤول تشغيل الترقية : الرجاء تسجيل الدخول أدناه.';
|
||||
$lang['You do not have access rights to run upgrade'] = 'ليس لديك حقق الوصول في تشغيل الترقية';
|
||||
$lang['All sub-albums of private albums become private'] = 'جميع البومات الفرعية من الألبومات الخاصة أصبحت خاصة';
|
||||
$lang['User permissions and group permissions have been erased'] = 'تم مسح للمستخدمين وأذونات المجموعات';
|
||||
$lang['Only thumbnails prefix and webmaster mail address have been saved from previous configuration'] = 'تم حفظ بدائة الصور المصغرة ، و عنواين مدير الموقع حفظت من التكوين السابق';
|
||||
$lang['In <i>%s</i>, before <b>?></b>, insert:'] = 'في <i>%s</i>, قبل <b>?></b>, إدراج:';
|
||||
|
||||
?>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue