~includeonce('../config.tmpl') ~includeonce('../config/spell.tmpl') ~includeonce('../lib/ressources.tmpl') ~includeonce('../lib/admin.tmpl') ~includeonce('../lib/thumbnail.tmpl') ~mapfilenamevar('res_table','param_state','param_section','param_topic','param_folio','param_order','param_direction') ~if(~integer(~get('res_table'))>0, { ~get_res_info(~get('res_table'),'res'), ~redirect('~get_site_url()admin/manage,~get('res[table]').html') }) ~set('res_type',~res_table_to_res_type(~get('res_table'))) ~get_res_info(~get('res_type'),'res') ~set('res_name',~get('res[name]')) ~include('../site/admin.header.tmpl','Gestion ~get('res_name')') ~if(~get('res_name')=='tracker', ~redirect('~get_site_url()tracker/') ) ~if( ~file_exists('~getconf('templatedir')admin/~get('res_table').rdf'), ~rdf('~getconf('templatedir')admin/~get('res_table').rdf', 0, 10, 'charset', 'UTF-8', 'LM', { ~setl('extra_headers', '~getl('extra_headers')~rdf_fld('ad:header')'), ~setl('extra_actions', '~getl('extra_actions')~rdf_fld('ad:action')'), ~setl('extra_count', ~getl('extra_count')+1), ~setl('extra_fields', '~getl('extra_fields')~if(~rdf_fld('ad:field'),',~get('res_table').~rdf_fld('ad:field')')') } ) ) ~setl('has_flags', ~get('res[has_sticky]') || ~get('res[has_locked]') || ~get('res[has_announcement]') || ~get('res[has_phare]')) ~defunc('disp_row','
  • [~if(~fld('display_timestamp'),~format_timestamp('%d/%m/%y %H:%M', ~fld('display_timestamp'))) - ~fld('state')] ~if(!~get('res[is_asset]'), '~list_tags( ~get('res_type'), ~fld('id'), 'topic', ', ') -') ~strip_tags(~ifne(~fld('title'),'Pas de titre'))
  • ') ~defunc('disp_row_tr', '~if(~get('param_order') == 'date' && ~getl('board_old_timestamp') != ~stamp2date(~fld('display_timestamp'),'alt'), '~stamp2date(~fld('display_timestamp'),'alt')') ~setl('board_old_timestamp',~stamp2date(~fld('display_timestamp'),'alt')) ~if( ~get('is_admin'), '~fld('id')' )~if(~fld('display_timestamp'),~format_timestamp('%d/%m/%y %H:%M', ~fld('display_timestamp'))) ~fld('state') ~if(~getl('has_flags'),' ~if(~get('res[has_sticky]') && ~fld('is_sticky'), ~img('img/svg/sticky.svg', 'Épinglé', 'intxt')) ~if(~get('res[has_locked]') && ~fld('is_locked'), ~img('img/svg/locked.svg', 'Vérouillé', 'intxt')) ~if(~get('res[has_announcement]') && ~fld('is_announcement'), ~img('img/svg/announcement.svg', 'Annonce', 'intxt')) ~if(~get('res[has_phare]') && ~fld('is_phare'), ~img('img/svg/phare.svg', 'Phare', 'intxt')) ') ~if(!~get('res[is_asset]'), '~list_tags( ~get('res_type'), ~fld('id'), 'topic', ', ') -') ~strip_tags(~ifne(~fld('title'),'Pas de titre')) ~if(~getl('extra_actions'),~eval(~getl('extra_actions'))) ') ~if( ~file_exists('~getconf('templatedir')lib/~get('res_table').tmpl'), ~includeonce('../lib/~get('res_table').tmpl') ) ~setl('has_sections', ~list( ~get('database'), "SHOW TABLES LIKE '~get('res_table')_sections'", 'LD', 0, 'LL', ~gfld('counter') ) ) ~setl('has_sections', ~getl('has_sections') && ~if(~get('res[section_joining_table]'), ~list( ~get('database'), "SHOW TABLES LIKE '~get('res[section_joining_table]')'", 'LD', 0, 'LL', ~gfld('counter') ) , ~list( ~get('database'), "SHOW COLUMNS FROM ~get('res_table') LIKE 'section_id'", 'LD', 0, 'LL', ~gfld('counter') ) ) ) ~setl('has_topics', ~list( ~get('database'), "SHOW COLUMNS FROM ~get('res_table') LIKE 'topic_id'", 'LD', 0, 'LL', ~gfld('counter') ) ) ~setl('has_folios', ~list( ~get('database'), "SHOW COLUMNS FROM ~get('res_table') LIKE 'folio_id'", 'LD', 0, 'LL', ~gfld('counter') ) )

    ~if(!~get('res[is_asset]'),' ~img('img/svg/plus.svg','Ajouter','intxt') Ajouter ~spell_article('un', ~get('res[gender]'), ~get('res_name'))
    ') ~if( ~getl('has_sections') && ~get('is_admin'), '~img('img/svg/admin-manage.svg','Gestion','intxt') Gestion des sections
    ' ) ~list(~get('dabase'), "SELECT res_type FROM ressources WHERE admin_link_res_type=~integer(~get('res_type')) UNION SELECT admin_link_res_type AS res_type FROM ressources WHERE res_type=~integer(~get('res_type')) AND admin_link_res_type > 0", 'LM','~get_res_info(~fld('res_type'),'res_link') ~img('img/svg/plus.svg','Ajouter','intxt') Ajouter ~spell_article('un', ~get('res_link[gender]'), ~get('res_link[name]'))
    ~img('img/svg/admin-manage.svg','Gestion','intxt') Gestion des ~spell_plural(~get('res_link[name]'),~get('res_link[gender]'))
    ') ~if( ~get('is_admin') && (!~get('res[is_asset]') || ~file_exists('~getconf('templatedir')admin/~get('res_table').purge')), '~img('img/svg/admin-purge.svg','Purge','intxt') Faire le ménage dans les ~spell_plural(~get('res_name'),~get('res_link[gender]'))
    ' ) ~if( ~get('is_admin') && ~file_exists('~getconf('templatedir')admin/~get('res_table').check'), '~img('img/svg/admin-check.svg','Vérification','intxt') Vérification des ~spell_plural(~get('res_name'),~get('res_link[gender]'))
    ' ) ~if( ~file_exists('~getconf('templatedir')admin/~get('res_table').settings') && ~get('is_admin'), '~img('img/svg/admin-settings.svg','Configuration','intxt') Configuration des ~spell_plural(~get('res[name]'),~get('res[gender]'))
    ')

    ~if( ~file_exists('~getconf('templatedir')admin/~get('res_table').menu'), ~include('~get('res_table').menu') )

    ~mb_ucfirst(~spell_plural(~get('res_name'),~get('res[gender]'))) : ~if( ~get('res[publish_timestamp_field]'), ~list(~get('database'), "SELECT count(*) AS count from ~get('res_table') WHERE ~ifne(~get('res[publish_timestamp_field]'), 'insert_timestamp') > CURRENT_TIMESTAMP()",'LM','~fld('count') à venir / ' )) ~list(~get('database'), "SELECT count(*) AS count from ~get('res_table')",'LM','~fld('count') au total.
    ' )

    Rechercher ~spell_article('un', ~get('res[gender]'), ~get('res_name')) :

    ~if(~getpost('text'),' ~includeonce('../lib/ressources_ressources.tmpl') ~list(~get('database'), "SELECT ~get('res_table').id, ~get('res_table').~ifne( ~get('res[title_field]'),'title') AS title, ~get('res_table').~ifne( ~get('res[publish_timestamp_field]'),'insert_timestamp') AS display_timestamp, states.state FROM ~get('res_table'), states WHERE ~get('res_table').~ifne( ~get('res[title_field]'),'title') LIKE '%~simple_fi('text')%' AND ~get('res_table').state=states.id ORDER BY ~get('res_table').~ifne( ~get('res[title_field]'),'title') LIMIT 50", 'LM',~disp_row(), 'LF','

    Par titre:

    ', 'LD','~mb_ucfirst(~spell_gender(~get('res[gender]'),'aucun')) ~get('res_name') ayant pour titre : ~getpost('text')
    ' ) ~if(!~get('res[is_asset]'),'

    Par rubrique:

    ') ') ~defunc('list_query',' ~list(~get('database'), ~sparam(2), 'LF','
    ~sparam(1)
    ', 'LM',~disp_row() ) ') ~if( ~get('res[has_phare]'), ~list_query( '~img('img/svg/phare.svg', 'Phare', 'intxt')~mb_ucfirst(~spell_plural(~get('res_name'),~get('res[gender]'))) phare : ', "SELECT ~get('res_table').id, ~get('res_table').~ifne( ~get('res[title_field]'), 'title') AS title, ~get('res_table').insert_timestamp AS display_timestamp, states.state FROM ~get('res_table'), states WHERE ~get('res_table').state=states.id AND ~get('res_table').is_phare ORDER BY ~get('res_table').insert_timestamp DESC LIMIT 20" ) ) ~if( ~get('res[has_sticky]'), ~list_query('~img('img/svg/sticky.svg', 'Épinglé', 'intxt')~mb_ucfirst(~spell_plural(~get('res_name'),~get('res[gender]'))) ~spell_plural(~spell_gender(~get('res[gender]'),'épinglé')) : ', "SELECT ~get('res_table').id, ~get('res_table').~ifne( ~get('res[title_field]'), 'title') AS title, ~get('res_table').insert_timestamp AS display_timestamp, states.state FROM ~get('res_table'), states WHERE ~get('res_table').state=states.id AND ~get('res_table').is_sticky ORDER BY ~get('res_table').insert_timestamp DESC LIMIT 20" ) ) ~if( !~empty(~get('res[publish_timestamp_field]')), ~list_query('~img('img/svg/scheduled.svg', 'En approche', 'intxt')~mb_ucfirst(~spell_plural(~get('res_name'),~get('res[genger]'))) ~spell_plural(~spell_gender(~get('res[gender]'), 'programmé')) :', "SELECT ~get('res_table').id, ~get('res_table').~ifne( ~get('res[title_field]'), 'title') AS title, ~get('res_table').~get('res[publish_timestamp_field]') AS display_timestamp, states.state FROM ~get('res_table'), states WHERE ~get('res_table').state=states.id AND ~get('res_table').~get('res[publish_timestamp_field]') >= CURRENT_TIMESTAMP() AND ~get('res_table').~get('res[publish_timestamp_field]') <= DATE_ADD( CURRENT_TIMESTAMP(), interval 1 month) ORDER BY ~get('res_table').~get('res[publish_timestamp_field]') ASC, ~get('res_table').id ASC LIMIT 20" ) ) ~if( !~get('res[is_asset]'), ~list_query( '~mb_ucfirst(~spell_plural(~spell_gender(~get('res[gender]'),'dernier'))) ~spell_plural(~get('res_name'),~get('res[gender]')) ~spell_plural(~spell_gender(~get('res[gender]'),'ajouté')) : ', "SELECT ~get('res_table').id, ~get('res_table').~ifne( ~get('res[title_field]'), 'title') AS title, ~get('res_table').insert_timestamp AS display_timestamp, states.state FROM ~get('res_table'), states WHERE ~get('res_table').state=states.id ORDER BY ~get('res_table').id DESC LIMIT 20" )) ~if( !~get('res[is_asset]'), ~list_query( '~mb_ucfirst(~spell_plural(~spell_gender(~get('res[gender]'),'dernier'))) ~spell_plural(~get('res_name'),~get('res[gender]')) ~spell_plural(~spell_gender(~get('res[gender]'),'modifié')) : ', "SELECT ~get('res_table').id, ~get('res_table').~ifne( ~get('res[title_field]'), 'title') AS title, ~get('res_table').update_timestamp AS display_timestamp, states.state FROM ~get('res_table'), states WHERE ~get('res_table').state=states.id AND ~get('res_table').insert_timestamp != ~get('res_table').update_timestamp ORDER BY ~get('res_table').update_timestamp DESC LIMIT 20" )) ~defunc('last_ressources', ~list_query( ~sparam(1), "SELECT ~get('res_table').id, ~get('res_table').~ifne( ~get('res[title_field]'), 'title') AS title, ~get('res_table').insert_timestamp AS display_timestamp, states.state FROM ~get('res_table'), states WHERE ~get('res_table').state=states.id AND ~get('res_table').state=~sparam(2) ORDER BY ~get('res_table').id DESC LIMIT 20" ) ) ~if( !~get('res[is_asset]'), ~last_ressources('~mb_ucfirst(~spell_plural(~spell_gender(~get('res[gender]'),'nouveau', ~get('res_name')))) ~spell_plural(~get('res_name'),~get('res[gender]')) : ', ~get('state_new')) ) ~if( !~get('res[is_asset]'), ~last_ressources('~mb_ucfirst(~spell_plural(~get('res_name'),~get('res[gender]'))) en attente :', ~get('state_wait')) ) ~if( !~get('res[is_asset]'), ~last_ressources('~mb_ucfirst(~spell_plural(~get('res_name'),~get('res[gender]'))) ~spell_plural(~spell_gender(~get('res[gender]'),'effacé')) :', ~get('state_deleted')) )

    Nombre ~spell_article('de', ~get('res[gender]'), ~spell_plural(~get('res_name'),~get('res[gender]'))) ~spell_plural(~spell_gender(~get('res[gender]'),'modéré')) (1 mois):

    ~include('news_moderated_count.tmpl',~get('res_type'))
    ~setl('state_id', ~if(~mb_strlen(~getpost('state_id')),~getpost('state_id'), ~get('param_state'))) ~setl('is_scheduled', ~getl('state_id') == -2) ~if( ~getl('is_scheduled') && ~get('res[publish_timestamp_field]'), ~setl('scheduled_cond','~get('res_table').~get('res[publish_timestamp_field]') > CURRENT_TIMESTAMP()', 'state_cond','~get('res_table').state=~get('state_ok')') ) ~if( ~mb_strlen(~getl('state_id'))>0 && ~integer(~getl('state_id')) >= 0, ~setl('state_cond','~get('res_table').state=~integer(~getl('state_id'))') ) ~setl('section_id', ~if(~mb_strlen(~getpost('section_id')),~getpost('section_id'), ~get('param_section'))) ~if( ~integer( ~getl('section_id')) > 0, ~setl('section_cond', ~if(~get('res[section_joining_table]') , '~get('res[section_joining_table]').~rtrim(~get('res_table'), "s")_id = ~get('res_table').id AND ~get('res[section_joining_table]').section_id = ~integer(~getl('section_id'))', '~get('res_table').section_id=~integer(~getl('section_id'))' ) ) ) ~setl('topic_id', ~if(~mb_strlen(~getpost('topic_id')),~getpost('topic_id'), ~get('param_topic'))) ~if( ~integer( ~getl('topic_id')) > 0, ~setl('topic_cond','~get('res_table').topic_id=~integer(~getl('topic_id'))') ) ~setl('folio_id', ~if(~mb_strlen(~getpost('folio_id')),~getpost('folio_id'), ~get('param_folio'))) ~if( ~integer( ~getl('folio_id')) > 0, ~setl('folio_cond','~get('res_table').folio_id=~integer(~getl('folio_id'))') ) ~if( ~integer( ~getl('folio_id')) == -1, ~setl('folio_cond','~get('res_table').folio_id=0') )
    ~if( ~getl('has_topics'), ~list(~get('database'), "SELECT topics.id, topics.title AS topic, COUNT(*) AS count FROM topics, ~get('res_table') ~if(!~empty(~getl('section_cond')) && ~get('res[section_joining_table]'), ', ~get('res[section_joining_table]')') WHERE ~get('res_table').topic_id=topics.id AND topics.main=1 ~if(!~empty(~getl('state_cond')), 'AND ~getl('state_cond')') ~if(!~empty(~getl('scheduled_cond')), 'AND ~getl('scheduled_cond')') ~if(!~empty(~getl('section_cond')), 'AND ~getl('section_cond')') ~if(!~empty(~getl('folio_cond')), 'AND ~getl('folio_cond')') GROUP BY topics.id HAVING count > 0 ORDER BY topics.title ", 'LF','Portail : ~html_form_select_start('topic_id')~html_form_option( 0, 'Tous') ', 'LM',~html_form_option(~fld('id'), ~fld('topic'), ~fld('id') == ~getl('topic_id')), 'LL',~html_form_select_end() )) ~if( ~getl('has_sections'), ~list(~get('database'), "SELECT ~get('res_table')_sections.id, ~get('res_table')_sections.longname AS section, COUNT(*) AS count FROM ~get('res_table')_sections, ~if(~get('res[section_joining_table]'), ~get('res[section_joining_table]'), ~get('res_table')) WHERE ~if( ~get('res[section_joining_table]'), '~get('res[section_joining_table]').section_id = ~get('res_table')_sections.id', '~get('res_table').section_id=~get('res_table')_sections.id' ) ~if(!~empty(~getl('state_cond')), 'AND ~getl('state_cond')') ~if(!~empty(~getl('scheduled_cond')), 'AND ~getl('scheduled_cond')') ~if(!~empty(~getl('topic_cond')), 'AND ~getl('topic_cond')') ~if(!~empty(~getl('folio_cond')), 'AND ~getl('folio_cond')') GROUP BY ~get('res_table')_sections.id HAVING count > 0 ORDER BY ~get('res_table')_sections.longname ", 'LF','Section : ~html_form_select_start('section_id')~html_form_option( 0, 'Tous') ', 'LM',~html_form_option(~fld('id'), ~fld('section'), ~fld('id') == ~getl('section_id')), 'LL',~html_form_select_end() )) ~if( ~getl('has_folios'), ~list(~get('database'), "SELECT folios.id, folios.title AS title, COUNT(*) AS count FROM folios, ~get('res_table') ~if(!~empty(~getl('section_cond')) && ~get('res[section_joining_table]'), ', ~get('res[section_joining_table]')') WHERE ~get('res_table').folio_id=folios.id ~if(!~empty(~getl('section_cond')), 'AND ~getl('section_cond')') ~if(!~empty(~getl('state_cond')), 'AND ~getl('state_cond')') ~if(!~empty(~getl('scheduled_cond')), 'AND ~getl('scheduled_cond')') ~if(!~empty(~getl('topic_cond')), 'AND ~getl('topic_cond')') GROUP BY folios.id HAVING count > 0 ORDER BY folios.id DESC ", 'LF','Magazine : ~html_form_select_start('folio_id')~html_form_option( 0, 'Tous') ', 'LM',~html_form_option(~fld('id'), ~fld('title'), ~fld('id') == ~getl('folio_id')), 'LL','~html_form_option( '-1', 'Aucun', ~getl('folio_id') == -1)~html_form_select_end()' )) ~if(~get('res[publish_timestamp_field]'), ~list(~get('database'), "SELECT COUNT(*) AS count FROM ~get('res_table') WHERE ~get('res_table').~get('res[publish_timestamp_field]') > CURRENT_TIMESTAMP()", 'LM', ~setl('has_scheduled_items', ~fld('count')) )) ~list(~get('database'), "SELECT states.id, states.state, COUNT(*) AS count FROM states, ~get('res_table') ~if(!~empty(~getl('section_cond')) && ~get('res[section_joining_table]'), ', ~get('res[section_joining_table]')') WHERE states.id=~get('res_table').state ~if(!~empty(~getl('section_cond')), 'AND ~getl('section_cond')') ~if(!~empty(~getl('scheduled_cond')), 'AND ~getl('scheduled_cond')') ~if(!~empty(~getl('topic_cond')), 'AND ~getl('topic_cond')') ~if(!~empty(~getl('folio_cond')), 'AND ~getl('folio_cond')') GROUP BY states.id HAVING count > 0 ORDER BY states.id ASC", 'LF','État : ~html_form_select_start('state_id')~html_form_option( -1, 'Tous') ', 'LM',~html_form_option(~fld('id'), ~fld('state'), ~fld('id')==~getl('state_id')), 'LL','~if(~getl('has_scheduled_items'), ~html_form_option('-2', 'Programmé', ~getl('is_scheduled')))~html_form_select_end()' )
    ~list(~get('database'), "SELECT count(DISTINCT ~get('res_table').id) as count FROM ~get('res_table') ~if(!~empty(~getl('section_cond')) && ~get('res[section_joining_table]'), ', ~get('res[section_joining_table]')') WHERE 1=1 ~if(!~empty(~getl('state_cond')), 'AND ~getl('state_cond')') ~if(!~empty(~getl('scheduled_cond')), 'AND ~getl('scheduled_cond')') ~if(!~empty(~getl('section_cond')), 'AND ~getl('section_cond')') ~if(!~empty(~getl('topic_cond')), 'AND ~getl('topic_cond')') ~if(!~empty(~getl('folio_cond')), 'AND ~getl('folio_cond')') ", 'LF',~set('num',~fld('count')) )

    Total : ~get('num')

    ~setl('object_per_page', 50) ~include('../site/next_page.tmpl',~get_filenamevar(8),~get('num'),~getl('object_per_page'),'~get_filenamevar(0),~get('res_table'),~getl('state_id'),~getl('section_id'),~getl('topic_id'),~getl('folio_id'),~get_filenamevar(6),~get_filenamevar(7)') ~defunc('display_th', '~if(~get('param_order')!=~sparam(1), '~sparam(2)', '~sparam(2) ~if(~get('param_direction') != 'asc', '', '' )' ) ') ~if(~get('is_admin'), ~display_th('id','#','desc')) ~display_th('date','Date','desc') ~if(~getl('has_flags'),'') ~display_th('title','Titre','asc') ~if(~getl('extra_headers'),~getl('extra_headers')) ~switch( ~get('param_order') == 'id', ~setl('order_by','id'), ~get('param_order') == 'date', ~setl('order_by', ~ifne( ~get('res[publish_timestamp_field]'),'insert_timestamp') ), ~get('param_order') == 'title', ~setl('order_by', ~ifne( ~get('res[title_field]'),'title') ), ~setl('order_by','insert_timestamp') ) ~if( ~get('param_direction') == 'asc', ~setl('order_direction', 'ASC'), ~setl('order_direction', 'DESC') ) ~list(~get('database'), "SELECT ~get('res_table').id, ~get('res_table').~ifne( ~get('res[title_field]'),'title') AS title, ~get('res_table').~ifne( ~get('res[publish_timestamp_field]'),'insert_timestamp') AS display_timestamp, ~if(~get('res[has_sticky]'), '~get('res_table').is_sticky,') ~if(~get('res[has_locked]'), '~get('res_table').is_locked,') ~if(~get('res[has_announcement]'), '~get('res_table').is_announcement,') ~if(~get('res[has_phare]'), '~get('res_table').is_phare,') states.state ~if(~getl('extra_fields'),~getl('extra_fields')) FROM ~get('res_table'), states ~if(!~empty(~getl('section_cond')) && ~get('res[section_joining_table]'), ', ~get('res[section_joining_table]')') WHERE ~get('res_table').state=states.id ~if(!~empty(~getl('state_cond')), 'AND ~getl('state_cond')') ~if(!~empty(~getl('scheduled_cond')), 'AND ~getl('scheduled_cond')') ~if(!~empty(~getl('section_cond')), 'AND ~getl('section_cond')') ~if(!~empty(~getl('topic_cond')), 'AND ~getl('topic_cond')') ~if(!~empty(~getl('folio_cond')), 'AND ~getl('folio_cond')') ~if(!~empty(~getl('section_cond')) && ~get('res[section_joining_table]'), 'GROUP BY ~get('res_table').id') ORDER BY ~get('res_table').~getl('order_by') ~getl('order_direction') LIMIT ~getl('object_per_page') OFFSET ~get('indice')", 'LM',~call('disp_row_tr') )
    État
    ~include('../site/next_page.tmpl',~get_filenamevar(8),~get('num'),~getl('object_per_page'),'~get_filenamevar(0),~get('res_table'),~getl('state_id'),~getl('section_id'),~getl('topic_id'),~getl('folio_id'),~get_filenamevar(6),~get_filenamevar(7)') ~include("../site/admin.footer.tmpl")